summaryrefslogtreecommitdiff
path: root/bin/ksh
diff options
context:
space:
mode:
authorTed Unangst <tedu@cvs.openbsd.org>2012-09-10 01:25:31 +0000
committerTed Unangst <tedu@cvs.openbsd.org>2012-09-10 01:25:31 +0000
commiteb744d9d40f02414d35437f9ef397b127027955b (patch)
tree4209cb2a75d870442934e487ebc85648da2e4d74 /bin/ksh
parent9768434a12db19b3733b0e34f316aa790d5adaf7 (diff)
fake a sigwinch after each job, so if the terminal changes size,
we'll notice and update
Diffstat (limited to 'bin/ksh')
-rw-r--r--bin/ksh/edit.c4
-rw-r--r--bin/ksh/main.c3
-rw-r--r--bin/ksh/sh.h3
3 files changed, 6 insertions, 4 deletions
diff --git a/bin/ksh/edit.c b/bin/ksh/edit.c
index 6c357a7de5c..ec72d546c18 100644
--- a/bin/ksh/edit.c
+++ b/bin/ksh/edit.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: edit.c,v 1.34 2010/05/20 01:13:07 fgsch Exp $ */
+/* $OpenBSD: edit.c,v 1.35 2012/09/10 01:25:30 tedu Exp $ */
/*
* Command line editing - common code
@@ -20,7 +20,7 @@
static void x_sigwinch(int);
-static volatile sig_atomic_t got_sigwinch;
+volatile sig_atomic_t got_sigwinch;
static void check_sigwinch(void);
static int x_file_glob(int, const char *, int, char ***);
diff --git a/bin/ksh/main.c b/bin/ksh/main.c
index 1f232a366e7..e4a6f0e7202 100644
--- a/bin/ksh/main.c
+++ b/bin/ksh/main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: main.c,v 1.50 2012/09/06 18:04:34 millert Exp $ */
+/* $OpenBSD: main.c,v 1.51 2012/09/10 01:25:30 tedu Exp $ */
/*
* startup, main loop, environments and error handling
@@ -565,6 +565,7 @@ shell(Source *volatile s, volatile int toplevel)
}
if (interactive) {
+ got_sigwinch = 1;
j_notify();
mcheck();
set_prompt(PS1, s);
diff --git a/bin/ksh/sh.h b/bin/ksh/sh.h
index e4e8807471e..17462049618 100644
--- a/bin/ksh/sh.h
+++ b/bin/ksh/sh.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sh.h,v 1.30 2010/01/04 18:07:11 deraadt Exp $ */
+/* $OpenBSD: sh.h,v 1.31 2012/09/10 01:25:30 tedu Exp $ */
/*
* Public Domain Bourne/Korn shell
@@ -287,6 +287,7 @@ typedef struct trap {
EXTERN volatile sig_atomic_t trap; /* traps pending? */
EXTERN volatile sig_atomic_t intrsig; /* pending trap interrupts command */
EXTERN volatile sig_atomic_t fatal_trap;/* received a fatal signal */
+extern volatile sig_atomic_t got_sigwinch;
extern Trap sigtraps[NSIG+1];
/*