Commit a8772918a35d446945d3a480cdab69f838f2b399

Werner Lemberg 2014-02-04T11:36:08

[autofit] Minor fix. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling of alternative standard characters. This also fixes a compilation warning in non-debug mode.

diff --git a/ChangeLog b/ChangeLog
index 9bf1bec..c6967c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-02-04  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Minor fix.
+
+	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
+	src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
+	of alternative standard characters.
+	This also fixes a compilation warning in non-debug mode.
+
 2014-02-03  Werner Lemberg  <wl@gnu.org>
 
 	[cff] Fix Savannah bug #41363.
diff --git a/src/autofit/afcjk.c b/src/autofit/afcjk.c
index 96a2093..3a65fc5 100644
--- a/src/autofit/afcjk.c
+++ b/src/autofit/afcjk.c
@@ -104,40 +104,39 @@
       FT_UInt32  standard_char;
 
 
+      standard_char = script_class->standard_char1;
       af_get_char_index( &metrics->root,
-                         script_class->standard_char1,
+                         standard_char,
                          &glyph_index,
                          &y_offset );
-      if ( glyph_index == 0 )
+      if ( !glyph_index )
       {
         if ( script_class->standard_char2 )
         {
+          standard_char = script_class->standard_char2;
           af_get_char_index( &metrics->root,
-                             script_class->standard_char2,
+                             standard_char,
                              &glyph_index,
                              &y_offset );
-          if ( glyph_index == 0 )
+          if ( !glyph_index )
           {
             if ( script_class->standard_char3 )
             {
+              standard_char = script_class->standard_char3;
               af_get_char_index( &metrics->root,
-                                 script_class->standard_char3,
+                                 standard_char,
                                  &glyph_index,
                                  &y_offset );
-              if ( glyph_index == 0 )
+              if ( !glyph_index )
                 goto Exit;
-              else
-                standard_char = script_class->standard_char3;
             }
+            else
+              goto Exit;
           }
-          else
-            standard_char = script_class->standard_char2;
         }
         else
           goto Exit;
       }
-      else
-        standard_char = script_class->standard_char1;
 
       FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n",
                   standard_char, glyph_index ));
diff --git a/src/autofit/aflatin.c b/src/autofit/aflatin.c
index 13351c2..e3a7742 100644
--- a/src/autofit/aflatin.c
+++ b/src/autofit/aflatin.c
@@ -98,40 +98,39 @@
        * numerals.
        */
 
+      standard_char = script_class->standard_char1;
       af_get_char_index( &metrics->root,
-                         script_class->standard_char1,
+                         standard_char,
                          &glyph_index,
                          &y_offset );
-      if ( glyph_index == 0 )
+      if ( !glyph_index )
       {
         if ( script_class->standard_char2 )
         {
+          standard_char = script_class->standard_char2;
           af_get_char_index( &metrics->root,
-                             script_class->standard_char2,
+                             standard_char,
                              &glyph_index,
                              &y_offset );
-          if ( glyph_index == 0 )
+          if ( !glyph_index )
           {
             if ( script_class->standard_char3 )
             {
+              standard_char = script_class->standard_char3;
               af_get_char_index( &metrics->root,
-                                 script_class->standard_char3,
+                                 standard_char,
                                  &glyph_index,
                                  &y_offset );
-              if ( glyph_index == 0 )
+              if ( !glyph_index )
                 goto Exit;
-              else
-                standard_char = script_class->standard_char3;
             }
+            else
+              goto Exit;
           }
-          else
-            standard_char = script_class->standard_char2;
         }
         else
           goto Exit;
       }
-      else
-        standard_char = script_class->standard_char1;
 
       FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n",
                   standard_char, glyph_index ));