|
|
1.1 ! root 1: #include "copyright.h" ! 2: ! 3: /* $Header: XChkMaskEv.c,v 11.11 87/09/08 14:29:58 newman Exp $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1985, 1987 */ ! 5: #define NEED_EVENTS ! 6: #include "Xlibint.h" ! 7: ! 8: extern _XQEvent *_qfree; ! 9: extern long _event_to_mask[]; ! 10: ! 11: /* ! 12: * Flush output and return the next event in the queue ! 13: * matching one of the events in the mask if there is one. ! 14: * Return whether such an event was found. ! 15: * Events earlier in the queue are not discarded. ! 16: */ ! 17: ! 18: Bool XCheckMaskEvent (dpy, mask, event) ! 19: register Display *dpy; ! 20: unsigned long mask; /* Selected event mask. */ ! 21: register XEvent *event; /* XEvent to be filled in. */ ! 22: { ! 23: register _XQEvent *prev, *qelt; ! 24: int ret_value; ! 25: ! 26: (void) XPending(dpy); ! 27: LockDisplay(dpy); ! 28: _XFlush (dpy); ! 29: for (prev = NULL, qelt = dpy->head; ! 30: qelt && !(_event_to_mask[qelt->event.type] & mask); ! 31: qelt = (prev = qelt)->next) ; ! 32: if (qelt) { ! 33: *event = qelt->event; ! 34: if (prev) { ! 35: if ((prev->next = qelt->next) == NULL) ! 36: dpy->tail = prev; ! 37: } else { ! 38: if ((dpy->head = qelt->next) == NULL) ! 39: dpy->tail = NULL; ! 40: } ! 41: qelt->next = _qfree; ! 42: _qfree = qelt; ! 43: dpy->qlen--; ! 44: ret_value = 1; ! 45: } else ret_value = 0; ! 46: ! 47: UnlockDisplay(dpy); ! 48: return ret_value; ! 49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.