| 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); | |
| } |