[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] file-type: add support for doors and other less-common file type
From: |
Paul Eggert |
Subject: |
[PATCH] file-type: add support for doors and other less-common file types |
Date: |
Wed, 5 Feb 2014 11:09:15 -0800 |
Problem with S_ISDOOR reported by Rich Burridge.
* lib/file-type.c (file_type): Do S_ISLNK early too. Do S_TYPEIS*
macros before the rest. Add S_ISCTG, S_ISDOOR, S_ISMPB, S_ISMPC,
S_ISMPX, S_ISNAM, S_ISNWK, S_ISOFD, S_ISOFL, S_ISPORT, S_ISWHT.
---
ChangeLog | 8 ++++++++
lib/file-type.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 59 insertions(+), 11 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d117e75..96c544e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-02-05 Paul Eggert <address@hidden>
+
+ file-type: add support for doors and other less-common file types
+ Problem with S_ISDOOR reported by Rich Burridge.
+ * lib/file-type.c (file_type): Do S_ISLNK early too. Do S_TYPEIS*
+ macros before the rest. Add S_ISCTG, S_ISDOOR, S_ISMPB, S_ISMPC,
+ S_ISMPX, S_ISNAM, S_ISNWK, S_ISOFD, S_ISOFL, S_ISPORT, S_ISWHT.
+
2014-01-23 Eric Blake <address@hidden>
pthread: work around winpthread header pollution on mingw
diff --git a/lib/file-type.c b/lib/file-type.c
index c6c793a..bf3026f 100644
--- a/lib/file-type.c
+++ b/lib/file-type.c
@@ -34,26 +34,19 @@ file_type (struct stat const *st)
To keep diagnostics grammatical in English, the returned string
must start with a consonant. */
+ /* Do these three first, as they're the most common. */
+
if (S_ISREG (st->st_mode))
return st->st_size == 0 ? _("regular empty file") : _("regular file");
if (S_ISDIR (st->st_mode))
return _("directory");
- if (S_ISBLK (st->st_mode))
- return _("block special file");
-
- if (S_ISCHR (st->st_mode))
- return _("character special file");
-
- if (S_ISFIFO (st->st_mode))
- return _("fifo");
-
if (S_ISLNK (st->st_mode))
return _("symbolic link");
- if (S_ISSOCK (st->st_mode))
- return _("socket");
+ /* Do the S_TYPEIS* macros next, as they may be implemented in terms
+ of S_ISNAM, and we want the more-specialized interpretation. */
if (S_TYPEISMQ (st))
return _("message queue");
@@ -67,5 +60,52 @@ file_type (struct stat const *st)
if (S_TYPEISTMO (st))
return _("typed memory object");
+ /* The remaining are in alphabetical order. */
+
+ if (S_ISBLK (st->st_mode))
+ return _("block special file");
+
+ if (S_ISCHR (st->st_mode))
+ return _("character special file");
+
+ if (S_ISCTG (st->st_mode))
+ return _("contiguous data");
+
+ if (S_ISFIFO (st->st_mode))
+ return _("fifo");
+
+ if (S_ISDOOR (st->st_mode))
+ return _("door");
+
+ if (S_ISMPB (st->st_mode))
+ return _("multiplexed block special file");
+
+ if (S_ISMPC (st->st_mode))
+ return _("multiplexed character special file");
+
+ if (S_ISMPX (st->st_mode))
+ return _("multiplexed file");
+
+ if (S_ISNAM (st->st_mode))
+ return _("named file");
+
+ if (S_ISNWK (st->st_mode))
+ return _("network special file");
+
+ if (S_ISOFD (st->st_mode))
+ return _("migrated file with data");
+
+ if (S_ISOFL (st->st_mode))
+ return _("migrated file without data");
+
+ if (S_ISPORT (st->st_mode))
+ return _("port");
+
+ if (S_ISSOCK (st->st_mode))
+ return _("socket");
+
+ if (S_ISWHT (st->st_mode))
+ return _("whiteout");
+
return _("weird file");
}
--
1.8.5.3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] file-type: add support for doors and other less-common file types,
Paul Eggert <=