Fix portability problem with Tru64 and BSD/OS.
[pspp] / m4 / mbswidth.m4
index d7981ca39b74db3fd7b286dd2af5dd7586a20aba..7eefd879d26a46e04279dd0972a38ebd905fdc6b 100644 (file)
@@ -1,4 +1,4 @@
-#serial 9
+#serial 10
 
 dnl autoconf tests required for use of mbswidth.c
 dnl From Bruno Haible.
@@ -32,5 +32,24 @@ AC_DEFUN([gl_MBSWIDTH],
   AC_DEFINE_UNQUOTED(HAVE_DECL_WCWIDTH, $ac_val,
     [Define to 1 if you have the declaration of wcwidth(), and to 0 otherwise.])
 
+  dnl UnixWare 7.1.1 <wchar.h> has a declaration of a function mbswidth()
+  dnl that clashes with ours.
+  AC_CACHE_CHECK([whether mbswidth is declared in <wchar.h>],
+    ac_cv_have_decl_mbswidth,
+    [AC_TRY_COMPILE([
+#if HAVE_WCHAR_H
+# include <wchar.h>
+#endif
+], [
+  char *p = (char *) mbswidth;
+], ac_cv_have_decl_mbswidth=yes, ac_cv_have_decl_mbswidth=no)])
+  if test $ac_cv_have_decl_mbswidth = yes; then
+    ac_val=1
+  else
+    ac_val=0
+  fi
+  AC_DEFINE_UNQUOTED(HAVE_DECL_MBSWIDTH_IN_WCHAR_H, $ac_val,
+    [Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0 otherwise.])
+
   AC_TYPE_MBSTATE_T
 ])