tvi: cursor position after put command - 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 09cb6ffbd817e3ad3b6755e3a59e7841ac2f009c
 (DIR) parent d1f4855224db5c5e09d987e742cd43bace5139ba
 (HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
       Date:   Sat, 16 May 2015 09:10:39 +0430
       
       vi: cursor position after put command
       
       Diffstat:
         M vi.c                                |       6 +++++-
       
       1 file changed, 5 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/vi.c b/vi.c
       t@@ -830,7 +830,7 @@ static int vc_put(int cmd)
                        sbuf_str(sb, s);
                        free(s);
                }
       -        for (i = 0; i < MAX(cnt, 1); i++)
       +        for (i = 0; i < cnt; i++)
                        sbuf_str(sb, buf);
                if (ln) {
                        char *s = uc_sub(ln, off, -1);
       t@@ -842,6 +842,10 @@ static int vc_put(int cmd)
                if (ln)
                        lbuf_rm(xb, xrow, xrow + 1);
                lbuf_put(xb, xrow, sbuf_buf(sb));
       +        if (ln)
       +                xcol = ren_pos(lbuf_get(xb, xrow), off + uc_slen(buf) * cnt - 1);
       +        else
       +                lbuf_postindents(xb, &xrow, &xcol);
                sbuf_free(sb);
                return 0;
        }