patch 8.1.2047: cannot check the current state
Problem: Cannot check the current state.
Solution: Add the state() function.
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index 6bf2147..fd40a33 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -24,6 +24,7 @@
void channel_close(channel_T *channel, int invoke_close_cb);
void channel_clear(channel_T *channel);
void channel_free_all(void);
+int channel_in_blocking_wait(void);
void channel_handle_events(int only_keep_open);
int channel_any_keep_open(void);
void channel_set_nonblock(channel_T *channel, ch_part_T part);
diff --git a/src/proto/evalfunc.pro b/src/proto/evalfunc.pro
index 83dfacf..064f12f 100644
--- a/src/proto/evalfunc.pro
+++ b/src/proto/evalfunc.pro
@@ -4,9 +4,9 @@
int has_internal_func(char_u *name);
int call_internal_func(char_u *name, int argcount, typval_T *argvars, typval_T *rettv);
int call_internal_method(char_u *name, int argcount, typval_T *argvars, typval_T *rettv, typval_T *basetv);
+int non_zero_arg(typval_T *argvars);
linenr_T tv_get_lnum(typval_T *argvars);
linenr_T tv_get_lnum_buf(typval_T *argvars, buf_T *buf);
-buf_T *buflist_find_by_name(char_u *name, int curtab_only);
buf_T *tv_get_buf(typval_T *tv, int curtab_only);
buf_T *get_buf_arg(typval_T *arg);
win_T *get_optional_window(typval_T *argvars, int idx);
diff --git a/src/proto/main.pro b/src/proto/main.pro
index 2c07cea..caf435e 100644
--- a/src/proto/main.pro
+++ b/src/proto/main.pro
@@ -2,6 +2,7 @@
int vim_main2(void);
void common_init(mparm_T *paramp);
int is_not_a_term(void);
+int op_pending(void);
void may_trigger_safestate(int safe);
void state_no_longer_safe(void);
void leave_unsafe_state(void);
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index 08eb853..8de1aff 100644
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -24,6 +24,8 @@
void check_status(buf_T *buf);
int ask_yesno(char_u *str, int direct);
int is_mouse_key(int c);
+void f_mode(typval_T *argvars, typval_T *rettv);
+void f_state(typval_T *argvars, typval_T *rettv);
int get_keystroke(void);
int get_number(int colon, int *mouse_used);
int prompt_for_number(int *mouse_used);
diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro
index 3b11bb9..b97e5f6 100644
--- a/src/proto/userfunc.pro
+++ b/src/proto/userfunc.pro
@@ -10,6 +10,7 @@
funccall_T *get_current_funccal(void);
void free_all_functions(void);
int func_call(char_u *name, typval_T *args, partial_T *partial, dict_T *selfdict, typval_T *rettv);
+int get_callback_depth(void);
int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars);
int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe);
char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fdp, partial_T **partial);