about summary refs log tree commit diff
path: root/Src/Zle/complist.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/complist.c')
-rw-r--r--Src/Zle/complist.c36
1 files changed, 10 insertions, 26 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index e38ffe33b..0278f5c44 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -1199,7 +1199,7 @@ compprintlist(int showall)
 			    mfirstl = ml;
 			if (dolist(ml))
 			    printed++;
-			if (clprintm(g, p, 0, ml, 1, 0, NULL, NULL))
+			if (clprintm(g, p, 0, ml, 1, 0))
 			    goto end;
 			ml += mlprinted;
 			if (dolistcl(ml) && (cl -= mlprinted) <= 1) {
@@ -1250,26 +1250,12 @@ compprintlist(int showall)
 		while (n && i--) {
 		    wid = (g->widths ? g->widths[mc] : g->width);
 		    if (!(m = *q)) {
-			if (clprintm(g, NULL, mc, ml, (!i), wid, NULL, NULL))
+			if (clprintm(g, NULL, mc, ml, (!i), wid))
 			    goto end;
 			break;
 		    }
-		    if (!m->disp && (m->flags & CMF_FILE) &&
-			m->str[0] && m->str[strlen(m->str) - 1] != '/') {
-			struct stat buf;
-			char *pb;
-
-			pb = (char *) zhalloc((m->prpre ? strlen(m->prpre) : 0) +
-					     3 + strlen(m->str));
-			sprintf(pb, "%s%s", (m->prpre ? m->prpre : "./"),
-				m->str);
-
-			if (ztat(pb, &buf, 1) ?
-			    clprintm(g, q, mc, ml, (!i), wid, NULL, NULL) :
-			    clprintm(g, q, mc, ml, (!i), wid, pb, &buf))
-			    goto end;
-		    } else if (clprintm(g, q, mc, ml, (!i), wid, NULL, NULL))
-			goto end;
+                    if (clprintm(g, q, mc, ml, (!i), wid))
+                        goto end;
 
 		    if (dolist(ml))
 			printed++;
@@ -1290,8 +1276,7 @@ compprintlist(int showall)
 		}
 		while (i-- > 0) {
 		    if (clprintm(g, NULL, mc, ml, (!i),
-				 (g->widths ? g->widths[mc] : g->width),
-				 NULL, NULL))
+				 (g->widths ? g->widths[mc] : g->width)))
 			goto end;
 		    mc++;
 		}
@@ -1366,8 +1351,7 @@ compprintlist(int showall)
 
 /**/
 static int
-clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width,
-	 char *path, struct stat *buf)
+clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width)
 {
     Cmatch m;
     int len, subcols = 0, stop = 0, ret = 0;
@@ -1467,8 +1451,8 @@ clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width,
 	    zcputs(&mcolors, g->name, COL_HI);
 	else if (mselect >= 0 && (m->flags & (CMF_MULT | CMF_FMULT)))
 	    zcputs(&mcolors, g->name, COL_DU);
-	else if (buf)
-	    subcols = putfilecol(&mcolors, g->name, m->str, buf->st_mode);
+	else if (m->mode)
+	    subcols = putfilecol(&mcolors, g->name, m->str, m->mode);
 	else
 	    subcols = putmatchcol(&mcolors, g->name, (m->disp ? m->disp : m->str));
 
@@ -1483,12 +1467,12 @@ clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width,
 	len = niceztrlen(m->disp ? m->disp : m->str);
 	mlprinted = len / columns;
 
-	if ((g->flags & CGF_FILES) && buf) {
+	if ((g->flags & CGF_FILES) && m->modec) {
 	    if (m->gnum != mselect) {
 		zcoff();
 		zcputs(&mcolors, g->name, COL_TC);
 	    }
-	    putc(file_type(buf->st_mode), shout);
+	    putc(m->modec, shout);
 	    len++;
         }
 	if ((len = width - len - 2) > 0) {