changeset 3449:931a2ba3bea3

*** empty log message ***
author Jim Meyering <jim@meyering.net>
date Mon, 03 Sep 2001 07:43:54 +0000
parents 95da01de9977
children d8e5268f202c
files lib/ChangeLog m4/ChangeLog m4/getcwd.m4
diffstat 3 files changed, 65 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2001-09-03  Paul Eggert  <eggert@twinsun.com>
+
+	* xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
+	__GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
+
 2001-09-02  Jim Meyering  <meyering@lucent.com>
 
 	* error.c: Update from GNU libc.
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,10 @@
+2001-09-03  Paul Eggert  <eggert@twinsun.com>
+
+	* prereq.m4 (jm_PREREQ): Add jm_PREREQ_XGETCWD.
+	(jm_PREREQ_XGETCWD): New macro.
+
+	* getcwd.m4: New file.
+
 2001-09-01  Jim Meyering  <meyering@lucent.com>
 
 	* jm-macros.m4 (jm_MACROS): Check for canonicalize_file_name.
new file mode 100644
--- /dev/null
+++ b/m4/getcwd.m4
@@ -0,0 +1,53 @@
+# getcwd.m4 - check whether getcwd (NULL, 0) allocates memory for result
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+# Written by Paul Eggert.
+
+AC_DEFUN([AC_FUNC_GETCWD_NULL],
+  [AC_CHECK_HEADERS(stdlib.h unistd.h)
+   AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
+     [ac_cv_func_getcwd_null],
+     [AC_TRY_RUN(
+        [
+#	 ifdef HAVE_STDLIB_H
+#	  include <stdlib.h>
+#	 endif
+#	 ifdef HAVE_UNISTD_H
+#	  include <unistd.h>
+#	 endif
+#	 ifndef getcwd
+	 char *getcwd ();
+#	 endif
+	 int
+	 main ()
+	 {
+	   if (chdir ("/") != 0)
+	     exit (1);
+	   else
+	     {
+	       char *f = getcwd (NULL, 0);
+	       exit (! (f && f[0] == '/' && !f[1]));
+	     }
+	 }],
+	[ac_cv_func_getcwd_null=yes],
+	[ac_cv_func_getcwd_null=no],
+	[ac_cv_func_getcwd_null=no])])
+   if test $ac_cv_func_getcwd_null = yes; then
+     AC_DEFINE(HAVE_GETCWD_NULL, 1,
+	       [Define if getcwd (NULL, 0) allocates memory for result.])
+   fi])