| 1 |
# printf-posix.m4 serial 2 (gettext-0.13.1) |
|---|
| 2 |
dnl Copyright (C) 2003 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_TRY_RUN([ |
|---|
| 18 |
#include <stdio.h> |
|---|
| 19 |
#include <string.h> |
|---|
| 20 |
/* The string "%2$d %1$d", with dollar characters protected from the shell's |
|---|
| 21 |
dollar expansion (possibly an autoconf bug). */ |
|---|
| 22 |
static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; |
|---|
| 23 |
static char buf[100]; |
|---|
| 24 |
int main () |
|---|
| 25 |
{ |
|---|
| 26 |
sprintf (buf, format, 33, 55); |
|---|
| 27 |
return (strcmp (buf, "55 33") != 0); |
|---|
| 28 |
}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, |
|---|
| 29 |
[ |
|---|
| 30 |
AC_EGREP_CPP(notposix, [ |
|---|
| 31 |
#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ |
|---|
| 32 |
notposix |
|---|
| 33 |
#endif |
|---|
| 34 |
], gt_cv_func_printf_posix="guessing no", |
|---|
| 35 |
gt_cv_func_printf_posix="guessing yes") |
|---|
| 36 |
]) |
|---|
| 37 |
]) |
|---|
| 38 |
case $gt_cv_func_printf_posix in |
|---|
| 39 |
*yes) |
|---|
| 40 |
AC_DEFINE(HAVE_POSIX_PRINTF, 1, |
|---|
| 41 |
[Define if your printf() function supports format strings with positions.]) |
|---|
| 42 |
;; |
|---|
| 43 |
esac |
|---|
| 44 |
]) |
|---|