X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Frepeat.c;h=7b5634c8b3cc19f1435a77815c4d50abf8193b6f;hb=cef9c4febe441542613998a1510ef09490730399;hp=bae0e4afb103d7e1838c27616abe7055198f64a7;hpb=d8493b3b0617cc447446a70b031a69079bc19002;p=pspp diff --git a/src/language/control/repeat.c b/src/language/control/repeat.c index bae0e4afb1..7b5634c8b3 100644 --- a/src/language/control/repeat.c +++ b/src/language/control/repeat.c @@ -168,26 +168,24 @@ parse_specification (struct lexer *lexer, struct repeat_block *block) /* Get a stand-in variable name and make sure it's unique. */ if (!lex_force_id (lexer)) return false; - if (dict_lookup_var (dict, lex_tokid (lexer))) - msg (SW, _("Dummy variable name `%s' hides dictionary " - "variable `%s'."), - lex_tokid (lexer), lex_tokid (lexer)); - if (find_macro (block, ss_cstr (lex_tokid (lexer)))) + if (dict_lookup_var (dict, lex_tokcstr (lexer))) + msg (SW, _("Dummy variable name `%s' hides dictionary variable `%s'."), + lex_tokcstr (lexer), lex_tokcstr (lexer)); + if (find_macro (block, lex_tokss (lexer))) { msg (SE, _("Dummy variable name `%s' is given twice."), - lex_tokid (lexer)); + lex_tokcstr (lexer)); return false; } /* Make a new macro. */ macro = pool_alloc (block->pool, sizeof *macro); - ss_alloc_substring_pool (¯o->name, ss_cstr (lex_tokid (lexer)), - block->pool); + ss_alloc_substring_pool (¯o->name, lex_tokss (lexer), block->pool); ll_push_tail (&block->macros, ¯o->ll); /* Skip equals sign. */ lex_get (lexer); - if (!lex_force_match (lexer, '=')) + if (!lex_force_match (lexer, T_EQUALS)) return false; /* Get the details of the variable's possible values. */ @@ -204,7 +202,7 @@ parse_specification (struct lexer *lexer, struct repeat_block *block) } if (count == 0) return false; - if (lex_token (lexer) != '/' && lex_token (lexer) != '.') + if (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD) { lex_error (lexer, NULL); return false; @@ -230,9 +228,9 @@ parse_specification (struct lexer *lexer, struct repeat_block *block) return false; } - lex_match (lexer, '/'); + lex_match (lexer, T_SLASH); } - while (lex_token (lexer) != '.'); + while (lex_token (lexer) != T_ENDCMD); return true; } @@ -458,9 +456,9 @@ parse_numbers (struct lexer *lexer, struct repeat_macro *macro, add_replacement (ss_cstr (pool_asprintf (pool, "%g", i)), macro, pool, &used, &allocated); - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); } - while (lex_token (lexer) != '/' && lex_token (lexer) != '.'); + while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD); return used; } @@ -490,9 +488,9 @@ parse_strings (struct lexer *lexer, struct repeat_macro *macro, struct pool *poo add_replacement (ss_cstr (string), macro, pool, &used, &allocated); lex_get (lexer); - lex_match (lexer, ','); + lex_match (lexer, T_COMMA); } - while (lex_token (lexer) != '/' && lex_token (lexer) != '.'); + while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD); return used; } @@ -529,7 +527,7 @@ do_repeat_filter (struct getl_interface *interface, struct string *line) /* Strip trailing whitespace, check for & remove terminal dot. */ ds_rtrim (line, ss_cstr (CC_SPACES)); - dot = ds_chomp (line, settings_get_endcmd ()); + dot = ds_chomp (line, '.'); input = ds_ss (line); in_apos = in_quote = false; while ((c = ss_first (input)) != EOF) @@ -552,7 +550,7 @@ do_repeat_filter (struct getl_interface *interface, struct string *line) } } if (dot) - ds_put_byte (&output, settings_get_endcmd ()); + ds_put_byte (&output, '.'); ds_swap (line, &output); ds_destroy (&output);