X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fstrnlen.m4;h=eae82b77222ac428a063fd37f7ce9e477af0988d;hb=533101a268dc5015a140ff4695d8eeb04fbe57b6;hp=a5bd2ef0075bd3b4f79f4501041980fe5be36c6f;hpb=f4b7f14292df9fe59509a5a1aa996cc26e2607fc;p=gnulib.git diff --git a/m4/strnlen.m4 b/m4/strnlen.m4 index a5bd2ef00..eae82b772 100644 --- a/m4/strnlen.m4 +++ b/m4/strnlen.m4 @@ -1,31 +1,30 @@ -#serial 1 +# strnlen.m4 serial 13 +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 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 + m4_pushdef([AC_LIBOBJ], [:]) + dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]). + AC_FUNC_STRNLEN + m4_popdef([AC_LIBOBJ]) + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + 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], [:])