errfn.c (cp_thing): Print buf as a string not as a printf format to avoid problems with the operator%.
* errfn.c (cp_thing): Print buf as a string not as a printf format to avoid problems with the operator%. Consequently, `%%' sequences in format are copied as `%' in buf. From-SVN: r22825
This commit is contained in:
parent
5f2c99c43b
commit
12a27dfc4e
2 changed files with 12 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
|||
1998-10-04 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
|
||||
|
||||
* errfn.c (cp_thing): Print buf as a string not as a printf format
|
||||
to avoid problems with the operator%. Consequently, `%%' sequences
|
||||
in format are copied as `%' in buf.
|
||||
|
||||
1998-10-04 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* pt.c (pop_tinst_level): Call extract_interface_info.
|
||||
|
|
|
@ -149,18 +149,15 @@ cp_thing (errfn, atarg1, format, ap)
|
|||
}
|
||||
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. */
|
||||
/* A `%%' has occurred in the input string. Replace it with
|
||||
a `%' in the formatted message buf. */
|
||||
|
||||
len += 2;
|
||||
if (len > buflen)
|
||||
if (++len > buflen)
|
||||
{
|
||||
buflen = len;
|
||||
buf = xrealloc (buf, len);
|
||||
}
|
||||
strcpy (buf + offset, "%%");
|
||||
offset += 2;
|
||||
buf[offset++] = '%';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -190,10 +187,10 @@ cp_thing (errfn, atarg1, format, ap)
|
|||
{
|
||||
char *file = cp_file_of (atarg);
|
||||
int line = cp_line_of (atarg);
|
||||
(*errfn) (file, line, buf);
|
||||
(*errfn) (file, line, "%s", buf);
|
||||
}
|
||||
else
|
||||
(*errfn) (buf);
|
||||
(*errfn) ("%s", buf);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue