]>
Commit | Line | Data |
---|---|---|
4d8d554a CW |
1 | # printf-posix.m4 serial 6 (gettext-0.18.2) |
2 | dnl Copyright (C) 2003, 2007, 2009-2013 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. | |
6 | ||
7 | dnl From Bruno Haible. | |
8 | dnl Test whether the printf() function supports POSIX/XSI format strings with | |
9 | dnl positions. | |
10 | ||
11 | AC_DEFUN([gt_PRINTF_POSIX], | |
12 | [ | |
13 | AC_REQUIRE([AC_PROG_CC]) | |
14 | AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], | |
15 | gt_cv_func_printf_posix, | |
16 | [ | |
17 | AC_RUN_IFELSE( | |
18 | [AC_LANG_SOURCE([[ | |
19 | #include <stdio.h> | |
20 | #include <string.h> | |
21 | /* The string "%2$d %1$d", with dollar characters protected from the shell's | |
22 | dollar expansion (possibly an autoconf bug). */ | |
23 | static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; | |
24 | static char buf[100]; | |
25 | int main () | |
26 | { | |
27 | sprintf (buf, format, 33, 55); | |
28 | return (strcmp (buf, "55 33") != 0); | |
29 | }]])], | |
30 | [gt_cv_func_printf_posix=yes], | |
31 | [gt_cv_func_printf_posix=no], | |
32 | [ | |
33 | AC_EGREP_CPP([notposix], [ | |
34 | #if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ | |
35 | notposix | |
36 | #endif | |
37 | ], | |
38 | [gt_cv_func_printf_posix="guessing no"], | |
39 | [gt_cv_func_printf_posix="guessing yes"]) | |
40 | ]) | |
41 | ]) | |
42 | case $gt_cv_func_printf_posix in | |
43 | *yes) | |
44 | AC_DEFINE([HAVE_POSIX_PRINTF], [1], | |
45 | [Define if your printf() function supports format strings with positions.]) | |
46 | ;; | |
47 | esac | |
48 | ]) |