Mercurial > hg > octave-nkf > gnulib-hg
changeset 2096:a5f09f038aaa
(jm_FUNC_STRERROR_R): New file/macro.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sat, 08 Jan 2000 16:30:49 +0000 |
parents | 00ec6425c28f |
children | f319d2735822 |
files | m4/strerror_r.m4 |
diffstat | 1 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/m4/strerror_r.m4 @@ -0,0 +1,39 @@ +#serial 1 + +dnl From Jim Meyering. +dnl Determine whether the strerror_r implementation is one of +dnl the broken ones that returns `int' rather than `char*'. +dnl Actually, this tests only whether it returns an array, +dnl but that should be enough. +dnl This is used by lib/error.c. + +AC_DEFUN(jm_FUNC_STRERROR_R, +[ + # Check strerror_r + AC_CHECK_FUNCS([strerror_r]) + if test $ac_cv_func_strerror_r = yes; then + AC_CHECK_HEADERS(string.h) + AC_CACHE_CHECK([for working strerror_r], + jm_cv_func_working_strerror_r, + [ + AC_TRY_COMPILE( + [ +# include <stdio.h> +# if HAVE_STRING_H +# include <string.h> +# endif + ], + [ + int buf; /* avoiding square brackets makes this easier */ + char x = *strerror_r (0, buf, sizeof buf); + ], + jm_cv_func_working_strerror_r=yes, + jm_cv_func_working_strerror_r=no + ) + if test $jm_cv_func_working_strerror_r = yes; then + AC_DEFINE_UNQUOTED(HAVE_WORKING_STRERROR_R, 1, + [Define to 1 if strerror_r returns a string.]) + fi + ]) + fi +])