unsigned int n;
int error;
int gottab = 0;
- #ifdef HAVE_MBSTOWCS
- wchar_t* w_text;
- #endif
-
ft_pen.x = 0; /* start at (0,0) !! */
ft_pen.y = 0;
string->transform.yx = (FT_Fixed)( sin(M_PI*(rotation)/180.0)*0x10000);
string->transform.yy = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);
- #ifdef HAVE_MBSTOWCS
- w_text = (wchar_t) calloc (string->count,sizeof(wchar_t));
- mbstowcs(w_text,text,string->count);
- #endif
-
use_kerning = FT_HAS_KERNING(face);
previous = 0;
glyph = string->glyphs;
- for (n=0; n<string->count; n++, glyph++) {
+ for (n=0; n<string->count;glyph++) {
FT_Vector vec;
/* handle the tabs ...
have a witespace glyph inserted, but set its width such that the distance
of the new right edge is x times tabwidth from 0,0 where x is an integer. */
unsigned char letter = text[n];
+
gottab = 0;
if (letter == '\\' && n+1 < string->count && text[n+1] == 't'){
/* we have a tab here so skip the backslash and
glyph->pos.y = 0;
glyph->image = NULL;
-#ifdef HAVE_MBSTOWCS
- glyph->index = FT_Get_Char_Index( face, w_text[n] );
-#else
glyph->index = FT_Get_Char_Index( face, letter );
-#endif
/* compute glyph origin */
if ( use_kerning && previous && glyph->index ) {
/* increment number of glyphs */
previous = glyph->index;
string->num_glyphs++;
+ n++;
+
}
/* printf ("number of glyphs = %d\n", string->num_glyphs);*/
compute_string_bbox( string );
string->width = string->bbox.xMax - string->bbox.xMin;
}
string->height = string->bbox.yMax - string->bbox.yMin;
-#ifdef HAVE_MBSTOWSC
- free(w_text);
-#endif
-
+
return string;
}