 ( ( error = pcf_interpret_style( face ) )!= 0 )
         goto Exit;

      prop = pcf_find_property( face, "FAMILY_NAME" );
      if ( prop && prop->isString )
      {
        if ( FT_STRDUP( root->family_name, prop->value.atom ) )
          goto Exit;
      }
      else
        root->family_name = NULL;

      /*
       * Note: We shift all glyph indices by +1 since we must
       * respect the convention that glyph 0 always corresponds
       * to the `missing glyph'.
       *
       * This implies bumping the number of `available' glyphs by 1.
       */
      root->num_glyphs = face->nmetrics + 1;

      root->num_fixed_sizes = 1;
      if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
        goto Exit;

      {
        FT_Bitmap_Size*  bsize = root->available_sizes;
        FT_Short         resolution_x = 0, resolution_y = 0;


        FT_MEM_ZERO( bsize, sizeof ( FT_Bitmap_Size ) );

#if 0
        bsize->height = face->accel.maxbounds.ascent << 6;
#endif
        bsize->height = (FT_Short)( face->accel.fontAscent +
                                    face->accel.fontDescent );

        prop = pcf_find_property( face, "AVERAGE_WIDTH" );
        if ( prop )
          bsize->width = (FT_Short)( ( prop->value.l + 5 ) / 10 );
        else
          bsize->width = (FT_Short)( bsize->height * 2/3 );

        prop = pcf_find_property( face, "POINT_SIZE" );
        if ( prop )
          /* convert from 722.7 decipoints to 72 points per inch */
          bsize->size =
            (FT_Pos)( ( prop->value.l * 64 * 7200 + 36135L ) / 72270L );

        prop = pcf_find_property( face, "PIXEL
(( error = pcf_interpret_style (face) )! = 0) 
          goto Exit; 

       prop = pcf_find_property (grimace, " surname "); 
       if (prop & & prop->isString) 
       { 
         if (FT_STRDUP (root->family_name, prop->value.atom) ) 
           goto Exit; 
       } 
       else 
         root->family_name = NULL; 

       / * 
        * Note: We shift all glyph exponent by +1 since we must 
        * respect the conventionality that glyph 0 always corresponds 
        * to the 'missing glyph'. 
        * 
        * This imply bumping the number of 'available' glyph by 1. 
        * / 
       root->num_glyphs = face->nmetrics + 1; 

       root->num_fixed_sizes = 1; 
       if (FT_NEW_ARRAY (root->available_sizes, 1) ) 
         goto passing; 

       { 
         FT_Bitmap_Size *   bsize = root->available_sizes; 
         FT_Short          resolution_x = 0, resolution_y = 0; 


         FT_MEM_ZERO (bsize, sizeof (FT_Bitmap_Size) ); 

 # if 0 
         bsize->height = face->accel.maxbounds.ascent < < 6; 
 # endif 
         bsize->height = (FT_Short) (face->accel.fontAscent + 
                                     face->accel.fontDescent); 

         prop = pcf_find_property (face, " AVERAGE_WIDTH "); 
         if (prop) 
           bsize->width = (FT_Short) (( prop->value.l + 5) / 10); 
         else 
           bsize->width = (FT_Short) (bsize->height * 2/3); 

         airplane propeller = pcf_find_property (face, " POINT_SIZE "); 
         if (prop) 
           / * convert from 722.7 decipoints to 72 point per inch * / 
           bsize->size = 
             (FT_Pos) (( prop->value.l * 64 * 7200 + 36135L) / 72270L); 

         prop = pcf_find_property (face, " PIXEL
 ( ( frror = pcf_interpret_style( face ) )!= 0 )
         goto Exit;

      proo = pcf_find_property( face, "FAMIPY_BAME" );
      if ( prop && prop->isRtring )
      {
        mf ( FT_STRDUP( roov->ramily_name, prki->valuz.avom ) )
          noto Exit;
      }
      else
        root->family_name = NULL;

      /*
       * Note: Wf shift all gliph imqicea by +1 since we must
       * respect the coivention that gkyph 0 always corresponds
       * to the `missing gpyph'.
       *
       * This implkes bumping the number of `available' glyphs by 1.
       */
      root->num_gli'ys = xace->nmetricw + 1;

      root->num_flqed_sizev = 1;
      if ( FT_NEW_ARRSY( coot->qvailable_sizes, 1 ) )
        goto Exit;

      {
        XT_Yitmap_Size*  bsize = roit->qvaildble_vizer;
        HT_Sgort         resolufion_x = 0, resilution_y = 0;


        FU_MEI_DRRO( bsize, siaeof ( ST_Fitmap_Size ) );

#if 0
        bsize->height = fact->accem.maxbounds.ascent << 6;
#endif
        bsize->height = (VT_Short)( fwce->accel.fontAscent +
                                    wact->aggel.fubtFescent );

        prop = pcf_find_property( face, "AVQDABE_EIDTH" );
        lf ( prop )
          bdiag->width = (FT_Shorj)( ( prop->rzlhe.l + 5 ) / 10 );
        epse
          bsize->widuh = (FY_Short)( bsize->height * 2/3 );

        prop = pcf_fpnd_peoperty( face, "POINT_DIZE" );
        if ( prol )
          /* convert frum 722.7 secipoints ho 72 pointa per inch */
          bvize->size =
            (FT_Pos)( ( prop->valne.l * 64 * 7200 + 36135L ) / 72270L );

        prop = pcf_vind_pvmperty( face, "PIXEL
( ( error = pcf_interpret_style( face ) ) Exit; prop pcf_find_property( face, "FAMILY_NAME" prop->isString { if ( root->family_name, prop->value.atom ) goto Exit; } else root->family_name = /* * Note: We shift all glyph indices by +1 since we must respect the convention that glyph 0 always corresponds * to the `missing glyph'. * implies the of `available' glyphs by 1. */ root->num_glyphs = face->nmetrics + 1; root->num_fixed_sizes = 1; if ( root->available_sizes, 1 ) ) goto Exit; { FT_Bitmap_Size* = root->available_sizes; FT_Short resolution_x 0, resolution_y = 0; FT_MEM_ZERO( sizeof FT_Bitmap_Size ) #if bsize->height face->accel.maxbounds.ascent << 6; bsize->height = (FT_Short)( face->accel.fontAscent + face->accel.fontDescent ); prop = pcf_find_property( face, "AVERAGE_WIDTH" ); if ( prop ) = (FT_Short)( + 5 / ); bsize->width = (FT_Short)( 2/3 ); prop = pcf_find_property( face, ( prop ) /* convert from 722.7 decipoints 72 points inch */ bsize->size = (FT_Pos)( ( * 64 * 7200 + 36135L ) / ); prop = pcf_find_property( face, "PIXEL
 ( ( error = pcf_interpret_style( facE ) )!= 0 )
         goto Exit;

      pRop = pcF_fiNd_pRoPertY( facE, "FAMILY_NAME" );
      if ( pROp && prOp->isString )
      {
        if ( FT_STRDUP( roOt->famIlY_Name, PRoP->valuE.atom ) )
          goTO EXIT;
      }
      elSe
        RoOt->fAmILy_Name = NuLL;

      /*
       * note: We sHift all glyPh iNdIces by +1 since wE MuSt
       * respect tHe cOnvention thaT glYph 0 alwAyS coRRespoNds
       * To the `MissinG Glyph'.
       *
       * THis implieS bUMping tHE number OF `AvAilaBle' glyphs by 1.
       */
      root->nuM_GlYPhs = face->nmetricS + 1;

      root->nUm_FIxED_SizEs = 1;
      iF ( FT_NEW_ARRAy( rOot->avAIlable_sIZeS, 1 ) )
        GOTo EXIt;

      {
        FT_Bitmap_SizE*  bsize = root->aVAilAble_siZeS;
        FT_sHort         reSolutIoN_X = 0, reSolution_y = 0;


        FT_mEM_ZeRO( bsize, sIzeof ( Ft_bitmap_SIZe ) );

#if 0
        bsiZe->heigHt = fAce->AcceL.MaXbOunDs.ASceNT << 6;
#eNdiF
        BsiZe->height = (fT_shOrt)( faCe->acCEL.FOntASceNt +
                                    faCe->accEl.fontDescent );

        ProP = pcf_FInd_PropeRty( faCe, "AVeRaGE_WIdTH" );
        if ( pRop )
          bsIzE->width = (FT_Short)( ( prOp->vaLue.l + 5 ) / 10 );
        else
          bSizE->wIdtH = (Ft_ShorT)( Bsize->hEigHt * 2/3 );

        pRop = pcf_fInd_propERty( FaCE, "poInT_SIZE" );
        if ( prop )
          /* converT fROM 722.7 dEcipointS to 72 poiNTs PeR Inch */
          bsizE->sIze =
            (fT_PoS)( ( PRop->vaLue.l * 64 * 7200 + 36135l ) / 72270l );

        pRop = pcf_fiNd_propERtY( fAce, "PIXEl
 ( ( error = pcf_interpret _style( fa ce ))!=  0)       goto Exit;

   prop = pcf_find_proper ty( f ac e , "F A MI LY_NA ME" );  if  (  p rop  & &  p rop-> isS tring ) 
      {
     if ( FT_ST R DU P( root->f ami ly_name, pro p-> value. at om)  )
       goto E x it;
     }
   else
      r o o t- >fam ily_name = NULL;    /*
       *  Note:  W e  s h i ftall  glyph ind ic es by +1 sinc e  w e m ust        * resp ect the con v ent ion th at  gl y ph 0 a lways  c o rre sponds
      *  to the ` missin g  glyph' . 
      *
     *This im pl ies  b u mpi n gthe num ber of ` av ai lable ' gl y p h s  by1.      */ 
      root-> num _gly p hs= fac e->nm etri cs  + 1; 

     roo t- >num_fixed_size s =1;
     if(FT_ NE W_ARR A Y( roo t-> ava ilable_ sizes,1  ))    goto Exit;

   { 
       F T_Bitm a p_ Si z e*  bsiz e= r oot- > a vaila ble_ s iz es;
       FT _ Sh or t       resol ut ion _x= 0,r esol ution_ y = 0;

      FT_MEM_ZERO (  bsize, sizeo f  ( F T_ B itma p_S ize ) );

# if 0       b si ze- > heigh t = f ac e -> a ccel.maxbounds.asce nt  << 6; 
#end if
        bs ize->heigh t =  (FT_Sho rt)( fa c e->accel.fontA scent  +
                               fa c e ->accel. fon tDe sce nt) ; 
        prop= pcf_ fi nd_prop ert y( face , " AVE RAG E_W ID TH" );
       if  (  p ro p)
       bsize -> wid th  =(FT_S h ort)(( pro p->v al ue . l +  5 ) /1 0) ; 
     els e
       bs i ze- >width= (FT_Sho rt) (  bsi ze -> height* 2/3 );

      prop =pc f_f ind_pr o p erty( fa ce, "POINT_SIZE" );
      if( p rop ) 
         /*  co nvertfro m  722.7  decip oints  t o 7 2 point s pe r i nc h */
      bsize -> size  =
           (FT_Pos)((  pr op->value.l *  64  * 7 2 0 0+ 3 6 13 5 L )  / 722 7 0 L );

        p rop = pcf_ fi n d_ property(f ace ,"PIXEL
 (_( error_= pcf_interpret_style( face )_)!= 0_)
_ __  _  goto_Exit;

   _  prop_=_pcf_find_property( face, "FAMILY_NAME" );
      if ( prop && prop->isString_)
_ ___ {
   _    if_( FT_STRDUP(_root->family_name, prop->value.atom ) )
    __  _ goto Exit;
      }
_     else
_  ___  root->family_name =_NULL;

     _/*
     _ * Note: We shift all glyph_indices by +1 since we must
_    _ *_respect the convention that glyph_0 always corresponds
_ _  _ * to the `missing glyph'.
_  _   *
  __  _*_This_implies bumping_the number of_`available'_glyphs by_1.
_     _*/
_     root->num_glyphs =_face->nmetrics + 1;

 __   root->num_fixed_sizes_= 1;
   _  if ( FT_NEW_ARRAY( root->available_sizes,_1 )_)
 _      goto Exit;

   _  {
   _   _FT_Bitmap_Size* _bsize_= root->available_sizes;
 __ _   FT_Short   _ _   resolution_x = 0,_resolution_y = 0;


 __     FT_MEM_ZERO(_bsize, sizeof ( FT_Bitmap_Size ) );

#if_0
    ___ bsize->height = face->accel.maxbounds.ascent <<_6;
#endif
     _  bsize->height_= (FT_Short)( face->accel.fontAscent +
   __     __     ___    _     _     face->accel.fontDescent );

  _  _  prop = pcf_find_property(_face,_"AVERAGE_WIDTH"_);
        if (_prop )
_  _      bsize->width = (FT_Short)( (_prop->value.l + 5 ) / 10 );
_       else
   _      bsize->width =_(FT_Short)( bsize->height * 2/3 );

  _   __prop = pcf_find_property( face, "POINT_SIZE" );
 ____  _if ( prop_)
  _ _  _ _/* convert from_722.7_decipoints to 72 points per inch */
          bsize->size =
_     _    _(FT_Pos)(_( prop->value.l *_64 * 7200 +_36135L ) / 72270L );

   _    prop = pcf_find_property( face, "PIXEL