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

