Mercurial > emacs
view oldXMenu/insque.c @ 54173:03cb01738926
(x_focus_changed, x_detect_focus_change): Remove
numchars arg. Always store event into bufp arg. Return nothing.
Callers changed accordingly.
(glyph_rect): Simplify.
(STORE_KEYSYM_FOR_DEBUG): New macro.
(SET_SAVED_MENU_EVENT): Use inev instead of bufp, etc.
(current_bufp, current_numcharsp) [USE_GTK]: Remove.
(current_hold_quit) [USE_GTK]: Add.
(event_handler_gdk): Adapt to new handle_one_xevent.
(handle_one_xevent): Remove bufp_r and numcharsp args.
Add hold_quit arg. Rework to use just one, local, inev
input_event. Store inev directly in fifo using
kbd_buffer_store_event_hold. Update count in one place.
Postpone call to gen_help_event until inev is stored; use new
local do_help for this.
Simplify handling of keysyms (consolidate common code). Fix bug
where count was updated with nchars instead of nbytes.
Remove local emacs_event in handing of ButtonPress event; just use
inev instead (so no reason to copy it later).
Remove `out' label. Rename label `ret' to `done'; add various
`goto done' to clarify code flow in deeply nested blocks.
(x_dispatch_event): Simplify as handle_one_xevent now calls
kbd_buffer_store_event itself.
(XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit
arg. Call handle_one_xevent with new arglist. Store event from
x_session_check_input in fifo.
[USE_GTK]: Setup current_hold_quit.
Decrement handling_signal before unblocking input.
(x_initialize) [USE_GTK]: Initialize current_count.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 27 Feb 2004 23:49:48 +0000 |
parents | 695cf19ef79e |
children | 3861ff8f4bf1 375f2633d815 |
line wrap: on
line source
/* This file implements the emacs_insque and emacs_remque functions, copies of the insque and remque functions of BSD. They and all their callers have been renamed to emacs_mumble to allow us to include this file in the menu library on all systems. */ struct qelem { struct qelem *q_forw; struct qelem *q_back; char q_data[1]; }; /* Insert ELEM into a doubly-linked list, after PREV. */ void emacs_insque (elem, prev) struct qelem *elem, *prev; { struct qelem *next = prev->q_forw; prev->q_forw = elem; if (next) next->q_back = elem; elem->q_forw = next; elem->q_back = prev; } /* Unlink ELEM from the doubly-linked list that it is in. */ emacs_remque (elem) struct qelem *elem; { struct qelem *next = elem->q_forw; struct qelem *prev = elem->q_back; if (next) next->q_back = prev; if (prev) prev->q_forw = next; } /* arch-tag: a8719d1a-5c3f-4bce-b36b-173106d36165 (do not change this comment) */