X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=686aafd0d4c99fecc640828f2567a99fb414868c;hb=5d8fa2ae8c6e7d890570585aedec66bd51630814;hp=9a27d867b98cb87e15420671819ab24ccd1ca1fa;hpb=0d70eff1e5dcd89a73f09ce6bc999ccbec8234b5;p=pspp-builds.git diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 9a27d867..686aafd0 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; }