diff options
author | Bruno Haible <bruno@clisp.org> | 2003-05-09 20:28:17 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2009-06-23 12:10:28 +0200 |
commit | cb29b76379a7f9f485a6054f088fe54ab8fb1418 (patch) | |
tree | 5ff7a56c335dd79ca42558f68743c677a296e851 /gettext-tools/m4/strerror_r.m4 | |
parent | a82b4e84b0d6634a199839a467ec5ab346d2da25 (diff) | |
download | external_gettext-cb29b76379a7f9f485a6054f088fe54ab8fb1418.zip external_gettext-cb29b76379a7f9f485a6054f088fe54ab8fb1418.tar.gz external_gettext-cb29b76379a7f9f485a6054f088fe54ab8fb1418.tar.bz2 |
Update error.c from gnulib.
Diffstat (limited to 'gettext-tools/m4/strerror_r.m4')
-rw-r--r-- | gettext-tools/m4/strerror_r.m4 | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/gettext-tools/m4/strerror_r.m4 b/gettext-tools/m4/strerror_r.m4 new file mode 100644 index 0000000..bd28635 --- /dev/null +++ b/gettext-tools/m4/strerror_r.m4 @@ -0,0 +1,59 @@ +#serial 1003 +# Experimental replacement for the function in the latest CVS autoconf. +# Use with the error.c file in ../lib. + +# Copyright 2001 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +undefine([AC_FUNC_STRERROR_R]) + +# AC_FUNC_STRERROR_R +# ------------------ +AC_DEFUN([AC_FUNC_STRERROR_R], +[AC_CHECK_DECLS([strerror_r]) +AC_CHECK_FUNCS([strerror_r]) +AC_CACHE_CHECK([whether strerror_r returns char *], + ac_cv_func_strerror_r_char_p, + [ + ac_cv_func_strerror_r_char_p=no + if test $ac_cv_have_decl_strerror_r = yes; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], + [[ + char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + char *p = strerror_r (0, buf, sizeof buf); + ]])], + ac_cv_func_strerror_r_char_p=yes) + else + # strerror_r is not declared. Choose between + # systems that have relatively inaccessible declarations for the + # function. BeOS and DEC UNIX 4.0 fall in this category, but the + # former has a strerror_r that returns char*, while the latter + # has a strerror_r that returns `int'. + # This test should segfault on the DEC system. + AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + extern char *strerror_r ();], + [[char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + exit (!isalpha (x));]])], + ac_cv_func_strerror_r_char_p=yes, , :) + fi + ]) +if test $ac_cv_func_strerror_r_char_p = yes; then + AC_DEFINE([STRERROR_R_CHAR_P], 1, + [Define to 1 if strerror_r returns char *.]) +fi +])# AC_FUNC_STRERROR_R |