X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fvariable-display.c;h=2754c71e66b486a7ec12a9b9037fb3b4c7a45fb8;hb=f5c108becd49d78f4898cab11352291f5689d24e;hp=6c2f24f5551f02f37598149d2a646954427598de;hpb=42489b63e0b4bec2e20c2f55c9791234f7b41764;p=pspp-builds.git diff --git a/src/language/dictionary/variable-display.c b/src/language/dictionary/variable-display.c index 6c2f24f5..2754c71e 100644 --- a/src/language/dictionary/variable-display.c +++ b/src/language/dictionary/variable-display.c @@ -1,6 +1,5 @@ /* PSPP - computes sample statistics. Copyright (C) 1997-9, 2000 Free Software Foundation, Inc. - Written by John Darrington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -36,7 +35,7 @@ It affects nothing but GUIs */ int -cmd_variable_alignment (void) +cmd_variable_alignment (struct lexer *lexer, struct dataset *ds) { do { @@ -46,41 +45,40 @@ cmd_variable_alignment (void) size_t i; enum alignment align; - if (!parse_variables (dataset_dict (current_dataset), &v, &nv, PV_NONE)) + if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) return CMD_FAILURE; - if ( lex_force_match('(') ) + if ( lex_force_match (lexer, '(') ) { - if ( lex_match_id("LEFT")) + if ( lex_match_id (lexer, "LEFT")) align = ALIGN_LEFT; - else if ( lex_match_id("RIGHT")) + else if ( lex_match_id (lexer, "RIGHT")) align = ALIGN_RIGHT; - else if ( lex_match_id("CENTER")) + else if ( lex_match_id (lexer, "CENTER")) align = ALIGN_CENTRE; - else + else { free (v); - return CMD_FAILURE; + return CMD_FAILURE; } - lex_force_match(')'); + lex_force_match (lexer, ')'); } - else + else { free (v); - return CMD_FAILURE; + return CMD_FAILURE; } - for( i = 0 ; i < nv ; ++i ) - v[i]->alignment = align; - + for( i = 0 ; i < nv ; ++i ) + var_set_alignment (v[i], align); - while (token == '/') - lex_get (); + while (lex_token (lexer) == '/') + lex_get (lexer); free (v); } - while (token != '.'); + while (lex_token (lexer) != '.'); return CMD_SUCCESS; } @@ -89,7 +87,7 @@ cmd_variable_alignment (void) It affects nothing but GUIs */ int -cmd_variable_width (void) +cmd_variable_width (struct lexer *lexer, struct dataset *ds) { do { @@ -97,33 +95,33 @@ cmd_variable_width (void) size_t nv; size_t i; - if (!parse_variables (dataset_dict (current_dataset), &v, &nv, PV_NONE)) + if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) return CMD_FAILURE; - if ( lex_force_match('(') ) + if ( lex_force_match (lexer, '(') ) { - if ( lex_force_int()) - lex_get(); + if ( lex_force_int (lexer)) + lex_get (lexer); else return CMD_FAILURE; - lex_force_match(')'); + lex_force_match (lexer, ')'); } - for( i = 0 ; i < nv ; ++i ) - v[i]->display_width = tokval; + for( i = 0 ; i < nv ; ++i ) + var_set_display_width (v[i], lex_integer (lexer)); - while (token == '/') - lex_get (); + while (lex_token (lexer) == '/') + lex_get (lexer); free (v); } - while (token != '.'); + while (lex_token (lexer) != '.'); return CMD_SUCCESS; } /* Set variables' measurement level */ int -cmd_variable_level (void) +cmd_variable_level (struct lexer *lexer, struct dataset *ds) { do { @@ -132,40 +130,40 @@ cmd_variable_level (void) enum measure level; size_t i; - if (!parse_variables (dataset_dict (current_dataset), &v, &nv, PV_NONE)) + if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) return CMD_FAILURE; - if ( lex_force_match('(') ) + if ( lex_force_match (lexer, '(') ) { - if ( lex_match_id("SCALE")) + if ( lex_match_id (lexer, "SCALE")) level = MEASURE_SCALE; - else if ( lex_match_id("ORDINAL")) + else if ( lex_match_id (lexer, "ORDINAL")) level = MEASURE_ORDINAL; - else if ( lex_match_id("NOMINAL")) + else if ( lex_match_id (lexer, "NOMINAL")) level = MEASURE_NOMINAL; - else + else { free (v); - return CMD_FAILURE; + return CMD_FAILURE; } - lex_force_match(')'); + lex_force_match (lexer, ')'); } else { free (v); - return CMD_FAILURE; + return CMD_FAILURE; } - - for( i = 0 ; i < nv ; ++i ) - v[i]->measure = level ; + + for( i = 0 ; i < nv ; ++i ) + var_set_measure (v[i], level); - while (token == '/') - lex_get (); + while (lex_token (lexer) == '/') + lex_get (lexer); free (v); } - while (token != '.'); + while (lex_token (lexer) != '.'); return CMD_SUCCESS; }