2 dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 dnl Test whether the *printf family of functions supports the 'j', 'z', 't',
8 dnl 'L' size specifiers. (ISO C99, POSIX:2001)
9 dnl Result is gl_cv_func_printf_sizes_c99.
11 AC_DEFUN([gl_PRINTF_SIZES_C99],
13 AC_REQUIRE([AC_PROG_CC])
14 AC_REQUIRE([gl_AC_HEADER_STDINT_H])
15 AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
16 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
17 AC_CACHE_CHECK([whether printf supports size specifiers as in C99],
18 [gl_cv_func_printf_sizes_c99],
24 #include <sys/types.h>
25 #if HAVE_STDINT_H_WITH_UINTMAX
28 #if HAVE_INTTYPES_H_WITH_UINTMAX
29 # include <inttypes.h>
34 #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
36 if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
37 || strcmp (buf, "12345671 33") != 0)
41 if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
42 || strcmp (buf, "12345672 33") != 0)
45 if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
46 || strcmp (buf, "12345673 33") != 0)
49 if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
50 || strcmp (buf, "1.5 33") != 0)
53 }], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no],
57 # Guess yes on glibc systems.
58 *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
59 # Guess yes on FreeBSD >= 5.
60 freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";;
61 freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
62 # Guess yes on MacOS X >= 10.3.
63 darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";;
64 darwin*) gl_cv_func_printf_sizes_c99="guessing yes";;
65 # Guess yes on OpenBSD >= 3.9.
66 openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
67 gl_cv_func_printf_sizes_c99="guessing no";;
68 openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
69 # Guess yes on Solaris >= 2.10.
70 solaris2.[0-9]*) gl_cv_func_printf_sizes_c99="guessing no";;
71 solaris*) gl_cv_func_printf_sizes_c99="guessing yes";;
72 # Guess yes on NetBSD >= 3.
73 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
74 gl_cv_func_printf_sizes_c99="guessing no";;
75 netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
76 # If we don't know, assume the worst.
77 *) gl_cv_func_printf_sizes_c99="guessing no";;
84 dnl Test whether the *printf family of functions supports the 'a' and 'A'
85 dnl conversion specifier for hexadecimal output of floating-point numbers.
86 dnl (ISO C99, POSIX:2001)
87 dnl Result is gl_cv_func_printf_directive_a.
89 AC_DEFUN([gl_PRINTF_DIRECTIVE_A],
91 AC_REQUIRE([AC_PROG_CC])
92 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
93 AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives],
94 [gl_cv_func_printf_directive_a],
102 if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
103 || (strcmp (buf, "0x1.922p+1 33") != 0
104 && strcmp (buf, "0x3.244p+0 33") != 0
105 && strcmp (buf, "0x6.488p-1 33") != 0
106 && strcmp (buf, "0xc.91p-2 33") != 0))
108 if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
109 || (strcmp (buf, "-0X1.922P+1 33") != 0
110 && strcmp (buf, "-0X3.244P+0 33") != 0
111 && strcmp (buf, "-0X6.488P-1 33") != 0
112 && strcmp (buf, "-0XC.91P-2 33") != 0))
114 /* This catches a FreeBSD 6.1 bug: it doesn't round. */
115 if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
116 || (strcmp (buf, "0x1.83p+0 33") != 0
117 && strcmp (buf, "0x3.05p-1 33") != 0
118 && strcmp (buf, "0x6.0ap-2 33") != 0
119 && strcmp (buf, "0xc.14p-3 33") != 0))
121 /* This catches a FreeBSD 6.1 bug. See
122 <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
123 if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
126 /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */
127 if (sprintf (buf, "%.1a", 1.999) < 0
128 || (strcmp (buf, "0x1.0p+1") != 0
129 && strcmp (buf, "0x2.0p+0") != 0
130 && strcmp (buf, "0x4.0p-1") != 0
131 && strcmp (buf, "0x8.0p-2") != 0))
133 /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
134 glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
135 if (sprintf (buf, "%.1La", 1.999L) < 0
136 || (strcmp (buf, "0x1.0p+1") != 0
137 && strcmp (buf, "0x2.0p+0") != 0
138 && strcmp (buf, "0x4.0p-1") != 0
139 && strcmp (buf, "0x8.0p-2") != 0))
142 }], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no],
145 # Guess yes on glibc >= 2.5 systems.
147 AC_EGREP_CPP([BZ2908], [
148 #include <features.h>
149 #ifdef __GNU_LIBRARY__
150 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)
155 [gl_cv_func_printf_directive_a="guessing yes"],
156 [gl_cv_func_printf_directive_a="guessing no"])
158 # If we don't know, assume the worst.
159 *) gl_cv_func_printf_directive_a="guessing no";;
165 dnl Test whether the *printf family of functions supports the %F format
166 dnl directive. (ISO C99, POSIX:2001)
167 dnl Result is gl_cv_func_printf_directive_f.
169 AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
171 AC_REQUIRE([AC_PROG_CC])
172 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
173 AC_CACHE_CHECK([whether printf supports the 'F' directive],
174 [gl_cv_func_printf_directive_f],
179 static char buf[100];
182 if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
183 || strcmp (buf, "1234567.000000 33") != 0)
185 if (sprintf (buf, "%F", 1.0 / 0.0) < 0
186 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
188 /* This catches a Cygwin 2007 bug. */
189 if (sprintf (buf, "%.F", 1234.0) < 0
190 || strcmp (buf, "1234") != 0)
193 }], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no],
197 # Guess yes on glibc systems.
198 *-gnu*) gl_cv_func_printf_directive_f="guessing yes";;
199 # Guess yes on FreeBSD >= 6.
200 freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";;
201 freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
202 # Guess yes on MacOS X >= 10.3.
203 darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";;
204 darwin*) gl_cv_func_printf_directive_f="guessing yes";;
205 # Guess yes on Solaris >= 2.10.
206 solaris2.[0-9]*) gl_cv_func_printf_directive_f="guessing no";;
207 solaris*) gl_cv_func_printf_directive_f="guessing yes";;
208 # If we don't know, assume the worst.
209 *) gl_cv_func_printf_directive_f="guessing no";;
216 dnl Test whether the *printf family of functions supports the %n format
217 dnl directive. (ISO C99, POSIX:2001)
218 dnl Result is gl_cv_func_printf_directive_n.
220 AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
222 AC_REQUIRE([AC_PROG_CC])
223 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
224 AC_CACHE_CHECK([whether printf supports the 'n' directive],
225 [gl_cv_func_printf_directive_n],
230 static char buf[100];
234 if (sprintf (buf, "%d %n", 123, &count, 33, 44, 55) < 0
235 || strcmp (buf, "123 ") != 0
239 }], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no],
243 *) gl_cv_func_printf_directive_n="guessing yes";;
250 dnl Test whether the *printf family of functions supports POSIX/XSI format
251 dnl strings with positions. (POSIX:2001)
252 dnl Result is gl_cv_func_printf_positions.
254 AC_DEFUN([gl_PRINTF_POSITIONS],
256 AC_REQUIRE([AC_PROG_CC])
257 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
258 AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions],
259 [gl_cv_func_printf_positions],
264 /* The string "%2$d %1$d", with dollar characters protected from the shell's
265 dollar expansion (possibly an autoconf bug). */
266 static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
267 static char buf[100];
270 sprintf (buf, format, 33, 55);
271 return (strcmp (buf, "55 33") != 0);
272 }], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no],
276 netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
277 gl_cv_func_printf_positions="guessing no";;
278 beos*) gl_cv_func_printf_positions="guessing no";;
279 mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
280 *) gl_cv_func_printf_positions="guessing yes";;
287 dnl Test whether the *printf family of functions supports POSIX/XSI format
288 dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001)
289 dnl Result is gl_cv_func_printf_flag_grouping.
291 AC_DEFUN([gl_PRINTF_FLAG_GROUPING],
293 AC_REQUIRE([AC_PROG_CC])
294 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
295 AC_CACHE_CHECK([whether printf supports the grouping flag],
296 [gl_cv_func_printf_flag_grouping],
301 static char buf[100];
304 if (sprintf (buf, "%'d %d", 1234567, 99) < 0
305 || buf[strlen (buf) - 1] != '9')
308 }], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no],
312 netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
313 mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
314 *) gl_cv_func_printf_flag_grouping="guessing yes";;
321 dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001)
322 dnl Result is ac_cv_func_snprintf.
324 AC_DEFUN([gl_SNPRINTF_PRESENCE],
326 AC_CHECK_FUNCS_ONCE([snprintf])
329 dnl Test whether the string produced by the snprintf function is always NUL
330 dnl terminated. (ISO C99, POSIX:2001)
331 dnl Result is gl_cv_func_snprintf_truncation_c99.
333 AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
335 AC_REQUIRE([AC_PROG_CC])
336 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
337 AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
338 [gl_cv_func_snprintf_truncation_c99],
343 static char buf[100];
346 strcpy (buf, "ABCDEF");
347 snprintf (buf, 3, "%d %d", 4567, 89);
348 if (memcmp (buf, "45\0DEF", 6) != 0)
351 }], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no],
355 # Guess yes on glibc systems.
356 *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
357 # Guess yes on FreeBSD >= 5.
358 freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
359 freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
360 # Guess yes on MacOS X >= 10.3.
361 darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
362 darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
363 # Guess yes on OpenBSD >= 3.9.
364 openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
365 gl_cv_func_snprintf_truncation_c99="guessing no";;
366 openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
367 # Guess yes on Solaris >= 2.6.
368 solaris2.[0-5]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
369 solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
370 # Guess yes on AIX >= 4.
371 aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
372 aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
373 # Guess yes on HP-UX >= 11.
374 hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
375 hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
376 # Guess yes on IRIX >= 6.5.
377 irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";;
378 # Guess yes on OSF/1 >= 5.
379 osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
380 osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
381 # Guess yes on NetBSD >= 3.
382 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
383 gl_cv_func_snprintf_truncation_c99="guessing no";;
384 netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
386 beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
387 # If we don't know, assume the worst.
388 *) gl_cv_func_snprintf_truncation_c99="guessing no";;
395 dnl Test whether the return value of the snprintf function is the number
396 dnl of bytes (excluding the terminating NUL) that would have been produced
397 dnl if the buffer had been large enough. (ISO C99, POSIX:2001)
398 dnl For example, this test program fails on IRIX 6.5:
399 dnl ---------------------------------------------------------------------
400 dnl #include <stdio.h>
403 dnl static char buf[8];
404 dnl int retval = snprintf (buf, 3, "%d", 12345);
405 dnl return retval >= 0 && retval < 3;
407 dnl ---------------------------------------------------------------------
408 dnl Result is gl_cv_func_snprintf_retval_c99.
410 AC_DEFUN([gl_SNPRINTF_RETVAL_C99],
412 AC_REQUIRE([AC_PROG_CC])
413 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
414 AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
415 [gl_cv_func_snprintf_retval_c99],
420 static char buf[100];
423 strcpy (buf, "ABCDEF");
424 if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
427 }], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no],
431 # Guess yes on glibc systems.
432 *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
433 # Guess yes on FreeBSD >= 5.
434 freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
435 freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
436 # Guess yes on MacOS X >= 10.3.
437 darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
438 darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
439 # Guess yes on OpenBSD >= 3.9.
440 openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
441 gl_cv_func_snprintf_retval_c99="guessing no";;
442 openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
443 # Guess yes on Solaris >= 2.6.
444 solaris2.[0-5]*) gl_cv_func_snprintf_retval_c99="guessing no";;
445 solaris*) gl_cv_func_snprintf_retval_c99="guessing yes";;
446 # Guess yes on AIX >= 4.
447 aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
448 aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
449 # Guess yes on NetBSD >= 3.
450 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
451 gl_cv_func_snprintf_retval_c99="guessing no";;
452 netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
454 beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
455 # If we don't know, assume the worst.
456 *) gl_cv_func_snprintf_retval_c99="guessing no";;
463 dnl Test whether the snprintf function supports the %n format directive
464 dnl also in truncated portions of the format string. (ISO C99, POSIX:2001)
465 dnl Result is gl_cv_func_snprintf_directive_n.
467 AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
469 AC_REQUIRE([AC_PROG_CC])
470 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
471 AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
472 [gl_cv_func_snprintf_directive_n],
477 static char buf[100];
481 snprintf (buf, 4, "%d %n", 12345, &count, 33, 44, 55);
485 }], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no],
489 # Guess yes on glibc systems.
490 *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
491 # Guess yes on FreeBSD >= 5.
492 freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
493 freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
494 # Guess yes on MacOS X >= 10.3.
495 darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";;
496 darwin*) gl_cv_func_snprintf_directive_n="guessing yes";;
497 # Guess yes on Solaris >= 2.6.
498 solaris2.[0-5]*) gl_cv_func_snprintf_directive_n="guessing no";;
499 solaris*) gl_cv_func_snprintf_directive_n="guessing yes";;
500 # Guess yes on AIX >= 4.
501 aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";;
502 aix*) gl_cv_func_snprintf_directive_n="guessing yes";;
503 # Guess yes on IRIX >= 6.5.
504 irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";;
505 # Guess yes on OSF/1 >= 5.
506 osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
507 osf*) gl_cv_func_snprintf_directive_n="guessing yes";;
508 # Guess yes on NetBSD >= 3.
509 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
510 gl_cv_func_snprintf_directive_n="guessing no";;
511 netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
513 beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
514 # If we don't know, assume the worst.
515 *) gl_cv_func_snprintf_directive_n="guessing no";;
522 dnl Test whether the vsnprintf function, when passed a zero size, produces no
523 dnl output. (ISO C99, POSIX:2001)
524 dnl For example, snprintf nevertheless writes a NUL byte in this case
526 dnl ---------------------------------------------------------------------
527 dnl #include <stdio.h>
530 dnl static char buf[8] = "DEADBEEF";
531 dnl snprintf (buf, 0, "%d", 12345);
532 dnl return buf[0] != 'D';
534 dnl ---------------------------------------------------------------------
535 dnl And vsnprintf writes any output without bounds in this case, behaving like
536 dnl vsprintf, on HP-UX 11 and OSF/1 5.1:
537 dnl ---------------------------------------------------------------------
538 dnl #include <stdarg.h>
539 dnl #include <stdio.h>
540 dnl static int my_snprintf (char *buf, int size, const char *format, ...)
544 dnl va_start (args, format);
545 dnl ret = vsnprintf (buf, size, format, args);
551 dnl static char buf[8] = "DEADBEEF";
552 dnl my_snprintf (buf, 0, "%d", 12345);
553 dnl return buf[0] != 'D';
555 dnl ---------------------------------------------------------------------
556 dnl Result is gl_cv_func_vsnprintf_zerosize_c99.
558 AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99],
560 AC_REQUIRE([AC_PROG_CC])
561 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
562 AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99],
563 [gl_cv_func_vsnprintf_zerosize_c99],
568 static int my_snprintf (char *buf, int size, const char *format, ...)
572 va_start (args, format);
573 ret = vsnprintf (buf, size, format, args);
579 static char buf[8] = "DEADBEEF";
580 my_snprintf (buf, 0, "%d", 12345);
581 return buf[0] != 'D';
583 [gl_cv_func_vsnprintf_zerosize_c99=yes],
584 [gl_cv_func_vsnprintf_zerosize_c99=no],
588 # Guess yes on glibc systems.
589 *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
590 # Guess yes on FreeBSD >= 5.
591 freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
592 freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
593 # Guess yes on MacOS X >= 10.3.
594 darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
595 darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
596 # Guess yes on Solaris >= 2.6.
597 solaris2.[0-5]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
598 solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
599 # Guess yes on AIX >= 4.
600 aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
601 aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
602 # Guess yes on IRIX >= 6.5.
603 irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
604 # Guess yes on NetBSD >= 3.
605 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
606 gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
607 netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
609 beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
610 # Guess yes on mingw.
611 mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
612 # If we don't know, assume the worst.
613 *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
620 dnl The results of these tests on various platforms are:
622 dnl 1 = gl_PRINTF_SIZES_C99
623 dnl 2 = gl_PRINTF_DIRECTIVE_A
624 dnl 3 = gl_PRINTF_DIRECTIVE_F
625 dnl 4 = gl_PRINTF_DIRECTIVE_N
626 dnl 5 = gl_PRINTF_POSITIONS
627 dnl 6 = gl_PRINTF_FLAG_GROUPING
628 dnl 7 = gl_SNPRINTF_PRESENCE
629 dnl 8 = gl_SNPRINTF_TRUNCATION_C99
630 dnl 9 = gl_SNPRINTF_RETVAL_C99
631 dnl 10 = gl_SNPRINTF_DIRECTIVE_N
632 dnl 11 = gl_VSNPRINTF_ZEROSIZE_C99
634 dnl 1 = checking whether printf supports size specifiers as in C99...
635 dnl 2 = checking whether printf supports the 'a' and 'A' directives...
636 dnl 3 = checking whether printf supports the 'F' directive...
637 dnl 4 = checking whether printf supports the 'n' directive...
638 dnl 5 = checking whether printf supports POSIX/XSI format strings with positions...
639 dnl 6 = checking whether printf supports the grouping flag...
640 dnl 7 = checking for snprintf...
641 dnl 8 = checking whether snprintf truncates the result as in C99...
642 dnl 9 = checking whether snprintf returns a byte count as in C99...
643 dnl 10 = checking whether snprintf fully supports the 'n' directive...
644 dnl 11 = checking whether vsnprintf respects a zero size as in C99...
648 dnl 1 2 3 4 5 6 7 8 9 10 11
649 dnl glibc 2.5 . . . . . . . . . . .
650 dnl glibc 2.3.6 . # . . . . . . . . .
651 dnl FreeBSD 5.4, 6.1 . ? . . . . . . . . .
652 dnl MacOS X 10.3.9 . # . . . . . . . . .
653 dnl OpenBSD 3.9, 4.0 . # ? . . ? . . . ? ?
654 dnl Cygwin 2007 . # # . . ? . . . . ?
655 dnl Cygwin 2006 # # # . . ? . . . . ?
656 dnl Solaris 10 . # . . . . . . . . .
657 dnl Solaris 2.6 ... 9 # # # . . . . . . . .
658 dnl Solaris 2.5.1 # # # . . . # # # # #
659 dnl AIX 5.2 . # . . . . . . . . .
660 dnl AIX 4.3.2, 5.1 # # # . . . . . . . .
661 dnl HP-UX 11.31 . # . . . . . . # # .
662 dnl HP-UX 10.20, 11.00, 11.11, 11.23 # # # . . . . . # # #
663 dnl IRIX 6.5 # # # . . . . . # . .
664 dnl OSF/1 5.1 # # # . . . . . # . #
665 dnl OSF/1 4.0d # # # . . . # # # # #
666 dnl NetBSD 4.0 . ? ? . . ? . . . ? ?
667 dnl NetBSD 3.0 . # # . # # . . . . .
668 dnl BeOS # # # . # . . . . . .
669 dnl mingw # # # . # # . # # # .