1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-27 04:40:59 +01:00

20208: ternary path codes in prompt treat / as zero elements

This commit is contained in:
Peter Stephenson 2004-07-29 11:45:53 +00:00
parent 241aa1d40d
commit e1d8ca1d70
3 changed files with 13 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2004-07-29 Peter Stephenson <pws@csr.com>
* 20208: Src/prompt.c, Doc/Zsh/prompt.yo: ternary code character C
etc. treat / as path with zero elements.
2004-07-28 Peter Stephenson <pws@csr.com> 2004-07-28 Peter Stephenson <pws@csr.com>
* 20214: Src/parse.c: fix debugging test that didn't work * 20214: Src/parse.c: fix debugging test that didn't work

View file

@ -217,11 +217,13 @@ sitem(tt(#))(True if the effective uid of the current process is var(n).)
sitem(tt(?))(True if the exit status of the last command was var(n).) sitem(tt(?))(True if the exit status of the last command was var(n).)
sitem(tt(_))(True if at least var(n) shell constructs were started.) sitem(tt(_))(True if at least var(n) shell constructs were started.)
sxitem(tt(C)) sxitem(tt(C))
sitem(tt(/))(True if the current absolute path has at least var(n) elements.) sitem(tt(/))(True if the current absolute path has at least var(n) elements
relative to the root directory, hence tt(/) is counted as 0 elements.)
sxitem(tt(c)) sxitem(tt(c))
sxitem(tt(.)) sxitem(tt(.))
sitem(tt(~))(True if the current path, with prefix replacement, has at sitem(tt(~))(True if the current path, with prefix replacement, has at
least var(n) elements.) least var(n) elements relative to the root directory, hence tt(/) is
counted as 0 elements.)
sitem(tt(D))(True if the month is equal to var(n) (January = 0).) sitem(tt(D))(True if the month is equal to var(n) (January = 0).)
sitem(tt(d))(True if the day of the month is equal to var(n).) sitem(tt(d))(True if the day of the month is equal to var(n).)
sitem(tt(g))(True if the effective gid of the current process is var(n).) sitem(tt(g))(True if the effective gid of the current process is var(n).)

View file

@ -244,9 +244,12 @@ putpromptchar(int doprint, int endchar)
if ((nd = finddir(ss))) { if ((nd = finddir(ss))) {
arg--; arg--;
ss += strlen(nd->dir); ss += strlen(nd->dir);
} } /*FALLTHROUGH*/
case '/': case '/':
case 'C': case 'C':
/* `/' gives 0, `/any' gives 1, etc. */
if (*ss++ == '/' && *ss)
arg--;
for (; *ss; ss++) for (; *ss; ss++)
if (*ss == '/') if (*ss == '/')
arg--; arg--;