summaryrefslogtreecommitdiff
path: root/media-libs/fontconfig/files/fontconfig-2.13.0-names.patch
diff options
context:
space:
mode:
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.patch93
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
+