Skip to content

Commit

Permalink
* sysdeps/mach/hurd/dirstream.h: Define `struct __dirstream'
Browse files Browse the repository at this point in the history
	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.
  • Loading branch information
Roland McGrath committed Aug 28, 1995
1 parent 7752137 commit 9e865ad
Show file tree
Hide file tree
Showing 19 changed files with 57 additions and 30 deletions.
21 changes: 21 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
Fri Aug 25 12:12:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* 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
Expand Down
4 changes: 2 additions & 2 deletions dirent/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions sysdeps/mach/hurd/closedir.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Cambridge, MA 02139, USA. */
#include <unistd.h>
#include <hurd.h>
#include <hurd/fd.h>
#include "dirstream.h"

/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/mach/hurd/dirstream.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand All @@ -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 */
1 change: 1 addition & 0 deletions sysdeps/mach/hurd/opendir.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Cambridge, MA 02139, USA. */
#include <stdio.h>
#include <hurd.h>
#include <hurd/fd.h>
#include "dirstream.h"


/* Open a directory stream on NAME. */
Expand Down
1 change: 1 addition & 0 deletions sysdeps/mach/hurd/readdir.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Cambridge, MA 02139, USA. */
#include <sys/types.h>
#include <hurd.h>
#include <hurd/fd.h>
#include "dirstream.h"


/* Read a directory entry from DIRP. */
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/mach/hurd/seekdir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */
#include <stddef.h>
#include <dirent.h>
#include <unistd.h>
#include "dirstream.h"

/* Seek to position POS in DIRP. */
void
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/mach/hurd/telldir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */
#include <dirent.h>
#include <unistd.h>
#include <sys/types.h>
#include "dirstream.h"

/* Return the current position of DIRP. */
off_t
Expand Down
8 changes: 4 additions & 4 deletions sysdeps/stub/dirstream.h
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 */
11 changes: 3 additions & 8 deletions sysdeps/unix/bsd/dirstream.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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. */

Expand All @@ -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 */
4 changes: 2 additions & 2 deletions sysdeps/unix/bsd/readdir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */
#include <unistd.h>
#include <sys/types.h>
#include "direct.h"

#include "dirstream.h"

/* Read a directory entry from DIRP. */
struct dirent *
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/bsd/telldir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -23,6 +23,7 @@ Cambridge, MA 02139, USA. */
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include "dirstream.h"

/* Internal data structure for telldir and seekdir. */
struct record
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/closedir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h>
#include <dirent.h>
#include <unistd.h>
#include "dirstream.h"

/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/unix/dirstream.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */

Expand All @@ -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)

Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/opendir.c
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -29,6 +29,7 @@ Cambridge, MA 02139, USA. */
#include <stdio.h>

#include "direct.h" /* This file defines `struct direct'. */
#include "dirstream.h"

/* Open a directory stream on NAME. */
DIR *
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/readdir.c
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -26,6 +26,7 @@ Cambridge, MA 02139, USA. */
#include <sys/types.h>

#include "direct.h" /* This file defines `struct direct'. */
#include "dirstream.h"

/* direct.h may have an alternate definition for this. */
#ifndef D_RECLEN
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/unix/rewinddir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -21,7 +21,7 @@ Cambridge, MA 02139, USA. */
#include <dirent.h>
#include <sys/types.h>
#include <unistd.h>

#include "dirstream.h"

/* Rewind DIRP to the beginning of the directory. */
void
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/seekdir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */
#include <stddef.h>
#include <dirent.h>
#include <unistd.h>
#include "dirstream.h"

/* Seek to position POS in DIRP. */
void
Expand Down
3 changes: 2 additions & 1 deletion sysdeps/unix/telldir.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */
#include <dirent.h>
#include <unistd.h>
#include <sys/types.h>
#include "dirstream.h"

/* Return the current position of DIRP. */
off_t
Expand Down

0 comments on commit 9e865ad

Please sign in to comment.