summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1999-02-03 05:15:07 +0000
committerJim Meyering <jim@meyering.net>1999-02-03 05:15:07 +0000
commit84bac78db458687a1d6eebdc31cf81db1a96dea7 (patch)
tree09dd2e77f668f4710b0b03d72633f7ad081ea9cf
parent7d6f71cd2a388d4909dda4eba120a899358da478 (diff)
downloadgnulib-84bac78db458687a1d6eebdc31cf81db1a96dea7.tar.gz
(ftypelet): Handle doors.
(S_ISDOOR): Define if missing.
-rw-r--r--lib/filemode.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/filemode.c b/lib/filemode.c
index e61f21201e..c4fb54f096 100644
--- a/lib/filemode.c
+++ b/lib/filemode.c
@@ -1,5 +1,5 @@
/* filemode.c -- make a string describing file modes
- Copyright (C) 1985, 1990, 1993, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1990, 1993, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -89,6 +89,9 @@
#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
#endif
+#if !defined(S_ISDOOR) && defined(S_IFDOOR) /* Solaris 2.5 and up */
+# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
+#endif
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
@@ -142,6 +145,7 @@ setst (short unsigned int bits, char *chars)
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
+ 'D' for doors
'b' for block special files
'c' for character special files
'm' for multiplexor files
@@ -185,6 +189,10 @@ ftypelet (long int bits)
if (S_ISNWK (bits))
return 'n';
#endif
+#ifdef S_ISDOOR
+ if (S_ISDOOR (bits))
+ return 'D';
+#endif
/* The following two tests are for Cray DMF (Data Migration
Facility), which is a HSM file system. A migrated file has a