File gv-3.6.3-I18N-mb.patch of Package gv

--- README.I18N
+++ README.I18N	2005-05-23 19:45:33.000000000 +0200
@@ -0,0 +1,28 @@
+GV I18N Fontset Patch for Japanese
+			Keio University in Japan
+			1998 Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp>
+
+This patch make gv to support Japanese NLS.
+
+	if you can not see Japanese GV, please install 
+	10/12pt kanji fonts to X Window System, or edit 
+	file `$(SRC)/src/gv_font_res-I18N_mb.dat' and
+	recompile.
+
+NEED:
+	Xaw3d 1.4, 1.5 has a fatal bug in MultiSrc.c line 735-740.
+	This GV's patch need Xaw3d library patched follow:
+
+diff -Ncr xc/lib/Xaw3d/MultiSrc.c xc-fix/lib/Xaw3d/MultiSrc.c
+*** xc/lib/Xaw3d/MultiSrc.c	Fri May 15 04:03:23 1998
+--- xc-fix/lib/Xaw3d/MultiSrc.c	Fri Dec 18 09:59:52 1998
+*** 735,740 ****
+--- 735,741 ----
+    
+    if ( string_set || (old_src->multi_src.type != src->multi_src.type) ) {
+      RemoveOldStringOrFile(old_src, string_set);
++     src->multi_src.allocated_string = old_src->multi_src.allocated_string;
+      file = InitStringOrFile(src, string_set);
+  
+      /* Load pieces does this logic for us, but it shouldn't.  Its messy.*/
+
--- src/Makefile.am
+++ src/Makefile.am	2008-03-27 17:03:55.202558681 +0100
@@ -12,7 +12,7 @@ appdefaultsdir = $(pkglibdir)
 
 appdefaults_DATA = GV
 
-EXTRA_DIST=ad2c gv_font_res.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
+EXTRA_DIST=ad2c gv_font_res.dat gv_font_res-I18N_mb.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
            gv_current.xbm gv_doc.xbm gv_empty.xbm gv_even.xbm gv_icon.xbm gv_odd.xbm \
            gv_selected.xbm gv_unmark.xbm
 
@@ -208,7 +208,7 @@ $(srcdir)/gv_class.h : $(srcdir)/gv_clas
 	@echo "creating gv_class.h"
 	@sh $(srcdir)/ad2c $(srcdir)/gv_class.ad > $(srcdir)/gv_class.h
 
-$(srcdir)/gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_layout_res.dat $(srcdir)/gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat $(srcdir)/gv_intern_res_unix.dat
+$(srcdir)/gv_class.ad : $(srcdir)/gv_font_res-I18N_mb.dat $(srcdir)/gv_layout_res.dat $(srcdir)/gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat $(srcdir)/gv_intern_res_unix.dat
 	@echo "creating gv_class.ad"
 	cp $(srcdir)/gv_copyright.dat $(srcdir)/gv_class.ad
 	@echo "!" >> $(srcdir)/gv_class.ad
@@ -221,7 +221,7 @@ $(srcdir)/gv_class.ad : $(srcdir)/gv_fon
 	@cat $(srcdir)/gv_user_res.dat >> $(srcdir)/gv_class.ad
 	@cat $(srcdir)/gv_intern_res_unix.dat >> $(srcdir)/gv_class.ad
 	@cat $(srcdir)/gv_make_res.dat >> $(srcdir)/gv_class.ad
-	@cat $(srcdir)/gv_font_res.dat >> $(srcdir)/gv_class.ad
+	@cat $(srcdir)/gv_font_res-I18N_mb.dat >> $(srcdir)/gv_class.ad
 	@cat $(srcdir)/gv_misc_res.dat >> $(srcdir)/gv_class.ad
 	@cat $(srcdir)/gv_layout_res.dat >> $(srcdir)/gv_class.ad
 
@@ -262,3 +262,14 @@ endif
 if USE_MEMDEBUG_CODE
    gv_SOURCES += d_mem.c d_mem.h d_xtmem.c d_xtmem.h
 endif
+
+install-nls:
+	@for LNG in ja_JP.UTF-8 ko_KR.UTF-8; do \
+		test -f gv_nls_$$LNG.dat || continue; \
+		cat $(srcdir)/GV.ad		>  $(srcdir)/GV_$$LNG.ad; \
+		cat $(srcdir)/gv_nls_$$LNG.dat	>> $(srcdir)/GV_$$LNG.ad; \
+		test -d $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults || \
+			$(mkdir_p) $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults; \
+		$(INSTALL) $(INSTALLFLAGS) \
+			$(srcdir)/GV_$$LNG.ad $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults/GV; \
+	done
--- src/callbacks.c
+++ src/callbacks.c	2005-05-23 19:45:33.000000000 +0200
@@ -767,12 +767,6 @@ cb_openFile(w, client_data, call_data)
     BEGINMESSAGE(cb_openFile)
 
     XawFileSelectionRemoveButton(FileSel, 3);
-    n=0;
-    XtSetArg(args[n], XtNtitle, "Open File"); ++n;
-    XtSetValues(FileSel_popup, args, n);
-    n=0;
-    XtSetArg(args[n], XtNlabel, "Open File"); ++n;
-    XtSetValues(button, args, n);
     XtRemoveAllCallbacks(button, XtNcallback);
     XtAddCallback(button, XtNcallback,cb_doOpenFile,NULL);
 
--- src/dialog.c
+++ src/dialog.c	2008-03-27 15:52:18.179200931 +0100
@@ -29,6 +29,7 @@
 */
 
 #include "config.h"
+#include "VlistP.h"
 
 #include <stdio.h>
 
@@ -270,20 +271,27 @@ void DialogPopupSetText(s)
     Arg args[10];
     Cardinal n;
     Widget response;
+    VlistWidget vw;
     Dimension width;
 #   define DIALOG_POPUP_FREE_SPACE 50
 #   define DIALOG_POPUP_TEXT_MIN_WIDTH 100
     String os;
     Dimension lm,rm,bw,nw;
+    XFontSet     fontset;
     XFontStruct *font;
 
     BEGINMESSAGE(DialogPopupSetText)
     if (!s) {INFMESSAGE(no text) ENDMESSAGE(DialogPopupSetText) return;}
     if (!dialogPopupCreated) makeDialogPopup();
     response = XtNameToWidget(DIALOG_POPUP, "*dialog_text");
+    vw = (VlistWidget)response;
 
     						n=0;
-    XtSetArg(args[n], XtNfont, &font);		n++;
+    if( vw->simple.international == True ) {
+      XtSetArg(args[n], XtNfontSet, &fontset);	n++;
+    } else {
+      XtSetArg(args[n], XtNfont, &font);	n++;
+    }
     XtSetArg(args[n], XtNleftMargin, &lm);	n++;
     XtSetArg(args[n], XtNrightMargin, &rm);	n++;
     XtSetArg(args[n], XtNborderWidth, &bw);	n++;
@@ -291,8 +299,12 @@ void DialogPopupSetText(s)
     XtSetArg(args[n], XtNwidth, &width);	n++;
     XtGetValues(response, args, n);
     						n=0;
-    nw= ((font->max_bounds.width+font->min_bounds.width)*((Dimension)strlen(s))+1)/2
-      +lm+rm+DIALOG_POPUP_FREE_SPACE+2*bw;
+    if( vw->simple.international == True )
+      nw=	XmbTextEscapement( fontset, s, strlen(s));
+    else
+      nw= ((font->max_bounds.width+font->min_bounds.width)*((Dimension)strlen(s))+1)/2;
+    nw += lm+rm+DIALOG_POPUP_FREE_SPACE+2*bw;
+
     if (nw<DIALOG_POPUP_TEXT_MIN_WIDTH) nw=DIALOG_POPUP_TEXT_MIN_WIDTH;
     if (nw>width) {
       INFIMESSAGE(new width,nw)
--- src/gv_font_res-I18N_mb.dat
+++ src/gv_font_res-I18N_mb.dat	2005-05-23 19:46:28.000000000 +0200
@@ -0,0 +1,52 @@
+
+!########## gv_font_res_linux.dat
+GV*international:		True
+
+!##### Fonts
+
+GV*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*SmeBSB.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.processButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.Button*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.locator*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.dateButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.titleButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.prevPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.nextPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*newtoc.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button1.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button2.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button3.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button4.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*pathtext*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*confirmButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*message*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*notePopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*notePopup*message*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*confirmPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*confirmPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*versionTexta*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*versionTextb*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*infoPopup*Text*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
--- src/gv_misc_res.dat
+++ src/gv_misc_res.dat	2005-05-23 19:45:33.000000000 +0200
@@ -220,6 +220,10 @@ GV*optionsetupPopup*scalesFrame.forcedWi
 GV*optionsetupPopup*mediasFrame.forcedWidth:	240
 GV*optionsetupPopup*mediasFrame.forcedHeight:	400
 
+!##### FileSet Popup
+
+GV*fileSelPopup.title:			Open File
+
 !##### Panner
 
 GV*pannerFrame.frameType:		sunken
@@ -317,6 +321,7 @@ GV*checkFile.label:			Check File
 GV*filters.label:			Filters:
 GV*dirs.label:				Directories
 GV*button1.label:			Cancel
+GV*button2.label:			Open File
 GV*rescan.label:			Rescan Directory
 GV*screenSizeLabel.label:		Screen Size (mm)
 
--- src/gv_nls_ja_JP.UTF-8.dat
+++ src/gv_nls_ja_JP.UTF-8.dat	2008-03-27 16:17:51.247892392 +0100
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
+! 
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+! 
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program; if not, write to the Free Software
+! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+! 
+! Author:   Johannes Plass (plass@thep.physik.uni-mainz.de)
+!           Department of Physics
+!           Johannes Gutenberg-University
+!           Mainz, Germany
+!
+!
+!  gv_ja_JP.eucJP.ad
+!  Japanese NLS label for gv by
+!  1998 Yasuyuki Furukawa (yasu@on.cs.keio.ac.jp)
+!
+
+
+!##### Zoom Popup
+
+GV*zoomPopup.title:			GV - 拡大画面
+
+!##### Info Popup
+
+GV*infoPopup.title:			GhostScriptメッセージ
+
+!##### Dialog Popup
+
+GV*dialogPopup.title:			ダイアログ
+
+!##### Note Popup
+
+GV*notePopup.title:			メッセージ
+
+!##### Confirm Popup
+
+GV*confirmPopup.title:			確認
+
+!##### OptionsSetup Popup
+
+GV*optionfsPopup.title:			ファイル選択オプション
+
+!##### OptionsGS Popup
+
+GV*optiongsPopup.title:			Ghostscriptオプション
+
+!##### OptionsGV Popup
+
+GV*optiongvPopup.title:			GVオプション
+
+!##### OptionsSetup Popup
+
+GV*optionsetupPopup.title:		セットアップオプション
+
+!##### FileSet Popup
+
+GV*fileSelPopup.title:			ファイルを開く
+
+!################################################
+!##### Labels
+!################################################
+
+GV*cancel.Label:			キャンセル
+GV*dismiss.Label:			閉じる
+GV*apply.label:				適用
+GV*copyright.Label:			著作権
+GV*quit.Label:				終了
+GV*fileButton.Label:			ファイル
+GV*open.Label:				開く ...
+GV*reopen.Label:			再オープン
+GV*update.Label:			更新
+GV*printAllPages.Label:			文章印刷 ...
+GV*printMarkedPages.Label:		マークしたページの印刷...
+GV*saveAllPages.Label:			文章保存 ...
+GV*saveMarkedPages.Label:		マークしたページの保存...
+GV*stateButton.Label:			環境設定
+GV*stop.Label:				割り込み停止
+GV*dsc.Label:				文書構造によるスペクト調整
+GV*eof.Label:				EOFコメントを無視
+GV*antialias.Label:			アンチエイリアス
+GV*watchFile.Label:			自動ファイル更新
+GV*showTitle.Label:			タイトル表示
+GV*pixmap.Label:			Backing Pixmap
+GV*size.Label:				自動サイズ変更
+GV*watch.Label:				自動ファイル更新
+GV*optionsgv.Label:			GVオプション...
+GV*optionsfs.Label:			ファイル選択オプション...
+GV*optionsgs.Label:			Ghostscriptオプション...
+GV*optionssetup.Label:			セットアップオプション...
+GV*pageButton.Label:			ページ
+GV*next.Label:				次へ
+GV*show.Label:				再表示
+GV*prev.Label:				前へ
+GV*center.Label:			中央
+GV*pageButton*current.Label:		現在のページをマーク/解除
+GV*pageButton*even.Label:		偶数ページをマーク/解除
+GV*pageButton*odd.Label:		奇数ページをマーク/解除
+GV*pageButton*unmark.Label:		全マーク解除
+GV*processButton.Label:			\ 実行
+GV*mark.Label:				マーク
+GV*prevPage.Label:			<<
+GV*nextPage.Label:			>>
+GV*unmark.Label:			マーク解除
+GV*automatic.Label:			自動
+GV*portrait.Label:			ポートレート
+GV*landscape.Label:			ランドスケープ
+GV*upsidedown.Label:			上下反転
+GV*seascape.Label:			逆ランドスケープ
+GV*swap.Label:				ランドスケープ変換
+GV*toggleCurrent.label:			現在のページマーク/解除
+GV*toggleEven.label:			偶数ページマーク/解除
+GV*toggleOdd.label:			奇数ページマーク/解除
+GV*unmarkAll.label:			全マーク解除
+GV*printAll.label:			全印刷
+GV*printMarked.label:			マーク部分印刷
+GV*saveAll.label:			全保存
+GV*saveMarked.label:			マーク部分保存
+GV*openFile.label:			開く
+GV*redisplay.label:			再表示
+GV*updateFile.label:			ファイル更新
+GV*checkFile.label:			ファイルチェック
+
+GV*filters.label:			フィルタ:
+GV*dirs.label:				ディレクトリ
+GV*button1.label:			キャンセル
+GV*button2.label:			ファイルを開く
+GV*rescan.label:			ディレクトリ再読込
+GV*screenSizeLabel.label:		画面サイズ[mm]
+
+GV*versionPopup*versionDone*label:	閉じる
+GV*dialogPopup*cancel.label:		キャンセル
+GV*notePopup*done.label:		了解
+
+GV*confirmPopup*cancel.label:		キャンセル
+GV*confirmPopup*done.label:		終了
+GV*save.label:				保存
+
+GV*optiongvPopup*mediaLabel.label:	\ 用紙サイズ \ 
+GV*optiongvPopup*fmediaLabel.label:	判別不明時の用紙サイズ
+GV*optiongvPopup*orientLabel.label:	\ 用紙の向き \ 
+GV*optiongvPopup*forientLabel.label:	判別不明時の用紙向き
+GV*optiongvPopup*magLabel.label:	拡大縮小
+GV*optiongvPopup*antialias.label:	アンチエイリアス
+GV*optiongvPopup*respectDSC.label:	DSCを有効
+GV*optiongvPopup*eof.label:		EOFを無視
+GV*optiongvPopup*autoResize.label:	可変サイズ
+GV*optiongvPopup*swapLandscape.label:	ランドスケープ変換
+GV*optiongvPopup*scalesLabel.label:	\   スケール  \ 
+
+GV*miscmenuLabel.label:			その他メニューエントリ
+GV*magmenuLabel.label:			拡大メニューエントリ
+GV*mediasLabel.label:			メディアの大きさ
+GV*confirmLabel.label:			終了時の確認
+GV*misc.label:				その他
+GV*scrolling.label:			スクロール反転
+GV*eyeGuide.label:			スクロールガイド
+GV*confirmPrint.label:			印刷時の確認
+GV*uncompressLabel.label:		圧縮展開
+GV*autoCenter.label:			自動的に中央へ
+GV*printCommandLabel.label:		印刷コマンド
+GV*scratchDirLabel.label:		スクラッチディレクトリ
+GV*saveDirLabel.label:			保存ディレクトリ
+GV*scalesLabel.label:			スケール
+GV*scaleBaseLabel.label:		スケールベース
+
+GV*safer.label:				より安全に
+GV*quiet.label:				終了
+GV*defaults.label:			システム標準値
+GV*scanLabel.label:			PDF読み込み
+GV*convLabel.label:			PDF変換
+GV*gsLabel.label:			Postscriptエンジン
+GV*x11devLabel.label:			デバイス
+GV*x11alphadevLabel.label:		アンチエイリアスデバイス
+GV*argumentsLabel.label:		引数
+
+GV*filtersLabel.label:			ファイル選択フィルタ
+GV*dirsLabel.label:			ファイル選択ディレクトリ
+GV*filterLabel.label:			標準フィルタ
+
+GV*miscMenu.update.label:		ファイル更新
+GV*miscMenu.redisplay.label:		再表示
+GV*miscMenu.stop.label:			割り込み停止
+GV*miscMenu.toggle_current.label:	現在のページマーク/解除
+GV*miscMenu.toggle_odd.label:		奇数ページマーク/解除
+GV*miscMenu.toggle_even.label:		偶数ページマーク/解除
+GV*miscMenu.unmark.label:		全マーク解除
+GV*miscMenu.print_all.label:		全印刷
+GV*miscMenu.print_marked.label:		マーク部分印刷
+GV*miscMenu.save_all.label:		全保存
+GV*miscMenu.save_marked.label:		マーク部分保存
+
--- src/gv_nls_ko_KR.UTF-8.dat
+++ src/gv_nls_ko_KR.UTF-8.dat	2008-03-27 16:41:29.417781453 +0100
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
+! 
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+! 
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program; if not, write to the Free Software
+! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+! 
+! Author:   Johannes Plass (plass@thep.physik.uni-mainz.de)
+!           Department of Physics
+!           Johannes Gutenberg-University
+!           Mainz, Germany
+!
+!
+!  gv_euc-kr.ad
+!  Korean NLS label for gv by
+!  1999 Sang-Jin Hwang, (hsjlinux@netian.com)
+!
+
+
+!##### Zoom Popup
+
+GV*zoomPopup.title:			GV - 확대
+
+!##### Info Popup
+
+GV*infoPopup.title:			고스트 스크립트 메시지
+
+!##### Dialog Popup
+
+GV*dialogPopup.title:			다이알로그
+
+!##### Note Popup
+
+GV*notePopup.title:			메시지
+
+!##### Confirm Popup
+
+GV*confirmPopup.title:			확인
+
+!##### OptionsSetup Popup
+
+GV*optionfsPopup.title:			파일 선택 옵션
+
+!##### OptionsGS Popup
+
+GV*optiongsPopup.title:			고스트 스크립트 옵션
+
+!##### OptionsGV Popup
+
+GV*optiongvPopup.title:			GV 옵션
+
+!##### OptionsSetup Popup
+
+GV*optionsetupPopup.title:		설정 옵션
+
+!##### FileSet Popup
+
+GV*fileSelPopup.title:			파일 열기
+
+!################################################
+!##### Labels
+!################################################
+
+GV*cancel.Label:			취소
+GV*dismiss.Label:			닫기
+GV*apply.label:				적용
+GV*copyright.Label:			저작권
+GV*quit.Label:				종료
+GV*fileButton.Label:			파일
+GV*open.Label:				열기 ...
+GV*reopen.Label:			재열기
+GV*update.Label:			경신
+GV*printAllPages.Label:			문서 인쇄 ...
+GV*printMarkedPages.Label:		마크한 페이지 인쇄 ...
+GV*saveAllPages.Label:			문서 저장 ...
+GV*saveMarkedPages.Label:		마크한 페이지 저장 ...
+GV*stateButton.Label:			환경 설정
+GV*stop.Label:				중지
+GV*dsc.Label:				문서 구조화
+GV*eof.Label:				EOF 주석 무시
+GV*antialias.Label:			매끄러운 화면 처리
+GV*watchFile.Label:			자동 파일경신
+GV*showTitle.Label:			타이틀 표시
+GV*pixmap.Label:			Backing Pixmap
+GV*size.Label:				자동 크기 조절
+GV*watch.Label:				자동 파일경신
+GV*optionsgv.Label:			GV 옵션 ...
+GV*optionsfs.Label:			파일 선택 옵션 ...
+GV*optionsgs.Label:			고스트 스크립트 옵션 ...
+GV*optionssetup.Label:			설정 옵션 ...
+GV*pageButton.Label:			페이지
+GV*next.Label:				다음
+GV*show.Label:				화면 재시작
+GV*prev.Label:				이전
+GV*center.Label:			중간
+GV*pageButton*current.Label:		현재페이지 마크/해제
+GV*pageButton*even.Label:		짝수페이지 마크/해제
+GV*pageButton*odd.Label:		홀수페이지 마크/해제
+GV*pageButton*unmark.Label:		전 마크 해제
+GV*processButton.Label:			\ 진행중
+GV*mark.Label:				마크
+GV*prevPage.Label:			<<
+GV*nextPage.Label:			>>
+GV*unmark.Label:			표시 안함
+GV*automatic.Label:			자동
+GV*portrait.Label:			Portrait
+GV*landscape.Label:			Landscape
+GV*upsidedown.Label:			상하 반전
+GV*seascape.Label:			Seascape
+GV*swap.Label:				Landscape변환
+GV*toggleCurrent.label:			현재페이지 마크/해제
+GV*toggleEven.label:			짝수페이지 마크/해제
+GV*toggleOdd.label:			홀수페이지 마크/해제
+GV*unmarkAll.label:			모두 표시 안함
+GV*printAll.label:			모두 인쇄
+GV*printMarked.label:			마크부분 인쇄
+GV*saveAll.label:			모두 저장
+GV*saveMarked.label:			표시 저장
+GV*openFile.label:			열기
+GV*redisplay.label:			화면 재시작
+GV*updateFile.label:			파일경신
+GV*checkFile.label:			파일 확인
+
+GV*filters.label:			필터
+GV*dirs.label:				디렉토리
+GV*button1.label:			취소
+GV*button2.label:			파일 열기
+GV*rescan.label:			디렉토리 검색
+GV*screenSizeLabel.label:		회면 사이즈mm]
+
+GV*versionPopup*versionDone*label:	취소
+GV*dialogPopup*cancel.label:		취소
+GV*notePopup*done.label:		예
+
+GV*confirmPopup*cancel.label:		취소
+GV*confirmPopup*done.label:		종료
+GV*save.label:				저장
+
+GV*optiongvPopup*mediaLabel.label:	\ 용지 사이즈 \ 
+GV*optiongvPopup*fmediaLabel.label:	불판명시의 용지 사이즈
+GV*optiongvPopup*orientLabel.label:	\ 원 상태 \ 
+GV*optiongvPopup*forientLabel.label:	윈 상태로 복귀
+GV*optiongvPopup*magLabel.label:	확대축소
+GV*optiongvPopup*antialias.label:	다듬기
+GV*optiongvPopup*respectDSC.label:	DSC를 유효
+GV*optiongvPopup*eof.label:		EOF를 무시
+GV*optiongvPopup*autoResize.label:	가변 사이즈
+GV*optiongvPopup*swapLandscape.label:	Landscape변환
+GV*optiongvPopup*scalesLabel.label:	\   스케일 \ 
+
+GV*miscmenuLabel.label:			기타 메뉴
+GV*magmenuLabel.label:			확대 메뉴 목록
+GV*mediasLabel.label:			미디어 크기
+GV*confirmLabel.label:			확인 종료
+GV*misc.label:				기타
+GV*scrolling.label:			스크롤 반전
+GV*eyeGuide.label:			스크롤 가이드
+GV*confirmPrint.label:			인쇄시 확인
+GV*uncompressLabel.label:		압축 전개
+GV*autoCenter.label:			자동적으로 중앙으로
+GV*printCommandLabel.label:		인쇄 명령어
+GV*scratchDirLabel.label:		스크레치 디렉토리
+GV*saveDirLabel.label:			디렉토리 저장
+GV*scalesLabel.label:			스케일
+GV*scaleBaseLabel.label:		기본 스케일
+
+GV*safer.label:				보다 안전하게
+GV*quiet.label:				종료
+GV*defaults.label:			시스템 표준값
+GV*scanLabel.label:			PDF 검색
+GV*convLabel.label:			PDF 변환
+GV*gsLabel.label:			Postscript인터럽트
+GV*x11devLabel.label:			디바이스
+GV*x11alphadevLabel.label:		디바이스 조정
+GV*argumentsLabel.label:		인수
+
+GV*filtersLabel.label:			파일 선택 필터
+GV*dirsLabel.label:			파일 선택 디렉토리
+GV*filterLabel.label:			기본 필터
+
+GV*miscMenu.update.label:		파일경신
+GV*miscMenu.redisplay.label:		화면 재조정
+GV*miscMenu.stop.label:			인터럽트 중지
+GV*miscMenu.toggle_current.label:	현재페이지 마크/해제
+GV*miscMenu.toggle_odd.label:		홀수페이지 마크/해제
+GV*miscMenu.toggle_even.label:		짝수페이지 마크/해제
+GV*miscMenu.unmark.label:		모두 표시 안함
+GV*miscMenu.print_all.label:		모두 인쇄
+GV*miscMenu.print_marked.label:		마크 부분 인쇄
+GV*miscMenu.save_all.label:		모두 저장
+GV*miscMenu.save_marked.label:		표시 저장
+
--- src/info.c
+++ src/info.c	2008-03-27 15:58:13.548742759 +0100
@@ -35,6 +35,7 @@
 #include "message.h"
 
 #include "config.h"
+#include "VlistP.h"
 
 #include <stdio.h>
 
@@ -68,6 +69,20 @@ static Bool	infoPopupCreated = False;
 static Bool	infoPopupVisible = False;
 static int	info_length;
 
+static int FontSetWidth( XFontSet fnt ) {
+  XRectangle ink_array_return, logical_array_return;
+  XRectangle overall_ink_return, overall_logical_return;
+  int num_chars_return;
+  XmbTextPerCharExtents( fnt, "A", 1,
+			 &ink_array_return,
+			 &logical_array_return, 1,
+			 &num_chars_return,
+			 &overall_ink_return,
+			 &overall_logical_return );
+   return( overall_logical_return.width );
+}
+#define FontSetHeight(fnt)	(XExtentsOfFontSet(fnt)->max_logical_extent.height)
+
 /*###############################################################################
    cb_popupInfoPopup
 ###############################################################################*/
@@ -183,7 +198,9 @@ void makeInfoPopup()
    Cardinal     n;
    Dimension	bottomMargin, leftMargin, rightMargin, topMargin;
    Dimension	width, height;
+   XFontSet      fontset;
    XFontStruct	*font;
+   VlistWidget  vw;
 
    BEGINMESSAGE(makeInfoPopup)
 
@@ -211,20 +228,30 @@ void makeInfoPopup()
             XtSetArg(args[n], XtNleft, XtChainLeft);				n++;
             XtSetArg(args[n], XtNright, XtChainRight);				n++;
     infodismiss = XtCreateManagedWidget("dismiss", buttonWidgetClass,infoform,args,n);
+    vw = (VlistWidget)infodismiss;
             XtAddCallback(infodismiss, XtNcallback, cb_popdownInfoPopup,NULL);
             XtInstallAccelerators(infoform, infodismiss);
             XtInstallAccelerators(infotext, infodismiss);
    
 										n=0;
-            XtSetArg(args[n], XtNfont, &font);					n++;
+	    if( vw->simple.international == True ) {
+	      XtSetArg(args[n], XtNfontSet, &fontset);				n++;
+	    } else {
+              XtSetArg(args[n], XtNfont, &font);				n++;
+	    }
             XtSetArg(args[n], XtNbottomMargin, &bottomMargin);			n++;
             XtSetArg(args[n], XtNleftMargin, &leftMargin);			n++;
             XtSetArg(args[n], XtNrightMargin, &rightMargin);			n++;
             XtSetArg(args[n], XtNtopMargin, &topMargin);			n++;
     XtGetValues(infotext,args,n);
 
-    width = font->max_bounds.width * 80 + leftMargin + rightMargin;
-    height = (font->ascent + font->descent) * 22 + topMargin + bottomMargin;
+    if( vw->simple.international == True ) {
+      width  = FontSetWidth(fontset)  * 80 + leftMargin + rightMargin;
+      height = FontSetHeight(fontset) * 22 + topMargin + bottomMargin;
+    } else {
+      width = font->max_bounds.width * 80 + leftMargin + rightMargin;
+      height = (font->ascent + font->descent) * 22 + topMargin + bottomMargin;
+    }
 
 										n=0;
             XtSetArg(args[0], XtNwidth, width);					n++;
--- src/main.c
+++ src/main.c	2008-03-27 15:58:52.821773601 +0100
@@ -380,6 +380,32 @@ int main(argc, argv)
 
     /*###  initializing toolkit and the application context ########*/
 
+    /*
+      Make sure that LC_NUMERIC is POSIX.
+      LC_NUMERIC must not use locales like de_DE.UTF-8 or de_DE@eurowhere
+      the decimal separator is ',' or gv will fail with the
+      message "**** Unable to open the initial device, quitting."
+    */
+    if (getenv("LC_ALL")) {
+	    char *locale;
+	    locale = getenv("LC_ALL");
+            unsetenv("LC_ALL");
+	    setenv("LC_CTYPE", locale, 1);
+	    setenv("LC_NUMERIC", locale, 1);
+	    setenv("LC_TIME", locale, 1);
+	    setenv("LC_COLLATE", locale, 1);
+	    setenv("LC_MONETARY", locale, 1);
+	    setenv("LC_MESSAGES", locale, 1);
+	    setenv("LC_PAPER", locale, 1);
+	    setenv("LC_NAME", locale, 1);
+	    setenv("LC_ADDRESS", locale, 1);
+	    setenv("LC_TELEPHONE", locale, 1);
+	    setenv("LC_MEASUREMENT", locale, 1);
+	    setenv("LC_IDENTIFICATION", locale, 1);
+    }
+    setenv("LC_NUMERIC", "POSIX", 1);
+    XtSetLanguageProc(NULL, NULL, NULL);
+
     INFMESSAGE(initializing toolkit and the application context)
     XtToolkitInitialize();
     app_con = XtCreateApplicationContext();
--- src/misc_private.c
+++ src/misc_private.c	2008-03-27 16:02:51.532357064 +0100
@@ -47,6 +47,7 @@
 
 #include "types.h"
 #include "misc_private.h"
+#include "VlistP.h"
 
 /*############################################################*/
 /* update_label */
@@ -58,6 +59,7 @@ update_label(widget,text)
    char   *text;
 {
    LabelWidget w = (LabelWidget) widget;
+   VlistWidget vw = (VlistWidget) widget;
    int shadow;
 
    BEGINMESSAGE1(update_label)
@@ -77,26 +79,41 @@ update_label(widget,text)
    if (text) {      /* most of the following comes from X11/Xaw/Label.c */
       Position x,y;
       INFSMESSAGE(update_label,text)
-      y = w->label.label_y + w->label.font->max_bounds.ascent;
+      if( vw->simple.international == True ) {
+	y = w->label.label_y - XExtentsOfFontSet(w->label.fontset)->max_logical_extent.y;
+      } else {
+	y = w->label.label_y + w->label.font->max_bounds.ascent;
+      }
       if (w->label.justify == XtJustifyCenter) {
          unsigned int width;
          int len = (int) strlen(text);
-         XFontStruct *fs = w->label.font;
-         if   (w->label.encoding) width = XTextWidth16 (fs, (XChar2b*)text, (int)(len/2) );
-         else                     width = XTextWidth   (fs, text          , (int)(len)   );
+	 if( vw->simple.international == True ) {
+	   XFontSet     fs = w->label.fontset;
+	   width = XmbTextEscapement(fs, text, (int)len );
+	 } else {
+	   XFontStruct *fs = w->label.font;
+	   if   (w->label.encoding) width = XTextWidth16 (fs, (XChar2b*)text, (int)(len/2) );
+	   else                     width = XTextWidth   (fs, text          , (int)(len)   );
+	 }
          x = (Position) ((w->core.width-width)/2);
       } else {
          x = w->label.internal_width + w->threeD.shadow_width;
       }
 
-      if (w->label.encoding) {
-	 XDrawString16(XtDisplay(widget), XtWindow(widget),
-                       w->label.normal_GC,
-	  	       x, y,(XChar2b*)text, (int)(strlen(text)));
+      if( vw->simple.international == True ) {
+	XmbDrawString(XtDisplay(widget), XtWindow(widget),
+		      w->label.fontset, w->label.normal_GC,
+		      x, y, text, (int)(strlen(text)));
       } else {
-         XDrawString(XtDisplay(widget), XtWindow(widget),
+	if (w->label.encoding) {
+	   XDrawString16(XtDisplay(widget), XtWindow(widget),
+                         w->label.normal_GC,
+	  	         x, y,(XChar2b*)text, (int)(strlen(text)));
+	} else {
+           XDrawString(XtDisplay(widget), XtWindow(widget),
                        w->label.normal_GC,
 	  	       x, y, text, (int)(strlen(text)));
+	}
       }
    }
 
openSUSE Build Service is sponsored by