commit 7ffa4f824373d35bfe780f9d9d50a6e8f83071d3
parent 40532b52979509bb1bb5332e8f9bd9bb6e15dc72
Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Mon, 18 May 2015 07:08:21 +0430
vi: ignore find character commands if interrupted
Diffstat:
M | vi.c | | | 42 | ++++++++++++++++++++++++------------------ |
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/vi.c b/vi.c
@@ -429,24 +429,28 @@ static int vi_motion(int *row, int *col)
break;
break;
case 'f':
- if ((cs = vi_char()))
- if (lbuf_findchar(xb, row, col, cs, mv, cnt))
- return -1;
+ if (!(cs = vi_char()))
+ return -1;
+ if (lbuf_findchar(xb, row, col, cs, mv, cnt))
+ return -1;
break;
case 'F':
- if ((cs = vi_char()))
- if (lbuf_findchar(xb, row, col, cs, mv, cnt))
- return -1;
+ if (!(cs = vi_char()))
+ return -1;
+ if (lbuf_findchar(xb, row, col, cs, mv, cnt))
+ return -1;
break;
case ';':
- if (vi_charlast[0])
- if (lbuf_findchar(xb, row, col, vi_charlast, vi_charcmd, cnt))
- return -1;
+ if (!vi_charlast[0])
+ return -1;
+ if (lbuf_findchar(xb, row, col, vi_charlast, vi_charcmd, cnt))
+ return -1;
break;
case ',':
- if (vi_charlast[0])
- if (lbuf_findchar(xb, row, col, vi_charlast, vi_charcmd, -cnt))
- return -1;
+ if (!vi_charlast[0])
+ return -1;
+ if (lbuf_findchar(xb, row, col, vi_charlast, vi_charcmd, -cnt))
+ return -1;
break;
case 'h':
for (i = 0; i < cnt; i++)
@@ -459,14 +463,16 @@ static int vi_motion(int *row, int *col)
break;
break;
case 't':
- if ((cs = vi_char()))
- if (lbuf_findchar(xb, row, col, cs, mv, cnt))
- return -1;
+ if (!(cs = vi_char()))
+ return -1;
+ if (lbuf_findchar(xb, row, col, cs, mv, cnt))
+ return -1;
break;
case 'T':
- if ((cs = vi_char()))
- if (lbuf_findchar(xb, row, col, cs, mv, cnt))
- return -1;
+ if (!(cs = vi_char()))
+ return -1;
+ if (lbuf_findchar(xb, row, col, cs, mv, cnt))
+ return -1;
break;
case 'B':
for (i = 0; i < cnt; i++)