tvi: exit if ex_init() fails - 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 f614d398653cac4aad4dbc17d730145b11c33167
(DIR) parent 1792d21d88ee1fcb629fed89d35406957cc305b3
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Sat, 25 Jul 2015 19:24:09 +0430
vi: exit if ex_init() fails
Diffstat:
M ex.c | 6 ++++--
M vi.c | 17 +++++++++--------
M vi.h | 2 +-
3 files changed, 14 insertions(+), 11 deletions(-)
---
(DIR) diff --git a/ex.c b/ex.c
t@@ -810,13 +810,15 @@ void ex(void)
}
}
-void ex_init(char **files)
+int ex_init(char **files)
{
char cmd[EXLEN];
snprintf(cmd, sizeof(cmd), "e %s", files[0] ? files[0] : "");
- ec_edit(cmd);
+ if (ec_edit(cmd))
+ return 1;
if (getenv("EXINIT"))
ex_command(getenv("EXINIT"));
+ return 0;
}
void ex_done(void)
(DIR) diff --git a/vi.c b/vi.c
t@@ -1294,14 +1294,15 @@ int main(int argc, char *argv[])
syn_init();
if (xled || xvis)
term_init();
- ex_init(argv + i);
- if (xvis)
- vi();
- else
- ex();
- if (xled || xvis)
- term_done();
- ex_done();
+ if (!ex_init(argv + i)) {
+ if (xvis)
+ vi();
+ else
+ ex();
+ if (xled || xvis)
+ term_done();
+ ex_done();
+ }
reg_done();
syn_done();
dir_done();
(DIR) diff --git a/vi.h b/vi.h
t@@ -138,7 +138,7 @@ void ex_command(char *cmd);
char *ex_read(char *msg);
void ex_print(char *line);
void ex_show(char *msg);
-void ex_init(char **files);
+int ex_init(char **files);
void ex_done(void);
char *ex_path(void);
char *ex_filetype(void);