Allow the const names in the range.

This commit is contained in:
Akira TAGOH 2018-03-12 11:56:13 +09:00
parent 9973b49c81
commit 59f675746d
2 changed files with 65 additions and 1 deletions

View File

@ -0,0 +1,60 @@
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] 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.14.3

View File

@ -3,7 +3,7 @@
Summary: Font configuration and customization library
Name: fontconfig
Version: 2.13.0
Release: 1%{?dist}
Release: 2%{?dist}
# src/ftglue.[ch] is in Public Domain
# src/fccache.c contains Public Domain code
# fc-case/CaseFolding.txt is in the UCD
@ -17,6 +17,7 @@ Source2: fc-cache
# https://bugzilla.redhat.com/show_bug.cgi?id=140335
Patch0: %{name}-sleep-less.patch
Patch1: %{name}-required-freetype-version.patch
Patch2: %{name}-const-name-in-range.patch
BuildRequires: expat-devel
BuildRequires: freetype-devel >= %{freetype_version}
@ -160,6 +161,9 @@ HOME=/root /usr/bin/fc-cache -s
%doc fontconfig-devel.txt fontconfig-devel
%changelog
* Mon Mar 12 2018 Akira TAGOH <tagoh@redhat.com> - 2.13.0-2
- Allow the const names in the range.
* Tue Mar 06 2018 Akira TAGOH <tagoh@redhat.com> - 2.13.0-1
- New upstream release.