File:  [Research Unix] / researchv10no / cmd / face / scaffold.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

#include <stdio.h>
#include "faces.h"
#include "faceproto.h"

main(argc, argv)
int argc;
char **argv;
{
	register File *f;
	register int i;
	char *a[10];
	int na;
	char buf[100];

	while (fgets(buf, sizeof(buf), stdin)) {
		buf[strlen(buf)-1] = 0;	/* stupid newline */
		if ((na = getmfields(buf, a, 10)) <= 0)
			continue;
		switch (a[0][0]) {
		case 'i':
			if (na < 3) {
				printf("i pfile mfile\n");
				continue;
			}
			maketree(a[1], a[2]);
			printf("%ld\n", (long)sbrk(0));
			continue;

		case 'f':
			if (na < 2) {
				printf("f file\n");
				continue;
			}
			if ((f = lookfile(a[1])) == NULL) {
				printf("%s: not found\n", a[1]);
				continue;
			}
			if (isdir(f))
				printf("ino %d links %d dir nalloc %d nfiles %d\n",
					f->ino, f->nlinks, f->nalloc, f->nfiles);
			else
				printf("ino %d links %d file %s\n",
					f->ino, f->nlinks, f->data);
			continue;

		case 'd':
		case 'l':
			if (na < 2) {
				printf("%c dir\n", a[0][0]);
				continue;
			}
			if ((f = lookfile(a[1])) == NULL) {
				printf("%s: not found\n", a[1]);
				continue;
			}
			if (!isdir(f)) {
				printf("%s: not directory\n", a[1]);
				continue;
			}
			if (a[0][0] == 'd')
				dirdata(f);
			for (i = 0; i < f->nfiles; i++)
				if (a[0][0] == 'd')
					printf("%s\n", f->data+(i*FDLEN)+FD_NAME);
				else
					printf("%s\n", f->dir[i].name);
			continue;

		case 'D':
			if (na < 2) {
				printf("D dir\n");
				continue;
			}
			if ((f = lookfile(a[1])) == NULL) {
				printf("%s: not found\n", a[1]);
				continue;
			}
			if (!isdir(f)) {
				printf("%s: not directory\n", a[1]);
				continue;
			}
			dirdata(f);
			printf("%ld\n", sbrk(0));
			continue;

		default:
			printf("?\n");
			continue;
		}
	}
	exit(0);
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.