increasse revision of shared library number since the library source code has changed
[rrdtool.git] / src / rrd_gfx.c
index ba4c02c..045892a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.2rc8  Copyright by Tobi Oetiker, 1997-2005
+ * RRDtool 1.2.0  Copyright by Tobi Oetiker, 1997-2005
  ****************************************************************************
  * rrd_gfx.c  graphics wrapper for rrdtool
   **************************************************************************/
@@ -372,6 +372,9 @@ gfx_string gfx_string_create(FT_Face face,const char *text,
   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;
@@ -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);
 
+  #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;
@@ -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. */    
-    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
@@ -414,7 +422,11 @@ gfx_string gfx_string_create(FT_Face face,const char *text,
     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 ) {
@@ -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;
+#ifdef HAVE_MBSTOWSC
+  free(w_text);
+#endif
   return string;
 }
 
@@ -1379,7 +1395,7 @@ static int eps_prologue(eps_state *state)
   gfx_node_t *node;
   fputs(
     "%!PS-Adobe-3.0 EPSF-3.0\n"
-    "%%Creator: RRDtool 1.2rc8 Tobias Oetiker, http://tobi.oetiker.ch\n"
+    "%%Creator: RRDtool 1.2.0 Tobias Oetiker, http://tobi.oetiker.ch\n"
     /* can't like weird chars here */
     "%%Title: (RRDtool output)\n"
     "%%DocumentData: Clean7Bit\n"