X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=bad35be8a1450b8f381c072cb073e4b9b04d59a1;hb=6d53d2b45f5385271dd21e8df1b5ac23d20be9fb;hp=8b3f2a48d00474811a09c090f8a82d1b75ed7546;hpb=6b003fcaaf12c21fda3d44580154b54c54c6cd54;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 8b3f2a48d0..bad35be8a1 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "xalloc.h" @@ -175,19 +176,19 @@ lex_get (struct lexer *lexer) return; } - /* If a token was pushed ahead, return it. */ - if (lexer->put_token) - { - restore_token (lexer); + /* If a token was pushed ahead, return it. */ + if (lexer->put_token) + { + restore_token (lexer); #if DUMP_TOKENS dump_token (lexer); #endif - return; - } + return; + } - for (;;) - { - /* Skip whitespace. */ + for (;;) + { + /* Skip whitespace. */ while (c_isspace ((unsigned char) *lexer->prog)) lexer->prog++; @@ -873,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; } @@ -1217,13 +1218,6 @@ finish: if (type != CHARACTER_STRING) convert_numeric_string_to_char_string (lexer, type); - if (ds_length (&lexer->tokstr) > 255) - { - msg (SE, _("String exceeds 255 characters in length (%zu characters)."), - ds_length (&lexer->tokstr)); - ds_truncate (&lexer->tokstr, 255); - } - return T_STRING; }