]>
git.wh0rd.org - fontconfig.git/blob - src/fcfs.c
4 * Copyright © 2000 Keith Packard
6 * Permission to use, copy, modify, distribute, and sell this software and its
7 * documentation for any purpose is hereby granted without fee, provided that
8 * the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of Keith Packard not be used in
11 * advertising or publicity pertaining to distribution of the software without
12 * specific, written prior permission. Keith Packard makes no
13 * representations about the suitability of this software for any purpose. It
14 * is provided "as is" without express or implied warranty.
16 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22 * PERFORMANCE OF THIS SOFTWARE.
29 FcFontSetCreate (void)
33 s
= (FcFontSet
*) malloc (sizeof (FcFontSet
));
36 FcMemAlloc (FC_MEM_FONTSET
, sizeof (FcFontSet
));
44 FcFontSetDestroy (FcFontSet
*s
)
48 for (i
= 0; i
< s
->nfont
; i
++)
49 FcPatternDestroy (s
->fonts
[i
]);
52 FcMemFree (FC_MEM_FONTPTR
, s
->sfont
* sizeof (FcPattern
*));
55 FcMemFree (FC_MEM_FONTSET
, sizeof (FcFontSet
));
60 FcFontSetAdd (FcFontSet
*s
, FcPattern
*font
)
65 if (s
->nfont
== s
->sfont
)
67 sfont
= s
->sfont
+ 32;
69 f
= (FcPattern
**) realloc (s
->fonts
, sfont
* sizeof (FcPattern
*));
71 f
= (FcPattern
**) malloc (sfont
* sizeof (FcPattern
*));
75 FcMemFree (FC_MEM_FONTPTR
, s
->sfont
* sizeof (FcPattern
*));
76 FcMemAlloc (FC_MEM_FONTPTR
, sfont
* sizeof (FcPattern
*));
80 s
->fonts
[s
->nfont
++] = font
;
85 FcFontSetSerializeAlloc (FcSerialize
*serialize
, const FcFontSet
*s
)
89 if (!FcSerializeAlloc (serialize
, s
, sizeof (FcFontSet
)))
91 if (!FcSerializeAlloc (serialize
, s
->fonts
, s
->nfont
* sizeof (FcPattern
*)))
93 for (i
= 0; i
< s
->nfont
; i
++)
95 if (!FcPatternSerializeAlloc (serialize
, s
->fonts
[i
]))
102 FcFontSetSerialize (FcSerialize
*serialize
, const FcFontSet
* s
)
105 FcFontSet
*s_serialize
;
106 FcPattern
**fonts_serialize
;
107 FcPattern
*p_serialize
;
109 s_serialize
= FcSerializePtr (serialize
, s
);
113 s_serialize
->sfont
= s_serialize
->nfont
;
115 fonts_serialize
= FcSerializePtr (serialize
, s
->fonts
);
116 if (!fonts_serialize
)
118 s_serialize
->fonts
= FcPtrToEncodedOffset (s_serialize
,
119 fonts_serialize
, FcPattern
*);
121 for (i
= 0; i
< s
->nfont
; i
++)
123 p_serialize
= FcPatternSerialize (serialize
, s
->fonts
[i
]);
126 fonts_serialize
[i
] = FcPtrToEncodedOffset (s_serialize
,
134 #include "fcaliastail.h"