shithub: freetype+ttf2subf

Download patch

ref: 750fa961c63e35913583c0d78e9bfa5bb3dfda59
parent: a0a3aa9323e8f26a4a45a05d94951c8fb3c59f5f
author: David Turner <[email protected]>
date: Sun May 1 06:11:32 EDT 2005

* Jamfile: removing otvalid from the list of compiled modules
  * include/freetype/internal/ftserv.h: added compiler pragmas to get rid
    of annoying warnings with Visual C++ compiler in maximum warning mode

  * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c,
    src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
    src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
    src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
    src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: removing compiler warnings

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2005-05-01  David Turner  <[email protected]>
+
+  * Jamfile: removing otvalid from the list of compiled modules
+  * include/freetype/internal/ftserv.h: added compiler pragmas to get rid
+    of annoying warnings with Visual C++ compiler in maximum warning mode
+    
+  * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c,
+    src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
+    src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
+    src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
+    src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: removing compiler warnings
+
+
 2005-04-28  Werner Lemberg  <[email protected]>
 
 	* docs/TODO: Updated.
--- a/Jamfile
+++ b/Jamfile
@@ -69,7 +69,7 @@
                   cid        # PostScript CID-keyed font driver
                   gzip       # support for gzip-compressed files
                   lzw        # support for LZW-compressed files
-                  otvalid    # validation of OpenType tables
+                  #otvalid    # validation of OpenType tables
                   pcf        # PCF font driver
                   pfr        # PFR/TrueDoc font driver
                   psaux      # common PostScript routines module
--- a/include/freetype/internal/ftserv.h
+++ b/include/freetype/internal/ftserv.h
@@ -34,6 +34,13 @@
 
 FT_BEGIN_HEADER
 
+#if defined( _MSC_VER )      /* Visual C++ (and Intel C++) */
+
+  /* we disable the warning `conditional expression is constant' here */
+  /* in order to compile cleanly with the maximum level of warnings   */
+#pragma warning( disable : 4127 )
+
+#endif /* _MSC_VER */
 
   /*
    * @macro:
--- a/src/autofit/afhints.c
+++ b/src/autofit/afhints.c
@@ -551,8 +551,8 @@
 
         for ( point = points; point < point_limit; point++, vec++, tag++ )
         {
-          point->fx = vec->x;
-          point->fy = vec->y;
+          point->fx = (FT_Short)vec->x;
+          point->fy = (FT_Short)vec->y;
           point->ox = point->x = FT_MulFix( vec->x, x_scale ) + x_delta;
           point->oy = point->y = FT_MulFix( vec->y, y_scale ) + y_delta;
 
@@ -634,13 +634,13 @@
           in_x   = point->fx - prev->fx;
           in_y   = point->fy - prev->fy;
 
-          point->in_dir = af_direction_compute( in_x, in_y );
+          point->in_dir = (FT_Char)af_direction_compute( in_x, in_y );
 
           next   = point->next;
           out_x  = next->fx - point->fx;
           out_y  = next->fy - point->fy;
 
-          point->out_dir = af_direction_compute( out_x, out_y );
+          point->out_dir = (FT_Char)af_direction_compute( out_x, out_y );
 
           if ( point->flags & ( AF_FLAG_CONIC | AF_FLAG_CUBIC ) )
           {
@@ -688,8 +688,8 @@
 
     for ( ; point < limit; point++, vec++, tag++ )
     {
-      vec->x = (FT_Pos)point->x;
-      vec->y = (FT_Pos)point->y;
+      vec->x = point->x;
+      vec->y = point->y;
 
       if ( point->flags & AF_FLAG_CONIC )
         tag[0] = FT_CURVE_TAG_CONIC;
--- a/src/autofit/aflatin.c
+++ b/src/autofit/aflatin.c
@@ -688,7 +688,7 @@
           {
             /* we are just leaving an edge; record a new segment! */
             segment->last = point;
-            segment->pos  = ( min_pos + max_pos ) >> 1;
+            segment->pos  = (FT_Short)(( min_pos + max_pos ) >> 1);
 
             /* a segment is round if either its first or last point */
             /* is a control point                                   */
@@ -705,8 +705,8 @@
             if ( v > max_pos )
               max_pos = v;
 
-            segment->min_coord = min_pos;
-            segment->max_coord = max_pos;
+            segment->min_coord = (FT_Short) min_pos;
+            segment->max_coord = (FT_Short) max_pos;
 
             on_edge = 0;
             segment = NULL;
@@ -732,7 +732,7 @@
           if ( error )
             goto Exit;
 
-          segment->dir      = segment_dir;
+          segment->dir      = (FT_Char) segment_dir;
           segment->flags    = AF_EDGE_NORMAL;
           min_pos = max_pos = point->u;
           segment->first    = point;
@@ -1150,10 +1150,10 @@
         edge->dir = AF_DIR_NONE;
 
         if ( ups > downs )
-          edge->dir = up_dir;
+          edge->dir = (FT_Char) up_dir;
 
         else if ( ups < downs )
-          edge->dir = -up_dir;
+          edge->dir = (FT_Char) -up_dir;
 
         else if ( ups == downs )
           edge->dir = 0;  /* both up and down! */
@@ -1232,7 +1232,7 @@
         /* zone, check for left edges                                      */
         /*                                                                 */
         /* of course, that's for TrueType                                  */
-        is_top_blue  = ( blue->flags & AF_LATIN_BLUE_TOP ) != 0;
+        is_top_blue  = (FT_Byte)(( blue->flags & AF_LATIN_BLUE_TOP ) != 0);
         is_major_dir = FT_BOOL( edge->dir == axis->major_dir );
 
         /* if it is a top zone, the edge must be against the major    */
--- a/src/base/ftstroke.c
+++ b/src/base/ftstroke.c
@@ -1425,7 +1425,7 @@
             dst_tag[0] &= ~FT_STROKE_TAG_BEGIN_END;
           else
           {
-            FT_Byte  ttag = dst_tag[0] & FT_STROKE_TAG_BEGIN_END;
+            FT_Byte  ttag = (FT_Byte)(dst_tag[0] & FT_STROKE_TAG_BEGIN_END);
 
 
             /* switch begin/end tags if necessary */
--- a/src/bdf/bdfdrivr.c
+++ b/src/bdf/bdfdrivr.c
@@ -422,7 +422,7 @@
         if ( prop )
           bsize->width = (FT_Short)( ( prop->value.int32 + 5 ) / 10 );
         else
-          bsize->width = bsize->height * 2/3;
+          bsize->width = (FT_Short)( bsize->height * 2/3 );
 
         prop = bdf_get_font_property( font, "POINT_SIZE" );
         if ( prop )
--- a/src/cache/ftcbasic.c
+++ b/src/cache/ftcbasic.c
@@ -39,8 +39,8 @@
   } FTC_BasicAttrRec, *FTC_BasicAttrs;
 
 #define FTC_BASIC_ATTR_COMPARE( a, b )                           \
-          ( FTC_SCALER_COMPARE( &(a)->scaler, &(b)->scaler ) &&  \
-            (a)->load_flags == (b)->load_flags               )
+          FT_BOOL( FTC_SCALER_COMPARE( &(a)->scaler, &(b)->scaler ) &&  \
+                   (a)->load_flags == (b)->load_flags               )
 
 #define FTC_BASIC_ATTR_HASH( a )                                   \
           ( FTC_SCALER_HASH( &(a)->scaler ) + 31*(a)->load_flags )
@@ -266,7 +266,7 @@
                          FTC_Node       *anode )
   {
     FTC_BasicQueryRec  query;
-    FTC_INode          node;
+    FTC_INode          node = 0;  /* make compiler happy */
     FT_Error           error;
     FT_UInt32          hash;
 
@@ -385,7 +385,7 @@
   {
     FT_Error           error;
     FTC_BasicQueryRec  query;
-    FTC_SNode          node;
+    FTC_SNode          node = 0; /* make compiler happy */
     FT_UInt32          hash;
 
 
--- a/src/cache/ftccmap.c
+++ b/src/cache/ftccmap.c
@@ -292,7 +292,7 @@
           FT_Set_Charmap( face, old );
       }
 
-      node->indices[char_code - node->first] = gindex;
+      node->indices[char_code - node->first] = (FT_UShort)gindex;
     }
 
   Exit:
--- a/src/cache/ftcmanag.c
+++ b/src/cache/ftcmanag.c
@@ -164,7 +164,7 @@
     FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;
 
 
-    return node->scaler.face_id == face_id;
+    return FT_BOOL(node->scaler.face_id == face_id);
   }
 
 
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1687,7 +1687,7 @@
       FT_MEM_ZERO( charset->cids, sizeof ( FT_UShort ) * max_cid );
 
       for ( i = 0; i < num_glyphs; i++ )
-        charset->cids[charset->sids[i]] = i;
+        charset->cids[charset->sids[i]] = (FT_UShort)i;
     }
 
   Exit:
@@ -2240,7 +2240,7 @@
     /* read the Charset and Encoding tables if available */
     if ( font->num_glyphs > 0 )
     {
-      FT_Bool  invert = dict->cid_registry != 0xFFFFU;
+      FT_Bool  invert = FT_BOOL( dict->cid_registry != 0xFFFFU );
 
 
       error = cff_charset_load( &font->charset, font->num_glyphs, stream,
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -536,11 +536,11 @@
       }
 
       if ( ft_isdigit( *p ) )
-        val = *p - '0';
+        val = (FT_Byte)(*p - '0');
       else if ( *p >= 'a' && *p <= 'f' )
-        val = *p - 'a';
+        val = (FT_Byte)(*p - 'a');
       else if ( *p >= 'A' && *p <= 'F' )
-        val = *p - 'A' + 10;
+        val = (FT_Byte)(*p - 'A' + 10);
       else if ( *p == ' '  ||
                 *p == '\t' ||
                 *p == '\r' ||
@@ -563,14 +563,14 @@
       }
 
       if ( upper_nibble )
-        *d = val << 4;
+        *d = (FT_Byte)(val << 4);
       else
       {
-        *d += val;
+        *d = (FT_Byte)(*d + val);
         d++;
       }
 
-      upper_nibble = 1 - upper_nibble;
+      upper_nibble = (FT_Byte)(1 - upper_nibble);
 
       if ( done )
         break;
--- a/src/lzw/zopen.c
+++ b/src/lzw/zopen.c
@@ -250,7 +250,7 @@
 
 		/* Special case for KwKwK string. */
 		if (code >= free_ent) {
-			*stackp++ = finchar;
+			*stackp++ = (unsigned char)finchar;
 			code = oldcode;
 		}
 
@@ -259,7 +259,7 @@
 			*stackp++ = tab_suffixof(code);
 			code = tab_prefixof(code);
 		}
-		*stackp++ = finchar = tab_suffixof(code);
+		*stackp++ = (unsigned char)(finchar = tab_suffixof(code));
 
 		/* And put them out in forward order.  */
 middle:
@@ -277,7 +277,7 @@
 		/* Generate the new entry. */
 		if ((code = free_ent) < maxmaxcode) {
 			tab_prefixof(code) = (unsigned short) oldcode;
-			tab_suffixof(code) = finchar;
+			tab_suffixof(code) = (unsigned char)  finchar;
 			free_ent = code + 1;
 		}
 
@@ -322,7 +322,7 @@
 		}
 		if ( zs->avail_in < (unsigned int)n_bits && in_count > (long)n_bits ) {
 			memcpy (buf, zs->next_in, zs->avail_in);
-			buf_len = zs->avail_in;
+			buf_len = (unsigned char)zs->avail_in;
 			zs->avail_in = 0;
 			return -1;
 		}
--- a/src/otvalid/otvgdef.c
+++ b/src/otvalid/otvgdef.c
@@ -174,9 +174,9 @@
     /* so we use this ugly hack to find out whether the  */
     /* table is needed actually.                         */
 
-    need_MarkAttachClassDef =
+    need_MarkAttachClassDef = FT_BOOL(
       otv_GSUBGPOS_have_MarkAttachmentType_flag( gsub ) ||
-      otv_GSUBGPOS_have_MarkAttachmentType_flag( gpos );
+      otv_GSUBGPOS_have_MarkAttachmentType_flag( gpos ) );
 
     if ( need_MarkAttachClassDef )
       table_size = 12;              /* OpenType >= 1.2 */
--- a/src/pcf/pcfread.c
+++ b/src/pcf/pcfread.c
@@ -1110,7 +1110,7 @@
         if ( prop )
           bsize->width = (FT_Short)( ( prop->value.integer + 5 ) / 10 );
         else
-          bsize->width = bsize->height * 2/3;
+          bsize->width = (FT_Short)( bsize->height * 2/3 );
 
         prop = pcf_find_property( face, "POINT_SIZE" );
         if ( prop )
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -208,7 +208,7 @@
             case TT_MS_ID_SYMBOL_CS:
             case TT_MS_ID_UNICODE_CS:
             case TT_MS_ID_UCS_4:
-              is_english = ( rec->languageID & 0x3FF ) == 0x009;
+              is_english = FT_BOOL(( rec->languageID & 0x3FF ) == 0x009);
               found_win  = n;
               break;
 
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -154,18 +154,18 @@
       if ( runcnt & GX_PT_POINTS_ARE_WORDS )
       {
         runcnt = runcnt & GX_PT_POINT_RUN_COUNT_MASK;
-        points[i++] = first = FT_GET_USHORT();
+        first  = points[i++] = FT_GET_USHORT();
 
         /* first point not included in runcount */
         for ( j = 0; j < runcnt; ++j )
-          points[i++] = ( first += FT_GET_USHORT() );
+          points[i++] = (FT_UShort)( first += FT_GET_USHORT() );
       }
       else
       {
-        points[i++] = first = FT_GET_BYTE();
+        first = points[i++] = FT_GET_BYTE();
 
         for ( j = 0; j < runcnt; ++j )
-          points[i++] = ( first += FT_GET_BYTE() );
+          points[i++] = (FT_UShort)( first += FT_GET_BYTE() );
       }
     }
 
@@ -1209,7 +1209,7 @@
       }
 
       apply = ft_var_apply_tuple( blend,
-                                  tupleIndex,
+                                  (FT_UShort) tupleIndex,
                                   tuple_coords,
                                   im_start_coords,
                                   im_end_coords );
@@ -1238,15 +1238,19 @@
       {
         /* this means that there are deltas for every entry in cvt */
         for ( j = 0; j < face->cvt_size; ++j )
-          face->cvt[j] += (FT_Short)FT_MulFix( deltas[j],
-                                               apply );
+          face->cvt[j] = (FT_Short)( face->cvt[j] + FT_MulFix( deltas[j],
+                                                               apply ) );
       }
 
       else
       {
         for ( j = 0; j < point_count; ++j )
-          face->cvt[localpoints[j]] += (FT_Short)FT_MulFix( deltas[j],
-                                                            apply );
+        {
+          int  pindex = localpoints[j];
+          
+          face->cvt[pindex] = (FT_Short)( face->cvt[pindex] +
+                                          FT_MulFix( deltas[j], apply ) );
+        }
       }
 
       if ( localpoints != ALL_POINTS )
@@ -1314,7 +1318,7 @@
     FT_Fixed*   im_end_coords   = NULL;
     FT_UInt     point_count, spoint_count = 0;
     FT_UShort*  sharedpoints = NULL;
-    FT_UShort*  localpoints;
+    FT_UShort*  localpoints  = NULL;
     FT_UShort*  points;
     FT_Short    *deltas_x, *deltas_y;
 
@@ -1400,7 +1404,7 @@
       }
 
       apply = ft_var_apply_tuple( blend,
-                                  tupleIndex,
+                                  (FT_UShort) tupleIndex,
                                   tuple_coords,
                                   im_start_coords,
                                   im_end_coords );