diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/inlines.c | 17 | 
1 files changed, 6 insertions, 11 deletions
| diff --git a/src/inlines.c b/src/inlines.c index 810230c..b116717 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -28,7 +28,7 @@ typedef struct Subject {  } subject;  static node_inl *parse_chunk_inlines(chunk *chunk, reference_map *refmap); -static node_inl *parse_inlines_while(subject* subj, int (*f)(subject*)); +static node_inl *parse_inlines_from_subject(subject* subj);  static int parse_inline(subject* subj, node_inl ** last);  static void subject_from_chunk(subject *e, chunk *chunk, reference_map *refmap); @@ -759,18 +759,13 @@ static node_inl* handle_newline(subject *subj)  	}  } -inline static int not_eof(subject* subj) -{ -	return !is_eof(subj); -} - -// Parse inlines while a predicate is satisfied.  Return inlines. -extern node_inl* parse_inlines_while(subject* subj, int (*f)(subject*)) +// Parse inlines til end of subject, returning inlines. +extern node_inl* parse_inlines_from_subject(subject* subj)  {  	node_inl* result = NULL;  	node_inl** last = &result;  	node_inl* first = NULL; -	while ((*f)(subj) && parse_inline(subj, last)) { +	while (!is_eof(subj) && parse_inline(subj, last)) {  		if (!first) {  			first = *last;  		} @@ -791,7 +786,7 @@ node_inl *parse_chunk_inlines(chunk *chunk, reference_map *refmap)  {  	subject subj;  	subject_from_chunk(&subj, chunk, refmap); -	return parse_inlines_while(&subj, not_eof); +	return parse_inlines_from_subject(&subj);  }  static int subject_find_special_char(subject *subj) @@ -903,7 +898,7 @@ extern node_inl* parse_inlines(strbuf *input, reference_map *refmap)  {  	subject subj;  	subject_from_buf(&subj, input, refmap); -	return parse_inlines_while(&subj, not_eof); +	return parse_inlines_from_subject(&subj);  }  // Parse zero or more space characters, including at most one newline. | 
