# with or without modifications, as long as this notice is preserved.
# Written by Paul Eggert.
-# serial 5
+# serial 7
AC_DEFUN([gl_FUNC_GETCWD_NULL],
[
# endif
]], [[
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* mingw cwd does not start with '/', but getcwd does allocate. */
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
#else
if (chdir ("/") != 0)
return 1;
return 0;
}
#endif
+ /* If size is non-zero, allocation must fail if size is too small */
+ if (getcwd (NULL, 1))
+ return 5;
]])],
[gl_cv_func_getcwd_null=yes],
[gl_cv_func_getcwd_null=no],
*-gnu*) gl_cv_func_getcwd_null="guessing yes";;
# Guess yes on Cygwin.
cygwin*) gl_cv_func_getcwd_null="guessing yes";;
- # Guess yes on mingw.
- mingw*) gl_cv_func_getcwd_null="guessing yes";;
# If we don't know, assume the worst.
*) gl_cv_func_getcwd_null="guessing no";;
esac
case $gl_cv_func_getcwd_null in
*yes) ;;
*)
- dnl Minimal replacement
+ dnl Minimal replacement lib/getcwd-lgpl.c.
REPLACE_GETCWD=1
- AC_LIBOBJ([getcwd-lgpl])
;;
esac
])
case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in
*yes,yes,no) ;;
*)
- dnl Full replacement, overrides LGPL replacement.
- REPLACE_GETCWD=1
- AC_LIBOBJ([getcwd])
- gl_PREREQ_GETCWD;;
+ dnl Full replacement lib/getcwd.c, overrides LGPL replacement.
+ REPLACE_GETCWD=1;;
esac
])