diff options
author | Oliver Kiddle <opk@zsh.org> | 2016-06-29 17:05:06 +0200 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2016-06-29 17:05:06 +0200 |
commit | a73ae70e8217d7163aecdbdad4d8af08eced8a55 (patch) | |
tree | ada747729a411bc50f38d410f447efcac1dfd4c9 /Src/Zle/zle_vi.c | |
parent | 5ea32ce2fcd527e9b6e6991c007d296afc5aa44d (diff) | |
download | zsh-a73ae70e8217d7163aecdbdad4d8af08eced8a55.tar.gz zsh-a73ae70e8217d7163aecdbdad4d8af08eced8a55.tar.xz zsh-a73ae70e8217d7163aecdbdad4d8af08eced8a55.zip |
38770: vi upper/lowercase widgets and shell widget example that reads a vi movement
Diffstat (limited to 'Src/Zle/zle_vi.c')
-rw-r--r-- | Src/Zle/zle_vi.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Src/Zle/zle_vi.c b/Src/Zle/zle_vi.c index 953af2401..baa2064e9 100644 --- a/Src/Zle/zle_vi.c +++ b/Src/Zle/zle_vi.c @@ -731,6 +731,52 @@ vioperswapcase(UNUSED(char **args)) /**/ int +viupcase(UNUSED(char **args)) +{ + int oldcs, c2, ret = 1; + + /* get the range */ + startvichange(1); + if ((c2 = getvirange(0)) != -1) { + oldcs = zlecs; + /* covert the case of all letters within range */ + while (zlecs < c2) { + zleline[zlecs] = ZC_toupper(zleline[zlecs]); + INCCS(); + } + /* go back to the first line of the range */ + zlecs = oldcs; + ret = 0; + } + vichgflag = 0; + return ret; +} + +/**/ +int +vidowncase(UNUSED(char **args)) +{ + int oldcs, c2, ret = 1; + + /* get the range */ + startvichange(1); + if ((c2 = getvirange(0)) != -1) { + oldcs = zlecs; + /* convert the case of all letters within range */ + while (zlecs < c2) { + zleline[zlecs] = ZC_tolower(zleline[zlecs]); + INCCS(); + } + /* go back to the first line of the range */ + zlecs = oldcs; + ret = 0; + } + vichgflag = 0; + return ret; +} + +/**/ +int virepeatchange(UNUSED(char **args)) { /* make sure we have a change to repeat */ |