]> git.pld-linux.org Git - packages/fontconfig.git/blob - fontconfig-constant-weight.patch
up to 2.15.0
[packages/fontconfig.git] / fontconfig-constant-weight.patch
1 From 198358dd8ff858c9e36531a7406ccb2246ae77b7 Mon Sep 17 00:00:00 2001
2 From: Akira TAGOH <akira@tagoh.org>
3 Date: Mon, 12 Mar 2018 11:49:58 +0900
4 Subject: Allow the constant names in the range
5
6 https://bugs.freedesktop.org/show_bug.cgi?id=105415
7 ---
8  src/fcname.c | 34 +++++++++++++++++++++++++++++-----
9  1 file changed, 29 insertions(+), 5 deletions(-)
10
11 diff --git a/src/fcname.c b/src/fcname.c
12 index 79e413e..15fb659 100644
13 --- a/src/fcname.c
14 +++ b/src/fcname.c
15 @@ -330,13 +330,37 @@ FcNameConvert (FcType type, FcChar8 *string)
16      case FcTypeRange:
17         if (sscanf ((char *) string, "[%lg %lg]", &b, &e) != 2)
18         {
19 -           v.u.d = strtod ((char *) string, &p);
20 -           if (p != NULL && p[0] != 0)
21 +           char *sc, *ec;
22 +           size_t len = strlen ((const char *) string);
23 +           int si, ei;
24 +
25 +           sc = malloc (len);
26 +           ec = malloc (len);
27 +           if (sc && ec && sscanf ((char *) string, "[%s %[^]]]", sc, ec) == 2)
28             {
29 -               v.type = FcTypeVoid;
30 -               break;
31 +               if (FcNameConstant ((const FcChar8 *) sc, &si) &&
32 +                   FcNameConstant ((const FcChar8 *) ec, &ei))
33 +                   v.u.r =  FcRangeCreateDouble (si, ei);
34 +               else
35 +                   goto bail1;
36 +           }
37 +           else
38 +           {
39 +           bail1:
40 +               v.type = FcTypeDouble;
41 +               if (FcNameConstant (string, &si))
42 +               {
43 +                   v.u.d = (double) si;
44 +               } else {
45 +                   v.u.d = strtod ((char *) string, &p);
46 +                   if (p != NULL && p[0] != 0)
47 +                       v.type = FcTypeVoid;
48 +               }
49             }
50 -           v.type = FcTypeDouble;
51 +           if (sc)
52 +               free (sc);
53 +           if (ec)
54 +               free (ec);
55         }
56         else
57             v.u.r = FcRangeCreateDouble (b, e);
58 -- 
59 cgit v1.1
60
61 From 4699406a68321179b14fae7412f828e2f37a7033 Mon Sep 17 00:00:00 2001
62 From: Akira TAGOH <akira@tagoh.org>
63 Date: Wed, 14 Mar 2018 18:31:30 +0900
64 Subject: Add the value of the constant name to the implicit object in the
65  pattern
66
67 For objects which has been changed the object type to FcTypeRange.
68
69 https://bugs.freedesktop.org/show_bug.cgi?id=105415
70 ---
71  src/fcname.c | 4 ++++
72  1 file changed, 4 insertions(+)
73
74 diff --git a/src/fcname.c b/src/fcname.c
75 index 15fb659..c9320ae 100644
76 --- a/src/fcname.c
77 +++ b/src/fcname.c
78 @@ -490,6 +490,10 @@ FcNameParse (const FcChar8 *name)
79                         if (!FcPatternAddBool (pat, c->object, c->value))
80                             goto bail2;
81                         break;
82 +                   case FcTypeRange:
83 +                       if (!FcPatternAddInteger (pat, c->object, c->value))
84 +                           goto bail2;
85 +                       break;
86                     default:
87                         break;
88                     }
89 -- 
90 cgit v1.1
91
This page took 0.143807 seconds and 3 git commands to generate.