771
|
1 /* definitions for 4.2BSD-compatible directory access
|
|
2
|
|
3 This file is part of XEmacs.
|
428
|
4
|
|
5 XEmacs is free software; you can redistribute it and/or modify it
|
|
6 under the terms of the GNU General Public License as published by the
|
|
7 Free Software Foundation; either version 2, or (at your option) any
|
|
8 later version.
|
|
9
|
|
10 XEmacs is distributed in the hope that it will be useful, but WITHOUT
|
|
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
13 for more details.
|
|
14
|
|
15 You should have received a copy of the GNU General Public License
|
|
16 along with XEmacs; see the file COPYING. If not, write to
|
|
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
18 Boston, MA 02111-1307, USA. */
|
|
19
|
|
20 /* Synched up with: FSF 19.30. */
|
|
21
|
440
|
22 #ifndef INCLUDED_ndir_h_
|
|
23 #define INCLUDED_ndir_h_
|
|
24
|
428
|
25 #define DIRBLKSIZ 512 /* size of directory block */
|
442
|
26 #ifdef WIN32_NATIVE
|
771
|
27 #define MAXNAMLEN 4095
|
442
|
28 #else /* not WIN32_NATIVE */
|
428
|
29 #define MAXNAMLEN 15 /* maximum filename length */
|
442
|
30 #endif /* not WIN32_NATIVE */
|
428
|
31 /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */
|
|
32
|
|
33 struct direct /* data from readdir() */
|
|
34 {
|
|
35 long d_ino; /* inode number of entry */
|
|
36 unsigned short d_reclen; /* length of this record */
|
|
37 unsigned short d_namlen; /* length of string in d_name */
|
|
38 char d_name[MAXNAMLEN+1]; /* name of file */
|
|
39 };
|
|
40
|
|
41 typedef struct
|
|
42 {
|
|
43 int dd_fd; /* file descriptor */
|
|
44 int dd_loc; /* offset in block */
|
|
45 int dd_size; /* amount of valid data */
|
|
46 char dd_buf[DIRBLKSIZ]; /* directory block */
|
|
47 } DIR; /* stream data from opendir() */
|
|
48
|
771
|
49 #ifdef WIN32_NATIVE
|
|
50
|
867
|
51 DIR *mswindows_opendir (const Ibyte *filename);
|
771
|
52 int mswindows_closedir (DIR *dirp);
|
|
53 struct direct *mswindows_readdir (DIR *dirp);
|
|
54
|
|
55 #else /* not WIN32_NATIVE */
|
|
56
|
|
57 DIR *opendir (const Extbyte *filename);
|
428
|
58 int closedir (DIR *dirp);
|
|
59 struct direct *readdir (DIR *dirp);
|
|
60 struct direct *readdirver (DIR *dirp);
|
|
61 long telldir (DIR *dirp);
|
|
62 void seekdir (DIR *dirp, long loc);
|
|
63
|
|
64 #define rewinddir( dirp ) seekdir( dirp, 0L )
|
440
|
65
|
771
|
66 #endif /* WIN32_NATIVE */
|
|
67
|
440
|
68 #endif /* INCLUDED_ndir_h_ */
|