tex: xit command - neatvi - [fork] simple vi-type editor with UTF-8 support | |
git clone git://src.adamsgaard.dk/neatvi | |
Log | |
Files | |
Refs | |
README | |
--- | |
commit 6a4f7acda55fd2175a268b20b308ee70ae2fa38b | |
parent 88384358c2852c6b9b994bbd98307712f1c0588d | |
Author: Ali Gholami Rudi <[email protected]> | |
Date: Wed, 17 Jun 2015 19:35:41 +0430 | |
ex: xit command | |
Diffstat: | |
M ex.c | 9 ++++++--- | |
M lbuf.c | 1 + | |
2 files changed, 7 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/ex.c b/ex.c | |
t@@ -324,7 +324,6 @@ static int ec_edit(char *ec) | |
ex_show(msg); | |
} | |
xrow = MAX(0, MIN(xrow, lbuf_len(xb) - 1)); | |
- lbuf_modified(xb); | |
lbuf_saved(xb, path[0] != '\0'); | |
return 0; | |
} | |
t@@ -376,6 +375,8 @@ static int ec_write(char *ec) | |
ex_arg(ec, arg); | |
ex_loc(ec, loc); | |
path = arg[0] ? arg : ex_path(); | |
+ if (cmd[0] == 'x' && !lbuf_modified(xb)) | |
+ return ec_quit(cmd); | |
if (ex_region(loc, &beg, &end)) | |
return 1; | |
if (!loc[0]) { | |
t@@ -407,8 +408,8 @@ static int ec_write(char *ec) | |
} | |
if (!strcmp(ex_path(), path)) | |
lbuf_saved(xb, 0); | |
- if (!strcmp("wq", cmd)) | |
- ec_quit("wq"); | |
+ if (cmd[0] == 'x' || (cmd[0] == 'w' && cmd[1] == 'q')) | |
+ ec_quit(cmd); | |
return 0; | |
} | |
t@@ -727,6 +728,8 @@ static struct excmd { | |
{"r", "redo", ec_redo}, | |
{"se", "set", ec_set}, | |
{"s", "substitute", ec_substitute}, | |
+ {"x", "xit", ec_write}, | |
+ {"x!", "xit!", ec_write}, | |
{"ya", "yank", ec_yank}, | |
{"!", "!", ec_exec}, | |
{"make", "make", ec_make}, | |
diff --git a/lbuf.c b/lbuf.c | |
t@@ -308,6 +308,7 @@ void lbuf_saved(struct lbuf *lb, int clear) | |
lb->useq_last = lb->useq; | |
} | |
lb->useq_zero = lbuf_seq(lb); | |
+ lbuf_modified(xb); | |
} | |
/* was the file modified since the last lbuf_modreset() */ |