]> git.pld-linux.org Git - packages/fontconfig.git/blame - fontconfig-constant-weight.patch
temporarily enable showing test/test-suite.log on test failure
[packages/fontconfig.git] / fontconfig-constant-weight.patch
CommitLineData
224401c7
JP
1diff --git a/src/fcname.c b/src/fcname.c
2index 79e413e..2172d70 100644
3--- a/src/fcname.c
4+++ b/src/fcname.c
5@@ -330,13 +330,36 @@ FcNameConvert (FcType type, FcChar8 *string)
6 case FcTypeRange:
7 if (sscanf ((char *) string, "[%lg %lg]", &b, &e) != 2)
8 {
9- v.u.d = strtod ((char *) string, &p);
10- if (p != NULL && p[0] != 0)
11+ char *sc, *ec;
12+ size_t len = strlen ((const char *) string);
13+ int si, ei;
14+
15+ sc = malloc (len);
16+ ec = malloc (len);
17+ if (sc && ec && sscanf ((char *) string, "[%s %[^]]]", sc, ec) == 2)
18 {
19- v.type = FcTypeVoid;
20- break;
21+ if (FcNameConstant ((const FcChar8 *) sc, &si) && FcNameConstant ((const FcChar8 *) ec, &ei))
22+ v.u.r = FcRangeCreateDouble (si, ei);
23+ else
24+ goto bail1;
25+ }
26+ else
27+ {
28+ bail1:
29+ v.type = FcTypeDouble;
30+ if (FcNameConstant (string, &si))
31+ {
32+ v.u.d = (double) si;
33+ } else {
34+ v.u.d = strtod ((char *) string, &p);
35+ if (p != NULL && p[0] != 0)
36+ v.type = FcTypeVoid;
37+ }
38 }
39- v.type = FcTypeDouble;
40+ if (sc)
41+ free (sc);
42+ if (ec)
43+ free (ec);
44 }
45 else
46 v.u.r = FcRangeCreateDouble (b, e);
This page took 0.097601 seconds and 4 git commands to generate.