annotate lib/filemode.c @ 2427:28f8722c956c

*** empty log message ***
author Jim Meyering <jim@meyering.net>
date Sat, 15 Apr 2000 21:58:37 +0000 (2000-04-15)
parents b22a7367bcf5
children a535859efd14
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* filemode.c -- make a string describing file modes
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
2 Copyright (C) 1985, 1990, 1993, 1998-2000 Free Software Foundation, Inc.
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 the Free Software Foundation; either version 2, or (at your option)
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7 any later version.
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 GNU General Public License for more details.
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
650
b4ef1c1a0171 update FSF address in copyright
Jim Meyering <jim@meyering.net>
parents: 345
diff changeset
15 along with this program; if not, write to the Free Software Foundation,
b4ef1c1a0171 update FSF address in copyright
Jim Meyering <jim@meyering.net>
parents: 345
diff changeset
16 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
17
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
18 #if HAVE_CONFIG_H
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
19 # include <config.h>
297
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
20 #endif
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
21
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22 #include <sys/types.h>
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23 #include <sys/stat.h>
297
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
24
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
25 #include "filemode.h"
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
26
345
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
27 #if !S_IRUSR
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
28 # if S_IREAD
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
29 # define S_IRUSR S_IREAD
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
30 # else
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
31 # define S_IRUSR 00400
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
32 # endif
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
33 #endif
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
34
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
35 #if !S_IWUSR
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
36 # if S_IWRITE
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
37 # define S_IWUSR S_IWRITE
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
38 # else
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
39 # define S_IWUSR 00200
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
40 # endif
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
41 #endif
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
42
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
43 #if !S_IXUSR
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
44 # if S_IEXEC
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
45 # define S_IXUSR S_IEXEC
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
46 # else
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
47 # define S_IXUSR 00100
0dc6bd927a13 (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of obsolete
Jim Meyering <jim@meyering.net>
parents: 322
diff changeset
48 # endif
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 #endif
297
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
50
1814
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
51 #if !S_IRGRP
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
52 # define S_IRGRP (S_IRUSR >> 3)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
53 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
54 #if !S_IWGRP
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
55 # define S_IWGRP (S_IWUSR >> 3)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
56 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
57 #if !S_IXGRP
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
58 # define S_IXGRP (S_IXUSR >> 3)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
59 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
60 #if !S_IROTH
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
61 # define S_IROTH (S_IRUSR >> 6)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
62 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
63 #if !S_IWOTH
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
64 # define S_IWOTH (S_IWUSR >> 6)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
65 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
66 #if !S_IXOTH
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
67 # define S_IXOTH (S_IXUSR >> 6)
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
68 #endif
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
69
297
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
70 #ifdef STAT_MACROS_BROKEN
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
71 # undef S_ISBLK
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
72 # undef S_ISCHR
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
73 # undef S_ISDIR
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
74 # undef S_ISFIFO
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
75 # undef S_ISLNK
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
76 # undef S_ISMPB
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
77 # undef S_ISMPC
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
78 # undef S_ISNWK
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
79 # undef S_ISREG
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
80 # undef S_ISSOCK
297
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
81 #endif /* STAT_MACROS_BROKEN. */
Jim Meyering <jim@meyering.net>
parents: 5
diff changeset
82
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
83 #if !defined S_ISBLK && defined S_IFBLK
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
84 # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
85 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
86 #if !defined S_ISCHR && defined S_IFCHR
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
87 # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
88 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
89 #if !defined S_ISDIR && defined S_IFDIR
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
90 # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
91 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
92 #if !defined S_ISREG && defined S_IFREG
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
93 # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
94 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
95 #if !defined S_ISFIFO && defined S_IFIFO
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
96 # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
97 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
98 #if !defined S_ISLNK && defined S_IFLNK
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
99 # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
101 #if !defined S_ISSOCK && defined S_IFSOCK
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
102 # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
103 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
104 #if !defined S_ISMPB && defined S_IFMPB /* V7 */
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
105 # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
106 # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
107 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
108 #if !defined S_ISNWK && defined S_IFNWK /* HP/UX */
1278
9ad625a30b7d Use #if, not #ifdef with HAVE_ macros
Jim Meyering <jim@meyering.net>
parents: 711
diff changeset
109 # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
110 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
111 #if !defined S_ISDOOR && defined S_IFDOOR /* Solaris 2.5 and up */
1697
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
112 # define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
113 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
114 #if !defined S_ISCTG && defined S_IFCTG /* MassComp */
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
115 # define S_ISCTG(m) (((m) & S_IFMT) == S_IFCTG)
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
116 #endif
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
117
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
118
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
119
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
120 /* Set the 's' and 't' flags in file attributes string CHARS,
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
121 according to the file mode BITS. */
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
122
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
123 static void
1814
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
124 setst (mode_t bits, char *chars)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
125 {
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
126 #ifdef S_ISUID
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
127 if (bits & S_ISUID)
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
128 {
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
129 if (chars[3] != 'x')
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
130 /* Set-uid, but not executable by owner. */
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
131 chars[3] = 'S';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
132 else
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
133 chars[3] = 's';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
134 }
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
135 #endif
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
136 #ifdef S_ISGID
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
137 if (bits & S_ISGID)
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
138 {
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
139 if (chars[6] != 'x')
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
140 /* Set-gid, but not executable by group. */
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
141 chars[6] = 'S';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
142 else
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
143 chars[6] = 's';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
144 }
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
145 #endif
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
146 #ifdef S_ISVTX
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
147 if (bits & S_ISVTX)
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
148 {
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
149 if (chars[9] != 'x')
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
150 /* Sticky, but not executable by others. */
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
151 chars[9] = 'T';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
152 else
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
153 chars[9] = 't';
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
154 }
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
155 #endif
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
156 }
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
157
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
158 /* Return a character indicating the type of file described by
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
159 file mode BITS:
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
160 'd' for directories
1697
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
161 'D' for doors
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
162 'b' for block special files
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
163 'c' for character special files
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
164 'n' for network special files
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
165 'm' for multiplexor files
1470
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
166 'M' for an off-line (regular) file
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
167 'l' for symbolic links
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
168 's' for sockets
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
169 'p' for fifos
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
170 'C' for contigous data files
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
171 '-' for regular files
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
172 '?' for any other file type. */
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
173
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
174 static char
1814
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
175 ftypelet (mode_t bits)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
176 {
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
177 #ifdef S_ISBLK
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
178 if (S_ISBLK (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
179 return 'b';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
180 #endif
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
181 if (S_ISCHR (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
182 return 'c';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
183 if (S_ISDIR (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
184 return 'd';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
185 if (S_ISREG (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
186 return '-';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
187 #ifdef S_ISFIFO
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
188 if (S_ISFIFO (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
189 return 'p';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
190 #endif
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
191 #ifdef S_ISLNK
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
192 if (S_ISLNK (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
193 return 'l';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
194 #endif
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
195 #ifdef S_ISSOCK
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
196 if (S_ISSOCK (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
197 return 's';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
198 #endif
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
199 #ifdef S_ISMPC
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
200 if (S_ISMPC (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
201 return 'm';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
202 #endif
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
203 #ifdef S_ISNWK
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
204 if (S_ISNWK (bits))
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
205 return 'n';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
206 #endif
1697
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
207 #ifdef S_ISDOOR
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
208 if (S_ISDOOR (bits))
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
209 return 'D';
fbdd7475122c (ftypelet): Handle doors.
Jim Meyering <jim@meyering.net>
parents: 1472
diff changeset
210 #endif
2426
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
211 #ifdef S_ISCTG
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
212 if (S_ISCTG (bits))
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
213 return 'C';
b22a7367bcf5 Use `C' to denote so-called `contiguous' files, the same way that tar does.
Jim Meyering <jim@meyering.net>
parents: 1814
diff changeset
214 #endif
711
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
215
1470
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
216 /* The following two tests are for Cray DMF (Data Migration
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
217 Facility), which is a HSM file system. A migrated file has a
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
218 `st_dm_mode' that is different from the normal `st_mode', so any
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
219 tests for migrated files should use the former. */
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
220
711
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
221 #ifdef S_ISOFD
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
222 if (S_ISOFD (bits))
1470
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
223 /* off line, with data */
711
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
224 return 'M';
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
225 #endif
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
226 #ifdef S_ISOFL
1470
8968580b7c69 (ftypelet): Add comments for Cray DMF support.
Jim Meyering <jim@meyering.net>
parents: 1278
diff changeset
227 /* off line, with no data */
711
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
228 if (S_ISOFL (bits))
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
229 return 'M';
e80b482cadad (ftypelet): Add support for Cray's migrated dmf files.
Jim Meyering <jim@meyering.net>
parents: 650
diff changeset
230 #endif
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
231 return '?';
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
232 }
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
233
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
234 /* Like filemodestring, but only the relevant part of the `struct stat'
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
235 is given as an argument. */
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
236
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
237 void
1814
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
238 mode_string (mode_t mode, char *str)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
239 {
1814
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
240 str[0] = ftypelet (mode);
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
241 str[1] = mode & S_IRUSR ? 'r' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
242 str[2] = mode & S_IWUSR ? 'w' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
243 str[3] = mode & S_IXUSR ? 'x' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
244 str[4] = mode & S_IRGRP ? 'r' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
245 str[5] = mode & S_IWGRP ? 'w' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
246 str[6] = mode & S_IXGRP ? 'x' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
247 str[7] = mode & S_IROTH ? 'r' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
248 str[8] = mode & S_IWOTH ? 'w' : '-';
e8f03a041d0e (setst, ftypelet, mode_string): Use proper mode_t types and macros.
Jim Meyering <jim@meyering.net>
parents: 1697
diff changeset
249 str[9] = mode & S_IXOTH ? 'x' : '-';
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
250 setst (mode, str);
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
251 }
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
252
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
253 /* filemodestring - fill in string STR with an ls-style ASCII
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
254 representation of the st_mode field of file stats block STATP.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
255 10 characters are stored in STR; no terminating null is added.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
256 The characters stored in STR are:
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
257
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
258 0 File type. 'd' for directory, 'c' for character
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
259 special, 'b' for block special, 'm' for multiplex,
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
260 'l' for symbolic link, 's' for socket, 'p' for fifo,
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
261 '-' for regular, '?' for any other file type
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
262
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
263 1 'r' if the owner may read, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
264
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
265 2 'w' if the owner may write, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
266
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
267 3 'x' if the owner may execute, 's' if the file is
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
268 set-user-id, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
269 'S' if the file is set-user-id, but the execute
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
270 bit isn't set.
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
271
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
272 4 'r' if group members may read, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
273
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
274 5 'w' if group members may write, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
275
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
276 6 'x' if group members may execute, 's' if the file is
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
277 set-group-id, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
278 'S' if it is set-group-id but not executable.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
279
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
280 7 'r' if any user may read, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
281
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
282 8 'w' if any user may write, '-' otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
283
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
284 9 'x' if any user may execute, 't' if the file is "sticky"
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
285 (will be retained in swap space after execution), '-'
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
286 otherwise.
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
287 'T' if the file is sticky but not executable. */
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
288
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
289 void
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
290 filemodestring (struct stat *statp, char *str)
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
291 {
1472
9bb334c7c86e Protoize. Tsort function definitions and remove prototypes of
Jim Meyering <jim@meyering.net>
parents: 1470
diff changeset
292 mode_string (statp->st_mode, str);
5
41c9d08b09d7 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
293 }