aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/9term/9term.c20
-rw-r--r--src/cmd/rio/menu.c3
2 files changed, 17 insertions, 6 deletions
diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c
index 469aea46..51e733ab 100644
--- a/src/cmd/9term/9term.c
+++ b/src/cmd/9term/9term.c
@@ -879,6 +879,20 @@ key(Rune r)
return;
}
+ switch(r) {
+ case 0x03: /* ^C: send interrupt */
+ case 0x7F: /* DEL: send interrupt */
+ t.qh = t.q0 = t.q1 = t.nr;
+ show(t.q0);
+{int x; x=tcgetpgrp(rcfd);
+print("postnote %d pgrp %d\n", rcpid, x);
+ postnote(PNGROUP, x, "interrupt");
+if(x >= 2) killpg(x, 2);
+}
+ // write(rcfd, "\x7F", 1);
+ return;
+ }
+
if(rawon() && t.q0==t.nr){
addraw(&r, 1);
consread();
@@ -898,12 +912,6 @@ key(Rune r)
snarf();
switch(r) {
- case 0x03: /* ^C: send interrupt */
- case 0x7F: /* DEL: send interrupt */
- t.qh = t.q0 = t.q1 = t.nr;
- show(t.q0);
- write(rcfd, "\x7F", 1);
- break;
case 0x06: /* ^F: file name completion */
case Kins: /* Insert: file name completion */
rp = namecomplete();
diff --git a/src/cmd/rio/menu.c b/src/cmd/rio/menu.c
index 079e86d6..81ad960f 100644
--- a/src/cmd/rio/menu.c
+++ b/src/cmd/rio/menu.c
@@ -138,6 +138,9 @@ spawn(ScreenInfo *s)
close(ConnectionNumber(dpy));
if (s->display[0] != '\0')
putenv(s->display);
+ signal(SIGINT, SIG_DFL);
+ signal(SIGTERM, SIG_DFL);
+ signal(SIGHUP, SIG_DFL);
if (termprog != NULL) {
execl(shell, shell, "-c", termprog, 0);
fprintf(stderr, "rio: exec %s", shell);