+| "%define" variable content.opt
+ {
+ char const name_prefix[] = "percent_define(";
+ size_t length = strlen ($2);
+ char *name = xmalloc (sizeof name_prefix + length + 1);
+ strcpy (name, name_prefix);
+ strcpy (name + sizeof name_prefix - 1, $2);
+ strcpy (name + sizeof name_prefix - 1 + length, ")");
+ if (muscle_find_const (name))
+ warn_at (@2, _("%s `%s' redefined"), "%define variable", $2);
+ MUSCLE_INSERT_STRING (uniqstr_new (name), $3);
+ free (name);
+ muscle_grow_user_name_list ("percent_define_user_variables", $2, @2);
+ }