fontconfig: Branch 'master'

[email protected] (Akira TAGOH)
Newsgroups gmane.comp.fonts.fontconfig
Message-ID <[email protected]>
 src/fcname.c |   34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

New commits:
commit 198358dd8ff858c9e36531a7406ccb2246ae77b7
Author: Akira TAGOH <[email protected]>
Date:   Mon Mar 12 11:49:58 2018 +0900

    Allow the constant names in the range
    
    https://bugs.freedesktop.org/show_bug.cgi?id=105415

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);
_______________________________________________
Fontconfig mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/fontconfig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.