Commit Diff


commit - 230d62c4756ece47951e96a7cb1b5b72cf6a3844
commit + 15680d56a6c6e15921d958aa6006825c2cd20bf8
blob - 180b2bd2640b97e1682559b239a102304d803c11
blob + cfbfae3fdab21c19de2994f92c2d124cb32865dc
--- src/cmd/acme/util.c
+++ src/cmd/acme/util.c
@@ -298,7 +298,7 @@ tgetc(void *a, uint n)
 Rune*
 skipbl(Rune *r, int n, int *np)
 {
-	while(n>0 && *r==' ' || *r=='\t' || *r=='\n'){
+	while(n>0 && (*r==' ' || *r=='\t' || *r=='\n')){
 		--n;
 		r++;
 	}
@@ -309,7 +309,7 @@ skipbl(Rune *r, int n, int *np)
 Rune*
 findbl(Rune *r, int n, int *np)
 {
-	while(n>0 && *r!=' ' && *r!='\t' && *r!='\n'){
+	while(n>0 && (*r!=' ' && *r!='\t' && *r!='\n')){
 		--n;
 		r++;
 	}
blob - ae45f933d95ebd5bedd4b4cdb3e75f8eb7d03a78
blob + 54c605215e8c72f632c57eecb53c9eb08da93d11
--- src/cmd/plumb/plumber.c
+++ src/cmd/plumb/plumber.c
@@ -29,14 +29,18 @@ void
 threadmain(int argc, char *argv[])
 {
 	char buf[512];
-	int fd;
+	int fd, dofork;
 
 	progname = "plumber";
+	dofork = 1;
 
 	ARGBEGIN{
 	case 'd':
 		debug = 1;
 		break;
+	case 'f':
+		dofork = 0;
+		break;
 	case 'p':
 		plumbfile = ARGF();
 		break;
@@ -66,6 +70,7 @@ threadmain(int argc, char *argv[])
 	 * Start all processes and threads from other proc
 	 * so we (main pid) can return to user.
 	 */
+	if(dofork)
 	switch(fork()){
 	case -1:
 		sysfatal("fork: %r");
blob - 52a3d8e51e77e3f8ce71e64a55acec3224da6a2e
blob + 689edf5983b22367e7c99e2946f3d7b1a8bb1fc2
--- src/cmd/plumb/rules.c
+++ src/cmd/plumb/rules.c
@@ -741,6 +741,7 @@ morerules(uchar *text, int done)
 		;
 	while((rs=readruleset()) != nil){
 		rules = erealloc(rules, (n+2)*sizeof(Ruleset*));
+		fprint(2, "initialize rules %d %d\n", n, n+1);
 		rules[n++] = rs;
 		rules[n] = nil;
 	}
blob - 6b14d3fc338b5f9b67a0705318c814cddf9824d7
blob + 9feffa423a948f713ca3036e62a5ce096162ad7b
--- src/libdraw/font.c
+++ src/libdraw/font.c
@@ -28,7 +28,7 @@ cachechars(Font *f, char **ss, Rune **rr, ushort *cp, 
 	}
 	wid = 0;
 	*subfontname = 0;
-	for(i=0; (*sp || *rp) && i<max; sp+=w, rp+=rw){
+	for(i=0; i<max && (*sp || *rp); sp+=w, rp+=rw){
 		if(ss){
 			r = *(uchar*)sp;
 			if(r < Runeself)
blob - c4877912fe5e8246c8afa7ce2160f542f8ccf5c7
blob + f0d1372119f159b6d89c1d84841f8b246423a400
--- src/libdraw/stringwidth.c
+++ src/libdraw/stringwidth.c
@@ -25,7 +25,7 @@ _stringnwidth(Font *f, char *s, Rune *r, int len)
 	}else
 		rptr = &r;
 	twid = 0;
-	while((*s || *r) && len){
+	while(len && (*s || *r)){
 		max = Max;
 		if(len < max)
 			max = len;
blob - d25930119c793488f4f66dbeb8c7d14767a12671
blob + beb37c1611a5f6d35f7c56d85c923318a37de38b
--- src/libframe/frbox.c
+++ src/libframe/frbox.c
@@ -115,9 +115,12 @@ static
 void
 chopbox(Frame *f, Frbox *b, int n)	/* drop first n chars; no allocation done */
 {
+	char *p;
+	
 	if(b->nrune<0 || b->nrune<n)
 		drawerror(f->display, "chopbox");
-	strcpy((char*)b->ptr, (char*)runeindex(b->ptr, n));
+	p = (char*)runeindex(b->ptr, n);
+	memmove((char*)b->ptr, p, strlen(p)+1);
 	b->nrune -= n;
 	b->wid = stringwidth(f->font, (char *)b->ptr);
 }
blob - 7cd4fd14bf17d2b579ee7590990c465e131cd1a5
blob + 9765602c9c121a8102764ec8d30805e63cbf1bea
--- src/libfs/read.c
+++ src/libfs/read.c
@@ -28,7 +28,8 @@ fprint(2, "n %d msize %d\n", n, msize);
 		tx.offset = offset;
 	tx.count = n;
 
-	fsrpc(fid->fs, &tx, &rx, &freep);
+	if(fsrpc(fid->fs, &tx, &rx, &freep) < 0)
+		return -1;
 	if(rx.type == Rerror){
 		werrstr("%s", rx.ename);
 		free(freep);
blob - bae2083e379af862d4eb456bb4b17917ecac6d20
blob + 5da27d12035be3d45c3b8922cce3e79036c233f4
--- src/libfs/write.c
+++ src/libfs/write.c
@@ -24,7 +24,8 @@ _fspwrite(Fid *fid, void *buf, long n, vlong offset)
 	tx.count = n;
 	tx.data = buf;
 
-	fsrpc(fid->fs, &tx, &rx, &freep);
+	if(fsrpc(fid->fs, &tx, &rx, &freep) < 0)
+		return -1;
 	if(rx.type == Rerror){
 		werrstr("%s", rx.ename);
 		free(freep);
blob - 96d993359c1c26947227b79c88ab031fd63d3daf
blob + cbecad53d741034bec9c1f7d1058ea300623e9f9
--- src/libthread/main.c
+++ src/libthread/main.c
@@ -45,7 +45,7 @@ main(int argc, char **argv)
 
 	signal(SIGTERM, _threaddie);
 	signal(SIGCHLD, _nop);
-	signal(SIGINFO, _threadstatus);
+//	signal(SIGINFO, _threadstatus);
 //	rfork(RFREND);
 
 //_threaddebuglevel = (DBGSCHED|DBGCHAN|DBGREND)^~0;