|
|
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.