X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;fp=src%2Flanguage%2Flexer%2Flexer.c;h=6e9bba43a789042259132b1ba7a3bde63407c6e8;hb=458ce22a11c42436ad318d76bcbb39ed855d1c27;hp=e8a2677986f229c95b9765fa79ce4689494b2416;hpb=347a2a2db59f2e3baef3d6345f63cce75e69c6a6;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index e8a2677986..6e9bba43a7 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -1842,7 +1842,9 @@ lex_source_get (const struct lex_source *src_) .representation = ss_buffer (&src->buffer[start - src->tail], end - start), }; + src->middle += middle_ofs + 1; n_call = macro_expander_add (me, &mt); + src->middle -= middle_ofs + 1; } if (n_call < 0) { @@ -1863,7 +1865,7 @@ lex_source_get (const struct lex_source *src_) const struct lex_token *call_first = &src->tokens[src->middle & (src->capacity - 1)]; const struct lex_token *call_last - = &src->tokens[(src->middle + n_call) & (src->capacity - 1)]; + = &src->tokens[(src->middle + n_call - 1) & (src->capacity - 1)]; size_t call_pos = call_first->token_pos; size_t call_len = (call_last->token_pos + call_last->token_len) - call_pos; size_t line_pos = call_first->line_pos;