X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fstrnlen.m4;h=52bb838f96b9eac3f2f782dbc6b1b918d85b5cdf;hb=423d3cac13c30bb0d5f85e5fac6ab1406ed1731a;hp=a5bd2ef0075bd3b4f79f4501041980fe5be36c6f;hpb=f4b7f14292df9fe59509a5a1aa996cc26e2607fc;p=gnulib.git diff --git a/m4/strnlen.m4 b/m4/strnlen.m4 index a5bd2ef00..52bb838f9 100644 --- a/m4/strnlen.m4 +++ b/m4/strnlen.m4 @@ -1,31 +1,32 @@ -#serial 1 +# strnlen.m4 serial 12 +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation, +dnl 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. -# This is already in cvs autoconf -- what will be 2.52g. -# Define it here for those who aren't on the bleeding edge. -# FIXME: remove this file once the next autoconf release comes out. +AC_DEFUN([gl_FUNC_STRNLEN], +[ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) -undefine([AC_FUNC_STRNLEN]) + dnl Persuade glibc to declare strnlen(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) -# AC_FUNC_STRNLEN -# -------------- -AC_DEFUN([AC_FUNC_STRNLEN], -[AC_CACHE_CHECK([for working strnlen], ac_cv_func_strnlen_working, -[AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[ -#define S "foobar" -#define S_LEN (sizeof S - 1) + AC_CHECK_DECLS_ONCE([strnlen]) + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + else + AC_FUNC_STRNLEN + dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]). + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + fi + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then + AC_LIBOBJ([strnlen]) + gl_PREREQ_STRNLEN + fi +]) - /* At least one implementation is buggy: that of AIX 4.3. */ - int i; - for (i = 0; i < S_LEN + 1; ++i) - { - int result = i <= S_LEN ? i : S_LEN; - if (strnlen (S, i) != result) - exit (1); - } - exit (0); -]])], - [ac_cv_func_strnlen_working=yes], - [ac_cv_func_strnlen_working=no], - [ac_cv_func_strnlen_working=no])]) -test $ac_cv_func_strnlen_working = no && AC_LIBOBJ([strnlen]) -])# AC_FUNC_STRNLEN +# Prerequisites of lib/strnlen.c. +AC_DEFUN([gl_PREREQ_STRNLEN], [:])