tvi: specify direction context with zL, zl, zr, and zR - 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 aa607d3ef71740de17207fa9bc4fcd6a8d2eb556
(DIR) parent 62031568d8a420347c9be9b77bc75f80856e7281
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Wed, 6 May 2015 10:56:30 +0430
vi: specify direction context with zL, zl, zr, and zR
Diffstat:
M ren.c | 6 ++++++
M vi.c | 5 +++++
M vi.h | 1 +
3 files changed, 12 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/ren.c b/ren.c
t@@ -40,6 +40,12 @@ static void bidi_reverse(int *ord, int beg, int end)
int ren_dir(char *s)
{
+ if (xdir == 'R')
+ return -1;
+ if (xdir == 'l')
+ return *s && uc_dir(s) < 0 ? -1 : +1;
+ if (xdir == 'r')
+ return *s && uc_dir(s) > 0 ? +1 : -1;
return +1;
}
(DIR) diff --git a/vi.c b/vi.c
t@@ -16,6 +16,7 @@ char xpath[PATHLEN]; /* current file */
struct lbuf *xb; /* current buffer */
int xrow, xcol, xtop; /* current row, column, and top row */
int xled = 1; /* use the line editor */
+int xdir = 'L'; /* current direction context */
int xquit;
static void vi_draw(void)
t@@ -593,6 +594,10 @@ static void vi(void)
vc_put(c, pre1);
redraw = 1;
break;
+ case 'z':
+ xdir = vi_read();
+ redraw = 1;
+ break;
default:
continue;
}
(DIR) diff --git a/vi.h b/vi.h
t@@ -111,3 +111,4 @@ extern int xtop;
extern int xled;
extern char xpath[];
extern int xquit;
+extern int xdir;