X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fnumeric.c;h=0cf08ae53770a18dba7fe21a1be940f0cd28033f;hb=8019f5ebb77a3b010ff63b14ba69d70810b040fb;hp=ae9619638c060d0259fe14d8a64a849c66e444ad;hpb=8acca2de53c1852f38726f70fc6516b34732a79f;p=pspp diff --git a/src/language/dictionary/numeric.c b/src/language/dictionary/numeric.c index ae9619638c..0cf08ae537 100644 --- a/src/language/dictionary/numeric.c +++ b/src/language/dictionary/numeric.c @@ -1,6 +1,5 @@ /* PSPP - computes sample statistics. Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. - Written by Ben Pfaff . This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -37,7 +36,7 @@ /* Parses the NUMERIC command. */ int -cmd_numeric (struct dataset *ds) +cmd_numeric (struct lexer *lexer, struct dataset *ds) { size_t i; @@ -51,13 +50,13 @@ cmd_numeric (struct dataset *ds) do { - if (!parse_DATA_LIST_vars (&v, &nv, PV_NONE)) + if (!parse_DATA_LIST_vars (lexer, &v, &nv, PV_NONE)) return CMD_FAILURE; /* Get the optional format specification. */ - if (lex_match ('(')) + if (lex_match (lexer, '(')) { - if (!parse_format_specifier (&f)) + if (!parse_format_specifier (lexer, &f)) goto fail; if (fmt_is_string (f.type)) { @@ -67,7 +66,7 @@ cmd_numeric (struct dataset *ds) goto fail; } - if (!lex_match (')')) + if (!lex_match (lexer, ')')) { msg (SE, _("`)' expected after output format.")); goto fail; @@ -85,7 +84,7 @@ cmd_numeric (struct dataset *ds) else { if (f.type != -1) - new_var->print = new_var->write = f; + var_set_both_formats (new_var, &f); } } @@ -94,9 +93,9 @@ cmd_numeric (struct dataset *ds) free (v[i]); free (v); } - while (lex_match ('/')); + while (lex_match (lexer, '/')); - return lex_end_of_command (); + return lex_end_of_command (lexer); /* If we have an error at a point where cleanup is required, flow-of-control comes here. */ @@ -109,7 +108,7 @@ fail: /* Parses the STRING command. */ int -cmd_string (struct dataset *ds) +cmd_string (struct lexer *lexer, struct dataset *ds) { size_t i; @@ -125,12 +124,12 @@ cmd_string (struct dataset *ds) do { - if (!parse_DATA_LIST_vars (&v, &nv, PV_NONE)) + if (!parse_DATA_LIST_vars (lexer, &v, &nv, PV_NONE)) return CMD_FAILURE; - if (!lex_force_match ('(') - || !parse_format_specifier (&f) - || !lex_force_match (')')) + if (!lex_force_match (lexer, '(') + || !parse_format_specifier (lexer, &f) + || !lex_force_match (lexer, ')')) goto fail; if (!fmt_is_string (f.type)) { @@ -152,7 +151,7 @@ cmd_string (struct dataset *ds) if (!new_var) msg (SE, _("There is already a variable named %s."), v[i]); else - new_var->print = new_var->write = f; + var_set_both_formats (new_var, &f); } /* Clean up. */ @@ -160,9 +159,9 @@ cmd_string (struct dataset *ds) free (v[i]); free (v); } - while (lex_match ('/')); + while (lex_match (lexer, '/')); - return lex_end_of_command (); + return lex_end_of_command (lexer); /* If we have an error at a point where cleanup is required, flow-of-control comes here. */ @@ -175,18 +174,18 @@ fail: /* Parses the LEAVE command. */ int -cmd_leave (struct dataset *ds) +cmd_leave (struct lexer *lexer, struct dataset *ds) { struct variable **v; size_t nv; size_t i; - if (!parse_variables (dataset_dict (ds), &v, &nv, PV_NONE)) + if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) return CMD_CASCADING_FAILURE; for (i = 0; i < nv; i++) - v[i]->leave = true; + var_set_leave (v[i], true); free (v); - return lex_end_of_command (); + return lex_end_of_command (lexer); }