summaryrefslogtreecommitdiff
path: root/Src/Zle/complete.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/complete.c')
-rw-r--r--Src/Zle/complete.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Src/Zle/complete.c b/Src/Zle/complete.c
index 48fcd4751..49b338f29 100644
--- a/Src/Zle/complete.c
+++ b/Src/Zle/complete.c
@@ -896,6 +896,8 @@ do_comp_vars(int test, int na, char *sa, int nb, char *sb, int mod)
int i, l = arrlen(compwords), t = 0, b = 0, e = l - 1;
Patprog pp;
+ queue_signals(); /* Protect PAT_STATIC */
+
i = compcurrent - 1;
if (i < 0 || i >= l)
return 0;
@@ -930,6 +932,9 @@ do_comp_vars(int test, int na, char *sa, int nb, char *sb, int mod)
t = 0;
if (t && mod)
restrict_range(b, e);
+
+ unqueue_signals();
+
return t;
}
case CVT_PRENUM:
@@ -952,6 +957,8 @@ do_comp_vars(int test, int na, char *sa, int nb, char *sb, int mod)
{
Patprog pp;
+ queue_signals(); /* Protect PAT_STATIC */
+
if (!na)
return 0;
@@ -1036,6 +1043,9 @@ do_comp_vars(int test, int na, char *sa, int nb, char *sb, int mod)
if (mod)
ignore_suffix(ol - (p - compsuffix));
}
+
+ unqueue_signals();
+
return 1;
}
}