Re: [RFC/RFA] Add support for catch Ada exceptions (take 2)

Joel Brobecker
2007-01-02T05:44:44Z

> > + switch (b->type)
> > + {
> > + case bp_catch_exception:
> > + if (b->addr_string != NULL)
> > + {
> > + const char *template = _("`%s' Ada exception");
> > + char *msg = alloca (strlen (template) + strlen (b->addr_string));
> > +
> > + sprintf (msg, _("`%s' Ada exception"), b->addr_string);
>
> Why don't you use `template' instead of having two identical strings?

That's what I first did, but the compiler complains that he cannot check
the string format. Perhaps I could use a macro instead of the plain
string, that would reduce a bit the chances of mismatch. This case is
very similar to a case discussed recently. Since the strings are very
close, the changes of discrepancy are very slim.

I prefer this solution over using xsnprintf as suggested by Mark,
because we then introduce an arbitrary constant. But it's only a mild
preference, however, so let me know if you prefer it like this:

char msg[512];
xsnprintf (msg, sizeof (msg), _("`%s' Ada exception"), b->addr_string);

--
Joel