Mercurial > hg > octave-lojdl > gnulib-hg
annotate lib/isdir.c @ 297:28d847a96824
.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sat, 27 Aug 1994 21:23:07 +0000 |
parents | 349cc607da80 |
children | e42fe3ec73f5 |
rev | line source |
---|---|
5 | 1 /* isdir.c -- determine whether a directory exists |
2 Copyright (C) 1990 Free Software Foundation, Inc. | |
3 | |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2, or (at your option) | |
7 any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program; if not, write to the Free Software | |
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
17 | |
287
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
18 #ifdef HAVE_CONFIG_H |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
19 #if defined (CONFIG_BROKETS) |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
20 /* We use <config.h> instead of "config.h" so that a compilation |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
21 using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
22 (which it would do because it found this file in $srcdir). */ |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
23 #include <config.h> |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
24 #else |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
25 #include "config.h" |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
26 #endif |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
27 #endif |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
28 |
5 | 29 #include <sys/types.h> |
30 #include <sys/stat.h> | |
31 | |
287
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
32 #include "safe-stat.h" |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
33 |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
34 #ifdef STAT_MACROS_BROKEN |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
35 #undef S_ISDIR |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
36 #endif /* STAT_MACROS_BROKEN. */ |
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
37 |
5 | 38 #if !defined(S_ISDIR) && defined(S_IFDIR) |
287
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
39 #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) |
5 | 40 #endif |
41 | |
42 /* If PATH is an existing directory or symbolic link to a directory, | |
43 return nonzero, else 0. */ | |
44 | |
45 int | |
46 isdir (path) | |
47 char *path; | |
48 { | |
49 struct stat stats; | |
50 | |
287
349cc607da80
Use SAFE_STAT instead of stat to avoid unnecessary failure
Jim Meyering <jim@meyering.net>
parents:
5
diff
changeset
|
51 return SAFE_STAT (path, &stats) == 0 && S_ISDIR (stats.st_mode); |
5 | 52 } |