Mercurial > hg > octave-kai > gnulib-hg
annotate lib/file-type.c @ 10780:5c7a68d31801
Add support for Haiku.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 10 Nov 2008 12:37:32 +0100 |
parents | bbbbbf4cd1c5 |
children | b5e42ef33b49 |
rev | line source |
---|---|
3866
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
1 /* Return a string describing the type of a file. |
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
2 |
7302
8a1a9361108c
* _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents:
6259
diff
changeset
|
3 Copyright (C) 1993, 1994, 2001, 2002, 2004, 2005, 2006 Free |
8a1a9361108c
* _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents:
6259
diff
changeset
|
4 Software Foundation, Inc. |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
5 |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7581
diff
changeset
|
6 This program is free software: you can redistribute it and/or modify |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
7 it under the terms of the GNU General Public License as published by |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7581
diff
changeset
|
8 the Free Software Foundation; either version 3 of the License, or |
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7581
diff
changeset
|
9 (at your option) any later version. |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
10 |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
11 This program is distributed in the hope that it will be useful, |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
14 GNU General Public License for more details. |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
15 |
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
16 You should have received a copy of the GNU General Public License |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7581
diff
changeset
|
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
18 |
3866
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
19 /* Written by Paul Eggert. */ |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
20 |
7302
8a1a9361108c
* _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents:
6259
diff
changeset
|
21 #include <config.h> |
3866
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
22 |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
23 #include "file-type.h" |
5813 | 24 |
3866
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
25 #include <gettext.h> |
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
26 #define _(text) gettext (text) |
3848
135de4cdf74a
Include "file-type.h", etc.
Jim Meyering <jim@meyering.net>
parents:
3842
diff
changeset
|
27 |
3842
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
28 char const * |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
29 file_type (struct stat const *st) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
30 { |
3866
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
31 /* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107 for some of |
4298c2824f6d
Use the version from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
3850
diff
changeset
|
32 these formats. |
3842
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
33 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
34 To keep diagnostics grammatical in English, the returned string |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
35 must start with a consonant. */ |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
36 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
37 if (S_ISREG (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
38 return st->st_size == 0 ? _("regular empty file") : _("regular file"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
39 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
40 if (S_ISDIR (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
41 return _("directory"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
42 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
43 if (S_ISBLK (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
44 return _("block special file"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
45 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
46 if (S_ISCHR (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
47 return _("character special file"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
48 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
49 if (S_ISFIFO (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
50 return _("fifo"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
51 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
52 if (S_ISLNK (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
53 return _("symbolic link"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
54 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
55 if (S_ISSOCK (st->st_mode)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
56 return _("socket"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
57 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
58 if (S_TYPEISMQ (st)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
59 return _("message queue"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
60 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
61 if (S_TYPEISSEM (st)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
62 return _("semaphore"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
63 |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
64 if (S_TYPEISSHM (st)) |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
65 return _("shared memory object"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
66 |
4915 | 67 if (S_TYPEISTMO (st)) |
68 return _("typed memory object"); | |
69 | |
3842
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
70 return _("weird file"); |
bccf7376f3dd
(file_type): New file/function. Extracted from diffutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
71 } |