summaryrefslogtreecommitdiff
path: root/gnulib-m4/wctob.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-m4/wctob.m4')
-rw-r--r--gnulib-m4/wctob.m447
1 files changed, 30 insertions, 17 deletions
diff --git a/gnulib-m4/wctob.m4 b/gnulib-m4/wctob.m4
index 3af3cc7b..501dc4ab 100644
--- a/gnulib-m4/wctob.m4
+++ b/gnulib-m4/wctob.m4
@@ -1,5 +1,5 @@
-# wctob.m4 serial 5
-dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
+# wctob.m4 serial 10
+dnl Copyright (C) 2008-2015 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -10,11 +10,10 @@ AC_DEFUN([gl_FUNC_WCTOB],
AC_CHECK_FUNCS_ONCE([wctob])
if test $ac_cv_func_wctob = no; then
+ HAVE_WCTOB=0
HAVE_DECL_WCTOB=0
- gl_REPLACE_WCHAR_H
- AC_LIBOBJ([wctob])
- gl_PREREQ_WCTOB
else
+ HAVE_WCTOB=1
dnl Solaris 9 has the wctob() function but it does not work.
dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned
@@ -38,8 +37,16 @@ changequote(,)dnl
changequote([,])dnl
case "$host_os" in
cygwin*)
- AC_TRY_RUN([
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
#include <locale.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
#include <wchar.h>
register long global __asm__ ("%ebx");
@@ -54,13 +61,24 @@ int main ()
if (global != 0x12345678)
return 2;
return 0;
-}], [:], [gl_cv_func_wctob_works=no], [:])
+}]])],
+ [:],
+ [gl_cv_func_wctob_works=no],
+ [:])
;;
esac
if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then
- AC_TRY_RUN([
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
#include <locale.h>
#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
#include <wchar.h>
int main ()
{
@@ -73,7 +91,7 @@ int main ()
return 1;
}
return 0;
-}],
+}]])],
[gl_cv_func_wctob_works=yes],
[gl_cv_func_wctob_works=no],
[:])
@@ -83,14 +101,10 @@ int main ()
*yes) ;;
*) REPLACE_WCTOB=1 ;;
esac
- if test $REPLACE_WCTOB = 1; then
- gl_REPLACE_WCHAR_H
- AC_LIBOBJ([wctob])
- gl_PREREQ_WCTOB
- else
+ if test $REPLACE_WCTOB = 0; then
dnl IRIX 6.5 has the wctob() function but does not declare it.
- AC_CHECK_DECLS([wctob], [], [], [
+ AC_CHECK_DECLS([wctob], [], [], [[
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
<wchar.h>.
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
@@ -99,10 +113,9 @@ int main ()
#include <stdio.h>
#include <time.h>
#include <wchar.h>
-])
+]])
if test $ac_cv_have_decl_wctob != yes; then
HAVE_DECL_WCTOB=0
- gl_REPLACE_WCHAR_H
fi
fi
fi