--- xdu-3.0/xwin.c.orig	1994-06-06 04:29:24.000000000 +0900
+++ xdu-3.0/xwin.c	2005-02-19 19:05:30.000000000 +0900
@@ -69,7 +69,7 @@
 typedef struct {
 	Pixel	foreground;
 	Pixel	background;
-	XFontStruct *font;
+	XFontSet font;
 	int	ncol;
 	Boolean	showsize;
 	char	*order;
@@ -81,8 +81,8 @@
 		XtOffset(res_data_ptr,foreground), XtRString, XtDefaultForeground},
 	{ XtNbackground, XtCBackground, XtRPixel, sizeof(Pixel),
 		XtOffset(res_data_ptr,background), XtRString, XtDefaultBackground},
-	{ XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *),
-		XtOffset(res_data_ptr,font), XtRString, XtDefaultFont },
+	{ XtNfontSet, XtCFontSet, XtRFontSet, sizeof(XFontSet *),
+		XtOffset(res_data_ptr,font), XtRString, XtDefaultFontSet },
 	{ "ncol", "Ncol", XtRInt, sizeof(int),
 		XtOffset(res_data_ptr,ncol), XtRString, "5"},
 	{ "showsize", "ShowSize", XtRBoolean, sizeof(Boolean),
@@ -309,6 +309,7 @@
 	/* Create the top level Widget */
 	n = 0;
 	XtSetArg(args[n], XtNtitle, "XDU Disk Usage Display ('h' for help)\n"); n++;
+	XtSetLanguageProc(NULL, NULL, NULL);
 	toplevel = XtAppInitialize(&app_con, "XDu",
 			options, XtNumber(options),
 			argcp, argv,
@@ -342,8 +343,7 @@
 
 	gcv.foreground = res.foreground;
 	gcv.background = res.background;
-	gcv.font = res.font->fid;
-	gc = XCreateGC(dpy, win, (GCFont|GCForeground|GCBackground), &gcv);
+	gc = XCreateGC(dpy, win, (GCForeground|GCBackground), &gcv);
 
 	setorder(res.order);
 	ncols = res.ncol;
@@ -384,8 +384,7 @@
 {
 	int	textx, texty;
 	char	label[1024];
-	XCharStruct overall;
-	int	ascent, descent, direction;
+	XRectangle overall_ink, overall_logical;
 	int	cheight;
 
 	/*printf("draw(%d,%d,%d,%d)\n", x, y, width, height );*/
@@ -396,16 +395,16 @@
 		name = label;
 	}
 
-	XTextExtents(res.font, name, strlen(name), &direction,
-		&ascent, &descent, &overall);
-	cheight = overall.ascent + overall.descent;
+	XmbTextExtents(res.font, name, strlen(name),
+		&overall_ink, &overall_logical);
+	cheight = overall_logical.height;
 	if (height < (cheight + 2))
 		return;
 
 	/* print label */
 	textx = x + 4;
-	texty = y + height/2.0 + (overall.ascent - overall.descent)/2.0 + 1.5;
-	XDrawString(dpy, win, gc, textx, texty, name, strlen(name));
+	texty = y + height/2.0 + overall_logical.height/5.0 + 1.5;
+	XmbDrawString(dpy, win, res.font, gc, textx, texty, name, strlen(name));
 }
 
 static Widget popup;
--- xdu-3.0/XDu.ad.orig	1994-06-06 04:29:23.000000000 +0900
+++ xdu-3.0/XDu.ad	2005-02-19 19:06:26.000000000 +0900
@@ -13,7 +13,7 @@
 !XDu*help*background:	red4
 XDu*window.width:	600
 XDu*window.height:	480
-XDu.font:		-*-helvetica-bold-r-normal--14-*
+XDu.fontSet:		-*-helvetica-bold-r-normal--14-*, -*-*-bold-r-normal--14-*
 XDu.ncol:		5
 XDu.showsize:		true
 XDu.order:		first
