Browse Source

Plan 9 from Bell Labs 2004-03-25

David du Colombier 20 years ago
parent
commit
fc1ad3cb0a

+ 30 - 30
dist/replica/plan9.db

@@ -27,7 +27,7 @@
 386/bin/9660srv - 775 sys sys 1064598019 104963
 386/bin/aan - 775 sys sys 1064598020 128816
 386/bin/acid - 775 sys sys 1073851203 379815
-386/bin/acme - 775 sys sys 1077422339 424461
+386/bin/acme - 775 sys sys 1080134209 424634
 386/bin/ape - 20000000775 sys sys 1016944144 0
 386/bin/ape/basename - 775 sys sys 1071245280 133877
 386/bin/ape/cc - 775 sys sys 1064598025 68790
@@ -151,7 +151,7 @@
 386/bin/aux/tr2post - 775 sys sys 1064598093 175937
 386/bin/aux/trampoline - 775 sys sys 1069592363 81152
 386/bin/aux/typepasswd - 775 sys sys 1064598094 67908
-386/bin/aux/vga - 775 sys sys 1069592364 303852
+386/bin/aux/vga - 775 sys sys 1080134287 305060
 386/bin/aux/vmmousepoll - 775 sys sys 1032480572 41434
 386/bin/aux/vmware - 775 sys sys 1049428256 453
 386/bin/aux/vmwarefs - 775 sys sys 1045537962 102172
@@ -231,9 +231,9 @@
 386/bin/fortune - 775 sys sys 1073851220 66113
 386/bin/fossil - 20000000775 sys sys 1042005470 0
 386/bin/fossil/conf - 775 sys sys 1056364255 1497
-386/bin/fossil/flchk - 775 sys sys 1073888256 235503
-386/bin/fossil/flfmt - 775 sys sys 1073888257 249314
-386/bin/fossil/fossil - 775 sys sys 1079034455 350022
+386/bin/fossil/flchk - 775 sys sys 1080135159 235503
+386/bin/fossil/flfmt - 775 sys sys 1080135174 249314
+386/bin/fossil/fossil - 775 sys sys 1080135140 349428
 386/bin/freq - 775 sys sys 1064598145 60197
 386/bin/fs - 20000000775 sys sys 954380769 0
 386/bin/fs/32vfs - 775 sys sys 1064598146 95907
@@ -317,17 +317,17 @@
 386/bin/mtime - 775 sys sys 1064598257 57628
 386/bin/mv - 775 sys sys 1064598258 64748
 386/bin/ndb - 20000000775 sys sys 985743147 0
-386/bin/ndb/cs - 775 sys sys 1071245339 144581
-386/bin/ndb/csquery - 775 sys sys 1064598259 59890
-386/bin/ndb/dns - 775 sys sys 1070288106 218607
-386/bin/ndb/dnsdebug - 775 sys sys 1070288107 190956
-386/bin/ndb/dnsquery - 775 sys sys 1064598263 62194
-386/bin/ndb/dnstcp - 775 sys sys 1070288108 189670
-386/bin/ndb/ipquery - 775 sys sys 1069592372 91891
-386/bin/ndb/mkdb - 775 sys sys 1064598265 62386
-386/bin/ndb/mkhash - 775 sys sys 1069592372 82479
-386/bin/ndb/mkhosts - 775 sys sys 1069592373 83415
-386/bin/ndb/query - 775 sys sys 1069592373 81213
+386/bin/ndb/cs - 775 sys sys 1080134985 150506
+386/bin/ndb/csquery - 775 sys sys 1080134987 59854
+386/bin/ndb/dns - 775 sys sys 1080134992 221096
+386/bin/ndb/dnsdebug - 775 sys sys 1080135002 193477
+386/bin/ndb/dnsquery - 775 sys sys 1080134994 62158
+386/bin/ndb/dnstcp - 775 sys sys 1080134998 192114
+386/bin/ndb/ipquery - 775 sys sys 1080135004 94473
+386/bin/ndb/mkdb - 775 sys sys 1080134975 62356
+386/bin/ndb/mkhash - 775 sys sys 1080134979 83369
+386/bin/ndb/mkhosts - 775 sys sys 1080134982 84306
+386/bin/ndb/query - 775 sys sys 1080134977 82401
 386/bin/netkey - 775 sys sys 1064598267 70507
 386/bin/netstat - 775 sys sys 1069592373 81380
 386/bin/news - 775 sys sys 1064598268 70266
@@ -370,11 +370,11 @@
 386/bin/replica/setupdirs - 775 sys sys 1020319083 44
 386/bin/replica/updatedb - 775 sys sys 1068558250 95126
 386/bin/resample - 775 sys sys 1064598294 120124
-386/bin/rio - 775 sys sys 1076817073 311241
+386/bin/rio - 775 sys sys 1080134231 311239
 386/bin/rm - 775 sys sys 1064598298 59786
 386/bin/rtstats - 775 sys sys 1071245345 177818
 386/bin/rx - 775 sys sys 1071245345 80158
-386/bin/sam - 775 sys sys 1064598302 156664
+386/bin/sam - 775 sys sys 1080134219 156635
 386/bin/scat - 775 sys sys 1071245346 282545
 386/bin/scp - 775 sys sys 1075184164 151804
 386/bin/scuzz - 775 sys sys 1064598306 110748
@@ -483,8 +483,8 @@
 386/bin/venti/verifyarena - 775 sys sys 1073851257 105348
 386/bin/venti/wrarena - 775 sys sys 1073851257 182651
 386/bin/venti/write - 775 sys sys 1064598391 100783
-386/bin/vncs - 775 sys sys 1064598394 442530
-386/bin/vncv - 775 sys sys 1071245371 271560
+386/bin/vncs - 775 sys sys 1080134243 443458
+386/bin/vncv - 775 sys sys 1080134248 271577
 386/bin/vt - 775 sys sys 1071245372 171391
 386/bin/vtdump - 775 sys sys 1076385623 161557
 386/bin/wc - 775 sys sys 1064598399 42148
@@ -2979,7 +2979,7 @@ rc/bin/B - 775 sys sys 945617206 645
 rc/bin/C - 775 sys sys 1045493437 788
 rc/bin/Kill - 775 sys sys 1018637942 115
 rc/bin/a: - 775 sys sys 1063856406 255
-rc/bin/ap - 775 sys sys 1068124620 651
+rc/bin/ap - 775 sys sys 1080159225 665
 rc/bin/ape - 20000000775 sys sys 954039414 0
 rc/bin/ape/ar89 - 775 sys sys 945617285 308
 rc/bin/ape/c89 - 775 sys sys 945617285 39
@@ -4592,15 +4592,15 @@ sys/log/httpd/url - 666 sys sys 958933934 0
 sys/log/imap4d - 10000000666 sys sys 958934039 0
 sys/log/ipboot - 10000000666 sys sys 958934040 0
 sys/log/listen - 10000000666 sys sys 958934040 0
-sys/log/mail - 10000000666 sys sys 1077042805 229
+sys/log/mail - 10000000666 sys sys 1080177666 724
 sys/log/nfs - 10000000666 sys sys 958934039 0
 sys/log/nfsserver - 10000000666 sys sys 958934040 0
 sys/log/pop3 - 10000000666 sys sys 958934040 0
 sys/log/portmapper - 10000000666 sys sys 958934039 0
 sys/log/ppp - 10000000666 sys sys 958934039 0
 sys/log/pptpd - 10000000666 sys sys 958934039 0
-sys/log/runq - 10000000666 sys sys 958934039 0
-sys/log/smtp - 10000000666 sys sys 958934039 0
+sys/log/runq - 10000000666 sys sys 1080134438 182
+sys/log/smtp - 10000000666 sys sys 1080134438 69
 sys/log/smtp.fail - 10000000666 sys sys 958934039 0
 sys/log/smtpd - 10000000666 sys sys 958934040 0
 sys/log/ssh - 10000000666 sys sys 958934039 0
@@ -4847,7 +4847,7 @@ sys/man/2/ip - 664 sys sys 1015701015 6986
 sys/man/2/isalpharune - 664 sys sys 1015091523 1059
 sys/man/2/keyboard - 664 sys sys 950892860 2065
 sys/man/2/lock - 664 sys sys 1048643958 4692
-sys/man/2/mach - 664 sys sys 944959696 7994
+sys/man/2/mach - 664 sys sys 1080179298 7995
 sys/man/2/malloc - 664 sys sys 1032238537 4397
 sys/man/2/matrix - 664 sys sys 950892861 6090
 sys/man/2/memdraw - 664 sys sys 1040484074 10144
@@ -10253,12 +10253,12 @@ sys/src/cmd/rio/data.c - 664 sys sys 1014926356 6169
 sys/src/cmd/rio/fns.h - 664 sys sys 1039133251 1065
 sys/src/cmd/rio/fsys.c - 664 sys sys 1019678647 13259
 sys/src/cmd/rio/mkfile - 664 sys sys 1039133251 454
-sys/src/cmd/rio/rio.c - 664 sys sys 1076777377 21415
+sys/src/cmd/rio/rio.c - 664 sys sys 1080159097 21977
 sys/src/cmd/rio/scrl.c - 664 sys sys 1014926357 3245
 sys/src/cmd/rio/time.c - 664 sys sys 1014926357 1829
 sys/src/cmd/rio/util.c - 664 sys sys 1014926357 2061
 sys/src/cmd/rio/wctl.c - 664 sys sys 1023206837 8808
-sys/src/cmd/rio/wind.c - 664 sys sys 1076276532 32785
+sys/src/cmd/rio/wind.c - 664 sys sys 1080159143 32788
 sys/src/cmd/rio/xfid.c - 664 sys sys 1032061723 17424
 sys/src/cmd/rm.c - 664 sys sys 1014926615 1563
 sys/src/cmd/rx.c - 664 sys sys 1071155928 4188
@@ -10646,7 +10646,7 @@ sys/src/cmd/unix/drawterm/glyph.c - 664 sys sys 954098624 4081
 sys/src/cmd/unix/drawterm/ip.h - 664 sys sys 954098625 560
 sys/src/cmd/unix/drawterm/irix.c - 664 sys sys 954098626 7552
 sys/src/cmd/unix/drawterm/kbd.c - 664 sys sys 954098627 8210
-sys/src/cmd/unix/drawterm/keyboard.h - 664 sys sys 954098628 270
+sys/src/cmd/unix/drawterm/keyboard.h - 664 sys sys 1080159172 380
 sys/src/cmd/unix/drawterm/latin1.c - 664 sys sys 1077480272 7808
 sys/src/cmd/unix/drawterm/lib9.h - 664 sys sys 1077480272 7930
 sys/src/cmd/unix/drawterm/libdraw - 20000000775 sys sys 954098713 0
@@ -10725,7 +10725,7 @@ sys/src/cmd/unix/drawterm/mkfile - 664 sys sys 1077480273 2572
 sys/src/cmd/unix/drawterm/mkfile-FreeBSD - 664 sys sys 1077480274 555
 sys/src/cmd/unix/drawterm/mkfile-FreeBSD-power - 664 sys sys 1077480274 549
 sys/src/cmd/unix/drawterm/mkfile-Irix - 664 sys sys 1077480275 542
-sys/src/cmd/unix/drawterm/mkfile-Linux - 664 sys sys 1077480275 534
+sys/src/cmd/unix/drawterm/mkfile-Linux - 664 sys sys 1080159060 539
 sys/src/cmd/unix/drawterm/mkfile-OSF1 - 664 sys sys 1077480276 553
 sys/src/cmd/unix/drawterm/mkfile-Solaris - 664 sys sys 1077480276 594
 sys/src/cmd/unix/drawterm/mkfile-Solaris-386 - 664 sys sys 954098636 25
@@ -10860,7 +10860,7 @@ sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1075069146 16233
 sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1071334860 28493
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1071334861 7465
-sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1063854740 12408
+sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1080159334 12445
 sys/src/cmd/upas/fs/readdir.c - 664 sys sys 944961331 203
 sys/src/cmd/upas/fs/strtotm.c - 664 sys sys 1041137528 1904
 sys/src/cmd/upas/fs/tester.c - 664 sys sys 985037420 1418

+ 33 - 0
dist/replica/plan9.log

@@ -14726,3 +14726,36 @@
 1079971270 7 a sys/src/cmd/jpg/readbmp.c - 664 sys sys 1079970079 13697
 1080050484 0 c lib/vgadb - 664 sys sys 1080049879 27670
 1080059487 0 c sys/src/cmd/ip/telnet.c - 664 sys sys 1080058033 8535
+1080135102 0 c 386/bin/acme - 775 sys sys 1080134209 424634
+1080135102 1 c 386/bin/vncs - 775 sys sys 1080134243 443458
+1080135102 2 c 386/bin/vncv - 775 sys sys 1080134248 271577
+1080135102 3 c 386/bin/rio - 775 sys sys 1080134231 311239
+1080135102 4 c 386/bin/sam - 775 sys sys 1080134219 156635
+1080135102 5 c 386/bin/aux/vga - 775 sys sys 1080134287 305060
+1080135102 6 c 386/bin/fossil/fossil - 775 sys sys 1080135140 349428
+1080135102 7 c 386/bin/ndb/cs - 775 sys sys 1080134985 150506
+1080135102 8 c 386/bin/ndb/csquery - 775 sys sys 1080134987 59854
+1080135102 9 c 386/bin/ndb/dns - 775 sys sys 1080134992 221096
+1080135102 10 c 386/bin/ndb/dnsdebug - 775 sys sys 1080135002 193477
+1080135102 11 c 386/bin/ndb/dnsquery - 775 sys sys 1080134994 62158
+1080135102 12 c 386/bin/ndb/dnstcp - 775 sys sys 1080134998 192114
+1080135102 13 c 386/bin/ndb/ipquery - 775 sys sys 1080135004 94473
+1080135102 14 c 386/bin/ndb/mkdb - 775 sys sys 1080134975 62356
+1080135102 15 c 386/bin/ndb/mkhash - 775 sys sys 1080134979 83369
+1080135102 16 c 386/bin/ndb/mkhosts - 775 sys sys 1080134982 84306
+1080135102 17 c 386/bin/ndb/query - 775 sys sys 1080134977 82401
+1080135102 18 c sys/log/mail - 10000000666 sys sys 1080134674 439
+1080135102 19 c sys/log/runq - 10000000666 sys sys 1080134438 182
+1080135102 20 c sys/log/smtp - 10000000666 sys sys 1080134438 69
+1080136900 0 c 386/bin/fossil/flchk - 775 sys sys 1080135159 235503
+1080136900 1 c 386/bin/fossil/flfmt - 775 sys sys 1080135174 249314
+1080136900 2 c sys/log/mail - 10000000666 sys sys 1080135984 533
+1080160306 0 c rc/bin/ap - 775 sys sys 1080159225 665
+1080160306 1 c sys/src/cmd/rio/rio.c - 664 sys sys 1080159097 21977
+1080160306 2 c sys/src/cmd/rio/wind.c - 664 sys sys 1080159143 32788
+1080160306 3 c sys/src/cmd/unix/drawterm/keyboard.h - 664 sys sys 1080159172 380
+1080160306 4 c sys/src/cmd/unix/drawterm/mkfile-Linux - 664 sys sys 1080159060 539
+1080160306 5 c sys/src/cmd/upas/fs/pop3.c - 664 sys sys 1080159334 12445
+1080176508 0 c sys/log/mail - 10000000666 sys sys 1080174824 629
+1080178308 0 c sys/log/mail - 10000000666 sys sys 1080177666 724
+1080180108 0 c sys/man/2/mach - 664 sys sys 1080179298 7995

+ 14 - 13
rc/bin/ap

@@ -6,32 +6,33 @@
 tmp=/tmp/tmp.$pid
 wire='http://www.newsday.com/news/nationworld/wire'
 if ( ~ $#* 0 )
-	hget $wire |
+	hget $wire | tee /tmp/ap.tmp |
 		htmlfmt -a -w 100 |
 		sed -n '
+			1,/On Wall Street/d
 			/AP News Wire/,$d
-			/reddot\.gif/ {
+			/^• / {
 				N
+				s/^• / /g
 				s/\n/ /g
-				s/\[image [^\]]*] *//
 				s/\[\/news\/nationworld\/wire\//|/
 				s/,[0-9]+,[0-9]+\.story.*$//
 				p
 		}' |
-		awk -F '|' '{
+		awk -F '|' '
+			{
 			s = "";
-			for (i = 2; i <= NF; i++)
+			for (i = 1; i < NF; i++)
 				s = s " " $i;
-			printf("%-40s %s\n", s, $1);
+			printf("%-40s %s\n", $NF, s);
 		}'
 
-if not 
+if not
 	hget $wire/^$1^.story |
 		htmlfmt |
 		sed '
-			1,/^AP News Alert/d
-			s/.*(Copyright .* The Associated Press).*$/\1/p
-			/Copyright .* The Associated Press/,$d
-		'
-
-
+			1,/^By Associated Press$/d
+			s/\| Article licensing.*$//
+			/^Copyright ©/p
+			/^Copyright ©/,$d
+			'

+ 5 - 0
sys/log/mail

@@ -1,2 +1,7 @@
 olive Jul 29 11:03:15 remote cse.psu.edu!9fans From presotto Tue Jul 29 11:03:14 EDT 2003 (9fans@cse.psu.edu) 331
 olive Feb 17 13:33:25 remote cse.psu.edu!9fans From presotto Tue Feb 17 13:33:23 EST 2004 (9fans@cse.psu.edu) 3055
+achille Mar 24 08:20:37 remote cse.psu.edu!9fans From presotto Wed Mar 24 08:20:37 EST 2004 (9fans@cse.psu.edu) 452
+achille Mar 24 08:24:34 remote local!jmk From presotto Wed Mar 24 08:24:28 EST 2004 (jmk) 325
+achille Mar 24 08:46:24 remote local!jmk From presotto Wed Mar 24 08:46:18 EST 2004 (jmk) 436
+achille Mar 24 19:33:44 remote local!ehg From presotto Wed Mar 24 19:33:42 EST 2004 (ehg) 21973
+achille Mar 24 20:21:06 remote local!jmk From presotto Wed Mar 24 20:21:00 EST 2004 (jmk) 1204

+ 2 - 0
sys/log/runq

@@ -0,0 +1,2 @@
+achille Mar 24 08:20:37 presotto/C.369584: execing '/mail/lib/remotemail.ext' 'mail' 'presotto' '/net.alt/tcp!cse.psu.edu' '9fans'
+achille Mar 24 08:20:38 removing presotto/C.369584

+ 1 - 0
sys/log/smtp

@@ -0,0 +1 @@
+achille Mar 24 08:20:38 presotto sent 520 bytes to 9fans@cse.psu.edu

+ 1 - 1
sys/man/2/mach

@@ -41,7 +41,7 @@ void unusemap(Map *map, int seg)
 Map *loadmap(Map *map, int fd, Fhdr *fp)
 .PP
 .B
-int attachproc(int pid, int kflag, int corefd, Fhdr *fp)
+Map *attachproc(int pid, int kflag, int corefd, Fhdr *fp)
 .PP
 .B
 int get1(Map *map, ulong addr, uchar *buf, int n)

+ 37 - 12
sys/src/cmd/rio/rio.c

@@ -806,10 +806,37 @@ sweep(void)
 	return i;
 }
 
-/*
- * BUG: should interlock so applications don't change screen
- * while tmp[] holds backing store
- */
+void
+drawedge(Image **bp, Rectangle r)
+{
+	Image *b = *bp;
+	if(b != nil && Dx(b->r) == Dx(r) && Dy(b->r) == Dy(r))
+		originwindow(b, r.min, r.min);
+	else{
+		freeimage(b);
+		*bp = allocwindow(wscreen, r, Refbackup, DRed);
+	}
+}
+
+void
+drawborder(Rectangle r, int show)
+{
+	static Image *b[4];
+	int i;
+	if(show == 0){
+		for(i = 0; i < 4; i++){
+			freeimage(b[i]);
+			b[i] = nil;
+		}
+	}else{
+		r = canonrect(r);
+		drawedge(&b[0], Rect(r.min.x, r.min.y, r.min.x+Borderwidth, r.max.y));
+		drawedge(&b[1], Rect(r.min.x+Borderwidth, r.min.y, r.max.x-Borderwidth, r.min.y+Borderwidth));
+		drawedge(&b[2], Rect(r.max.x-Borderwidth, r.min.y, r.max.x, r.max.y));
+		drawedge(&b[3], Rect(r.min.x+Borderwidth, r.max.y-Borderwidth, r.max.x-Borderwidth, r.max.y));
+	}
+}
+
 Image*
 drag(Window *w, Rectangle *rp)
 {
@@ -824,20 +851,19 @@ drag(Window *w, Rectangle *rp)
 	dm = subpt(mouse->xy, w->screenr.min);
 	d = subpt(i->r.max, i->r.min);
 	op = subpt(mouse->xy, dm);
-	drawgetrect(Rect(op.x, op.y, op.x+d.x, op.y+d.y), 1);
+	drawborder(Rect(op.x, op.y, op.x+d.x, op.y+d.y), 1);
 	flushimage(display, 1);
 	while(mouse->buttons == 4){
 		p = subpt(mouse->xy, dm);
 		if(!eqpt(p, op)){
-			drawgetrect(Rect(op.x, op.y, op.x+d.x, op.y+d.y), 0);
-			drawgetrect(Rect(p.x, p.y, p.x+d.x, p.y+d.y), 1);
+			drawborder(Rect(p.x, p.y, p.x+d.x, p.y+d.y), 1);
 			flushimage(display, 1);
 			op = p;
 		}
 		readmouse(mousectl);
 	}
 	r = Rect(op.x, op.y, op.x+d.x, op.y+d.y);
-	drawgetrect(r, 0);
+	drawborder(r, 0);
 	cornercursor(w, mouse->xy, 1);
 	moveto(mousectl, mouse->xy);	/* force cursor update; ugly */
 	menuing = FALSE;
@@ -898,22 +924,21 @@ bandsize(Window *w)
 	startp = p;
 	which = whichcorner(w, p);
 	r = whichrect(w->screenr, p, which);
-	drawgetrect(r, 1);
+	drawborder(r, 1);
 	or = r;
 	but = mouse->buttons;
 	while(mouse->buttons == but){
 		p = onscreen(mouse->xy);
 		r = whichrect(w->screenr, p, which);
 		if(!eqrect(r, or) && goodrect(r)){
-			drawgetrect(or, 0);
-			drawgetrect(r, 1);
+			drawborder(r, 1);
 			flushimage(display, 1);
 			or = r;
 		}
 		readmouse(mousectl);
 	}
 	p = mouse->xy;
-	drawgetrect(or, 0);
+	drawborder(or, 0);
 	flushimage(display, 1);
 	wsetcursor(w, 1);
 	if(mouse->buttons!=0 || Dx(or)<100 || Dy(or)<3*font->height){

+ 3 - 3
sys/src/cmd/rio/wind.c

@@ -16,9 +16,9 @@
 
 enum
 {
-	HiWater	= 64000,	/* max size of history */
-	LoWater	= 33000,	/* min size of history after max'ed */
-	MinWater	= 2000,	/* room to leave available when reallocating */
+	HiWater	= 640000,	/* max size of history */
+	LoWater	= 400000,	/* min size of history after max'ed */
+	MinWater	= 20000,	/* room to leave available when reallocating */
 };
 
 static	int		topped;

+ 17 - 13
sys/src/cmd/unix/drawterm/keyboard.h

@@ -1,16 +1,20 @@
 enum {
 	KF=	0xF000,	/* Rune: beginning of private Unicode space */
-	Khome=	KF|13,
-	Kup=	KF|14,
-	Kpgup=	KF|15,
-	Kprint=	KF|16,
-	Kleft=	KF|17,
-	Kright=	KF|18,
-	Kdown=	0x80,
-	Kview=	0x80,
-	Kpgdown=	KF|19,
-	Kins=	KF|20,
-	Kdel=	0x7F,
-	Kend=	'\r',	/* [sic] */
-	Kalt=	KF|24
+	Spec=	0xF800,
+	/* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */
+	Khome=	KF|0x0D,
+	Kup=	KF|0x0E,
+	Kpgup=	KF|0x0F,
+	Kprint=	KF|0x10,
+	Kleft=	KF|0x11,
+	Kright=	KF|0x12,
+	Kdown=	Spec|0x00,
+	Kview=	Spec|0x00,
+	Kpgdown=	KF|0x13,
+	Kins=	KF|0x14,
+	Kend=	KF|0x18,
+
+	Kalt=		KF|0x15,
+	Kshift=	KF|0x16,
+	Kctl=		KF|0x17,
 };

+ 1 - 1
sys/src/cmd/unix/drawterm/mkfile-Linux

@@ -11,7 +11,7 @@ LDFLAGS=-g -o drawterm -static
 DEVIP=devip-unix
 DEVFS=devunixfs
 OSFILES=md-iprint.$O canlock-x86-gcc.$O
-LIBS=-lm -L/usr/X11R6/lib -lX11 -lpthread
+LIBS=-lm -L/usr/X11R6/lib -lX11 -lpthread -ldl
 
 ml-%.$O:	$DSRC/libmemlayer/%.c
 	$CC $CFLAGS -o ml-$stem.o $DSRC/libmemlayer/$stem.c

+ 9 - 8
sys/src/cmd/upas/fs/pop3.c

@@ -318,15 +318,16 @@ pop3download(Pop *pop, Message *m)
 			s++;
 			l--;
 		}
+		/*
+		 * grow by 10%/200bytes - some servers
+		 *  lie about message sizes
+		 */
 		if(wp+l > ep) {
-			free(m->start);
-			m->start = nil;
-			for(;;){
-				s = pop3resp(pop);
-				if(strcmp(s, ".") == 0 || strcmp(s, "unexpected eof") == 0)
-					break;
-			}
-			return "message larger than expected";
+			int pos = wp - m->start;
+			sz += ((sz / 10) < 200)? 200: sz/10;
+			m->start = erealloc(m->start, sz+1);
+			wp = m->start+pos;
+			ep = m->start+sz;
 		}
 		memmove(wp, s, l-1);
 		wp[l-1] = '\n';