comparison src/sysdir.h @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 /*
2 Copyright (C) 1995 Free Software Foundation, Inc.
3
4 This file is part of XEmacs.
5
6 XEmacs is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
10
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 /* Synched up with: Not really in FSF. */
22
23 #ifdef SYSV_SYSTEM_DIR
24 # include <dirent.h>
25 #elif defined (NONSYSTEM_DIR_LIBRARY)
26 # include "ndir.h"
27 #elif defined (MSDOS)
28 # include <dirent.h>
29 #else
30 # include <sys/dir.h>
31 #endif /* not NONSYSTEM_DIR_LIBRARY */
32
33 #ifdef SYSV_SYSTEM_DIR
34 # define DIRENTRY struct dirent
35 #else /* not SYSV_SYSTEM_DIR */
36 # define DIRENTRY struct direct
37 #endif
38
39 /* The d_nameln member of a struct dirent includes the '\0' character
40 on some systems, but not on others. What's worse, you can't tell
41 at compile-time which one it will be, since it really depends on
42 the sort of system providing the filesystem you're reading from,
43 not the system you are running on. Paul Eggert
44 <eggert@bi.twinsun.com> says this occurs when Emacs is running on a
45 SunOS 4.1.2 host, reading a directory that is remote-mounted from a
46 Solaris 2.1 host and is in a native Solaris 2.1 filesystem.
47
48 Since applying strlen to the name always works, we'll just do that. */
49 #define NAMLEN(p) strlen (p->d_name)
50
51 #ifdef MSDOS
52 #define DIRENTRY_NONEMPTY(p) ((p)->d_name[0] != 0)
53 #else
54 #define DIRENTRY_NONEMPTY(p) ((p)->d_ino)
55 #endif
56
57 /* encapsulation: directory calls */
58
59 #ifdef ENCAPSULATE_CHDIR
60 extern int sys_chdir (CONST char *path);
61 #endif
62 #if defined (ENCAPSULATE_CHDIR) && !defined (DONT_ENCAPSULATE)
63 # undef chdir
64 # define chdir sys_chdir
65 #endif
66 #if !defined (ENCAPSULATE_CHDIR) && defined (DONT_ENCAPSULATE)
67 # define sys_chdir chdir
68 #endif
69
70 #ifdef ENCAPSULATE_MKDIR
71 extern int sys_mkdir (CONST char *path, int mode);
72 #endif
73 #if defined (ENCAPSULATE_MKDIR) && !defined (DONT_ENCAPSULATE)
74 # undef mkdir
75 # define mkdir sys_mkdir
76 #endif
77 #if !defined (ENCAPSULATE_MKDIR) && defined (DONT_ENCAPSULATE)
78 # define sys_mkdir mkdir
79 #endif
80
81 #ifdef ENCAPSULATE_OPENDIR
82 extern DIR *sys_opendir (CONST char *filename);
83 #endif
84 #if defined (ENCAPSULATE_OPENDIR) && !defined (DONT_ENCAPSULATE)
85 # undef opendir
86 # define opendir sys_opendir
87 #endif
88 #if !defined (ENCAPSULATE_OPENDIR) && defined (DONT_ENCAPSULATE)
89 # define sys_opendir opendir
90 #endif
91
92 #ifdef ENCAPSULATE_READDIR
93 extern DIRENTRY *sys_readdir (DIR *dirp);
94 #endif
95 #if defined (ENCAPSULATE_READDIR) && !defined (DONT_ENCAPSULATE)
96 # undef readdir
97 # define readdir sys_readdir
98 #endif
99 #if !defined (ENCAPSULATE_READDIR) && defined (DONT_ENCAPSULATE)
100 # define sys_readdir readdir
101 #endif
102
103 #ifdef ENCAPSULATE_CLOSEDIR
104 extern int sys_closedir (DIR *dirp);
105 #endif
106 #if defined (ENCAPSULATE_CLOSEDIR) && !defined (DONT_ENCAPSULATE)
107 # undef closedir
108 # define closedir sys_closedir
109 #endif
110 #if !defined (ENCAPSULATE_CLOSEDIR) && defined (DONT_ENCAPSULATE)
111 # define sys_closedir closedir
112 #endif
113
114 #ifdef ENCAPSULATE_RMDIR
115 extern int sys_rmdir (CONST char *path);
116 #endif
117 #if defined (ENCAPSULATE_RMDIR) && !defined (DONT_ENCAPSULATE)
118 # undef rmdir
119 # define rmdir sys_rmdir
120 #endif
121 #if !defined (ENCAPSULATE_RMDIR) && defined (DONT_ENCAPSULATE)
122 # define sys_rmdir rmdir
123 #endif
124