From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6609 invoked from network); 31 Dec 1996 12:44:57 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by coral.primenet.com.au with SMTP; 31 Dec 1996 12:44:57 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id HAA06236; Tue, 31 Dec 1996 07:49:00 -0500 (EST) Resent-Date: Tue, 31 Dec 1996 07:49:00 -0500 (EST) From: Zefram Message-Id: <29297.199612311250@stone.dcs.warwick.ac.uk> Subject: Re: Long directories in prompt To: zsh-workers@math.gatech.edu (Z Shell workers mailing list) Date: Tue, 31 Dec 1996 12:50:10 +0000 (GMT) X-Patch: 169 X-Loop: zefram@dcs.warwick.ac.uk X-Stardate: [-31]8657.67 X-US-Congress: Moronic fuckers Content-Type: text Resent-Message-ID: <"EOKkY1.0.MX1.ykGoo"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/2687 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- Zoltan's fix broke prompt truncation. -zefram *** Src/prompt.c 1996/12/30 14:14:18 1.2 --- Src/prompt.c 1996/12/30 14:47:46 *************** *** 293,301 **** switch (*fm) { case '~': if ((nd = finddir(pwd))) { ! stradd("~"); ! stradd(nd->nam); ! stradd(pwd + strlen(nd->dir)); break; } case 'd': --- 293,301 ---- switch (*fm) { case '~': if ((nd = finddir(pwd))) { ! char *t = tricat("~", nd->nam, pwd + strlen(nd->dir)); ! stradd(t); ! zsfree(t); break; } case 'd': *************** *** 308,316 **** char *t; if ((nd = finddir(pwd))) ! t = pwd + strlen(nd->dir); else ! t = pwd; if (!arg) arg++; for (ss = t + strlen(t); ss > t; ss--) --- 308,316 ---- char *t; if ((nd = finddir(pwd))) ! t = tricat("~", nd->nam, pwd + strlen(nd->dir)); else ! t = ztrdup(pwd); if (!arg) arg++; for (ss = t + strlen(t); ss > t; ss--) *************** *** 318,329 **** ss++; break; } ! if (nd && ss == t && (*ss != '/' || arg > 1)) { ! stradd("~"); ! stradd(nd->nam); ! } else if (*ss == '/' && ss[1] && (ss != pwd)) ss++; stradd(ss); break; } case 'C': --- 318,327 ---- ss++; break; } ! if(*ss == '/' && ss[1] && ss != t) ss++; stradd(ss); + zsfree(t); break; } case 'C': -----BEGIN PGP SIGNATURE----- Version: 2.6.2 iQCVAwUBMsfXbnD/+HJTpU/hAQHrdAP+OoJD1x42fqkg47HY1/NjEqbXDsIlpqo/ pVAim1JjUdG70FHBNpMU5+k+r3raC9mki3Tqthj3/taVf95rkpOubLzEEx+4RocG TSSe/UVnqTHxJdSR62UM63EciL+sximv04EUh0erLz0jJQzQoAwc8sl9uehe9s0W t3j1JOjaWoQ= =2/CR -----END PGP SIGNATURE-----