X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=686aafd0d4c99fecc640828f2567a99fb414868c;hb=840f7bace2423e6d240320ab308f0fbaa8c559f1;hp=9a27d867b98cb87e15420671819ab24ccd1ca1fa;hpb=9ade26c8349b4434008c46cf09bc7473ec743972;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 9a27d867b9..686aafd0d4 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -1324,6 +1324,7 @@ lex_source_get__ (const struct lex_source *src_) const char *newline; const char *line; size_t line_len; + char *syntax; line = &src->buffer[src->journal_pos - src->tail]; newline = rawmemchr (line, '\n'); @@ -1331,8 +1332,12 @@ lex_source_get__ (const struct lex_source *src_) if (line_len > 0 && line[line_len - 1] == '\r') line_len--; - text_item_submit (text_item_create_nocopy (TEXT_ITEM_SYNTAX, - xmemdup0 (line, line_len))); + syntax = malloc (line_len + 2); + memcpy (syntax, line, line_len); + syntax[line_len] = '\n'; + syntax[line_len + 1] = '\0'; + + text_item_submit (text_item_create_nocopy (TEXT_ITEM_SYNTAX, syntax)); src->journal_pos += newline - line + 1; }