source: trunk/poppler/fontconfig-2.3.2-os2/src/fcfs.c @ 2

Last change on this file since 2 was 2, checked in by Eugene Romanenko, 16 years ago

First import

File size: 2.3 KB
Line 
1/*
2 * $RCSId: $
3 *
4 * Copyright © 2000 Keith Packard
5 *
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.
15 *
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.
23 */
24
25#include <stdlib.h>
26#include "fcint.h"
27
28FcFontSet *
29FcFontSetCreate (void)
30{
31    FcFontSet   *s;
32
33    s = (FcFontSet *) malloc (sizeof (FcFontSet));
34    if (!s)
35        return 0;
36    FcMemAlloc (FC_MEM_FONTSET, sizeof (FcFontSet));
37    s->nfont = 0;
38    s->sfont = 0;
39    s->fonts = 0;
40    return s;
41}
42
43void
44FcFontSetDestroy (FcFontSet *s)
45{
46    int     i;
47
48    for (i = 0; i < s->nfont; i++)
49        FcPatternDestroy (s->fonts[i]);
50    if (s->fonts)
51    {
52        FcMemFree (FC_MEM_FONTPTR, s->sfont * sizeof (FcPattern *));
53        free (s->fonts);
54    }
55    FcMemFree (FC_MEM_FONTSET, sizeof (FcFontSet));
56    free (s);
57}
58
59FcBool
60FcFontSetAdd (FcFontSet *s, FcPattern *font)
61{
62    FcPattern   **f;
63    int         sfont;
64   
65    if (s->nfont == s->sfont)
66    {
67        sfont = s->sfont + 32;
68        if (s->fonts)
69            f = (FcPattern **) realloc (s->fonts, sfont * sizeof (FcPattern *));
70        else
71            f = (FcPattern **) malloc (sfont * sizeof (FcPattern *));
72        if (!f)
73            return FcFalse;
74        if (s->sfont)
75            FcMemFree (FC_MEM_FONTPTR, s->sfont * sizeof (FcPattern *));
76        FcMemAlloc (FC_MEM_FONTPTR, sfont * sizeof (FcPattern *));
77        s->sfont = sfont;
78        s->fonts = f;
79    }
80    s->fonts[s->nfont++] = font;
81    return FcTrue;
82}
Note: See TracBrowser for help on using the repository browser.