test-issue180.c revision a4e54154
1/*
2 * fontconfig/test/test-issue180.c
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 the author(s) not be used in
11 * advertising or publicity pertaining to distribution of the software without
12 * specific, written prior permission.  The authors make 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 * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 * EVENT SHALL THE AUTHOR(S) 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#include <stdio.h>
25#include <stdlib.h>
26#include <fontconfig/fontconfig.h>
27
28int
29main (void)
30{
31    const FcChar8 *doc = (const FcChar8 *) ""
32	"<fontconfig>\n"
33	"  <cachedir></cachedir>\n"
34	"</fontconfig>\n"
35	"";
36    const FcChar8 *doc2 = (const FcChar8 *) ""
37	"<fontconfig>\n"
38	"  <cachedir prefix=\"xdg\"></cachedir>\n"
39	"</fontconfig>\n"
40	"";
41    FcConfig *cfg = FcConfigCreate ();
42    FcStrList *l;
43    FcChar8 *p;
44
45    if (!FcConfigParseAndLoadFromMemory (cfg, doc, FcTrue))
46    {
47	fprintf (stderr, "Unable to load a config from memory.\n");
48	return 1;
49    }
50    l = FcConfigGetCacheDirs (cfg);
51    if ((p = FcStrListNext (l)) != NULL)
52    {
53	fprintf (stderr, "There was one or more cachedirs\n");
54	return 1;
55    }
56    FcStrListDone (l);
57    FcConfigDestroy (cfg);
58
59    cfg = FcConfigCreate ();
60    if (!FcConfigParseAndLoadFromMemory (cfg, doc2, FcTrue))
61    {
62	fprintf (stderr, "Unable to load a config from memory (with prefix).\n");
63	return 1;
64    }
65    l = FcConfigGetCacheDirs (cfg);
66    if ((p = FcStrListNext (l)) != NULL)
67    {
68	fprintf (stderr, "There was one or more cachedirs (with prefix)\n");
69	return 1;
70    }
71    FcStrListDone (l);
72    FcConfigDestroy (cfg);
73
74    return 0;
75}
76