1# strchrnul.m4 serial 9 2dnl Copyright (C) 2003, 2007, 2009-2012 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7AC_DEFUN([gl_FUNC_STRCHRNUL], 8[ 9 dnl Persuade glibc <string.h> to declare strchrnul(). 10 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) 11 12 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) 13 AC_CHECK_FUNCS([strchrnul]) 14 if test $ac_cv_func_strchrnul = no; then 15 HAVE_STRCHRNUL=0 16 else 17 AC_CACHE_CHECK([whether strchrnul works], 18 [gl_cv_func_strchrnul_works], 19 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ 20#include <string.h> /* for strchrnul */ 21]], [[const char *buf = "a"; 22 return strchrnul (buf, 'b') != buf + 1; 23 ]])], 24 [gl_cv_func_strchrnul_works=yes], 25 [gl_cv_func_strchrnul_works=no], 26 [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10 27 AC_EGREP_CPP([Lucky user], 28 [ 29#if defined __CYGWIN__ 30 #include <cygwin/version.h> 31 #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) 32 Lucky user 33 #endif 34#else 35 Lucky user 36#endif 37 ], 38 [gl_cv_func_strchrnul_works="guessing yes"], 39 [gl_cv_func_strchrnul_works="guessing no"]) 40 ]) 41 ]) 42 case "$gl_cv_func_strchrnul_works" in 43 *yes) ;; 44 *) REPLACE_STRCHRNUL=1 ;; 45 esac 46 fi 47]) 48 49# Prerequisites of lib/strchrnul.c. 50AC_DEFUN([gl_PREREQ_STRCHRNUL], [:]) 51