1: #include "hd.h"
2: #include "mydir.h"
3: #include "command.h"
4:
5: #define SHIFT1 13
6: #define SHIFT2 6
7: #define SHIFT3 3
8: #define MASK 07
9:
10: pfstatus (fname) char * fname; {
11:
12: /* long listing of a file */
13: static char *mchar [2] [8] = {
14: "---", "--x", "-w-", "-wx",
15: "r--", "r-x", "rw-", "rwx",
16: "--s", "--s", "-ws", "-ws",
17: "r-s", "r-s", "rws", "rws"
18: };
19:
20: static char fformat [8] = {' ', 'c', 'd', 'b', '-', '?', '?', '?'};
21:
22: register mode;
23:
24: if (stat (fname, &scr_stb)) {
25: printf ("Cannot Access");
26: return;
27: }
28: mode = scr_stb.st_mode;
29:
30: printf ("%c%c%s%s%s%s%2d",
31: (mode & S_ISVTX) ? 't' : ' ',
32: fformat [(mode >> SHIFT1) & MASK],
33: mchar [(mode & S_ISUID) != 0] [(mode >> SHIFT2) & MASK],
34: mchar [(mode & S_ISGID) != 0] [(mode >> SHIFT3) & MASK],
35: mchar [0] [mode & MASK],
36: scr_stb.st_nlink > 99 ? "" : " ",
37: scr_stb.st_nlink);
38: if (mode & S_IFCHR)
39: printf ("%5d, %3d",
40: major (scr_stb.st_rdev), minor (scr_stb.st_rdev));
41: else
42: printf ("%10D", scr_stb.st_size);
43: printf (" %.24s", ctime (&scr_stb.st_mtime));
44: }
45:
46: /* This prints out the protection modes of the files on the current
47: page. It knows the page from the global variable cpage. The
48: value NOREPLOT is always returned, to make globalcmd happy.
49: */
50: longlist () { /* long listing for entire page */
51:
52: register i;
53: bufout ();
54: for (i=0; i < pageend; i++) longfile (i);
55: unbufout ();
56:
57: return CMD_DATE; /* Run date command */
58: }
59:
60: longfile (index) int index; {
61:
62: atfile (index, 22); pfstatus (filename (index));
63: }
Defined functions
Defined macros
MASK
defined in line
8; used 4 times
SHIFT1
defined in line
5; used 1 times
SHIFT2
defined in line
6; used 1 times
SHIFT3
defined in line
7; used 1 times