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++)