projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
increasse revision of shared library number since the library source code has changed
[rrdtool.git]
/
src
/
rrd_gfx.c
diff --git
a/src/rrd_gfx.c
b/src/rrd_gfx.c
index
9455d85
..
045892a
100644
(file)
--- a/
src/rrd_gfx.c
+++ b/
src/rrd_gfx.c
@@
-372,6
+372,9
@@
gfx_string gfx_string_create(FT_Face face,const char *text,
unsigned int n;
int error;
int gottab = 0;
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;
ft_pen.x = 0; /* start at (0,0) !! */
ft_pen.y = 0;
@@
-387,6
+390,11
@@
gfx_string gfx_string_create(FT_Face face,const char *text,
string->transform.yx = (FT_Fixed)( sin(M_PI*(rotation)/180.0)*0x10000);
string->transform.yy = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);
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;
use_kerning = FT_HAS_KERNING(face);
previous = 0;
glyph = string->glyphs;
@@
-395,7
+403,7
@@
gfx_string gfx_string_create(FT_Face face,const char *text,
/* 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. */
/* 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. */
- char letter = text[n];
+
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
gottab = 0;
if (letter == '\\' && n+1 < string->count && text[n+1] == 't'){
/* we have a tab here so skip the backslash and
@@
-414,7
+422,11
@@
gfx_string gfx_string_create(FT_Face face,const char *text,
glyph->pos.y = 0;
glyph->image = NULL;
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 );
glyph->index = FT_Get_Char_Index( face, letter );
+#endif
/* compute glyph origin */
if ( use_kerning && previous && glyph->index ) {
/* compute glyph origin */
if ( use_kerning && previous && glyph->index ) {
@@
-480,6
+492,10
@@
gfx_string gfx_string_create(FT_Face face,const char *text,
string->width = string->bbox.xMax - string->bbox.xMin;
}
string->height = string->bbox.yMax - string->bbox.yMin;
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;
}
return string;
}