X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=1c9542d78ed54ccf5271811b5cc27be54337aeae;hb=ebad3a92846289fb77c7e0fb8bb48ac7c02de68c;hp=ac0af60005edc2e97f3c7c491309ceca51af8a10;hpb=a9acce47d67e0ab35ce1690e4f1b1ac0121c2d78;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index ac0af60005..1c9542d78e 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -548,9 +548,19 @@ lex_match (struct lexer *lexer, int t) Otherwise, returns false. */ bool lex_match_id (struct lexer *lexer, const char *s) +{ + return lex_match_id_n (lexer, s, 3); +} + +/* If the current token is the identifier S, skips it and returns + true. The identifier may be abbreviated to its first N + letters. + Otherwise, returns false. */ +bool +lex_match_id_n (struct lexer *lexer, const char *s, size_t n) { if (lexer->token == T_ID - && lex_id_match (ss_cstr (s), ss_cstr (lexer->tokid))) + && lex_id_match_n (ss_cstr (s), ss_cstr (lexer->tokid), n)) { lex_get (lexer); return true; @@ -849,8 +859,8 @@ lex_preprocess_line (struct string *line, { strip_comments (line); ds_rtrim (line, ss_cstr (CC_SPACES)); - *line_ends_command = (ds_chomp (line, get_endcmd ()) - || (ds_is_empty (line) && get_nulline ())); + *line_ends_command = (ds_chomp (line, settings_get_endcmd ()) + || (ds_is_empty (line) && settings_get_nulline ())); *line_starts_command = false; if (syntax == GETL_BATCH) {