Browse Source

Plan 9 from Bell Labs 2003-12-22

David du Colombier 20 years ago
parent
commit
cd2af15b99
3 changed files with 10 additions and 51 deletions
  1. 1 1
      dist/replica/plan9.db
  2. 1 0
      dist/replica/plan9.log
  3. 8 50
      sys/src/cmd/acme/look.c

+ 1 - 1
dist/replica/plan9.db

@@ -6782,7 +6782,7 @@ sys/src/cmd/acme/exec.c - 664 sys sys 1067723165 27057
 sys/src/cmd/acme/file.c - 664 sys sys 1044626079 5717
 sys/src/cmd/acme/fns.h - 664 sys sys 1067723164 2922
 sys/src/cmd/acme/fsys.c - 664 sys sys 1022512648 12727
-sys/src/cmd/acme/look.c - 664 sys sys 1041137125 14840
+sys/src/cmd/acme/look.c - 664 sys sys 1072019591 14096
 sys/src/cmd/acme/mkfile - 664 sys sys 1058463682 543
 sys/src/cmd/acme/regx.c - 664 sys sys 1014926094 16057
 sys/src/cmd/acme/rows.c - 664 sys sys 1068140772 14637

+ 1 - 0
dist/replica/plan9.log

@@ -13168,3 +13168,4 @@
 1071874914 2 c sys/src/cmd/init.c - 664 sys sys 1071873627 4452
 1071885716 0 a sys/src/cmd/rc/compiling.on.unix - 664 sys sys 1071884773 37638
 1071927122 0 c sys/lib/mimetype - 664 sys sys 1071926670 5633
+1072020615 0 c sys/src/cmd/acme/look.c - 664 sys sys 1072019591 14096

+ 8 - 50
sys/src/cmd/acme/look.c

@@ -322,56 +322,14 @@ isfilec(Rune r)
 Runestr
 cleanrname(Runestr rs)
 {
-	int i, j, found;
-	Rune *b;
-	int n;
-
-	b = rs.r;
-	n = rs.nr;
-
-	/* compress multiple slashes */
-	for(i=0; i<n-1; i++)
-		if(b[i]=='/' && b[i+1]=='/'){
-			runemove(b+i, b+i+1, n-i-1);
-			--n;
-			--i;
-		}
-	/*  eliminate ./ */
-	for(i=0; i<n-1; i++)
-		if(b[i]=='.' && b[i+1]=='/' && (i==0 || b[i-1]=='/')){
-			runemove(b+i, b+i+2, n-i-2);
-			n -= 2;
-			--i;
-		}
-	/* eliminate trailing . */
-	if(n>=2 && b[n-2]=='/' && b[n-1]=='.')
-		--n;
-	do{
-		/* compress xx/.. */
-		found = FALSE;
-		for(i=1; i<=n-3; i++)
-			if(runeeq(b+i, 3, L"/..", 3)){
-				if(i==n-3 || b[i+3]=='/'){
-					found = TRUE;
-					break;
-				}
-			}
-		if(found)
-			for(j=i-1; j>=0; --j)
-				if(j==0 || b[j-1]=='/'){
-					i += 3;		/* character beyond .. */
-					if(i<n && b[i]=='/')
-						++i;
-					runemove(b+j, b+i, n-i);
-					n -= (i-j);
-					break;
-				}
-	}while(found);
-	if(n == 0){
-		*b = '.';
-		n = 1;
-	}
-	return (Runestr){b, n};
+	char *s;
+	int nb, nulls;
+
+	s = runetobyte(rs.r, rs.nr);
+	cleanname(s);
+	cvttorunes(s, strlen(s), rs.r, &nb, &rs.nr, &nulls);
+	free(s);
+	return rs;
 }
 
 Runestr