Browse Source

Plan 9 from Bell Labs 2005-03-16

David du Colombier 19 years ago
parent
commit
11eb56ce1b

+ 7 - 4
dist/replica/_plan9.db

@@ -223,6 +223,7 @@
 386/bin/ext2srv - 775 sys sys 1108354552 173894
 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 1108008333 112495
 386/bin/fmt - 775 sys sys 1104122009 65301
 386/bin/fortune - 775 sys sys 1104122009 67136
@@ -5378,7 +5379,7 @@ sys/src/9/pc/ether589.c - 664 sys sys 1015014516 4644
 sys/src/9/pc/ether79c970.c - 664 sys sys 1071245466 14094
 sys/src/9/pc/ether8003.c - 664 sys sys 1015014516 6665
 sys/src/9/pc/ether8139.c - 664 sys sys 1086987324 18362
-sys/src/9/pc/ether8169.c - 664 sys sys 1105912215 22703
+sys/src/9/pc/ether8169.c - 664 sys sys 1110882037 22704
 sys/src/9/pc/ether82543gc.c - 664 sys sys 1055689887 32296
 sys/src/9/pc/ether82557.c - 664 sys sys 1098848151 30040
 sys/src/9/pc/ether83815.c - 664 sys sys 1081706477 23479
@@ -7069,7 +7070,7 @@ sys/src/cmd/aux/flashfs/utils.c - 664 sys sys 1019498850 1097
 sys/src/cmd/aux/gps - 20000000775 sys sys 1107448949 0
 sys/src/cmd/aux/gps/dat.h - 664 sys sys 1107448949 287
 sys/src/cmd/aux/gps/gpsevermore.c - 664 sys sys 1107448815 4501
-sys/src/cmd/aux/gps/gpsfs.c - 664 sys sys 1108397331 17433
+sys/src/cmd/aux/gps/gpsfs.c - 664 sys sys 1110882109 17951
 sys/src/cmd/aux/gps/mkfile - 664 sys sys 1108397331 219
 sys/src/cmd/aux/gps/util.c - 664 sys sys 1107448815 2795
 sys/src/cmd/aux/lines.c - 664 sys sys 1015008782 546
@@ -12106,7 +12107,7 @@ sys/src/libmemdraw/ellipse.c - 664 sys sys 1039752933 4866
 sys/src/libmemdraw/fillpoly.c - 664 sys sys 1039752933 9841
 sys/src/libmemdraw/hwdraw.c - 664 sys sys 944961741 147
 sys/src/libmemdraw/iprint.c - 664 sys sys 969511513 112
-sys/src/libmemdraw/line.c - 664 sys sys 1039752934 11041
+sys/src/libmemdraw/line.c - 664 sys sys 1110918933 11040
 sys/src/libmemdraw/load.c - 664 sys sys 944961742 1495
 sys/src/libmemdraw/mkcmap.c - 664 sys sys 1029430944 1394
 sys/src/libmemdraw/mkfile - 664 sys sys 1045502238 593
@@ -12477,4 +12478,6 @@ 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/fcp - 775 sys sys 1110859785 82162
+386/bin/vncs - 775 sys sys 1110946101 470895
+386/bin/aux/gpsfs - 775 sys sys 1110946100 176112
+386/lib/libmemdraw.a - 664 sys sys 1110946101 283198

+ 6 - 6
dist/replica/plan9.db

@@ -102,7 +102,7 @@
 386/bin/aux/g3p9bit - 775 sys sys 1104121976 67278
 386/bin/aux/getflags - 775 sys sys 1104121977 43817
 386/bin/aux/gpsevermore - 775 sys sys 1107490157 71417
-386/bin/aux/gpsfs - 775 sys sys 1108440451 175635
+386/bin/aux/gpsfs - 775 sys sys 1110946100 176112
 386/bin/aux/grabit - 775 sys sys 1020319063 1244
 386/bin/aux/hardcopy - 775 sys sys 1020319063 1699
 386/bin/aux/isvmware - 775 sys sys 1032486791 23997
@@ -493,7 +493,7 @@
 386/bin/venti/verifyarena - 775 sys sys 1104122086 104270
 386/bin/venti/wrarena - 775 sys sys 1104122086 176179
 386/bin/venti/write - 775 sys sys 1104122087 102499
-386/bin/vncs - 775 sys sys 1109132009 470894
+386/bin/vncs - 775 sys sys 1110946101 470895
 386/bin/vncv - 775 sys sys 1109132010 518017
 386/bin/vt - 775 sys sys 1106799182 172859
 386/bin/vtdump - 775 sys sys 1104122090 159451
@@ -550,7 +550,7 @@
 386/lib/libip.a - 664 sys sys 1108268398 35602
 386/lib/libl.a - 664 sys sys 1108268398 5384
 386/lib/libmach.a - 664 sys sys 1108268400 652906
-386/lib/libmemdraw.a - 664 sys sys 1108699740 283188
+386/lib/libmemdraw.a - 664 sys sys 1110946101 283198
 386/lib/libmemlayer.a - 664 sys sys 1108699740 47360
 386/lib/libmp.a - 664 sys sys 1108268401 79532
 386/lib/libndb.a - 664 sys sys 1108268401 60666
@@ -5379,7 +5379,7 @@ sys/src/9/pc/ether589.c - 664 sys sys 1015014516 4644
 sys/src/9/pc/ether79c970.c - 664 sys sys 1071245466 14094
 sys/src/9/pc/ether8003.c - 664 sys sys 1015014516 6665
 sys/src/9/pc/ether8139.c - 664 sys sys 1086987324 18362
-sys/src/9/pc/ether8169.c - 664 sys sys 1105912215 22703
+sys/src/9/pc/ether8169.c - 664 sys sys 1110882037 22704
 sys/src/9/pc/ether82543gc.c - 664 sys sys 1055689887 32296
 sys/src/9/pc/ether82557.c - 664 sys sys 1098848151 30040
 sys/src/9/pc/ether83815.c - 664 sys sys 1081706477 23479
@@ -7070,7 +7070,7 @@ sys/src/cmd/aux/flashfs/utils.c - 664 sys sys 1019498850 1097
 sys/src/cmd/aux/gps - 20000000775 sys sys 1107448949 0
 sys/src/cmd/aux/gps/dat.h - 664 sys sys 1107448949 287
 sys/src/cmd/aux/gps/gpsevermore.c - 664 sys sys 1107448815 4501
-sys/src/cmd/aux/gps/gpsfs.c - 664 sys sys 1108397331 17433
+sys/src/cmd/aux/gps/gpsfs.c - 664 sys sys 1110882109 17951
 sys/src/cmd/aux/gps/mkfile - 664 sys sys 1108397331 219
 sys/src/cmd/aux/gps/util.c - 664 sys sys 1107448815 2795
 sys/src/cmd/aux/lines.c - 664 sys sys 1015008782 546
@@ -12107,7 +12107,7 @@ sys/src/libmemdraw/ellipse.c - 664 sys sys 1039752933 4866
 sys/src/libmemdraw/fillpoly.c - 664 sys sys 1039752933 9841
 sys/src/libmemdraw/hwdraw.c - 664 sys sys 944961741 147
 sys/src/libmemdraw/iprint.c - 664 sys sys 969511513 112
-sys/src/libmemdraw/line.c - 664 sys sys 1039752934 11041
+sys/src/libmemdraw/line.c - 664 sys sys 1110918933 11040
 sys/src/libmemdraw/load.c - 664 sys sys 944961742 1495
 sys/src/libmemdraw/mkcmap.c - 664 sys sys 1029430944 1394
 sys/src/libmemdraw/mkfile - 664 sys sys 1045502238 593

+ 6 - 0
dist/replica/plan9.log

@@ -13918,3 +13918,9 @@
 1110817896 0 c sys/man/1/cp - 664 sys sys 1110816882 1947
 1110817896 1 a sys/src/cmd/fcp.c - 644 sys sys 1110816880 3780
 1110861106 0 a 386/bin/fcp - 775 sys sys 1110859785 82162
+1110882712 0 c sys/src/9/pc/ether8169.c - 664 sys sys 1110882037 22704
+1110882712 1 c sys/src/cmd/aux/gps/gpsfs.c - 664 sys sys 1110882109 17951
+1110920519 0 c sys/src/libmemdraw/line.c - 664 sys sys 1110918933 11040
+1110947407 0 c 386/bin/vncs - 775 sys sys 1110946101 470895
+1110947407 1 c 386/bin/aux/gpsfs - 775 sys sys 1110946100 176112
+1110947407 2 c 386/lib/libmemdraw.a - 664 sys sys 1110946101 283198

+ 1 - 1
sys/src/9/pc/ether8169.c

@@ -260,7 +260,7 @@ typedef struct Ctlr {
 	int	rdt;			/* tail - consumer index (host) */
 	int	nrdfree;
 
-	int	tcr;			/* receive configuration register */
+	int	tcr;			/* transmit configuration register */
 	int	rcr;			/* receive configuration register */
 
 	QLock	slock;			/* statistics */

+ 65 - 21
sys/src/cmd/aux/gps/gpsfs.c

@@ -255,6 +255,7 @@ gpstrack(void *)
 	static char buf[256], *t[32];
 	int n, i, k, tp;
 	vlong localtime;
+	double d;
 
 	setline();
 	fix.messages = 0;
@@ -312,8 +313,11 @@ gpstrack(void *)
 				break;
 			if(isdigit(*t[7]))
 				fix.satellites = strtol(t[7], nil, 10);
-			if(isdigit(*t[8]))
-				fix.hdop = strtod(t[8], nil);
+			if(isdigit(*t[8])){
+				d = strtod(t[8], nil);
+				if(!isNaN(d))
+					fix.hdop = d;
+			}
 			getalt(t[9], t[10], &fix);
 			getsea(t[11], t[12], &fix);
 			fix.localtime = localtime;
@@ -339,9 +343,21 @@ gpstrack(void *)
 			fix.messages |= 1 << tp;
 			break;
 		case GPGSA:
-			if(*t[15]) fix.pdop = strtod(t[15], nil);
-			if(*t[16]) fix.hdop = strtod(t[16], nil);
-			if(*t[17]) fix.vdop = strtod(t[17], nil);
+			if(*t[15]){
+				d = strtod(t[15], nil);
+				if(!isNaN(d))
+					fix.pdop = d;
+			}
+			if(*t[16]){
+				d = strtod(t[16], nil);
+				if(!isNaN(d))
+					fix.hdop = d;
+			}
+			if(*t[17]){
+				d = strtod(t[17], nil);
+				if(!isNaN(d))
+					fix.vdop = d;
+			}
 			fix.messages |= 1 << tp;
 			break;
 		case GPGLL:
@@ -623,9 +639,13 @@ gettime(Fix *f){
 
 int
 getzulu(char *s, Fix *f){
+	double d;
+
 	if(*s == '\0') return 0;
 	if(isdigit(*s)){
-		f->zulu = strtod(s, nil);
+		d = strtod(s, nil);
+		if(!isNaN(d))
+			f->zulu = d;
 		return 1;
 	}
 	return 0;
@@ -642,22 +662,28 @@ getdate(char *s, Fix *f){
 }
 
 int
-getgs(char *s1, Fix *f){
+getgs(char *s, Fix *f){
+	double d;
 
-	if(*s1 == 0) return 0;
-	if(isdigit(*s1)){
-		f->groundspeed = strtod(s1, nil);
+	if(*s == 0) return 0;
+	if(isdigit(*s)){
+		d = strtod(s, nil);
+		if(!isNaN(d))
+			f->groundspeed = d;
 		return 1;
 	}
 	return 0;
 }
 
 int
-getkmh(char *s1, Fix *f){
+getkmh(char *s, Fix *f){
+	double d;
 
-	if(*s1 == 0) return 0;
-	if(isdigit(*s1)){
-		f->kmh = strtod(s1, nil);
+	if(*s == 0) return 0;
+	if(isdigit(*s)){
+		d = strtod(s, nil);
+		if(!isNaN(d))
+			f->kmh = d;
 		return 1;
 	}
 	return 0;
@@ -665,10 +691,13 @@ getkmh(char *s1, Fix *f){
 
 int
 getcrs(char *s1, Fix *f){
+	double d;
 
 	if(*s1 == 0) return 0;
 	if(isdigit(*s1)){
-		f->course = strtod(s1, nil);
+		d = strtod(s1, nil);
+		if(!isNaN(d))
+			f->course = d;
 		return 1;
 	}
 	return 0;
@@ -676,10 +705,13 @@ getcrs(char *s1, Fix *f){
 
 int
 gethdg(char *s1, Fix *f){
+	double d;
 
 	if(*s1 == 0) return 0;
 	if(isdigit(*s1)){
-		f->heading = strtod(s1, nil);
+		d = strtod(s1, nil);
+		if(!isNaN(d))
+			f->heading = d;
 		return 1;
 	}
 	return 0;
@@ -692,7 +724,7 @@ getalt(char *s1, char *s2, Fix *f){
 	if(*s1 == 0) return 0;
 	if(isdigit(*s1)){
 		alt = strtod(s1, nil);
-		if(*s2 == 'M'){
+		if(*s2 == 'M' && !isNaN(alt)){
 			f->altitude = alt;
 			return 1;
 		}
@@ -727,6 +759,10 @@ getlat(char *s1, char *s2, Fix *f){
 		return -1;
 	}
 	lat = strtod(s1+2, nil);
+	if(isNaN(lat)){
+		badlat++;
+		return -1;
+	}
 	lat /= 60.0;
 	lat += 10*(s1[0] - '0') + s1[1] - '0';
 	if(lat < 0 || lat > 90.0){
@@ -762,8 +798,13 @@ getlon(char *s1, char *s2, Fix *f){
 		badlon++;
 		return -1;
 	}
-	lon = 100*(s1[0] - '0') + 10*(s1[1] - '0') + s1[2] - '0' +
-		strtod(s1+3, nil)/60.0;
+	lon = strtod(s1+3, nil);
+	if(isNaN(lon)){
+		badlon++;
+		return -1;
+	}
+	lon /= 60.0;
+	lon += 100*(s1[0] - '0') + 10*(s1[1] - '0') + s1[2] - '0';
 	if(lon < 0 || lon > 180.0){
 		badlon++;
 		return -1;
@@ -794,8 +835,11 @@ getmagvar(char *s1, char *s2, Fix *f){
 
 	if(*s1 == 0) return 0;
 	if(isdigit(*s1) && strlen(s1) > 5){
-		magvar = 100*(s1[0] - '0') + 10*(s1[1] - '0') + s1[2] - '0' +
-			strtod(s1+3, nil)/60.0;
+		magvar = strtod(s1+3, nil);
+		if(isNaN(magvar))
+			return 0;
+		magvar /= 60.0;
+		magvar += 100*(s1[0] - '0') + 10*(s1[1] - '0') + s1[2] - '0';
 		if(*s2 == 'W'){
 			f->magvar = -magvar;
 			return 1;

+ 1 - 1
sys/src/libmemdraw/line.c

@@ -420,7 +420,7 @@ _memimageline(Memimage *dst, Point p0, Point p1, int end0, int end1, int radius,
 		break;
 	case Endarrow:
 		arrowend(q, pp, end1, sin, cos, radius);
-		_memfillpolysc(dst, pp, 5, ~0, src, addpt(pts[0], mulpt(d, ICOSSCALE)), 1, 10, 1, op);
+		_memfillpolysc(dst, pp, 5, ~0, src, addpt(pp[0], mulpt(d, ICOSSCALE)), 1, 10, 1, op);
 		pp[1] = pp[4];
 		pp += 2;
 	}