aboutsummaryrefslogtreecommitdiffstats
path: root/pw.c
diff options
context:
space:
mode:
Diffstat (limited to 'pw.c')
-rw-r--r--pw.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/pw.c b/pw.c
index 6e7682e..390976b 100644
--- a/pw.c
+++ b/pw.c
@@ -1206,33 +1206,33 @@ int main(int argc, char **argv)
pw.stat |= stat_force;
break;
case '>':
- if ((int) pw.vsplit1 < pw.columns - 2) {
- pw.vsplit1++;
- if (pw.vsplit2 &&
- (int) (pw.vsplit1 + pw.vsplit2) >= pw.columns - 2)
- pw.vsplit2--;
- pw.stat |= stat_force;
- }
+ if (cmdcount == UINT_MAX)
+ cmdcount = 1;
+ pw.vsplit1 += cmdcount;
+ pw.vsplit1 = min(pw.vsplit1, pw.columns - 2);
+ pw.vsplit2 = min(pw.vsplit2, pw.columns - 2 - pw.vsplit1);
+ pw.stat |= stat_force;
break;
case '<':
- if (pw.vsplit1 > 0) {
- pw.vsplit1--;
- pw.stat |= stat_force;
- }
+ if (cmdcount == UINT_MAX)
+ cmdcount = 1;
+ pw.vsplit1 = max(0, pw.vsplit1 - (int) cmdcount);
+ pw.stat |= stat_force;
break;
case ']':
- if ((int) (pw.vsplit1 + pw.vsplit2) < pw.columns - 2) {
- if (pw.vsplit2 == 0)
- pw.vs2pos = pw.hpos + pw.vsplit1;
- pw.vsplit2++;
- pw.stat |= stat_force;
- }
+ if (cmdcount == UINT_MAX)
+ cmdcount = 1;
+ if (pw.vsplit2 == 0)
+ pw.vs2pos = pw.hpos + pw.vsplit1;
+ pw.vsplit2 += cmdcount;
+ pw.vsplit2 = min(pw.vsplit2, pw.columns - 2 - pw.vsplit1);
+ pw.stat |= stat_force;
break;
case '[':
- if (pw.vsplit2 > 0) {
- pw.vsplit2--;
- pw.stat |= stat_force;
- }
+ if (cmdcount == UINT_MAX)
+ cmdcount = 1;
+ pw.vsplit2 = max(0, pw.vsplit2 - (int) cmdcount);
+ pw.stat |= stat_force;
break;
case ctrl('i'):
pw.stat ^= stat_hlite;