diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2005-01-18 21:58:11 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2005-01-18 21:58:11 +0000 |
commit | d9203c96c70e64ae24a2f2d36e1ba80d79628dc5 (patch) | |
tree | e2234134cab629269d9b9d004cf167e40775f09b /m4/chdir-long.m4 | |
parent | 79fedf129cbfc69a04861c64e58ddff9f05d47e1 (diff) | |
download | gnulib-d9203c96c70e64ae24a2f2d36e1ba80d79628dc5.tar.gz |
* modules/chdir-long, modules/openat: New files.
* modules/save-cwd (Depends-on): Depend on chdir-long.
(Makefile.am): Remove lib_SOURCES; now handled by AC_LIBSOURCES.
* lib/save-cwd.c: Include "save-cwd.h" before other include files.
(O_DIRECTORY): Remove; not needed here, since "." must be
a directory. All uses removed.
(save_cwd): Use __sgi || __sun, not sun || __sun. __sun is
universal on Suns, and we also need to test for IRIX.
Revamp code to use 'if' rather than '#if'.
Avoid unnecessary comparison of cwd->desc to 0.
Change the name of the robust chdir function from chdir to chdir_long.
* lib/save-cwd.c: Include chdir-long.h rather than chdir.h.
(restore_cwd): Use chdir_long, not chdir.
* lib/chdir-long.c: Renamed from chdir.c.
* lib/chdir-long.h: Renamed from chdir.h.
[!defined PATH_MAX]: Define chdir_long to chdir on systems like the Hurd.
* m4/chdir-long.m4, openat.m4: New files.
* m4/save-cwd.m4 (gl_SAVE_CWD): Add AC_LIBSOURCES for save-cwd.c,
save-cwd.h. Add AC_LIBOBJ for save-cwd.
Diffstat (limited to 'm4/chdir-long.m4')
-rw-r--r-- | m4/chdir-long.m4 | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/m4/chdir-long.m4 b/m4/chdir-long.m4 new file mode 100644 index 0000000000..eef75d7677 --- /dev/null +++ b/m4/chdir-long.m4 @@ -0,0 +1,41 @@ +#serial 4 + +# Use Gnulib's robust chdir function. +# It can handle arbitrarily long directory names, which means +# that when it is given the name of an existing directory, it +# never fails with ENAMETOOLONG. +# Arrange to compile chdir-long.c only on systems that define PATH_MAX. + +dnl Copyright (C) 2004 Free Software Foundation, 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. + +# Written by Jim Meyering. + +AC_DEFUN([gl_FUNC_CHDIR_LONG], +[ + AC_LIBSOURCES([chdir-long.c, chdir-long.h]) + AC_CACHE_CHECK([whether this system has a definition of PATH_MAX], + gl_have_path_max_definition, + [AC_EGREP_CPP([have_path_max_definition], + [#include <unistd.h> +#include <limits.h> +#ifdef PATH_MAX +have_path_max_definition +#endif], + gl_have_path_max_definition=yes, + gl_have_path_max_definition=no)]) + + if test $gl_have_path_max_definition; then + AC_LIBOBJ([chdir-long]) + gl_PREREQ_CHDIR_LONG + fi +]) + +AC_DEFUN([gl_PREREQ_CHDIR_LONG], +[ + AM_STDBOOL_H + gl_FUNC_MEMPCPY + gl_FUNC_OPENAT +]) |