diff -BurN dillo-0.6.6.old/dillorc dillo-0.6.6/dillorc --- dillo-0.6.6.old/dillorc Thu May 30 01:36:08 2002 +++ dillo-0.6.6/dillorc Sat Jun 1 17:31:30 2002 @@ -35,6 +35,9 @@ # If you prefer oblique over italic fonts, uncoment next line #use_oblique=YES +# Use this value as charset part of font for loading. (default is iso8859-1) +# font_charset=iso8859-5 + # Show ALT popup for images? show_alt=YES diff -BurN dillo-0.6.6.old/src/dw_style.c dillo-0.6.6/src/dw_style.c --- dillo-0.6.6.old/src/dw_style.c Tue May 28 05:14:03 2002 +++ dillo-0.6.6/src/dw_style.c Sat Jun 1 17:31:30 2002 @@ -243,45 +243,44 @@ { char fontname[256], *ItalicChar; - ItalicChar = prefs.use_oblique ? "o" : "i"; - sprintf (fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-iso8859-1", - font->name, - font->bold ? "bold" : "medium", - font->italic ? ItalicChar : "r", - font->size); - font->font = gdk_font_load(fontname); - - if (font->font == NULL && font->italic) { - sprintf(fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-iso8859-1", + ItalicChar = prefs.use_oblique ? "o" : "i"; + sprintf (fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-%s", font->name, font->bold ? "bold" : "medium", - (*ItalicChar == 'o') ? "i" : "o", - font->size); - font->font = gdk_font_load(fontname); - } - - if (try_all) { - if (font->font == NULL) { - /* Can't load the font - substitute the default instead. */ - font->font = - gdk_font_load - ("-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1"); - } - - if (font->font == NULL) { - /* Try another platform-font that should be available. (iPaq) */ - font->font = - gdk_font_load - ("-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1"); - } - - if (font->font == NULL) { - /* Can't load any suitable font! */ - g_warning ("Can't load any ISO8859-1 font!?! :("); - font->font = - gdk_font_load("-adobe-helvetica-*-*-*--*-*-*-*-*-*-*-*"); - } - } + font->italic ? ItalicChar : "r", + font->size, + prefs.font_charset); + font->font = gdk_font_load(fontname); + + if (font->font == NULL && font->italic) { + sprintf(fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-%s", + font->name, + font->bold ? "bold" : "medium", + (*ItalicChar == 'o') ? "i" : "o", + font->size, + prefs.font_charset); + font->font = gdk_font_load(fontname); + } + + if (try_all) { + if (font->font == NULL) { + /* Can't load the font - substitute the default instead. */ + sprintf(fontname,"-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-%s",prefs.font_charset); + font->font = gdk_font_load (fontname); + } + + if (font->font == NULL) { + /* Try another platform-font that should be available. (iPaq) */ + sprintf(fontname,"-misc-fixed-medium-r-normal--13-120-75-75-c-80-%s",prefs.font_charset); + font->font = gdk_font_load (fontname); + } + + if (font->font == NULL) { + /* Can't load any suitable font! */ + g_warning ("Can't load any font with charset '%s'!?! :(",prefs.font_charset); + font->font = gdk_fontset_load("-adobe-helvetica-*-*-*--*-*-*-*-*-*-*-*,-misc-fixed-*,*"); + } + } if (font->font) { font->space_width = gdk_char_width (font->font, ' '); diff -BurN dillo-0.6.6.old/src/prefs.c dillo-0.6.6/src/prefs.c --- dillo-0.6.6.old/src/prefs.c Wed Apr 3 20:31:46 2002 +++ dillo-0.6.6/src/prefs.c Sat Jun 1 17:31:30 2002 @@ -52,6 +52,7 @@ { "small_icons", DRC_TOKEN_SMALL_ICONS }, { "limit_text_width", DRC_TOKEN_LIMIT_TEXT_WIDTH }, { "font_factor", DRC_TOKEN_FONT_FACTOR }, + { "font_charset", DRC_TOKEN_FONT_CHARSET }, { "use_dicache", DRC_TOKEN_USE_DICACHE }, { "show_back", DRC_TOKEN_SHOW_BACK }, { "show_forw", DRC_TOKEN_SHOW_FORW }, @@ -172,6 +173,10 @@ case DRC_TOKEN_FONT_FACTOR: prefs.font_factor = strtod(scanner->value.v_string, NULL); break; + case DRC_TOKEN_FONT_CHARSET: + if (prefs.font_charset) g_free(prefs.font_charset); + prefs.font_charset = g_strdup(scanner->value.v_string); + break; case DRC_TOKEN_LIMIT_TEXT_WIDTH: prefs.limit_text_width = (strcmp(scanner->value.v_string, "YES") == 0); break; @@ -338,6 +343,7 @@ prefs.small_icons = FALSE; prefs.limit_text_width = FALSE; prefs.font_factor = 1.0; + prefs.font_charset = g_strdup("iso8859-1"); prefs.use_dicache = FALSE; prefs.show_back=TRUE; prefs.show_forw=TRUE; @@ -374,6 +380,8 @@ g_free(prefs.no_proxy); if (prefs.no_proxy_vec) g_strfreev(prefs.no_proxy_vec); + if (prefs.font_charset) + g_free (prefs.font_charset); a_Url_free(prefs.http_proxy); g_free(prefs.fw_fontname); g_free(prefs.vw_fontname); diff -BurN dillo-0.6.6.old/src/prefs.h dillo-0.6.6/src/prefs.h --- dillo-0.6.6.old/src/prefs.h Wed Apr 3 20:31:46 2002 +++ dillo-0.6.6/src/prefs.h Sat Jun 1 17:31:30 2002 @@ -40,6 +40,7 @@ DRC_TOKEN_PANEL_SIZE, DRC_TOKEN_SMALL_ICONS, DRC_TOKEN_FONT_FACTOR, + DRC_TOKEN_FONT_CHARSET, DRC_TOKEN_SHOW_ALT, DRC_TOKEN_LIMIT_TEXT_WIDTH, DRC_TOKEN_USE_DICACHE, @@ -84,6 +85,7 @@ gboolean small_icons; gboolean limit_text_width; gdouble font_factor; + char *font_charset; gboolean use_dicache; gboolean show_back; gboolean show_forw;