tvi: ignore find character commands if interrupted - 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 7ffa4f824373d35bfe780f9d9d50a6e8f83071d3 (DIR) parent 40532b52979509bb1bb5332e8f9bd9bb6e15dc72 (HTM) 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(-) --- (DIR) diff --git a/vi.c b/vi.c t@@ -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++) t@@ -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++)