diff options
Diffstat (limited to 'gl/m4/strndup.m4')
| -rw-r--r-- | gl/m4/strndup.m4 | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/gl/m4/strndup.m4 b/gl/m4/strndup.m4 index 810313cd..a1f82743 100644 --- a/gl/m4/strndup.m4 +++ b/gl/m4/strndup.m4 | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | # strndup.m4 serial 17 | 1 | # strndup.m4 serial 21 |
| 2 | dnl Copyright (C) 2002-2003, 2005-2010 Free Software Foundation, Inc. | 2 | dnl Copyright (C) 2002-2003, 2005-2013 Free Software Foundation, Inc. |
| 3 | dnl This file is free software; the Free Software Foundation | 3 | dnl This file is free software; the Free Software Foundation |
| 4 | dnl gives unlimited permission to copy and/or distribute it, | 4 | dnl gives unlimited permission to copy and/or distribute it, |
| 5 | dnl with or without modifications, as long as this notice is preserved. | 5 | dnl with or without modifications, as long as this notice is preserved. |
| @@ -18,13 +18,18 @@ AC_DEFUN([gl_FUNC_STRNDUP], | |||
| 18 | fi | 18 | fi |
| 19 | 19 | ||
| 20 | if test $ac_cv_func_strndup = yes; then | 20 | if test $ac_cv_func_strndup = yes; then |
| 21 | HAVE_STRNDUP=1 | ||
| 21 | # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. | 22 | # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. |
| 22 | AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], | 23 | AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], |
| 23 | [AC_RUN_IFELSE([ | 24 | [AC_RUN_IFELSE([ |
| 24 | AC_LANG_PROGRAM([[#include <string.h> | 25 | AC_LANG_PROGRAM([[#include <string.h> |
| 25 | #include <stdlib.h>]], [[ | 26 | #include <stdlib.h>]], [[ |
| 26 | #ifndef HAVE_DECL_STRNDUP | 27 | #if !HAVE_DECL_STRNDUP |
| 27 | extern char *strndup (const char *, size_t); | 28 | extern |
| 29 | #ifdef __cplusplus | ||
| 30 | "C" | ||
| 31 | #endif | ||
| 32 | char *strndup (const char *, size_t); | ||
| 28 | #endif | 33 | #endif |
| 29 | char *s; | 34 | char *s; |
| 30 | s = strndup ("some longer string", 15); | 35 | s = strndup ("some longer string", 15); |
| @@ -33,17 +38,18 @@ AC_DEFUN([gl_FUNC_STRNDUP], | |||
| 33 | return s[13] != '\0';]])], | 38 | return s[13] != '\0';]])], |
| 34 | [gl_cv_func_strndup_works=yes], | 39 | [gl_cv_func_strndup_works=yes], |
| 35 | [gl_cv_func_strndup_works=no], | 40 | [gl_cv_func_strndup_works=no], |
| 36 | [case $host_os in | 41 | [ |
| 37 | aix*) gl_cv_func_strndup_works="guessing no";; | 42 | changequote(,)dnl |
| 38 | *) gl_cv_func_strndup_works="guessing yes";; | 43 | case $host_os in |
| 39 | esac])]) | 44 | aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; |
| 45 | *) gl_cv_func_strndup_works="guessing yes";; | ||
| 46 | esac | ||
| 47 | changequote([,])dnl | ||
| 48 | ])]) | ||
| 40 | case $gl_cv_func_strndup_works in | 49 | case $gl_cv_func_strndup_works in |
| 41 | *no) | 50 | *no) REPLACE_STRNDUP=1 ;; |
| 42 | REPLACE_STRNDUP=1 | ||
| 43 | AC_LIBOBJ([strndup]) | ||
| 44 | ;; | ||
| 45 | esac | 51 | esac |
| 46 | else | 52 | else |
| 47 | AC_LIBOBJ([strndup]) | 53 | HAVE_STRNDUP=0 |
| 48 | fi | 54 | fi |
| 49 | ]) | 55 | ]) |
