16494: extract outermost words with negative arguments to %_ and add %^

This commit is contained in:
Oliver Kiddle 2002-01-31 15:13:26 +00:00
parent 149aafd65e
commit 16f1f616f9
2 changed files with 50 additions and 7 deletions

View file

@ -1,5 +1,9 @@
2002-01-31 Oliver Kiddle <opk@zsh.org>
* Derek Peschel: 16494: Src/prompt.c: extract outermost words with
negative arguments to %_ prompt expansion and add %^ for a reverse
ordered status list
* Derek Peschel: 16493: Src/params.c: correct typos
* Derek Peschel: 16492: Src/params.c, Src/input.c, Doc/Zsh/params.yo:

View file

@ -574,15 +574,54 @@ putpromptchar(int doprint, int endchar)
case 'E':
tsetcap(TCCLEAREOL, 1);
break;
case '^':
if (cmdsp) {
if (arg >= 0) {
if (arg > cmdsp || arg == 0)
arg = cmdsp;
for (t0 = cmdsp - 1; arg--; t0--) {
stradd(cmdnames[cmdstack[t0]]);
if (arg) {
addbufspc(1);
*bp++=' ';
}
}
} else {
arg = -arg;
if (arg > cmdsp)
arg = cmdsp;
for (t0 = arg - 1; arg--; t0--) {
stradd(cmdnames[cmdstack[t0]]);
if (arg) {
addbufspc(1);
*bp++=' ';
}
}
}
}
break;
case '_':
if (cmdsp) {
if (arg > cmdsp || arg <= 0)
arg = cmdsp;
for (t0 = cmdsp - arg; arg--; t0++) {
stradd(cmdnames[cmdstack[t0]]);
if (arg) {
addbufspc(1);
*bp++=' ';
if (arg >= 0) {
if (arg > cmdsp || arg == 0)
arg = cmdsp;
for (t0 = cmdsp - arg; arg--; t0++) {
stradd(cmdnames[cmdstack[t0]]);
if (arg) {
addbufspc(1);
*bp++=' ';
}
}
} else {
arg = -arg;
if (arg > cmdsp)
arg = cmdsp;
for (t0 = 0; arg--; t0++) {
stradd(cmdnames[cmdstack[t0]]);
if (arg) {
addbufspc(1);
*bp++=' ';
}
}
}
}