|
|
1.1 root 1: /*
2: * G. S. Fowler
3: * AT&T Bell Laboratories
4: *
5: * ls formatter interface definitions
6: */
7:
8: #ifndef LS_USER
9:
10: #include <fsinfo.h>
11:
12: #ifndef S_IRWXU
13: #ifndef S_IREAD
14: #define S_IREAD 00400
15: #define S_IWRITE 00200
16: #define S_IEXEC 00100
17: #endif
18: #ifndef S_ISUID
19: #define S_ISUID 04000
20: #endif
21: #ifndef S_ISGID
22: #define S_ISGID 02000
23: #endif
24: #ifndef S_ISVTX
25: #define S_ISVTX 01000
26: #endif
27: #ifndef S_IRUSR
28: #define S_IRUSR S_IREAD
29: #define S_IWUSR S_IWRITE
30: #define S_IXUSR S_IEXEC
31: #define S_IRGRP (S_IREAD>>3)
32: #define S_IWGRP (S_IWRITE>>3)
33: #define S_IXGRP (S_IEXEC>>3)
34: #define S_IROTH (S_IREAD>>6)
35: #define S_IWOTH (S_IWRITE>>6)
36: #define S_IXOTH (S_IEXEC>>6)
37: #endif
38:
39: #define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
40: #define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
41: #define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
42: #endif
43:
44: #ifdef stat_blocks
45: #define tblocks(p) (((p)->st_blocks+1)/2)
46: #else
47: #define tblocks(p) iblocks(p)
48: #if __STDC__ || __cplusplus || c_plusplus
49: #if __cplusplus
50: extern "C" {
51: #endif
52: extern long iblocks(struct stat*);
53: #if __cplusplus
54: }
55: #endif
56: #else
57: extern long iblocks();
58: #endif
59: #endif
60:
61: #define LS_ATIME (1<<0) /* list st_atime */
62: #define LS_BLOCKS (1<<1) /* list blocks used by file */
63: #define LS_CTIME (1<<2) /* list st_ctime */
64: #define LS_INUMBER (1<<3) /* list st_ino */
65: #define LS_LONG (1<<4) /* long listing */
66: #define LS_MARK (1<<5) /* append file name marks */
67: #define LS_NOGROUP (1<<6) /* omit group name for LS_LONG */
68: #define LS_NOUSER (1<<7) /* omit user name for LS_LONG */
69:
70: #define LS_USER (1<<8) /* first user flag bit */
71:
72: #define LS_W_BLOCKS 5 /* LS_BLOCKS field width */
73: #define LS_W_INUMBER 7 /* LS_INUMBER field width */
74: #define LS_W_LONG 55 /* LS_LONG width (w/o names) */
75: #define LS_W_LINK 4 /* link text width (w/o names) */
76: #define LS_W_MARK 1 /* LS_MARK field width */
77: #define LS_W_NAME 9 /* group|user name field width */
78:
79: #if __STDC__ || __cplusplus || c_plusplus
80: #if __cplusplus
81: extern "C" {
82: #endif
83: extern char* fmtls(char*, const char*, struct stat*, const char*, const char*, int);
84: #if __cplusplus
85: }
86: #endif
87: #else
88: extern char* fmtls();
89: #endif
90:
91: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.