shithub: drawterm

Download patch

ref: f8adb5f768c5b0573a7d8efea311705dc440a8f2
parent: 911c97608ef1bce09b8e62355344e301c9b250d4
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Dec 16 15:29:45 EST 2016

remove unused kern/x file

--- a/kern/x
+++ /dev/null
@@ -1,601 +1,0 @@
-#include	<sys/types.h>
-#include	<sys/stat.h>
-#include	<dirent.h>
-#include	<fcntl.h>
-#include	<errno.h>
-#include	<stdio.h> /* for remove, rename */
-#include	<limits.h>
-
-#ifndef NAME_MAX
-#	define NAME_MAX 256
-#endif
-#include	"u.h"
-#include	"lib.h"
-#include	"dat.h"
-#include	"fns.h"
-#include	"error.h"
-
-
-typedef	struct Ufsinfo	Ufsinfo;
-
-enum
-{
-	NUID	= 256,
-	NGID	= 256,
-	MAXPATH	= 1024,
-	MAXCOMP	= 128
-};
-
-struct Ufsinfo
-{
-	int	mode;
-	int	fd;
-	DIR*	dir;
-	ulong	offset;
-	QLock	oq;
-	char nextname[NAME_MAX];
-};
-
-char	*base = "/";
-
-static	Qid	fsqid(char*, struct stat *);
-static	void	fspath(Chan*, char*, char*);
-static	ulong	fsdirread(Chan*, uchar*, int, ulong);
-static	int	fsomode(int);
-
-static char*
-lastelem(Chan *c)
-{
-	char *s, *t;
-
-	s = c2name(c);
-	if((t = strrchr(s, '/')) == nil)
-		return s;
-	if(t[1] == 0)
-		return t;
-	return t+1;
-}
-	
-static Chan*
-fsattach(char *spec)
-{
-	Chan *c;
-	struct stat stbuf;
-	static int devno;
-	Ufsinfo *uif;
-
-	if(stat(base, &stbuf) < 0)
-		error(strerror(errno));
-
-	c = devattach('U', spec);
-
-	uif = mallocz(sizeof(Ufsinfo), 1);
-	uif->mode = stbuf.st_mode;
-
-	c->aux = uif;
-	c->dev = devno++;
-
-	return c;
-}
-
-static Chan*
-fsclone(Chan *c, Chan *nc)
-{
-	Ufsinfo *uif;
-
-	uif = mallocz(sizeof(Ufsinfo), 1);
-	*uif = *(Ufsinfo*)c->aux;
-	nc->aux = uif;
-
-	return nc;
-}
-
-static int
-fswalk1(Chan *c, char *name)
-{
-	struct stat stbuf;
-	char path[MAXPATH];
-	Ufsinfo *uif;
-
-	fspath(c, name, path);
-
-/*	print("** fs walk '%s' -> %s\n", path, name); */
-
-	if(stat(path, &stbuf) < 0)
-		return 0;
-
-	uif = c->aux;
-
-	uif->mode = stbuf.st_mode;
-
-	c->qid = fsqid(path, &stbuf);
-
-	return 1;
-}
-
-static Walkqid*
-fswalk(Chan *c, Chan *nc, char **name, int nname)
-{
-	int i;
-	Walkqid *wq;
-
-	if(nc != nil)
-		panic("fswalk: nc != nil");
-	wq = smalloc(sizeof(Walkqid)+(nname-1)*sizeof(Qid));
-	nc = devclone(c);
-	fsclone(c, nc);
-	wq->clone = nc;
-	for(i=0; i<nname; i++){
-		if(fswalk1(nc, name[i]) == 0)
-			break;
-		wq->qid[i] = nc->qid;
-	}
-	if(i != nname){
-		cclose(nc);
-		wq->clone = nil;
-	}
-	wq->nqid = i;
-	return wq;
-}
-	
-static int
-fsstat(Chan *c, uchar *buf, int n)
-{
-	Dir d;
-	struct stat stbuf;
-	char path[MAXPATH];
-
-	if(n < BIT16SZ)
-		error(Eshortstat);
-
-	fspath(c, 0, path);
-	if(stat(path, &stbuf) < 0)
-		error(strerror(errno));
-
-	d.name = lastelem(c);
-	d.uid = "unknown";
-	d.gid = "unknown";
-	d.qid = c->qid;
-	d.mode = (c->qid.type<<24)|(stbuf.st_mode&0777);
-	d.atime = stbuf.st_atime;
-	d.mtime = stbuf.st_mtime;
-	d.length = stbuf.st_size;
-	d.type = 'U';
-	d.dev = c->dev;
-	return convD2M(&d, buf, n);
-}
-
-static Chan*
-fsopen(Chan *c, int mode)
-{
-	char path[MAXPATH];
-	int m, isdir;
-	Ufsinfo *uif;
-
-	m = mode & (OTRUNC|3);
-	switch(m) {
-	case 0:
-		break;
-	case 1:
-	case 1|16:
-		break;
-	case 2:	
-	case 0|16:
-	case 2|16:
-		break;
-	case 3:
-		break;
-	default:
-		error(Ebadarg);
-	}
-
-	isdir = c->qid.type & QTDIR;
-
-	if(isdir && mode != OREAD)
-		error(Eperm);
-
-	m = fsomode(m & 3);
-	c->mode = openmode(mode);
-
-	uif = c->aux;
-
-	fspath(c, 0, path);
-	if(isdir) {
-		uif->dir = opendir(path);
-		if(uif->dir == 0)
-			error(strerror(errno));
-	}	
-	else {
-		if(mode & OTRUNC)
-			m |= O_TRUNC;
-		uif->fd = open(path, m, 0666);
-
-		if(uif->fd < 0)
-			error(strerror(errno));
-	}
-	uif->offset = 0;
-
-	c->offset = 0;
-	c->flag |= COPEN;
-	return c;
-}
-
-static void
-fscreate(Chan *c, char *name, int mode, ulong perm)
-{
-	int fd, m;
-	char path[MAXPATH];
-	struct stat stbuf;
-	Ufsinfo *uif;
-
-	m = fsomode(mode&3);
-
-	fspath(c, name, path);
-
-	uif = c->aux;
-
-	if(perm & DMDIR) {
-		if(m)
-			error(Eperm);
-
-		if(mkdir(path, perm & 0777) < 0)
-			error(strerror(errno));
-
-		fd = open(path, 0);
-		if(fd >= 0) {
-			chmod(path, perm & 0777);
-			chown(path, uif->uid, uif->uid);
-		}
-		close(fd);
-
-		uif->dir = opendir(path);
-		if(uif->dir == 0)
-			error(strerror(errno));
-	}
-	else {
-		fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0666);
-		if(fd >= 0) {
-			if(m != 1) {
-				close(fd);
-				fd = open(path, m);
-			}
-			chmod(path, perm & 0777);
-			chown(path, uif->uid, uif->gid);
-		}
-		if(fd < 0)
-			error(strerror(errno));
-		uif->fd = fd;
-	}
-
-	if(stat(path, &stbuf) < 0)
-		error(strerror(errno));
-	c->qid = fsqid(path, &stbuf);
-	c->offset = 0;
-	c->flag |= COPEN;
-	c->mode = openmode(mode);
-}
-
-static void
-fsclose(Chan *c)
-{
-	Ufsinfo *uif;
-
-	uif = c->aux;
-
-	if(c->flag & COPEN) {
-		if(c->qid.type & QTDIR)
-			closedir(uif->dir);
-		else
-			close(uif->fd);
-	}
-
-	free(uif);
-}
-
-static long
-fsread(Chan *c, void *va, long n, vlong offset)
-{
-	int fd, r;
-	Ufsinfo *uif;
-
-	if(c->qid.type & QTDIR)
-		return fsdirread(c, va, n, offset);
-
-	uif = c->aux;
-	qlock(&uif->oq);
-	if(waserror()) {
-		qunlock(&uif->oq);
-		nexterror();
-	}
-	fd = uif->fd;
-	if(uif->offset != offset) {
-		r = lseek(fd, offset, 0);
-		if(r < 0)
-			error(strerror(errno));
-		uif->offset = offset;
-	}
-
-	n = read(fd, va, n);
-	if(n < 0)
-		error(strerror(errno));
-
-	uif->offset += n;
-	qunlock(&uif->oq);
-	poperror();
-
-	return n;
-}
-
-static long
-fswrite(Chan *c, void *va, long n, vlong offset)
-{
-	int fd, r;
-	Ufsinfo *uif;
-
-	uif = c->aux;
-
-	qlock(&uif->oq);
-	if(waserror()) {
-		qunlock(&uif->oq);
-		nexterror();
-	}
-	fd = uif->fd;
-	if(uif->offset != offset) {
-		r = lseek(fd, offset, 0);
-		if(r < 0)
-			error(strerror(errno));
-		uif->offset = offset;
-	}
-
-	n = write(fd, va, n);
-	if(n < 0)
-		error(strerror(errno));
-
-	uif->offset += n;
-	qunlock(&uif->oq);
-	poperror();
-
-	return n;
-}
-
-static void
-fsremove(Chan *c)
-{
-	int n;
-	char path[MAXPATH];
-
-	fspath(c, 0, path);
-	if(c->qid.type & QTDIR)
-		n = rmdir(path);
-	else
-		n = remove(path);
-	if(n < 0)
-		error(strerror(errno));
-}
-
-void
-fswstat(Chan *c, uchar *buf, int n)
-{
-	Dir d;
-	struct stat stbuf;
-	char old[MAXPATH], new[MAXPATH], dir[MAXPATH];
-	char strs[MAXPATH*3];
-	Ufsinfo *uif;
-
-	if(convM2D(buf, n, &d, strs) != n)
-		error(Ebadstat);
-	
-	fspath(c, 0, old);
-	if(stat(old, &stbuf) < 0)
-		error(strerror(errno));
-
-	uif = c->aux;
-
-	if(d.name[0] && strcmp(d.name, lastelem(c)) != 0) {
-		fspath(c->parent, 0, dir);
-		fspath(c, 0, old);
-		strcpy(new, old);
-		p = strrchr(new, '/');
-		strcpy(p+1, d.name);
-		if(rename(old, new) < 0)
-			error(strerror(errno));
-	}
-
-	fspath(c, 0, old);
-	if(~d.mode != 0 && (int)(d.mode&0777) != (int)(stbuf.st_mode&0777)) {
-		if(chmod(old, d.mode&0777) < 0)
-			error(strerror(errno));
-		uif->mode &= ~0777;
-		uif->mode |= d.mode&0777;
-	}
-/*
-	p = name2pass(gid, d.gid);
-	if(p == 0)
-		error(Eunknown);
-
-	if(p->id != stbuf.st_gid) {
-		if(chown(old, stbuf.st_uid, p->id) < 0)
-			error(strerror(errno));
-
-		uif->gid = p->id;
-	}
-*/
-}
-
-static Qid
-fsqid(char *p, struct stat *st)
-{
-	Qid q;
-	int dev;
-	ulong h;
-	static int nqdev;
-	static uchar *qdev;
-
-	if(qdev == 0)
-		qdev = mallocz(65536U, 1);
-
-	q.type = 0;
-	if((st->st_mode&S_IFMT) ==  S_IFDIR)
-		q.type = QTDIR;
-
-	dev = st->st_dev & 0xFFFFUL;
-	if(qdev[dev] == 0)
-		qdev[dev] = ++nqdev;
-
-	h = 0;
-	while(*p != '\0')
-		h += *p++ * 13;
-	
-	q.path = (vlong)qdev[dev]<<32;
-	q.path |= h;
-	q.vers = st->st_mtime;
-
-	return q;
-}
-
-static void
-fspath(Chan *c, char *ext, char *path)
-{
-	int i, n;
-	char *comp[MAXCOMP];
-
-	strcpy(path, base);
-	strcat(path, "/");
-	strcat(path, c2name(c));
-	if(ext){
-		strcat(path, "/");
-		strcat(path, ext);
-	}
-	cleanname(path);
-}
-
-static int
-isdots(char *name)
-{
-	if(name[0] != '.')
-		return 0;
-	if(name[1] == '\0')
-		return 1;
-	if(name[1] != '.')
-		return 0;
-	if(name[2] == '\0')
-		return 1;
-	return 0;
-}
-
-static int
-p9readdir(char *name, Ufsinfo *uif)
-{
-	struct dirent *de;
-	
-	if(uif->nextname[0]){
-		strcpy(name, uif->nextname);
-		uif->nextname[0] = 0;
-		return 1;
-	}
-
-	de = readdir(uif->dir);
-	if(de == NULL)
-		return 0;
-		
-	strcpy(name, de->d_name);
-	return 1;
-}
-
-static ulong
-fsdirread(Chan *c, uchar *va, int count, ulong offset)
-{
-	int i;
-	Dir d;
-	long n;
-	char de[NAME_MAX];
-	struct stat stbuf;
-	char path[MAXPATH], dirpath[MAXPATH];
-	Ufsinfo *uif;
-	int n;
-
-	i = 0;
-	uif = c->aux;
-
-	errno = 0;
-	if(uif->offset != offset) {
-		if(offset != 0)
-			error("bad offset in fsdirread");
-		uif->offset = offset;  /* sync offset */
-		uif->nextname[0] = 0;
-		rewinddir(uif->dir);
-	}
-
-	fspath(c, 0, dirpath);
-
-	while(i+BIT16SZ < count) {
-		if(!p9readdir(de, uif))
-			break;
-
-		if(de[0]==0 || isdots(de))
-			continue;
-
-		d.name = de;
-		sprint(path, "%s/%s", dirpath, de);
-		memset(&stbuf, 0, sizeof stbuf);
-
-		if(stat(path, &stbuf) < 0) {
-			fprint(2, "dir: bad path %s\n", path);
-			/* but continue... probably a bad symlink */
-		}
-
-		d.uid = "unknown";
-		d.gid = "unknown";
-		d.qid = fsqid(path, &stbuf);
-		d.mode = (d.qid.type<<24)|(stbuf.st_mode&0777);
-		d.atime = stbuf.st_atime;
-		d.mtime = stbuf.st_mtime;
-		d.length = stbuf.st_size;
-		d.type = 'U';
-		d.dev = c->dev;
-		n = convD2M(&d, (char*)va+i, count-i);
-		if(n == BIT16SZ){
-			strcpy(uif->nextname, de);
-			break;
-		}
-		i += n;
-	}
-	return i;
-}
-
-static int
-fsomode(int m)
-{
-	switch(m) {
-	case 0:			/* OREAD */
-	case 3:			/* OEXEC */
-		return 0;
-	case 1:			/* OWRITE */
-		return 1;
-	case 2:			/* ORDWR */
-		return 2;
-	}
-	error(Ebadarg);
-	return 0;
-}
-
-Dev fsdevtab = {
-	'U',
-	"fs",
-
-	devreset,
-	devinit,
-	devshutdown,
-	fsattach,
-	fswalk,
-	fsstat,
-	fsopen,
-	fscreate,
-	fsclose,
-	fsread,
-	devbread,
-	fswrite,
-	devbwrite,
-	fsremove,
-	fswstat,
-};