diff -cr dia-0.83-1/app/render_eps.c dia-0.83-2/app/render_eps.c
*** dia-0.83-1/app/render_eps.c	Sat Jan 22 17:43:02 2000
--- dia-0.83-2/app/render_eps.c	Tue Jan 25 14:32:50 2000
***************
*** 35,40 ****
--- 35,41 ----
  static void set_dashlength(RendererEPS *renderer, real length);
  static void set_fillstyle(RendererEPS *renderer, FillStyle mode);
  static void set_font(RendererEPS *renderer, Font *font, real height);
+ static void set_mbfont(RendererEPS *renderer, Font *font, real height);
  static void draw_line(RendererEPS *renderer, 
  		      Point *start, Point *end, 
  		      Color *line_color);
***************
*** 99,104 ****
--- 100,106 ----
    (SetDashLengthFunc) set_dashlength,
    (SetFillStyleFunc) set_fillstyle,
    (SetFontFunc) set_font,
+   (SetFontFunc) set_mbfont,
    
    (DrawLineFunc) draw_line,
    (DrawPolyLineFunc) draw_polyline,
***************
*** 720,726 ****
  {
    char *str;
  
!   str = font_get_psfontname(font);
    if(strcmp(str, "Ryumin-Light") != 0)
      fprintf(renderer->file, "/%s-latin1 ff %f scf sf\n", str, (double)height);
    else
--- 722,743 ----
  {
    char *str;
  
!   str = font_get_psfontname(font)[0];
!   if(strcmp(str, "Ryumin-Light") != 0)
!     fprintf(renderer->file, "/%s-latin1 ff %f scf sf\n", str, (double)height);
!   else
!     fprintf(renderer->file, "/%s-EUC-H ff %f scf sf\n", str, (double)height);
! }
! 
! static void
! set_mbfont(RendererEPS *renderer, Font *font, real height)
! {
!   char *str;
! 
!   str = font_get_psfontname(font)[1];
!   if(str == NULL) {
!     return;
!   }
    if(strcmp(str, "Ryumin-Light") != 0)
      fprintf(renderer->file, "/%s-latin1 ff %f scf sf\n", str, (double)height);
    else
Only in dia-0.83-1/app: render_eps.c.orig
diff -cr dia-0.83-1/app/render_gdk.c dia-0.83-2/app/render_gdk.c
*** dia-0.83-1/app/render_gdk.c	Wed Oct 27 10:51:55 1999
--- dia-0.83-2/app/render_gdk.c	Mon Jan 24 18:42:11 2000
***************
*** 31,36 ****
--- 31,37 ----
  static void set_dashlength(RendererGdk *renderer, real length);
  static void set_fillstyle(RendererGdk *renderer, FillStyle mode);
  static void set_font(RendererGdk *renderer, Font *font, real height);
+ static void set_mbfont(RendererGdk *renderer, Font *font, real height);
  static void draw_line(RendererGdk *renderer, 
  		      Point *start, Point *end, 
  		      Color *line_color);
***************
*** 115,120 ****
--- 116,122 ----
    (SetDashLengthFunc) set_dashlength,
    (SetFillStyleFunc) set_fillstyle,
    (SetFontFunc) set_font,
+   (SetFontFunc) set_mbfont,
    
    (DrawLineFunc) draw_line,
    (DrawPolyLineFunc) draw_polyline,
***************
*** 403,408 ****
--- 405,416 ----
      ddisplay_transform_length(renderer->ddisp, height);
  
    renderer->gdk_font = font_get_gdkfont(font, renderer->font_height);
+ }
+ 
+ static void
+ set_mbfont(RendererGdk *renderer, Font *font, real height)
+ {
+   set_font(renderer, font, height);
  }
  
  static void
diff -cr dia-0.83-1/app/render_gnomeprint.c dia-0.83-2/app/render_gnomeprint.c
*** dia-0.83-1/app/render_gnomeprint.c	Mon Oct 25 14:59:43 1999
--- dia-0.83-2/app/render_gnomeprint.c	Mon Jan 24 18:42:50 2000
***************
*** 39,44 ****
--- 39,45 ----
  static void set_dashlength(RendererGPrint *renderer, real length);
  static void set_fillstyle(RendererGPrint *renderer, FillStyle mode);
  static void set_font(RendererGPrint *renderer, Font *font, real height);
+ static void set_mbfont(RendererGPrint *renderer, Font *font, real height);
  static void draw_line(RendererGPrint *renderer, 
  		      Point *start, Point *end, 
  		      Color *line_color);
***************
*** 103,108 ****
--- 104,110 ----
    (SetDashLengthFunc) set_dashlength,
    (SetFillStyleFunc) set_fillstyle,
    (SetFontFunc) set_font,
+   (SetFontFunc) set_mbfont,
    
    (DrawLineFunc) draw_line,
    (DrawPolyLineFunc) draw_polyline,
***************
*** 295,300 ****
--- 297,308 ----
      gfont = gnome_font_new("Courier", height);
    gnome_print_setfont(renderer->ctx, gfont);
    renderer->font = gfont;
+ }
+ 
+ static void
+ set_mbfont(RendererGPrint *renderer, Font *font, real height)
+ {
+   set_font(renderer, font, height);
  }
  
  static void
diff -cr dia-0.83-1/app/render_svg.c dia-0.83-2/app/render_svg.c
*** dia-0.83-1/app/render_svg.c	Fri Dec 24 22:23:35 1999
--- dia-0.83-2/app/render_svg.c	Mon Jan 24 18:43:22 2000
***************
*** 40,45 ****
--- 40,46 ----
  static void set_dashlength(RendererSVG *renderer, real length);
  static void set_fillstyle(RendererSVG *renderer, FillStyle mode);
  static void set_font(RendererSVG *renderer, Font *font, real height);
+ static void set_mbfont(RendererSVG *renderer, Font *font, real height);
  static void draw_line(RendererSVG *renderer, 
  		      Point *start, Point *end, 
  		      Color *line_colour);
***************
*** 104,109 ****
--- 105,111 ----
    (SetDashLengthFunc) set_dashlength,
    (SetFillStyleFunc) set_fillstyle,
    (SetFontFunc) set_font,
+   (SetFontFunc) set_mbfont,
    
    (DrawLineFunc) draw_line,
    (DrawPolyLineFunc) draw_polyline,
***************
*** 351,356 ****
--- 353,364 ----
    fprintf(renderer->file, "/%s-latin1 ff %f scf sf\n",
  	  font_get_psfontname(font), (double)height);
    */
+ }
+ 
+ static void
+ set_mbfont(RendererSVG *renderer, Font *font, real height)
+ {
+   set_font(renderer, font, height);
  }
  
  /* the return value of this function should not be saved anywhere */
diff -cr dia-0.83-1/lib/font.c dia-0.83-2/lib/font.c
*** dia-0.83-1/lib/font.c	Sat Jan 22 17:45:48 2000
--- dia-0.83-2/lib/font.c	Mon Jan 24 17:59:59 2000
***************
*** 52,57 ****
--- 52,59 ----
  
  #define NUM_X11_FONTS 2
  
+ #define NUM_PS_FONTS 2
+ 
  typedef struct _FontPrivate FontPrivate;
  typedef struct  _FontCacheItem FontCacheItem;
  
***************
*** 64,70 ****
    Font public;
    char *fontname_x11;
    char **fontname_x11_vec;
!   char *fontname_ps;
    FontCacheItem *cache[FONTCACHE_SIZE];
    real ascent_ratio, descent_ratio;
  };
--- 66,72 ----
    Font public;
    char *fontname_x11;
    char **fontname_x11_vec;
!   char *fontname_ps[2];
    FontCacheItem *cache[FONTCACHE_SIZE];
    real ascent_ratio, descent_ratio;
  };
***************
*** 72,295 ****
  
  typedef struct _FontData {
    char *fontname;
!   char *fontname_ps;
    char *fontname_x11[NUM_X11_FONTS]; /* First choice */
  } FontData;
  
  FontData font_data[] = {
    { "��ī",
!     "Ryumin-Light",
!     { "-misc-fixed-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
!   }, 
    { "Times-Roman",
!     "Times-Roman",
!     { "-adobe-times-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "Times-Italic",
!     "Times-Italic",
      { "-adobe-times-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "Times-Bold",
!     "Times-Bold",
      { "-adobe-times-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "Times-BoldItalic",
!     "Times-BoldItalic",
      { "-adobe-times-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "AvantGarde-Book",
!     "AvantGarde-Book",
      { "-adobe-avantgarde-book-r-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-BookOblique",
!     "AvantGarde-BookOblique",
      { "-adobe-avantgarde-book-o-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-Demi",
!     "AvantGarde-Demi",
      { "-adobe-avantgarde-demibold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-bold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-DemiOblique",
!     "AvantGarde-DemiOblique",
      { "-adobe-avantgarde-demibold-o-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-bold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-Light",
!     "Bookman-Light",
      { "-adobe-bookman-light-r-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-LightItalic",
!     "Bookman-LightItalic",
      { "-adobe-bookman-light-i-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-Demi",
!     "Bookman-Demi",
      { "-adobe-bookman-demibold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-bold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-DemiItalic",
!     "Bookman-DemiItalic",
      { "-adobe-bookman-demibold-i-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-bold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Courier",
!     "Courier",
!     { "-adobe-courier-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Courier-Oblique",
!     "Courier-Oblique",
!     { "-adobe-courier-medium-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Courier-Bold",
!     "Courier-Bold",
      { "-adobe-courier-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Courier-BoldOblique",
!     "Courier-BoldOblique",
      { "-adobe-courier-bold-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica",
!     "Helvetica",
!     { "-adobe-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Oblique",
!     "Helvetica-Oblique",
      { "-adobe-helvetica-medium-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Bold",
!     "Helvetica-Bold",
!     { "-adobe-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-BoldOblique",
!     "Helvetica-BoldOblique",
!     { "-adobe-helvetica-bold-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow",
!     "Helvetica-Narrow",
      { "-adobe-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-Oblique",
!     "Helvetica-Narrow-Oblique",
      { "-adobe-helvetica-medium-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-Bold",
!     "Helvetica-Narrow-Bold",
      { "-adobe-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-BoldOblique",
!     "Helvetica-Narrow-BoldOblique",
      { "-adobe-helvetica-bold-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Roman",
!     "NewCenturySchlbk-Roman",
      { "-adobe-new century schoolbook-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Italic",
!     "NewCenturySchlbk-Italic",
      { "-adobe-new century schoolbook-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Bold",
!     "NewCenturySchlbk-Bold",
      { "-adobe-new century schoolbook-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-BoldItalic",
!     "NewCenturySchlbk-BoldItalic",
      { "-adobe-new century schoolbook-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Palatino-Roman",
!     "Palatino-Roman",
      { "-adobe-palatino-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-Italic",
!     "Palatino-Italic",
      { "-adobe-palatino-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-Bold",
!     "Palatino-Bold",
      { "-adobe-palatino-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-demibold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-BoldItalic",
!     "Palatino-BoldItalic",
      { "-adobe-palatino-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-demibold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Symbol",
!     "Symbol",
      {
        "-adobe-symbol-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-symbol-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "ZapfChancery-MediumItalic",
!     "ZapfChancery-MediumItalic",
      { "-adobe-zapf chancery-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-itc zapf chancery-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "ZapfDingbats",
!     "ZapfDingbats",
      { "-adobe-zapf dingbats-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-itc zapf dingbats-*-*-*-*-%d-*-*-*-*-*-*-*"
      }
--- 74,297 ----
  
  typedef struct _FontData {
    char *fontname;
!   char *fontname_ps[2];
    char *fontname_x11[NUM_X11_FONTS]; /* First choice */
  } FontData;
  
  FontData font_data[] = {
    { "��ī",
!     { "Times-Roman", "Ryumin-Light" },
!     { "-adobe-times-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
!   },
    { "Times-Roman",
!     { "Times-Roman", "Ryumin-Light" },
!     { "-adobe-times-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    }, 
    { "Times-Italic",
!     { "Times-Italic", NULL },
      { "-adobe-times-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "Times-Bold",
!     { "Times-Bold", NULL },
      { "-adobe-times-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "Times-BoldItalic",
!     { "Times-BoldItalic", NULL },
      { "-adobe-times-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    }, 
    { "AvantGarde-Book",
!     { "AvantGarde-Book", NULL },
      { "-adobe-avantgarde-book-r-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-BookOblique",
!     { "AvantGarde-BookOblique", NULL },
      { "-adobe-avantgarde-book-o-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-Demi",
!     { "AvantGarde-Demi", NULL },
      { "-adobe-avantgarde-demibold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-bold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "AvantGarde-DemiOblique",
!     { "AvantGarde-DemiOblique", NULL },
      { "-adobe-avantgarde-demibold-o-normal-*-%d-*-*-*-*-*-*-*",
        "-schumacher-clean-bold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-Light",
!     { "Bookman-Light", NULL },
      { "-adobe-bookman-light-r-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-LightItalic",
!     { "Bookman-LightItalic", NULL },
      { "-adobe-bookman-light-i-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-Demi",
!     { "Bookman-Demi", NULL },
      { "-adobe-bookman-demibold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-bold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Bookman-DemiItalic",
!     { "Bookman-DemiItalic", NULL },
      { "-adobe-bookman-demibold-i-normal-*-%d-*-*-*-*-*-*-*",
        "-adobe-times-bold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Courier",
!     { "Courier", "Ryumin-Light" },
!     { "-adobe-courier-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    },
    { "Courier-Oblique",
!     { "Courier-Oblique", "Ryumin-Light" },
!     { "-adobe-courier-medium-o-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    },
    { "Courier-Bold",
!     { "Courier-Bold", NULL },
      { "-adobe-courier-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Courier-BoldOblique",
!     { "Courier-BoldOblique", NULL },
      { "-adobe-courier-bold-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica",
!     { "Helvetica", "Ryumin-Light" },
!     { "-adobe-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-medium-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    },
    { "Helvetica-Oblique",
!     { "Helvetica-Oblique", NULL },
      { "-adobe-helvetica-medium-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Bold",
!     { "Helvetica-Bold", "Ryumin-Light" },
!     { "-adobe-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-bold-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    },
    { "Helvetica-BoldOblique",
!     { "Helvetica-BoldOblique", "Ryumin-Light" },
!     { "-adobe-helvetica-bold-o-normal-*-%d-*-*-*-*-*-*-*,-*-mincho-bold-r-normal-*-%d-*-*-*-*-*-jisx0208.1983-0",
        NULL
      }
    },
    { "Helvetica-Narrow",
!     { "Helvetica-Narrow", NULL },
      { "-adobe-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-Oblique",
!     { "Helvetica-Narrow-Oblique", NULL },
      { "-adobe-helvetica-medium-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-Bold",
!     { "Helvetica-Narrow-Bold", NULL },
      { "-adobe-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Helvetica-Narrow-BoldOblique",
!     { "Helvetica-Narrow-BoldOblique", NULL },
      { "-adobe-helvetica-bold-o-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Roman",
!     { "NewCenturySchlbk-Roman", NULL },
      { "-adobe-new century schoolbook-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Italic",
!     { "NewCenturySchlbk-Italic", NULL },
      { "-adobe-new century schoolbook-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-Bold",
!     { "NewCenturySchlbk-Bold", NULL },
      { "-adobe-new century schoolbook-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "NewCenturySchoolbook-BoldItalic",
!     { "NewCenturySchlbk-BoldItalic", NULL },
      { "-adobe-new century schoolbook-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        NULL
      }
    },
    { "Palatino-Roman",
!     { "Palatino-Roman", NULL },
      { "-adobe-palatino-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-Italic",
!     { "Palatino-Italic", NULL },
      { "-adobe-palatino-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-Bold",
!     { "Palatino-Bold", NULL },
      { "-adobe-palatino-bold-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-demibold-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Palatino-BoldItalic",
!     { "Palatino-BoldItalic", NULL },
      { "-adobe-palatino-bold-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-lucidabright-demibold-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "Symbol",
!     { "Symbol", NULL },
      {
        "-adobe-symbol-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-symbol-medium-r-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "ZapfChancery-MediumItalic",
!     { "ZapfChancery-MediumItalic", NULL },
      { "-adobe-zapf chancery-medium-i-normal-*-%d-*-*-*-*-*-*-*",
        "-*-itc zapf chancery-medium-i-normal-*-%d-*-*-*-*-*-*-*"
      }
    },
    { "ZapfDingbats",
!     { "ZapfDingbats", NULL },
      { "-adobe-zapf dingbats-medium-r-normal-*-%d-*-*-*-*-*-*-*",
        "-*-itc zapf dingbats-*-*-*-*-%d-*-*-*-*-*-*-*"
      }
***************
*** 325,331 ****
        break;
      bufsize = strlen(x11_font)+6;  /* Should be enought*/
      buffer = (char *)g_malloc(bufsize);
!     g_snprintf(buffer, bufsize, x11_font, 100);
      
      gdk_font = gdk_fontset_load(buffer);
      if (gdk_font!=NULL) {
--- 327,333 ----
        break;
      bufsize = strlen(x11_font)+6;  /* Should be enought*/
      buffer = (char *)g_malloc(bufsize);
!     g_snprintf(buffer, bufsize, x11_font, 100, 100);
      
      gdk_font = gdk_fontset_load(buffer);
      if (gdk_font!=NULL) {
***************
*** 342,348 ****
        x11_font = last_resort_fonts[i];
        bufsize = strlen(x11_font)+6;  /* Should be enought*/
        buffer = (char *)g_malloc(bufsize);
!       g_snprintf(buffer, bufsize, x11_font, 100);
        
        gdk_font = gdk_fontset_load(buffer);
        g_free(buffer);
--- 344,350 ----
        x11_font = last_resort_fonts[i];
        bufsize = strlen(x11_font)+6;  /* Should be enought*/
        buffer = (char *)g_malloc(bufsize);
!       g_snprintf(buffer, bufsize, x11_font, 100, 100);
        
        gdk_font = gdk_fontset_load(buffer);
        g_free(buffer);
***************
*** 373,379 ****
    for (i=0;i<NUM_FONTS;i++) {
      font = g_new(FontPrivate, 1);
      font->public.name = font_data[i].fontname;
!     font->fontname_ps = font_data[i].fontname_ps;
  
      font->fontname_x11 = NULL;
      font->fontname_x11_vec = font_data[i].fontname_x11;
--- 375,383 ----
    for (i=0;i<NUM_FONTS;i++) {
      font = g_new(FontPrivate, 1);
      font->public.name = font_data[i].fontname;
!     for(j=0;j<NUM_PS_FONTS;j++) {
!       font->fontname_ps[j] = font_data[i].fontname_ps[j];
!     }
  
      font->fontname_x11 = NULL;
      font->fontname_x11_vec = font_data[i].fontname_x11;
***************
*** 439,445 ****
    
    bufsize = strlen(fontprivate->fontname_x11)+6;  /* Should be enought*/
    buffer = (char *)malloc(bufsize);
!   g_snprintf(buffer, bufsize, fontprivate->fontname_x11, height);
    gdk_font = gdk_fontset_load(buffer);
    free(buffer);
    
--- 443,449 ----
    
    bufsize = strlen(fontprivate->fontname_x11)+6;  /* Should be enought*/
    buffer = (char *)malloc(bufsize);
!   g_snprintf(buffer, bufsize, fontprivate->fontname_x11, height, height);
    gdk_font = gdk_fontset_load(buffer);
    free(buffer);
    
***************
*** 449,455 ****
    return gdk_font;
  }
  
! char *
  font_get_psfontname(Font *font)
  {
    FontPrivate *fontprivate;
--- 453,459 ----
    return gdk_font;
  }
  
! char **
  font_get_psfontname(Font *font)
  {
    FontPrivate *fontprivate;
Only in dia-0.83-1/lib: font.c.orig
Only in dia-0.83-1/lib: font.c.rej
diff -cr dia-0.83-1/lib/font.h dia-0.83-2/lib/font.h
*** dia-0.83-1/lib/font.h	Thu Jun  3 19:09:56 1999
--- dia-0.83-2/lib/font.h	Mon Jan 24 17:58:05 2000
***************
*** 38,44 ****
  extern void font_init(void);
  extern Font *font_getfont(const char *name);
  extern GdkFont *font_get_gdkfont(Font *font, int height);
! extern char *font_get_psfontname(Font *font);
  extern real font_string_width(const char *string, Font *font, real height);
  extern real font_ascent(Font *font, real height);
  extern real font_descent(Font *font, real height);
--- 38,44 ----
  extern void font_init(void);
  extern Font *font_getfont(const char *name);
  extern GdkFont *font_get_gdkfont(Font *font, int height);
! extern char **font_get_psfontname(Font *font);
  extern real font_string_width(const char *string, Font *font, real height);
  extern real font_ascent(Font *font, real height);
  extern real font_descent(Font *font, real height);
diff -cr dia-0.83-1/lib/render.h dia-0.83-2/lib/render.h
*** dia-0.83-1/lib/render.h	Tue Aug 31 22:45:36 1999
--- dia-0.83-2/lib/render.h	Mon Jan 24 18:38:38 2000
***************
*** 253,258 ****
--- 253,259 ----
    SetFillStyleFunc  set_fillstyle;
    /* Font stuff: */
    SetFontFunc       set_font;
+   SetFontFunc       set_mbfont;
    
    /* Lines: */
    DrawLineFunc      draw_line;
diff -cr dia-0.83-1/lib/text.c dia-0.83-2/lib/text.c
*** dia-0.83-1/lib/text.c	Sat Jan 22 17:43:03 2000
--- dia-0.83-2/lib/text.c	Mon Jan 24 18:47:32 2000
***************
*** 379,398 ****
  text_draw(Text *text, Renderer *renderer)
  {
    Point pos;
!   int i;
!   
!   renderer->ops->set_font(renderer, text->font, text->height);
    
    pos = text->position;
!   
    for (i=0;i<text->numlines;i++) {
      renderer->ops->draw_string(renderer,
! 			       text->line[i],
  			       &pos, text->alignment,
  			       &text->color);
      pos.y += text->height;
    }
- 
  
    if ((renderer->is_interactive) && (text->focus.has_focus)) {
      real curs_x, curs_y;
--- 379,441 ----
  text_draw(Text *text, Renderer *renderer)
  {
    Point pos;
!   int i, j;
!   int s;
!   char *buff;
    
    pos = text->position;
! 
!   /* modified only this loop */
    for (i=0;i<text->numlines;i++) {
+     pos.x = text->position.x;
+     buff = (char *)g_malloc(sizeof(char) * strlen(text->line[i]) + 1);
+     for(j=0, s=0; j<strlen(text->line[i]);j++,s++) {
+       if(s==0) {
+ 	buff[s] = text->line[i][j];
+       } else if (text->line[i][j-1] & ~0x7f && text->line[i][j] & ~0x7f) {
+ 	/* both are 16bits char */
+ 	buff[s] = text->line[i][j];
+       } else if (text->line[i][j-1] > 0 && text->line[i][j] > 0) {
+ 	/* for ASCII char */
+ 	buff[s] = text->line[i][j];
+       } else {
+ 	/* 'text->line[i][j]' is a boundary between single and double chars */
+ 	if (text->line[i][j-1] > 0) {
+ 	  /* printing ASCII chars */
+ 	  renderer->ops->set_font(renderer, text->font, text->height);
+ 	} else {
+ 	  /* printging 16bits chars */
+ 	  renderer->ops->set_mbfont(renderer, text->font, text->height);
+ 	}
+ 	buff[s] = '\0';
+ 	renderer->ops->draw_string(renderer,
+ 				   buff, /* text->line[i], */
+ 				   &pos, text->alignment,
+ 				   &text->color);
+ 
+ 	s = 0;
+ 	buff[s] = text->line[i][j];
+ 	pos.x += font_string_width(buff, text->font, text->height);
+       }
+     }
+     if (text->line[i][j-1] > 0) {
+       /* printing ASCII chars */
+       renderer->ops->set_font(renderer, text->font, text->height);
+     } else {
+       /* printging 16bits chars */
+       renderer->ops->set_mbfont(renderer, text->font, text->height);
+     }
+     buff[s] = '\0';
      renderer->ops->draw_string(renderer,
! 			       buff, /* text->line[i], */
  			       &pos, text->alignment,
  			       &text->color);
+     s = 0;
+     buff[s] = text->line[i][j];
+     pos.x += font_string_width(buff, text->font, text->height);
      pos.y += text->height;
+     g_free(buff);
    }
  
    if ((renderer->is_interactive) && (text->focus.has_focus)) {
      real curs_x, curs_y;
Only in dia-0.83-2/objects/UML: class.c~
