--- pcfread_old.c Sat Dec 22 16:36:20 2001 +++ pcfread.c Sat Dec 22 17:08:51 2001 @@ -920,7 +920,7 @@ { FT_Face root = FT_FACE( face ); PCF_Property prop; - + int size_set = 0; root->num_faces = 1; root->face_index = 0; @@ -981,27 +981,46 @@ prop = find_property( face, "PIXEL_SIZE" ); if ( prop != NULL ) { - PCF_Property xres = 0, yres = 0; + root->available_sizes->width = + (FT_Short)( prop->value.integer ); + root->available_sizes->height = + (FT_Short)( prop->value.integer ); + + size_set = 1; + } + else + { + prop = find_property( face, "POINT_SIZE" ); + if ( prop != NULL ) + { + PCF_Property xres = 0, yres = 0; + + xres = find_property( face, "RESOLUTION_X" ); + yres = find_property( face, "RESOLUTION_Y" ); + + if ( ( xres != NULL ) && ( yres != NULL ) ) + { + root->available_sizes->width = + (FT_Short)( prop->value.integer * + xres->value.integer / 720 ); + root->available_sizes->height = + (FT_Short)( prop->value.integer * + yres->value.integer / 720 ); + + size_set = 1; + } + } + } - xres = find_property( face, "RESOLUTION_X" ); - yres = find_property( face, "RESOLUTION_Y" ); - if ( ( xres != NULL ) && ( yres != NULL ) ) + if (size_set == 0 ) { - root->available_sizes->width = - (FT_Short)( prop->value.integer * 75 / xres->value.integer ); - root->available_sizes->height = - (FT_Short)( prop->value.integer * 75 / yres->value.integer ); - } - } - else - { /* XXX */ #if 0 - printf( "PCF Warning: Pixel Size undefined, assuming 12\n"); + printf( "PCF Warning: Pixel Size undefined, assuming 12\n"); #endif - root->available_sizes->width = 12; - root->available_sizes->height = 12; - } + root->available_sizes->width = 12; + root->available_sizes->height = 12; + } /* XXX: charmaps */ root->charmaps = &face->charmap_handle;