|
|
1.1 ! root 1: #include "copyright.h" ! 2: ! 3: /* $Header: XGetFPath.c,v 11.11 87/09/11 08:03:58 toddb Exp $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1986 */ ! 5: ! 6: #define NEED_REPLIES ! 7: #include "Xlibint.h" ! 8: ! 9: char **XGetFontPath(dpy, npaths) ! 10: register Display *dpy; ! 11: int *npaths; ! 12: { ! 13: xGetFontPathReply rep; ! 14: register long nbytes; ! 15: char **flist; ! 16: char *ch; ! 17: register int i; ! 18: register int length; ! 19: register xReq *req; ! 20: ! 21: LockDisplay(dpy); ! 22: GetEmptyReq (GetFontPath, req); ! 23: (void) _XReply (dpy, (xReply *) &rep, 0, xFalse); ! 24: if (*npaths = rep.nPaths) { ! 25: flist = (char **) Xmalloc ((unsigned)*npaths * sizeof (char *)); ! 26: nbytes = (long)rep.length << 2; ! 27: ch = (char *) Xmalloc ((unsigned) (nbytes + 1)); ! 28: /* +1 to leave room for last null-terminator */ ! 29: _XReadPad (dpy, ch, nbytes); ! 30: /* ! 31: * unpack into null terminated strings. ! 32: */ ! 33: length = *ch; ! 34: for (i = 0; i < rep.nPaths; i++) { ! 35: flist[i] = ch+1; /* skip over length */ ! 36: ch += length + 1; /* find next length ... */ ! 37: length = *ch; ! 38: *ch = '\0'; /* and replace with null-termination */ ! 39: } ! 40: } ! 41: else flist = NULL; ! 42: UnlockDisplay(dpy); ! 43: SyncHandle(); ! 44: return (flist); ! 45: } ! 46: ! 47: XFreeFontPath (list) ! 48: char **list; ! 49: { ! 50: if (list != NULL) { ! 51: Xfree (list[0]-1); ! 52: Xfree ((char *)list); ! 53: } ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.