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;
{
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));
{
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);
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;
}