summaryrefslogtreecommitdiff
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2003-06-15 21:04:16 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2003-06-15 21:04:16 +0000
commit50acda85ee021f6128831acea74c9a40287d1410 (patch)
treead8093fb44faa50c9db0d11ac4ae0146fc9ac250 /src/sysdep.c
parentc658018ff8e3a85e5dbfd0d5eff5b7f1a207ff69 (diff)
downloademacs-50acda85ee021f6128831acea74c9a40287d1410.tar.gz
(kbd_input_ast, read_input_waiting): Don't pass uninitialized
data to kbd_buffer_store_event.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index 8d9d1beb519..193f0630cbf 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1,5 +1,5 @@
/* Interfaces to system-dependent kernel and library entries.
- Copyright (C) 1985, 86,87,88,93,94,95, 1999, 2000, 2001
+ Copyright (C) 1985, 86,87,88,93,94,95,1999,2000,01,2003
Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2008,6 +2008,8 @@ kbd_input_ast ()
if (c >= 0)
{
struct input_event e;
+ EVENT_INIT (e);
+
e.kind = ASCII_KEYSTROKE_EVENT;
XSETINT (e.code, c);
e.frame_or_window = selected_frame;
@@ -2622,14 +2624,15 @@ sys_select (nfds, rfds, wfds, efds, timeout)
void
read_input_waiting ()
{
- struct input_event e;
int nread, i;
extern int quit_char;
if (read_socket_hook)
{
struct input_event buf[256];
-
+ for (i = 0; i < 256; i++)
+ EVENT_INIT (buf[i]);
+
read_alarm_should_throw = 0;
if (! setjmp (read_alarm_throw))
nread = (*read_socket_hook) (0, buf, 256, 1);
@@ -2649,8 +2652,10 @@ read_input_waiting ()
}
else
{
+ struct input_event e;
char buf[3];
nread = read (fileno (stdin), buf, 1);
+ EVENT_INIT (e);
/* Scan the chars for C-g and store them in kbd_buffer. */
e.kind = ASCII_KEYSTROKE_EVENT;