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_ */