Browse Source

Plan 9 from Bell Labs 2005-04-29

David du Colombier 19 years ago
parent
commit
792e70b6c7

+ 1 - 1
acme/mail/Mail → acme/bin/Mail

@@ -6,4 +6,4 @@ test -r /mail/fs || {
 	if not upas/fs
 	if not upas/fs
 }
 }
 
 
-exec /acme/mail/$objtype/Mail $*
+exec /acme/bin/$objtype/Mail $*

+ 0 - 0
acme/mail/old.iostats


+ 3 - 3
acme/mail/src/mail.c

@@ -151,7 +151,7 @@ threadmain(int argc, char *argv[])
 	s = estrstrdup(maildir, "ctl");
 	s = estrstrdup(maildir, "ctl");
 	mbox.ctlfd = open(s, ORDWR|OCEXEC);
 	mbox.ctlfd = open(s, ORDWR|OCEXEC);
 	if(mbox.ctlfd < 0)
 	if(mbox.ctlfd < 0)
-		error("Mail: can't open %s: %r\n", s);
+		error("can't open %s: %r\n", s);
 
 
 	fsname = estrdup(name);
 	fsname = estrdup(name);
 	if(newdir && argc > 0){
 	if(newdir && argc > 0){
@@ -163,13 +163,13 @@ threadmain(int argc, char *argv[])
 			err[0] = '\0';
 			err[0] = '\0';
 			errstr(err, sizeof err);
 			errstr(err, sizeof err);
 			if(strstr(err, "mbox name in use") == nil)
 			if(strstr(err, "mbox name in use") == nil)
-				error("Mail: can't create directory %s for mail: %s\n", name, err);
+				error("can't create directory %s for mail: %s\n", name, err);
 			free(fsname);
 			free(fsname);
 			fsname = emalloc(strlen(name)+10);
 			fsname = emalloc(strlen(name)+10);
 			sprint(fsname, "%s-%d", name, i);
 			sprint(fsname, "%s-%d", name, i);
 		}
 		}
 		if(i == 10)
 		if(i == 10)
-			error("Mail: can't open %s/%s: %r", mailboxdir, mboxname);
+			error("can't open %s/%s: %r", mailboxdir, mboxname);
 		free(s);
 		free(s);
 	}
 	}
 
 

+ 1 - 1
acme/mail/src/mesg.c

@@ -533,7 +533,7 @@ mesgdel(Message *mbox, Message *m)
 	Message *n, *next;
 	Message *n, *next;
 
 
 	if(m->opened)
 	if(m->opened)
-		error("Mail: internal error: deleted message still open in mesgdel\n");
+		error("internal error: deleted message still open in mesgdel\n");
 	/* delete subparts */
 	/* delete subparts */
 	for(n=m->head; n!=nil; n=next){
 	for(n=m->head; n!=nil; n=next){
 		next = n->next;
 		next = n->next;

+ 1 - 2
acme/mail/src/mkfile

@@ -12,13 +12,12 @@ OFILES=\
 HFILES=dat.h
 HFILES=dat.h
 LIB=
 LIB=
 
 
-BIN=../$objtype
+BIN=/acme/bin/$objtype
 
 
 UPDATE=\
 UPDATE=\
 	mkfile\
 	mkfile\
 	$HFILES\
 	$HFILES\
 	${OFILES:%.$O=%.c}\
 	${OFILES:%.$O=%.c}\
-	${TARG:%=/acme/mail/386/%}\
 
 
 </sys/src/cmd/mkone
 </sys/src/cmd/mkone
 
 

+ 22 - 36
dist/replica/_plan9.db

@@ -1,15 +1,15 @@
 386 - 20000000775 sys sys 1010957353 0
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1112757508 215872
 386/9load - 775 sys sys 1112757508 215872
-386/9loaddebug - 775 sys sys 1112757509 310076
+386/9loaddebug - 775 sys sys 1114657876 310562
 386/9loadlite - 775 sys sys 1112757508 135244
 386/9loadlite - 775 sys sys 1112757508 135244
-386/9loadlitedebug - 775 sys sys 1112757509 199047
-386/9pc - 775 sys sys 1113448331 1833665
+386/9loadlitedebug - 775 sys sys 1114657877 199052
+386/9pc - 775 sys sys 1114657881 1834137
 386/9pc.gz - 664 sys sys 1112757510 643423
 386/9pc.gz - 664 sys sys 1112757510 643423
-386/9pccpu - 775 sys sys 1113448335 1488215
+386/9pccpu - 775 sys sys 1114657884 1488687
 386/9pccpu.gz - 664 sys sys 1112757511 529529
 386/9pccpu.gz - 664 sys sys 1112757511 529529
-386/9pcdisk - 775 sys sys 1113448340 2039367
+386/9pcdisk - 775 sys sys 1114657888 2039839
 386/9pcdisk.gz - 664 sys sys 1112757513 733576
 386/9pcdisk.gz - 664 sys sys 1112757513 733576
-386/9pcf - 775 sys sys 1113448345 2382199
+386/9pcf - 775 sys sys 1114657893 2382671
 386/9pcf.gz - 664 sys sys 1112757515 886966
 386/9pcf.gz - 664 sys sys 1112757515 886966
 386/9pxeload - 775 sys sys 1112757508 215872
 386/9pxeload - 775 sys sys 1112757508 215872
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
@@ -147,7 +147,7 @@
 386/bin/aux/tr2post - 775 sys sys 1104121987 176578
 386/bin/aux/tr2post - 775 sys sys 1104121987 176578
 386/bin/aux/trampoline - 775 sys sys 1104121988 83293
 386/bin/aux/trampoline - 775 sys sys 1104121988 83293
 386/bin/aux/typepasswd - 775 sys sys 1104121988 69503
 386/bin/aux/typepasswd - 775 sys sys 1104121988 69503
-386/bin/aux/vga - 775 sys sys 1114484868 309981
+386/bin/aux/vga - 775 sys sys 1114703151 314451
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
@@ -612,15 +612,11 @@ LICENSE.gpl - 664 sys sys 1056572448 15081
 NOTICE - 444 sys sys 1018803063 63
 NOTICE - 444 sys sys 1018803063 63
 acme - 20000000775 sys sys 1020896383 0
 acme - 20000000775 sys sys 1020896383 0
 acme/acid - 20000000775 sys sys 1015011246 0
 acme/acid - 20000000775 sys sys 1015011246 0
-acme/acid/386 - 20000000775 sys sys 1015011246 0
 acme/acid/Acid - 775 sys sys 1015011246 86
 acme/acid/Acid - 775 sys sys 1015011246 86
-acme/acid/alpha - 20000000775 sys sys 1015011246 0
-acme/acid/arm - 20000000775 sys sys 1015011246 0
 acme/acid/guide - 444 sys sys 1015011246 68
 acme/acid/guide - 444 sys sys 1015011246 68
-acme/acid/mips - 20000000775 sys sys 1015011246 0
-acme/acid/sparc - 20000000775 sys sys 1015011246 0
 acme/bin - 20000000775 sys sys 1017457907 0
 acme/bin - 20000000775 sys sys 1017457907 0
 acme/bin/386 - 20000000775 sys sys 1015011570 0
 acme/bin/386 - 20000000775 sys sys 1015011570 0
+acme/bin/386/Mail - 775 sys sys 1114697726 179115
 acme/bin/386/News - 775 sys sys 1108960019 128813
 acme/bin/386/News - 775 sys sys 1108960019 128813
 acme/bin/386/Wiki - 775 sys sys 1109909287 126953
 acme/bin/386/Wiki - 775 sys sys 1109909287 126953
 acme/bin/386/acd - 775 sys sys 1032232412 137068
 acme/bin/386/acd - 775 sys sys 1032232412 137068
@@ -630,6 +626,7 @@ acme/bin/386/spout - 775 sys sys 1104122116 61617
 acme/bin/386/win - 775 sys sys 1113275271 178845
 acme/bin/386/win - 775 sys sys 1113275271 178845
 acme/bin/Battery - 775 sys sys 1017457907 451
 acme/bin/Battery - 775 sys sys 1017457907 451
 acme/bin/Isspam - 775 sys sys 1063951165 235
 acme/bin/Isspam - 775 sys sys 1063951165 235
+acme/bin/Mail - 775 sys sys 1114697798 201
 acme/bin/Perl - 775 sys sys 1015011260 230
 acme/bin/Perl - 775 sys sys 1015011260 230
 acme/bin/README - 664 sys sys 1015011256 174
 acme/bin/README - 664 sys sys 1015011256 174
 acme/bin/Spam - 775 sys sys 1063951165 231
 acme/bin/Spam - 775 sys sys 1063951165 231
@@ -687,23 +684,15 @@ acme/bin/source/win/win.c - 664 sys sys 1113252156 4239
 acme/bin/unind - 755 sys sys 1015011256 27
 acme/bin/unind - 755 sys sys 1015011256 27
 acme/bin/wnew - 775 sys sys 1046184422 84
 acme/bin/wnew - 775 sys sys 1046184422 84
 acme/mail - 20000000775 sys sys 1015011265 0
 acme/mail - 20000000775 sys sys 1015011265 0
-acme/mail/386 - 20000000775 sys sys 1015011538 0
-acme/mail/386/Mail - 775 sys sys 1113102525 179147
-acme/mail/Mail - 775 sys sys 1015011264 202
-acme/mail/alpha - 20000000775 sys sys 1015011521 0
-acme/mail/arm - 20000000775 sys sys 1015011525 0
 acme/mail/guide - 444 sys sys 1015011264 92
 acme/mail/guide - 444 sys sys 1015011264 92
-acme/mail/mips - 20000000775 sys sys 1015011518 0
 acme/mail/mkbox - 775 sys sys 1018029993 133
 acme/mail/mkbox - 775 sys sys 1018029993 133
-acme/mail/old.iostats - 664 sys sys 1015011265 0
-acme/mail/power - 20000000775 sys sys 1015011527 0
 acme/mail/readme - 664 sys sys 1084385076 2795
 acme/mail/readme - 664 sys sys 1084385076 2795
 acme/mail/src - 20000000775 sys sys 1015364010 0
 acme/mail/src - 20000000775 sys sys 1015364010 0
 acme/mail/src/dat.h - 664 sys sys 1033936953 3857
 acme/mail/src/dat.h - 664 sys sys 1033936953 3857
 acme/mail/src/html.c - 664 sys sys 1058463659 1348
 acme/mail/src/html.c - 664 sys sys 1058463659 1348
-acme/mail/src/mail.c - 664 sys sys 1107894665 11277
-acme/mail/src/mesg.c - 664 sys sys 1113051860 26298
-acme/mail/src/mkfile - 664 sys sys 1037034918 364
+acme/mail/src/mail.c - 664 sys sys 1114697672 11259
+acme/mail/src/mesg.c - 664 sys sys 1114697672 26292
+acme/mail/src/mkfile - 664 sys sys 1114697575 342
 acme/mail/src/reply.c - 664 sys sys 1112270143 11373
 acme/mail/src/reply.c - 664 sys sys 1112270143 11373
 acme/mail/src/util.c - 664 sys sys 1022112164 1391
 acme/mail/src/util.c - 664 sys sys 1022112164 1391
 acme/mail/src/win.c - 664 sys sys 1033936955 5428
 acme/mail/src/win.c - 664 sys sys 1033936955 5428
@@ -5196,7 +5185,7 @@ sys/man/1/dc - 664 sys sys 1113743325 4834
 sys/man/1/dd - 664 sys sys 1055693436 3346
 sys/man/1/dd - 664 sys sys 1055693436 3346
 sys/man/1/delkey - 664 sys sys 1109429138 779
 sys/man/1/delkey - 664 sys sys 1109429138 779
 sys/man/1/deroff - 664 sys sys 1113743324 1826
 sys/man/1/deroff - 664 sys sys 1113743324 1826
-sys/man/1/diff - 664 sys sys 1106938097 2960
+sys/man/1/diff - 664 sys sys 1114697100 3085
 sys/man/1/doc2txt - 664 sys sys 1105020018 2077
 sys/man/1/doc2txt - 664 sys sys 1105020018 2077
 sys/man/1/doctype - 664 sys sys 1113743325 860
 sys/man/1/doctype - 664 sys sys 1113743325 860
 sys/man/1/du - 664 sys sys 1017166323 1410
 sys/man/1/du - 664 sys sys 1017166323 1410
@@ -5242,7 +5231,7 @@ sys/man/1/mk - 664 sys sys 1113743328 13198
 sys/man/1/mkdir - 664 sys sys 1082593141 717
 sys/man/1/mkdir - 664 sys sys 1082593141 717
 sys/man/1/mlmgr - 664 sys sys 1045501403 2427
 sys/man/1/mlmgr - 664 sys sys 1045501403 2427
 sys/man/1/ms2html - 664 sys sys 960001562 856
 sys/man/1/ms2html - 664 sys sys 960001562 856
-sys/man/1/nedmail - 664 sys sys 1055704205 11322
+sys/man/1/nedmail - 664 sys sys 1114697978 6820
 sys/man/1/netstat - 664 sys sys 953344523 827
 sys/man/1/netstat - 664 sys sys 953344523 827
 sys/man/1/news - 664 sys sys 1113743329 1151
 sys/man/1/news - 664 sys sys 1113743329 1151
 sys/man/1/nm - 664 sys sys 944959673 1539
 sys/man/1/nm - 664 sys sys 944959673 1539
@@ -7045,7 +7034,7 @@ sys/src/boot/pc/mem.h - 664 sys sys 1103641771 3371
 sys/src/boot/pc/memory.c - 664 sys sys 1019533021 10272
 sys/src/boot/pc/memory.c - 664 sys sys 1019533021 10272
 sys/src/boot/pc/mkfile - 664 sys sys 1103641863 3105
 sys/src/boot/pc/mkfile - 664 sys sys 1103641863 3105
 sys/src/boot/pc/noether.c - 664 sys sys 1094674488 358
 sys/src/boot/pc/noether.c - 664 sys sys 1094674488 358
-sys/src/boot/pc/part.c - 664 sys sys 1114427970 7509
+sys/src/boot/pc/part.c - 664 sys sys 1114697151 7153
 sys/src/boot/pc/pbs.s - 664 sys sys 1017854325 8279
 sys/src/boot/pc/pbs.s - 664 sys sys 1017854325 8279
 sys/src/boot/pc/pbsdisk - 775 sys sys 1017854325 509
 sys/src/boot/pc/pbsdisk - 775 sys sys 1017854325 509
 sys/src/boot/pc/pbsdisk.s - 664 sys sys 1017854325 6371
 sys/src/boot/pc/pbsdisk.s - 664 sys sys 1017854325 6371
@@ -7621,7 +7610,7 @@ sys/src/cmd/aux/vga/io.c - 664 sys sys 1014925009 6222
 sys/src/cmd/aux/vga/mach32.c - 664 sys sys 1014925009 6004
 sys/src/cmd/aux/vga/mach32.c - 664 sys sys 1014925009 6004
 sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
-sys/src/cmd/aux/vga/main.c - 664 sys sys 1114453579 9442
+sys/src/cmd/aux/vga/main.c - 664 sys sys 1114703149 9471
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1014925010 13196
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1014925010 13196
 sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1014925010 35895
 sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1014925010 35895
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1114453579 915
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1114453579 915
@@ -7649,7 +7638,7 @@ sys/src/cmd/aux/vga/tvp3025.c - 664 sys sys 1014925013 1960
 sys/src/cmd/aux/vga/tvp3025clock.c - 664 sys sys 1014925013 1511
 sys/src/cmd/aux/vga/tvp3025clock.c - 664 sys sys 1014925013 1511
 sys/src/cmd/aux/vga/tvp3026.c - 664 sys sys 1014925013 3580
 sys/src/cmd/aux/vga/tvp3026.c - 664 sys sys 1014925013 3580
 sys/src/cmd/aux/vga/tvp3026clock.c - 664 sys sys 1014925013 1960
 sys/src/cmd/aux/vga/tvp3026clock.c - 664 sys sys 1014925013 1960
-sys/src/cmd/aux/vga/vesa.c - 664 sys sys 1114453579 9357
+sys/src/cmd/aux/vga/vesa.c - 664 sys sys 1114703149 9421
 sys/src/cmd/aux/vga/vga.c - 664 sys sys 1014925013 9305
 sys/src/cmd/aux/vga/vga.c - 664 sys sys 1014925013 9305
 sys/src/cmd/aux/vga/vga.h - 664 sys sys 1114453579 10336
 sys/src/cmd/aux/vga/vga.h - 664 sys sys 1114453579 10336
 sys/src/cmd/aux/vga/virge.c - 664 sys sys 1090439328 18587
 sys/src/cmd/aux/vga/virge.c - 664 sys sys 1090439328 18587
@@ -7870,7 +7859,7 @@ sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff/diff.h - 664 sys sys 1106723609 794
 sys/src/cmd/diff/diff.h - 664 sys sys 1106723609 794
 sys/src/cmd/diff/diffdir.c - 664 sys sys 1014925333 1791
 sys/src/cmd/diff/diffdir.c - 664 sys sys 1014925333 1791
-sys/src/cmd/diff/diffio.c - 664 sys sys 1106938096 6599
+sys/src/cmd/diff/diffio.c - 664 sys sys 1114696977 6599
 sys/src/cmd/diff/diffreg.c - 664 sys sys 1114037841 8825
 sys/src/cmd/diff/diffreg.c - 664 sys sys 1114037841 8825
 sys/src/cmd/diff/main.c - 664 sys sys 1106938096 4338
 sys/src/cmd/diff/main.c - 664 sys sys 1106938096 4338
 sys/src/cmd/diff/mkfile - 664 sys sys 944960882 141
 sys/src/cmd/diff/mkfile - 664 sys sys 944960882 141
@@ -11389,7 +11378,7 @@ sys/src/cmd/upas/ml/mlmgr.c - 664 sys sys 1045505888 2332
 sys/src/cmd/upas/ml/mlowner.c - 664 sys sys 1015096763 1142
 sys/src/cmd/upas/ml/mlowner.c - 664 sys sys 1015096763 1142
 sys/src/cmd/upas/ned - 20000000775 sys sys 1015013194 0
 sys/src/cmd/upas/ned - 20000000775 sys sys 1015013194 0
 sys/src/cmd/upas/ned/mkfile - 664 sys sys 1060041738 233
 sys/src/cmd/upas/ned/mkfile - 664 sys sys 1060041738 233
-sys/src/cmd/upas/ned/nedmail.c - 664 sys sys 1094056330 44502
+sys/src/cmd/upas/ned/nedmail.c - 664 sys sys 1114697983 44543
 sys/src/cmd/upas/pop3 - 20000000775 sys sys 1015009816 0
 sys/src/cmd/upas/pop3 - 20000000775 sys sys 1015009816 0
 sys/src/cmd/upas/pop3/mkfile - 664 sys sys 1064589604 186
 sys/src/cmd/upas/pop3/mkfile - 664 sys sys 1064589604 186
 sys/src/cmd/upas/pop3/pop3.c - 664 sys sys 1076176207 14301
 sys/src/cmd/upas/pop3/pop3.c - 664 sys sys 1076176207 14301
@@ -12974,9 +12963,6 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
-386/9loaddebug - 775 sys sys 1114657876 310562
-386/9loadlitedebug - 775 sys sys 1114657877 199052
-386/9pc - 775 sys sys 1114657881 1834137
-386/9pccpu - 775 sys sys 1114657884 1488687
-386/9pcdisk - 775 sys sys 1114657888 2039839
-386/9pcf - 775 sys sys 1114657893 2382671
+386/bin/aux/vga - 775 sys sys 1114744259 314451
+386/bin/upas/nedmail - 775 sys sys 1114744259 156346
+acme/bin/386/Mail - 775 sys sys 1114744260 179115

+ 14 - 25
dist/replica/plan9.db

@@ -147,7 +147,7 @@
 386/bin/aux/tr2post - 775 sys sys 1104121987 176578
 386/bin/aux/tr2post - 775 sys sys 1104121987 176578
 386/bin/aux/trampoline - 775 sys sys 1104121988 83293
 386/bin/aux/trampoline - 775 sys sys 1104121988 83293
 386/bin/aux/typepasswd - 775 sys sys 1104121988 69503
 386/bin/aux/typepasswd - 775 sys sys 1104121988 69503
-386/bin/aux/vga - 775 sys sys 1114484868 309981
+386/bin/aux/vga - 775 sys sys 1114744259 314451
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
 386/bin/aux/vmwarefs - 775 sys sys 1095563640 99117
@@ -452,7 +452,7 @@
 386/bin/upas/mlowner - 775 sys sys 1104122072 92108
 386/bin/upas/mlowner - 775 sys sys 1104122072 92108
 386/bin/upas/msgcat - 775 sys sys 1064598353 38
 386/bin/upas/msgcat - 775 sys sys 1064598353 38
 386/bin/upas/msgtok - 775 sys sys 1064598354 75149
 386/bin/upas/msgtok - 775 sys sys 1064598354 75149
-386/bin/upas/nedmail - 775 sys sys 1113794399 156296
+386/bin/upas/nedmail - 775 sys sys 1114744259 156346
 386/bin/upas/pop3 - 775 sys sys 1113794399 259820
 386/bin/upas/pop3 - 775 sys sys 1113794399 259820
 386/bin/upas/qer - 775 sys sys 1113794399 99878
 386/bin/upas/qer - 775 sys sys 1113794399 99878
 386/bin/upas/ratfs - 775 sys sys 1108354565 111342
 386/bin/upas/ratfs - 775 sys sys 1108354565 111342
@@ -612,15 +612,11 @@ LICENSE.gpl - 664 sys sys 1056572448 15081
 NOTICE - 444 sys sys 1018803063 63
 NOTICE - 444 sys sys 1018803063 63
 acme - 20000000775 sys sys 1020896383 0
 acme - 20000000775 sys sys 1020896383 0
 acme/acid - 20000000775 sys sys 1015011246 0
 acme/acid - 20000000775 sys sys 1015011246 0
-acme/acid/386 - 20000000775 sys sys 1015011246 0
 acme/acid/Acid - 775 sys sys 1015011246 86
 acme/acid/Acid - 775 sys sys 1015011246 86
-acme/acid/alpha - 20000000775 sys sys 1015011246 0
-acme/acid/arm - 20000000775 sys sys 1015011246 0
 acme/acid/guide - 444 sys sys 1015011246 68
 acme/acid/guide - 444 sys sys 1015011246 68
-acme/acid/mips - 20000000775 sys sys 1015011246 0
-acme/acid/sparc - 20000000775 sys sys 1015011246 0
 acme/bin - 20000000775 sys sys 1017457907 0
 acme/bin - 20000000775 sys sys 1017457907 0
 acme/bin/386 - 20000000775 sys sys 1015011570 0
 acme/bin/386 - 20000000775 sys sys 1015011570 0
+acme/bin/386/Mail - 775 sys sys 1114744260 179115
 acme/bin/386/News - 775 sys sys 1108960019 128813
 acme/bin/386/News - 775 sys sys 1108960019 128813
 acme/bin/386/Wiki - 775 sys sys 1109909287 126953
 acme/bin/386/Wiki - 775 sys sys 1109909287 126953
 acme/bin/386/acd - 775 sys sys 1032232412 137068
 acme/bin/386/acd - 775 sys sys 1032232412 137068
@@ -630,6 +626,7 @@ acme/bin/386/spout - 775 sys sys 1104122116 61617
 acme/bin/386/win - 775 sys sys 1113275271 178845
 acme/bin/386/win - 775 sys sys 1113275271 178845
 acme/bin/Battery - 775 sys sys 1017457907 451
 acme/bin/Battery - 775 sys sys 1017457907 451
 acme/bin/Isspam - 775 sys sys 1063951165 235
 acme/bin/Isspam - 775 sys sys 1063951165 235
+acme/bin/Mail - 775 sys sys 1114697798 201
 acme/bin/Perl - 775 sys sys 1015011260 230
 acme/bin/Perl - 775 sys sys 1015011260 230
 acme/bin/README - 664 sys sys 1015011256 174
 acme/bin/README - 664 sys sys 1015011256 174
 acme/bin/Spam - 775 sys sys 1063951165 231
 acme/bin/Spam - 775 sys sys 1063951165 231
@@ -687,23 +684,15 @@ acme/bin/source/win/win.c - 664 sys sys 1113252156 4239
 acme/bin/unind - 755 sys sys 1015011256 27
 acme/bin/unind - 755 sys sys 1015011256 27
 acme/bin/wnew - 775 sys sys 1046184422 84
 acme/bin/wnew - 775 sys sys 1046184422 84
 acme/mail - 20000000775 sys sys 1015011265 0
 acme/mail - 20000000775 sys sys 1015011265 0
-acme/mail/386 - 20000000775 sys sys 1015011538 0
-acme/mail/386/Mail - 775 sys sys 1113102525 179147
-acme/mail/Mail - 775 sys sys 1015011264 202
-acme/mail/alpha - 20000000775 sys sys 1015011521 0
-acme/mail/arm - 20000000775 sys sys 1015011525 0
 acme/mail/guide - 444 sys sys 1015011264 92
 acme/mail/guide - 444 sys sys 1015011264 92
-acme/mail/mips - 20000000775 sys sys 1015011518 0
 acme/mail/mkbox - 775 sys sys 1018029993 133
 acme/mail/mkbox - 775 sys sys 1018029993 133
-acme/mail/old.iostats - 664 sys sys 1015011265 0
-acme/mail/power - 20000000775 sys sys 1015011527 0
 acme/mail/readme - 664 sys sys 1084385076 2795
 acme/mail/readme - 664 sys sys 1084385076 2795
 acme/mail/src - 20000000775 sys sys 1015364010 0
 acme/mail/src - 20000000775 sys sys 1015364010 0
 acme/mail/src/dat.h - 664 sys sys 1033936953 3857
 acme/mail/src/dat.h - 664 sys sys 1033936953 3857
 acme/mail/src/html.c - 664 sys sys 1058463659 1348
 acme/mail/src/html.c - 664 sys sys 1058463659 1348
-acme/mail/src/mail.c - 664 sys sys 1107894665 11277
-acme/mail/src/mesg.c - 664 sys sys 1113051860 26298
-acme/mail/src/mkfile - 664 sys sys 1037034918 364
+acme/mail/src/mail.c - 664 sys sys 1114697672 11259
+acme/mail/src/mesg.c - 664 sys sys 1114697672 26292
+acme/mail/src/mkfile - 664 sys sys 1114697575 342
 acme/mail/src/reply.c - 664 sys sys 1112270143 11373
 acme/mail/src/reply.c - 664 sys sys 1112270143 11373
 acme/mail/src/util.c - 664 sys sys 1022112164 1391
 acme/mail/src/util.c - 664 sys sys 1022112164 1391
 acme/mail/src/win.c - 664 sys sys 1033936955 5428
 acme/mail/src/win.c - 664 sys sys 1033936955 5428
@@ -5196,7 +5185,7 @@ sys/man/1/dc - 664 sys sys 1113743325 4834
 sys/man/1/dd - 664 sys sys 1055693436 3346
 sys/man/1/dd - 664 sys sys 1055693436 3346
 sys/man/1/delkey - 664 sys sys 1109429138 779
 sys/man/1/delkey - 664 sys sys 1109429138 779
 sys/man/1/deroff - 664 sys sys 1113743324 1826
 sys/man/1/deroff - 664 sys sys 1113743324 1826
-sys/man/1/diff - 664 sys sys 1106938097 2960
+sys/man/1/diff - 664 sys sys 1114697100 3085
 sys/man/1/doc2txt - 664 sys sys 1105020018 2077
 sys/man/1/doc2txt - 664 sys sys 1105020018 2077
 sys/man/1/doctype - 664 sys sys 1113743325 860
 sys/man/1/doctype - 664 sys sys 1113743325 860
 sys/man/1/du - 664 sys sys 1017166323 1410
 sys/man/1/du - 664 sys sys 1017166323 1410
@@ -5242,7 +5231,7 @@ sys/man/1/mk - 664 sys sys 1113743328 13198
 sys/man/1/mkdir - 664 sys sys 1082593141 717
 sys/man/1/mkdir - 664 sys sys 1082593141 717
 sys/man/1/mlmgr - 664 sys sys 1045501403 2427
 sys/man/1/mlmgr - 664 sys sys 1045501403 2427
 sys/man/1/ms2html - 664 sys sys 960001562 856
 sys/man/1/ms2html - 664 sys sys 960001562 856
-sys/man/1/nedmail - 664 sys sys 1055704205 11322
+sys/man/1/nedmail - 664 sys sys 1114697978 6820
 sys/man/1/netstat - 664 sys sys 953344523 827
 sys/man/1/netstat - 664 sys sys 953344523 827
 sys/man/1/news - 664 sys sys 1113743329 1151
 sys/man/1/news - 664 sys sys 1113743329 1151
 sys/man/1/nm - 664 sys sys 944959673 1539
 sys/man/1/nm - 664 sys sys 944959673 1539
@@ -7045,7 +7034,7 @@ sys/src/boot/pc/mem.h - 664 sys sys 1103641771 3371
 sys/src/boot/pc/memory.c - 664 sys sys 1019533021 10272
 sys/src/boot/pc/memory.c - 664 sys sys 1019533021 10272
 sys/src/boot/pc/mkfile - 664 sys sys 1103641863 3105
 sys/src/boot/pc/mkfile - 664 sys sys 1103641863 3105
 sys/src/boot/pc/noether.c - 664 sys sys 1094674488 358
 sys/src/boot/pc/noether.c - 664 sys sys 1094674488 358
-sys/src/boot/pc/part.c - 664 sys sys 1114427970 7509
+sys/src/boot/pc/part.c - 664 sys sys 1114697151 7153
 sys/src/boot/pc/pbs.s - 664 sys sys 1017854325 8279
 sys/src/boot/pc/pbs.s - 664 sys sys 1017854325 8279
 sys/src/boot/pc/pbsdisk - 775 sys sys 1017854325 509
 sys/src/boot/pc/pbsdisk - 775 sys sys 1017854325 509
 sys/src/boot/pc/pbsdisk.s - 664 sys sys 1017854325 6371
 sys/src/boot/pc/pbsdisk.s - 664 sys sys 1017854325 6371
@@ -7621,7 +7610,7 @@ sys/src/cmd/aux/vga/io.c - 664 sys sys 1014925009 6222
 sys/src/cmd/aux/vga/mach32.c - 664 sys sys 1014925009 6004
 sys/src/cmd/aux/vga/mach32.c - 664 sys sys 1014925009 6004
 sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64.c - 664 sys sys 1014925009 8279
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
 sys/src/cmd/aux/vga/mach64xx.c - 664 sys sys 1097900455 30266
-sys/src/cmd/aux/vga/main.c - 664 sys sys 1114453579 9442
+sys/src/cmd/aux/vga/main.c - 664 sys sys 1114703149 9471
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1014925010 13196
 sys/src/cmd/aux/vga/mga2164w.c - 664 sys sys 1014925010 13196
 sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1014925010 35895
 sys/src/cmd/aux/vga/mga4xx.c - 664 sys sys 1014925010 35895
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1114453579 915
 sys/src/cmd/aux/vga/mkfile - 664 sys sys 1114453579 915
@@ -7649,7 +7638,7 @@ sys/src/cmd/aux/vga/tvp3025.c - 664 sys sys 1014925013 1960
 sys/src/cmd/aux/vga/tvp3025clock.c - 664 sys sys 1014925013 1511
 sys/src/cmd/aux/vga/tvp3025clock.c - 664 sys sys 1014925013 1511
 sys/src/cmd/aux/vga/tvp3026.c - 664 sys sys 1014925013 3580
 sys/src/cmd/aux/vga/tvp3026.c - 664 sys sys 1014925013 3580
 sys/src/cmd/aux/vga/tvp3026clock.c - 664 sys sys 1014925013 1960
 sys/src/cmd/aux/vga/tvp3026clock.c - 664 sys sys 1014925013 1960
-sys/src/cmd/aux/vga/vesa.c - 664 sys sys 1114453579 9357
+sys/src/cmd/aux/vga/vesa.c - 664 sys sys 1114703149 9421
 sys/src/cmd/aux/vga/vga.c - 664 sys sys 1014925013 9305
 sys/src/cmd/aux/vga/vga.c - 664 sys sys 1014925013 9305
 sys/src/cmd/aux/vga/vga.h - 664 sys sys 1114453579 10336
 sys/src/cmd/aux/vga/vga.h - 664 sys sys 1114453579 10336
 sys/src/cmd/aux/vga/virge.c - 664 sys sys 1090439328 18587
 sys/src/cmd/aux/vga/virge.c - 664 sys sys 1090439328 18587
@@ -7870,7 +7859,7 @@ sys/src/cmd/dict/world.c - 664 sys sys 944960882 4264
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff - 20000000775 sys sys 944960882 0
 sys/src/cmd/diff/diff.h - 664 sys sys 1106723609 794
 sys/src/cmd/diff/diff.h - 664 sys sys 1106723609 794
 sys/src/cmd/diff/diffdir.c - 664 sys sys 1014925333 1791
 sys/src/cmd/diff/diffdir.c - 664 sys sys 1014925333 1791
-sys/src/cmd/diff/diffio.c - 664 sys sys 1106938096 6599
+sys/src/cmd/diff/diffio.c - 664 sys sys 1114696977 6599
 sys/src/cmd/diff/diffreg.c - 664 sys sys 1114037841 8825
 sys/src/cmd/diff/diffreg.c - 664 sys sys 1114037841 8825
 sys/src/cmd/diff/main.c - 664 sys sys 1106938096 4338
 sys/src/cmd/diff/main.c - 664 sys sys 1106938096 4338
 sys/src/cmd/diff/mkfile - 664 sys sys 944960882 141
 sys/src/cmd/diff/mkfile - 664 sys sys 944960882 141
@@ -11389,7 +11378,7 @@ sys/src/cmd/upas/ml/mlmgr.c - 664 sys sys 1045505888 2332
 sys/src/cmd/upas/ml/mlowner.c - 664 sys sys 1015096763 1142
 sys/src/cmd/upas/ml/mlowner.c - 664 sys sys 1015096763 1142
 sys/src/cmd/upas/ned - 20000000775 sys sys 1015013194 0
 sys/src/cmd/upas/ned - 20000000775 sys sys 1015013194 0
 sys/src/cmd/upas/ned/mkfile - 664 sys sys 1060041738 233
 sys/src/cmd/upas/ned/mkfile - 664 sys sys 1060041738 233
-sys/src/cmd/upas/ned/nedmail.c - 664 sys sys 1094056330 44502
+sys/src/cmd/upas/ned/nedmail.c - 664 sys sys 1114697983 44543
 sys/src/cmd/upas/pop3 - 20000000775 sys sys 1015009816 0
 sys/src/cmd/upas/pop3 - 20000000775 sys sys 1015009816 0
 sys/src/cmd/upas/pop3/mkfile - 664 sys sys 1064589604 186
 sys/src/cmd/upas/pop3/mkfile - 664 sys sys 1064589604 186
 sys/src/cmd/upas/pop3/pop3.c - 664 sys sys 1076176207 14301
 sys/src/cmd/upas/pop3/pop3.c - 664 sys sys 1076176207 14301

+ 29 - 0
dist/replica/plan9.log

@@ -14819,3 +14819,32 @@
 1114659155 3 c 386/9pccpu - 775 sys sys 1114657884 1488687
 1114659155 3 c 386/9pccpu - 775 sys sys 1114657884 1488687
 1114659155 4 c 386/9pcdisk - 775 sys sys 1114657888 2039839
 1114659155 4 c 386/9pcdisk - 775 sys sys 1114657888 2039839
 1114659155 5 c 386/9pcf - 775 sys sys 1114657893 2382671
 1114659155 5 c 386/9pcf - 775 sys sys 1114657893 2382671
+1114696962 0 c sys/src/cmd/diff/diffio.c - 664 sys sys 1114696977 6599
+1114698764 0 a acme/bin/386/Mail - 775 sys sys 1114697726 179115
+1114698764 1 a acme/bin/Mail - 775 sys sys 1114697798 201
+1114698764 2 c acme/mail/src/mail.c - 664 sys sys 1114697672 11259
+1114698764 3 c acme/mail/src/mesg.c - 664 sys sys 1114697672 26292
+1114698764 4 c acme/mail/src/mkfile - 664 sys sys 1114697575 342
+1114698764 5 c sys/man/1/diff - 664 sys sys 1114697100 3085
+1114698764 6 c sys/man/1/nedmail - 664 sys sys 1114697978 6820
+1114698764 7 c sys/src/boot/pc/part.c - 664 sys sys 1114697151 7153
+1114698764 8 c sys/src/cmd/upas/ned/nedmail.c - 664 sys sys 1114697983 44543
+1114698764 9 d acme/mail/power - 20000000775 sys sys 1015011527 0
+1114698764 10 d acme/mail/old.iostats - 664 sys sys 1015011265 0
+1114698764 11 d acme/mail/mips - 20000000775 sys sys 1015011518 0
+1114698764 12 d acme/mail/arm - 20000000775 sys sys 1015011525 0
+1114698764 13 d acme/mail/alpha - 20000000775 sys sys 1015011521 0
+1114698764 14 d acme/mail/Mail - 775 sys sys 1015011264 0
+1114698764 15 d acme/mail/386/Mail - 775 sys sys 1113102525 0
+1114698764 16 d acme/mail/386 - 20000000775 sys sys 1015011538 0
+1114698764 17 d acme/acid/sparc - 20000000775 sys sys 1015011246 0
+1114698764 18 d acme/acid/mips - 20000000775 sys sys 1015011246 0
+1114698764 19 d acme/acid/arm - 20000000775 sys sys 1015011246 0
+1114698764 20 d acme/acid/alpha - 20000000775 sys sys 1015011246 0
+1114698764 21 d acme/acid/386 - 20000000775 sys sys 1015011246 0
+1114704165 0 c 386/bin/aux/vga - 775 sys sys 1114703151 314451
+1114704165 1 c sys/src/cmd/aux/vga/main.c - 664 sys sys 1114703149 9471
+1114704165 2 c sys/src/cmd/aux/vga/vesa.c - 664 sys sys 1114703149 9421
+1114745573 0 c 386/bin/aux/vga - 775 sys sys 1114744259 314451
+1114745573 1 c 386/bin/upas/nedmail - 775 sys sys 1114744259 156346
+1114745573 2 c acme/bin/386/Mail - 775 sys sys 1114744260 179115

+ 11 - 0
sys/man/1/diff

@@ -127,6 +127,17 @@ The
 .B -c
 .B -c
 option includes three lines of context around each
 option includes three lines of context around each
 change, merging changes whose contexts overlap.
 change, merging changes whose contexts overlap.
+In this mode,
+.I diff
+prints
+.L -
+and
+.L +
+instead of
+.L <
+and
+.L >
+because the former are easier to distinguish when mixed.
 The
 The
 .B -a
 .B -a
 flag displays the entire file as context.
 flag displays the entire file as context.

+ 8 - 269
sys/man/1/nedmail

@@ -1,16 +1,10 @@
 .TH NEDMAIL 1
 .TH NEDMAIL 1
 .SH NAME
 .SH NAME
-nedmail, fs \-  reading mail
-.PP
+nedmail \-  reading mail
+.SH SYNOPSIS
 .B upas/nedmail
 .B upas/nedmail
 [
 [
-.B -c [dir]
-]
-[
-.B -r
-]
-[
-.B -n
+.B -nr
 ]
 ]
 [
 [
 .B -f
 .B -f
@@ -21,22 +15,10 @@ nedmail, fs \-  reading mail
 .I mailfile
 .I mailfile
 ]
 ]
 .PP
 .PP
-.B upas/fs
-[
-.B -f
-.I mailbox
-]
-[
-.B -b
-]
-[
-.B -n
-]
-[
-.B -p
-]
+.B upas/nedmail
+.B -c
+.I dir
 .SH DESCRIPTION
 .SH DESCRIPTION
-.SS "Reading Mail
 .I Nedmail
 .I Nedmail
 edits a mailbox.
 edits a mailbox.
 The default mailbox is
 The default mailbox is
@@ -323,239 +305,9 @@ attachment to a message and then deletes the message:
 .PP
 .PP
 Notice that the delete of message 1.2 deleted the entire message and
 Notice that the delete of message 1.2 deleted the entire message and
 not just the attachment.
 not just the attachment.
-.SS "Mime File system
-.PP
-.I Fs
-is a user level file system that reads mailboxes and presents them as a file
-system.
-A user normally starts
-.I fs
-in his/her profile after starting
-.IR plumber (4)
-and before starting
-a window system, such as
-.IR rio (1)
-or
-.IR acme (1).
-The file system is used by
-.I nedmail
-and
-.IR acme (1)'s
-mail reader to parse messages.
-.I Fs
-also generates plumbing messages used by
-.IR biff
-and
-.IR faces (1)
-to provide mail announcements.
-.PP
-The mailbox itself becomes a directory under
-.BR /mail/fs .
-Each message in the mailbox becomes a numbered directory in the
-mailbox directory, and each attachment becomes a numbered directory
-in the message directory.  Since an attachment may itself be a mail message,
-this structure can recurse ad nauseam.
-.PP
-Each message and attachment directory contains the files:
-.TP 1.4i
-.B body
-.PD 0
-the message minus the RFC822 style headers
-.TP
-.B cc
-the address(es) from the CC: header
-.TP
-.B date
-the date in the message, or if none, the time of delivery
-.TP
-.B digest
-an SHA1 digest of the message contents
-.TP
-.B disposition
-.B inline
-or
-.B file
-.TP
-.B filename
-a name to use to file an attachment
-.TP
-.B from
-the from address in the From: header, or if none,
-the address on the envelope.
-.TP
-.B header
-the RFC822 headers
-.TP
-.B info
-described below, essentially a summary of the header info
-.TP
-.B inreplyto
-contents of the
-.B in-reply-to:
-header
-.TP
-.B mimeheader
-the mime headers
-.TP
-.B raw
-the undecoded MIME message
-.TP
-.B rawbody
-the undecoded message body
-.TP
-.B rawheader
-the undecoded message header
-.TP
-.B replyto
-the address to send any replies to.
-.TP
-.B subject
-the contents of the subject line
-.TP
-.B to
-the address(es) from the To: line.
-.TP
-.B type
-the MIME content type
-.TP
-.B unixheader
-the envelope header from the mailbox
-.PD
-.PP
-The
-.B info
-file contains the following information, one item per line.  Lists
-of addresses are single space separated.
-.IP
-.TP 2i
-.I "sender address
-.PD 0
-.TP
-.I "recipient addresses
-.TP
-.I "cc addresses
-.TP
-.I "reply address
-.TP
-.I "envelope date
-.TP
-.I "subject
-.TP
-.I "MIME content type
-.TP
-.I "MIME disposition
-.TP
-.I filename
-.TP
-.I "SHA1 digest
-.TP
-.I "bcc addresses
-.TP
-.I "in-reply-to: contents
-.TP
-.I "RFC822 date
-.TP
-.I "message senders
-.TP
-.I "message id
-.TP
-.I "number of lines in body
-.PD
-.PP
-Deleting message directories causes the message to be removed from
-the mailbox.
-.PP
-The mailbox is reread and the structure updated
-whenever the mailbox changes.  Message directories are
-not renumbered.
-.PP
-The file
-.B /mail/fs/ctl
-is used to direct
-.I fs
-to open/close new mailboxes or to delete groups of messages atomically.
-The messages that can be written to this file are:
-.TP 2i
-.PD 0
-.B "open \fIpath mboxname\fP
-opens a new mailbox.
-.I path
-is the file to open, and
-.I mboxname
-is the name that appears under
-.BR /mail/fs .
-.TP
-.B "close \fImboxname\fP
-close
-.IR mboxname .
-The close takes affect only after all files open under
-.BI /mail/fs/ mboxname
-have been closed.
-.TP
-.B "delete \fImboxname number ...\fP
-Delete the messages with the given numbers from
-.IR mboxname.
-.PD
-.PP
-The options are:
-.TF "-f file
-.TP
-.BI -f file
-use
-.I file
-as the mailbox instead of the default,
-.BI /mail/box/ username /mbox.
-.PD 0
-.TP
-.B -b
-stands for biffing.  Each time new mail
-is received, a message is printed to standard
-output containing the sender address, subject,
-and number of bytes.  It is intended for
-people telnetting in who want mail announcements.
-.TP
-.B -n
-Don't open a mailbox initially.  Overridden by -f.
-.TP
-.B -p
-turn off plumbing.  Unless this is specified,
-.I fs
-sends a message to the plumb port,
-.BR seemail ,
-from source
-.B mailfs
-for each message received or deleted.
-The message contains the attributes
-.IR sender = "<contents of from file>" ,
-.IR filetype =mail,
-.IR mailtype = "deleted or new" ,
-and
-.IR length = "<message length in bytes>" .
-The contents of the message is the full path
-name of the directory representing the message.
-.TP
-.B -s
-causes
-.I fs
-to put itself in
-.B /srv
-with a name of the form
-.BR /srv/upasfs.\fIuser\fP .
-.TP
-.B -m
-specifies a mount point other than
-.BR /mail/fs .
-.PD
-.PP
-.I Fs
-will exit once all references to its directory
-have disappeared.
 .SH FILES
 .SH FILES
 .TF /mail/box/*/dead.letter
 .TF /mail/box/*/dead.letter
 .TP
 .TP
-.B /sys/log/mail
-mail log file
-.TP
 .B /mail/box/*
 .B /mail/box/*
 mail directories
 mail directories
 .TP
 .TP
@@ -573,22 +325,8 @@ mutual exclusion lock for multiple mbox readers
 .TP
 .TP
 .B /mail/box/*/L.mbox
 .B /mail/box/*/L.mbox
 mutual exclusion lock for altering mbox
 mutual exclusion lock for altering mbox
-.TP
-.B /lib/face/48x48x?
-directories of icons for
-.I seemail
 .SH SOURCE
 .SH SOURCE
-.TF /sys/src/cmd/upas
-.TP
-.B /rc/bin/mail
-.TP
-.B /sys/src/cmd/upas
-source for commands in
-.B /bin/upas
-.TP
-.B /sys/src/cmd/faces
-.TP
-.B /rc/bin/vwhois
+.B /sys/src/cmd/upas/ned
 .SH "SEE ALSO"
 .SH "SEE ALSO"
 .IR mail (1),
 .IR mail (1),
 .IR aliasmail (8),
 .IR aliasmail (8),
@@ -596,6 +334,7 @@ source for commands in
 .IR marshal (1),
 .IR marshal (1),
 .IR mlmgr (1),
 .IR mlmgr (1),
 .IR nedmail (1),
 .IR nedmail (1),
+.IR upasfs(4),
 .IR smtp (8),
 .IR smtp (8),
 .IR faces (1),
 .IR faces (1),
 .IR rewrite (6)
 .IR rewrite (6)

+ 55 - 78
sys/src/boot/pc/part.c

@@ -152,88 +152,53 @@ isextend(int t)
 static int
 static int
 mbrpart(SDunit *unit)
 mbrpart(SDunit *unit)
 {
 {
-	ulong mbroffset;
 	Dospart *dp;
 	Dospart *dp;
-	ulong start, end;
-	ulong epart, outer, inner;
+	ulong taboffset, start, end;
+	ulong firstxpart, nxtxpart;
 	int havedos, i, nplan9;
 	int havedos, i, nplan9;
 	char name[10];
 	char name[10];
 
 
-	if(tsdbio(unit, &unit->part[0], mbrbuf, 0, 1) < 0)
-		return -1;
-
-	mbroffset = 0;
+	taboffset = 0;
 	dp = (Dospart*)&mbrbuf[0x1BE];
 	dp = (Dospart*)&mbrbuf[0x1BE];
-	for(i=0; i<4; i++, dp++)
-		if(dp->type == DMDDO) {
-			mbroffset = 63*512;
-			if(trace)
-				print("DMDDO partition found\n");
-			if(tsdbio(unit, &unit->part[0], mbrbuf, mbroffset, 1) < 0)
-				return -1;
-			i = -1;	/* start over */
-		}
+	if(1) {
+		/* get the MBR (allowing for DMDDO) */
+		if(tsdbio(unit, &unit->part[0], mbrbuf, (vlong)taboffset*unit->secsize, 1) < 0)
+			return -1;
+		for(i=0; i<4; i++)
+			if(dp[i].type == DMDDO) {
+				if(trace)
+					print("DMDDO partition found\n");
+				taboffset = 63;
+				if(tsdbio(unit, &unit->part[0], mbrbuf, (vlong)taboffset*unit->secsize, 1) < 0)
+					return -1;
+				i = -1;	/* start over */
+			}
+	}
 
 
+	/*
+	 * Read the partitions, first from the MBR and then
+	 * from successive extended partition tables.
+	 */
 	nplan9 = 0;
 	nplan9 = 0;
 	havedos = 0;
 	havedos = 0;
-	epart = 0;
-	dp = (Dospart*)&mbrbuf[0x1BE];
-	if(trace)
-		print("%s mbr ", unit->name);
-	for(i=0; i<4; i++, dp++) {
-		if(trace)
-			print("dp %d...", dp->type);
-		start = mbroffset/512+GLONG(dp->start);
-		end = start+GLONG(dp->len);
-
-		if(dp->type == PLAN9) {
-			if(nplan9 == 0)
-				strcpy(name, "plan9");
+	firstxpart = 0;
+	for(;;) {
+		if(tsdbio(unit, &unit->part[0], mbrbuf, (vlong)taboffset*unit->secsize, 1) < 0)
+			return -1;
+		if(trace) {
+			if(firstxpart)
+				print("%s ext %lud ", unit->name, taboffset);
 			else
 			else
-				sprint(name, "plan9.%d", nplan9);
-			sdaddpart(unit, name, start, end);
-			p9part(unit, name);
-			nplan9++;
-		}
-
-		/*
-		 * We used to take the active partition (and then the first
-		 * when none are active).  We have to take the first here,
-		 * so that the partition we call ``dos'' agrees with the
-		 * partition disk/fdisk calls ``dos''. 
-		 */
-		if(havedos==0 && isdos(dp->type)){
-			havedos = 1;
-			sdaddpart(unit, "dos", start, end);
+				print("%s mbr ", unit->name);
 		}
 		}
-		if(isextend(dp->type)){
-			epart = start;
+		nxtxpart = 0;
+		for(i=0; i<4; i++) {
 			if(trace)
 			if(trace)
-				print("link %lud...", epart);
-		}
-	}
-	if(trace)
-		print("\n");
+				print("dp %d...", dp[i].type);
+			start = taboffset+GLONG(dp[i].start);
+			end = start+GLONG(dp[i].len);
 
 
-	/*
-	 * Search through the chain of extended partition tables.
-	 */
-	outer = epart;
-	while(epart != 0) {
-		if(trace)
-			print("%s ext %lud ", unit->name, epart);
-		if(tsdbio(unit, &unit->part[0], mbrbuf, (vlong)epart*unit->secsize, 1) < 0)
-			break;
-		inner = epart;
-		epart = 0;
-		dp = (Dospart*)&mbrbuf[0x1BE];
-		for(i=0; i<4; i++, dp++) {
-			if(trace)
-				print("dp %d...", dp->type);
-			start = GLONG(dp->start);
-			if(dp->type == PLAN9){
-				start += inner;
-				end = start+GLONG(dp->len);
+			if(dp[i].type == PLAN9) {
 				if(nplan9 == 0)
 				if(nplan9 == 0)
 					strcpy(name, "plan9");
 					strcpy(name, "plan9");
 				else
 				else
@@ -242,22 +207,34 @@ mbrpart(SDunit *unit)
 				p9part(unit, name);
 				p9part(unit, name);
 				nplan9++;
 				nplan9++;
 			}
 			}
-			if(havedos==0 && isdos(dp->type)){
-				start += inner;
-				end = start+GLONG(dp->len);
+
+			/*
+			 * We used to take the active partition (and then the first
+			 * when none are active).  We have to take the first here,
+			 * so that the partition we call ``dos'' agrees with the
+			 * partition disk/fdisk calls ``dos''. 
+			 */
+			if(havedos==0 && isdos(dp[i].type)){
 				havedos = 1;
 				havedos = 1;
 				sdaddpart(unit, "dos", start, end);
 				sdaddpart(unit, "dos", start, end);
 			}
 			}
-			if(isextend(dp->type)){
-				epart = start + outer;
+
+			/* nxtxpart is relative to firstxpart (or 0), not taboffset */
+			if(isextend(dp[i].type)){
+				nxtxpart = start-taboffset+firstxpart;
 				if(trace)
 				if(trace)
-					print("link %lud...", epart);
+					print("link %lud...", nxtxpart);
 			}
 			}
 		}
 		}
 		if(trace)
 		if(trace)
 			print("\n");
 			print("\n");
-	}
-		
+
+		if(!nxtxpart)
+			break;
+		if(!firstxpart)
+			firstxpart = nxtxpart;
+		taboffset = nxtxpart;
+	}	
 	return nplan9 ? 0 : -1;
 	return nplan9 ? 0 : -1;
 }
 }
 
 

+ 1 - 0
sys/src/cmd/aux/vga/main.c

@@ -157,6 +157,7 @@ main(int argc, char** argv)
 	Ctlr *ctlr;
 	Ctlr *ctlr;
 	Vga *vga;
 	Vga *vga;
 
 
+	fmtinstall('H', encodefmt);
 	Binit(&stdout, 1, OWRITE);
 	Binit(&stdout, 1, OWRITE);
 
 
 	bios = getenv("vgactlr");
 	bios = getenv("vgactlr");

+ 4 - 2
sys/src/cmd/aux/vga/vesa.c

@@ -285,7 +285,7 @@ unfarptr(Vbe *vbe, uchar *p)
 	off = WORD(p);
 	off = WORD(p);
 	if(seg==0 && off==0)
 	if(seg==0 && off==0)
 		return nil;
 		return nil;
-	off += seg;
+	off += seg<<4;
 	if(off >= MemSize)
 	if(off >= MemSize)
 		return nil;
 		return nil;
 	loadpage(vbe, off/PageSize);
 	loadpage(vbe, off/PageSize);
@@ -334,8 +334,10 @@ vbecheck(Vbe *vbe)
 	strcpy((char*)p, "VBE2");
 	strcpy((char*)p, "VBE2");
 	if(vbecall(vbe, &u) < 0)
 	if(vbecall(vbe, &u) < 0)
 		return -1;
 		return -1;
-	if(memcmp(p, "VESA", 4) != 0 || p[5] < 2)
+	if(memcmp(p, "VESA", 4) != 0 || p[5] < 2){
+		werrstr("invalid vesa signature %.4H %.4H\n", p, p+4);
 		return -1;
 		return -1;
+	}
 	return 0;
 	return 0;
 }
 }
 
 

+ 2 - 2
sys/src/cmd/diff/diffio.c

@@ -377,8 +377,8 @@ flushchanges(void)
 		at = a;
 		at = a;
 		for(; i<j; i++){
 		for(; i<j; i++){
 			fetch(ixold, at, changes[i].a-1, input[0], "  ");
 			fetch(ixold, at, changes[i].a-1, input[0], "  ");
-			fetch(ixold, changes[i].a, changes[i].b, input[0], "< ");
-			fetch(ixnew, changes[i].c, changes[i].d, input[1], "> ");
+			fetch(ixold, changes[i].a, changes[i].b, input[0], "- ");
+			fetch(ixnew, changes[i].c, changes[i].d, input[1], "+ ");
 			at = changes[i].b+1;
 			at = changes[i].b+1;
 		}
 		}
 		fetch(ixold, at, b, input[0], "  ");
 		fetch(ixold, at, b, input[0], "  ");

+ 2 - 1
sys/src/cmd/upas/ned/nedmail.c

@@ -180,7 +180,8 @@ Message*	flushdeleted(Message*);
 void
 void
 usage(void)
 usage(void)
 {
 {
-	fprint(2, "usage: %s [-cr] [-f mboxdir] [-s singleton]\n", argv0);
+	fprint(2, "usage: %s [-nr] [-f mailfile] [-s mailfile]\n", argv0);
+	fprint(2, "       %s -c dir\n", argv0);
 	exits("usage");
 	exits("usage");
 }
 }