File:  [CSRG BSD Unix] / 43BSD / contrib / X / Xlib / XAppendVertex.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:12:54 2018 UTC (8 years, 1 month ago) by root
Branches: MAIN, BSD
CVS tags: HEAD, BSD43
BSD 4.3

#include <X/mit-copyright.h>

/* $Header: /var/lib/cvsd/repos/CSRG/43BSD/contrib/X/Xlib/XAppendVertex.c,v 1.1.1.1 2018/04/24 16:12:54 root Exp $ */
/* Copyright    Massachusetts Institute of Technology    1985	*/

#include "XlibInternal.h"
XAppendVertex (vertices, nvert)
    Vertex vertices[];
    int nvert;
    {
    register Display *dpy = _XlibCurrentDisplay;
    register XReq *lastdraw;
    register char *old_bufptr, *new_bufptr;
    int nbytes;

    if ((lastdraw = (XReq*)(dpy->lastdraw)) == NULL)
    	return (0);  /* no draw command in output buffer */

    old_bufptr = dpy->bufptr;
    /* subtract off any padding */
    if (lastdraw->param.s[0] & 1)
	old_bufptr -= 2;
    new_bufptr = old_bufptr + (nbytes = nvert*sizeof(Vertex));
    if (new_bufptr >= dpy->bufmax)
    	return (-1); /* vertices don't fit */
    
    /* increment number of vertices in XDraw packet */
    lastdraw->param.s[0] += nvert;
    bcopy (vertices, old_bufptr, nbytes);
    /* add in padding if needed */
    if (lastdraw->param.s[0] & 1)
	new_bufptr += 2;
    dpy->bufptr = new_bufptr;
    return (nvert);
    }

unix.superglobalmegacorp.com

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