URI:
       tex: order option to call ren_reorder() - neatvi - [fork] simple vi-type editor with UTF-8 support
  HTML git clone git://src.adamsgaard.dk/neatvi
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
   DIR commit 26f00e91254bf63cbd7a6e0bc966c158be004aea
   DIR parent 85f9a4757722e1bc89d9e2ea84cdf98361e6899c
  HTML Author: Ali Gholami Rudi <ali@rudi.ir>
       Date:   Wed, 20 May 2015 19:14:39 +0430
       
       ex: order option to call ren_reorder()
       
       Diffstat:
         M ex.c                                |       2 ++
         M ren.c                               |       6 ++++--
         M vi.h                                |       1 +
       
       3 files changed, 7 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/ex.c b/ex.c
       t@@ -21,6 +21,7 @@ int xrow_alt;                        /* alternate row, column, and top row */
        int xled = 1;                        /* use the line editor */
        int xdir = +1;                        /* current direction context */
        int xshape = 1;                        /* perform letter shaping */
       +int xorder = 1;                        /* change the order of characters */
        
        /* read ex command location */
        static char *ex_loc(char *s, char *loc)
       t@@ -449,6 +450,7 @@ static struct option {
                {"ic", "ignorecase", &xic},
                {"td", "textdirection", &xdir},
                {"shape", "shape", &xshape},
       +        {"order", "xorder", &xorder},
        };
        
        static char *cutword(char *s, char *d)
   DIR diff --git a/ren.c b/ren.c
       t@@ -15,7 +15,8 @@ int *ren_position(char *s)
                pos = malloc((n + 1) * sizeof(pos[0]));
                for (i = 0; i < n; i++)
                        pos[i] = i;
       -        dir_reorder(s, pos);
       +        if (xorder)
       +                dir_reorder(s, pos);
                off = malloc(n * sizeof(off[0]));
                for (i = 0; i < n; i++)
                        off[pos[i]] = i;
       t@@ -154,7 +155,8 @@ int ren_region(char *s, int c1, int c2, int *l1, int *l2, int closed)
                ord = malloc(n * sizeof(ord[0]));
                for (i = 0; i < n; i++)
                        ord[i] = i;
       -        dir_reorder(s, ord);
       +        if (xorder)
       +                dir_reorder(s, ord);
        
                if (c2 < c1)
                        swap(&c1, &c2);
   DIR diff --git a/vi.h b/vi.h
       t@@ -147,3 +147,4 @@ extern int xic;
        extern int xai;
        extern int xdir;
        extern int xshape;
       +extern int xorder;