diff src/evalfunc.c @ 18699:1febd1aa9930 v8.1.2341

patch 8.1.2341: not so easy to interrupt a script programatically Commit: https://github.com/vim/vim/commit/67a2deb9cb4ac2224cb1e4d240a5d0659f036264 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Nov 25 00:05:32 2019 +0100 patch 8.1.2341: not so easy to interrupt a script programatically Problem: Not so easy to interrupt a script programatically. Solution: Add the interrupt() function. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/2834)
author Bram Moolenaar <Bram@vim.org>
date Mon, 25 Nov 2019 00:15:06 +0100
parents 81d34044450f
children 128662297ddf
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -114,6 +114,7 @@ static void f_inputlist(typval_T *argvar
 static void f_inputrestore(typval_T *argvars, typval_T *rettv);
 static void f_inputsave(typval_T *argvars, typval_T *rettv);
 static void f_inputsecret(typval_T *argvars, typval_T *rettv);
+static void f_interrupt(typval_T *argvars, typval_T *rettv);
 static void f_invert(typval_T *argvars, typval_T *rettv);
 static void f_islocked(typval_T *argvars, typval_T *rettv);
 #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
@@ -509,6 +510,7 @@ static funcentry_T global_functions[] =
     {"inputsave",	0, 0, 0,	  f_inputsave},
     {"inputsecret",	1, 2, FEARG_1,	  f_inputsecret},
     {"insert",		2, 3, FEARG_1,	  f_insert},
+    {"interrupt",	0, 0, 0,	  f_interrupt},
     {"invert",		1, 1, FEARG_1,	  f_invert},
     {"isdirectory",	1, 1, FEARG_1,	  f_isdirectory},
 #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
@@ -4152,6 +4154,15 @@ f_inputsecret(typval_T *argvars, typval_
 }
 
 /*
+ * "interrupt()" function
+ */
+    static void
+f_interrupt(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
+{
+    got_int = TRUE;
+}
+
+/*
  * "invert(expr)" function
  */
     static void