Annotation of researchv9/X11/src/X.V11R1/lib/X/XQuTextExt.c, revision 1.1

1.1     ! root        1: #include "copyright.h"
        !             2: 
        !             3: /* $Header: XQuTextExt.c,v 11.8 87/09/11 08:06:13 toddb Exp $ */
        !             4: /* Copyright    Massachusetts Institute of Technology    1986, 1987    */
        !             5: 
        !             6: #define NEED_REPLIES
        !             7: #include "Xlibint.h"
        !             8: 
        !             9: XQueryTextExtents (dpy, fid, string, nchars, dir, font_ascent, font_descent,
        !            10:                    overall)
        !            11:     register Display *dpy;
        !            12:     Font fid;
        !            13:     register char *string;
        !            14:     register int nchars;
        !            15:     int *dir;
        !            16:     int *font_ascent, *font_descent;
        !            17:     register XCharStruct *overall;
        !            18: {
        !            19:     int indian;
        !            20:     register int i;
        !            21:     register CARD16 *buf;
        !            22:     xQueryTextExtentsReply rep;
        !            23:     long nbytes;
        !            24:     register xQueryTextExtentsReq *req;
        !            25: 
        !            26:     LockDisplay(dpy);
        !            27:     GetReq(QueryTextExtents, req);
        !            28:     req->fid = fid;
        !            29:     nbytes = nchars << 1;
        !            30:     req->length += (nbytes + 3)>>2;
        !            31:     req->oddLength = nchars & 1;
        !            32:     buf = (CARD16 *) _XAllocScratch (dpy, 
        !            33:        (unsigned long)nchars * sizeof(CARD16));
        !            34:     /*
        !            35:      * this call does not have to be all that swift, as it is doing round
        !            36:      * trip; have to expand to 16 bit anyway.
        !            37:      */
        !            38:     for (i = 0; i < nchars; i++) {
        !            39:         buf[i] = (unsigned)*string++;
        !            40:        }
        !            41:     /*
        !            42:      * always send big indian....
        !            43:      */
        !            44:     indian = 1;
        !            45:     if (*(char *) & indian) _swapshort ((char *)buf, nbytes);
        !            46:     Data (dpy, (char *) buf, nbytes);
        !            47:     if (!_XReply (dpy, (xReply *)&rep, 0, xTrue))
        !            48:        return (0);
        !            49:     *dir = rep.drawDirection;
        !            50:     *font_ascent = rep.fontAscent;
        !            51:     *font_descent = rep.fontDescent;
        !            52:     overall->ascent = rep.overallAscent;
        !            53:     overall->descent = rep.overallDescent;
        !            54:     overall->width  = rep.overallWidth;
        !            55:     overall->lbearing = rep.overallLeft;
        !            56:     overall->rbearing = rep.overallRight;
        !            57:     UnlockDisplay(dpy);
        !            58:     SyncHandle();
        !            59:     return (1);
        !            60: }
        !            61: 

unix.superglobalmegacorp.com

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