diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-05-06 07:50:15 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-05-06 07:50:15 -0700 |
commit | b7df6166743d26c3020a6a3fcd5e55cda3f5a460 (patch) | |
tree | a362f361eabd1a1831fbefb3c7d568e34b7cf34c /pw.c | |
parent | e6e96524970a0dd6d27e983a6b5b9e0b2453caab (diff) | |
download | pw-b7df6166743d26c3020a6a3fcd5e55cda3f5a460.tar.gz pw-b7df6166743d26c3020a6a3fcd5e55cda3f5a460.tar.bz2 pw-b7df6166743d26c3020a6a3fcd5e55cda3f5a460.zip |
The [ ], < > commands take count.
Diffstat (limited to 'pw.c')
-rw-r--r-- | pw.c | 42 |
1 files changed, 21 insertions, 21 deletions
@@ -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; |