Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: whence - PATH_MAX
- X-seq: zsh-workers 12847
 
- From: Clint Adams <schizo@xxxxxxxxxx>
 
- To: zsh-workers@xxxxxxxxxxxxxx
 
- Subject: PATCH: whence - PATH_MAX
 
- Date: Tue, 19 Sep 2000 12:19:18 -0400
 
- In-reply-to: <20000919112345.A21076@xxxxxxxx>; from schizo@xxxxxxxxxx on Tue, Sep 19, 2000 at 11:23:45AM -0400
 
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
 
- References: <20000917235109.A6793@xxxxxxxx> <20000918000915.B6793@xxxxxxxx> <1000918063956.ZM24783@xxxxxxxxxxxxxxxxxxxxxxx> <20000918132142.B11367@xxxxxxxx> <1000919031819.ZM30176@xxxxxxxxxxxxxxxxxxxxxxx> <20000919112345.A21076@xxxxxxxx>
 
This removes direct dependency on PATH_MAX from Src/builtin.c.
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.35
diff -u -r1.35 builtin.c
--- Src/builtin.c	2000/09/18 03:31:32	1.35
+++ Src/builtin.c	2000/09/19 16:15:11
@@ -2390,17 +2390,14 @@
 	/* Option -a is to search the entire path, *
 	 * rather than just looking for one match. */
 	if (all) {
-	    char **pp, buf[PATH_MAX], *z;
+	    char **pp, *buf, *z;
 
+	    pushheap();
 	    for (pp = path; *pp; pp++) {
-		z = buf;
 		if (**pp) {
-		    strucpy(&z, *pp);
-		    *z++ = '/';
-		}
-		if ((z - buf) + strlen(*argv) >= PATH_MAX)
-		    continue;
-		strcpy(z, *argv);
+		    z = dyncat(*pp, "/");
+		} else z = NULL;
+		buf = dyncat(z, *argv);
 		if (iscom(buf)) {
 		    if (wd) {
 			printf("%s: command\n", *argv);
@@ -2420,6 +2417,7 @@
 		puts(wd ? ": none" : " not found");
 		returnval = 1;
 	    }
+	    popheap();
 	} else if ((cnam = findcmd(*argv, 1))) {
 	    /* Found external command. */
 	    if (wd) {
Messages sorted by:
Reverse Date,
Date,
Thread,
Author