diff options
| author | ckelsel <ckelsel@hotmail.com> | 2017-08-17 08:20:48 +0800 | 
|---|---|---|
| committer | ckelsel <ckelsel@hotmail.com> | 2017-08-17 08:20:48 +0800 | 
| commit | 673fc748237345914e0ad584bc4cba997c96a37e (patch) | |
| tree | 7f55a3b3dd362fbbc59ff204287a0aae99089e5e /src/nvim/eval.c | |
| parent | 5d332084e1ca4c29b1ccb90ea44c3b861dac5701 (diff) | |
| parent | 5b32bce73c93a64970afe0e92e0a8ba2fed88619 (diff) | |
| download | rneovim-673fc748237345914e0ad584bc4cba997c96a37e.tar.gz rneovim-673fc748237345914e0ad584bc4cba997c96a37e.tar.bz2 rneovim-673fc748237345914e0ad584bc4cba997c96a37e.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/nvim/eval.c')
| -rw-r--r-- | src/nvim/eval.c | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c42929ef7c..ac22d75a83 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -11031,6 +11031,7 @@ void get_user_input(const typval_T *const argvars,    const char *defstr = "";    const char *cancelreturn = NULL;    const char *xp_name = NULL; +  Callback input_callback = { .type = kCallbackNone };    char prompt_buf[NUMBUFLEN];    char defstr_buf[NUMBUFLEN];    char cancelreturn_buf[NUMBUFLEN]; @@ -11040,7 +11041,7 @@ void get_user_input(const typval_T *const argvars,        emsgf(_("E5050: {opts} must be the only argument"));        return;      } -    const dict_T *const dict = argvars[0].vval.v_dict; +    dict_T *const dict = argvars[0].vval.v_dict;      prompt = tv_dict_get_string_buf_chk(dict, S_LEN("prompt"), prompt_buf, "");      if (prompt == NULL) {        return; @@ -11066,6 +11067,9 @@ void get_user_input(const typval_T *const argvars,      if (xp_name == def) {  // default to NULL        xp_name = NULL;      } +    if (!tv_dict_get_callback(dict, S_LEN("highlight"), &input_callback)) { +      return; +    }    } else {      prompt = tv_get_string_buf_chk(&argvars[0], prompt_buf);      if (prompt == NULL) { @@ -11124,12 +11128,13 @@ void get_user_input(const typval_T *const argvars,    stuffReadbuffSpec(defstr); -  int save_ex_normal_busy = ex_normal_busy; +  const int save_ex_normal_busy = ex_normal_busy;    ex_normal_busy = 0;    rettv->vval.v_string = -    getcmdline_prompt(inputsecret_flag ? NUL : '@', (char_u *)p, echo_attr, -                      xp_type, (char_u *)xp_arg); +    (char_u *)getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr, +                                xp_type, xp_arg, input_callback);    ex_normal_busy = save_ex_normal_busy; +  callback_free(&input_callback);    if (rettv->vval.v_string == NULL && cancelreturn != NULL) {      rettv->vval.v_string = (char_u *)xstrdup(cancelreturn); | 
