shithub: freetype+ttf2subf

Download patch

ref: 983a87c6ece8d46e33bf7f6ff68f61b0d7a133d2
parent: 47ca5cb69d26b606b51292a90d025688d4dc5e4e
author: Werner Lemberg <[email protected]>
date: Sun Jun 16 11:58:21 EDT 2019

* src/tools/apinames.c: Formatting, minor edits.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2019-06-16  Werner Lemberg  <[email protected]>
 
+	* src/tools/apinames.c: Formatting, minor edits.
+
+2019-06-16  Werner Lemberg  <[email protected]>
+
 	[autofit] Disable hinting if no blue zones are available (#56450).
 
 	* src/autofit/afglobal.c (af_face_global_get_metrics): Start again
--- a/src/tools/apinames.c
+++ b/src/tools/apinames.c
@@ -10,7 +10,7 @@
  * accepted if you are using GCC for compilation (and probably by
  * other compilers too).
  *
- * Author: David Turner, 2005, 2006, 2008-2013, 2015
+ * Author: FreeType team, 2005-2019
  *
  * This code is explicitly placed into the public domain.
  *
@@ -26,6 +26,7 @@
 
 #define  LINEBUFF_SIZE  1024
 
+
 typedef enum  OutputFormat_
 {
   OUTPUT_LIST = 0,      /* output the list of names, one per line             */
@@ -53,10 +54,12 @@
 
 } NameRec, *Name;
 
+
 static Name  the_names;
 static int   num_names;
 static int   max_names;
 
+
 static void
 names_add( const char*  name,
            const char*  end )
@@ -65,14 +68,16 @@
   int           nn, len;
   Name          nm;
 
+
   if ( end <= name )
     return;
 
   /* compute hash value */
-  len = (int)(end - name);
+  len = (int)( end - name );
   h   = 0;
+
   for ( nn = 0; nn < len; nn++ )
-    h = h*33 + name[nn];
+    h = h * 33 + name[nn];
 
   /* check for an pre-existing name */
   for ( nn = 0; nn < num_names; nn++ )
@@ -88,7 +93,7 @@
   /* add new name */
   if ( num_names >= max_names )
   {
-    max_names += (max_names >> 1) + 4;
+    max_names += ( max_names >> 1 ) + 4;
     the_names  = (NameRec*)realloc( the_names,
                                     sizeof ( the_names[0] ) * max_names );
     if ( !the_names )
@@ -97,7 +102,7 @@
   nm = &the_names[num_names++];
 
   nm->hash = h;
-  nm->name = (char*)malloc( len+1 );
+  nm->name = (char*)malloc( len + 1 );
   if ( !nm->name )
     panic( "not enough memory" );
 
@@ -116,6 +121,7 @@
   return strcmp( n1->name, n2->name );
 }
 
+
 static void
 names_sort( void )
 {
@@ -134,89 +140,95 @@
 
   switch ( format )
   {
-    case OUTPUT_WINDOWS_DEF:
-      if ( dll_name )
-        fprintf( out, "LIBRARY %s\n", dll_name );
+  case OUTPUT_WINDOWS_DEF:
+    if ( dll_name )
+      fprintf( out, "LIBRARY %s\n", dll_name );
 
-      fprintf( out, "DESCRIPTION  FreeType 2 DLL\n" );
-      fprintf( out, "EXPORTS\n" );
-      for ( nn = 0; nn < num_names; nn++ )
-        fprintf( out, "  %s\n", the_names[nn].name );
-      break;
+    fprintf( out, "DESCRIPTION  FreeType 2 DLL\n" );
+    fprintf( out, "EXPORTS\n" );
 
-    case OUTPUT_BORLAND_DEF:
-      if ( dll_name )
-        fprintf( out, "LIBRARY %s\n", dll_name );
+    for ( nn = 0; nn < num_names; nn++ )
+      fprintf( out, "  %s\n", the_names[nn].name );
 
-      fprintf( out, "DESCRIPTION  FreeType 2 DLL\n" );
-      fprintf( out, "EXPORTS\n" );
-      for ( nn = 0; nn < num_names; nn++ )
-        fprintf( out, "  _%s\n", the_names[nn].name );
-      break;
+    break;
 
-    case OUTPUT_WATCOM_LBC:
-      {
-        const char*  dot;
-        char         temp[512];
+  case OUTPUT_BORLAND_DEF:
+    if ( dll_name )
+      fprintf( out, "LIBRARY %s\n", dll_name );
 
+    fprintf( out, "DESCRIPTION  FreeType 2 DLL\n" );
+    fprintf( out, "EXPORTS\n" );
 
-        if ( !dll_name )
-        {
-          fprintf( stderr,
-                   "you must provide a DLL name with the -d option!\n" );
-          exit( 4 );
-        }
+    for ( nn = 0; nn < num_names; nn++ )
+      fprintf( out, "  _%s\n", the_names[nn].name );
 
-        /* we must omit the .dll suffix from the library name */
-        dot = strchr( dll_name, '.' );
-        if ( dot )
-        {
-          int  len = dot - dll_name;
+    break;
 
+  case OUTPUT_WATCOM_LBC:
+    {
+      const char*  dot;
+      char         temp[512];
 
-          if ( len > (int)( sizeof ( temp ) - 1 ) )
-            len = sizeof ( temp ) - 1;
 
-          memcpy( temp, dll_name, len );
-          temp[len] = 0;
-
-          dll_name = (const char*)temp;
-        }
-
-        for ( nn = 0; nn < num_names; nn++ )
-          fprintf( out, "++_%s.%s.%s\n", the_names[nn].name, dll_name,
-                        the_names[nn].name );
-      }
-      break;
-
-    case OUTPUT_NETWARE_IMP:
+      if ( !dll_name )
       {
-        if ( dll_name )
-          fprintf( out, "  (%s)\n", dll_name );
-        for ( nn = 0; nn < num_names - 1; nn++ )
-          fprintf( out, "  %s,\n", the_names[nn].name );
-        fprintf( out, "  %s\n", the_names[num_names - 1].name );
+        fprintf( stderr,
+                 "you must provide a DLL name with the -d option!\n" );
+        exit( 4 );
       }
-      break;
 
-    case OUTPUT_GNU_VERMAP:
+      /* we must omit the `.dll' suffix from the library name */
+      dot = strchr( dll_name, '.' );
+      if ( dot )
       {
-        fprintf( out, "{\n\tglobal:\n" );
-        for ( nn = 0; nn < num_names; nn++ )
-          fprintf( out, "\t\t%s;\n", the_names[nn].name );
-        fprintf( out, "\tlocal:\n\t\t*;\n};\n" );
+        int  len = dot - dll_name;
+
+
+        if ( len > (int)( sizeof ( temp ) - 1 ) )
+          len = sizeof ( temp ) - 1;
+
+        memcpy( temp, dll_name, len );
+        temp[len] = 0;
+
+        dll_name = (const char*)temp;
       }
-      break;
 
-    default:  /* LIST */
       for ( nn = 0; nn < num_names; nn++ )
-        fprintf( out, "%s\n", the_names[nn].name );
-  }
-}
+        fprintf( out, "++_%s.%s.%s\n",
+                      the_names[nn].name, dll_name, the_names[nn].name );
+    }
 
+    break;
 
+  case OUTPUT_NETWARE_IMP:
+    if ( dll_name )
+      fprintf( out, "  (%s)\n", dll_name );
 
+    for ( nn = 0; nn < num_names - 1; nn++ )
+      fprintf( out, "  %s,\n", the_names[nn].name );
+    fprintf( out, "  %s\n", the_names[num_names - 1].name );
 
+    break;
+
+  case OUTPUT_GNU_VERMAP:
+    fprintf( out, "{\n\tglobal:\n" );
+
+    for ( nn = 0; nn < num_names; nn++ )
+      fprintf( out, "\t\t%s;\n", the_names[nn].name );
+
+    fprintf( out, "\tlocal:\n\t\t*;\n};\n" );
+
+    break;
+
+  default:  /* LIST */
+    for ( nn = 0; nn < num_names; nn++ )
+      fprintf( out, "%s\n", the_names[nn].name );
+
+    break;
+  }
+}
+
+
 /* states of the line parser */
 
 typedef enum  State_
@@ -226,89 +238,96 @@
 
 } State;
 
+
 static int
-read_header_file( FILE*  file, int  verbose )
+read_header_file( FILE*  file,
+                  int    verbose )
 {
   static char  buff[LINEBUFF_SIZE + 1];
   State        state = STATE_START;
 
+
   while ( !feof( file ) )
   {
     char*  p;
 
+
     if ( !fgets( buff, LINEBUFF_SIZE, file ) )
       break;
 
     p = buff;
 
-    while ( *p && (*p == ' ' || *p == '\\') )  /* skip leading whitespace */
+    /* skip leading whitespace */
+    while ( *p && ( *p == ' ' || *p == '\\' ) )
       p++;
 
-    if ( *p == '\n' || *p == '\r' )  /* skip empty lines */
+    /* skip empty lines */
+    if ( *p == '\n' || *p == '\r' )
       continue;
 
     switch ( state )
     {
-      case STATE_START:
-        {
-          if ( memcmp( p, "FT_EXPORT(", 10 ) != 0 )
-            break;
+    case STATE_START:
+      if ( memcmp( p, "FT_EXPORT(", 10 ) != 0 )
+        break;
 
-          p += 10;
-          for (;;)
-          {
-            if ( *p == 0 || *p == '\n' || *p == '\r' )
-              goto NextLine;
+      p += 10;
+      for (;;)
+      {
+        if ( *p == 0 || *p == '\n' || *p == '\r' )
+          goto NextLine;
 
-            if ( *p == ')' )
-            {
-              p++;
-              break;
-            }
+        if ( *p == ')' )
+        {
+          p++;
+          break;
+        }
 
-            p++;
-          }
+        p++;
+      }
 
-          state = STATE_TYPE;
+      state = STATE_TYPE;
 
-         /* sometimes, the name is just after the FT_EXPORT(...), so
-          * skip whitespace, and fall-through if we find an alphanumeric
-          * character
-          */
-          while ( *p == ' ' || *p == '\t' )
-            p++;
+      /*
+       * Sometimes, the name is just after `FT_EXPORT(...)', so skip
+       * whitespace and fall-through if we find an alphanumeric character.
+       */
+      while ( *p == ' ' || *p == '\t' )
+        p++;
 
-          if ( !isalpha(*p) )
-            break;
-        }
-        /* fall-through */
+      if ( !isalpha( *p ) )
+        break;
 
-      case STATE_TYPE:
-        {
-          char*   name = p;
+      /* fall-through */
 
-          while ( isalnum(*p) || *p == '_' )
-            p++;
+    case STATE_TYPE:
+      {
+        char*   name = p;
 
-          if ( p > name )
-          {
-            if ( verbose )
-              fprintf( stderr, ">>> %.*s\n", (int)(p - name), name );
 
-            names_add( name, p );
-          }
+        while ( isalnum( *p ) || *p == '_' )
+          p++;
 
-          state = STATE_START;
+        if ( p > name )
+        {
+          if ( verbose )
+            fprintf( stderr, ">>> %.*s\n", (int)( p - name ), name );
+
+          names_add( name, p );
         }
-        break;
 
-      default:
-        ;
+        state = STATE_START;
+      }
+
+      break;
+
+    default:
+      ;
     }
 
-  NextLine:
+NextLine:
     ;
-  }
+  } /* end of while loop */
 
   return 0;
 }
@@ -318,137 +337,147 @@
 usage( void )
 {
   static const char* const  format =
-   "%s %s: extract FreeType API names from header files\n\n"
-   "this program is used to extract the list of public FreeType API\n"
-   "functions. It receives the list of header files as argument and\n"
-   "generates a sorted list of unique identifiers\n\n"
+    "%s %s: extract FreeType API names from header files\n"
+    "\n"
+    "This program extracts the list of public FreeType API functions.\n"
+    "It receives a list of header files as an argument and\n"
+    "generates a sorted list of unique identifiers in various formats.\n"
+    "\n"
+    "usage: %s header1 [options] [header2 ...]\n"
+    "\n"
+    "options:   -       parse the contents of stdin, ignore arguments\n"
+    "           -v      verbose mode, output sent to standard error\n"
+    "           -oFILE  write output to FILE instead of standard output\n"
+    "           -dNAME  indicate DLL file name, 'freetype.dll' by default\n"
+    "           -w      output .DEF file for Visual C++ and Mingw\n"
+    "           -wB     output .DEF file for Borland C++\n"
+    "           -wW     output Watcom Linker Response File\n"
+    "           -wN     output NetWare Import File\n"
+    "           -wL     output version map for GNU or Solaris linker\n"
+    "\n";
 
-   "usage: %s header1 [options] [header2 ...]\n\n"
-
-   "options:   -      : parse the content of stdin, ignore arguments\n"
-   "           -v     : verbose mode, output sent to standard error\n"
-   "           -oFILE : write output to FILE instead of standard output\n"
-   "           -dNAME : indicate DLL file name, 'freetype.dll' by default\n"
-   "           -w     : output .DEF file for Visual C++ and Mingw\n"
-   "           -wB    : output .DEF file for Borland C++\n"
-   "           -wW    : output Watcom Linker Response File\n"
-   "           -wN    : output NetWare Import File\n"
-   "           -wL    : output version map for GNU or Solaris linker\n"
-   "\n";
-
   fprintf( stderr,
            format,
            PROGRAM_NAME,
            PROGRAM_VERSION,
-           PROGRAM_NAME
-           );
-  exit(1);
+           PROGRAM_NAME );
+
+  exit( 1 );
 }
 
 
-int  main( int argc, const char* const*  argv )
+int
+main( int                 argc,
+      const char* const*  argv )
 {
-  int           from_stdin = 0;
-  int           verbose = 0;
-  OutputFormat  format = OUTPUT_LIST;  /* the default */
-  FILE*         out    = stdout;
+  int           from_stdin   = 0;
+  int           verbose      = 0;
+  OutputFormat  format       = OUTPUT_LIST;  /* the default */
+  FILE*         out          = stdout;
   const char*   library_name = NULL;
 
+
   if ( argc < 2 )
     usage();
 
-  /* '-' used as a single argument means read source file from stdin */
+  /* `-' used as a single argument means read source file from stdin */
   while ( argc > 1 && argv[1][0] == '-' )
   {
     const char*  arg = argv[1];
 
+
     switch ( arg[1] )
     {
-      case 'v':
-        verbose = 1;
-        break;
+    case 'v':
+      verbose = 1;
 
-      case 'o':
-        if ( arg[2] == 0 )
-        {
-          if ( argc < 2 )
-            usage();
+      break;
 
-          arg = argv[2];
-          argv++;
-          argc--;
-        }
-        else
-          arg += 2;
+    case 'o':
+      if ( arg[2] == 0 )
+      {
+        if ( argc < 2 )
+          usage();
 
-        out = fopen( arg, "wt" );
-        if ( !out )
-        {
-          fprintf( stderr, "could not open '%s' for writing\n", arg );
-          exit(3);
-        }
-        break;
+        arg = argv[2];
+        argv++;
+        argc--;
+      }
+      else
+        arg += 2;
 
-      case 'd':
-        if ( arg[2] == 0 )
-        {
-          if ( argc < 2 )
-            usage();
+      out = fopen( arg, "wt" );
+      if ( !out )
+      {
+        fprintf( stderr, "could not open '%s' for writing\n", arg );
+        exit( 3 );
+      }
 
-          arg = argv[2];
-          argv++;
-          argc--;
-        }
-        else
-          arg += 2;
+      break;
 
-        library_name = arg;
-        break;
+    case 'd':
+      if ( arg[2] == 0 )
+      {
+        if ( argc < 2 )
+          usage();
 
-      case 'w':
-        format = OUTPUT_WINDOWS_DEF;
-        switch ( arg[2] )
-        {
-          case 'B':
-            format = OUTPUT_BORLAND_DEF;
-            break;
+        arg = argv[2];
+        argv++;
+        argc--;
+      }
+      else
+        arg += 2;
 
-          case 'W':
-            format = OUTPUT_WATCOM_LBC;
-            break;
+      library_name = arg;
 
-          case 'N':
-            format = OUTPUT_NETWARE_IMP;
-            break;
+      break;
 
-          case 'L':
-            format = OUTPUT_GNU_VERMAP;
-            break;
+    case 'w':
+      format = OUTPUT_WINDOWS_DEF;
 
-          case 0:
-            break;
+      switch ( arg[2] )
+      {
+      case 'B':
+        format = OUTPUT_BORLAND_DEF;
+        break;
 
-          default:
-            usage();
-        }
+      case 'W':
+        format = OUTPUT_WATCOM_LBC;
         break;
 
+      case 'N':
+        format = OUTPUT_NETWARE_IMP;
+        break;
+
+      case 'L':
+        format = OUTPUT_GNU_VERMAP;
+        break;
+
       case 0:
-        from_stdin = 1;
         break;
 
       default:
         usage();
+      }
+
+      break;
+
+    case 0:
+      from_stdin = 1;
+
+      break;
+
+    default:
+      usage();
     }
 
     argc--;
     argv++;
-  }
 
+  } /* end of while loop */
+
   if ( from_stdin )
-  {
     read_header_file( stdin, verbose );
-  }
   else
   {
     for ( --argc, argv++; argc > 0; argc--, argv++ )
@@ -455,6 +484,7 @@
     {
       FILE*  file = fopen( argv[0], "rb" );
 
+
       if ( !file )
         fprintf( stderr, "unable to open '%s'\n", argv[0] );
       else
@@ -469,7 +499,7 @@
   }
 
   if ( num_names == 0 )
-    panic( "could not find exported functions !!\n" );
+    panic( "could not find exported functions\n" );
 
   names_sort();
   names_dump( out, format, library_name );
@@ -479,3 +509,6 @@
 
   return 0;
 }
+
+
+/* END */