summaryrefslogtreecommitdiffstats
path: root/src/regexp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/regexp.c')
-rw-r--r--src/regexp.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/regexp.c b/src/regexp.c
index 61fc14da32..842c48038d 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -80,6 +80,34 @@ disable_regexp_timeout(void)
}
#endif
+#if defined(FEAT_EVAL) || defined(PROTO)
+# ifdef FEAT_RELTIME
+static sig_atomic_t *saved_timeout_flag;
+# endif
+
+/*
+ * Used at the debug prompt: disable the timeout so that expression evaluation
+ * can used patterns.
+ * Must be followed by calling restore_timeout_for_debugging().
+ */
+ void
+save_timeout_for_debugging(void)
+{
+# ifdef FEAT_RELTIME
+ saved_timeout_flag = (sig_atomic_t *)timeout_flag;
+ timeout_flag = &dummy_timeout_flag;
+# endif
+}
+
+ void
+restore_timeout_for_debugging(void)
+{
+# ifdef FEAT_RELTIME
+ timeout_flag = saved_timeout_flag;
+# endif
+}
+#endif
+
/*
* The first byte of the BT regexp internal "program" is actually this magic
* number; the start node begins in the second byte. It's used to catch the