X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fmbswidth.m4;h=159c4a37f265c1e21ee71ea29ef4efa56f770230;hb=9c5e07d317077af2cfc3f0816bcc8cab03dd4260;hp=085c8849c8c28634d636d6a982c757cc550a70ea;hpb=7b64121be20043ededdeac46d6a14134305b58a3;p=gnulib.git diff --git a/m4/mbswidth.m4 b/m4/mbswidth.m4 index 085c8849c..159c4a37f 100644 --- a/m4/mbswidth.m4 +++ b/m4/mbswidth.m4 @@ -1,20 +1,46 @@ -#serial 4 +# mbswidth.m4 serial 18 +dnl Copyright (C) 2000-2002, 2004, 2006-2011 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. dnl autoconf tests required for use of mbswidth.c dnl From Bruno Haible. -AC_DEFUN(jm_PREREQ_MBSWIDTH, +AC_DEFUN([gl_MBSWIDTH], [ - AC_REQUIRE([AC_HEADER_STDC]) - AC_REQUIRE([AM_C_PROTOTYPES]) - AC_CHECK_HEADERS(limits.h stdlib.h string.h wchar.h wctype.h) - AC_CHECK_FUNCS(isascii iswprint wcwidth) - jm_FUNC_MBRTOWC - headers=' -# if HAVE_WCHAR_H -# include -# endif -' - AC_CHECK_DECLS([wcwidth], , , $headers) - AC_MBSTATE_T + AC_CHECK_HEADERS_ONCE([wchar.h]) + AC_CHECK_FUNCS_ONCE([isascii mbsinit]) + + dnl UnixWare 7.1.1 has a declaration of a function mbswidth() + dnl that clashes with ours. + AC_CACHE_CHECK([whether mbswidth is declared in ], + [ac_cv_have_decl_mbswidth], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be included + before . */ +#include +#include +#include +#include + ]], + [[ + char *p = (char *) mbswidth; + return !p; + ]])], + [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 , and to 0 otherwise.]) + + AC_TYPE_MBSTATE_T ])