summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2018-03-14 13:31:50 +0100
committerUlrich Müller <ulm@gentoo.org>2018-03-14 13:31:50 +0100
commit34fb871502ff7941c54b6058727caf3ef563dc39 (patch)
treee9814c0da2b2ae0a176f78b6050519cac53bac8d /media-libs/fontconfig/files
parentsys-kernel/rt-sources: remove old (diff)
downloadgentoo-34fb871502ff7941c54b6058727caf3ef563dc39.tar.gz
gentoo-34fb871502ff7941c54b6058727caf3ef563dc39.tar.bz2
gentoo-34fb871502ff7941c54b6058727caf3ef563dc39.zip
media-libs/fontconfig: Fix handling of locale and of font weights.
Non-maintainer commit. Patches from upstream. Closes: https://bugs.gentoo.org/650332 Closes: https://bugs.gentoo.org/650370 Package-Manager: Portage-2.3.24, Repoman-2.3.6
Diffstat (limited to 'media-libs/fontconfig/files')
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.13.0-locale.patch37
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.13.0-names.patch93
2 files changed, 130 insertions, 0 deletions
diff --git a/media-libs/fontconfig/files/fontconfig-2.13.0-locale.patch b/media-libs/fontconfig/files/fontconfig-2.13.0-locale.patch
new file mode 100644
index 000000000000..70868b1abc11
--- /dev/null
+++ b/media-libs/fontconfig/files/fontconfig-2.13.0-locale.patch
@@ -0,0 +1,37 @@
+https://bugs.gentoo.org/650332
+
+From 923b5be626a6e03fbaeee0b5cd6d0246c2f8f36f Mon Sep 17 00:00:00 2001
+From: Akira TAGOH <akira@tagoh.org>
+Date: Wed, 14 Mar 2018 12:35:05 +0900
+Subject: [PATCH] Do not override locale if already set by app
+
+https://bugs.freedesktop.org/show_bug.cgi?id=105492
+---
+ src/fccfg.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/fccfg.c b/src/fccfg.c
+index eb0b76d..e311f17 100644
+--- a/src/fccfg.c
++++ b/src/fccfg.c
+@@ -45,11 +45,16 @@ retry_locale:
+ is_locale_initialized = (intptr_t) fc_atomic_ptr_get (&static_is_locale_initialized);
+ if (!is_locale_initialized)
+ {
++ char *loc;
++
+ is_locale_initialized = FcTrue;
+ if (!fc_atomic_ptr_cmpexch (&static_is_locale_initialized, NULL,
+ (void *)(intptr_t) is_locale_initialized))
+ goto retry_locale;
+- setlocale (LC_ALL, "");
++
++ loc = setlocale (LC_ALL, NULL);
++ if (!loc || strcmp (loc, "C") == 0)
++ setlocale (LC_ALL, "");
+ }
+ retry_config:
+ config = fc_atomic_ptr_get (&_fcConfig);
+--
+2.16.2
+
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
+