diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-05-04 18:30:02 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-05-04 18:30:02 +0000 |
commit | 1424e923b1676b04249d1a853f4360b8956fe9e9 (patch) | |
tree | dcce54397812f3de8cc781a71dfada00264b8622 /Src/Zle/zle_misc.c | |
parent | a9ad660bd39cc2cf07ce4ada2af08fb1ded4f7ac (diff) | |
download | zsh-1424e923b1676b04249d1a853f4360b8956fe9e9.tar.gz zsh-1424e923b1676b04249d1a853f4360b8956fe9e9.tar.xz zsh-1424e923b1676b04249d1a853f4360b8956fe9e9.zip |
24915: some more fix-ups for combining characters
Diffstat (limited to 'Src/Zle/zle_misc.c')
-rw-r--r-- | Src/Zle/zle_misc.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c index 8379b2333..a6f7e803b 100644 --- a/Src/Zle/zle_misc.c +++ b/Src/Zle/zle_misc.c @@ -801,10 +801,20 @@ copyprevword(UNUSED(char **args)) for (;;) { t1 = t0; - while (t0 && !ZC_iword(zleline[t0-1])) - t0--; - while (t0 && ZC_iword(zleline[t0-1])) - t0--; + while (t0) { + int prev = t0; + DECPOS(prev); + if (ZC_iword(zleline[prev])) + break; + t0 = prev; + } + while (t0) { + int prev = t0; + DECPOS(prev); + if (!ZC_iword(zleline[prev])) + break; + t0 = prev; + } if (!--count) break; |