diff --git a/ChangeLog b/ChangeLog index 7370754..047dcdf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-02-10 18:44 Alexander Malmberg + + * Source/art/ftfont.m: Implement -glyphIsEncoded:. + (add_face): Avoid calling malloc(0). + 2003-02-09 Adam Fedor * Source/gsc/GSStreamContext.m (-GSShowGlyphs::): Implement to use diff --git a/Source/art/ftfont.m b/Source/art/ftfont.m index 4fd681d..6ae311f 100644 --- a/Source/art/ftfont.m +++ b/Source/art/ftfont.m @@ -345,16 +345,19 @@ static void add_face(NSString *family, int family_weight, sizes = [d objectForKey: @"ScreenFonts"]; fi->num_sizes = [sizes count]; - fi->sizes = malloc(sizeof(fi->sizes[0])*[sizes count]); - e = [sizes keyEnumerator]; - i = 0; - while ((size = [e nextObject])) + if (fi->num_sizes) { - fi->sizes[i].pixel_size = [size intValue]; - fi->sizes[i].files = fix_path(path,[sizes objectForKey: size]); - NSDebugLLog(@"ftfont",@"%@ size %i files |%@|\n", - fontName,fi->sizes[i].pixel_size,fi->sizes[i].files); - i++; + fi->sizes = malloc(sizeof(fi->sizes[0])*[sizes count]); + e = [sizes keyEnumerator]; + i = 0; + while ((size = [e nextObject])) + { + fi->sizes[i].pixel_size = [size intValue]; + fi->sizes[i].files = fix_path(path,[sizes objectForKey: size]); + NSDebugLLog(@"ftfont",@"%@ size %i files |%@|\n", + fontName,fi->sizes[i].pixel_size,fi->sizes[i].files); + i++; + } } } @@ -1442,6 +1445,20 @@ static FT_Error ft_get_face(FTC_FaceID fid, FT_Library lib, FT_Pointer data, FT_ } +-(BOOL) glyphIsEncoded: (NSGlyph)glyph +{ + FT_Face face; + + if (FTC_Manager_Lookup_Size(ftc_manager, &imgd.font, &face, 0)) + return NO; + + if (FT_Load_Glyph(face, glyph, 0)) + return NO; + + return YES; +} + + - (NSSize) advancementForGlyph: (NSGlyph)glyph { if (screenFont)