diff options
Diffstat (limited to 'media-libs/fontconfig/files/fontconfig-2.13.0-names.patch')
-rw-r--r-- | media-libs/fontconfig/files/fontconfig-2.13.0-names.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/media-libs/fontconfig/files/fontconfig-2.13.0-names.patch b/media-libs/fontconfig/files/fontconfig-2.13.0-names.patch new file mode 100644 index 000000000000..dddc8bb95726 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.13.0-names.patch @@ -0,0 +1,93 @@ +https://bugs.gentoo.org/650370 + +From 198358dd8ff858c9e36531a7406ccb2246ae77b7 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 12 Mar 2018 11:49:58 +0900 +Subject: [PATCH 1/2] Allow the constant names in the range + +https://bugs.freedesktop.org/show_bug.cgi?id=105415 +--- + src/fcname.c | 34 +++++++++++++++++++++++++++++----- + 1 file changed, 29 insertions(+), 5 deletions(-) + +diff --git a/src/fcname.c b/src/fcname.c +index 79e413e..15fb659 100644 +--- a/src/fcname.c ++++ b/src/fcname.c +@@ -330,13 +330,37 @@ FcNameConvert (FcType type, FcChar8 *string) + case FcTypeRange: + if (sscanf ((char *) string, "[%lg %lg]", &b, &e) != 2) + { +- v.u.d = strtod ((char *) string, &p); +- if (p != NULL && p[0] != 0) ++ char *sc, *ec; ++ size_t len = strlen ((const char *) string); ++ int si, ei; ++ ++ sc = malloc (len); ++ ec = malloc (len); ++ if (sc && ec && sscanf ((char *) string, "[%s %[^]]]", sc, ec) == 2) + { +- v.type = FcTypeVoid; +- break; ++ if (FcNameConstant ((const FcChar8 *) sc, &si) && ++ FcNameConstant ((const FcChar8 *) ec, &ei)) ++ v.u.r = FcRangeCreateDouble (si, ei); ++ else ++ goto bail1; ++ } ++ else ++ { ++ bail1: ++ v.type = FcTypeDouble; ++ if (FcNameConstant (string, &si)) ++ { ++ v.u.d = (double) si; ++ } else { ++ v.u.d = strtod ((char *) string, &p); ++ if (p != NULL && p[0] != 0) ++ v.type = FcTypeVoid; ++ } + } +- v.type = FcTypeDouble; ++ if (sc) ++ free (sc); ++ if (ec) ++ free (ec); + } + else + v.u.r = FcRangeCreateDouble (b, e); +-- +2.16.2 + +From 4699406a68321179b14fae7412f828e2f37a7033 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Wed, 14 Mar 2018 18:31:30 +0900 +Subject: [PATCH 2/2] Add the value of the constant name to the implicit object + in the pattern + +For objects which has been changed the object type to FcTypeRange. + +https://bugs.freedesktop.org/show_bug.cgi?id=105415 +--- + src/fcname.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/fcname.c b/src/fcname.c +index 15fb659..c9320ae 100644 +--- a/src/fcname.c ++++ b/src/fcname.c +@@ -490,6 +490,10 @@ FcNameParse (const FcChar8 *name) + if (!FcPatternAddBool (pat, c->object, c->value)) + goto bail2; + break; ++ case FcTypeRange: ++ if (!FcPatternAddInteger (pat, c->object, c->value)) ++ goto bail2; ++ break; + default: + break; + } +-- +2.16.2 + |