* errfn.c (cp_thing): Handle the `%%' formatting sequence.

From-SVN: r20537
This commit is contained in:
Mark Mitchell 1998-06-17 10:40:49 +00:00 committed by Mark Mitchell
parent d460fb3cdd
commit a5b8127eb1
2 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,7 @@
1998-06-17 Mark Mitchell <mark@markmitchell.com>
* errfn.c (cp_thing): Handle the `%%' formatting sequence.
1998-06-17 Jason Merrill <jason@yorick.cygnus.com>
* method.c (hack_identifier): Complain about getting a namespace

View File

@ -50,7 +50,8 @@ extern int cp_line_of PROTO((tree));
#define STRDUP(f) (ap = (char *) alloca (strlen (f) +1), strcpy (ap, (f)), ap)
/* This function supports only `%s', `%d', and the C++ print codes. */
/* This function supports only `%s', `%d', `%%', and the C++ print
codes. */
#ifdef __STDC__
static void
@ -152,6 +153,21 @@ cp_thing (errfn, atarg1, format, ap)
strcpy (buf + offset, p);
offset += plen;
}
else if (*f == '%')
{
/* A `%%' has occurred in the input string. Since the
string we produce here will be passed to vprintf we must
preserve both `%' characters. */
len += 2;
if (len > buflen)
{
buflen = len;
buf = xrealloc (buf, len);
}
strcpy (buf + offset, "%%");
offset += 2;
}
else
{
if (*f != 'd')