X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Futilities%2Ftitle.c;fp=src%2Flanguage%2Futilities%2Ftitle.c;h=8ad6a4acb30b5723ea27e1ad0fc698f667c0b758;hb=3f3b74c2dd0e8468e11b0bb22366f6081ba0d459;hp=323bdf3fa51e79d35c375e8fc6a4dde22431a979;hpb=4d2ddbb1b001928a9c7fb6d5d8d1e26c47216c3f;p=pspp diff --git a/src/language/utilities/title.c b/src/language/utilities/title.c index 323bdf3fa5..8ad6a4acb3 100644 --- a/src/language/utilities/title.c +++ b/src/language/utilities/title.c @@ -44,28 +44,18 @@ parse_title (struct lexer *lexer, void (*set_title) (const char *)) set_title (lex_tokcstr (lexer)); lex_get (lexer); } - else if (lex_token (lexer) == T_ENDCMD) - { - /* This would be a bad special case below because n-1 would be - SIZE_MAX. */ - set_title (""); - } else { - /* Count the tokens in the title. */ - size_t n = 0; - while (lex_next (lexer, n)->type != T_ENDCMD) - n++; + int start_ofs = lex_ofs (lexer); + while (lex_token (lexer) != T_ENDCMD) + lex_get (lexer); /* Get the raw representation of all the tokens, including any space between them, and use it as the title. */ - char *title = lex_next_representation (lexer, 0, n - 1); + char *title = lex_ofs_representation (lexer, start_ofs, + lex_ofs (lexer) - 1); set_title (title); free (title); - - /* Skip past the tokens. */ - for (size_t i = 0; i < n; i++) - lex_get (lexer); } return CMD_SUCCESS; }