Karthik Nayak <[email protected]> writes:
> +static void if_then_else_handler(struct ref_formatting_stack **stack)
> +{
> + struct ref_formatting_stack *cur = *stack;
> + struct ref_formatting_stack *prev = cur->prev;
> + struct if_then_else *if_then_else = (struct if_then_else
> *)cur->at_end_data;
> +
You should add
if (!if_then_else->then_atom)
die(_("format: %%(if) atom used without a %%(then) atom"));
here ...
> +static void then_atom_handler(struct atom_value *atomv, struct
> ref_formatting_state *state)
> +{
> + struct ref_formatting_stack *cur = state->stack;
> + struct if_then_else *if_then_else = NULL;
> +
> + if (cur->at_end == if_then_else_handler)
> + if_then_else = (struct if_then_else *)cur->at_end_data;
> + if (!if_then_else)
> + die(_("format: %%(then) atom used without an %%(if) atom"));
> + if (if_then_else->then_atom)
> + die(_("format: %%(then) atom used more than once"));
> + if_then_else->then_atom = 1;
... and
if (if_then_else->else_atom)
die(_("format: %%(then) atom used after %%(else)"));
here, just in case (adding the two corresponding test_must_fail wouldn't
harm of course).
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html