add support for :wn (initial patch from Alexander Griesser)

This commit is contained in:
Paul Fox 2006-03-27 21:51:16 +00:00
parent dbf935dae6
commit 9360f42d32

View File

@ -1072,9 +1072,10 @@ static void colon(Byte * buf)
#endif /* CONFIG_FEATURE_VI_SEARCH */ #endif /* CONFIG_FEATURE_VI_SEARCH */
} else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version } else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version
psb("%s", vi_Version); psb("%s", vi_Version);
} else if ((strncasecmp((char *) cmd, "write", i) == 0) || // write text to file } else if (strncasecmp((char *) cmd, "write", i) == 0 // write text to file
(strncasecmp((char *) cmd, "wq", i) == 0) || || strncasecmp((char *) cmd, "wq", i) == 0
(strncasecmp((char *) cmd, "x", i) == 0)) { || strncasecmp((char *) cmd, "wn", i) == 0
|| strncasecmp((char *) cmd, "x", i) == 0) {
// is there a file name to write to? // is there a file name to write to?
if (strlen((char *) args) > 0) { if (strlen((char *) args) > 0) {
fn = args; fn = args;
@ -1111,7 +1112,9 @@ static void colon(Byte * buf)
file_modified = 0; file_modified = 0;
last_file_modified = -1; last_file_modified = -1;
} }
if ((cmd[0] == 'x' || cmd[1] == 'q') && l == ch) { if ((cmd[0] == 'x' || cmd[1] == 'q' || cmd[1] == 'n' ||
cmd[0] == 'X' || cmd[1] == 'Q' || cmd[1] == 'N')
&& l == ch) {
editing = 0; editing = 0;
} }
} }
@ -3420,9 +3423,10 @@ key_cmd_mode:
} else { } else {
editing = 0; editing = 0;
} }
} else if (strncasecmp((char *) p, "write", cnt) == 0 || } else if (strncasecmp((char *) p, "write", cnt) == 0
strncasecmp((char *) p, "wq", cnt) == 0 || || strncasecmp((char *) p, "wq", cnt) == 0
strncasecmp((char *) p, "x", cnt) == 0) { || strncasecmp((char *) p, "wn", cnt) == 0
|| strncasecmp((char *) p, "x", cnt) == 0) {
cnt = file_write(cfn, text, end - 1); cnt = file_write(cfn, text, end - 1);
if (cnt < 0) { if (cnt < 0) {
if (cnt == -1) if (cnt == -1)
@ -3431,7 +3435,8 @@ key_cmd_mode:
file_modified = 0; file_modified = 0;
last_file_modified = -1; last_file_modified = -1;
psb("\"%s\" %dL, %dC", cfn, count_lines(text, end - 1), cnt); psb("\"%s\" %dL, %dC", cfn, count_lines(text, end - 1), cnt);
if (p[0] == 'x' || p[1] == 'q') { if (p[0] == 'x' || p[1] == 'q' || p[1] == 'n' ||
p[0] == 'X' || p[1] == 'Q' || p[1] == 'N') {
editing = 0; editing = 0;
} }
} }