summary refs log tree commit diff
path: root/io
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-09-21 01:47:02 +0000
committerUlrich Drepper <drepper@redhat.com>1997-09-21 01:47:02 +0000
commit2604afb1b2d9acc3c70b1214285f996200bf0358 (patch)
treeba59d75147565b8ab19686d98cee368d8ec697fc /io
parent4547c1a410fbc3ab5592a68bac1661135d91983f (diff)
downloadglibc-2604afb1b2d9acc3c70b1214285f996200bf0358.tar.gz
glibc-2604afb1b2d9acc3c70b1214285f996200bf0358.tar.xz
glibc-2604afb1b2d9acc3c70b1214285f996200bf0358.zip
1997-09-21 03:19  Ulrich Drepper  <drepper@cygnus.com>

	* libio/libio.h: More libstdc++ cleanups.  Define _IO_USE_DTOA if
	_G_HAVE_PRINTF_FP is not defined.
	* libio/strops.c: Undo patch of 1997-07-08 02:18.  Must find a
	different solution for the problem.

	* misc/search.h [__USE_GNU]: Define comparison_fn_t.
	* stdlib/stdlib.h: Define comparison_fn_t only if __COMPAR_FN_T is
	not defined.
	Fix typo.  Pretty print inline functions.

	* sysdeps/i386/i486/string.h (__stpcpy_small): Increment __cp not cp.
	Patch by HJ Lu <hjl@gnu.ai.mit.edu>.

1997-09-20 16:45  Ulrich Drepper  <drepper@cygnus.com>

	* hesiod/hesiod.c (hesiod_init): Use __secure_getenv to get
	HES_DOMAIN environment variable.
	Suggested by Mark Kettenis <kettenis@phys.uva.nl>.

	* hesiod/README.hesiod: A bit of information about Hesiod and how
	to use it.  Written by Mark Kettenis <kettenis@phys.uva.nl>.

1997-09-20 05:15  Ulrich Drepper  <drepper@cygnus.com>

	* manual/maint.texi: Update requirement list.

	* io/ftw.h: Don't use parameter names from global namespace in
	prototypes.

	* stdlib/strtol.c: If used outside glibc handle broken systems
	which have character classification functions which are not 8-bit
	clean gracefully.  Patch by Bruno Haible <haible@ilog.fr>.

1997-09-19 21:42  David S. Miller  <davem@tanya.rutgers.edu>

	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: ssize_t is
	a long long int.

1997-09-19 15:12  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* posix/Makefile (test-srcs): New, set to globtest.

1997-09-20 00:24  Ulrich Drepper  <drepper@cygnus.com>

	* manual/filesys.texi: Document ftw, nftw and needed data types.

1997-09-19 12:53  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/i386/i486/bits/string.h: Fix typo.

1997-09-19 14:11  Ulrich Drepper  <drepper@cygnus.com>

	* io/ftwtest.c (cb): Print level.
	* io/ftwtest-sh: Updated for ftwtest.c change.

	* string/argz.h (__argz_next): Cast NULL to char * to satisfy C++
	compilers.
	Reported by Mirko Streckenbach <mirko@ramz.ing.tu-bs.de>.

	* catgets/catgets.c (catopen): Correctly allocate string of nlspath.
	Reported by Charles C. Fu <ccwf@klab.caltech.edu>.

1997-09-18 13:30  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>

	* sysdeps/i386/init-first.c: Call __getopt_clean_environment with
	additional argument.
	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
	* sysdeps/stub/init-first.c: Likewise.

1997-09-18 03:16  Ulrich Drepper  <drepper@cygnus.com>

	* manual/search.texi: Document lsearch, lfind, the hsearch and
	tsearch functions.

1997-09-18 00:04  Ulrich Drepper  <drepper@cygnus.com>

	* misc/hsearch_r.c (hsearch_r): Only return error for ENTER action
	if the table is full and we *really* have to enter a new entry.

1997-09-17 19:44  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Get rid
	of hack for handling flush opcode.
	Patch by Richard Henderson <rth@cygnus.com>.
Diffstat (limited to 'io')
-rw-r--r--io/ftw.h17
-rw-r--r--io/ftwtest-sh97
-rw-r--r--io/ftwtest.c2
3 files changed, 69 insertions, 47 deletions
diff --git a/io/ftw.h b/io/ftw.h
index d788b39d16..d377f2c947 100644
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -86,22 +86,23 @@ struct FTW
 
 
 /* Convenient types for callback functions.  */
-typedef int (*__ftw_func_t) __P ((__const char *filename,
-				  __const struct stat *status, int flag));
+typedef int (*__ftw_func_t) __P ((__const char *__filename,
+				  __const struct stat *__status, int __flag));
 #ifdef __USE_XOPEN_EXTENDED
-typedef int (*__nftw_func_t) __P ((__const char *filename,
-				   __const struct stat *status, int flag,
-				   struct FTW *));
+typedef int (*__nftw_func_t) __P ((__const char *__filename,
+				   __const struct stat *__status, int __flag,
+				   struct FTW *__info));
 #endif
 
 /* Call a function on every element in a directory tree.  */
-extern int ftw __P ((__const char *dir, __ftw_func_t func, int descriptors));
+extern int ftw __P ((__const char *__dir, __ftw_func_t __func,
+		     int __descriptors));
 
 #ifdef __USE_XOPEN_EXTENDED
 /* Call a function on every element in a directory tree.  FLAG allows
    to specify the behaviour more detailed.  */
-extern int nftw __P ((__const char *dir, __nftw_func_t func,
-		      int descriptors, int flag));
+extern int nftw __P ((__const char *__dir, __nftw_func_t __func,
+		      int __descriptors, int __flag));
 #endif
 
 __END_DECLS
diff --git a/io/ftwtest-sh b/io/ftwtest-sh
index 79c35d4f9c..f0cd56ab02 100644
--- a/io/ftwtest-sh
+++ b/io/ftwtest-sh
@@ -46,18 +46,18 @@ LD_LIBRARY_PATH=$objpfx $ldso $testprogram $tmpdir |
     sort > $testout
 
 cat <<EOF | cmp $testout - || exit 1
-base = "$tmp/", file = "ftwtest.d", flag = FTW_D
-base = "$tmp/ftwtest.d/", file = "bar", flag = FTW_D
-base = "$tmp/ftwtest.d/", file = "baz", flag = FTW_F
-base = "$tmp/ftwtest.d/", file = "foo", flag = FTW_D
-base = "$tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS
-base = "$tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F
+base = "/tmp/", file = "ftwtest.d", flag = FTW_D, level = 0
+base = "/tmp/ftwtest.d/", file = "bar", flag = FTW_D, level = 1
+base = "/tmp/ftwtest.d/", file = "baz", flag = FTW_F, level = 1
+base = "/tmp/ftwtest.d/", file = "foo", flag = FTW_D, level = 1
+base = "/tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS, level = 2
+base = "/tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_D, level = 2
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, level = 5
 EOF
 rm $testout
 
@@ -65,18 +65,18 @@ LD_LIBRARY_PATH=$objpfx $ldso $testprogram --depth $tmpdir |
     sort > $testout
 
 cat <<EOF | cmp $testout - || exit 1
-base = "$tmp/", file = "ftwtest.d", flag = FTW_DP
-base = "$tmp/ftwtest.d/", file = "bar", flag = FTW_DP
-base = "$tmp/ftwtest.d/", file = "baz", flag = FTW_F
-base = "$tmp/ftwtest.d/", file = "foo", flag = FTW_DP
-base = "$tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS
-base = "$tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_DP
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_DP
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_DP
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F
+base = "/tmp/", file = "ftwtest.d", flag = FTW_DP, level = 0
+base = "/tmp/ftwtest.d/", file = "bar", flag = FTW_DP, level = 1
+base = "/tmp/ftwtest.d/", file = "baz", flag = FTW_F, level = 1
+base = "/tmp/ftwtest.d/", file = "foo", flag = FTW_DP, level = 1
+base = "/tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS, level = 2
+base = "/tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_DP, level = 2
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_DP, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_DP, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, level = 5
 EOF
 rm $testout
 
@@ -84,24 +84,45 @@ LD_LIBRARY_PATH=$objpfx $ldso $testprogram --phys $tmpdir |
     sort > $testout
 
 cat <<EOF | cmp $testout - || exit 1
-base = "$tmp/", file = "ftwtest.d", flag = FTW_D
-base = "$tmp/ftwtest.d/", file = "bar", flag = FTW_D
-base = "$tmp/ftwtest.d/", file = "baz", flag = FTW_F
-base = "$tmp/ftwtest.d/", file = "foo", flag = FTW_D
-base = "$tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS
-base = "$tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SL
-base = "$tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "link@2", flag = FTW_SL
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F
-base = "$tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "link@3", flag = FTW_SL
+base = "/tmp/", file = "ftwtest.d", flag = FTW_D, level = 0
+base = "/tmp/ftwtest.d/", file = "bar", flag = FTW_D, level = 1
+base = "/tmp/ftwtest.d/", file = "baz", flag = FTW_F, level = 1
+base = "/tmp/ftwtest.d/", file = "foo", flag = FTW_D, level = 1
+base = "/tmp/ftwtest.d/bar/", file = "xo", flag = FTW_NS, level = 2
+base = "/tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_D, level = 2
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SL, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "link@2", flag = FTW_SL, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, level = 5
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "link@3", flag = FTW_SL, level = 5
 EOF
 rm $testout
 
+# For the next test everything must be readable.
 chmod -R a+x $tmpdir
+
+LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir $tmpdir |
+    sort > $testout
+
+cat <<EOF | cmp $testout - || exit 1
+base = "/tmp/", file = "ftwtest.d", flag = FTW_D, cwd = /tmp, level = 0
+base = "/tmp/ftwtest.d/", file = "bar", flag = FTW_D, cwd = /tmp/ftwtest.d, level = 1
+base = "/tmp/ftwtest.d/", file = "baz", flag = FTW_F, cwd = /tmp/ftwtest.d, level = 1
+base = "/tmp/ftwtest.d/", file = "foo", flag = FTW_D, cwd = /tmp/ftwtest.d, level = 1
+base = "/tmp/ftwtest.d/bar/", file = "xo", flag = FTW_F, cwd = /tmp/ftwtest.d/bar, level = 2
+base = "/tmp/ftwtest.d/foo/", file = "lvl1", flag = FTW_D, cwd = /tmp/ftwtest.d/foo, level = 2
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F, cwd = /tmp/ftwtest.d/foo/lvl1, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN, cwd = /tmp/ftwtest.d/foo/lvl1, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D, cwd = /tmp/ftwtest.d/foo/lvl1, level = 3
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F, cwd = /tmp/ftwtest.d/foo/lvl1/lvl2, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D, cwd = /tmp/ftwtest.d/foo/lvl1/lvl2, level = 4
+base = "/tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, cwd = /tmp/ftwtest.d/foo/lvl1/lvl2/lvl3, level = 5
+EOF
+rm $testout
+
 rm -fr $tmpdir
 
 exit 0
diff --git a/io/ftwtest.c b/io/ftwtest.c
index 6daa7e9eee..6079265175 100644
--- a/io/ftwtest.c
+++ b/io/ftwtest.c
@@ -42,7 +42,7 @@ cb (const char *name, const struct stat *st, int flag, struct FTW *f)
       printf (", cwd = %s", cwd);
       free (cwd);
     }
-  puts ("");
+  printf (", level = %d\n", f->level);
   return 0;
 }