X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=1c35642f874daa9ef8447522af7428a34f89d023;hb=f51ecb48027e6b1eb46840ae25888a25b429f012;hp=265116141eb36f0d8ffa685a326431cd79f7b7ad;hpb=0aebb03b1f9c3a4a0dd99b715f13dc044540a0bd;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 265116141e..1c35642f87 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "xalloc.h" @@ -385,10 +386,9 @@ lex_get (struct lexer *lexer) else { unsigned char c = *lexer->prog++; - if (c_isgraph (c)) - msg (SE, _("Bad character in input: `%c'."), c); - else - msg (SE, _("Bad character in input: `\\%o'."), c); + char *c_name = xasprintf (c_isgraph (c) ? "%c" : "\\%o", c); + msg (SE, _("Bad character in input: `%s'."), c_name); + free (c_name); continue; } } @@ -874,16 +874,16 @@ lex_preprocess_line (struct string *line, } } -/* Reads a line, without performing any preprocessing. - Sets *SYNTAX, if SYNTAX is non-null, to the line's syntax - mode. */ +/* Reads a line, without performing any preprocessing. */ bool lex_get_line_raw (struct lexer *lexer) { bool ok = getl_read_line (lexer->ss, &lexer->line_buffer); - enum syntax_mode mode = lex_current_syntax_mode (lexer); - journal_write (mode == GETL_BATCH, ds_cstr (&lexer->line_buffer)); - + if (ok) + { + const char *line = ds_cstr (&lexer->line_buffer); + text_item_submit (text_item_create (TEXT_ITEM_SYNTAX, line)); + } return ok; }