Annotation of researchv9/X11/src/X.V11R1/lib/X/XQuTextExt.c, revision 1.1.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.