File:  [Research Unix] / researchv9 / X11 / src / X.V11R1 / lib / X / XPending.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:22:00 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#include "copyright.h"

/* $Header: /var/lib/cvsd/repos/research/researchv9/X11/src/X.V11R1/lib/X/XPending.c,v 1.1.1.1 2018/04/24 17:22:00 root Exp $ */
/* Copyright    Massachusetts Institute of Technology    1986	*/

#define NEED_EVENTS
#define NEED_REPLIES
#include "Xlibint.h"

/* Read in any pending events and return the number of queued events. */

int XPending (dpy)
    register Display *dpy;
{
	register int len;
	int pend;
	char buf[BUFSIZE];
	register xReply *rep;
	
	LockDisplay(dpy);
	_XFlush (dpy);
	if (BytesReadable(dpy->fd, (char *) &pend) < 0)
	    (*_XIOErrorFunction)(dpy);
	if ((len = pend) < sizeof(xReply)) {
	    UnlockDisplay(dpy);
	    return(dpy->qlen);
	    }
	else if (len > BUFSIZE)
	    len = BUFSIZE;
	len /= sizeof(xReply);
	pend = len * sizeof(xReply);
	_XRead (dpy, buf, (long) pend);
	for (rep = (xReply *) buf; len > 0; rep++, len--) {
	    if (rep->generic.type == X_Error)
		_XError(dpy, (xError *)rep);
	    else   /* must be an event packet */
		_XEnq(dpy, (xEvent *) rep);
	}
	UnlockDisplay(dpy);
	return(dpy->qlen);
}


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.