tvi: clean up motion commands in empty buffers - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit c7b521883bfdca0555a45ddf6e2dcb4b1ca3966a
(DIR) parent ba8b939c9468cb119218cf20df963e1cd59fdd44
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Thu, 13 Oct 2016 10:18:33 +0330
vi: clean up motion commands in empty buffers
Diffstat:
M vi.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/vi.c b/vi.c
t@@ -338,26 +338,17 @@ static int vi_motionln(int *row, int cmd)
*row = (vi_arg1 || vi_arg2) ? cnt - 1 : lbuf_len(xb) - 1;
break;
case 'H':
- if (lbuf_len(xb))
- *row = MIN(xtop + cnt - 1, lbuf_len(xb) - 1);
- else
- *row = 0;
+ *row = MIN(xtop + cnt - 1, lbuf_len(xb) - 1);
break;
case 'L':
- if (lbuf_len(xb))
- *row = MIN(xtop + xrows - 1 - cnt + 1, lbuf_len(xb) - 1);
- else
- *row = 0;
+ *row = MIN(xtop + xrows - 1 - cnt + 1, lbuf_len(xb) - 1);
break;
case 'M':
- if (lbuf_len(xb))
- *row = MIN(xtop + xrows / 2, lbuf_len(xb) - 1);
- else
- *row = 0;
+ *row = MIN(xtop + xrows / 2, lbuf_len(xb) - 1);
break;
default:
if (c == cmd) {
- *row = MAX(0, MIN(*row + cnt - 1, lbuf_len(xb) - 1));
+ *row = MIN(*row + cnt - 1, lbuf_len(xb) - 1);
break;
}
if (c == '%' && (vi_arg1 || vi_arg2)) {
t@@ -369,6 +360,8 @@ static int vi_motionln(int *row, int cmd)
vi_back(c);
return 0;
}
+ if (*row < 0)
+ *row = 0;
return c;
}