From 9e865adecff6cb94e8c638a47929dcee62267f20 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 28 Aug 1995 09:00:05 +0000 Subject: [PATCH] * sysdeps/mach/hurd/dirstream.h: Define `struct __dirstream' instead of `DIR'. * sysdeps/unix/bsd/dirstream.h: Likewise. * sysdeps/stub/dirstream.h: Likewise. * sysdeps/unix/dirstream.h: Likewise. * sysdeps/mach/hurd/telldir.c: Include "dirstream.h". * sysdeps/mach/hurd/seekdir.c: Likewise. * sysdeps/mach/hurd/opendir.c: Likewise. * sysdeps/mach/hurd/closedir.c: Likewise. * sysdeps/mach/hurd/readdir.c: Likewise. * sysdeps/unix/telldir.c: Likewise. * sysdeps/unix/seekdir.c: Likewise. * sysdeps/unix/rewinddir.c: Likewise. * sysdeps/unix/readdir.c: Likewise. * sysdeps/unix/opendir.c: Likewise. * sysdeps/unix/closedir.c: Likewise. * sysdeps/unix/bsd/telldir.c: Likewise. * sysdeps/unix/bsd/readdir.c: Likewise. * dirent/Makefile (headers): Remove dirstream.h. (distribute): Put it here instead. --- ChangeLog | 21 +++++++++++++++++++++ dirent/Makefile | 4 ++-- sysdeps/mach/hurd/closedir.c | 1 + sysdeps/mach/hurd/dirstream.h | 4 ++-- sysdeps/mach/hurd/opendir.c | 1 + sysdeps/mach/hurd/readdir.c | 1 + sysdeps/mach/hurd/seekdir.c | 3 ++- sysdeps/mach/hurd/telldir.c | 3 ++- sysdeps/stub/dirstream.h | 8 ++++---- sysdeps/unix/bsd/dirstream.h | 11 +++-------- sysdeps/unix/bsd/readdir.c | 4 ++-- sysdeps/unix/bsd/telldir.c | 3 ++- sysdeps/unix/closedir.c | 3 ++- sysdeps/unix/dirstream.h | 4 ++-- sysdeps/unix/opendir.c | 3 ++- sysdeps/unix/readdir.c | 3 ++- sysdeps/unix/rewinddir.c | 4 ++-- sysdeps/unix/seekdir.c | 3 ++- sysdeps/unix/telldir.c | 3 ++- 19 files changed, 57 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index 036a1219c3..be40e78b98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,26 @@ Fri Aug 25 12:12:42 1995 Roland McGrath + * sysdeps/mach/hurd/dirstream.h: Define `struct __dirstream' + instead of `DIR'. + * sysdeps/unix/bsd/dirstream.h: Likewise. + * sysdeps/stub/dirstream.h: Likewise. + * sysdeps/unix/dirstream.h: Likewise. + * sysdeps/mach/hurd/telldir.c: Include "dirstream.h". + * sysdeps/mach/hurd/seekdir.c: Likewise. + * sysdeps/mach/hurd/opendir.c: Likewise. + * sysdeps/mach/hurd/closedir.c: Likewise. + * sysdeps/mach/hurd/readdir.c: Likewise. + * sysdeps/unix/telldir.c: Likewise. + * sysdeps/unix/seekdir.c: Likewise. + * sysdeps/unix/rewinddir.c: Likewise. + * sysdeps/unix/readdir.c: Likewise. + * sysdeps/unix/opendir.c: Likewise. + * sysdeps/unix/closedir.c: Likewise. + * sysdeps/unix/bsd/telldir.c: Likewise. + * sysdeps/unix/bsd/readdir.c: Likewise. + * dirent/Makefile (headers): Remove dirstream.h. + (distribute): Put it here instead. + * sysdeps/mach/hurd/mmap.c: Fix inverted test of MAP_FIXED. * stdio/vfscanf.c (number): Allow field width to inhibit first diff --git a/dirent/Makefile b/dirent/Makefile index 02352768d0..532020d1eb 100644 --- a/dirent/Makefile +++ b/dirent/Makefile @@ -21,11 +21,11 @@ # subdir := dirent -headers := dirent.h dirstream.h +headers := dirent.h routines := opendir closedir readdir rewinddir \ seekdir telldir scandir alphasort \ getdents dirfd -distribute := direct.h +distribute := direct.h dirstream.h tests := list tst-seekdir diff --git a/sysdeps/mach/hurd/closedir.c b/sysdeps/mach/hurd/closedir.c index 6ac86a6cd4..521787d02d 100644 --- a/sysdeps/mach/hurd/closedir.c +++ b/sysdeps/mach/hurd/closedir.c @@ -24,6 +24,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Close the directory stream DIRP. Return 0 if successful, -1 if not. */ diff --git a/sysdeps/mach/hurd/dirstream.h b/sysdeps/mach/hurd/dirstream.h index 42bbd07c4f..a8c5fd12cb 100644 --- a/sysdeps/mach/hurd/dirstream.h +++ b/sysdeps/mach/hurd/dirstream.h @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ The Hurd directory format is the same as `struct dirent', so `readdir' returns a pointer into the buffer we read directory data into. */ -typedef struct +struct __dirstream { void *__fd; /* `struct hurd_fd' pointer for descriptor. */ char *__data; /* Directory block. */ @@ -34,6 +34,6 @@ typedef struct int __entry_ptr; /* Entry number `__ptr' corresponds to. */ unsigned long int __allocation; /* Space allocated for the block. */ unsigned long int __size; /* Total valid data in the block. */ - } DIR; + }; #endif /* dirstream.h */ diff --git a/sysdeps/mach/hurd/opendir.c b/sysdeps/mach/hurd/opendir.c index 40cb9d0dc0..8ab964a11d 100644 --- a/sysdeps/mach/hurd/opendir.c +++ b/sysdeps/mach/hurd/opendir.c @@ -29,6 +29,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Open a directory stream on NAME. */ diff --git a/sysdeps/mach/hurd/readdir.c b/sysdeps/mach/hurd/readdir.c index 746b11e523..3c17d248e1 100644 --- a/sysdeps/mach/hurd/readdir.c +++ b/sysdeps/mach/hurd/readdir.c @@ -26,6 +26,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Read a directory entry from DIRP. */ diff --git a/sysdeps/mach/hurd/seekdir.c b/sysdeps/mach/hurd/seekdir.c index 9f585eba63..fa4f1f4f52 100644 --- a/sysdeps/mach/hurd/seekdir.c +++ b/sysdeps/mach/hurd/seekdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Seek to position POS in DIRP. */ void diff --git a/sysdeps/mach/hurd/telldir.c b/sysdeps/mach/hurd/telldir.c index 7ce8d1f061..ccde257a23 100644 --- a/sysdeps/mach/hurd/telldir.c +++ b/sysdeps/mach/hurd/telldir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Return the current position of DIRP. */ off_t diff --git a/sysdeps/stub/dirstream.h b/sysdeps/stub/dirstream.h index 9a3d5a0f05..7d8bb9697f 100644 --- a/sysdeps/stub/dirstream.h +++ b/sysdeps/stub/dirstream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,10 +21,10 @@ Cambridge, MA 02139, USA. */ #define _DIRSTREAM_H 1 -/* This file should define a typedef `DIR', the data type of directory - stream objects returned by `opendir'. */ +/* This file should define a type `struct __dirstream', the data type of + directory stream objects returned by `opendir'. */ -#error "No system-dependent definition of `DIR'." +#error "No system-dependent definition of `struct __dirstream'." #endif /* dirstream.h */ diff --git a/sysdeps/unix/bsd/dirstream.h b/sysdeps/unix/bsd/dirstream.h index f3bf9ca894..d46c59ec58 100644 --- a/sysdeps/unix/bsd/dirstream.h +++ b/sysdeps/unix/bsd/dirstream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -29,7 +29,7 @@ Cambridge, MA 02139, USA. */ The BSD directory format is the same as `struct dirent', so `readdir' returns a pointer into the buffer we read directory data into. */ -typedef struct +struct __dirstream { int __fd; /* File descriptor. */ @@ -38,11 +38,6 @@ typedef struct size_t __offset; /* Current offset into the block. */ size_t __size; /* Total valid data in the block. */ __off_t __pos; /* Position in directory of this block. */ - } DIR; - -#ifdef __USE_BSD -/* Macro to return the file descriptor used for an open directory. */ -#define dirfd(DIR) ((DIR)->__fd) -#endif + }; #endif /* dirstream.h */ diff --git a/sysdeps/unix/bsd/readdir.c b/sysdeps/unix/bsd/readdir.c index e86a94dd52..e3d020cd46 100644 --- a/sysdeps/unix/bsd/readdir.c +++ b/sysdeps/unix/bsd/readdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ #include #include #include "direct.h" - +#include "dirstream.h" /* Read a directory entry from DIRP. */ struct dirent * diff --git a/sysdeps/unix/bsd/telldir.c b/sysdeps/unix/bsd/telldir.c index 0321f954b8..dbab289a37 100644 --- a/sysdeps/unix/bsd/telldir.c +++ b/sysdeps/unix/bsd/telldir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,6 +23,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Internal data structure for telldir and seekdir. */ struct record diff --git a/sysdeps/unix/closedir.c b/sysdeps/unix/closedir.c index e01dccb54c..5f1ac7439a 100644 --- a/sysdeps/unix/closedir.c +++ b/sysdeps/unix/closedir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Close the directory stream DIRP. Return 0 if successful, -1 if not. */ diff --git a/sysdeps/unix/dirstream.h b/sysdeps/unix/dirstream.h index d8c23959ad..72fd67c722 100644 --- a/sysdeps/unix/dirstream.h +++ b/sysdeps/unix/dirstream.h @@ -28,7 +28,7 @@ Cambridge, MA 02139, USA. */ The miscellaneous Unix `readdir' implementations read directory data into a buffer and fill in a `struct dirent' copy in the `DIR' object. */ -typedef struct +struct __dirstream { int __fd; /* File descriptor. */ @@ -38,7 +38,7 @@ typedef struct size_t __size; /* Total valid data in the block. */ struct dirent __entry; /* Returned by `readdir'. */ - } DIR; + }; #define _DIR_dirfd(dirp) ((dirp)->__fd) diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c index d03f45e6af..5cd620676a 100644 --- a/sysdeps/unix/opendir.c +++ b/sysdeps/unix/opendir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ Cambridge, MA 02139, USA. */ #include #include "direct.h" /* This file defines `struct direct'. */ +#include "dirstream.h" /* Open a directory stream on NAME. */ DIR * diff --git a/sysdeps/unix/readdir.c b/sysdeps/unix/readdir.c index 3ffa63e9f6..1842948a35 100644 --- a/sysdeps/unix/readdir.c +++ b/sysdeps/unix/readdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,6 +26,7 @@ Cambridge, MA 02139, USA. */ #include #include "direct.h" /* This file defines `struct direct'. */ +#include "dirstream.h" /* direct.h may have an alternate definition for this. */ #ifndef D_RECLEN diff --git a/sysdeps/unix/rewinddir.c b/sysdeps/unix/rewinddir.c index 3b82895e60..7ad7bc11a3 100644 --- a/sysdeps/unix/rewinddir.c +++ b/sysdeps/unix/rewinddir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ Cambridge, MA 02139, USA. */ #include #include #include - +#include "dirstream.h" /* Rewind DIRP to the beginning of the directory. */ void diff --git a/sysdeps/unix/seekdir.c b/sysdeps/unix/seekdir.c index b8d5c3c2ff..b0a6f5e9d7 100644 --- a/sysdeps/unix/seekdir.c +++ b/sysdeps/unix/seekdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Seek to position POS in DIRP. */ void diff --git a/sysdeps/unix/telldir.c b/sysdeps/unix/telldir.c index c473bbc29d..5dbf1ca3c1 100644 --- a/sysdeps/unix/telldir.c +++ b/sysdeps/unix/telldir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include "dirstream.h" /* Return the current position of DIRP. */ off_t