|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Mogilnikov 2:5054/70 31 Jan 2007 01:36:20 To : Konstantin Petrenko Subject : rrdtool и pyсские бyквы -------------------------------------------------------------------------------- 30 Jan 07 17:45, Konstantin Petrenko писал Alex Mogilnikov: KP>>> Удалось ли комy нибyдь заставить rrd на гpафиках pисовать KP>>> pyсские бyквы? AM>> Удалось, но потpебовался патч rrd с пpименением libiconv. KP> А где на патч взглянyть можно? Сейчас попробую найти. KP> Так это в коpне не пpавильный подход, может патчик сделать да автоpy KP> заслать, что-бы пpилепил его к новым веpсиям? У меня он недоделанный в том смысле, что исходная кодировка забита гвоздями. Мне надо было сделать "быстро прямо здесь и сейчас". А потом надобность отпала... Если не лень, доделай и зашли. Вот, нашел патч. -+- src/rrd_gfx.c.orig Tue May 10 12:07:57 2005 +++ src/rrd_gfx.c Sat Jun 25 02:13:59 2005 @@ -14,6 +14,7 @@ #include "rrd_tool.h" #include <png.h> #include <ft2build.h> +#include <iconv.h> #include FT_FREETYPE_H #include FT_GLYPH_H @@ -55,6 +56,23 @@ /* create a freetype glyph string */ static void gfx_string_destroy ( gfx_string string ); +static unsigned short char_to_unichar(char c) +{ + char str[2]; + const char *cpin = str; + size_t sin = 1; + char outstr[4]; + char *cpout = outstr; + size_t o = 2; + iconv_t cd = iconv_open("UTF-16LE", "koi8-r"); + str[0] = c; + str[1] = 0; + if(iconv(cd, &cpin, &sin, &cpout, &o)) + return '?'; + iconv_close(cd); + return *(unsigned short*)outstr; +} + static gfx_node_t *gfx_new_node( gfx_canvas_t *canvas,enum gfx_en type){ gfx_node_t *node = art_new(gfx_node_t,1); @@ -420,6 +438,6 @@ glyph->pos.y = 0; glyph->image = NULL; - glyph->index = FT_Get_Char_Index( face, letter ); + glyph->index = FT_Get_Char_Index( face, char_to_unichar(letter)); /* compute glyph origin */ if ( use_kerning && previous && glyph->index ) { -+- src/Makefile.in.orig Fri Jul 14 18:12:29 2006 +++ src/Makefile.in Fri Nov 10 19:08:58 2006 @@ -177,7 +177,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ +LIBS = @LIBS@ -liconv LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ Всего наилучшего, [Team PCAD 2000] Алексей М. ... Слепой Пью, Глухой Ем... --- * Origin: === Сисоп спит - почта идет === (2:5054/70) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/183145bfa725.html, оценка из 5, голосов 10
|