- Remove svn:needs-lock, svn:eol-type, and svn:eol-tyle properties.
[reactos.git] / reactos / lib / 3rdparty / freetype / src / tools / test_afm.c
index d815c66..d53cb33 100644 (file)
-/*\r
- * gcc -DFT2_BUILD_LIBRARY -I../../include -o test_afm test_afm.c \\r
- *     -L../../objs/.libs -lfreetype -lz -static\r
- */\r
-#include <ft2build.h>\r
-#include FT_FREETYPE_H\r
-#include FT_INTERNAL_STREAM_H\r
-#include FT_INTERNAL_POSTSCRIPT_AUX_H\r
-\r
-  void dump_fontinfo( AFM_FontInfo  fi )\r
-  {\r
-    FT_Int  i;\r
-\r
-\r
-    printf( "This AFM is for %sCID font.\n\n",\r
-            ( fi->IsCIDFont ) ? "" : "non-" );\r
-\r
-    printf( "FontBBox: %.2f %.2f %.2f %.2f\n", fi->FontBBox.xMin / 65536.,\r
-                                               fi->FontBBox.yMin / 65536.,\r
-                                               fi->FontBBox.xMax / 65536.,\r
-                                               fi->FontBBox.yMax / 65536. );\r
-    printf( "Ascender: %.2f\n", fi->Ascender / 65536. );\r
-    printf( "Descender: %.2f\n\n", fi->Descender / 65536. );\r
-\r
-    if ( fi->NumTrackKern )\r
-      printf( "There are %d sets of track kernings:\n",\r
-              fi->NumTrackKern );\r
-    else\r
-      printf( "There is no track kerning.\n" );\r
-\r
-    for ( i = 0; i < fi->NumTrackKern; i++ )\r
-    {\r
-      AFM_TrackKern  tk = fi->TrackKerns + i;\r
-\r
-\r
-      printf( "\t%2d: %5.2f %5.2f %5.2f %5.2f\n", tk->degree,\r
-                                                  tk->min_ptsize / 65536.,\r
-                                                  tk->min_kern / 65536.,\r
-                                                  tk->max_ptsize / 65536.,\r
-                                                  tk->max_kern / 65536. );\r
-    }\r
-\r
-    printf( "\n" );\r
-\r
-    if ( fi->NumKernPair )\r
-      printf( "There are %d kerning pairs:\n",\r
-              fi->NumKernPair );\r
-    else\r
-      printf( "There is no kerning pair.\n" );\r
-\r
-    for ( i = 0; i < fi->NumKernPair; i++ )\r
-    {\r
-      AFM_KernPair  kp = fi->KernPairs + i;\r
-\r
-\r
-      printf( "\t%3d + %3d => (%4d, %4d)\n", kp->index1,\r
-                                             kp->index2,\r
-                                             kp->x,\r
-                                             kp->y );\r
-    }\r
-\r
-  }\r
-\r
-  int\r
-  dummy_get_index( const char*  name,\r
-                   FT_UInt      len,\r
-                   void*        user_data )\r
-  {\r
-    if ( len )\r
-      return name[0];\r
-    else\r
-      return 0;\r
-  }\r
-\r
-  FT_Error\r
-  parse_afm( FT_Library    library,\r
-             FT_Stream     stream,\r
-             AFM_FontInfo  fi )\r
-  {\r
-    PSAux_Service  psaux;\r
-    AFM_ParserRec  parser;\r
-    FT_Error       error = FT_Err_Ok;\r
-\r
-\r
-    psaux = (PSAux_Service)FT_Get_Module_Interface( library, "psaux" );\r
-    if ( !psaux || !psaux->afm_parser_funcs )\r
-      return -1;\r
-\r
-    error = FT_Stream_EnterFrame( stream, stream->size );\r
-    if ( error )\r
-      return error;\r
-\r
-    error = psaux->afm_parser_funcs->init( &parser,\r
-                                           library->memory,\r
-                                           stream->cursor,\r
-                                           stream->limit );\r
-    if ( error )\r
-      return error;\r
-\r
-    parser.FontInfo = fi;\r
-    parser.get_index = dummy_get_index;\r
-\r
-    error = psaux->afm_parser_funcs->parse( &parser );\r
-\r
-    psaux->afm_parser_funcs->done( &parser );\r
-\r
-    return error;\r
-  }\r
-\r
-\r
-  int main( int    argc,\r
-            char** argv )\r
-  {\r
-    FT_Library       library;\r
-    FT_StreamRec     stream;\r
-    FT_Error         error = FT_Err_Ok;\r
-    AFM_FontInfoRec  fi;\r
-\r
-\r
-    if ( argc < 2 )\r
-      return FT_Err_Invalid_Argument;\r
-\r
-    error = FT_Init_FreeType( &library );\r
-    if ( error )\r
-      return error;\r
-\r
-    FT_ZERO( &stream );\r
-    error = FT_Stream_Open( &stream, argv[1] );\r
-    if ( error )\r
-      goto Exit;\r
-    stream.memory = library->memory;\r
-\r
-    FT_ZERO( &fi );\r
-    error = parse_afm( library, &stream, &fi );\r
-\r
-    if ( !error )\r
-    {\r
-      FT_Memory  memory = library->memory;\r
-\r
-\r
-      dump_fontinfo( &fi );\r
-\r
-      if ( fi.KernPairs )\r
-        FT_FREE( fi.KernPairs );\r
-      if ( fi.TrackKerns )\r
-        FT_FREE( fi.TrackKerns );\r
-    }\r
-    else\r
-      printf( "parse error\n" );\r
-\r
-    FT_Stream_Close( &stream );\r
-\r
-  Exit:\r
-    FT_Done_FreeType( library );\r
-\r
-    return error;\r
-  }\r
+/*
+ * gcc -DFT2_BUILD_LIBRARY -I../../include -o test_afm test_afm.c \
+ *     -L../../objs/.libs -lfreetype -lz -static
+ */
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_STREAM_H
+#include FT_INTERNAL_POSTSCRIPT_AUX_H
+
+  void dump_fontinfo( AFM_FontInfo  fi )
+  {
+    FT_Int  i;
+
+
+    printf( "This AFM is for %sCID font.\n\n",
+            ( fi->IsCIDFont ) ? "" : "non-" );
+
+    printf( "FontBBox: %.2f %.2f %.2f %.2f\n", fi->FontBBox.xMin / 65536.,
+                                               fi->FontBBox.yMin / 65536.,
+                                               fi->FontBBox.xMax / 65536.,
+                                               fi->FontBBox.yMax / 65536. );
+    printf( "Ascender: %.2f\n", fi->Ascender / 65536. );
+    printf( "Descender: %.2f\n\n", fi->Descender / 65536. );
+
+    if ( fi->NumTrackKern )
+      printf( "There are %d sets of track kernings:\n",
+              fi->NumTrackKern );
+    else
+      printf( "There is no track kerning.\n" );
+
+    for ( i = 0; i < fi->NumTrackKern; i++ )
+    {
+      AFM_TrackKern  tk = fi->TrackKerns + i;
+
+
+      printf( "\t%2d: %5.2f %5.2f %5.2f %5.2f\n", tk->degree,
+                                                  tk->min_ptsize / 65536.,
+                                                  tk->min_kern / 65536.,
+                                                  tk->max_ptsize / 65536.,
+                                                  tk->max_kern / 65536. );
+    }
+
+    printf( "\n" );
+
+    if ( fi->NumKernPair )
+      printf( "There are %d kerning pairs:\n",
+              fi->NumKernPair );
+    else
+      printf( "There is no kerning pair.\n" );
+
+    for ( i = 0; i < fi->NumKernPair; i++ )
+    {
+      AFM_KernPair  kp = fi->KernPairs + i;
+
+
+      printf( "\t%3d + %3d => (%4d, %4d)\n", kp->index1,
+                                             kp->index2,
+                                             kp->x,
+                                             kp->y );
+    }
+
+  }
+
+  int
+  dummy_get_index( const char*  name,
+                   FT_UInt      len,
+                   void*        user_data )
+  {
+    if ( len )
+      return name[0];
+    else
+      return 0;
+  }
+
+  FT_Error
+  parse_afm( FT_Library    library,
+             FT_Stream     stream,
+             AFM_FontInfo  fi )
+  {
+    PSAux_Service  psaux;
+    AFM_ParserRec  parser;
+    FT_Error       error = FT_Err_Ok;
+
+
+    psaux = (PSAux_Service)FT_Get_Module_Interface( library, "psaux" );
+    if ( !psaux || !psaux->afm_parser_funcs )
+      return -1;
+
+    error = FT_Stream_EnterFrame( stream, stream->size );
+    if ( error )
+      return error;
+
+    error = psaux->afm_parser_funcs->init( &parser,
+                                           library->memory,
+                                           stream->cursor,
+                                           stream->limit );
+    if ( error )
+      return error;
+
+    parser.FontInfo = fi;
+    parser.get_index = dummy_get_index;
+
+    error = psaux->afm_parser_funcs->parse( &parser );
+
+    psaux->afm_parser_funcs->done( &parser );
+
+    return error;
+  }
+
+
+  int main( int    argc,
+            char** argv )
+  {
+    FT_Library       library;
+    FT_StreamRec     stream;
+    FT_Error         error = FT_Err_Ok;
+    AFM_FontInfoRec  fi;
+
+
+    if ( argc < 2 )
+      return FT_Err_Invalid_Argument;
+
+    error = FT_Init_FreeType( &library );
+    if ( error )
+      return error;
+
+    FT_ZERO( &stream );
+    error = FT_Stream_Open( &stream, argv[1] );
+    if ( error )
+      goto Exit;
+    stream.memory = library->memory;
+
+    FT_ZERO( &fi );
+    error = parse_afm( library, &stream, &fi );
+
+    if ( !error )
+    {
+      FT_Memory  memory = library->memory;
+
+
+      dump_fontinfo( &fi );
+
+      if ( fi.KernPairs )
+        FT_FREE( fi.KernPairs );
+      if ( fi.TrackKerns )
+        FT_FREE( fi.TrackKerns );
+    }
+    else
+      printf( "parse error\n" );
+
+    FT_Stream_Close( &stream );
+
+  Exit:
+    FT_Done_FreeType( library );
+
+    return error;
+  }