X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fmrsets.c;h=1f281221a258c6e49d3a0183ccb74c01321008fb;hb=f4e3578b2c8ce537de5516af55a62b84ebf2b744;hp=4a01ddd49f165c84ed1906bc93e037e14193a4be;hpb=a49b940e58f148bf111c647d9b4822025636ff80;p=pspp diff --git a/src/language/dictionary/mrsets.c b/src/language/dictionary/mrsets.c index 4a01ddd49f..1f281221a2 100644 --- a/src/language/dictionary/mrsets.c +++ b/src/language/dictionary/mrsets.c @@ -79,11 +79,10 @@ parse_group (struct lexer *lexer, struct dictionary *dict, enum mrset_type type) { const char *subcommand_name = type == MRSET_MD ? "MDGROUP" : "MCGROUP"; - struct mrset *mrset; bool labelsource_varlabel; bool has_value; - mrset = xzalloc (sizeof *mrset); + struct mrset *mrset = XZALLOC (struct mrset); mrset->type = type; mrset->cat_source = MRSET_VARLABELS; @@ -93,10 +92,16 @@ parse_group (struct lexer *lexer, struct dictionary *dict, { if (lex_match_id (lexer, "NAME")) { - if (!lex_force_match (lexer, T_EQUALS) || !lex_force_id (lexer) - || !mrset_is_valid_name (lex_tokcstr (lexer), - dict_get_encoding (dict), true)) + if (!lex_force_match (lexer, T_EQUALS) || !lex_force_id (lexer)) goto error; + char *error = mrset_is_valid_name__ (lex_tokcstr (lexer), + dict_get_encoding (dict)); + if (error) + { + lex_error (lexer, "%s", error); + free (error); + goto error; + } free (mrset->name); mrset->name = xstrdup (lex_tokcstr (lexer)); @@ -147,7 +152,7 @@ parse_group (struct lexer *lexer, struct dictionary *dict, { if (!lex_is_integer (lexer)) { - msg (SE, _("Numeric VALUE must be an integer.")); + lex_error (lexer, _("Numeric VALUE must be an integer.")); goto error; } value_destroy (&mrset->counted, mrset->width); @@ -421,7 +426,8 @@ parse_group (struct lexer *lexer, struct dictionary *dict, if (!c->warned && utf8_strcasecmp (c->label, label)) { char *s = data_out (value, var_get_encoding (var), - var_get_print_format (var)); + var_get_print_format (var), + settings_get_fmt_settings ()); c->warned = true; msg (SW, _("Variables specified on MCGROUP should " "have the same categories, but %s and %s " @@ -481,8 +487,8 @@ parse_mrset_names (struct lexer *lexer, struct dictionary *dict, return false; if (dict_lookup_mrset (dict, lex_tokcstr (lexer)) == NULL) { - msg (SE, _("No multiple response set named %s."), - lex_tokcstr (lexer)); + lex_error (lexer, _("No multiple response set named %s."), + lex_tokcstr (lexer)); stringi_set_destroy (mrset_names); return false; }