freetype-devel
[Top][All Lists]
Advanced

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

[Devel] BUGREPORT: ATARI-PureC-Compiler with FT_SIZEOF_INT=2


From: PORTHOS
Subject: [Devel] BUGREPORT: ATARI-PureC-Compiler with FT_SIZEOF_INT=2
Date: Tue, 17 Sep 2002 09:08:08 +0200

Hallo devel,

Here comes just a little bit mor stuff.........

------> means: replace FT_Int by FT_Long
???????means: I do not know
======means: may be it works without changes - but itŽs a question of
honour....


 t1parse.c
 =================
        /* put a safeguard */
----->        parser->private_len = (FT_Int)( write - parser->private_dict );
        *write++ = 0;


t1load.c
==================
    /* each token is an immediate containing the name of the axis */
    for ( n = 0; n < num_axis; n++ )
    {
      T1_Token  token = axis_tokens + n;
      FT_Byte*  name;
----->      FT_Int    len;


      /* skip first slash, if any */
      if ( token->start[0] == '/' )
        token->start++;

----->      len = (FT_Int)( token->limit - token->start );



      /* read the number of entries in the encoding, should be 256 */
=====      count = T1_ToInt( parser );
EITHER count is FT_Long OR it must be count=(FT_Int) T1_ToInt(parser)
      if ( parser->root.error )
        return;

        /* otherwise, we must find a number before anything else */
        if ( (FT_Byte)( c - '0' ) < 10 )
        {
          FT_Int  charcode;


          parser->root.cursor = cur;
=======          charcode = T1_ToInt( parser );
see above
          cur      = parser->root.cursor;

    if ( loader->num_subrs )
      /*  with synthetic fonts, it's possible we get here twice  */
      return;

=====    loader->num_subrs = T1_ToInt( parser );
see above

=====    loader->num_glyphs = T1_ToInt( parser );
see above
    if ( parser->root.error )
      return;

  static void
  parse_font_name( T1_Face    face,
                   T1_Loader  loader )
  {
    T1_Parser  parser = &loader->parser;
    FT_Error   error;
    FT_Memory  memory = parser->root.memory;
----->    FT_Int     len;
    FT_Byte*   cur;
    FT_Byte*   cur2;
    FT_Byte*   limit;


    if ( face->type1.font_name )
      /*  with synthetic fonts, it's possible we get here twice  */
      return;

    T1_Skip_Spaces( parser );

    cur   = parser->root.cursor;
    limit = parser->root.limit;

    if ( cur >= limit - 1 || *cur != '/' )
      return;

    cur++;
    cur2 = cur;
    while ( cur2 < limit && is_alpha( *cur2 ) )
      cur2++;

----->    len = (FT_Int)( cur2 - cur );




???????          FT_Int  charcode;
I do not know....

          parser->root.cursor = cur;
????????          charcode = T1_ToInt( parser );
...see above
          cur      = parser->root.cursor;

          /* skip whitespace */
          while ( cur < limit && is_space( *cur ) )
            cur++;

          if ( cur < limit && *cur == '/' )
          {
            /* bingo, we have an immediate name -- it must be a */
            /* character name                                   */
            FT_Byte*  cur2 = cur + 1;
----->            FT_Int    len;


            while ( cur2 < limit && is_alpha( *cur2 ) )
              cur2++;

----->            len = (FT_Int)( cur2 - cur - 1 );



  static int
  read_binary_data( T1_Parser  parser,
----->                    FT_Int*    size,
                    FT_Byte**  base )





    /* the format is simple:                                 */
    /*                                                       */
    /*   `index' + binary data                               */
    /*                                                       */
    for ( n = 0; n < loader->num_subrs; n++ )
    {
----->      FT_Int    idx, size;
      FT_Byte*  base;





    for (;;)
    {
----->      FT_Long    size;
      FT_Byte*  base;


      /* the format is simple:                    */



      if ( *cur != '/' )
        T1_Skip_Alpha( parser );
      else
      {
        FT_Byte*  cur2 = cur + 1;
----->        FT_Int    len;

        while ( cur2 < limit && is_alpha( *cur2 ) )
          cur2++;
----->        len = (FT_Int)( cur2 - cur - 1 );





----->          len  = (FT_Int)( cur2 - cur );
          if ( len > 0 && len < 22 )
          {
            {
              /* now, compare the immediate name to the keyword table */

                if ( cur[0] == name[0]                             &&
----->                     len == (FT_Int)ft_strlen( (const char*)name ) )




    /* we must now build type1.encoding when we have a custom array */
    if ( type1->encoding_type == T1_ENCODING_TYPE_ARRAY )
    {
      FT_Int    charcode, idx, min_char, max_char;
???????????
16bit really always enough?


 t1afm.c
 =================
  /* read a glyph name and return the equivalent glyph index */
  static FT_UInt
  afm_atoindex( FT_Byte**  start,
                FT_Byte*   limit,
                T1_Font    type1 )
  {
    FT_Byte*  p = *start;
----->    FT_Int    len;
    FT_UInt   result = 0;
    char      temp[64];




    /* now, read glyph name */
    while ( IS_ALPHANUM( *p ) && p < limit )
      p++;

----->    len = (FT_Int)( p - *start );



 t1parse.h
 =================
  typedef struct  T1_ParserRec_
  {
    PS_ParserRec  root;
    FT_Stream     stream;

    FT_Byte*      base_dict;
----->    FT_Int        base_len;


-- 
Mit freundlichen Grüßen,
Wolfgang Domröse
mailto:address@hidden




reply via email to

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