Include space and remove numbers from valid script tags. This ensures that
    tags like 'lao ' work while rejecting those which have any digits.
    Eliminate a spurious debugging variable (len)
diff --git a/ChangeLog b/ChangeLog
index 12182a3..7faa1e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2005-03-05  Keith Packard  <keithp@keithp.com>
 
+	* src/fcfreetype.c: (addtag), (FcFontCapabilities):
+	Include space and remove numbers from valid script tags.
+	This ensures that tags like 'lao ' work while rejecting
+	those which have any digits.
+	Eliminate a spurious debugging variable (len)
+
+2005-03-05  Keith Packard  <keithp@keithp.com>
+
 	* src/fcfreetype.c: (addtag), (GetScriptTags),
 	(FcFontCapabilities):
 	Rework GSUB/GPOS script parsing to survive broken fonts.
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 7f6ca37..4ca1ba0 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -2649,8 +2649,13 @@
 /* space + head + id */
 #define OTLAYOUT_LEN	    (1 + OTLAYOUT_HEAD_LEN + OTLAYOUT_ID_LEN)
 
-#define FcIsNumber(x)	    (060 <= (x) && (x) <= 071)
-#define FcIsAlNum(x)	    (FcIsLower(x) || FcIsUpper (x) || FcIsNumber (x))
+/*
+ * This is a bit generous; the registry has only lower case and space
+ * except for 'DFLT'.
+ */
+#define FcIsSpace(x)	    (040 == (x))
+#define FcIsValidScript(x)  (FcIsLower(x) || FcIsUpper (x) || FcIsSpace(x))
+			     
 static void
 addtag(FcChar8 *complex, FT_ULong tag)
 {
@@ -2662,13 +2667,13 @@
     tagstring[3] = (FcChar8)(tag);
     tagstring[4] = '\0';
     
-    /* skip tags which aren't alphanumeric, under the assumption that
+    /* skip tags which aren't alphabetic, under the assumption that
      * they're probably broken
      */
-    if (!FcIsAlNum(tagstring[0]) ||
-	!FcIsAlNum(tagstring[1]) ||
-	!FcIsAlNum(tagstring[2]) ||
-	!FcIsAlNum(tagstring[3]))
+    if (!FcIsValidScript(tagstring[0]) ||
+	!FcIsValidScript(tagstring[1]) ||
+	!FcIsValidScript(tagstring[2]) ||
+	!FcIsValidScript(tagstring[3]))
 	return;
 
     if (*complex != '\0')
@@ -2806,7 +2811,6 @@
         strcpy(complex, "ttable:Silf ");
 
     while ((indx1 < gsub_count) || (indx2 < gpos_count)) {
-	int len = strlen (complex);
 	if (indx1 == gsub_count) {
 	    addtag(complex, gpostags[indx2]);
 	    indx2++;