summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2011-09-21 19:01:49 +0000
committermillert <millert@openbsd.org>2011-09-21 19:01:49 +0000
commit43b5ee64c8fc957c7c1910e10b3c1d8b09175e9d (patch)
treeb81d4eddec652d1adef554fd257e840be3825d4a
parentinclude err.h for warnx (diff)
downloadwireguard-openbsd-43b5ee64c8fc957c7c1910e10b3c1d8b09175e9d.tar.xz
wireguard-openbsd-43b5ee64c8fc957c7c1910e10b3c1d8b09175e9d.zip
Use volatile sig_atomic_t, not int, for the sigs variable. Also
move the call to bell() out of u_interrupt() (a signal handler). OK and with help from deraadt@
-rw-r--r--usr.bin/less/ch.c2
-rw-r--r--usr.bin/less/command.c2
-rw-r--r--usr.bin/less/edit.c2
-rw-r--r--usr.bin/less/forwback.c2
-rw-r--r--usr.bin/less/input.c2
-rw-r--r--usr.bin/less/less.h1
-rw-r--r--usr.bin/less/line.c2
-rw-r--r--usr.bin/less/linenum.c2
-rw-r--r--usr.bin/less/os.c2
-rw-r--r--usr.bin/less/output.c2
-rw-r--r--usr.bin/less/screen.c2
-rw-r--r--usr.bin/less/search.c2
-rw-r--r--usr.bin/less/signal.c4
-rw-r--r--usr.bin/less/tags.c2
-rw-r--r--usr.bin/less/ttyin.c2
15 files changed, 16 insertions, 15 deletions
diff --git a/usr.bin/less/ch.c b/usr.bin/less/ch.c
index 2f66b98732a..2fb4290a236 100644
--- a/usr.bin/less/ch.c
+++ b/usr.bin/less/ch.c
@@ -126,7 +126,7 @@ static int ch_ungotchar = -1;
static int maxbufs = -1;
extern int autobuf;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int secure;
extern int screen_trashed;
extern int follow_mode;
diff --git a/usr.bin/less/command.c b/usr.bin/less/command.c
index b5b4b82ba0c..2d3f8ec915a 100644
--- a/usr.bin/less/command.c
+++ b/usr.bin/less/command.c
@@ -22,7 +22,7 @@
#include "cmd.h"
extern int erase_char, erase2_char, kill_char;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int quit_if_one_screen;
extern int squished;
extern int sc_width;
diff --git a/usr.bin/less/edit.c b/usr.bin/less/edit.c
index 2f5e47498aa..733131536b3 100644
--- a/usr.bin/less/edit.c
+++ b/usr.bin/less/edit.c
@@ -23,7 +23,7 @@ extern char *every_first_cmd;
extern int any_display;
extern int force_open;
extern int is_tty;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern IFILE curr_ifile;
extern IFILE old_ifile;
extern struct scrpos initial_scrpos;
diff --git a/usr.bin/less/forwback.c b/usr.bin/less/forwback.c
index ebe422d9446..ac32a0bae1e 100644
--- a/usr.bin/less/forwback.c
+++ b/usr.bin/less/forwback.c
@@ -22,7 +22,7 @@ public int squished;
public int no_back_scroll = 0;
public int forw_prompt;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int top_scroll;
extern int quiet;
extern int sc_width, sc_height;
diff --git a/usr.bin/less/input.c b/usr.bin/less/input.c
index b82868bca4d..1a5b1f3e113 100644
--- a/usr.bin/less/input.c
+++ b/usr.bin/less/input.c
@@ -25,7 +25,7 @@ extern int squeeze;
extern int chopline;
extern int hshift;
extern int quit_if_one_screen;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int ignore_eoi;
extern int status_col;
extern POSITION start_attnpos;
diff --git a/usr.bin/less/less.h b/usr.bin/less/less.h
index 813e86aa416..fe85105b320 100644
--- a/usr.bin/less/less.h
+++ b/usr.bin/less/less.h
@@ -83,6 +83,7 @@
#if HAVE_STRING_H
#include <string.h>
#endif
+#include <signal.h>
/* OS-specific includes */
#ifdef _OSK
diff --git a/usr.bin/less/line.c b/usr.bin/less/line.c
index 9a95b02942a..b2ea16ef516 100644
--- a/usr.bin/less/line.c
+++ b/usr.bin/less/line.c
@@ -46,7 +46,7 @@ static int attr_swidth();
static int attr_ewidth();
static int do_append();
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int bs_mode;
extern int linenums;
extern int ctldisp;
diff --git a/usr.bin/less/linenum.c b/usr.bin/less/linenum.c
index 4369f87b266..e676422d1cc 100644
--- a/usr.bin/less/linenum.c
+++ b/usr.bin/less/linenum.c
@@ -66,7 +66,7 @@ static struct linenum_info pool[NPOOL]; /* The pool itself */
static struct linenum_info *spare; /* We always keep one spare entry */
extern int linenums;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int sc_height;
extern int screen_trashed;
diff --git a/usr.bin/less/os.c b/usr.bin/less/os.c
index 157c15bc116..7060be6a043 100644
--- a/usr.bin/less/os.c
+++ b/usr.bin/less/os.c
@@ -39,7 +39,7 @@
#define time_type long
#endif
-extern int sigs;
+extern volatile sig_atomic_t sigs;
/*
* Like read() system call, but is deliberately interruptible.
diff --git a/usr.bin/less/output.c b/usr.bin/less/output.c
index 164ee4dbf66..0f6417df001 100644
--- a/usr.bin/less/output.c
+++ b/usr.bin/less/output.c
@@ -23,7 +23,7 @@ public int need_clr;
public int final_attr;
public int at_prompt;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int sc_width;
extern int so_s_width, so_e_width;
extern int screen_trashed;
diff --git a/usr.bin/less/screen.c b/usr.bin/less/screen.c
index c43fe56dbc7..d47b035ac35 100644
--- a/usr.bin/less/screen.c
+++ b/usr.bin/less/screen.c
@@ -228,7 +228,7 @@ extern int no_back_scroll;
extern int swindow;
extern int no_init;
extern int no_keypad;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int wscroll;
extern int screen_trashed;
extern int tty;
diff --git a/usr.bin/less/search.c b/usr.bin/less/search.c
index 26c4df5fd0a..88a2817e0e8 100644
--- a/usr.bin/less/search.c
+++ b/usr.bin/less/search.c
@@ -21,7 +21,7 @@
#define MINPOS(a,b) (((a) < (b)) ? (a) : (b))
#define MAXPOS(a,b) (((a) > (b)) ? (a) : (b))
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int how_search;
extern int caseless;
extern int linenums;
diff --git a/usr.bin/less/signal.c b/usr.bin/less/signal.c
index 02f8f494dfb..701c1be7ef2 100644
--- a/usr.bin/less/signal.c
+++ b/usr.bin/less/signal.c
@@ -23,7 +23,7 @@
/*
* "sigs" contains bits indicating signals which need to be processed.
*/
-public int sigs;
+public volatile sig_atomic_t sigs;
extern int sc_width, sc_height;
extern int screen_trashed;
@@ -41,7 +41,6 @@ extern long jump_sline_fraction;
u_interrupt(type)
int type;
{
- bell();
#if OS2
LSIGNAL(SIGINT, SIG_ACK);
#endif
@@ -236,6 +235,7 @@ psignals()
#endif
if (tsignals & S_INTERRUPT)
{
+ bell();
if (quit_on_intr)
quit(QUIT_INTERRUPT);
}
diff --git a/usr.bin/less/tags.c b/usr.bin/less/tags.c
index a7d920b77af..3c53c13273f 100644
--- a/usr.bin/less/tags.c
+++ b/usr.bin/less/tags.c
@@ -19,7 +19,7 @@ static int total;
static int curseq;
extern int linenums;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
enum tag_result {
TAG_FOUND,
diff --git a/usr.bin/less/ttyin.c b/usr.bin/less/ttyin.c
index 00f2c9e4ad5..d4318953879 100644
--- a/usr.bin/less/ttyin.c
+++ b/usr.bin/less/ttyin.c
@@ -25,7 +25,7 @@ static DWORD console_mode;
#endif
public int tty;
-extern int sigs;
+extern volatile sig_atomic_t sigs;
extern int utf_mode;
/*