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 
28 int
main(void)29 main (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