|
|
1.1 root 1: #include <stdio.h>
2: #include "faces.h"
3: #include "faceproto.h"
4:
5: main(argc, argv)
6: int argc;
7: char **argv;
8: {
9: register File *f;
10: register int i;
11: char *a[10];
12: int na;
13: char buf[100];
14:
15: while (fgets(buf, sizeof(buf), stdin)) {
16: buf[strlen(buf)-1] = 0; /* stupid newline */
17: if ((na = getmfields(buf, a, 10)) <= 0)
18: continue;
19: switch (a[0][0]) {
20: case 'i':
21: if (na < 3) {
22: printf("i pfile mfile\n");
23: continue;
24: }
25: maketree(a[1], a[2]);
26: printf("%ld\n", (long)sbrk(0));
27: continue;
28:
29: case 'f':
30: if (na < 2) {
31: printf("f file\n");
32: continue;
33: }
34: if ((f = lookfile(a[1])) == NULL) {
35: printf("%s: not found\n", a[1]);
36: continue;
37: }
38: if (isdir(f))
39: printf("ino %d links %d dir nalloc %d nfiles %d\n",
40: f->ino, f->nlinks, f->nalloc, f->nfiles);
41: else
42: printf("ino %d links %d file %s\n",
43: f->ino, f->nlinks, f->data);
44: continue;
45:
46: case 'd':
47: case 'l':
48: if (na < 2) {
49: printf("%c dir\n", a[0][0]);
50: continue;
51: }
52: if ((f = lookfile(a[1])) == NULL) {
53: printf("%s: not found\n", a[1]);
54: continue;
55: }
56: if (!isdir(f)) {
57: printf("%s: not directory\n", a[1]);
58: continue;
59: }
60: if (a[0][0] == 'd')
61: dirdata(f);
62: for (i = 0; i < f->nfiles; i++)
63: if (a[0][0] == 'd')
64: printf("%s\n", f->data+(i*FDLEN)+FD_NAME);
65: else
66: printf("%s\n", f->dir[i].name);
67: continue;
68:
69: case 'D':
70: if (na < 2) {
71: printf("D dir\n");
72: continue;
73: }
74: if ((f = lookfile(a[1])) == NULL) {
75: printf("%s: not found\n", a[1]);
76: continue;
77: }
78: if (!isdir(f)) {
79: printf("%s: not directory\n", a[1]);
80: continue;
81: }
82: dirdata(f);
83: printf("%ld\n", sbrk(0));
84: continue;
85:
86: default:
87: printf("?\n");
88: continue;
89: }
90: }
91: exit(0);
92: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.