X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fval-labs.c;h=1af46a2c5d81496e5bc5f5156805a395d3002883;hb=f62199cac6213ed1c03ffe48450a583da0fadc68;hp=882f26e625933b7364510bb112ef57f2e0edf2af;hpb=74a57f26f1458b28a0fddbb9f46004ac8f4d9c30;p=pspp-builds.git diff --git a/src/val-labs.c b/src/val-labs.c index 882f26e6..1af46a2c 100644 --- a/src/val-labs.c +++ b/src/val-labs.c @@ -57,12 +57,19 @@ do_value_labels (int erase) { struct variable **vars; /* Variable list. */ int var_cnt; /* Number of variables. */ + int parse_err=0; /* true if error parsing variables */ lex_match ('/'); while (token != '.') { - parse_variables (default_dict, &vars, &var_cnt, PV_SAME_TYPE); + parse_err = !parse_variables (default_dict, &vars, &var_cnt, + PV_SAME_TYPE) ; + if (var_cnt < 1) + { + free(vars); + return CMD_FAILURE; + } if (!verify_val_labs (vars, var_cnt)) goto lossage; if (erase) @@ -85,7 +92,7 @@ do_value_labels (int erase) return CMD_TRAILING_GARBAGE; } - return CMD_SUCCESS; + return parse_err ? CMD_PART_SUCCESS_MAYBE : CMD_SUCCESS; lossage: free (vars); @@ -144,7 +151,7 @@ get_label (struct variable **vars, int var_cnt) lex_error (_("expecting string")); return 0; } - st_bare_pad_copy (value.s, ds_value (&tokstr), MAX_SHORT_STRING); + st_bare_pad_copy (value.s, ds_c_str (&tokstr), MAX_SHORT_STRING); } else { @@ -167,7 +174,7 @@ get_label (struct variable **vars, int var_cnt) msg (SW, _("Truncating value label to 60 characters.")); ds_truncate (&tokstr, 60); } - label = ds_value (&tokstr); + label = ds_c_str (&tokstr); for (i = 0; i < var_cnt; i++) val_labs_replace (vars[i]->val_labs, value, label);