* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N): Remove fmtstring and use a string literal. --- m4/printf.m4 | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/m4/printf.m4 b/m4/printf.m4 index 751e896..4b6c9d8 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -631,7 +631,6 @@ invalid_parameter_handler (const wchar_t *expression, exit (1); } #endif -static char fmtstring[10]; static char buf[100]; int main () { @@ -639,11 +638,7 @@ int main () #ifdef _MSC_VER _set_invalid_parameter_handler (invalid_parameter_handler); #endif - /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) - support %n in format strings in read-only memory but not in writable - memory. */ - strcpy (fmtstring, "%d %n"); - if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0 + if (sprintf (buf, "%d %n", 123, &count, 33, 44, 55) < 0 || strcmp (buf, "123 ") != 0 || count != 4) return 1; @@ -1294,16 +1289,11 @@ static int my_snprintf (char *buf, int size, const char *format, ...) return ret; } #endif -static char fmtstring[10]; static char buf[100]; int main () { int count = -1; - /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) - support %n in format strings in read-only memory but not in writable - memory. */ - strcpy (fmtstring, "%d %n"); - my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); + my_snprintf (buf, 4, "%d %n", 12345, &count, 33, 44, 55); if (count != 6) return 1; return 0; -- 1.7.12 -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."