pango r2646 - in trunk: . pango
- From: behdad svn gnome org
 
- To: svn-commits-list gnome org
 
- Subject: pango r2646 - in trunk: . pango
 
- Date: Wed, 28 May 2008 16:43:46 +0000 (UTC)
 
Author: behdad
Date: Wed May 28 16:43:46 2008
New Revision: 2646
URL: http://svn.gnome.org/viewvc/pango?rev=2646&view=rev
Log:
2008-05-28  Behdad Esfahbod  <behdad gnome org>
        Bug 510299 â OpenType font variants are broken with ATSUI/Cairo
        * pango/fonts.c (field_matches), (find_field): Ignore dashes when
        matching fong description fields.
Modified:
   trunk/ChangeLog
   trunk/pango/fonts.c
Modified: trunk/pango/fonts.c
==============================================================================
--- trunk/pango/fonts.c	(original)
+++ trunk/pango/fonts.c	Wed May 28 16:43:46 2008
@@ -885,14 +885,41 @@
 };
 
 static gboolean
+field_matches (const gchar *s1,
+	       const gchar *s2,
+	       gsize n)
+{
+  gint c1, c2;
+
+  g_return_val_if_fail (s1 != NULL, 0);
+  g_return_val_if_fail (s2 != NULL, 0);
+
+  while (n && *s1 && *s2)
+    {
+      c1 = (gint)(guchar) TOLOWER (*s1);
+      c2 = (gint)(guchar) TOLOWER (*s2);
+      if (c1 != c2) {
+        if (c1 == '-') {
+	  s1++;
+	  continue;
+	}
+	return FALSE;
+      }
+      s1++; s2++;
+      n--;
+    }
+
+  return n == 0 && *s1 == '\0';
+}
+
+static gboolean
 find_field (const FieldMap *map, int n_elements, const char *str, int len, int *val)
 {
   int i;
 
   for (i=0; i<n_elements; i++)
     {
-      if (map[i].str[0] && g_ascii_strncasecmp (map[i].str, str, len) == 0 &&
-	  map[i].str[len] == '\0')
+      if (map[i].str[0] && field_matches (map[i].str, str, len))
 	{
 	  if (val)
 	    *val = map[i].value;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]