tlbuf: save before jump mark in undo buffer - neatvi - [fork] simple vi-type ed… | |
git clone git://src.adamsgaard.dk/neatvi | |
Log | |
Files | |
Refs | |
README | |
--- | |
commit ff0bb634c4421809714974d432ce1b7fefb33c90 | |
parent 9c04d34f7e9c3f9478e69744e40e2e8b70c8e9a6 | |
Author: Ali Gholami Rudi <[email protected]> | |
Date: Thu, 26 Nov 2015 08:06:13 +0330 | |
lbuf: save before jump mark in undo buffer | |
Diffstat: | |
M lbuf.c | 13 ++++++++----- | |
1 file changed, 8 insertions(+), 5 deletions(-) | |
--- | |
diff --git a/lbuf.c b/lbuf.c | |
t@@ -5,7 +5,8 @@ | |
#include <unistd.h> | |
#include "vi.h" | |
-#define NMARKS 32 | |
+#define NMARKS_BASE ('z' - 'a' + 2) | |
+#define NMARKS 32 | |
/* line operations */ | |
struct lopt { | |
t@@ -77,12 +78,14 @@ static int markidx(int mark) | |
{ | |
if (islower(mark)) | |
return mark - 'a'; | |
- if (mark == '*') | |
+ if (mark == '\'' || mark == '`') | |
return 'z' - 'a' + 1; | |
- if (mark == '[') | |
+ if (mark == '*') | |
return 'z' - 'a' + 2; | |
- if (mark == ']') | |
+ if (mark == '[') | |
return 'z' - 'a' + 3; | |
+ if (mark == ']') | |
+ return 'z' - 'a' + 4; | |
return -1; | |
} | |
t@@ -192,7 +195,7 @@ static void lbuf_opt(struct lbuf *lb, char *buf, int pos, … | |
lo->ins = buf ? uc_dup(buf) : NULL; | |
lo->seq = lb->useq; | |
lbuf_savepos(lb, lo); | |
- for (i = 0; i < 'z' - 'a' + 1; i++) | |
+ for (i = 0; i < NMARKS_BASE; i++) | |
if (lb->mark[i] >= pos && lb->mark[i] < pos + n_del) | |
lbuf_savemark(lb, lo, i); | |
} |