~ubuntu-branches/ubuntu/lucid/fontconfig/lucid

« back to all changes in this revision

Viewing changes to src/fcfs.c

  • Committer: Bazaar Package Importer
  • Author(s): Fabio M. Di Nitto
  • Date: 2004-10-07 06:04:17 UTC
  • Revision ID: james.westby@ubuntu.com-20041007060417-dliqa1ebkoh7isns
Tags: upstream-2.2.2
Import upstream version 2.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
28
FcFontSet *
 
29
FcFontSetCreate (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
 
 
43
void
 
44
FcFontSetDestroy (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
 
 
59
FcBool
 
60
FcFontSetAdd (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
}