aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDongdong Zhou <dzhou121@gmail.com>2017-05-11 04:48:59 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2017-10-26 09:35:13 +0200
commite164ba41c8460d4e5b2e7e2b929d8479a0310738 (patch)
tree1ec9ca8c2807757b549385e9dfc965df4de50138
parentdaec81ab5179c7ce8e3813af556b1e2f05fc59c6 (diff)
downloadrneovim-e164ba41c8460d4e5b2e7e2b929d8479a0310738.tar.gz
rneovim-e164ba41c8460d4e5b2e7e2b929d8479a0310738.tar.bz2
rneovim-e164ba41c8460d4e5b2e7e2b929d8479a0310738.zip
ext_cmdline: fix firstc, change cmdline_leave to cmdline_hide
-rw-r--r--runtime/doc/msgpack_rpc.txt4
-rw-r--r--src/nvim/ex_getln.c19
-rw-r--r--test/functional/ui/cmdline_spec.lua2
3 files changed, 11 insertions, 14 deletions
diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt
index ef4a22db0b..77938fbd82 100644
--- a/runtime/doc/msgpack_rpc.txt
+++ b/runtime/doc/msgpack_rpc.txt
@@ -446,8 +446,8 @@ states might be represented as separate modes.
["cmdline_enter"]
Enter the cmdline.
-["cmdline_leave"]
- Leave the cmdline.
+["cmdline_hide"]
+ Hide the cmdline.
["cmdline_show", content, pos, firstc, prompt]
content: List of [highlight group, string]
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 12f3f53c81..34547c59c9 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -1837,7 +1837,7 @@ getcmdline (
char_u *p = command_line_enter(firstc, count, indent);
if (ui_is_external(kUICmdline)) {
Array args = ARRAY_DICT_INIT;
- ui_event("cmdline_leave", args);
+ ui_event("cmdline_hide", args);
}
return p;
}
@@ -2738,16 +2738,13 @@ void ui_ext_cmdline_show(void)
ADD(content, ARRAY_OBJ(text));
ADD(args, ARRAY_OBJ(content));
ADD(args, INTEGER_OBJ(ccline.cmdpos));
- if (ccline.cmdfirstc != NUL) {
- ADD(args, STRING_OBJ(cstr_to_string((char *)(&ccline.cmdfirstc))));
- } else {
- ADD(args, STRING_OBJ(cstr_to_string("")));
- }
- if (ccline.cmdprompt != NULL) {
- ADD(args, STRING_OBJ(cstr_to_string((char *)(ccline.cmdprompt))));
- } else {
- ADD(args, STRING_OBJ(cstr_to_string("")));
- }
+ char *firstc = (char []) { (char)ccline.cmdfirstc };
+ String str = (String) {
+ .data = xmemdupz(firstc, 1),
+ .size = 1
+ };
+ ADD(args, STRING_OBJ(str));
+ ADD(args, STRING_OBJ(cstr_to_string((char *)(ccline.cmdprompt))));
ui_event("cmdline_show", args);
}
diff --git a/test/functional/ui/cmdline_spec.lua b/test/functional/ui/cmdline_spec.lua
index 523f7065d4..479f5c3b7d 100644
--- a/test/functional/ui/cmdline_spec.lua
+++ b/test/functional/ui/cmdline_spec.lua
@@ -16,7 +16,7 @@ describe('External command line completion', function()
screen:set_on_event_handler(function(name, data)
if name == "cmdline_enter" then
shown = true
- elseif name == "cmdline_leave" then
+ elseif name == "cmdline_hide" then
shown = false
elseif name == "cmdline_show" then
content, pos, firstc, prompt = unpack(data)