summaryrefslogtreecommitdiff
path: root/Src/Zle/compresult.c
diff options
context:
space:
mode:
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. */