aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
authorStephen Paul Weber <singpolyma@singpolyma.net>2014-10-19 12:24:38 +0200
committerMarc André Tanner <mat@brain-dump.org>2014-10-19 12:30:55 +0200
commitb37f9e461798ba77e19ab20d7ca18555d1171e19 (patch)
tree21f6f03638c63c8be091a1ae5049bf804d998367 /vis.c
parente036fb2faf73a590b5c119160e3fabd8844ff44c (diff)
downloadvis-b37f9e461798ba77e19ab20d7ca18555d1171e19.tar.gz
vis-b37f9e461798ba77e19ab20d7ca18555d1171e19.tar.xz
Toggle case operator
In vim, :set tildeop to get this behaviour
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/vis.c b/vis.c
index c8531e4..f82ab89 100644
--- a/vis.c
+++ b/vis.c
@@ -616,7 +616,11 @@ static void op_case_change(OperatorContext *c) {
size_t rem = len;
for (char *cur = buf; rem > 0; cur++, rem--) {
if (isascii((unsigned char)*cur)) {
- if (c->arg->i > 0)
+ if (c->arg->i == 0) {
+ *cur = islower((unsigned char)*cur) ?
+ toupper((unsigned char)*cur) :
+ tolower((unsigned char)*cur) ;
+ } else if (c->arg->i > 0)
*cur = toupper((unsigned char)*cur);
else
*cur = tolower((unsigned char)*cur);