Nicolas, It looks to me like you terminate the loop too early. gindex == 0 is the last glyph; you could use do {} while (); rather than while () {}.
David %^> ________________________________________ From: freetype-devel-bounces+david.bevan=pb....@nongnu.org [mailto:freetype-devel-bounces+david.bevan=pb....@nongnu.org] On Behalf Of Nicolas Rougier Sent: 23 September 2011 16:52 To: Freetype-devel@nongnu.org Subject: [ft-devel] FT_Get_Char, FT_Get_Next_Char Hi folks, Using the following code with the attached (very small) font: #include <stdio.h> #include <ft2build.h> #include FT_FREETYPE_H int main(int argc, char **argv) { FT_Face face; FT_UInt gindex; FT_ULong charcode; FT_Library library; FT_Init_FreeType( &library ); FT_New_Face( library, "./zapf.cff", 0, &face ); fprintf( stderr, "Num glyphs: %ld\n", face->num_glyphs ); charcode = FT_Get_First_Char( face, &gindex ); while ( gindex != 0 ) { fprintf( stderr, "char: %ld (index = %d)\n", charcode, gindex ); charcode = FT_Get_Next_Char( face, charcode, &gindex ); }; FT_Done_Face( face ); FT_Done_FreeType( library ); } I'm getting the following output: Num glyphs: 3 char: 32 (index = 1) char: 160 (index = 1) How do I get the last char ? (or did I do something wrong ?) Nicolas _______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel