diff options
Diffstat (limited to 'Src/text.c')
-rw-r--r-- | Src/text.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Src/text.c b/Src/text.c index f55553ed0..b58c2516d 100644 --- a/Src/text.c +++ b/Src/text.c @@ -173,6 +173,8 @@ getpermtext(Eprog prog, Wordcode c, int start_indent) { struct estate s; + queue_signals(); + if (!c) c = prog->prog; @@ -193,6 +195,9 @@ getpermtext(Eprog prog, Wordcode c, int start_indent) *tptr = '\0'; freeeprog(prog); /* mark as unused */ untokenize(tbuf); + + unqueue_signals(); + return tbuf; } @@ -206,6 +211,8 @@ getjobtext(Eprog prog, Wordcode c) struct estate s; + queue_signals(); + if (!c) c = prog->prog; @@ -224,6 +231,9 @@ getjobtext(Eprog prog, Wordcode c) *tptr = '\0'; freeeprog(prog); /* mark as unused */ untokenize(jbuf); + + unqueue_signals(); + return jbuf; } @@ -834,6 +844,10 @@ gettext2(Estate state) taddstr("))"); stack = 1; break; + case WC_AUTOFN: + taddstr("builtin autoload -X"); + stack = 1; + break; case WC_TRY: if (!s) { taddstr("{"); @@ -879,6 +893,9 @@ getredirs(LinkList redirs) ">", ">|", ">>", ">>|", "&>", "&>|", "&>>", "&>>|", "<>", "<", "<<", "<<-", "<<<", "<&", ">&", NULL /* >&- */, "<", ">" }; + + queue_signals(); + taddchr(' '); for (n = firstnode(redirs); n; incnode(n)) { Redir f = (Redir) getdata(n); @@ -966,4 +983,6 @@ getredirs(LinkList redirs) } } tptr--; + + unqueue_signals(); } |