freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 6387150 2/3: [ftlint] Handle font collections.


From: Werner Lemberg
Subject: [freetype2-demos] master 6387150 2/3: [ftlint] Handle font collections.
Date: Thu, 17 Jun 2021 23:41:10 -0400 (EDT)

branch: master
commit 63871509cdd9162e28cb8b99dd1eed80024ef220
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    [ftlint] Handle font collections.
    
    * src/ftlint.c (main): Increment face_index when possible.
---
 ChangeLog    |  6 ++++++
 src/ftlint.c | 23 +++++++++++++++--------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f85e815..6de1ac5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2021-06-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
+       [ftlint] Handle font collections.
+
+       * src/ftlint.c (main): Increment face_index when possible.
+
+2021-06-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
        [ftlint] Introduce quiet mode, remove extension guessing.
 
        With so many supported font formats, it does not make sense to guess
diff --git a/src/ftlint.c b/src/ftlint.c
index c390369..d3c414b 100644
--- a/src/ftlint.c
+++ b/src/ftlint.c
@@ -140,7 +140,7 @@
   main( int     argc,
         char**  argv )
   {
-    int           file_index;
+    int           file_index, face_index;
     unsigned int  id;
     char*         execname;
     char*         fname;
@@ -217,25 +217,26 @@
 
 
     /* Now check all files */
-    for ( file_index = 1; file_index < argc; file_index++ )
+    for ( face_index = 0, file_index = 1; file_index < argc; file_index++ )
     {
       fname = argv[file_index];
 
-      printf( "%s:", fname );
+      printf( "%s:\n", fname );
 
-      error = FT_New_Face( library, fname, 0, &face );
+    Next_Face:
+      error = FT_New_Face( library, fname, face_index, &face );
       if ( error == FT_Err_Unknown_File_Format )
       {
-        printf( " unknown format\n" );
+        printf( "  unknown format\n" );
         continue;
       }
       else if ( error )
       {
-        printf( " error = 0x%04x\n" , error );
+        printf( "  error = 0x%04x\n" , error );
         continue;
       }
 
-      printf( quiet ? "\n  %s %s:" : "\n  %s %s:\n",
+      printf( quiet ? "  %s %s:" : "  %s %s:\n",
               face->family_name, face->style_name );
 
       error = FT_Set_Char_Size( face, ptsize << 6, ptsize << 6, 72, 72 );
@@ -293,10 +294,16 @@
       else
         printf( "  %d fails.\n", Fail );
 
+      if ( ++face_index == face->num_faces )
+        face_index = 0;
+
       FT_Done_Face( face );
+
+      if ( face_index )
+        goto Next_Face;
     }
 
-    FT_Done_FreeType(library);
+    FT_Done_FreeType( library );
     exit( 0 );      /* for safety reasons */
 
     /* return 0; */ /* never reached */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]