about summary refs log tree commit diff
path: root/Src/Zle/compresult.c
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2000-09-27 19:31:44 +0000
committerClint Adams <clint@users.sourceforge.net>2000-09-27 19:31:44 +0000
commitf42bd3a3f9f018fc5a1a09c2a3175048660ba48f (patch)
tree19d890f77da73f52a6386d92c9f4e0de67cf2371 /Src/Zle/compresult.c
parent74ff6d6dbed67db63cd05fd6e96ee40dc4be6147 (diff)
downloadzsh-f42bd3a3f9f018fc5a1a09c2a3175048660ba48f.tar.gz
zsh-f42bd3a3f9f018fc5a1a09c2a3175048660ba48f.tar.xz
zsh-f42bd3a3f9f018fc5a1a09c2a3175048660ba48f.zip
12863: remove ztrdupstrip, use VARARR in ztat
Diffstat (limited to 'Src/Zle/compresult.c')
-rw-r--r--Src/Zle/compresult.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c
index 92bb2c803..544d4a8a8 100644
--- a/Src/Zle/compresult.c
+++ b/Src/Zle/compresult.c
@@ -732,16 +732,22 @@ mod_export int
 ztat(char *nam, struct stat *buf, int ls)
 {
     int e;
-    char *b;
 
     if (!(ls ? lstat(nam, buf) : stat(nam, buf)))
 	return 0;
-
-    b = ztrdupstrip(nam, '\\');
-
-    e = ls ? lstat(b, buf) : stat(b, buf);
-    zsfree(b);
-    return e;
+    else {
+	char *p;
+	VARARR(char, b, strlen(nam) + 1);
+
+	for (p = b; *nam; nam++)
+	    if (*nam == '\\' && nam[1])
+		*p++ = *++nam;
+	    else
+		*p++ = *nam;
+	*p = '\0';
+	
+	return ls ? lstat(b, buf) : stat(b, buf);
+    }
 }
 
 /* Insert a single match in the command line. */