diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-01-21 06:34:16 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-01-21 06:34:16 +0000 |
commit | 0f2cd61fa58db97ef2f75156722466508b3cc983 (patch) | |
tree | 650932a590e919824c8837dba197b880553015ba /src/xrdb.c | |
parent | f5f6a944dca089fef3039c410ba77def602c3742 (diff) | |
download | emacs-0f2cd61fa58db97ef2f75156722466508b3cc983.tar.gz |
(S_ISDIR): Define if not defined.
(file_p): Use S_ISDIR.
(search_magic_path): Fix logic testing for empty path element.
Diffstat (limited to 'src/xrdb.c')
-rw-r--r-- | src/xrdb.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/xrdb.c b/src/xrdb.c index 4c80d055536..d3f22c91610 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -55,6 +55,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define MAXPATHLEN 256 #endif +#if !defined(S_ISDIR) && defined(S_IFDIR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif + extern char *getenv (); /* This does cause trouble on AIX. I'm going to take the comment at @@ -320,7 +324,7 @@ file_p (path) return (access (path, 4) == 0 /* exists and is readable */ && stat (path, &status) == 0 /* get the status */ - && (status.st_mode & S_IFDIR) == 0); /* not a directory */ + && (S_ISDIR (status.st_mode)) == 0); /* not a directory */ } @@ -339,23 +343,18 @@ search_magic_path (search_path, class, escaped_suffix, suffix) for (p = s; *p && *p != ':'; p++) ; - if (*p == ':' && *(p + 1) == ':') + if (p > s) { - char *path; - - s = "%N%S"; - path = magic_file_p (s, strlen (s), class, escaped_suffix, suffix); + char *path = magic_file_p (s, p - s, class, escaped_suffix, suffix); if (path) return path; - - /* Skip the first colon. */ - p++; - continue; } - - if (p > s) + else if (*p == ':') { - char *path = magic_file_p (s, p - s, class, escaped_suffix, suffix); + char *path; + + s = "%N%S"; + path = magic_file_p (s, strlen (s), class, escaped_suffix, suffix); if (path) return path; } |