X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/ab5796a9f97180707734a81320e3eb81937281fe..2a0bd758b7c45138c8343f8a591ab8c77401b52b:/src/w32inevt.c diff --git a/src/w32inevt.c b/src/w32inevt.c index b3f8e3ff73..cc7c5e1e61 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -15,8 +15,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. Drew Bliss 01-Oct-93 Adapted from ntkbd.c by Tim Fleehart @@ -464,12 +464,12 @@ key_event (KEY_EVENT_RECORD *event, struct input_event *emacs_ev, int *isdead) } if (event->uChar.AsciiChar == 0) return 0; - XSETINT (emacs_ev->code, event->uChar.AsciiChar); + emacs_ev->code = event->uChar.AsciiChar; } else { emacs_ev->kind = NON_ASCII_KEYSTROKE_EVENT; - XSETINT (emacs_ev->code, event->wVirtualKeyCode); + emacs_ev->code = event->wVirtualKeyCode; } XSETFRAME (emacs_ev->frame_or_window, get_frame ()); @@ -524,8 +524,8 @@ w32_console_mouse_position (FRAME_PTR *f, *part = 0; SELECTED_FRAME ()->mouse_moved = 0; - *x = movement_pos.X; - *y = movement_pos.Y; + XSETINT(*x, movement_pos.X); + XSETINT(*y, movement_pos.Y); *time = movement_time; UNBLOCK_INPUT; @@ -593,9 +593,9 @@ do_mouse_event (MOUSE_EVENT_RECORD *event, if (but_change & mask) { if (i < NUM_TRANSLATED_MOUSE_BUTTONS) - XSETINT (emacs_ev->code, emacs_button_translation[i]); + emacs_ev->code = emacs_button_translation[i]; else - XSETINT (emacs_ev->code, i); + emacs_ev->code = i; break; } @@ -642,8 +642,7 @@ maybe_generate_resize_event () } int -w32_console_read_socket (int sd, struct input_event *bufp, int numchars, - int expected) +w32_console_read_socket (int sd, int expected, struct input_event *hold_quit) { BOOL no_events = TRUE; int nev, ret = 0, add; @@ -670,27 +669,31 @@ w32_console_read_socket (int sd, struct input_event *bufp, int numchars, return nev; } - while (nev > 0 && numchars > 0) + while (nev > 0) { + struct input_event inev; + + EVENT_INIT (inev); + inev.kind = NO_EVENT; + inev.arg = Qnil; + switch (queue_ptr->EventType) { case KEY_EVENT: - add = key_event (&queue_ptr->Event.KeyEvent, bufp, &isdead); + add = key_event (&queue_ptr->Event.KeyEvent, &inev, &isdead); if (add == -1) /* 95.7.25 by himi */ { queue_ptr--; add = 1; } - bufp += add; - ret += add; - numchars -= add; + if (add) + kbd_buffer_store_event_hold (&inev, hold_quit); break; case MOUSE_EVENT: - add = do_mouse_event (&queue_ptr->Event.MouseEvent, bufp); - bufp += add; - ret += add; - numchars -= add; + add = do_mouse_event (&queue_ptr->Event.MouseEvent, &inev); + if (add) + kbd_buffer_store_event_hold (&inev, hold_quit); break; case WINDOW_BUFFER_SIZE_EVENT: