printf-posix.m4 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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, distributed under the terms of the GNU
  4. dnl General Public License. As a special exception to the GNU General
  5. dnl Public License, this file may be distributed as part of a program
  6. dnl that contains a configuration script generated by Autoconf, under
  7. dnl the same distribution terms as the rest of that program.
  8. dnl From Bruno Haible.
  9. dnl Test whether the printf() function supports POSIX/XSI format strings with
  10. dnl positions.
  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. ])