Browse Source

Plan 9 from Bell Labs 2005-04-09

David du Colombier 19 years ago
parent
commit
a12a11178a

+ 5 - 6
dist/replica/_plan9.db

@@ -5146,7 +5146,7 @@ sys/man/8/nfsserver - 664 sys sys 1017251291 3397
 sys/man/8/pcmcia - 664 sys sys 944959679 408
 sys/man/8/pem - 664 sys sys 1060263669 1189
 sys/man/8/ping - 664 sys sys 1084473185 3436
-sys/man/8/plan9.ini - 664 sys sys 1107448255 21148
+sys/man/8/plan9.ini - 664 sys sys 1112972932 21498
 sys/man/8/pop3 - 664 sys sys 1063854676 2720
 sys/man/8/ppp - 664 sys sys 1096036494 4424
 sys/man/8/prep - 664 sys sys 1079705872 13820
@@ -7558,7 +7558,7 @@ sys/src/cmd/fax/receiverc - 775 sys sys 944960990 581
 sys/src/cmd/fax/send.c - 664 sys sys 944960990 923
 sys/src/cmd/fax/subr.c - 664 sys sys 1015090401 1245
 sys/src/cmd/fcp.c - 644 sys sys 1110816880 3780
-sys/src/cmd/file.c - 664 sys sys 1112038848 23285
+sys/src/cmd/file.c - 664 sys sys 1112972205 23328
 sys/src/cmd/fmt.c - 664 sys sys 1070032009 4088
 sys/src/cmd/fortune.c - 664 sys sys 1072729222 1779
 sys/src/cmd/fossil - 20000000775 sys sys 1042005512 0
@@ -10922,7 +10922,6 @@ sys/src/cmd/upas/send - 20000000775 sys sys 1016904916 0
 sys/src/cmd/upas/send/authorize.c - 664 sys sys 944961322 569
 sys/src/cmd/upas/send/bind.c - 664 sys sys 944961322 3252
 sys/src/cmd/upas/send/cat_mail.c - 664 sys sys 1016904916 1190
-sys/src/cmd/upas/send/date - 664 sys sys 944961326 4665
 sys/src/cmd/upas/send/dest.c - 664 sys sys 1109511268 4789
 sys/src/cmd/upas/send/filter.c - 664 sys sys 988225293 2292
 sys/src/cmd/upas/send/gateway.c - 664 sys sys 944961322 499
@@ -10935,7 +10934,6 @@ sys/src/cmd/upas/send/mkfile - 664 sys sys 1064589602 706
 sys/src/cmd/upas/send/regtest.c - 664 sys sys 944961322 566
 sys/src/cmd/upas/send/rewrite.c - 664 sys sys 1031707304 6294
 sys/src/cmd/upas/send/send.h - 664 sys sys 1069366924 3265
-sys/src/cmd/upas/send/sender - 664 sys sys 944961323 4964
 sys/src/cmd/upas/send/skipequiv.c - 664 sys sys 944961322 1747
 sys/src/cmd/upas/send/translate.c - 664 sys sys 944961322 804
 sys/src/cmd/upas/send/tryit - 664 sys sys 944961322 584
@@ -11357,13 +11355,13 @@ sys/src/games/music/jukefs/fs.c - 664 sys sys 1103793920 12708
 sys/src/games/music/jukefs/mk.dep - 664 sys sys 1103793920 759
 sys/src/games/music/jukefs/mkfile - 664 sys sys 1103793920 225
 sys/src/games/music/jukefs/object.h - 664 sys sys 1103793920 2068
-sys/src/games/music/jukefs/parse.c - 664 sys sys 1103793920 14098
+sys/src/games/music/jukefs/parse.c - 664 sys sys 1112972626 14090
 sys/src/games/music/jukefs/parse.h - 664 sys sys 1103793921 418
 sys/src/games/music/jukefs/print.c - 664 sys sys 1103793921 9016
 sys/src/games/music/jukefs/print.h - 664 sys sys 1103793921 174
 sys/src/games/music/jukefs/search.c - 664 sys sys 1103793921 1058
 sys/src/games/music/jukefs/search.h - 664 sys sys 1103793921 101
-sys/src/games/music/jukefs/server.c - 664 sys sys 1103793922 3521
+sys/src/games/music/jukefs/server.c - 664 sys sys 1112972626 3544
 sys/src/games/music/missing - 775 sys sys 1103793915 72
 sys/src/games/music/mkfile - 664 sys sys 1103793915 723
 sys/src/games/music/mkinc - 664 sys sys 1103793915 92
@@ -12482,3 +12480,4 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/file - 775 sys sys 1113016150 112820

+ 5 - 7
dist/replica/plan9.db

@@ -224,7 +224,7 @@
 386/bin/faces - 775 sys sys 1106799174 192579
 386/bin/factor - 775 sys sys 1104122008 61475
 386/bin/fcp - 775 sys sys 1110859785 82162
-386/bin/file - 775 sys sys 1112155767 112780
+386/bin/file - 775 sys sys 1113016150 112820
 386/bin/fmt - 775 sys sys 1104122009 65301
 386/bin/fortune - 775 sys sys 1104122009 67136
 386/bin/fossil - 20000000775 sys sys 1042005470 0
@@ -5146,7 +5146,7 @@ sys/man/8/nfsserver - 664 sys sys 1017251291 3397
 sys/man/8/pcmcia - 664 sys sys 944959679 408
 sys/man/8/pem - 664 sys sys 1060263669 1189
 sys/man/8/ping - 664 sys sys 1084473185 3436
-sys/man/8/plan9.ini - 664 sys sys 1107448255 21148
+sys/man/8/plan9.ini - 664 sys sys 1112972932 21498
 sys/man/8/pop3 - 664 sys sys 1063854676 2720
 sys/man/8/ppp - 664 sys sys 1096036494 4424
 sys/man/8/prep - 664 sys sys 1079705872 13820
@@ -7558,7 +7558,7 @@ sys/src/cmd/fax/receiverc - 775 sys sys 944960990 581
 sys/src/cmd/fax/send.c - 664 sys sys 944960990 923
 sys/src/cmd/fax/subr.c - 664 sys sys 1015090401 1245
 sys/src/cmd/fcp.c - 644 sys sys 1110816880 3780
-sys/src/cmd/file.c - 664 sys sys 1112038848 23285
+sys/src/cmd/file.c - 664 sys sys 1112972205 23328
 sys/src/cmd/fmt.c - 664 sys sys 1070032009 4088
 sys/src/cmd/fortune.c - 664 sys sys 1072729222 1779
 sys/src/cmd/fossil - 20000000775 sys sys 1042005512 0
@@ -10922,7 +10922,6 @@ sys/src/cmd/upas/send - 20000000775 sys sys 1016904916 0
 sys/src/cmd/upas/send/authorize.c - 664 sys sys 944961322 569
 sys/src/cmd/upas/send/bind.c - 664 sys sys 944961322 3252
 sys/src/cmd/upas/send/cat_mail.c - 664 sys sys 1016904916 1190
-sys/src/cmd/upas/send/date - 664 sys sys 944961326 4665
 sys/src/cmd/upas/send/dest.c - 664 sys sys 1109511268 4789
 sys/src/cmd/upas/send/filter.c - 664 sys sys 988225293 2292
 sys/src/cmd/upas/send/gateway.c - 664 sys sys 944961322 499
@@ -10935,7 +10934,6 @@ sys/src/cmd/upas/send/mkfile - 664 sys sys 1064589602 706
 sys/src/cmd/upas/send/regtest.c - 664 sys sys 944961322 566
 sys/src/cmd/upas/send/rewrite.c - 664 sys sys 1031707304 6294
 sys/src/cmd/upas/send/send.h - 664 sys sys 1069366924 3265
-sys/src/cmd/upas/send/sender - 664 sys sys 944961323 4964
 sys/src/cmd/upas/send/skipequiv.c - 664 sys sys 944961322 1747
 sys/src/cmd/upas/send/translate.c - 664 sys sys 944961322 804
 sys/src/cmd/upas/send/tryit - 664 sys sys 944961322 584
@@ -11357,13 +11355,13 @@ sys/src/games/music/jukefs/fs.c - 664 sys sys 1103793920 12708
 sys/src/games/music/jukefs/mk.dep - 664 sys sys 1103793920 759
 sys/src/games/music/jukefs/mkfile - 664 sys sys 1103793920 225
 sys/src/games/music/jukefs/object.h - 664 sys sys 1103793920 2068
-sys/src/games/music/jukefs/parse.c - 664 sys sys 1103793920 14098
+sys/src/games/music/jukefs/parse.c - 664 sys sys 1112972626 14090
 sys/src/games/music/jukefs/parse.h - 664 sys sys 1103793921 418
 sys/src/games/music/jukefs/print.c - 664 sys sys 1103793921 9016
 sys/src/games/music/jukefs/print.h - 664 sys sys 1103793921 174
 sys/src/games/music/jukefs/search.c - 664 sys sys 1103793921 1058
 sys/src/games/music/jukefs/search.h - 664 sys sys 1103793921 101
-sys/src/games/music/jukefs/server.c - 664 sys sys 1103793922 3521
+sys/src/games/music/jukefs/server.c - 664 sys sys 1112972626 3544
 sys/src/games/music/missing - 775 sys sys 1103793915 72
 sys/src/games/music/mkfile - 664 sys sys 1103793915 723
 sys/src/games/music/mkinc - 664 sys sys 1103793915 92

+ 7 - 0
dist/replica/plan9.log

@@ -14105,3 +14105,10 @@
 1112758317 13 c 386/bin/pcc - 775 sys sys 1112757395 67806
 1112758317 14 c 386/bin/ape/cc - 775 sys sys 1112757395 70297
 1112905887 0 c sys/games/lib/fortunes - 664 sys sys 1112905578 253631
+1112972501 0 c sys/src/cmd/file.c - 664 sys sys 1112972205 23328
+1112974301 0 c sys/man/8/plan9.ini - 664 sys sys 1112972932 21498
+1112974301 1 c sys/src/games/music/jukefs/parse.c - 664 sys sys 1112972626 14090
+1112974301 2 c sys/src/games/music/jukefs/server.c - 664 sys sys 1112972626 3544
+1112974301 3 d sys/src/cmd/upas/send/sender - 664 sys sys 944961323 0
+1112974301 4 d sys/src/cmd/upas/send/date - 664 sys sys 944961326 0
+1113017510 0 c 386/bin/file - 775 sys sys 1113016150 112820

+ 14 - 1
sys/man/8/plan9.ini

@@ -646,8 +646,21 @@ and
 .BR off .
 The first two specify differing levels of power saving;
 the third turns the monitor off completely.
+.SS \fLnvram=file\fP
+.SS \fLnvrlen=length\fP
+.SS \fLnvroff=offset\fP
+This is used to specify an nvram device and optionally the length of the ram
+and read/write offset to use.
+These values are consulted by
+.I readnvram
+(see
+.IR authsrv (2)).
+The most common use of the nvram is to hold a
+.IR secstore (1)
+password for use by
+.IR factotum (4).
 .SS \fLnvr=value\fP
-This is used by a file server kernel to locate a file holding information
+This is used by the WORM file server kernel to locate a file holding information
 to configure the file system.
 The file cannot live on a SCSI disk.
 The default is

+ 1 - 0
sys/src/cmd/file.c

@@ -661,6 +661,7 @@ struct	FILE_STRING
 	"<MakerFile ",		"FrameMaker file",		11,	"application/framemaker",
 	"\033%-12345X",	"HPJCL file",		9,	"application/hpjcl",
 	"ID3",			"mp3 audio with id3",	3,	"audio/mpeg",
+	"\211PNG",		"PNG image",		4,	"image/png",
 	0,0,0,0
 };
 

+ 0 - 106
sys/src/cmd/upas/send/date

@@ -1,106 +0,0 @@
-bind.c:		} else if(forward_loop(s_to_c(mp->sender), thissys)) {
-bind.c:			rewrite(dp, s_to_c(mp->replyaddr));
-filter.c:	cp = strchr(s_to_c(mp->sender), '!');
-filter.c:		mp->sender = s_copy(cp);
-filter.c:		if(regexec(p, s_to_c(mp->sender), match, 10)){
-filter.c:		if(regexec(p, s_to_c(mp->body), match, 10)){
-gateway.c:	base = skipequiv(s_to_c(mp->sender));
-gateway.c:	if(base!=s_to_c(mp->sender))
-gateway.c:		mp->sender = s_copy(base);
-log.c:			s_to_c(mp->sender), s_to_c(mp->date),
-log.c:			s_to_c(parent->addr), mp->size);
-log.c:			s_to_c(mp->sender), s_to_c(mp->date), mp->size);
-log.c:				s_to_c(next->addr), s_to_c(mp->sender),
-log.c:				s_to_c(mp->date), s_to_c(parent->addr), mp->size);
-log.c:				s_to_c(next->addr), s_to_c(mp->sender),
-log.c:				s_to_c(mp->date), mp->size);
-log.c:		s_to_c(mp->sender), s_to_c(mp->date));
-main.c:	USE(s_restart(mp->sender));
-main.c:	if (shellchars(s_to_c(mp->sender)))
-main.c:		mp->replyaddr = s_copy("postmaster");
-main.c:		mp->replyaddr = s_clone(mp->sender);
-main.c:	USE(s_restart(mp->replyaddr));
-main.c:	if(mp->received > 32)
-main.c:	if(mp->size < 0)
-main.c:	if(add822headers && mp->haveto == 0){
-main.c:			mp->to = d_to(bound);
-main.c:			mp->to = arglist;
-main.c:		if (mp->bulk)
-main.c:		else if(strcmp(s_to_c(mp->replyaddr), "postmaster") == 0)
-main.c:	s_append(errstring, s_to_c(mp->sender));
-main.c:	rcvr = dp->status==d_eloop ? "postmaster" : s_to_c(mp->replyaddr);
-main.c:	s_nappend(refp->body, s_to_c(mp->body), 8*1024);
-message.c:		s_append(mp->sender, cp);
-message.c:		s_append(mp->sender, getlog());
-message.c:	s_append(mp->date, thedate());
-message.c:	mp->sender = s_new();
-message.c:	mp->replyaddr = s_new();
-message.c:	mp->date = s_new();
-message.c:	mp->body = s_new();
-message.c:	mp->size = 0;
-message.c:	mp->fd = -1;
-message.c:	if(mp->fd >= 0){
-message.c:		close(mp->fd);
-message.c:		sysremove(s_to_c(mp->tmp));
-message.c:		s_free(mp->tmp);
-message.c:	s_free(mp->sender);
-message.c:	s_free(mp->date);
-message.c:	s_free(mp->body);
-message.c:	mp->tmp = file;
-message.c:		mp->size += n;
-message.c:		if(mp->size > MSGLIMIT){
-message.c:			mp->size = -1;
-message.c:	mp->fd = fd;
-message.c:	yyinit(s_to_c(mp->body));
-message.c:	mp->rfc822headers = 0;
-message.c:	mp->rfc822headers = 1;
-message.c:	mp->received = received;
-message.c:	cp = s_to_c(mp->body);
-message.c:			mp->havefrom = 1;
-message.c:			mp->haveto = 1;
-message.c:			mp->havedate = 1;
-message.c:					mp->bulk = 1;
-message.c:	mp->size -= strlen(s_to_c(mp->body)) - strlen(s_to_c(body));
-message.c:	s_free(mp->body);
-message.c:	mp->body = body;
-message.c:		while(s_read_line(fp, s_restart(mp->body)) != 0) {
-message.c:			if (regexec(rfprog, s_to_c(mp->body), subexp, 10) == 0){
-message.c:				if(regexec(fprog, s_to_c(mp->body), subexp,10) == 0)
-message.c:				USE(s_restart(mp->body));
-message.c:				append_match(subexp, s_restart(mp->date), DATEMATCH);
-message.c:			append_match(subexp, s_restart(mp->date), REMDATEMATCH);
-message.c:				append_match(subexp, mp->sender, REMSYSMATCH);
-message.c:				s_append(mp->sender, "!");
-message.c:		s_append(mp->sender, s_to_c(sender));
-message.c:	if(*s_to_c(mp->sender)=='\0')
-message.c:			line = s_read_line(fp, mp->body);
-message.c:				mp->body->ptr -= 2;
-message.c:				*mp->body->ptr = '\0';
-message.c:		mp->size = mp->body->ptr - mp->body->base;
-message.c:		mp->size = mp->body->ptr - mp->body->base;
-message.c:		n = s_read(fp, mp->body, VMLIMIT);
-message.c:		mp->size += n;
-message.c:	if (!rmail && mp->size == 0)
-message.c:	if(offset >= mp->size)
-message.c:	if(offset < mp->body->ptr - mp->body->base){
-message.c:		*pp = mp->body->base + offset;
-message.c:		return mp->body->ptr - mp->body->base - offset;
-message.c:	offset -= mp->body->ptr - mp->body->base;
-message.c:	if(mp->fd < 0)
-message.c:	if(seek(mp->fd, offset, 0)<0)
-message.c:	return read(mp->fd, buf, sizeof buf);
-message.c:	for(offset = 0; offset < mp->size; offset += n){
-message.c:	for(offset = 0; offset < mp->size; offset += n){
-message.c:	s = username(mp->sender);
-message.c:		s_append(s, s_to_c(mp->sender));
-message.c:		s = s_copy(s_to_c(mp->sender));
-message.c:		if(print_remote_header(fp,s_to_c(mp->sender),s_to_c(mp->date),remote) < 0)
-message.c:		if(print_header(fp, s_to_c(mp->sender), s_to_c(mp->date)) < 0)
-message.c:	if(!rmail && mp->havedate == 0){
-message.c:		date = s_copy(s_to_c(mp->date));
-message.c:	if(mp->to){
-message.c:		if (Bprint(fp, "%s\n", s_to_c(mp->to)) < 0)
-message.c:		if (mp->havefrom == 0 && printfrom(mp, fp) < 0)
-message.c:		if(mp->rfc822headers == 0 && *s_to_c(mp->body) != '\n')
-message.c:		if (mp->havefrom == 0 && printfrom(mp, fp) < 0)
-message.c:		if(mp->rfc822headers == 0 && *s_to_c(mp->body) != '\n')

+ 0 - 114
sys/src/cmd/upas/send/sender

@@ -1,114 +0,0 @@
-bind.c:		} else if(forward_loop(s_to_c(mp->sender), thissys)) {
-filter.c:	cp = strchr(s_to_c(mp->sender), '!');
-filter.c:		mp->sender = s_copy(cp);
-filter.c:	cp = findbody(s_to_c(mp->body));
-filter.c:		if(regexec(p, s_to_c(mp->sender), match, 10)){
-filter.c:		if(regexec(p, s_to_c(mp->body), match, 10)){
-gateway.c:	base = skipequiv(s_to_c(mp->sender));
-gateway.c:	if(base != s_to_c(mp->sender)){
-gateway.c:		s = mp->sender;
-gateway.c:		mp->sender = s_copy(base);
-log.c:	sender = unescapespecial(s_clone(mp->sender));
-log.c:			s_to_c(sender), s_to_c(mp->date),
-log.c:			s_to_c(parent->addr), mp->size);
-log.c:			s_to_c(sender), s_to_c(mp->date), mp->size);
-log.c:	sender = unescapespecial(s_clone(mp->sender));
-log.c:				s_to_c(mp->date), s_to_c(parent->addr), mp->size);
-log.c:				s_to_c(mp->date), mp->size);
-log.c:	sender = unescapespecial(s_clone(mp->sender));
-log.c:		s_to_c(sender), s_to_c(mp->date));
-main.c:	mp->sender = escapespecial(mp->sender);
-main.c:	if (shellchars(s_to_c(mp->sender)))
-main.c:		mp->replyaddr = s_copy("postmaster");
-main.c:		mp->replyaddr = s_clone(mp->sender);
-main.c:	if(mp->received > 32)
-main.c:	if(mp->size < 0)
-main.c:	if(add822headers && mp->haveto == 0){
-main.c:			mp->to = d_to(bound);
-main.c:			mp->to = arglist;
-main.c:		} else if(mp->bulk)
-main.c:			if(!outofresources && !mp->bulk)
-main.c:	sender = unescapespecial(s_clone(mp->sender));
-main.c:	rcvr = dp->status==d_eloop ? "postmaster" : s_to_c(mp->replyaddr);
-main.c:	s_nappend(refp->body, s_to_c(mp->body), 8*1024);
-message.c:		s_append(mp->sender, cp);
-message.c:		s_append(mp->sender, lp);
-message.c:	s_append(mp->date, thedate());
-message.c:	mp->sender = s_new();
-message.c:	mp->replyaddr = s_new();
-message.c:	mp->date = s_new();
-message.c:	mp->body = s_new();
-message.c:	mp->size = 0;
-message.c:	mp->fd = -1;
-message.c:	if(mp->fd >= 0){
-message.c:		close(mp->fd);
-message.c:		sysremove(s_to_c(mp->tmp));
-message.c:		s_free(mp->tmp);
-message.c:	s_free(mp->sender);
-message.c:	s_free(mp->date);
-message.c:	s_free(mp->body);
-message.c:	mp->tmp = file;
-message.c:		mp->size += n;
-message.c:		if(mp->size > MSGLIMIT){
-message.c:			mp->size = -1;
-message.c:	mp->fd = fd;
-message.c:	yyinit(s_to_c(mp->body));
-message.c:	mp->rfc822headers = 0;
-message.c:	mp->rfc822headers = 1;
-message.c:	mp->received = received;
-message.c:	cp = s_to_c(mp->body);
-message.c:			mp->havemime = 1;
-message.c:			mp->havefrom = 1;
-message.c:			mp->haveto = 1;
-message.c:			mp->havedate = 1;
-message.c:			mp->havesubject = 1;
-message.c:					mp->bulk = 1;
-message.c:	s_memappend(body, cp, s_len(mp->body) - (cp - s_to_c(mp->body)));
-message.c:	mp->size += s_len(body) - s_len(mp->body);
-message.c:	s_free(mp->body);
-message.c:	mp->body = body;
-message.c:		while(s_read_line(fp, s_restart(mp->body)) != 0) {
-message.c:			if (regexec(rfprog, s_to_c(mp->body), subexp, 10) == 0){
-message.c:				if(regexec(fprog, s_to_c(mp->body), subexp,10) == 0)
-message.c:				USE(s_restart(mp->body));
-message.c:				append_match(subexp, s_restart(mp->date), DATEMATCH);
-message.c:			append_match(subexp, s_restart(mp->date), REMDATEMATCH);
-message.c:				append_match(subexp, mp->sender, REMSYSMATCH);
-message.c:				s_append(mp->sender, "!");
-message.c:		s_append(mp->sender, s_to_c(sender));
-message.c:	if(*s_to_c(mp->sender)=='\0')
-message.c:			line = s_read_line(fp, mp->body);
-message.c:				mp->body->ptr -= 2;
-message.c:				*mp->body->ptr = '\0';
-message.c:		mp->size = mp->body->ptr - mp->body->base;
-message.c:		mp->size = mp->body->ptr - mp->body->base;
-message.c:		n = s_read(fp, mp->body, VMLIMIT);
-message.c:		mp->size += n;
-message.c:	if (!rmail && mp->size == 0)
-message.c:	if(offset >= mp->size)
-message.c:	if(offset < s_len(mp->body)){
-message.c:		*pp = mp->body->base + offset;
-message.c:		return mp->body->ptr - mp->body->base - offset;
-message.c:	offset -= s_len(mp->body);
-message.c:	if(mp->fd < 0)
-message.c:	if(seek(mp->fd, offset, 0)<0)
-message.c:	return read(mp->fd, buf, sizeof buf);
-message.c:	for(offset = 0; offset < mp->size; offset += n){
-message.c:	for(offset = 0; offset < mp->size; offset += n){
-message.c:	s = username(mp->sender);
-message.c:		s_append(s, s_to_c(mp->sender));
-message.c:		s = s_copy(s_to_c(mp->sender));
-message.c:	sender = unescapespecial(s_clone(mp->sender));
-message.c:		if(print_remote_header(fp,s_to_c(sender),s_to_c(mp->date),remote) < 0){
-message.c:		if(print_header(fp, s_to_c(sender), s_to_c(mp->date)) < 0){
-message.c:	if(!rmail && !mp->havedate){
-message.c:		date = s_copy(s_to_c(mp->date));
-message.c:	if(!rmail && !mp->havemime && isutf8(mp->body))
-message.c:	if(mp->to){
-message.c:		if (Bprint(fp, "%s\n", s_to_c(mp->to)) < 0)
-message.c:		if (!mp->havefrom && printfrom(mp, fp) < 0)
-message.c:		if(!mp->rfc822headers && *s_to_c(mp->body) != '\n')
-message.c:		if (!mp->havefrom && printfrom(mp, fp) < 0)
-message.c:		if(!mp->rfc822headers && *s_to_c(mp->body) != '\n')
-rewrite.c:				for(s = s_to_c(mp->replyaddr); *s; s++)
-rewrite.c:				if(mp->bulk)

+ 1 - 1
sys/src/games/music/jukefs/parse.c

@@ -165,7 +165,7 @@ getobject(Type t, Object *parent)
 	o->flags |= Hier;
 	if(parent == nil){
 		root = o;
-		o->path = strdup(startdir);
+		o->path = startdir;
 		setmalloctag(o->path, 0x100001);
 	}
 	if(gettoken(token) != BraceO)

+ 9 - 7
sys/src/games/music/jukefs/server.c

@@ -131,10 +131,11 @@ threadmain(int argc, char *argv[]) {
 
 	if((f = Bopen(mapname, OREAD)) == nil)
 		sysfatal("%s: %r", mapname);
-	strncpy(file, mapname, 256);
-	if ((q = strrchr(mapname, '/'))) *q = 0;
+	file = strdup(mapname);
+	if ((q = strrchr(file, '/'))) *q = 0;
 	inittokenlist();
-	startdir = q?mapname:"";
+	startdir = strdup(q?file:"");
+	free(file);
 	getobject(Root, nil);
 	Bterm(f);
 	f = nil;
@@ -178,7 +179,7 @@ reread(void)
 	char *q;
 
 	assert(f == nil);
-	if((f = Bopen(file, OREAD)) == nil)
+	if((f = Bopen(mapname, OREAD)) == nil)
 		fprint(2, "reread: %s: %r\n", file);
 	freetree(root);
 	root = nil;
@@ -194,9 +195,10 @@ reread(void)
 	tokenlist = nil;
 	ntoken = Ntoken;
 	inittokenlist();
-	strncpy(mapname, file, 256);
-	if ((q = strrchr(mapname, '/'))) *q = 0;
-	startdir = q?mapname:"";
+	file = strdup(mapname);
+	if ((q = strrchr(file, '/'))) *q = 0;
+	startdir = strdup(q?file:"");
+	free(file);
 	getobject(Root, nil);
 	root->parent = root;
 	Bterm(f);