Browse Source

Plan 9 from Bell Labs 2007-03-18

David du Colombier 17 years ago
parent
commit
e229bf5799
4 changed files with 26 additions and 17 deletions
  1. 3 3
      dist/replica/_plan9.db
  2. 3 3
      dist/replica/plan9.db
  3. 3 0
      dist/replica/plan9.log
  4. 17 11
      sys/src/cmd/upas/filterkit/list.c

+ 3 - 3
dist/replica/_plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1171784718 220040
-386/9loaddebug - 775 sys sys 1171917619 316230
+386/9loaddebug - 775 sys sys 1174186577 401944
 386/9loadlite - 775 sys sys 1171784720 137116
-386/9loadlitedebug - 775 sys sys 1171917620 202506
+386/9loadlitedebug - 775 sys sys 1174186577 202506
 386/9pc - 775 sys sys 1161230890 1924142
 386/9pc.gz - 664 sys sys 1161232307 821176
 386/9pccpu - 775 sys sys 1161230955 1636008
@@ -14012,7 +14012,7 @@ sys/src/cmd/upas/common/sys.h - 664 sys sys 1055699577 2223
 sys/src/cmd/upas/filterkit - 20000000775 sys sys 1063854806 0
 sys/src/cmd/upas/filterkit/dat.h - 664 sys sys 1018549520 107
 sys/src/cmd/upas/filterkit/deliver.c - 664 sys sys 1135083942 1070
-sys/src/cmd/upas/filterkit/list.c - 664 sys sys 1135083949 4754
+sys/src/cmd/upas/filterkit/list.c - 664 sys sys 1174155504 4945
 sys/src/cmd/upas/filterkit/mkfile - 664 sys sys 1048645255 264
 sys/src/cmd/upas/filterkit/pipefrom.sample - 775 sys sys 1041184939 380
 sys/src/cmd/upas/filterkit/pipeto.sample - 664 sys sys 1045505695 1765

+ 3 - 3
dist/replica/plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1171784718 220040
-386/9loaddebug - 775 sys sys 1171917619 316230
+386/9loaddebug - 775 sys sys 1174186577 401944
 386/9loadlite - 775 sys sys 1171784720 137116
-386/9loadlitedebug - 775 sys sys 1171917620 202506
+386/9loadlitedebug - 775 sys sys 1174186577 202506
 386/9pc - 775 sys sys 1161230890 1924142
 386/9pc.gz - 664 sys sys 1161232307 821176
 386/9pccpu - 775 sys sys 1161230955 1636008
@@ -14012,7 +14012,7 @@ sys/src/cmd/upas/common/sys.h - 664 sys sys 1055699577 2223
 sys/src/cmd/upas/filterkit - 20000000775 sys sys 1063854806 0
 sys/src/cmd/upas/filterkit/dat.h - 664 sys sys 1018549520 107
 sys/src/cmd/upas/filterkit/deliver.c - 664 sys sys 1135083942 1070
-sys/src/cmd/upas/filterkit/list.c - 664 sys sys 1135083949 4754
+sys/src/cmd/upas/filterkit/list.c - 664 sys sys 1174155504 4945
 sys/src/cmd/upas/filterkit/mkfile - 664 sys sys 1048645255 264
 sys/src/cmd/upas/filterkit/pipefrom.sample - 775 sys sys 1041184939 380
 sys/src/cmd/upas/filterkit/pipeto.sample - 664 sys sys 1045505695 1765

+ 3 - 0
dist/replica/plan9.log

@@ -47893,3 +47893,6 @@
 1174080606 1 a sys/src/boot/pc/etherga620fw.h - 664 sys sys 1174080072 222295
 1174082406 0 c sys/src/fs/dev/juke.c - 664 sys sys 1174081264 22925
 1174082406 1 c sys/src/fs/port/devsd.c - 664 sys sys 1174081262 15110
+1174156206 0 c sys/src/cmd/upas/filterkit/list.c - 664 sys sys 1174155504 4945
+1174186806 0 c 386/9loaddebug - 775 sys sys 1174186577 401944
+1174186806 1 c 386/9loadlitedebug - 775 sys sys 1174186577 202506

+ 17 - 11
sys/src/cmd/upas/filterkit/list.c

@@ -55,7 +55,7 @@ mklower(char *p)
 static String*
 simplify(char *addr)
 {
-	int dots;
+	int dots, dotlim;
 	char *p, *at;
 	String *s;
 
@@ -68,7 +68,7 @@ simplify(char *addr)
 		return s;
 	}
 
-	/* copy up to the '@' sign */
+	/* copy up to, and including, the '@' sign */
 	at++;
 	s = s_copy("~");
 	for(p = addr; p < at; p++){
@@ -77,20 +77,26 @@ simplify(char *addr)
 		s_putc(s, *p);
 	}
 
-	/* just any address matching the two most significant domain elements */
+	/*
+	 * just any address matching the two most significant domain elements,
+	 * except for .uk, which needs three.
+	 */
 	s_append(s, "(.*\\.)?");
-	p = addr+strlen(addr);
+	p = addr+strlen(addr);			/* point at NUL */
+	if (p[-1] == '.')
+		*--p = '\0';
+	if (p - addr > 3 && strcmp(".uk", p - 3) == 0)
+		dotlim = 3;
+	else
+		dotlim = 2;
 	dots = 0;
-	for(; p > at; p--){
-		if(*p != '.')
-			continue;
-		if(dots++ > 0){
+	while(--p > at)
+		if(*p == '.' && ++dots >= dotlim){
 			p++;
 			break;
 		}
-	}
 	for(; *p; p++){
-		if(strchr(".*+?(|)\\[]^$", *p) != 0)
+		if(strchr(".*+?(|)\\[]^$", *p) != nil)
 			s_putc(s, '\\');
 		s_putc(s, *p);
 	}
@@ -285,7 +291,7 @@ add(char *pp, int argc, char **argv)
 		s_free(s);
 	}
 	close(fd);
-	return nil;	
+	return nil;
 }
 
 void