diff options
Diffstat (limited to 'src/nvim/eval.c')
| -rw-r--r-- | src/nvim/eval.c | 31 | 
1 files changed, 30 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 9c3941b0fd..550fe8ab65 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5981,6 +5981,35 @@ static void assert_append_cmd_or_arg(garray_T *gap, typval_T *argvars,    }  } +int assert_beeps(typval_T *argvars, bool no_beep) +  FUNC_ATTR_NONNULL_ALL +{ +  const char *const cmd = tv_get_string_chk(&argvars[0]); +  int ret = 0; + +  called_vim_beep = false; +  suppress_errthrow = true; +  emsg_silent = false; +  do_cmdline_cmd(cmd); +  if (no_beep ? called_vim_beep : !called_vim_beep) { +    garray_T ga; +    prepare_assert_error(&ga); +    if (no_beep) { +      ga_concat(&ga, (const char_u *)"command did beep: "); +    } else { +      ga_concat(&ga, (const char_u *)"command did not beep: "); +    } +    ga_concat(&ga, (const char_u *)cmd); +    assert_error(&ga); +    ga_clear(&ga); +    ret = 1; +  } + +  suppress_errthrow = false; +  emsg_on_display = false; +  return ret; +} +  int assert_fails(typval_T *argvars)    FUNC_ATTR_NONNULL_ALL  { @@ -6234,6 +6263,7 @@ void common_function(typval_T *argvars, typval_T *rettv,      // function(dict.MyFunc, [arg])      arg_pt = argvars[0].vval.v_partial;      s = partial_name(arg_pt); +    // TODO(bfredl): do the entire nlua_is_table_from_lua dance    } else {      // function('MyFunc', [arg], dict)      s = (char_u *)tv_get_string(&argvars[0]); @@ -7333,7 +7363,6 @@ bool callback_from_typval(Callback *const callback, typval_T *const arg)      char_u *name = nlua_register_table_as_callable(arg);      if (name != NULL) { -      func_ref(name);        callback->data.funcref = vim_strsave(name);        callback->type = kCallbackFuncref;      } else {  | 
