--- Makefile.alpha.orig	Thu Jul  6 22:44:43 1995
+++ Makefile.alpha	Tue Sep 26 21:26:23 1995
@@ -8,7 +8,7 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+# RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
@@ -19,7 +19,7 @@
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+# knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -38,7 +38,7 @@
 sysconfigflags =
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -55,6 +55,8 @@
 # syslibs = -lnsl -lsocket -lgen
 #### For Motorola SVR4:
 # syslibs = -lnsl -lsocket -lgen
+#### For DEC OSF/1
+syslibs =
 
 
 #### X include file locations -- if your platform puts the X include
@@ -70,7 +72,7 @@
 # xinc = -I/usr/X11/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
 #### For HP-UX 8.00:
@@ -91,6 +93,8 @@
 # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
 #### For Motorola SVR4:
 # xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For DEC OSF/1 Japanese
+xlibs = -lXm -lXmu -lXt -lX11 -lDXm
 
 
 #### DTM AND HDF SUPPORT; READ CAREFULLY
@@ -114,17 +118,17 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_OSF
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_OSF
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/alpha
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/alpha
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -179,13 +183,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use DEC's Japanese Ultrix or OSF-1 environment,
+####   set -DJDEC
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -200,27 +264,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.dec.orig	Fri Jun 23 03:29:48 1995
+++ Makefile.dec	Tue Sep 26 21:28:04 1995
@@ -8,7 +8,7 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+# RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
@@ -19,7 +19,7 @@
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+# knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -38,7 +38,7 @@
 sysconfigflags =
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -55,6 +55,8 @@
 # syslibs = -lnsl -lsocket -lgen
 #### For Motorola SVR4:
 # syslibs = -lnsl -lsocket -lgen
+#### For Japanese ULTRIX and OSF/1
+# syslibs = -ljsy -lim
 
 
 #### X include file locations -- if your platform puts the X include
@@ -68,10 +70,10 @@
 # xinc = -I/usr/include/X11
 #### BSD/386
 # xinc = -I/usr/X11/include
-xinc = -I/usr/local/include
+# xinc = -I/usr/local/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
 #### For HP-UX 8.00:
@@ -88,11 +90,13 @@
 # xlibs = -lXtXm_s -lXmu -lX11_s
 #### For nearly everyone else:
 xlibs = -lXm -lXmu -lXt -lX11
-xlibs = -L/usr/local/lib -lXm -lXmu -lXt -lX11
+# xlibs = -L/usr/local/lib -lXm -lXmu -lXt -lX11
 #### For BSD/386:
 # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
 #### For Motorola SVR4:
 # xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For DEC OSF/1 Japanese
+# xlibs = -lXm -lXmu -lXt -lX11 -lDXm
 
 
 #### DTM AND HDF SUPPORT; READ CAREFULLY
@@ -125,9 +129,9 @@
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/ultrix
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/ultrix
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 #### DIRECT WAIS SUPPORT
 
@@ -181,13 +185,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use DEC's Japanese Ultrix or OSF-1 environment,
+####   set -DJDEC
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+customflags = -DJDEC -DL10N # -DMOTIF_I18N -DHTML3 -DNEWS_SELECT -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O2 $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -202,27 +266,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.ews.orig	Wed Sep 27 22:04:19 1995
+++ Makefile.ews	Fri Sep 29 11:19:45 1995
@@ -0,0 +1,365 @@
+# Toplevel Makefile for NCSA Mosaic.
+
+# You shouldn't need to touch any of the Makefiles in the various
+# subdirectories if you configure this Makefile correctly.
+
+# If you need to make serious changes to get Mosaic to compile on your
+# platform, send context diffs to mosaic-x@ncsa.uiuc.edu.
+
+# -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
+
+RANLIB = /bin/true
+#### On non-SGI's, this should be ranlib.
+#RANLIB = ranlib
+
+#CC = cc
+#### On Sun's, this should be gcc (ANSI required).
+#CC = gcc
+#### On NEC EWS4800's, these are different!
+#CC = /usr/necccs/bin/cc
+CC = /usr/abiccs/bin/cc
+
+
+#### For a few files in the source, some compilers may need to be kicked
+#### in K&R mode.  E.g., on SGI's, -cckr does this.
+#knrflag = -cckr
+#### On most systems, no flag is needed.
+knrflag =
+
+
+#### Random system configuration flags.
+#### --> *** For Motif 1.2 ON ANY PLATFORM, do -DMOTIF1_2 *** <--
+#### For IBM AIX 3.2, do -D_BSD
+#### For NeXT, do -DNEXT
+#### For HP/UX, do -Aa -D_HPUX_SOURCE
+#### For Dell SVR4, do -DSVR4
+#### For Solaris, do -DSVR4 
+#### For Esix 4.0.4 and Solaris x86 2.1, do -DSVR4
+#### For Convex whatever, do -DCONVEX
+#### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
+#### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
+#### For NEC EWS4800 SVR4.2 /usr/necccs/bin/cc,
+####     do -DSVR4 -DMOTIF1_2 -ZXNd=10000 -ZXNl=4000 -ZPNa=250000 -ZPNb=50
+#### For NEC EWS4800 SVR4.2 /usr/abiccs/bin/cc, do -DSVR4 -DMOTIF1_2 -ZXNd=10000
+sysconfigflags = -DSVR4 -DMOTIF1_2 -ZXNd=10000
+
+#### System libraries.
+# syslibs = -lPW -lsun -lmalloc
+#### For AIX 3.2
+# syslibs = -lPW -lbsd
+#### For most other Motif platforms:
+# syslibs = -lPW
+#### For Sun's and Ultrix and HP and BSD/386:
+# syslibs =
+#### For Sun's with no DNS:
+# syslibs = -lresolv
+#### For SCO ODT:
+# syslibs = -lPW -lsocket -lmalloc
+#### For Dell SVR4:
+# syslibs = -lnsl -lsocket -lc -lucb
+#### For Solaris (?)
+# syslibs = -lnsl -lsocket -lgen
+#### For Motorola SVR4:
+# syslibs = -lnsl -lsocket -lgen
+#### For Japanese ULTRIX and OSF/1
+# syslibs = -ljsy -lim
+#### For NEC EWS4800 SVR4.2 /usr/necccs/bin/cc
+#syslibs = -lsocket -lnsl # $(LINK_STRCASECMP) -lc
+#### For NEC EWS4800 SVR4.2 /usr/abiccs/bin/cc
+syslibs = -lresolv -lsocket -lnsl # $(LINK_STRCASECMP) -lc
+
+#### If you need strcasecmp(), uncomment here.
+#### unset STRCASECMP & LINK_STRCASECMP
+STRCASECMP =
+#STRCASECMP = strcasecmp.o
+#LINK_STRCASECMP = ../$(STRCASECMP)
+
+
+#### X include file locations -- if your platform puts the X include
+#### files in a strange place, set this variable appropriately.  Else
+#### don't worry about it.
+#### HP X11R4 version:
+# xinc = -I/usr/include/Motif1.1 -I/usr/include/X11R4
+#### HP X11R5 version:
+# xinc = -I/usr/include/Motif1.2 -I/usr/local/X11R5/include
+#### NeXT version:
+# xinc = -I/usr/include/X11
+#### BSD/386
+# xinc = -I/usr/X11/include
+
+#### X library locations.
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+#### For Sun's (at least running stock X/Motif as installed on our machines):
+# xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
+#### For HP-UX 8.00:
+# xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
+#### For HP-UX 9.01: The X11R5 libraries are here on our systems
+# xlibs = -L/usr/lib/Motif1.2 -lXm -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lXmu -lXt -lX11
+#### For NeXT:
+# xlibs = -L/usr/lib/X11 -lXm -lXmu -lXt -lX11
+#### For Dell SVR4:
+# xlibs = -L/usr/X5/lib -lXm -lXmu -lXt -lXext -lX11
+#### For Solaris (?)
+# xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For SCO ODT 3.0 (I'm told that -lXtXm_s is *not* a typo :-):
+# xlibs = -lXtXm_s -lXmu -lX11_s
+#### For nearly everyone else:
+# xlibs = -lXm -lXmu -lXt -lX11
+#### For BSD/386:
+# xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
+#### For Motorola SVR4:
+# xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For SGI/IRIX 4.0.5H Japanese 
+# xlibs = -lXjm_s -lXmu -lXt_s -lX11_s -lwnn
+#### For DEC OSF/1 Japanese
+# xlibs = -lXm -lXmu -lXt -lX11 -lDXm
+#### For NEC EWS4800 SVR4.2
+# xlibs = -L/usr/necccs/lib/X11R5 -lXm -lXmu -lXt -lXext -lX11 -lgen -lm
+# xlibs = -L/usr/necccs/lib/X11R6 -lXm -lXmu -lXt -lXext -lX11 -lSM -lICE -lgen -lm
+xlibs = -L/usr/abiccs/lib/X11R5 -lXm -lXmu -lXt -lXext -lX11 -lgen -lm
+# xlibs = -L/usr/abiccs/lib/X11R6 -lXm -lXmu -lXt -lXext -lX11 -lSM -lICE -lgen -lm
+
+
+#### DTM AND HDF SUPPORT; READ CAREFULLY
+
+#### If you want to compile with DTM and HDF support, you should leave
+#### the following lines uncommented and make sure you have a copy of
+#### HDF 3.3 (r1 or later) installed and ready.  You can find HDF on
+#### ftp.ncsa.uiuc.edu in /HDF.
+
+#### If you do not want to compile with DTM and HDF support, comment
+#### the following lines out.  (If you are compiling from source for
+#### the first time, you should probably not bother with HDF and DTM
+#### support.)
+
+#### dtmmachtype needs to be set to one of the following:
+####   sun, sgi, dec, ibm, next, cray, convex
+#### If your platform is not one of the above, then either do not compile
+#### with HDF/DTM support or try hacking libdtm/makefile.
+
+#dtmmachtype = sun
+#dtmdirs = libdtm libnet
+#dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
+#dtmflags = -DHAVE_DTM -I.. -I../libnet
+#hdfdir = /hdf/install/sun
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -I$(hdfdir)/include
+
+
+#### JPEG SUPPORT
+#### For inline JPEG support, the following should be defined:
+#### The library used is Independent JPEG Group (IJG's) 5.0a.
+
+#jpegdir = /opt/local
+#jpeglibs = $(jpegdir)/lib/libjpeg.a
+#jpegflags = -I$(jpegdir)/include -DHAVE_JPEG
+
+#jpegdir = libjpeg
+#jpeglibs = ../$(jpegdir)/libjpeg.a
+#jpegflags = -I../$(jpegdir) -DHAVE_JPEG
+
+
+#### DIRECT WAIS SUPPORT
+
+#### If you want to have Mosaic be able to communicate directly with
+#### WAIS servers, do set the following flags appropriately.  We
+#### recommend linking with CNIDR's freeWAIS 0.1 distribution; other
+#### WAIS distributions may work but we have not tested them with
+#### Mosaic.  freeWAIS 0.1 can be found on sunsite.unc.edu in
+#### /pub/wais.
+
+#### If you do not wish to link to the WAIS libraries, then comment
+#### the following lines out.  Mosaic will then communicate with WAIS
+#### servers via a HTTP gateway.
+
+#### -lm is required for freeWAIS 0.1, as ceil() is used.
+
+#waisroot = /X11/mosaic/freeWAIS-0.1-sun
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+
+
+
+#### PEM/PGP SUPPORT
+####
+#### PEM stands for Privacy Enhanced Mail.
+#### PGP stands for Pretty Good Privacy.
+####
+#### PGP and PEM are programs to allow you and a second party to
+#### communicate in a way which does not allow third parties to read
+#### them, and which certify that the person who sent the message is
+#### really who they claim they are. 
+####
+#### PGP and PEM both use RSA encryption. The U.S. government has strict
+#### export controls over foreign use of this technology, so people outside
+#### the U.S. may have a difficult time finding programs which perform
+#### the encryption. 
+####
+#### If you have a way to encrypt/decrypt with PEM or PGP, and will be 
+#### communicating with a server (or servers) which also uses PEM or PGP
+#### you will want to set this flag when you compile.
+
+# PEM_FLAG = -DPEM_AUTH
+
+
+#### Customization flags:
+#### . If you want Mosaic to come up with monochrome colors by default,
+####   use -DMONO_DEFAULT
+#### . If you want to define the default Mosaic home page, set
+####   -DHOME_PAGE_DEFAULT=\\\"url\\\"
+#### . If you want to define the default Mosaic documentation directory
+####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
+#### . Other things you can define are spelled out in src/mosaic.h.
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =	../libmime
+#mmslibdir =	$(mmsroot)
+#mmslibs =	$(mmslibdir)/libmms.a
+#mmsflags =	-DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
+
+#### AUDIO ANNOTATION SUPPORT for ONLY NEC EWS4800 and SONY NEWS
+#### . If you use NEC EWS4800 / SONY NEWS with AUDIO function,
+####   set following variables
+#recsrc = record_necews.c
+#recsrc = record_sonynews.c
+#recdir = /usr/local/lib/mosaic
+#recdef = -DRECORD=\\\"$(recdir)/record\\\"
+
+
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
+# ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
+
+
+CFLAGS = -O -KOlimit=3000 $(sysconfigflags) $(socksflags)
+#CFLAGS = -g $(sysconfigflags) $(socksflags)
+
+# Don't worry about these -- for development purposes only.
+PURIFY = purify
+QUANTIFY = quantify
+
+default: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src
+	@echo \*\*\* Welcome to NCSA Mosaic.
+purifyd: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src-purifyd
+	@echo \*\*\* Welcome to Purify'd NCSA Mosaic.
+quantifyd: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src-quantifyd
+	@echo \*\*\* Welcome to Quantify'd NCSA Mosaic.
+
+libXmx::
+	@echo --- Building libXmx
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
+
+libhtmlw::
+	@echo --- Building libhtmlw
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+
+libwww2::
+	@echo --- Building libwww2
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
+
+src::
+	@echo --- Building src
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2 $(recdef)" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+
+src-purifyd::
+	@echo --- Building Purify'd src
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2 $(recdef)" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+
+src-quantifyd::
+	@echo --- Building Quantify'd src
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2 $(recdef)" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+
+libnet::
+	@echo --- Building libnet
+	cd libnet; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(dtmflags)"
+
+libdtm::
+	@echo --- Building libdtm
+	cd libdtm; make $(dtmmachtype)
+
+#### for NEC EWS4800 and SONY NEWS
+record::
+	@echo --- Building Record for NEC EWS4800
+	cd record;make CC=$(CC) RECORDDIR=$(recdir) RECORDSRC=$(recsrc)
+
+clean:
+	cd libXmx; make $@
+	cd libhtmlw; make $@
+	cd libwww2; make $@
+	cd src; make $@
+	cd libnet; make $@
+	cd libdtm; make $@
+
+wclean:
+	cd libhtmlw; make $@
+	cd src; make $@
+
+commit:
+	cvs commit
+update:
+	cvs update
+countlines:
+	wc libdtm/*.[ch] libnet/*.[ch] libXmx/*.[ch] libhtmlw/*.[ch] libwww2/*.[ch] src/*.[ch]
+replicate:
+	cp Makefile Makefile.sun
+	cp Makefile Makefile.ibm
+	cp Makefile Makefile.dec
+	cp Makefile Makefile.alpha
+	cp Makefile Makefile.hp
+prune:
+	mv Makefile.sun Makefile.sun.old
+	mv Makefile.ibm Makefile.ibm.old
+	mv Makefile.dec Makefile.dec.old
+	mv Makefile.alpha Makefile.alpha.old
+	mv Makefile.hp Makefile.hp.old
--- Makefile.hp.orig	Thu Jul  6 22:47:10 1995
+++ Makefile.hp	Wed Sep 27 21:58:05 1995
@@ -40,7 +40,7 @@
 sysconfigflags =-Aa -D_HPUX_SOURCE -DMOTIF1_2
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -72,7 +72,7 @@
 # xinc = -I/usr/X11/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
 #### For HP-UX 8.00:
@@ -116,17 +116,17 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_HPUX
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_HPUX
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/hp
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/hp
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 #### DIRECT WAIS SUPPORT
 
@@ -143,10 +143,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-hp
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-hp
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 
@@ -180,13 +180,71 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+####   If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =	 -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -201,27 +259,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 
 libnet::
--- Makefile.ibm.orig	Thu Jul  6 07:39:59 1995
+++ Makefile.ibm	Wed Sep 27 21:58:39 1995
@@ -21,7 +21,7 @@
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+# knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -40,7 +40,7 @@
 sysconfigflags = -D_BSD
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -72,7 +72,7 @@
 # xinc = -I/usr/X11/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
 #### For HP-UX 8.00:
@@ -116,17 +116,17 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_AIX
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_AIX
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/ibm/
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/ibm/
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 #### DIRECT WAIS SUPPORT
 
@@ -178,13 +178,71 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -199,28 +257,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
-
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 
 libnet::
--- Makefile.indy.orig	Fri Jul  7 02:25:36 1995
+++ Makefile.indy	Wed Sep 27 21:59:07 1995
@@ -116,17 +116,17 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_IRIX_5.2
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_IRIX_5.2
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/irix52
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/irix52
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 #### DIRECT WAIS SUPPORT
 
@@ -143,10 +143,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-indy
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-indy
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 #### PEM/PGP SUPPORT
@@ -180,7 +180,44 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use Japanese SGI/IRIX 4.0.5H,
+####   set -DJ_IRIX
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DJ_IRIX -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
 
@@ -191,7 +228,7 @@
 #### version of Mosaic includes support for compiling with SOCKS
 #### support enabled; you will need the version of SOCKS found at:
 ####
-####   file://ftp.nec.com/pub/security/socks.cstc
+####   ftp://ftp.nec.com/pub/security/socks.cstc
 ####
 #### SOCKS and the SOCKS support code in Mosaic are NOT supported by
 #### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
@@ -211,6 +248,7 @@
 
 
 CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -225,27 +263,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(PEM_FLAG) $(sslflags) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.linux.orig	Sat May 27 04:53:18 1995
+++ Makefile.linux	Wed Sep 27 21:59:39 1995
@@ -8,7 +8,7 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+# RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
@@ -125,9 +125,9 @@
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/linux
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/linux
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -182,12 +182,76 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you want to use Secure Socket Layer,
+####   set -DUSE_SSL
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+
+
+
+
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -202,27 +266,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(PEM_FLAG) $(sslflags) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MML_LIBS="$(mmslibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MML_LIBS="$(mmslibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MML_LIBS="$(mmslibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.orig	Thu Jul  6 22:55:23 1995
+++ Makefile	Fri Sep 29 11:20:24 1995
@@ -8,18 +8,18 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+#RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
-CC = cc
+#CC = cc
 #### On Sun's, this should be gcc (ANSI required).
 CC = gcc
 
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+#knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -35,16 +35,20 @@
 #### For Convex whatever, do -DCONVEX
 #### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
 #### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
+#### For PC-UX/V3.2B, do -DSCO -DSVR4 -DMOTIF -DNECODT -DOPENWARE
+#### For NEC EWS4800 SVR4.2 /usr/necccs/bin/cc,
+####     do -DSVR4 -DMOTIF1_2 -ZXNd=10000 -ZXNl=4000 -ZPNa=250000 -ZPNb=50
+#### For NEC EWS4800 SVR4.2 /usr/abiccs/bin/cc, do -DSVR4 -DMOTIF1_2 -ZXNd=10000
 sysconfigflags = 
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
 # syslibs = -lPW
 #### For Sun's and Ultrix and HP and BSD/386:
-syslibs =
+# syslibs =
 #### For Sun's with no DNS:
 #  syslibs = -lresolv
 #### For SCO ODT:
@@ -55,6 +59,13 @@
 # syslibs = -lnsl -lsocket -lgen
 #### For Motorola SVR4:
 # syslibs = -lnsl -lsocket -lgen
+#### For Japanese ULTRIX and OSF/1
+# syslibs = -ljsy -lim
+#### For NEC EWS4800 SVR4.2 /usr/necccs/bin/cc
+#syslibs = -lsocket -lnsl # $(LINK_STRCASECMP) -lc
+#### For NEC EWS4800 SVR4.2 /usr/abiccs/bin/cc
+#syslibs = -lsocket -lnsl $(LINK_STRCASECMP) -lc
+syslibs =
 
 
 #### X include file locations -- if your platform puts the X include
@@ -70,7 +81,7 @@
 # xinc = -I/usr/X11/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
 #### For HP-UX 8.00:
@@ -91,6 +102,17 @@
 # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
 #### For Motorola SVR4:
 # xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For SGI/IRIX 4.0.5H Japanese 
+# xlibs = -lXjm_s -lXmu -lXt_s -lX11_s -lwnn
+#### For DEC OSF/1 Japanese
+# xlibs = -lXm -lXmu -lXt -lX11 -lDXm
+#### For PC-UX/V3.2B
+# xlibs = -lXm -lXt -lXim -lXmu -lX11
+#### For NEC EWS4800 SVR4.2
+# xlibs = -L/usr/necccs/lib/X11R5 -lXm -lXmu -lXt -lXext -lX11 -lgen -lm
+# xlibs = -L/usr/necccs/lib/X11R6 -lXm -lXmu -lXt -lXext -lX11 -lSM -lICE -lgen -lm
+# xlibs = -L/usr/abiccs/lib/X11R5 -lXm -lXmu -lXt -lXext -lX11 -lgen -lm
+# xlibs = -L/usr/abiccs/lib/X11R6 -lXm -lXmu -lXt -lXext -lX11 -lSM -lICE -lgen -lm
 
 
 #### DTM AND HDF SUPPORT; READ CAREFULLY
@@ -114,18 +136,18 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/sun4
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/sun4
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -143,10 +165,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-sun
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-sun
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 #### PEM/PGP SUPPORT
@@ -179,13 +201,85 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use IXI Motif,
+####   set -DIXIMOTIF1_2
+#### . If you use DEC's Japanese Ultrix or OSF/1 environment,
+####   set -DJDEC
+#### . If you use Japanese SGI/IRIX 4.0.5H,
+####   set -DJ_IRIX
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =	../libmime
+#mmslibdir =	$(mmsroot)
+#mmslibs =	$(mmslibdir)/libmms.a
+#mmsflags =     -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
+
+#### AUDIO ANNOTATION SUPPORT for ONLY NEC EWS4800 and SONY NEWS
+#### . If you use NEC EWS4800 / SONY NEWS with AUDIO function,
+####   set following variables
+#recsrc = record_necews.c
+#recsrc = record_sonynews.c
+#recdir = /usr/local/lib/mosaic
+#recdef = -DRECORD=\\\"$(recdir)/record\\\"
+
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
 
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -200,27 +294,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
@@ -229,6 +323,12 @@
 libdtm::
 	@echo --- Building libdtm
 	cd libdtm; make $(dtmmachtype)
+
+#### for NEC EWS4800 and SONY NEWS
+####
+record::
+	@echo --- Building Record for NEC EWS4800
+	cd record;make CC=$(CC) RECORDDIR=$(recdir) RECORDSRC=$(recsrc)
 
 clean:
 	cd libXmx; make $@
--- Makefile.sgi.orig	Fri Jul  7 01:31:13 1995
+++ Makefile.sgi	Wed Sep 27 22:03:02 1995
@@ -124,9 +124,9 @@
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/irix40
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/irix40
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 #### DIRECT WAIS SUPPORT
 
@@ -143,10 +143,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-sgi
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-sgi
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 
@@ -181,7 +181,44 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use Japanese SGI/IRIX 4.0.5H,
+####   set -DJ_IRIX
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DJ_IRIX -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
 
@@ -192,7 +229,7 @@
 #### version of Mosaic includes support for compiling with SOCKS
 #### support enabled; you will need the version of SOCKS found at:
 ####
-####   file://ftp.nec.com/pub/security/socks.cstc
+####   ftp://ftp.nec.com/pub/security/socks.cstc
 ####
 #### SOCKS and the SOCKS support code in Mosaic are NOT supported by
 #### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
@@ -212,6 +249,7 @@
 
 
 CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -226,27 +264,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(PEM_FLAG) $(sslflags) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)" SSL_LIBS="$(ssllibs)" MMS_LIBS="$(mmslibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.solaris-23.orig	Thu Jul  6 22:53:19 1995
+++ Makefile.solaris-23	Wed Sep 27 22:03:47 1995
@@ -125,13 +125,13 @@
 #### If your platform is not one of the above, then either do not compile
 #### with HDF/DTM support or try hacking libdtm/makefile.
 
-# dtmmachtype = sun
-# dtmdirs = libdtm libnet
-# dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
-# dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_Solaris
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#dtmmachtype = sun
+#dtmdirs = libdtm libnet
+#dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
+#dtmflags = -DHAVE_DTM -I.. -I../libnet
+#hdfdir = /hdf2/scratch/sxu/4.0b1_Solaris
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
@@ -141,9 +141,9 @@
 #jpeglibs = $(jpegdir)/lib/libjpeg.a
 #jpegflags = -I$(jpegdir)/include -DHAVE_JPEG
 
-jpegdir = /X11/mosaic/libjpeg/solaris
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/solaris
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -197,13 +197,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use IXI Motif,
+####   set -DIXIMOTIF1_2
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD 
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O2 $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -218,28 +278,28 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.solaris-24.orig	Thu Jul  6 06:57:50 1995
+++ Makefile.solaris-24	Wed Sep 27 22:05:42 1995
@@ -124,13 +124,13 @@
 #### If your platform is not one of the above, then either do not compile
 #### with HDF/DTM support or try hacking libdtm/makefile.
 
-# dtmmachtype = sun
-# dtmdirs = libdtm libnet
-# dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
-# dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_Solaris
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#dtmmachtype = sun
+#dtmdirs = libdtm libnet
+#dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
+#dtmflags = -DHAVE_DTM -I.. -I../libnet
+#hdfdir = /hdf2/scratch/sxu/4.0b1_Solaris
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
@@ -140,9 +140,9 @@
 #jpeglibs = $(jpegdir)/lib/libjpeg.a
 #jpegflags = -I$(jpegdir)/include -DHAVE_JPEG
 
-jpegdir = /X11/mosaic/libjpeg/solaris
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/solaris
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -196,13 +196,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use IXI Motif,
+####   set -DIXIMOTIF1_2
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD 
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O2 $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -217,28 +277,28 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.sony.orig	Wed Sep 27 22:08:32 1995
+++ Makefile.sony	Fri Sep 29 11:16:34 1995
@@ -0,0 +1,342 @@
+# Toplevel Makefile for NCSA Mosaic.
+
+# You shouldn't need to touch any of the Makefiles in the various
+# subdirectories if you configure this Makefile correctly.
+
+# If you need to make serious changes to get Mosaic to compile on your
+# platform, send context diffs to mosaic-x@ncsa.uiuc.edu.
+
+# -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
+
+# RANLIB = /bin/true
+#### On non-SGI's, this should be ranlib.
+RANLIB = ranlib
+
+CC = cc
+#### On Sun's, this should be gcc (ANSI required).
+#CC = gcc
+
+
+#### For a few files in the source, some compilers may need to be kicked
+#### in K&R mode.  E.g., on SGI's, -cckr does this.
+# knrflag = -cckr
+#### On most systems, no flag is needed.
+knrflag =
+
+
+#### Random system configuration flags.
+#### --> *** For Motif 1.2 ON ANY PLATFORM, do -DMOTIF1_2 *** <--
+#### For IBM AIX 3.2, do -D_BSD
+#### For NeXT, do -DNEXT
+#### For HP/UX, do -Aa -D_HPUX_SOURCE
+#### For Dell SVR4, do -DSVR4
+#### For Solaris, do -DSVR4 
+#### For Esix 4.0.4 and Solaris x86 2.1, do -DSVR4
+#### For Convex whatever, do -DCONVEX
+#### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
+#### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
+sysconfigflags = -Wf,-XNl10080
+
+#### System libraries.
+# syslibs = -lPW -lsun -lmalloc
+#### For AIX 3.2
+# syslibs = -lPW -lbsd
+#### For most other Motif platforms:
+# syslibs = -lPW
+#### For Sun's and Ultrix and HP and BSD/386 and Sony NEWS-OS 4.x:
+syslibs =
+#### For Sun's with no DNS:
+# syslibs = -lresolv
+#### For SCO ODT:
+# syslibs = -lPW -lsocket -lmalloc
+#### For Dell SVR4:
+# syslibs = -lnsl -lsocket -lc -lucb
+#### For Solaris (?)
+# syslibs = -lnsl -lsocket -lgen
+#### For Motorola SVR4:
+# syslibs = -lnsl -lsocket -lgen
+#### if you use MIME decode on reading NetNews,
+#### unset STRCASECMP & LINK_STRCASECMP
+#STRCASECMP = strcasecmp.o
+#LINK_STRCASECMP = ../$(STRCASECMP)
+#syslibs = -lsocket -lnsl -lgen $(LINK_STRCASECMP) -lc
+
+
+#### X include file locations -- if your platform puts the X include
+#### files in a strange place, set this variable appropriately.  Else
+#### don't worry about it.
+#### HP X11R4 version:
+# xinc = -I/usr/include/Motif1.1 -I/usr/include/X11R4
+#### HP X11R5 version:
+# xinc = -I/usr/include/Motif1.2 -I/usr/local/X11R5/include
+#### NeXT version:
+# xinc = -I/usr/include/X11
+#### BSD/386
+# xinc = -I/usr/X11/include
+
+#### X library locations.
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+#### For Sun's (at least running stock X/Motif as installed on our machines):
+# xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
+#### For HP-UX 8.00:
+# xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
+#### For HP-UX 9.01: The X11R5 libraries are here on our systems
+# xlibs = -L/usr/lib/Motif1.2 -lXm -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lXmu -lXt -lX11
+#### For NeXT:
+# xlibs = -L/usr/lib/X11 -lXm -lXmu -lXt -lX11
+#### For Dell SVR4:
+# xlibs = -L/usr/X5/lib -lXm -lXmu -lXt -lXext -lX11
+#### For Solaris (?)
+# xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For SCO ODT 3.0 (I'm told that -lXtXm_s is *not* a typo :-):
+# xlibs = -lXtXm_s -lXmu -lX11_s
+#### For nearly everyone else:
+# xlibs = -lXm -lXmu -lXt -lX11
+#### For BSD/386:
+# xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
+#### For Motorola SVR4:
+# xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For Sony NEWS-OS 4.2R
+xlibs = -lXm -lXmu -lXt -lXext -lX11 -lXlc -lm
+
+
+#### DTM AND HDF SUPPORT; READ CAREFULLY
+
+#### If you want to compile with DTM and HDF support, you should leave
+#### the following lines uncommented and make sure you have a copy of
+#### HDF 3.3 (r1 or later) installed and ready.  You can find HDF on
+#### ftp.ncsa.uiuc.edu in /HDF.
+
+#### If you do not want to compile with DTM and HDF support, comment
+#### the following lines out.  (If you are compiling from source for
+#### the first time, you should probably not bother with HDF and DTM
+#### support.)
+
+#### dtmmachtype needs to be set to one of the following:
+####   sun, sgi, dec, ibm, next, cray, convex
+#### If your platform is not one of the above, then either do not compile
+#### with HDF/DTM support or try hacking libdtm/makefile.
+
+#dtmmachtype = sun
+#dtmdirs = libdtm libnet
+#dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
+#dtmflags = -DHAVE_DTM -I.. -I../libnet
+#hdfdir = /hdf/install/sun
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -I$(hdfdir)/include
+
+
+#### JPEG SUPPORT
+#### For inline JPEG support, the following should be defined:
+#### The library used is Independent JPEG Group (IJG's) 5.0a.
+
+#jpegdir = /X11/mosaic/libjpeg/sun4
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
+
+
+#### DIRECT WAIS SUPPORT
+
+#### If you want to have Mosaic be able to communicate directly with
+#### WAIS servers, do set the following flags appropriately.  We
+#### recommend linking with CNIDR's freeWAIS 0.1 distribution; other
+#### WAIS distributions may work but we have not tested them with
+#### Mosaic.  freeWAIS 0.1 can be found on sunsite.unc.edu in
+#### /pub/wais.
+
+#### If you do not wish to link to the WAIS libraries, then comment
+#### the following lines out.  Mosaic will then communicate with WAIS
+#### servers via a HTTP gateway.
+
+#### -lm is required for freeWAIS 0.1, as ceil() is used.
+
+#waisroot = /X11/mosaic/freeWAIS-0.1-sun
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+
+
+
+#### PEM/PGP SUPPORT
+####
+#### PEM stands for Privacy Enhanced Mail.
+#### PGP stands for Pretty Good Privacy.
+####
+#### PGP and PEM are programs to allow you and a second party to
+#### communicate in a way which does not allow third parties to read
+#### them, and which certify that the person who sent the message is
+#### really who they claim they are. 
+####
+#### PGP and PEM both use RSA encryption. The U.S. government has strict
+#### export controls over foreign use of this technology, so people outside
+#### the U.S. may have a difficult time finding programs which perform
+#### the encryption. 
+####
+#### If you have a way to encrypt/decrypt with PEM or PGP, and will be 
+#### communicating with a server (or servers) which also uses PEM or PGP
+#### you will want to set this flag when you compile.
+
+# PEM_FLAG = -DPEM_AUTH
+
+
+#### Customization flags:
+#### . If you want Mosaic to come up with monochrome colors by default,
+####   use -DMONO_DEFAULT
+#### . If you want to define the default Mosaic home page, set
+####   -DHOME_PAGE_DEFAULT=\\\"url\\\"
+#### . If you want to define the default Mosaic documentation directory
+####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
+#### . Other things you can define are spelled out in src/mosaic.h.
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =	../libmime
+#mmslibdir =	$(mmsroot)
+#mmslibs =	$(mmslibdir)/libmms.a
+#mmsflags =     -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
+
+
+#### AUDIO ANNOTATION SUPPORT for ONLY NEC EWS4800 and SONY NEWS
+#### . If you use NEC EWS4800 / SONY NEWS with AUDIO function,
+####   set following variables
+#recsrc = record_necews.c
+#recsrc = record_sonynews.c
+#recdir = /usr/local/lib/mosaic
+#recdef = -DRECORD=\\\"$(recdir)/record\\\"
+
+
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
+# ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
+
+
+CFLAGS = -g $(sysconfigflags)  $(socksflags)
+#CFLAGS = -O $(sysconfigflags) $(socksflags)
+
+# Don't worry about these -- for development purposes only.
+PURIFY = purify
+QUANTIFY = quantify
+
+default: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src
+	@echo \*\*\* Welcome to NCSA Mosaic.
+purifyd: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src-purifyd
+	@echo \*\*\* Welcome to Purify'd NCSA Mosaic.
+quantifyd: $(STRCASECMP) $(dtmdirs) libwww2 libXmx libhtmlw src-quantifyd
+	@echo \*\*\* Welcome to Quantify'd NCSA Mosaic.
+
+libXmx::
+	@echo --- Building libXmx
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
+
+libhtmlw::
+	@echo --- Building libhtmlw
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+
+libwww2::
+	@echo --- Building libwww2
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
+
+src::
+	@echo --- Building src
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2
+
+src-purifyd::
+	@echo --- Building Purify'd src
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(sslflags) $(jpegflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2
+
+src-quantifyd::
+	@echo --- Building Quantify'd src
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(sslflags) $(jpegflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2
+
+libnet::
+	@echo --- Building libnet
+	cd libnet; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(dtmflags)"
+
+libdtm::
+	@echo --- Building libdtm
+	cd libdtm; make $(dtmmachtype)
+
+#### for NEC EWS4800 and SONY NEWS
+record::
+	@echo --- Building Record for NEC EWS4800 and SONY NEWS
+	cd record;make CC=$(CC) RECORDDIR=$(recdir) RECORDSRC=$(recsrc)
+
+clean:
+	cd libXmx; make $@
+	cd libhtmlw; make $@
+	cd libwww2; make $@
+	cd src; make $@
+	cd libnet; make $@
+	cd libdtm; make $@
+
+wclean:
+	cd libhtmlw; make $@
+	cd src; make $@
+
+commit:
+	cvs commit
+update:
+	cvs update
+countlines:
+	wc libdtm/*.[ch] libnet/*.[ch] libXmx/*.[ch] libhtmlw/*.[ch] libwww2/*.[ch] src/*.[ch]
+replicate:
+	cp Makefile Makefile.sun
+	cp Makefile Makefile.ibm
+	cp Makefile Makefile.dec
+	cp Makefile Makefile.alpha
+	cp Makefile Makefile.hp
+prune:
+	mv Makefile.sun Makefile.sun.old
+	mv Makefile.ibm Makefile.ibm.old
+	mv Makefile.dec Makefile.dec.old
+	mv Makefile.alpha Makefile.alpha.old
+	mv Makefile.hp Makefile.hp.old
--- Makefile.sun-lresolv.orig	Thu Jul  6 22:53:23 1995
+++ Makefile.sun-lresolv	Wed Sep 27 22:06:56 1995
@@ -8,18 +8,18 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+# RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
-CC = cc
+# CC = cc
 #### On Sun's, this should be gcc (ANSI required).
 CC = gcc
 
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+# knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -35,10 +35,10 @@
 #### For Convex whatever, do -DCONVEX
 #### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
 #### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
-sysconfigflags = 
+sysconfigflags = # -DMOTIF1_2
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -68,11 +68,15 @@
 # xinc = -I/usr/include/X11
 #### BSD/386
 # xinc = -I/usr/X11/include
+#### For Sun's with OpenWare/Motif
+# xinc = -I/usr/openware/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
 xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
+#### For Sun's with OpenWare/Motif
+# xlibs = -L/usr/openware/lib -lXm -lXim -lXmu -lXt -lXext -lX11 -lm
 #### For HP-UX 8.00:
 # xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
 #### For HP-UX 9.01: The X11R5 libraries are here on our systems
@@ -114,18 +118,18 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/sun4
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/sun4
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -143,10 +147,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-sun
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-sun
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 #### PEM/PGP SUPPORT
@@ -179,13 +183,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use IXI Motif,
+####   set -DIXIMOTIF1_2
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O2 $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -200,27 +264,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- Makefile.sun.orig	Thu Jul  6 22:53:21 1995
+++ Makefile.sun	Wed Sep 27 22:07:28 1995
@@ -8,18 +8,18 @@
 
 # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
 
-RANLIB = /bin/true
+# RANLIB = /bin/true
 #### On non-SGI's, this should be ranlib.
 RANLIB = ranlib
 
-CC = cc
+# CC = cc
 #### On Sun's, this should be gcc (ANSI required).
 CC = gcc
 
 
 #### For a few files in the source, some compilers may need to be kicked
 #### in K&R mode.  E.g., on SGI's, -cckr does this.
-knrflag = -cckr
+# knrflag = -cckr
 #### On most systems, no flag is needed.
 knrflag =
 
@@ -35,10 +35,10 @@
 #### For Convex whatever, do -DCONVEX
 #### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
 #### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
-sysconfigflags = 
+sysconfigflags = -DMOTIF1_2
 
 #### System libraries.
-syslibs = -lPW -lsun -lmalloc
+# syslibs = -lPW -lsun -lmalloc
 #### For AIX 3.2
 # syslibs = -lPW -lbsd
 #### For most other Motif platforms:
@@ -68,11 +68,15 @@
 # xinc = -I/usr/include/X11
 #### BSD/386
 # xinc = -I/usr/X11/include
+#### For Sun's with OpenWare/Motif
+# xinc = -I/usr/openware/include
 
 #### X library locations.
-xlibs = -lXm_s -lXmu -lXt_s -lX11_s
+# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
 #### For Sun's (at least running stock X/Motif as installed on our machines):
-xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
+xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
+#### For Sun's with OpenWare/Motif
+# xlibs = -L/usr/openware/lib -lXm -lXim -lXmu -lXt -lXext -lX11 -lm
 #### For HP-UX 8.00:
 # xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
 #### For HP-UX 9.01: The X11R5 libraries are here on our systems
@@ -114,18 +118,18 @@
 #dtmdirs = libdtm libnet
 #dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
 #dtmflags = -DHAVE_DTM -I.. -I../libnet
-hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
-hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
-hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
+#hdfdir = /hdf2/scratch/sxu/4.0b1_SunOS
+#hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
+#hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
 
 
 #### JPEG SUPPORT
 #### For inline JPEG support, the following should be defined:
 #### The library used is Independent JPEG Group (IJG's) 5.0a.
 
-jpegdir = /X11/mosaic/libjpeg/sun4
-jpeglibs = $(jpegdir)/libjpeg.a
-jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#jpegdir = /X11/mosaic/libjpeg/sun4
+#jpeglibs = $(jpegdir)/libjpeg.a
+#jpegflags = -I$(jpegdir) -DHAVE_JPEG
 
 
 #### DIRECT WAIS SUPPORT
@@ -143,10 +147,10 @@
 
 #### -lm is required for freeWAIS 0.1, as ceil() is used.
 
-waisroot = /X11/mosaic/freeWAIS-0.202-sun
-waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
-waislibdir = $(waisroot)/bin
-waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
+#waisroot = /X11/mosaic/freeWAIS-0.202-sun
+#waisflags = -DDIRECT_WAIS -I$(waisroot)/ir
+#waislibdir = $(waisroot)/bin
+#waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
 
 
 #### PEM/PGP SUPPORT
@@ -179,13 +183,73 @@
 #### . If you want to define the default Mosaic documentation directory
 ####   (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
 #### . Other things you can define are spelled out in src/mosaic.h.
-customflags =
+##############################################################################
+#### . If you want Multi-Localization enhancement,
+####   set -DL10N
+#### . If you want to use Motif I18N,
+####   set -DMOTIF_I18N
+#### . If you use ASCII Openware Motif,
+####   set -DOPENWARE
+#### . If you use IXI Motif,
+####   set -DIXIMOTIF1_2
+#### . If you want to use NetNews extension view,
+####   set -DNEWS_SELECT
+#### . If you want to read HTML3/HTML Netscape extension,
+####   set -DHTML3/-DNETSCAPE_EXT
+#### . If you set real access time on the global history file,
+####   set -D_USE_REAL_ACCESS_DATE
+#### . If you don't want to show your machine information,
+####   set -DSECURE
+#### . If you can't input correct password,
+####   set -DNAKED_PASSWORD
+#### . If you want to use current URL in Menu file,
+####   set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
+#### . If you want to disable (suspicious)TABLE support,
+####   set -DDISABLE_TABLE
+customflags = -DL10N # -DMOTIF_I18N -DIXIMOTIF1_2 -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#### MIME HEADER SUPPORT
+#### . If you set -DMIME_HEAD
+####   set following variables
+#mmsroot =       ../libmime
+#mmslibdir =     $(mmsroot)
+#mmslibs =       $(mmslibdir)/libmms.a
+#mmsflags =      -DMIME_HEAD
+
+#### SSL SUPPORT
+#### . If you set -DUSE_SSL
+####   sert following variables
+#sslflags = -I../ssl/include -DUSE_SSL
+#ssllibs = -L../ssl/lib -lssl -lcrypto
 
 
+#### SOCKS SUPPORT
+####
+#### SOCKS is a toolkit that allows Internet applications to be
+#### operated on systems inside firewalls in some instances.  This
+#### version of Mosaic includes support for compiling with SOCKS
+#### support enabled; you will need the version of SOCKS found at:
+####
+####   ftp://ftp.nec.com/pub/security/socks.cstc
+####
+#### SOCKS and the SOCKS support code in Mosaic are NOT supported by
+#### NCSA; if you choose to use SOCKS and/or Mosaic compiled with
+#### SOCKS, you are on your own.  Note that DTM and WAIS have not been
+#### SOCKS-ified and therefore will probably not work under SOCKS.
+####
+#### Normally, do not compile with SOCKS enabled; therefore, use the
+#### following lines.
+socksflags = 
+sockslibs = 
+#### To compile with SOCKS support, use the following lines:
+# socksflags = -DSOCKS
+# sockslibs = /usr/local/lib/libsocks.a
+
 # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
 
 
-CFLAGS = -g $(sysconfigflags)
+CFLAGS = -g $(sysconfigflags) $(socksflags)
+#CFLAGS = -O2 $(sysconfigflags) $(socksflags)
 
 # Don't worry about these -- for development purposes only.
 PURIFY = purify
@@ -200,27 +264,27 @@
 
 libXmx::
 	@echo --- Building libXmx
-	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(xinc)"
+	cd libXmx; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc)"
 
 libhtmlw::
 	@echo --- Building libhtmlw
-	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
+	cd libhtmlw; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(xinc) -DMOTIF -DXMOSAIC"
 
 libwww2::
 	@echo --- Building libwww2
-	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(PEM_FLAG)"
+	cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(knrflag) $(waisflags) $(sslflags) $(PEM_FLAG) $(mmsflags)"
 
 src::
 	@echo --- Building src
-	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-purifyd::
 	@echo --- Building Purify'd src
-	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 src-quantifyd::
 	@echo --- Building Quantify'd src
-	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(PEM_FLAG) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
+	cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) $(jpegflags) $(sslflags) $(PEM_FLAG) $(mmsflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(sockslibs) $(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" MMS_LIBS="$(mmslibs)" SSL_LIBS="$(ssllibs)" LIBWWW_DIR=../libwww2 JPEG_LIBS="$(jpeglibs)"
 
 libnet::
 	@echo --- Building libnet
--- app-defaults.color-ews.orig	Thu Sep 28 15:17:39 1995
+++ app-defaults.color-ews	Fri Sep 29 19:38:25 1995
@@ -0,0 +1,381 @@
+Mosaic*XmLabel*fontList:   		-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmLabelGadget*fontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmScale*fontList:   		-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmBulletinBoard*labelFontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*optionmenu.XmLabelGadget*fontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmPushButton*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmPushButtonGadget*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmToggleButton*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmToggleButtonGadget*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*optionmenu*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmIconGadget*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*menubar*fontList:   		-*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmPushButton*fontList:  -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*pulldownmenu*fontList:	-*-helvetica-bold-o-normal-*-14-*-iso8859-1
+!Mosaic*XmList*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+!Mosaic*XmText.fontList:      -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1
+!Mosaic*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1
+  
+Mosaic*optionmenu*marginHeight: 	0
+Mosaic*optionmenu*marginTop: 		5
+Mosaic*optionmenu*marginBottom: 	5
+Mosaic*optionmenu*marginWidth: 	5
+Mosaic*pulldownmenu*XmPushButton*marginHeight:	1
+Mosaic*pulldownmenu*XmPushButton*marginWidth:	1
+Mosaic*pulldownmenu*XmPushButton*marginLeft:	3
+Mosaic*pulldownmenu*XmPushButton*marginRight:	3
+Mosaic*XmList*listMarginWidth:        3
+Mosaic*menubar*marginHeight: 		1
+Mosaic*menubar.marginHeight: 		0
+Mosaic*menubar*marginLeft:  		1
+Mosaic*menubar.spacing:  		7
+Mosaic*XmMenuShell*marginLeft:  	3
+Mosaic*XmMenuShell*marginRight:  	4
+Mosaic*XmMenuShell*XmToggleButtonGadget*spacing: 	 2
+Mosaic*XmMenuShell*XmToggleButtonGadget*marginHeight:  0
+Mosaic*XmMenuShell*XmToggleButtonGadget*indicatorSize: 12
+Mosaic*XmMenuShell*XmLabelGadget*marginHeight: 4
+Mosaic*XmToggleButtonGadget*spacing: 	4
+Mosaic*XmToggleButton*spacing: 	4
+Mosaic*XmScrolledWindow*spacing: 	0
+Mosaic*XmScrollBar*width: 		        18
+Mosaic*XmScrollBar*height: 		18
+Mosaic*XmScale*scaleHeight: 		20
+Mosaic*XmText*marginHeight:		4
+Mosaic*fsb*XmText*width:                   420
+Mosaic*fsb*XmTextField*width:                   420
+Mosaic*fillOnSelect:			True
+Mosaic*visibleWhenOff:		        True
+Mosaic*XmText*highlightThickness:		0
+Mosaic*XmTextField*highlightThickness:	0
+Mosaic*XmPushButton*highlightThickness:	0
+Mosaic*XmScrollBar*highlightThickness:     0
+Mosaic*highlightThickness:	                0
+Mosaic*keyboardFocusPolicy:                pointer
+  
+Mosaic*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1
+Mosaic*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixedboldFont: -adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixeditalicFont: -adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1
+Mosaic*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1
+Mosaic*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1
+Mosaic*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1
+Mosaic*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*PlainboldFont: -adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*PlainitalicFont: -adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
+Mosaic*supSubFont: -adobe-times-medium-r-normal-*-10-*-*-*-*-*-iso8859-1
+
+Mosaic*Foreground:			 	#000000000000
+Mosaic*XmScrollBar*Foreground:             #bfbfbfbfbfbf
+Mosaic*XmLabel*Foreground:                 #1d1d15155b5b
+Mosaic*XmToggleButton*Foreground:          #1d1d15155b5b
+Mosaic*XmPushButton*Foreground:            #5b5b00000000
+Mosaic*logo*Foreground:            #1d1d15155b5b
+
+Mosaic*Background:                         #bfbfbfbfbfbf
+
+Mosaic*XmList*Background:     		#bfbfbfbfbfbf
+Mosaic*XmText*Background:	 	        #bfbfbfbfbfbf
+Mosaic*XmSelectionBox*Background:	 	#bfbfbfbfbfbf
+Mosaic*XmMessageBox*Background:	 	#bfbfbfbfbfbf
+Mosaic*XmTextField*Background: 		#9c9c9c9c9c9c
+
+Mosaic*TopShadowColor:                     #e7e7e7e7e7e7
+Mosaic*XmList*TopShadowColor:              #e7e7e7e7e7e7
+Mosaic*XmText*TopShadowColor:              #e7e7e7e7e7e7
+Mosaic*XmSelectionBox*TopShadowColor:      #e7e7e7e7e7e7
+Mosaic*XmMessageBox*TopShadowColor:        #e7e7e7e7e7e7
+  
+Mosaic*TroughColor:                        #646464646464
+Mosaic*SelectColor:			#ffffffff0000
+Mosaic*HighlightColor:		 	#bfbfbfbfbfbf
+
+Mosaic*visitedAnchorColor:                 #3f3f0f0f7b7b
+Mosaic*anchorColor:                        #00000000b0b0
+Mosaic*activeAnchorFG:                     #ffff00000000
+Mosaic*activeAnchorBG:                     #bfbfbfbfbfbf
+
+Mosaic*AnchorUnderlines:                   1
+Mosaic*VisitedAnchorUnderlines:            1
+Mosaic*DashedVisitedAnchorUnderlines:      True
+Mosaic*VerticalScrollOnRight:	           True
+
+!!!
+!!! for Multi-Localization Enhancement
+!!!
+Mosaic*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-nec-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*supSubFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+
+Mosaic*defaultCharset:		Japanese
+Mosaic*defaultBidirectionality: 	Visual
+Mosaic*keepDocumentCharset:		True
+Mosaic*defaultAcceptLanguages:	en,lt_LN,he_HR,ja_JP,ko_KR,zh_CN,zh_TW
+
+Mosaic*XmText.fontList:		-*-fixed-*-*-*-*-14-*-*-*:
+Mosaic*XmTextField.fontList:	-*-fixed-*-*-*-*-14-*-*-*:
+Mosaic*fontList:		-*-fixed-*-*-*-*-14-*-*-*:
+
+Mosaic*xtermCommand:		kterm
+!! New Features
+Mosaic*cciPortFileMode:		384
+Mosaic*kinsokuBol:		¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö
+Mosaic*kinsokuEol:		¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú
+Mosaic*ignoreSpaceBetweenJapanese:      False
+Mosaic*ignoreLFBetweenJapanese:         True
+Mosaic*connectTimeout:			100
+Mosaic*lastwindowConfirm:		True
+
+!Mosaic*fullHostname:		xxx.xxx.xxx.co.jp
+!Mosaic*homeDocument:		http://xxx.xxx.xxx.co.jp/xxxx/xxxx.html
+!Mosaic*docsDirectory:		http://xxx.xxx.xxx.co.jp/Mosaic/Docs/
+!Mosaic*twirlIconsIndex:	/usr/local/lib/Mosaic-2.6-l10n/techan/index
+!Mosaic*disableTable:		True
--- app-defaults.color-ixi.orig	Thu Sep 28 15:17:47 1995
+++ app-defaults.color-ixi	Fri Sep 29 19:38:33 1995
@@ -0,0 +1,380 @@
+Mosaic*XmLabel*fontList:   		-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmLabelGadget*fontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmScale*fontList:   		-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmBulletinBoard*labelFontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*optionmenu.XmLabelGadget*fontList:	-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*XmPushButton*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmPushButtonGadget*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmToggleButton*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmToggleButtonGadget*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*optionmenu*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmIconGadget*fontList:		-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*menubar*fontList:   		-*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmPushButton*fontList:  -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*pulldownmenu*fontList:	-*-helvetica-bold-o-normal-*-14-*-iso8859-1
+Mosaic*XmList*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmText.fontList:      -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1
+Mosaic*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1
+  
+Mosaic*optionmenu*marginHeight: 	0
+Mosaic*optionmenu*marginTop: 		5
+Mosaic*optionmenu*marginBottom: 	5
+Mosaic*optionmenu*marginWidth: 	5
+Mosaic*pulldownmenu*XmPushButton*marginHeight:	1
+Mosaic*pulldownmenu*XmPushButton*marginWidth:	1
+Mosaic*pulldownmenu*XmPushButton*marginLeft:	3
+Mosaic*pulldownmenu*XmPushButton*marginRight:	3
+Mosaic*XmList*listMarginWidth:        3
+Mosaic*menubar*marginHeight: 		1
+Mosaic*menubar.marginHeight: 		0
+Mosaic*menubar*marginLeft:  		1
+Mosaic*menubar.spacing:  		7
+Mosaic*XmMenuShell*marginLeft:  	3
+Mosaic*XmMenuShell*marginRight:  	4
+Mosaic*XmMenuShell*XmToggleButtonGadget*spacing: 	 2
+Mosaic*XmMenuShell*XmToggleButtonGadget*marginHeight:  0
+Mosaic*XmMenuShell*XmToggleButtonGadget*indicatorSize: 12
+Mosaic*XmMenuShell*XmLabelGadget*marginHeight: 4
+Mosaic*XmToggleButtonGadget*spacing: 	4
+Mosaic*XmToggleButton*spacing: 	4
+Mosaic*XmScrolledWindow*spacing: 	0
+Mosaic*XmScrollBar*width: 		        18
+Mosaic*XmScrollBar*height: 		18
+Mosaic*XmScale*scaleHeight: 		20
+Mosaic*XmText*marginHeight:		4
+Mosaic*fsb*XmText*width:                   420
+Mosaic*fsb*XmTextField*width:                   420
+Mosaic*fillOnSelect:			True
+Mosaic*visibleWhenOff:		        True
+Mosaic*XmText*highlightThickness:		0
+Mosaic*XmTextField*highlightThickness:	0
+Mosaic*XmPushButton*highlightThickness:	0
+Mosaic*XmScrollBar*highlightThickness:     0
+Mosaic*highlightThickness:	                0
+Mosaic*keyboardFocusPolicy:                pointer
+  
+Mosaic*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1
+Mosaic*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixedboldFont: -adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*FixeditalicFont: -adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1
+Mosaic*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1
+Mosaic*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1
+Mosaic*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1
+Mosaic*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1
+Mosaic*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*PlainboldFont: -adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*PlainitalicFont: -adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1
+Mosaic*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
+Mosaic*supSubFont: -adobe-times-medium-r-normal-*-10-*-*-*-*-*-iso8859-1
+
+Mosaic*Foreground:			 	#000000000000
+Mosaic*XmScrollBar*Foreground:             #bfbfbfbfbfbf
+Mosaic*XmLabel*Foreground:                 #1d1d15155b5b
+Mosaic*XmToggleButton*Foreground:          #1d1d15155b5b
+Mosaic*XmPushButton*Foreground:            #5b5b00000000
+Mosaic*logo*Foreground:            #1d1d15155b5b
+
+Mosaic*Background:                         #bfbfbfbfbfbf
+
+Mosaic*XmList*Background:     		#bfbfbfbfbfbf
+Mosaic*XmText*Background:	 	        #bfbfbfbfbfbf
+Mosaic*XmSelectionBox*Background:	 	#bfbfbfbfbfbf
+Mosaic*XmMessageBox*Background:	 	#bfbfbfbfbfbf
+Mosaic*XmTextField*Background: 		#9c9c9c9c9c9c
+
+Mosaic*TopShadowColor:                     #e7e7e7e7e7e7
+Mosaic*XmList*TopShadowColor:              #e7e7e7e7e7e7
+Mosaic*XmText*TopShadowColor:              #e7e7e7e7e7e7
+Mosaic*XmSelectionBox*TopShadowColor:      #e7e7e7e7e7e7
+Mosaic*XmMessageBox*TopShadowColor:        #e7e7e7e7e7e7
+  
+Mosaic*TroughColor:                        #646464646464
+Mosaic*SelectColor:			#ffffffff0000
+Mosaic*HighlightColor:		 	#bfbfbfbfbfbf
+
+Mosaic*visitedAnchorColor:                 #3f3f0f0f7b7b
+Mosaic*anchorColor:                        #00000000b0b0
+Mosaic*activeAnchorFG:                     #ffff00000000
+Mosaic*activeAnchorBG:                     #bfbfbfbfbfbf
+
+Mosaic*AnchorUnderlines:                   1
+Mosaic*VisitedAnchorUnderlines:            1
+Mosaic*DashedVisitedAnchorUnderlines:      True
+Mosaic*VerticalScrollOnRight:	           True
+
+!!!
+!!! for Multi-Localization Enhancement
+!!!
+Mosaic*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*:jisx0208.1983,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*:,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*:,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*:
+Mosaic*supSubFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+
+!! for IXI Motif
+Mosaic*question_dialog*XmTextField*fontList:	-*-*-*-r-normal-*-16-*-*-*-*-*-iso8859-1
+Mosaic*fsb.textColumns:		26
+
+!! New features
+Mosaic*cciPortFileMode:		384
+Mosaic*kinsokuBol:		¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö
+Mosaic*kinsokuEol:		¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú
+Mosaic*ignoreSpaceBetweenJapanese:	False
+Mosaic*ignoreLFBetweenJapanese:		True
+Mosaic*connectTimeout:			100
+Mosaic*xtermCommand:			kterm
+Mosaic*defaultCharset:			Japanese
+Mosaic*defaultBidirectionality: 	Visual
+Mosaic*keepDocumentCharset:		True
+Mosaic*defaultAcceptLanguages:		en,lt_LN,he_HR,ja_JP,ko_KR,zh_CN,zh_TW
+Mosaic*lastwindowConfirm:		True
+
+!Mosaic*fullHostname:		xxx.xxx.xxx.co.jp
+!Mosaic*homeDocument:		http://xxx.xxx.xxx.co.jp/xxxx/xxxx.html
+!Mosaic*docsDirectory:		http://xxx.xxx.xxx.co.jp/Mosaic/Docs/
+!Mosaic*twirlIconsIndex:	/usr/local/lib/Mosaic-2.6-l10n/techan/index
+!Mosaic*disableTable:		True
--- app-defaults.color-sgi.orig	Wed Jan 11 09:02:52 1995
+++ app-defaults.color-sgi	Fri Sep 29 19:38:41 1995
@@ -113,3 +113,261 @@
 Mosaic*VisitedAnchorUnderlines:            1
 Mosaic*DashedVisitedAnchorUnderlines:      True
 Mosaic*VerticalScrollOnRight:              True
+
+!!!
+!!! for Multi-Localization Enhancement
+!!!
+Mosaic*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*supSubFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+
+!! New features
+Mosaic*cciPortFileMode:         384
+Mosaic*kinsokuBol:		¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö
+Mosaic*kinsokuEol:		¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú
+Mosaic*ignoreSpaceBetweenJapanese:      False
+Mosaic*ignoreLFBetweenJapanese:         True
+Mosaic*connectTimeout:			100
+Mosaic*xtermCommand:            	kterm
+Mosaic*defaultCharset:			Japanese
+Mosaic*defaultBidirectionality: 	Visual
+Mosaic*keepDocumentCharset:		True
+Mosaic*defaultAcceptLanguages:		en,lt_LN,he_HR,ja_JP,ko_KR,zh_CN,zh_TW
+Mosaic*lastwindowConfirm:		True
+
+!Mosaic*fullHostname:		xxx.xxx.xxx.co.jp
+!Mosaic*homeDocument:		http://xxx.xxx.xxx.co.jp/xxxx/xxxx.html
+!Mosaic*docsDirectory:		http://xxx.xxx.xxx.co.jp/Mosaic/Docs/
+!Mosaic*twirlIconsIndex:	/usr/local/lib/Mosaic-2.6-l10n/techan/index
+!Mosaic*disableTable:		True
--- app-defaults.color.orig	Wed Jan 11 09:02:52 1995
+++ app-defaults.color	Fri Sep 29 19:38:18 1995
@@ -116,3 +116,261 @@
 Mosaic*VisitedAnchorUnderlines:            1
 Mosaic*DashedVisitedAnchorUnderlines:      True
 Mosaic*VerticalScrollOnRight:	           True
+
+!!!
+!!! for Multi-Localization Enhancement
+!!!
+Mosaic*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*supSubFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+
+!! New features
+Mosaic*cciPortFileMode:		384
+Mosaic*kinsokuBol:		¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö
+Mosaic*kinsokuEol:		¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú
+Mosaic*ignoreSpaceBetweenJapanese:	False
+Mosaic*ignoreLFBetweenJapanese:		True
+Mosaic*connectTimeout:			100
+Mosaic*xtermCommand:			kterm
+Mosaic*defaultCharset:			Japanese
+Mosaic*defaultBidirectionality: 	Visual
+Mosaic*keepDocumentCharset:		True
+Mosaic*defaultAcceptLanguages:		en,lt_LN,he_HR,ja_JP,ko_KR,zh_CN,zh_TW
+Mosaic*lastwindowConfirm:		True
+
+!Mosaic*fullHostname:		xxx.xxx.xxx.co.jp
+!Mosaic*homeDocument:		http://xxx.xxx.xxx.co.jp/xxxx/xxxx.html
+!Mosaic*docsDirectory:		http://xxx.xxx.xxx.co.jp/Mosaic/Docs/
+!Mosaic*twirlIconsIndex:	/usr/local/lib/Mosaic-2.6-l10n/techan/index
+!Mosaic*disableTable:		True
--- app-defaults.mono.orig	Wed Jan 11 09:02:52 1995
+++ app-defaults.mono	Fri Sep 29 19:38:49 1995
@@ -96,3 +96,261 @@
 Mosaic*VisitedAnchorUnderlines:            1
 Mosaic*DashedVisitedAnchorUnderlines:      True
 Mosaic*VerticalScrollOnRight:              True
+
+!!!
+!!! for Multi-Localization Enhancement
+!!!
+Mosaic*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*
+Mosaic*supSubFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*
+
+!! New features
+Mosaic*cciPortFileMode:         384
+Mosaic*kinsokuBol:		¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö
+Mosaic*kinsokuEol:		¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú
+Mosaic*ignoreSpaceBetweenJapanese:      False
+Mosaic*ignoreLFBetweenJapanese:         True
+Mosaic*connectTimeout:			100
+Mosaic*xtermCommand:            	kterm
+Mosaic*defaultCharset:			Japanese
+Mosaic*defaultBidirectionality: 	Visual
+Mosaic*keepDocumentCharset:		True
+Mosaic*defaultAcceptLanguages:		en,lt_LN,he_HR,ja_JP,ko_KR,zh_CN,zh_TW
+Mosaic*lastwindowConfirm:		True
+
+!Mosaic*fullHostname:		xxx.xxx.xxx.co.jp
+!Mosaic*homeDocument:		http://xxx.xxx.xxx.co.jp/xxxx/xxxx.html
+!Mosaic*docsDirectory:		http://xxx.xxx.xxx.co.jp/Mosaic/Docs/
+!Mosaic*twirlIconsIndex:	/usr/local/lib/Mosaic-2.6-l10n/techan/index
+!Mosaic*disableTable:		True
--- strcasecmp.c.orig	Thu Sep 14 17:01:04 1995
+++ strcasecmp.c	Thu Sep 14 17:01:04 1995
@@ -0,0 +1,37 @@
+#include <ctype.h>
+
+strncasecmp(a,b,n)
+	register char *a,*b;
+	register int n;
+{	register char ac,bc;
+	register int i;
+
+	for( i = 1; i < n; i++ ){
+		ac = *a++;
+		bc = *b++;
+
+		if(ac == 0){
+			if(bc == 0)
+				return 0;
+			else	return -1;
+		}else
+		if(bc == 0)
+			return 1;
+		else
+		if(ac != bc){
+			if(islower(ac)) ac = toupper(ac);
+			if(islower(bc)) bc = toupper(bc);
+			if( ac != bc )
+				return ac - bc;
+		}
+	}
+	if(islower(*a)) ac = toupper(*a); else ac = *a;
+	if(islower(*b)) bc = toupper(*b); else bc = *b;
+	return ac - bc;
+}
+
+strcasecmp(a,b)
+	char *a,*b;
+{
+	return strncasecmp(a,b,0xFFFFFFF);
+}
--- libXmx/Xmx.c.orig	Sat Mar 11 05:08:56 1995
+++ libXmx/Xmx.c	Mon Sep 18 10:11:13 1995
@@ -60,6 +60,21 @@
 
 XmString xwt_str_array_to_xmstr(char *normal_string[], int numargs);
 
+#ifdef L10N
+#ifdef OPENWARE
+#define myStringCreateLtoR(a,b) XmjpCreateConcatWords(a, XmjpDEFAULT_CHARSET_ARRAY)
+#else /* OPENWARE */
+#if defined(MOTIF_I18N) && !(defined(IXIMOTIF1_2) || defined(sony_news))
+#define myStringCreateLtoR(a,b) myNewStringCreate(a)
+XmString myNewStringCreate(char *);
+#else /* MOTIF_I18N && !(IXIMOTIF1_2 || sony_news) */
+#define myStringCreateLtoR(a,b) XmStringCreateLtoR(a,b)
+#endif /* MOTIF_I18N && !(IXIMOTIF1_2 || sony_news) */
+#endif /* OPENWARE */
+#else /* L10N */
+#define myStringCreateLtoR(a,b) XmStringCreateLtoR(a,b)
+#endif /* L10N */
+
 /* ---------------------------- FILE VARIABLES ---------------------------- */
 
 /* Variables accessed through Xmx.h as extern. */
@@ -283,7 +298,7 @@
 
   if (name)
     {
-      xmstr = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+      xmstr = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
       XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
     }
   Xmx_w = XtCreateManagedWidget ("pushbutton", xmPushButtonWidgetClass,
@@ -307,7 +322,7 @@
   
   if (name)
     {
-      label = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+      label = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
       XmxSetArg (XmNlabelString, (XtArgVal)label);
     }
   Xmx_w = XtCreateManagedWidget (wname, xmPushButtonWidgetClass,
@@ -417,7 +432,7 @@
 Widget XmxMakeToggleButton (Widget parent, String name, XtCallbackProc cb,
                             int cb_data)
 {
-  XmString label = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+  XmString label = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNlabelString, (XtArgVal)label);
   XmxSetArg (XmNmarginHeight, (XtArgVal)0);
   Xmx_w = XtCreateManagedWidget
@@ -719,7 +734,7 @@
 /* args work */
 void XmxAdjustLabelText (Widget label, String text)
 {
-  XmString xmstr = XmStringCreateLtoR (text, XmSTRING_DEFAULT_CHARSET);
+  XmString xmstr = myStringCreateLtoR (text, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
   XtSetValues (label, Xmx_wargs, Xmx_n);
   XmStringFree (xmstr);
@@ -731,7 +746,7 @@
 /* args work */
 Widget XmxMakeLabel (Widget parent, String name)
 {
-  XmString xmstr = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+  XmString xmstr = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
   Xmx_w = XtCreateManagedWidget ("label", xmLabelWidgetClass,
                                  parent, Xmx_wargs, Xmx_n);
@@ -743,7 +758,7 @@
 /* args work */
 Widget XmxMakeNamedLabel (Widget parent, String name, String wname)
 {
-  XmString xmstr = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+  XmString xmstr = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
   Xmx_w = XtCreateManagedWidget (wname, xmLabelWidgetClass,
                                  parent, Xmx_wargs, Xmx_n);
@@ -766,8 +781,8 @@
 /* args work */
 Widget XmxMakeErrorDialog (Widget parent, String name, String title)
 {
-  XmString message = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
-  XmString dialog = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString message = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNmessageString, (XtArgVal)message);
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog);
 
@@ -785,8 +800,8 @@
 /* args work */
 Widget XmxMakeInfoDialog (Widget parent, String name, String title)
 {
-  XmString message = XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
-  XmString dialog = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString message = myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNmessageString, (XtArgVal)message);
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog);
 
@@ -805,10 +820,10 @@
 Widget XmxMakeQuestionDialog (Widget parent, String question, String title,
 			      XtCallbackProc cb, int yes_token, int no_token)
 {
-  XmString message = XmStringCreateLtoR (question, XmSTRING_DEFAULT_CHARSET);
-  XmString dialog = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
-  XmString ok = XmStringCreateLtoR ("Yes", XmSTRING_DEFAULT_CHARSET);
-  XmString cancel = XmStringCreateLtoR ("No", XmSTRING_DEFAULT_CHARSET);
+  XmString message = myStringCreateLtoR (question, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString ok = myStringCreateLtoR ("Yes", XmSTRING_DEFAULT_CHARSET);
+  XmString cancel = myStringCreateLtoR ("No", XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNmessageString, (XtArgVal)message);
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog);
   XmxSetArg (XmNokLabelString, (XtArgVal)ok);
@@ -853,7 +868,7 @@
         _xmstr = XmStringConcat (_xmstr, XmStringSeparatorCreate ());
       /* Used to be XmStringCreate; changed to standard call. */
       _xmstr = XmStringConcat
-        (_xmstr, XmStringCreateLtoR (_mstr, XmSTRING_DEFAULT_CHARSET));
+        (_xmstr, myStringCreateLtoR (_mstr, XmSTRING_DEFAULT_CHARSET));
     }
 
   fclose (_f);
@@ -865,14 +880,14 @@
 {
   XmString _xmstr;
 
-  _xmstr = XmStringCreateLtoR (mstr, XmSTRING_DEFAULT_CHARSET);
+  _xmstr = myStringCreateLtoR (mstr, XmSTRING_DEFAULT_CHARSET);
   return _xmstr;
 }
 
 /* args work */
 Widget XmxMakeBboardDialog (Widget parent, String title)
 {
-  XmString xmstr = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString xmstr = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNdialogTitle, (XtArgVal)xmstr);
   XmxSetArg (XmNautoUnmanage, (XtArgVal)False);
   XmxSetArg (XmNmarginWidth, (XtArgVal)0);
@@ -887,7 +902,7 @@
 /* args work */
 Widget XmxMakeFormDialog (Widget parent, String title)
 {
-  XmString xmstr = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString xmstr = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
   XmxSetArg (XmNdialogTitle, (XtArgVal)xmstr);
   XmxSetArg (XmNautoUnmanage, (XtArgVal)False);
 
@@ -902,8 +917,8 @@
                             XtCallbackProc cb, int cb_data)
 {
   Widget _selection_label;
-  XmString dialog_title = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
-  XmString label = XmStringCreateLtoR (selection_txt, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog_title = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString label = myStringCreateLtoR (selection_txt, XmSTRING_DEFAULT_CHARSET);
 
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog_title);
   /* Can't set width of box with XmNwidth here... why not? */
@@ -933,7 +948,7 @@
 /* args work */
 Widget XmxMakeHelpDialog (Widget parent, XmString xmstr, String title)
 {
-  XmString dialog_title = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog_title = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
 
   XmxSetArg (XmNmessageString, (XtArgVal)xmstr);
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog_title);
@@ -1021,7 +1036,7 @@
 void XmxAdjustHelpDialogText (Widget dialog, XmString message,
                               String title)
 {
-  XmString dialog_title = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog_title = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
 
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog_title);
   XmxSetArg (XmNmessageString, (XtArgVal)message);
@@ -1036,7 +1051,7 @@
 /* args work */
 void XmxAdjustDialogTitle (Widget dialog, String title)
 {
-  XmString dialog_title = XmStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
+  XmString dialog_title = myStringCreateLtoR (title, XmSTRING_DEFAULT_CHARSET);
 
   XmxSetArg (XmNdialogTitle, (XtArgVal)dialog_title);
   XmxSetValues (dialog);
@@ -1062,7 +1077,7 @@
 /* args work */
 Widget XmxMakeHorizontalSpacer (Widget parent)
 {
-  XmString label = XmStringCreateLtoR (" ", XmSTRING_DEFAULT_CHARSET);
+  XmString label = myStringCreateLtoR (" ", XmSTRING_DEFAULT_CHARSET);
 
   XmxSetArg (XmNlabelString, (XtArgVal)label);
   Xmx_w = XtCreateManagedWidget ("label", xmLabelGadgetClass, parent, 
@@ -1355,6 +1370,18 @@
   return;
 }
 
+/* args used */
+void XmxApplyPixmapToLabelWidgetInsensitive
+  (Widget label, Pixmap pix)
+{
+  XmxSetArg (XmNlabelInsensitivePixmap, (XtArgVal)pix);
+  XmxSetArg (XmNlabelType, (XtArgVal)XmPIXMAP);
+  XmxSetValues (label);
+
+  Xmx_n = 0;
+  return;
+}
+
 /* ------------------------ DIALOG CONTROL BUTTONS ------------------------ */
 
 /* args apply to form */
@@ -1623,10 +1650,10 @@
   XmString question, yes, no, title;
   int answer = -1;
 
-  question = XmStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
-  yes = XmStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
-  no = XmStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
-  title = XmStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
+  question = myStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
+  yes = myStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
+  no = myStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
+  title = myStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
   
   XmxSetArg (XmNdialogTitle, (XtArgVal)title);
   XmxSetArg (XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL);
@@ -1688,10 +1715,10 @@
   XmString question, yes, no, title;
   char *answer = NULL;
 
-  question = XmStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
-  yes = XmStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
-  no = XmStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
-  title = XmStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
+  question = myStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
+  yes = myStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
+  no = myStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
+  title = myStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
   
   XmxSetArg (XmNdialogTitle, (XtArgVal)title);
   XmxSetArg (XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL);
@@ -1849,10 +1876,10 @@
 
   _passwd = NULL;
 
-  question = XmStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
-  yes = XmStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
-  no = XmStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
-  title = XmStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
+  question = myStringCreateLtoR (questionstr, XmSTRING_DEFAULT_CHARSET);
+  yes = myStringCreateLtoR (yesstr, XmSTRING_DEFAULT_CHARSET);
+  no = myStringCreateLtoR (nostr, XmSTRING_DEFAULT_CHARSET);
+  title = myStringCreateLtoR ("Prompt", XmSTRING_DEFAULT_CHARSET);
   
   XmxSetArg (XmNdialogTitle, (XtArgVal)title);
   XmxSetArg (XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL);
@@ -1897,3 +1924,40 @@
     return strdup (_passwd);
 }
 
+#ifdef L10N
+#ifdef MOTIF_I18N
+XmString myNewStringCreate (char *s)
+{
+  XmString xms1;
+  XmString xms2;
+  XmString line;
+  XmString separator;
+  char     *p;
+  char     *t = XtNewString (s);	/* Make a copy for strtok not to */
+					/* damage the original string    */
+  separator = XmStringSeparatorCreate ();
+  p         = strtok (t, "\n");
+#ifdef MOTIF1_2
+  xms1      = XmStringCreateLocalized (p);
+#else /* MOTIF1_2 */
+  xms1      = XmStringCreateSimple (p);
+#endif /* MOTIF1_2 */
+  while (p = strtok (NULL, "\n"))
+    {
+#ifdef MOTIF1_2
+      line = XmStringCreateLocalized (p);
+#else /* MOTIF1_2 */
+      line = XmStringCreateSimple (p);
+#endif /* MOTIF1_2 */
+      xms2 = XmStringConcat (xms1, separator);
+      XmStringFree (xms1);
+      xms1 = XmStringConcat (xms2, line);
+      XmStringFree (xms2);
+      XmStringFree (line);
+    }
+  XmStringFree (separator);
+  XtFree (t);
+  return xms1;
+}
+#endif /* MOTIF_I18N */
+#endif /* L10N */
--- libXmx/Xmx.h.orig	Sat Mar 11 05:09:01 1995
+++ libXmx/Xmx.h	Thu Sep 14 17:01:04 1995
@@ -88,7 +88,11 @@
 
 /* Maximum number of resource args usable --- should be large
    since applications also can add resources. */
+#ifdef L10N
+#define XmxMaxNumArgs 50
+#else /* L10N */
 #define XmxMaxNumArgs 30
+#endif /* L10N */
 
 /* ------------------------------ VARIABLES ------------------------------- */
 
@@ -311,6 +315,7 @@
 extern Pixmap XmxCreatePixmapFromBitmap (Widget, String, unsigned int,
                                          unsigned int);
 extern void XmxApplyPixmapToLabelWidget (Widget, Pixmap);
+extern void XmxApplyPixmapToLabelWidgetInsensitive (Widget, Pixmap);
 
 extern Widget XmxMakeFormAndOneButton (Widget, XtCallbackProc, String, int);
 extern Widget XmxMakeFormAndTwoButtons (Widget, XtCallbackProc, String, 
--- libXmx/Xmx2.c.orig	Wed Jan 11 09:02:55 1995
+++ libXmx/Xmx2.c	Mon Sep 18 10:11:47 1995
@@ -54,6 +54,21 @@
 
 #include "XmxP.h"
 
+#ifdef L10N
+#ifdef OPENWARE
+#define myStringCreateLtoR(a,b) XmjpCreateConcatWords(a, XmjpDEFAULT_CHARSET_ARRAY)
+#else /* OPENWARE */
+#if defined(MOTIF_I18N) && !(defined(IXIMOTIF1_2) || defined(sony_news))
+#define myStringCreateLtoR(a,b) myNewStringCreate(a)
+XmString myNewStringCreate(char *);
+#else /* MOTIF_I18N && !(IXIMOTIF1_2 || sony_news) */
+#define myStringCreateLtoR(a,b) XmStringCreateLtoR(a,b)
+#endif /* MOTIF_I18N && !(IXIMOTIF1_2 || sony_news) */
+#endif /* OPENWARE */
+#else /* L10N */
+#define myStringCreateLtoR(a,b) XmStringCreateLtoR(a,b)
+#endif /* L10N */
+
 /* ------------------------------------------------------------------------ */
 /* --------------------------- PRIVATE ROUTINES --------------------------- */
 /* ------------------------------------------------------------------------ */
@@ -252,7 +267,7 @@
     {
       Xmx_n = 0;
       XmxSetArg (XmNlabelString,
-                 (XtArgVal)XmStringCreateLtoR (opts[_i].namestr,
+                 (XtArgVal)myStringCreateLtoR (opts[_i].namestr,
                                                XmSTRING_DEFAULT_CHARSET));
       _button = XmCreatePushButtonGadget (_pulldown, "pushbutton",
                                           Xmx_wargs, Xmx_n);
@@ -281,7 +296,7 @@
   if (name)
     {
       XmxSetArg (XmNlabelString,
-                 (XtArgVal)XmStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET));
+                 (XtArgVal)myStringCreateLtoR (name, XmSTRING_DEFAULT_CHARSET));
       XmxSetValues (XmOptionLabelGadget (Xmx_w));
     }
   else
@@ -289,7 +304,7 @@
       XmxSetArg (XmNspacing, (XtArgVal)0);
       XmxSetArg (XmNmarginWidth, (XtArgVal)0);
       XmxSetValues (Xmx_w);
-      XmxSetArg (XmNlabelString, NULL);
+      XmxSetArg (XmNlabelString, (XtArgVal)0);
       XmxSetValues (XmOptionLabelGadget (Xmx_w));
     }
 
@@ -406,7 +421,7 @@
           else /* regular button */
             {
               XmString xmstr = 
-                XmStringCreateLtoR
+                myStringCreateLtoR
                   (menulist[_i].namestr, XmSTRING_DEFAULT_CHARSET);
               XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
               _buttons[_i - _separators] = XtCreateManagedWidget
@@ -428,7 +443,7 @@
       else if (menulist[_i].sub_menu == (XmxMenubarStruct *)NULL)
         {
           Xmx_n = 0;
-          XmxSetArg (XmNlabelString, (XtArgVal)XmStringCreateLtoR
+          XmxSetArg (XmNlabelString, (XtArgVal)myStringCreateLtoR
                      (menulist[_i].namestr, XmSTRING_DEFAULT_CHARSET));
           _buttons[_i - _separators] = XtCreateManagedWidget
             ("label", xmLabelGadgetClass, menu, Xmx_wargs, Xmx_n);
@@ -445,7 +460,7 @@
           XmxSetArg (XmNsubMenuId, (XtArgVal)_sub_menu);
           if (menulist[_i].mnemonic)
             XmxSetArg (XmNmnemonic, (XtArgVal)(menulist[_i].mnemonic));
-          xmstr = XmStringCreateLtoR
+          xmstr = myStringCreateLtoR
             (menulist[_i].namestr, XmSTRING_DEFAULT_CHARSET);
           XmxSetArg (XmNlabelString, (XtArgVal)xmstr);
           _buttons[_i - _separators] = XtCreateWidget
--- libdtm/arch.h.orig	Thu Jan 12 11:33:30 1995
+++ libdtm/arch.h	Thu Sep 14 17:01:05 1995
@@ -233,6 +233,11 @@
 #elif defined( _IBMR2 ) 
 #define	_ARCH_IBM
 #define	_ARCH_RS6000
+#elif defined( sony_news )
+# define _ARCH_SONY
+# define _ARCH_UNIX
+# define _ARCH_BSD
+# define _ARCH_WORD_SIZE        32
 #elif defined( AMIGA )
 	/* incomplete */
 # define _ARCH_COMMODORE
--- libdtm/dtmint.h.orig	Thu Jan 12 11:33:33 1995
+++ libdtm/dtmint.h	Thu Sep 14 17:01:05 1995
@@ -206,7 +206,7 @@
 #define	FLOAT	float
 #endif
 
-#if defined(BSD) && !defined(NEXT)
+#if defined(BSD) && !defined(NEXT) && !defined(sony_news)
 #define FREE_RETURNS_INT
 #endif
 
--- libdtm/makefile.orig	Wed Jan 11 09:03:00 1995
+++ libdtm/makefile	Thu Sep 14 17:01:05 1995
@@ -40,6 +40,7 @@
 dtm_.dec : dec
 dtm_.vax : vax
 dtm_.hp : hp
+dtm_.sony : sony
 
 
 dtm_	::
@@ -101,6 +102,11 @@
 vax		: 
 	make internal "CFLAGS = -DVAX" "OBJECTS = $(OBJ) mdd.o vaxcvt.o" \
 		"ARCHIVE = ar cr" 
+sony		:
+	make internal "CFLAGS =  -target $(TARGET_ARCH:-%=%)" \
+		"OBJECTS = $(OBJ) convert.o mdd.o"  \
+		"ARCHIVE = ar cr"
+	ranlib libdtm.a
 
 %$(ARCH).o: %.c
 	$(CC) $(CFLAGS) $(DTMCFLAGS) -c $< -o $@
--- libhtmlw/HTML-PSformat.c.orig	Tue Apr  4 20:24:48 1995
+++ libhtmlw/HTML-PSformat.c	Thu Sep 14 17:01:05 1995
@@ -47,7 +47,9 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <math.h>
+#ifndef sony_news
 #include <malloc.h>
+#endif /* sony_news */
 #include "HTMLP.h"
 
 /* Fix thanks to robm. */
@@ -113,6 +115,12 @@
 		} \
 }
 	
+#ifdef L10N /* Added by kazu@ftk.fujitsu.co.jp */
+#define NIHONGO_MASK	(1<<7)
+#define G2		0x8e
+#define G3		0x8f
+#define KANA_MASK	~(~0<<7)
+#endif /* L10N */
 
 /* for regular-font, bold-font, italic-font, fixed-font */
 typedef enum { RF, BF, IF, FF, FB, FI } PS_fontstyle;
@@ -132,6 +140,9 @@
 
 static XColor fg_color, bg_color;
 
+#ifdef L10N
+static int charset_info;
+#endif /* L10N */
 
 extern char CurrentURL[];
 
@@ -287,6 +298,10 @@
 	};
 
 	static char fnchar[6][3] = {"RF", "BF", "IF", "FF", "FB", "FI"};
+#ifdef L10N
+	static char kfnchar[6][4] = {"KRF", "KBF", "KRF", "KBF", "KRF", "KRF"};
+	static char knfnchar[6][4] = {"KNF", "KNF", "KNF", "KNF", "KNF", "KNF"};
+#endif /* L10N */
 
 	/* fontsizes as set in gui.c and in HTML.c (listing font is only
 	 * defined in HTML.c)
@@ -373,7 +388,19 @@
 	/* NULL case - reflush old font or the builtin default: */
 	if (hw==NULL || font==NULL) {
 		if (PS_oldfs != 0)
+#ifdef L10N
+		{
+#endif /* L10N */
 			PSprintf( "%2s %d SF\n", fnchar[PS_oldfn], PS_oldfs);
+#ifdef L10N
+			if (charset_info == CS_JIS) {
+				PSprintf( "/FN %2s D\n", fnchar[PS_oldfn]);
+				PSprintf( "/FNS %d D\n", PS_oldfs);
+				PSprintf( "/KFN %3s D\n", kfnchar[PS_oldfn]);
+				PSprintf( "/KNFN %3s D\n", knfnchar[PS_oldfn]);
+			}
+		}
+#endif /* L10N */
 		return;
 	}
 	/* added the next line in case xmosaic version 199.4 has more fonts */
@@ -430,6 +457,14 @@
 
 	if (fn != PS_oldfn || fs != PS_oldfs) {
 		PSprintf( "%2s %d SF\n", fnchar[fn], fs);
+#ifdef L10N
+		if (charset_info == CS_JIS) {
+			PSprintf( "/FN %2s D\n", fnchar[fn]);
+			PSprintf( "/FNS %d D\n", fs);
+			PSprintf( "/KFN %3s D\n", kfnchar[fn]);
+			PSprintf( "/KNFN %3s D\n", knfnchar[fn]);
+		}
+#endif /* L10N */
 		PS_oldfn=fn, PS_oldfs=fs;
 	}
 }
@@ -634,6 +669,10 @@
 		 */
 		"Times-Roman", "Times-Bold", "Times-Italic"
 		/* "Lucida", "Lucida-Bold", "Lucida-Italic" */
+#ifdef L10N
+		,"Ryumin-Light-EUC-H", "GothicBBB-Medium-EUC-H",
+		"Ryumin-Light.Katakana"
+#endif /* L10N */
 	};
 
 	static char *txt[] = {
@@ -681,6 +720,13 @@
 	PSprintf("/RF {/%s} D\n", fontname[font*3]);
 	PSprintf("/BF {/%s} D\n", fontname[font*3+1]);
 	PSprintf("/IF {/%s} D\n", fontname[font*3+2]);
+#ifdef L10N
+	if (charset_info == CS_JIS) {
+		PSprintf("/KRF {/%s} D\n", fontname[12]);
+		PSprintf("/KBF {/%s} D\n", fontname[13]);
+		PSprintf("/KNF {/%s} D\n", fontname[14]);
+	}
+#endif /* L10N */
 
 	PSinit_latin1();
 
@@ -718,6 +764,9 @@
 static void PStext ARG2(String,t, int,underline) {
 	String	tp, t2;
 	int	nspecial=0, nisochar=0;
+#ifdef L10N
+	void PSkprint();
+#endif /* L10N */
 
 	tp=t;
 	/* count # of special char's in text */
@@ -731,7 +780,16 @@
 	
 	if (nspecial == 0 && nisochar == 0) {
 		/*  no special char's, send out original string */
+#ifdef L10N
+		if (charset_info == CS_JIS) {
+			PSkprint(t,(underline)?'S': 'S');
+		} else {
+#endif /* L10N */
+
 		PSprintf("(%s)%c\n", t, (underline)?'U':'S');
+#ifdef L10N
+		}
+#endif /* L10N */
 		return;
 	}
 	/*  create t2 to hold original text + "\"'s */
@@ -750,7 +808,12 @@
 		if (*t == L_PAREN || *t == R_PAREN || *t == B_SLASH) {
 			*(tp++) = B_SLASH;
 			*(tp++) = *t;
+#ifdef L10N
+		} else if (charset_info != CS_JIS &&
+			*(unsigned char *)t > (unsigned char) MAX_ASCII) {
+#else /* L10N */
 		} else if (*(unsigned char *)t > (unsigned char) MAX_ASCII) {
+#endif /* L10N */
 			 /*  convert to octal */
 			*(tp++) = B_SLASH;
 			*(tp++) = ((int)(*(unsigned char *)t)>>6 & 007) + '0';
@@ -762,7 +825,15 @@
 		t++;
 	}
 	*(tp) = '\0';
+#ifdef L10N
+	if (charset_info == CS_JIS) {
+		PSkprint(t2,(underline)?'S': 'S');
+	} else {
+#endif /* L10N */
 	PSprintf("(%s)%c\n", t2, (underline)?'U':'S');
+#ifdef L10N
+	}
+#endif /* L10N */
 
 	free(t2);
 }
@@ -1396,6 +1467,9 @@
 	if (startp == NULL)
 		return(NULL);
 
+#ifdef L10N
+	charset_info = hw->html.charset_info;
+#endif /* L10N */
 
 	/*
 	 * Get the foreground and background colors so we can check later
@@ -1585,3 +1659,92 @@
 	return( PS_string);
 }
 
+#ifdef L10N
+/* Follow lines added by kazu@ftk.fujitsu.co.jp */
+
+void PSkprint(text,command)
+unsigned char *text;
+unsigned char command;
+{
+	unsigned char *drawdata;
+	unsigned char *PS_DrawAscii(),*PS_DrawKana(),
+			*PS_DrawGaiji(),*PS_DrawKanji();
+
+	drawdata = text;
+	while(*drawdata != '\0'){
+		if(!(*drawdata & NIHONGO_MASK)){
+			drawdata = PS_DrawAscii(drawdata,command);
+			continue;
+		}
+		if(*drawdata == G2){
+			drawdata = PS_DrawKana(drawdata,command);
+			continue;
+		}
+		if(*drawdata == G3){
+			drawdata = PS_DrawGaiji(drawdata,command);
+			continue;
+		}
+		drawdata = PS_DrawKanji(drawdata,command);
+	}
+}
+
+unsigned char *PS_DrawAscii(data,command)
+unsigned char *data;
+unsigned char command;
+{
+	PSprintf("(");
+	while(!(*data & NIHONGO_MASK) && *data != '\0'){
+		PSprintf("%c",*data++);
+	}
+	PSprintf(")%c\n",command);
+	return(data);
+}
+
+unsigned char *PS_DrawKanji(data,command)
+unsigned char *data;
+unsigned char command;
+{
+	PSprintf("KFN findfont FNS scalefont setfont\n");
+	PSprintf("<");
+	while(*data & NIHONGO_MASK && *data != G2 &&
+		*data != G3 && *data != '\0'){
+		PSprintf("%x",  *data++);
+		PSprintf("%x ", *data++);
+	}
+	PSprintf(">%c\n",command);
+	PSprintf("FN findfont FNS scalefont setfont\n");
+	return(data);
+}
+
+unsigned char *PS_DrawKana(data,command)
+unsigned char *data;
+unsigned char command;
+{
+	PSprintf("KNFN findfont FNS scalefont setfont\n");
+	PSprintf("(");
+	while(*data == G2 && *data != '\0'){
+		PSprintf("\\%o",(*++data) & KANA_MASK);
+		++data;
+	}
+	PSprintf(")%c\n",command);
+	PSprintf("FN findfont FNS scalefont setfont\n");
+	return(data);
+}
+
+unsigned char *PS_DrawGaiji(data,command)
+unsigned char *data;
+unsigned char command;
+{
+	PSprintf("KFN findfont FNS scalefont setfont\n");
+	PSprintf("<");
+	while(*data == G3 && *data != '\0'){
+		data++;
+		PSprintf("%x",  *data++);
+		PSprintf("%x ", *data++);
+	}
+	PSprintf(">%c\n",command);
+	PSprintf("FN findfont FNS scalefont setfont\n");
+	return(data);
+}
+
+#endif /* L10N */
--- libhtmlw/HTML.c.orig	Wed Jun 14 05:33:54 1995
+++ libhtmlw/HTML.c	Wed Sep 27 22:17:11 1995
@@ -111,6 +111,9 @@
 extern struct delay_rec *AddDelayedImage();
 extern ImageInfo *NoImageData();
 extern void ImageSubmitForm();
+#ifdef L10N
+extern char *convWCtoCT();
+#endif /* L10N */
 
 
 static void		SelectStart();
@@ -168,6 +171,15 @@
 
 char CurrentURL[1024];	/*if url bigger than this...too bad*/
 
+#ifdef NETSCAPE_EXT
+int SetDefaultColor = False;
+unsigned long DefaultFg;
+unsigned long DefaultBg;
+unsigned long DefaultActiveAnchorFg;
+unsigned long DefaultActiveAnchorBg;
+unsigned long DefaultAnchorFg;
+unsigned long DefaultVisitedAnchorFg;
+#endif /* NETSCAPE_EXT */
 
 /*
  * Default translations
@@ -372,6 +384,19 @@
 		XtRString, "purple4"
 	},
 
+#ifdef NETSCAPE_EXT
+	{	WbNanchorColorBG,
+		XtCBackground, XtRPixel, sizeof (Pixel),
+		XtOffset (HTMLWidget, html.anchor_bg),
+		XtRString, "white"
+	},
+
+	{	WbNvisitedAnchorColorBG,
+		XtCBackground, XtRPixel, sizeof (Pixel),
+		XtOffset (HTMLWidget, html.visitedAnchor_bg),
+		XtRString, "white"
+	},
+#endif /* NETSCAPE_EXT */
 	{	WbNactiveAnchorFG,
 		XtCBackground, XtRPixel, sizeof (Pixel),
 		XtOffset (HTMLWidget, html.activeAnchor_fg),
@@ -408,6 +433,14 @@
 		XtRString, "False"
 	},
 
+#ifdef DISABLE_TABLE
+	{	WbNdisableTable,
+		WbCDisableTable, XtRBoolean, sizeof (Boolean),
+		XtOffset (HTMLWidget, html.disable_table),
+		XtRString, "False"
+	},
+#endif /* DISABLE_TABLE */
+
 	{	WbNisIndex,
 		WbCIsIndex, XtRBoolean, sizeof (Boolean),
 		XtOffset (HTMLWidget, html.is_index),
@@ -552,6 +585,147 @@
                 XtRString, "-adobe-courier-medium-r-normal-*-10-*-*-*-*-*-*-*"
         },
 /* end amb */
+#ifdef L10N
+	{	WbNWCfont,
+		WbCWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNitalicWCFont,
+		WbCItalicWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.italic_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNboldWCFont,
+		WbCBoldWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.bold_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNfixedWCFont,
+		WbCFixedWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.fixed_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNfixedboldWCFont,
+		WbCFixedboldWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.fixedbold_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNfixeditalicWCFont,
+		WbCFixeditalicWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.fixeditalic_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader1WCFont,
+		WbCHeader1WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header1_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader2WCFont,
+		WbCHeader2WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header2_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader3WCFont,
+		WbCHeader3WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header3_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader4WCFont,
+		WbCHeader4WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header4_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader5WCFont,
+		WbCHeader5WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header5_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNheader6WCFont,
+		WbCHeader6WCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.header6_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNaddressWCFont,
+		WbCAddressWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.address_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNplainWCFont,
+		WbCPlainWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.plain_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNplainboldWCFont,
+		WbCPlainboldWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.plainbold_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNplainitalicWCFont,
+		WbCPlainitalicWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.plainitalic_WCfont),
+		XtRString, NULL
+	},
+
+	{	WbNlistingWCFont,
+		WbCListingWCFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.listing_WCfont),
+		XtRString, NULL
+	},
+/* amb */
+	{	WbNsupSubWCFont,
+		WbCSupSubFont, XtRFontStruct, sizeof (XFontStruct *),
+		XtOffset (HTMLWidget, html.supsub_WCfont),
+		XtRString, NULL
+	},
+/* end amb */
+	{	XmNfontList,
+		XmCFontList, XmRFontList, sizeof (XmFontList),
+		XtOffset (HTMLWidget, html.font_list),
+		XtRString, NULL
+	},
+
+	{	WbNcharsetInfo,
+		WbCCharsetInfo, XtRInt, sizeof (int),
+		XtOffset (HTMLWidget, html.charset_info),
+		XtRString, "1"
+	},
+
+	{	WbNbidirInfo,
+		WbCBidirInfo, XtRInt, sizeof (int),
+		XtOffset (HTMLWidget, html.bidirectionality),
+		XtRString, "1"
+	},
+
+	{	WbNforceReparse,
+		WbCForceReparse, XtRBoolean, sizeof (Boolean),
+		XtOffset (HTMLWidget, html.force_reparse),
+		XtRString, "False"
+	},
+#ifdef MOTIF_I18N
+	{	WbNhalfsizedTextfield,
+		WbCHalfsizedTextfield, XtRBoolean, sizeof (Boolean),
+		XtOffset (HTMLWidget, html.halfsized_textfield),
+		XtRString, "True"
+	},
+#endif /* MOTIF_I18N */
+#endif /* L10N */
+
         {       WbNpreviouslyVisitedTestFunction,
                 WbCPreviouslyVisitedTestFunction, XtRPointer, 
                 sizeof (XtPointer),
@@ -747,6 +921,10 @@
 
 		hw->html.drawGC = XCreateGC(XtDisplay(hw), XtWindow(hw),
 			valuemask, &values);
+#ifdef L10N
+		hw->html.drawWCGC = XCreateGC(XtDisplay(hw), XtWindow(hw),
+			valuemask, &values);
+#endif /* L10N */
 	}
 
 #ifdef DEBUG
@@ -1850,6 +2028,9 @@
 	 * Initialize private widget resources
 	 */
 	new->html.drawGC = NULL;
+#ifdef L10N
+	new->html.drawWCGC = NULL;
+#endif /* L10N */
 	new->html.select_start = NULL;
 	new->html.select_end = NULL;
 	new->html.sel_start_pos = 0;
@@ -1861,12 +2042,32 @@
 	new->html.active_anchor = NULL;
 	new->html.press_x = 0;
 	new->html.press_y = 0;
+#ifdef L10N
+	new->html.force_reparse = False;
+#endif /* L10N */
 
         new->html.cached_tracked_ele = NULL;
 
         /* Initialize cursor used when pointer is inside anchor. */
         if (in_anchor_cursor == (Cursor)NULL)
           in_anchor_cursor = XCreateFontCursor (XtDisplay (new), XC_hand2);
+#ifdef NETSCAPE_EXT
+	{
+#ifdef MOTIF
+		DefaultFg = new->manager.foreground;
+#else
+		DefaultFg = new->html.foreground;
+#endif /* MOTIF */
+		DefaultBg = new->core.background_pixel;
+		DefaultAnchorFg = new->html.anchor_fg;
+		DefaultVisitedAnchorFg = new->html.visitedAnchor_fg;
+		DefaultActiveAnchorFg = new->html.activeAnchor_fg;
+		DefaultActiveAnchorBg = new->html.activeAnchor_bg;
+		new->html.anchor_bg = DefaultBg;
+		new->html.visitedAnchor_bg = DefaultBg;
+		SetDefaultColor = True;
+	}
+#endif /* NETSCAPE_EXT */
 
         return;
 }
@@ -2034,7 +2235,6 @@
             Region region)
 #endif
 {
-	XExposeEvent *ExEvent = (XExposeEvent *)event;
 	int dx, dy;
 
 #ifdef MOTIF
@@ -2400,6 +2600,11 @@
 		end_pos = epos;
 	}
 
+#ifdef L10N
+	chkWCbounds1(hw, (char *)start->edata, start->edata_len, &start_pos);
+	chkWCbounds2(hw, (char *)end->edata, end->edata_len, &end_pos);
+#endif /* L10N */
+
 	eptr = start;
 	while ((eptr != NULL)&&(eptr != end))
 	{
@@ -2535,6 +2740,11 @@
 		end_pos = epos;
 	}
 
+#ifdef L10N
+	chkWCbounds1(hw, (char *)start->edata, start->edata_len, &start_pos);
+	chkWCbounds2(hw, (char *)end->edata, end->edata_len, &end_pos);
+#endif /* L10N */
+
 	eptr = start;
 	while ((eptr != NULL)&&(eptr != end))
 	{
@@ -2622,6 +2832,9 @@
 		hw->html.sel_start_pos = 0;
 		hw->html.sel_end_pos = 0;
 		hw->html.active_anchor = NULL;
+#ifdef L10N
+		hw->html.force_reparse = False;
+#endif /* L10N */
 		return;
 	}
 
@@ -2630,6 +2843,9 @@
 	hw->html.sel_start_pos = 0;
 	hw->html.sel_end_pos = 0;
 	hw->html.active_anchor = NULL;
+#ifdef L10N
+	hw->html.force_reparse = False;
+#endif /* L10N */
 }
 
 
@@ -3122,6 +3338,10 @@
 			hw->html.new_start_pos = old_start_pos;
 			hw->html.new_end_pos = old_end_pos;
 		}
+#ifdef L10N
+		chkWCbounds1(hw, (char *)start->edata, start->edata_len, &start_pos);
+		chkWCbounds2(hw, (char *)end->edata, end->edata_len, &end_pos);
+#endif /* L10N */
 		ChangeSelection(hw, start, end, start_pos, end_pos);
 		hw->html.new_start = start;
 		hw->html.new_end = end;
@@ -3238,6 +3458,10 @@
 			start_pos = epos;
 		}
 
+#ifdef L10N
+		chkWCbounds1(hw, (char *)start->edata, start->edata_len, &start_pos);
+		chkWCbounds2(hw, (char *)end->edata, end->edata_len, &end_pos);
+#endif /* L10N */
 		ChangeSelection(hw, start, end, start_pos, end_pos);
 		hw->html.new_start = start;
 		hw->html.new_end = end;
@@ -3342,6 +3566,10 @@
 			start = eptr;
 			start_pos = epos;
 		}
+#ifdef L10N
+		chkWCbounds1(hw, (char *)start->edata, start->edata_len, &start_pos);
+		chkWCbounds2(hw, (char *)end->edata, end->edata_len, &end_pos);
+#endif /* L10N */
 		ChangeSelection(hw, start, end, start_pos, end_pos);
 		hw->html.select_start = start;
 		hw->html.sel_start_pos = start_pos;
@@ -4004,6 +4232,9 @@
 	/*reformatted = 0;*/
 	if ((request->html.raw_text != current->html.raw_text)||
 	    (request->html.header_text != current->html.header_text)||
+#ifdef L10N
+	    (request->html.force_reparse != current->html.force_reparse)||
+#endif /* L10N */
 	    (request->html.footer_text != current->html.footer_text))
 	{
 		/*
@@ -4069,6 +4300,9 @@
 		new->html.new_start_pos = 0;
 		new->html.new_end_pos = 0;
 		new->html.active_anchor = NULL;
+#ifdef L10N
+		new->html.force_reparse = False;
+#endif /* L10N */
 	}
 	else if ((request->html.font != current->html.font)||
 	         (request->html.italic_font != current->html.italic_font)||
@@ -4087,6 +4321,26 @@
 	         (request->html.plainbold_font != current->html.plainbold_font)||
 	         (request->html.plainitalic_font != current->html.plainitalic_font)||
 	         (request->html.listing_font != current->html.listing_font)||
+#ifdef L10N
+		 (request->html.WCfont != current->html.WCfont)||
+		 (request->html.italic_WCfont != current->html.italic_WCfont)||
+		 (request->html.bold_WCfont != current->html.bold_WCfont)||
+		 (request->html.fixed_WCfont != current->html.fixed_WCfont)||
+		 (request->html.fixedbold_WCfont != current->html.fixedbold_font)||
+		 (request->html.fixeditalic_WCfont != current->html.fixeditalic_font)||
+		 (request->html.header1_WCfont != current->html.header1_WCfont)||
+		 (request->html.header2_WCfont != current->html.header2_WCfont)||
+		 (request->html.header3_WCfont != current->html.header3_WCfont)||
+		 (request->html.header4_WCfont != current->html.header4_WCfont)||
+		 (request->html.header5_WCfont != current->html.header5_WCfont)||
+		 (request->html.header6_WCfont != current->html.header6_WCfont)||
+		 (request->html.address_WCfont != current->html.address_WCfont)||
+		 (request->html.plain_WCfont != current->html.plain_WCfont)||
+		 (request->html.plainbold_WCfont != current->html.plainbold_font)||
+		 (request->html.plainitalic_WCfont != current->html.plainitalic_font)||
+		 (request->html.listing_WCfont != current->html.listing_WCfont)||
+		 (request->html.font_list != current->html.font_list)||
+#endif /* L10N */
 	         (request->html.activeAnchor_fg != current->html.activeAnchor_fg)||
 	         (request->html.activeAnchor_bg != current->html.activeAnchor_bg)||
 	         (request->html.anchor_fg != current->html.anchor_fg)||
@@ -4097,6 +4351,10 @@
 	         (request->html.num_visitedAnchor_underlines != current->html.num_visitedAnchor_underlines))
 	{
 		if ((request->html.plain_font != current->html.plain_font)||
+#ifdef L10N
+		    (request->html.plain_WCfont != current->html.plain_WCfont)||
+		    (request->html.listing_WCfont != current->html.listing_WCfont)||
+#endif /* L10N */
 		    (request->html.listing_font != current->html.listing_font))
 		{
 			new->html.max_pre_width = DocumentWidth(new,
@@ -4131,6 +4389,19 @@
 		/*reformatted = 1;*/
 	}
 
+#ifdef L10N
+	/*
+	 * bidirectionality has been changed
+	 */
+	if(request->html.bidirectionality != current->html.bidirectionality)
+	{
+		ReformatWindow(new);
+		ScrollWidgets(new);
+		ViewClearAndRefresh(new);
+		/*reformatted = 1;*/
+	}
+#endif /* L10N */
+
 	return(False);
 }
 
@@ -4261,10 +4532,17 @@
 	if (*target == XA_STRING || *target == XA_TEXT(d) ||
 		*target == XA_COMPOUND_TEXT(d))
 	{
+#ifdef L10N
+		if (*target == XA_COMPOUND_TEXT(d) || *target == XA_TEXT(d))
+		{
+			*type = XA_COMPOUND_TEXT(d);
+		}
+#else /* L10N */
 		if (*target == XA_COMPOUND_TEXT(d))
 		{
 			*type = *target;
 		}
+#endif /* L10N */
 		else
 		{
 			*type = XA_STRING;
@@ -4286,6 +4564,12 @@
 				hw->html.font->max_bounds.width,
 				hw->html.margin_width);
 		}
+#ifdef L10N
+		if (*target == XA_COMPOUND_TEXT(d) || *target == XA_TEXT(d))
+		{
+			text = convWCtoCT(hw, text);
+		}
+#endif /* L10N */
 		*value = text;
 		*length = strlen(*value);
 		*format = 8;
@@ -5193,9 +5477,9 @@
 	HTMLWidget hw = (HTMLWidget)w;
 	int found;
 	struct ele_rec *eptr;
-	struct ele_rec *e_start;
-	struct ele_rec *e_end;
-	int start_pos, end_pos;
+	struct ele_rec *e_start = NULL;
+	struct ele_rec *e_end = NULL;
+	int start_pos = 0, end_pos = 0;
 	Atom *atoms;
 	int i, buffer;
 	char *text;
@@ -5681,6 +5965,9 @@
 	hw->html.new_start_pos = 0;
 	hw->html.new_end_pos = 0;
 	hw->html.active_anchor = NULL;
+#ifdef L10N
+	hw->html.force_reparse = False;
+#endif /* L10N */
 
         hw->html.cached_tracked_ele = NULL;
 }
@@ -5734,7 +6021,7 @@
 	char cval;
 	struct ele_rec *eptr;
 	int s_pos;
-	struct ele_rec *s_eptr;
+	struct ele_rec *s_eptr = NULL;
 	ElementRef s_ref, e_ref;
 	ElementRef *start, *end;
 
--- libhtmlw/HTML.h.orig	Tue Jul  4 04:07:04 1995
+++ libhtmlw/HTML.h	Wed Sep 27 22:16:21 1995
@@ -217,6 +217,9 @@
 	FieldType	type;
 	char		*text;
 	XFontStruct	*font;
+#ifdef L10N
+	XFontStruct *WCfont;
+#endif /* L10N */
 	char		**formattedText;
 	int		numLines;	/* for formatted text */
 
@@ -280,7 +283,13 @@
 	WidgetInfo *widget_data;
 	TableInfo *table_data;
 	XFontStruct *font;
+#ifdef L10N
+	XFontStruct *WCfont;
+#endif /* L10N */
 	int alignment;
+#ifdef HTML3
+        int Halignment;          /* horizontal alignment */
+#endif /* HTML3 */
 	Boolean internal;
 	Boolean selected;
 	int indent_level;
@@ -303,6 +312,9 @@
 	int edata_len;
 	struct ele_rec *next;
 	struct ele_rec *prev;
+#ifdef NETSCAPE_EXT
+	unsigned int image_border;
+#endif /* NETSCAPE_EXT */
 };
 
 struct ref_rec {
@@ -380,6 +392,13 @@
 #define M_DOC_HEAD      54 /* amb 2 */
 #define M_UNDERLINED    55 /* amb 2 */
 #define M_DOC_BODY      56 /* amb 2 */
+#ifdef NETSCAPE_EXT
+#define M_CENTER        57
+#define M_NOBR          58
+#define M_BLINK         59
+#define M_FONT          60
+#define M_BASEFONT      61
+#endif /* NETSCAPE_EXT */
 
 /* syntax of Mark types */
 #define	MT_TITLE	"title"
@@ -418,7 +437,11 @@
 #define MT_VARIABLE	"var"
 #define MT_CITATION	"cite"
 #define MT_BLOCKQUOTE	"blockquote"
+#ifdef HTML3
+#define MT_STRIKEOUT	"s"
+#else /* HTML3 */
 #define MT_STRIKEOUT	"strike"
+#endif /* HTML3 */
 #define MT_INPUT	"input"
 #define MT_FORM		"form"
 #define MT_HRULE	"hr"
@@ -437,11 +460,21 @@
 #define MT_DOC_HEAD     "head" /* amb 2 */
 #define MT_UNDERLINED   "u"    /* amb 2 */
 #define MT_DOC_BODY     "body"
+#ifdef NETSCAPE_EXT
+#define MT_CENTER       "center"
+#define MT_NOBR         "nobr"
+#define MT_BLINK        "blink"
+#define MT_FONT         "font"
+#define MT_BASEFONT     "basefont"
+#endif /* NETSCAPE_EXT */
 
 /* anchor tags */
 #define	AT_NAME		"name"
 #define	AT_HREF		"href"
 #define	AT_SUBJECT	"title"
+#ifdef NETSCAPE_EXT
+#define	AT_BORDER	"border"
+#endif /* NETSCAPE_EXT */
 
 
 struct mark_up {
@@ -453,6 +486,37 @@
 	struct mark_up *next;
 };
 
+#ifdef L10N
+/* difines used for character sets */
+#define CS_UNKNOWN     0x00
+#define CS_MULTIBYTE   0x80
+/* single byte character sets */
+/* single byte official */
+#define CS_ISO_8859_1  0x01 /* Latin-1 */
+#define CS_ISO_8859_2  0x02 /* Latin-2 */
+#define CS_ISO_8859_3  0x03 /* Latin-3 */
+#define CS_ISO_8859_4  0x04 /* Latin-4 */
+#define CS_ISO_8859_5  0x05 /* Cyrillic */
+/* #define CS_ISO_8859_6       0x06 */ /* Arabic */
+#define CS_ISO_8859_7  0x07 /* Greek */
+#define CS_ISO_8859_8  0x08 /* Hebrew */
+#define CS_ISO_8859_9  0x09 /* Latin-5 */
+/* single byte private */
+#define CS_KOI8                0x41 /* Cyrillic */
+/* multi byte character sets */
+/* double byte official */
+#define CS_GB          0x81 /* Chinese */
+#define CS_JIS         0x82 /* Japanese */
+#define CS_KSC         0x83 /* Korean */
+/* double byte private */
+#define CS_Big5                0xc1 /* Chinese */
+#define CS_HZ          0xc2 /* Chinese */
+
+/* difines used for Bi-directionality */
+#define BIDIR_VISUAL   0x01 /* Visual */
+#define BIDIR_IMPLICIT 0x02 /* Implicit */
+/* #define BIDIR_EXPLICIT      0x03 */ /* Not yet supported: Explicit */
+#endif /* L10N */
 
 /*
  * New resource names
@@ -469,6 +533,10 @@
 #define	WbNdashedVisitedAnchorUnderlines	"dashedVisitedAnchorUnderlines"
 #define	WbNanchorColor		"anchorColor"
 #define	WbNvisitedAnchorColor	"visitedAnchorColor"
+#ifdef NETSCAPE_EXT
+#define	WbNanchorColorBG	"anchorColorBG"
+#define	WbNvisitedAnchorColorBG	"visitedAnchorColorBG"
+#endif /* NETSCAPE_EXT */
 #define	WbNactiveAnchorFG	"activeAnchorFG"
 #define	WbNactiveAnchorBG	"activeAnchorBG"
 #define	WbNfancySelections	"fancySelections"
@@ -491,6 +559,35 @@
 #define	WbNplainboldFont	"plainboldFont"
 #define	WbNplainitalicFont	"plainitalicFont"
 #define	WbNlistingFont		"listingFont"
+#ifdef L10N
+#define	WbNWCfont		"WCfont"
+#define	WbNitalicWCFont		"italicWCFont"
+#define	WbNboldWCFont		"boldWCFont"
+#define	WbNfixedWCFont		"fixedWCFont"
+#define	WbNfixedboldWCFont	"fixedboldWCFont"
+#define	WbNfixeditalicWCFont	"fixeditalicWCFont"
+#define	WbNheader1WCFont	"header1WCFont"
+#define	WbNheader2WCFont	"header2WCFont"
+#define	WbNheader3WCFont	"header3WCFont"
+#define	WbNheader4WCFont	"header4WCFont"
+#define	WbNheader5WCFont	"header5WCFont"
+#define	WbNheader6WCFont	"header6WCFont"
+#define	WbNaddressWCFont	"addressWCFont"
+#define	WbNplainWCFont		"plainWCFont"
+#define	WbNplainboldWCFont	"plainboldWCFont"
+#define	WbNplainitalicWCFont	"plainitalicWCFont"
+#define	WbNlistingWCFont	"listingWCFont"
+#define	WbNsupSubWCFont		"supSubWCFont"
+#define	WbNcharsetInfo		"charsetInfo"
+#define	WbNbidirInfo		"bidirInfo"
+#define	WbNforceReparse		"forceReparse"
+#ifdef MOTIF_I18N
+#define	WbNhalfsizedTextfield	"halfsizedTextfield"
+#endif /* MOTIF_I18N */
+#endif /* L10N */
+#ifdef DISABLE_TABLE
+#define	WbNdisableTable		"disableTable"
+#endif /* DISABLE_TABLE */
 #define	WbNanchorCallback	"anchorCallback"
 #define	WbNlinkCallback		"linkCallback"
 #define	WbNsubmitFormCallback	"submitFormCallback"
@@ -543,6 +640,35 @@
 #define	WbCPlainboldFont	"PlainboldFont"
 #define	WbCPlainitalicFont	"PlainitalicFont"
 #define	WbCListingFont		"ListingFont"
+#ifdef L10N
+#define	WbCWCFont		"WCFont"
+#define	WbCItalicWCFont		"ItalicWCFont"
+#define	WbCBoldWCFont		"BoldWCFont"
+#define	WbCFixedWCFont		"FixedWCFont"
+#define	WbCFixedboldWCFont	"FixedboldWCFont"
+#define	WbCFixeditalicWCFont	"FixeditalicWCFont"
+#define	WbCHeader1WCFont	"Header1WCFont"
+#define	WbCHeader2WCFont	"Header2WCFont"
+#define	WbCHeader3WCFont	"Header3WCFont"
+#define	WbCHeader4WCFont	"Header4WCFont"
+#define	WbCHeader5WCFont	"Header5WCFont"
+#define	WbCHeader6WCFont	"Header6WCFont"
+#define	WbCAddressWCFont	"AddressWCFont"
+#define	WbCPlainWCFont		"PlainWCFont"
+#define	WbCPlainboldWCFont	"PlainboldWCFont"
+#define	WbCPlainitalicWCFont	"PlainitalicWCFont"
+#define	WbCListingWCFont	"ListingWCFont"
+#define	WbCSupSubWCFont		"SupSubWCFont"	/* amb */
+#define	WbCCharsetInfo		"CharsetInfo"
+#define	WbCBidirInfo		"BidirInfo"
+#define	WbCForceReparse		"ForceReparse"
+#ifdef MOTIF_I18N
+#define WbCHalfsizedTextfield  "HalfsizedTextfield"
+#endif /* MOTIF_I18N */
+#endif /* L10N */
+#ifdef DISABLE_TABLE
+#define	WbCDisableTable		"DisableTable"
+#endif /* DISABLE_TABLE */
 #define	WbCPreviouslyVisitedTestFunction "PreviouslyVisitedTestFunction"
 #define	WbCResolveImageFunction "ResolveImageFunction"
 #define	WbCResolveDelayedImage "ResolveDelayedImage"
--- libhtmlw/HTMLP.h.orig	Wed Jan 11 09:03:31 1995
+++ libhtmlw/HTMLP.h	Wed Sep 27 22:16:42 1995
@@ -59,6 +59,11 @@
 
 #ifdef MOTIF
 #include <Xm/XmP.h>
+#ifdef L10N
+#ifdef OPENWARE
+#undef _XA_COMPOUND_TEXT /* avoid rubbish OpenWare's redefinition */
+#endif /* OPENWARE */
+#endif /* L10N */
 # ifdef MOTIF1_2
 #  include <Xm/ManagerP.h>
 # endif /* MOTIF1_2 */
@@ -134,6 +139,10 @@
 #endif
 	Pixel			anchor_fg;
 	Pixel			visitedAnchor_fg;
+#ifdef NETSCAPE_EXT
+	Pixel			anchor_bg;
+	Pixel			visitedAnchor_bg;
+#endif /* NETSCAPE_EXT */
 	Pixel			activeAnchor_fg;
 	Pixel			activeAnchor_bg;
 	int			num_anchor_underlines;
@@ -141,6 +150,9 @@
 	Boolean			dashed_anchor_lines;
 	Boolean			dashed_visitedAnchor_lines;
 	Boolean			fancy_selections;
+#ifdef DISABLE_TABLE
+	Boolean			disable_table;
+#endif /* DISABLE_TABLE */
 	Boolean			border_images;
 	Boolean			delay_images;
 	Boolean			is_index;
@@ -158,6 +170,9 @@
 	XFontStruct		*header4_font;
 	XFontStruct		*header5_font;
 	XFontStruct		*header6_font;
+#ifdef NETSCAPE_EXT
+	XFontStruct		*sized_font[7];
+#endif /* NETSCAPE_EXT */
 	XFontStruct		*address_font;
 	XFontStruct		*plain_font;
 	XFontStruct		*plainbold_font;
@@ -166,6 +181,38 @@
 /* amb */
         XFontStruct             *supsub_font;
 /* end amb */
+#ifdef L10N
+	XFontStruct		*WCfont;
+	XFontStruct		*italic_WCfont;
+	XFontStruct		*bold_WCfont;
+	XFontStruct		*fixed_WCfont;
+	XFontStruct		*fixedbold_WCfont;
+	XFontStruct		*fixeditalic_WCfont;
+	XFontStruct		*header1_WCfont;
+	XFontStruct		*header2_WCfont;
+	XFontStruct		*header3_WCfont;
+	XFontStruct		*header4_WCfont;
+	XFontStruct		*header5_WCfont;
+	XFontStruct		*header6_WCfont;
+#ifdef NETSCAPE_EXT
+	XFontStruct		*sized_WCfont[7];
+#endif /* NETSCAPE_EXT */
+	XFontStruct		*address_WCfont;
+	XFontStruct		*plain_WCfont;
+	XFontStruct		*plainbold_WCfont;
+	XFontStruct		*plainitalic_WCfont;
+	XFontStruct		*listing_WCfont;
+/* amb */
+	XFontStruct		*supsub_WCfont;
+/* end amb */
+	XmFontList		font_list;
+	int			charset_info;
+	int			bidirectionality;
+	Boolean			force_reparse;
+#ifdef MOTIF_I18N
+	Boolean			halfsized_textfield;
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 
         XtPointer		previously_visited_test;
         XtPointer		resolveImage;
@@ -196,6 +243,9 @@
 	int			new_end_pos;
 	struct ele_rec		*active_anchor;
 	GC			drawGC;
+#ifdef L10N
+	GC			drawWCGC;
+#endif /* L10N */
 	int			press_x;
 	int			press_y;
 	Time			but_press_time;
--- libhtmlw/HTMLformat.c.orig	Tue May  2 09:20:51 1995
+++ libhtmlw/HTMLformat.c	Fri Sep 29 11:17:18 1995
@@ -108,6 +108,9 @@
 extern void FreeCommaList();
 extern TableInfo *MakeTable();
 extern void TableRefresh();
+#ifdef L10N
+extern char *kinsoku_chars();
+#endif /* L10N */
 
 
 /*
@@ -128,6 +131,12 @@
 	XFontStruct *font;
 	struct font_rec *next;
 } FontRec;
+#ifdef NETSCAPE_EXT
+typedef struct color_rec {
+	unsigned long color;
+	struct color_rec *next;
+} ColorRec;
+#endif /* NETSCAPE_EXT */
 
 static DescRec BaseDesc;
 static DescRec *DescType;
@@ -136,6 +145,16 @@
 static FontRec *FontStack;
 static XFontStruct *currentFont;
 static XFontStruct *saveFont;
+#ifdef L10N
+static FontRec WCFontBase;
+static FontRec *WCFontStack;
+static XFontStruct *currentWCFont;
+static XFontStruct *saveWCFont;
+#endif /* L10N */
+#ifdef NETSCAPE_EXT
+static ColorRec ColorBase;
+static ColorRec *ColorStack;
+#endif /* NETSCAPE_EXT */
 static unsigned long Fg;
 static unsigned long Bg;
 static int Width;
@@ -168,8 +187,39 @@
 static int Superscript;             /* amb */
 static int Subscript;
 static XFontStruct *nonScriptFont;
+#ifdef L10N
+static XFontStruct *nonScriptWCFont;
+#endif /* L10N */
 static int InDocHead;
 static int InUnderlined;
+#ifdef HTML3
+static int defaultAlign;
+static int Alignment;
+#endif /* HTML3 */
+#ifdef NETSCAPE_EXT
+static int Nobreak;
+static int Blink;
+static int InDocBody;
+static unsigned long get_color();
+extern int SetDefaultColor;
+extern unsigned long DefaultFg;
+extern unsigned long DefaultBg;
+extern unsigned long DefaultActiveAnchorFg;
+extern unsigned long DefaultActiveAnchorBg;
+extern unsigned long DefaultAnchorFg;
+extern unsigned long DefaultVisitedAnchorFg;
+static Boolean use_color = False;
+extern int mo_use_color();
+#define SWAPGROUND(fore, back)	\
+{				\
+	unsigned long swap;	\
+	swap = (fore);		\
+	(fore) = (back);	\
+	(back) = swap;		\
+}
+#define DEFALUT_FONTSIZE 3;
+static int CurrentFontSize;
+#endif /* NETSCAPE_EXT */
 
 /*
  * Turned out we were taking WAY too much time mallocing and freeing
@@ -188,19 +238,40 @@
  * Create a formatted element
  */
 struct ele_rec *
+#ifdef L10N
+CreateElement(hw, type, fp, WCfp, x, y, edata)
+	HTMLWidget hw;
+	int type;
+	XFontStruct *fp, *WCfp;
+	int x, y;
+	char *edata;
+#else /* L10N */
 CreateElement(hw, type, fp, x, y, edata)
 	HTMLWidget hw;
 	int type;
 	XFontStruct *fp;
 	int x, y;
 	char *edata;
+#endif /* L10N */
 {
 	struct ele_rec *eptr;
 	int baseline;
+#ifdef NETSCAPE_EXT
+	char *n_edata;
+#endif /* NETSCAPE_EXT */
 
 	if (fp != NULL)
 	{
+#ifdef L10N
+		if ((WCfp != NULL) &&
+		    (WCfp->max_bounds.ascent > fp->max_bounds.ascent)) {
+			baseline = WCfp->max_bounds.ascent;
+		} else {
+#endif /* L10N */
 		baseline = fp->max_bounds.ascent;
+#ifdef L10N
+		}
+#endif /* L10N */
 	}
 	else
 	{
@@ -221,7 +292,13 @@
 	eptr->widget_data = NULL;
 	eptr->table_data = NULL;
 	eptr->font = fp;
+#ifdef L10N
+	eptr->WCfont = WCfp;
+#endif /* L10N */
 	eptr->alignment = ALIGN_BOTTOM;
+#ifdef HTML3
+	eptr->Halignment = Alignment;
+#endif /* HTML3 */
 	eptr->selected = False;
 	eptr->internal = Internal;
 	eptr->strikeout = Strikeout;
@@ -236,6 +313,9 @@
 	eptr->underline_number = Underlines;
 	eptr->dashed_underline = DashedUnderlines;
 	eptr->indent_level = IndentLevel;
+#ifdef NETSCAPE_EXT
+	eptr->image_border = IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 
 	switch(type)
 	{
@@ -501,9 +581,20 @@
 			 */
 			eptr->underline_number = 0;
 
+#ifdef NETSCAPE_EXT
+			n_edata = ParseMarkTag(edata, MT_IMAGE, "SRC");
+			/**temp******/
+			if (!n_edata)
+				n_edata = ParseMarkTag(edata, MT_FIGURE, "SRC");
+			/***********/
+			if (n_edata != NULL)
+			{
+				eptr->edata_len = strlen(n_edata) + 1;
+#else /* NETSCAPE_EXT */
 			if (edata != NULL)
 			{
 				eptr->edata_len = strlen(edata) + 1;
+#endif /* NETSCAPE_EXT */
 				eptr->edata = (char *)malloc(eptr->edata_len);
 				if (eptr->edata == NULL)
 				{
@@ -511,7 +602,11 @@
 					fprintf(stderr, "Cannot allocate space for copy of image element data\n");
 					exit(1);
 				}
+#ifdef NETSCAPE_EXT
+				strcpy(eptr->edata, n_edata);
+#else /* NETSCAPE_EXT */
 				strcpy(eptr->edata, edata);
+#endif /* NETSCAPE_EXT */
 			}
 			else
 			{
@@ -539,6 +634,18 @@
 				eptr->anchorName = NULL;
 				eptr->anchorSubject = NULL;
 			}
+#ifdef NETSCAPE_EXT
+			{
+				char *i_border = ParseMarkTag(edata,
+							MT_IMAGE, AT_BORDER);
+				if (i_border != NULL) {
+					eptr->image_border = atoi(i_border);
+					free(i_border);
+				}
+				else
+					eptr->image_border = IMAGE_BORDER;
+			}
+#endif /* NETSCAPE_EXT */
 
 			/*
 			 * Picture stuff
@@ -553,8 +660,8 @@
 				/*
 				 * See if this is a special internal image
 				 */
-				if ((edata != NULL)&&
-					(strncmp(edata, INTERNAL_IMAGE,
+				if ((eptr->edata != NULL)&&
+					(strncmp(eptr->edata, INTERNAL_IMAGE,
 					strlen(INTERNAL_IMAGE)) == 0))
 				{
 					internal = 1;
@@ -575,7 +682,7 @@
 				     * see if already cached.
 				     */
 				    eptr->pic_data = (*(resolveImageProc)
-					(hw->html.resolveImage))(hw, edata, 1);
+					(hw->html.resolveImage))(hw, eptr->edata, 1);
 				    if (eptr->pic_data != NULL)
 				    {
 					eptr->pic_data->delayed = 0;
@@ -618,7 +725,7 @@
 				else
 				{
 				    eptr->pic_data = (*(resolveImageProc)
-					(hw->html.resolveImage))(hw, edata, 0);
+					(hw->html.resolveImage))(hw, eptr->edata, 0);
 				    if (eptr->pic_data != NULL)
 				    {
 					eptr->pic_data->delayed = 0;
@@ -694,8 +801,24 @@
 				eptr->anchorName = NULL;
 				eptr->anchorSubject = NULL;
 			}
+#ifdef NETSCAPE_EXT
+			{
+				char *i_border = ParseMarkTag(edata,
+							MT_TABLE, AT_BORDER);
+				if (i_border != NULL) {
+					eptr->image_border = atoi(i_border);
+					free(i_border);
+				}
+				else
+					eptr->image_border = IMAGE_BORDER;
+				eptr->table_data = MakeTable (hw, edata,
+					(x + eptr->image_border),
+					(y + eptr->image_border));
+			}
+#else /* NETSCAPE_EXT */
 			eptr->table_data = MakeTable (hw, edata,
 				(x + IMAGE_BORDER), (y + IMAGE_BORDER));
+#endif /* NETSCAPE_EXT */
 
 			break;
 		case E_WIDGET:
@@ -772,20 +895,41 @@
  * list position if possible, otherwise allocate a new list position.
  */
 void
+#ifdef L10N
+SetElement(hw, type, fp, WCfp, x, y, edata)
+	HTMLWidget hw;
+	int type;
+	XFontStruct *fp, *WCfp;
+	int x, y;
+	char *edata;
+#else /* L10N */
 SetElement(hw, type, fp, x, y, edata)
 	HTMLWidget hw;
 	int type;
 	XFontStruct *fp;
 	int x, y;
 	char *edata;
+#endif /* L10N */
 {
 	struct ele_rec *eptr;
 	int len;
 	int baseline;
+#ifdef NETSCAPE_EXT
+	char *n_edata;
+#endif /* NETSCAPE_EXT */
 
 	if (fp != NULL)
 	{
+#ifdef L10N
+		if ((WCfp != NULL) &&
+		    (WCfp->max_bounds.ascent > fp->max_bounds.ascent)) {
+			baseline = WCfp->max_bounds.ascent;
+		} else {
+#endif /* L10N */
 		baseline = fp->max_bounds.ascent;
+#ifdef L10N
+		}
+#endif /* L10N */
 	}
 	else
 	{
@@ -800,7 +944,11 @@
 	if ((hw->html.formatted_elements == NULL)||
 		((Current != NULL)&&(Current->next == NULL)))
 	{
+#ifdef L10N
+		eptr = CreateElement(hw, type, fp, WCfp, x, y, edata);
+#else /* L10N */
 		eptr = CreateElement(hw, type, fp, x, y, edata);
+#endif /* L10N */
 		Current = AddEle(&(hw->html.formatted_elements), Current, eptr);
 		return;
 	}
@@ -832,7 +980,13 @@
 	eptr->widget_data = NULL;
 	eptr->table_data = NULL;
 	eptr->font = fp;
+#ifdef L10N
+	eptr->WCfont = WCfp;
+#endif /* L10N */
 	eptr->alignment = ALIGN_BOTTOM;
+#ifdef HTML3
+	eptr->Halignment = Alignment;
+#endif /* HTML3 */
 	eptr->selected = False;
 	eptr->internal = Internal;
 	eptr->strikeout = Strikeout;
@@ -847,6 +1001,9 @@
 	eptr->underline_number = Underlines;
 	eptr->dashed_underline = DashedUnderlines;
 	eptr->indent_level = IndentLevel;
+#ifdef NETSCAPE_EXT
+	eptr->image_border = IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 
 	switch(type)
 	{
@@ -1180,9 +1337,20 @@
 			 */
 			eptr->underline_number = 0;
 
+#ifdef NETSCAPE_EXT
+			n_edata = ParseMarkTag(edata, MT_IMAGE, "SRC");
+			/**temp******/
+			if (!n_edata)
+				n_edata = ParseMarkTag(edata, MT_FIGURE, "SRC");
+			/***********/
+			if (n_edata != NULL)
+			{
+				len = strlen(n_edata) + 1;
+#else /* NETSCAPE_EXT */
 			if (edata != NULL)
 			{
 				len = strlen(edata) + 1;
+#endif /* NETSCAPE_EXT */
 				if (len > eptr->edata_len)
 				{
 					if (eptr->edata != NULL)
@@ -1198,7 +1366,11 @@
 					}
 				}
 				eptr->edata_len = len;
+#ifdef NETSCAPE_EXT
+				strcpy(eptr->edata, n_edata);
+#else /* NETSCAPE_EXT */
 				strcpy(eptr->edata, edata);
+#endif /* NETSCAPE_EXT */
 			}
 			else
 			{
@@ -1242,6 +1414,18 @@
 				eptr->anchorName = NULL;
 				eptr->anchorSubject = NULL;
 			}
+#ifdef NETSCAPE_EXT
+			{
+				char *i_border = ParseMarkTag(edata,
+							MT_IMAGE, AT_BORDER);
+				if (i_border != NULL) {
+					eptr->image_border = atoi(i_border);
+					free(i_border);
+				}
+				else
+					eptr->image_border = IMAGE_BORDER;
+			}
+#endif /* NETSCAPE_EXT */
 
 			/*
 			 * Picture stuff
@@ -1256,8 +1440,8 @@
 				/*
 				 * See if this is a special internal image
 				 */
-				if ((edata != NULL)&&
-					(strncmp(edata, INTERNAL_IMAGE,
+				if ((eptr->edata != NULL)&&
+					(strncmp(eptr->edata, INTERNAL_IMAGE,
 					strlen(INTERNAL_IMAGE)) == 0))
 				{
 					internal = 1;
@@ -1278,7 +1462,7 @@
 				     * see if already cached.
 				     */
 				    eptr->pic_data = (*(resolveImageProc)
-					(hw->html.resolveImage))(hw, edata, 1);
+					(hw->html.resolveImage))(hw, eptr->edata, 1);
 				    if (eptr->pic_data != NULL)
 				    {
 					eptr->pic_data->delayed = 0;
@@ -1321,7 +1505,7 @@
 				else
 				{
 				    eptr->pic_data = (*(resolveImageProc)
-					(hw->html.resolveImage))(hw, edata, 0);
+					(hw->html.resolveImage))(hw, eptr->edata, 0);
 				    if (eptr->pic_data != NULL)
 				    {
 					eptr->pic_data->delayed = 0;
@@ -1395,8 +1579,24 @@
 				eptr->anchorName = NULL;
 				eptr->anchorSubject = NULL;
 			}
+#ifdef NETSCAPE_EXT
+			{
+				char *i_border = ParseMarkTag(edata,
+							MT_TABLE, AT_BORDER);
+				if (i_border != NULL) {
+					eptr->image_border = atoi(i_border);
+					free(i_border);
+				}
+				else
+					eptr->image_border = IMAGE_BORDER;
+				eptr->table_data = MakeTable (hw, edata,
+					(x + eptr->image_border),
+					(y + eptr->image_border));
+			}
+#else /* NETSCAPE_EXT */
 			eptr->table_data = MakeTable (hw, edata,
 				(x + IMAGE_BORDER), (y + IMAGE_BORDER));
+#endif /* NETSCAPE_EXT */
 
 			break;
 		case E_WIDGET:
@@ -1503,8 +1703,13 @@
  * Change our drawing font 
  */
 void
+#ifdef L10N
+NewFont(fp, WCfp)
+	XFontStruct *fp, *WCfp;
+#else /* L10N */
 NewFont(fp)
 	XFontStruct *fp;
+#endif /* L10N */
 {
 	/*
 	 * Deal with bad Lucidia descents.
@@ -1517,6 +1722,13 @@
 	{
 		LineHeight = fp->max_bounds.ascent + fp->max_bounds.descent;
 	}
+#ifdef L10N
+	if ((WCfp != NULL) &&
+	    (WCfp->max_bounds.ascent + WCfp->max_bounds.descent > LineHeight))
+	{
+		LineHeight = WCfp->max_bounds.ascent + WCfp->max_bounds.descent;
+	}
+#endif /* L10N */
 }
 
 
@@ -1537,7 +1749,11 @@
 		MaxWidth = *x + hw->html.margin_width;
 	}
 
+#ifdef L10N
+	SetElement(hw, E_LINEFEED, currentFont, currentWCFont, *x, *y, (char *)NULL);
+#else /* L10N */
 	SetElement(hw, E_LINEFEED, currentFont, *x, *y, (char *)NULL);
+#endif /* L10N */
 }
 
 
@@ -1732,11 +1948,29 @@
 	int baseline;
 	int supsubBaseline;
 
+#ifdef L10N
+	if ((Current->WCfont != NULL) &&
+	    (Current->WCfont->max_bounds.ascent > Current->font->max_bounds.ascent)) {
+	baseline = Current->WCfont->max_bounds.ascent;
+	} else {
+#endif /* L10N */
 	baseline = Current->font->max_bounds.ascent;
+#ifdef L10N
+	}
+#endif /* L10N */
 
         if ((Superscript>0) || (Subscript>0))
           {
+#ifdef L10N
+	    if ((nonScriptWCFont != NULL) &&
+		(nonScriptWCFont->max_bounds.ascent > nonScriptFont->max_bounds.ascent)) {
+	    supsubBaseline = nonScriptWCFont->max_bounds.ascent;
+	    } else {
+#endif /* L10N */
             supsubBaseline = nonScriptFont->max_bounds.ascent;
+#ifdef L10N
+	    }
+#endif /* L10N */
             baseline += ((supsubBaseline * .4) * Superscript);
             baseline -= ((supsubBaseline * .4) * Subscript);
             baseline += 2;
@@ -1849,7 +2083,11 @@
 
 	NeedSpace = 0;
 	width = hw->html.font->max_bounds.width;
+#ifdef L10N
+	SetElement(hw, E_BULLET, hw->html.font, hw->html.WCfont, *x, *y, (char *)NULL);
+#else /* L10N */
 	SetElement(hw, E_BULLET, hw->html.font, *x, *y, (char *)NULL);
+#endif /* L10N */
 	LineHeight = l_height;
 /*
  * This should reall be here, but it is a hack for headers on list
@@ -1871,7 +2109,11 @@
 {
 	NeedSpace = 0;
 	*x = hw->html.margin_width;
+#ifdef L10N
+	SetElement(hw, E_HRULE, currentFont, currentWCFont, *x, *y, (char *)NULL);
+#else /* L10N */
 	SetElement(hw, E_HRULE, currentFont, *x, *y, (char *)NULL);
+#endif /* L10N */
 	*x = *x + width - (2 * hw->html.margin_width);
 	NeedSpace = 1;
 	PF_LF_State = 0;
@@ -1897,8 +2139,17 @@
 
 	width = hw->html.font->max_bounds.lbearing +
 		hw->html.font->max_bounds.rbearing;
+#ifdef L10N
+	if (currentWCFont == NULL) {
+#endif /* L10N */
 	XTextExtents(currentFont, buf, strlen(buf), &dir,
 		&ascent, &descent, &all);
+#ifdef L10N
+	} else {
+	XTextExtentsComposite(hw, currentFont, currentWCFont,
+		buf, strlen(buf), &dir, &ascent, &descent, &all);
+	}
+#endif /* L10N */
 	my_x = *x - (width / 2) - all.width;
 	/*
 	 * Add a space after thenumber here so it will look right when
@@ -1908,7 +2159,11 @@
 	buf[width] = ' ';
 	buf[width + 1] = '\0';
 
+#ifdef L10N
+	SetElement(hw, E_TEXT, currentFont, currentWCFont, my_x, *y, buf);
+#else /* L10N */
 	SetElement(hw, E_TEXT, currentFont, my_x, *y, buf);
+#endif /* L10N */
 	AdjustBaseLine();
 	CharsInLine = CharsInLine + strlen(buf);
 
@@ -1920,6 +2175,15 @@
  */
 }
 
+#ifdef L10N
+#define WCfoldable(hw, end) \
+	(((hw->html.charset_info == CS_JIS) || \
+	  (hw->html.charset_info == CS_GB) || \
+	  (hw->html.charset_info == CS_HZ) || \
+	  (hw->html.charset_info == CS_Big5)) && \
+	 (((int)((unsigned char)(*(end))) > 127) && \
+	  ((int)((unsigned char)(*((end)+1))) > 127)))
+#endif /* L10N */
 
 /*
  * Place a piece of pre-formatted text. Add an element record for it.
@@ -1984,6 +2248,14 @@
 			while (((int)((unsigned char)*end) < 128)&&
 				(isspace(*end)))
 			{
+#ifdef L10N
+				if (WCfoldable(hw, end))
+				{
+					end += 2;
+					char_cnt += 2;
+					break;
+				}
+#endif /* L10N */
 				if (*end == '\n')
 				{
 					break;
@@ -2075,16 +2347,31 @@
 #ifdef ASSUME_FIXED_WIDTH_PRE
 			all.width = currentFont->max_bounds.width * strlen(ptr);
 #else
+#ifdef L10N
+			if (currentWCFont == NULL) {
+#endif /* L10N */
 			XTextExtents(currentFont, ptr, strlen(ptr), &dir,
 				&ascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, currentFont, currentWCFont,
+				ptr, strlen(ptr), &dir, &ascent, &descent, &all);
+			}
+#endif /* L10N */
 #endif /* ASSUME_FIXED_WIDTH_PRE */
 
 			if (*start == '\n')
 			{
 				if ((line != NULL)&&(line[0] != '\0'))
 				{
+#ifdef L10N
+					SetElement(hw, E_TEXT, currentFont,
+							currentWCFont,
+							line_x, *y, line);
+#else /* L10N */
 					SetElement(hw, E_TEXT, currentFont,
 							line_x, *y, line);
+#endif /* L10N */
 					/*
 					 * Save width here to avoid an 
 					 * XTextExtents call later.
@@ -2147,8 +2434,13 @@
 	}
 	if ((line != NULL)&&(line[0] != '\0'))
 	{
+#ifdef L10N
+		SetElement(hw, E_TEXT, currentFont, currentWCFont,
+				line_x, *y, line);
+#else /* L10N */
 		SetElement(hw, E_TEXT, currentFont,
 				line_x, *y, line);
+#endif /* L10N */
 		/*
 		 * Save width here to avoid an 
 		 * XTextExtents call later.
@@ -2161,6 +2453,33 @@
 	}
 }
 
+#ifdef L10N
+KinsokuCheck(s, type, len)
+	char *s;
+	int type, *len;
+{
+	char *p = kinsoku_chars(type);
+	int flag = 0;
+
+	for (; p != NULL && *p != '\0'; p++) {
+		if (*p & 0x80) {
+			if (*p == *s && *(p+1) == *(s+1)) {
+				*len = 2;
+				flag = 1;
+				break;
+			}
+			p++;
+		} else {
+			if (*p == *s) {
+				*len = 1;
+				flag = 1;
+				break;
+			}
+		}
+	}
+	return flag;
+}
+#endif /* L10N */
 
 /*
  * Format and place a piece of text. Add an element record for it.
@@ -2187,7 +2506,14 @@
         XCharStruct all;
 	char *line;
 	int line_x;
-
+#ifdef L10N
+	int dbflag,dbtchar;
+#endif /* L10N */
+
+#ifdef L10N
+	dbflag = 0;
+	dbtchar = '\0';
+#endif /* L10N */
 	text = mptr->text;
 
 	line_x = *x;
@@ -2217,6 +2543,20 @@
 		while (((int)((unsigned char)*end) > 127)||
 			((!isspace(*end))&&(*end != '\0')))
 		{
+#ifdef L10N
+			int len;
+			while((hw->html.charset_info == CS_JIS) &&
+			      KinsokuCheck(end, 1, &len))
+				end += len;
+			if (WCfoldable(hw, end))
+			{
+				end += 2;
+				while((hw->html.charset_info == CS_JIS) &&
+				      KinsokuCheck(end, 0, &len))
+					end += len;
+				break;
+			}
+#endif /* L10N */
 			end++;
 		}
 
@@ -2258,7 +2598,14 @@
 			}
 			ptr = CompWord;
 
+#ifdef L10N
+                        if ((NeedSpace > 0)&&(stripped_space) &&
+                            !(dbflag && WCfoldable(hw, start) &&
+			    (ignore_bj(1) || dbtchar != '\n') &&
+			    (ignore_bj(0) || dbtchar == '\n')))
+#else /* L10N */
 			if ((NeedSpace > 0)&&(stripped_space))
+#endif /* L10N */
 			{
 				if (NeedSpace == 2)
 				{
@@ -2295,8 +2642,17 @@
 			double_space = 0;
 #endif /* DOUBLE_SPACE_AFTER_PUNCT */
 
+#ifdef L10N
+			if (currentWCFont == NULL) {
+#endif /* L10N */
 			XTextExtents(currentFont, ptr, strlen(ptr), &dir,
 				&ascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, currentFont, currentWCFont,
+				ptr, strlen(ptr), &dir, &ascent, &descent, &all);
+			}
+#endif /* L10N */
 
 			/*
 			 * Horrible hack for punctuation following
@@ -2331,7 +2687,12 @@
 				nobreak = 1;
 			}
 
+#ifndef NETSCAPE_EXT
 			if (((*x + all.width + MarginW) <= width)||(nobreak))
+#else /* NETSCAPE_EXT */
+			if (((*x + all.width + MarginW) <= width)||(nobreak)||
+			    (Nobreak))
+#endif /* NETSCAPE_EXT */
 			{
 				char *tptr;
 				int tlen;
@@ -2367,6 +2728,9 @@
 				line = CompLine;
 
 				strcat(line, ptr);
+#ifdef L10N
+				dbflag = (ptr[strlen(ptr)-1] & 0x80);
+#endif /* L10N */
 			}
 			else
 			{
@@ -2375,8 +2739,13 @@
 
 				if ((line != NULL)&&(line[0] != '\0'))
 				{
+#ifdef L10N
 					SetElement(hw, E_TEXT, currentFont,
+						currentWCFont, line_x, *y, line);
+#else /* L10N */
+					SetElement(hw, E_TEXT, currentFont,
 							line_x, *y, line);
+#endif /* L10N */
 					/*
 					 * Save width here to avoid an 
 					 * XTextExtents call later.
@@ -2404,9 +2773,20 @@
 				{
 					tptr2 = ptr;
 				}
+#ifdef L10N
+				if (currentWCFont == NULL) {
+#endif /* L10N */
 				XTextExtents(currentFont, tptr2,
 					strlen(tptr2), &dir,
 					&ascent, &descent, &all);
+#ifdef L10N
+				} else {
+				XTextExtentsComposite(hw,
+					currentFont, currentWCFont,
+					tptr2, strlen(tptr2), &dir,
+					&ascent, &descent, &all);
+				}
+#endif /* L10N */
 
 				if (line == NULL)
 				{
@@ -2439,6 +2819,9 @@
 				line = CompLine;
 
 				strcat(line, tptr2);
+#ifdef L10N
+				dbflag = 0;
+#endif /* L10N */
 			}
 
 			/*
@@ -2457,6 +2840,9 @@
 
 			*x = *x + all.width;
 			*end = tchar;
+#ifdef L10N
+			dbtchar = tchar;
+#endif /* L10N */
 		}
 		/*
 		 * Else if there is trailing whitespace, add it now
@@ -2478,14 +2864,27 @@
 				strcpy(spc, " ");
 			}
 
+#ifdef L10N
+			if (currentWCFont == NULL) {
+#endif /* L10N */
 			XTextExtents(currentFont, spc, strlen(spc), &dir,
 				&ascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, currentFont, currentWCFont,
+				spc, strlen(spc), &dir, &ascent, &descent, &all);
+			}
+#endif /* L10N */
 
 			/*
 			 * Sigh, adding this one little space might force a
 			 * line break.
 			 */
+#ifdef NETSCAPE_EXT
+			if (((*x + all.width + MarginW) <= width)||(Nobreak))
+#else /* NETSCAPE_EXT */
 			if ((*x + all.width + MarginW) <= width)
+#endif /* NETSCAPE_EXT */
 			{
 				if (line == NULL)
 				{
@@ -2528,8 +2927,14 @@
 			{
 				if ((line != NULL)&&(line[0] != '\0'))
 				{
+#ifdef L10N
+					SetElement(hw, E_TEXT, currentFont,
+						currentWCFont,
+						line_x, *y, line);
+#else /* L10N */
 					SetElement(hw, E_TEXT, currentFont,
 							line_x, *y, line);
+#endif /* L10N */
 					/*
 					 * Save width here to avoid an 
 					 * XTextExtents call later.
@@ -2556,8 +2961,13 @@
 	}
 	if ((line != NULL)&&(line[0] != '\0'))
 	{
+#ifdef L10N
+		SetElement(hw, E_TEXT, currentFont, currentWCFont,
+			line_x, *y, line);
+#else /* L10N */
 		SetElement(hw, E_TEXT, currentFont,
 				line_x, *y, line);
+#endif /* L10N */
 		/*
 		 * Save width here to avoid an 
 		 * XTextExtents call later.
@@ -2590,7 +3000,11 @@
 	extra = 10;
 
 	LineFeed(hw, x, y); 
+#ifdef L10N
+	SetElement(hw, E_TABLE, currentFont, currentWCFont, *x, *y, mptr);
+#else /* L10N */
 	SetElement(hw, E_TABLE, currentFont, *x, *y, (char *) mptr); 
+#endif /* L10N */
 	if (!Current->table_data) {
 		/* no table */
 		return;
@@ -2639,11 +3053,25 @@
 			strcpy(tptr, " ");
 		}
 
+#ifdef L10N
+		if (currentWCFont == NULL) {
+#endif /* L10N */
 		XTextExtents(currentFont, tptr,
 			strlen(tptr), &dir, &ascent,
 			&descent, &all);
+#ifdef L10N
+		} else {
+		XTextExtentsComposite(hw, currentFont, currentWCFont, tptr,
+			strlen(tptr), &dir, &ascent, &descent, &all);
+		}
+#endif /* L10N */
+#ifdef L10N
+		SetElement(hw, E_TEXT, currentFont, currentWCFont,
+			*x, *y, tptr);
+#else /* L10N */
 		SetElement(hw, E_TEXT, currentFont,
 			*x, *y, tptr);
+#endif /* L10N */
 		/*
 		 * Save width here to avoid an 
 		 * XTextExtents call later.
@@ -2660,13 +3088,26 @@
 	}
 #endif /* SPACE_HACK */
 
+#ifdef NETSCAPE_EXT
+	tptr = NULL;
+#ifdef L10N
+	SetElement(hw, E_IMAGE, currentFont, currentWCFont, *x, *y, mptr->start);
+#else /* L10N */
+	SetElement(hw, E_IMAGE, currentFont, *x, *y, mptr->start);
+#endif /* L10N */
+#else /* NETSCAPE_EXT */
 	tptr = ParseMarkTag(mptr->start, MT_IMAGE, "SRC");
 	/**temp******/
 	if (!tptr) {
 		tptr = ParseMarkTag(mptr->start, MT_FIGURE, "SRC");
 		}
 	/***********/
+#ifdef L10N
+	SetElement(hw, E_IMAGE, currentFont, currentWCFont, *x, *y, tptr);
+#else /* L10N */
 	SetElement(hw, E_IMAGE, currentFont, *x, *y, tptr);
+#endif /* L10N */
+#endif /* NETSCAPE_EXT */
 
 	/*
 	 * Only after we have placed the image do we know its dimensions.
@@ -2681,7 +3122,11 @@
 			((Current->anchorHRef != NULL)&&
 			(!Current->pic_data->internal)))
 		{
+#ifdef NETSCAPE_EXT
+			extra = 2 * Current->image_border;
+#else /* NETSCAPE_EXT */
 			extra = 2 * IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 		}
 		else
 		{
@@ -2694,7 +3139,22 @@
 		{
 			Current = Current->prev;
 			LineFeed(hw, x, y);
+#ifdef NETSCAPE_EXT
+#ifdef L10N
+			SetElement(hw, E_IMAGE, currentFont, currentWCFont,
+				*x, *y, mptr->start);
+#else /* L10N */
+			SetElement(hw, E_IMAGE, currentFont,
+				*x, *y, mptr->start);
+#endif /* L10N */
+#else /* NETSCAPE_EXT */
+#ifdef L10N
+			SetElement(hw, E_IMAGE, currentFont, currentWCFont,
+				*x, *y, tptr);
+#else /* L10N */
 			SetElement(hw, E_IMAGE, currentFont, *x, *y, tptr);
+#endif /* L10N */
+#endif /* NETSCAPE_EXT */
 		}
 	}
 	/*
@@ -2803,7 +3263,11 @@
 			((Current->anchorHRef != NULL)&&
 			(!Current->pic_data->internal)))
 		{
+#ifdef NETSCAPE_EXT
+			extra = 2 * Current->image_border;
+#else /* NETSCAPE_EXT */
 			extra = 2 * IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 		}
 		else
 		{
@@ -2918,7 +3382,12 @@
 	int *x, *y;
 	unsigned int width;
 {
+#ifdef L10N
+	SetElement(hw, E_WIDGET, currentFont, currentWCFont,
+	*x, *y, mptr->start);
+#else /* L10N */
 	SetElement(hw, E_WIDGET, currentFont, *x, *y, mptr->start);
+#endif /* L10N */
 
 	/*
 	 * Only after we have placed the widget do we know its dimensions.
@@ -2929,7 +3398,11 @@
 	{
 		int extra;
 
+#ifdef NETSCAPE_EXT
+		extra = 2 * Current->image_border;
+#else /* NETSCAPE_EXT */
 		extra = 2 * IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 
 		if (((*x + Current->widget_data->width + extra + MarginW) >
 			width)&&
@@ -2939,8 +3412,13 @@
 			WidgetId--;
 			Current = Current->prev;
 			LineFeed(hw, x, y);
+#ifdef L10N
+			SetElement(hw, E_WIDGET, currentFont, currentWCFont,
+				*x, *y, mptr->start);
+#else /* L10N */
 			SetElement(hw, E_WIDGET, currentFont, *x, *y,
 				mptr->start);
+#endif /* L10N */
 		}
 	}
 
@@ -2954,7 +3432,11 @@
 		int baseline;
 		XFontStruct *fp;
 
+#ifdef NETSCAPE_EXT
+		extra = 2 * Current->image_border;
+#else /* NETSCAPE_EXT */
 		extra = 2 * IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 
 		/*
 		 * Find the font used in this widget.  Then find its baseline
@@ -3092,6 +3574,85 @@
 }
 
 
+#ifdef NETSCAPE_EXT
+/*
+ * Parse an body. Add an element record for it.
+ */
+void
+BodyParser(hw, mptr)
+	HTMLWidget hw;
+	struct mark_up *mptr;
+{
+	char *tptr;
+
+	/*
+	 * Set Foreground color
+	 */
+	tptr = ParseMarkTag(mptr->start, MT_DOC_BODY, "TEXT");
+	if (tptr != NULL)
+	{
+		Arg arg[1];
+		Fg = get_color(hw, tptr);
+#ifdef MOTIF
+		hw->manager.foreground = Fg;
+#else
+		hw->html.foreground = Fg;
+#endif /* MOTIF */
+		XtSetArg(arg[0], XmNforeground, Fg);
+		XtSetValues(hw->html.view, arg, 1);
+		free(tptr);
+	}
+
+	/*
+	 * Set Background color
+	 */
+	tptr = ParseMarkTag(mptr->start, MT_DOC_BODY, "BGCOLOR");
+	if (tptr != NULL)
+	{
+		Arg arg[1];
+		Bg = get_color(hw, tptr);
+		hw->core.background_pixel = Bg;
+		hw->html.anchor_bg = Bg;
+		hw->html.visitedAnchor_bg = Bg;
+		hw->html.activeAnchor_bg = Bg;
+		XtSetArg(arg[0], XmNbackground, Bg);
+		XtSetValues(hw->html.view, arg, 1);
+		free(tptr);
+	}
+
+	/*
+	 * Set Anchor color
+	 */
+	tptr = ParseMarkTag(mptr->start, MT_DOC_BODY, "LINK");
+	if (tptr != NULL)
+	{
+		hw->html.anchor_fg = get_color(hw, tptr);
+		free(tptr);
+	}
+
+	/*
+	 * Set visitedAnchor color
+	 */
+	tptr = ParseMarkTag(mptr->start, MT_DOC_BODY, "VLINK");
+	if (tptr != NULL)
+	{
+		hw->html.visitedAnchor_fg = get_color(hw, tptr);
+		free(tptr);
+	}
+
+	/*
+	 * Set activeAnchor color
+	 */
+	tptr = ParseMarkTag(mptr->start, MT_DOC_BODY, "ALINK");
+	if (tptr != NULL)
+	{
+		hw->html.activeAnchor_fg = get_color(hw, tptr);
+		free(tptr);
+	}
+}
+#endif /* NETSCAPE_EXT */
+
+
 static void
 PushFont(font)
 	XFontStruct *font;
@@ -3136,6 +3697,51 @@
 }
 
 
+#ifdef NETSCAPE_EXT
+static void
+PushColor(color)
+	unsigned long color;
+{
+	ColorRec *cptr;
+
+	cptr = (ColorRec *)malloc(sizeof(ColorRec));
+	if (cptr == NULL)
+	{
+		fprintf(stderr, "No memory to expand color stack!\n");
+		return;
+	}
+
+	cptr->color = color;
+	cptr->next = ColorStack;
+	ColorStack = cptr;
+}
+
+
+static unsigned long PopColor()
+{
+	unsigned long color;
+	ColorRec *cptr;
+
+	if (ColorStack->next != NULL)
+	{
+		cptr = ColorStack;
+		ColorStack = ColorStack->next;
+		color = cptr->color;
+		free((char *)cptr);
+	}
+	else
+	{
+#ifdef VERBOSE
+		fprintf(stderr, "Warning, popping empty color stack!\n");
+#endif
+		color = ColorStack->color;
+	}
+
+	return(color);
+}
+#endif /* NETSCAPE_EXT */
+
+
 /*
  * We've just terminated the current OPTION.
  * Put it in the proper place in the SelectInfo structure.
@@ -3265,6 +3871,49 @@
 	return(buf);
 }
 
+#ifdef L10N
+static void
+PushWCFont(WCfont)
+	XFontStruct *WCfont;
+{
+	FontRec *fptr;
+
+	fptr = (FontRec *)malloc(sizeof(FontRec));
+	if (fptr == NULL)
+	{
+		fprintf(stderr, "No memory to expand font stack!\n");
+		return;
+	}
+
+	fptr->font = WCfont;
+	fptr->next = WCFontStack;
+	WCFontStack = fptr;
+}
+
+static XFontStruct *
+PopWCFont()
+{
+	XFontStruct *WCfont;
+	FontRec *fptr;
+
+	if (WCFontStack->next != NULL)
+	{
+	fptr = WCFontStack;
+		WCFontStack = WCFontStack->next;
+		WCfont = fptr->font;
+		free((char *)fptr);
+	}
+	else
+	{
+#ifdef VERBOSE
+		fprintf(stderr, "Warning, popping empty font stack!\n");
+#endif
+		WCfont = WCFontStack->font;
+	}
+
+	return(WCfont);
+}
+#endif /* L10N */
 
 /*
  * Make necessary changes to formatting, based on the type of the
@@ -3280,11 +3929,17 @@
 {
 	struct mark_up *mark;
 	XFontStruct *font;
+#ifdef L10N
+	XFontStruct *WCfont;
+#endif /* L10N */
 	int type, width;
 
 	mark = *mptr;
 	type = mark->type;
 	font = NULL;
+#ifdef L10N
+	WCfont = NULL;
+#endif /* L10N */
 
 	/* If we are not in a tag that belongs in the HEAD, end the HEAD
 	   section  - amb */
@@ -3399,11 +4054,18 @@
 			if (mark->is_end)
 			{
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+#endif /* L10N */
 			}
 			else
 			{
 				PushFont(currentFont);
 				font = hw->html.fixed_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.fixed_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_STRONG:
@@ -3411,6 +4073,9 @@
 			if (mark->is_end)
 			{
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+#endif /* L10N */
 			}
 			else
 			{
@@ -3423,6 +4088,17 @@
 					font = hw->html.plainbold_font;
 				else
 					font = hw->html.bold_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				if (currentWCFont == hw->html.fixed_WCfont ||
+				    currentWCFont == hw->html.fixeditalic_WCfont)
+					WCfont = hw->html.fixedbold_WCfont;
+				else if (currentWCFont == hw->html.plain_WCfont ||
+				    currentWCFont == hw->html.plainitalic_WCfont)
+					WCfont = hw->html.plainbold_WCfont;
+				else
+					WCfont = hw->html.bold_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_EMPHASIZED:
@@ -3432,6 +4108,9 @@
 			if (mark->is_end)
 			{
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+#endif /* L10N */
 			}
 			else
 			{
@@ -3444,6 +4123,17 @@
 					font = hw->html.plainitalic_font;
 				else
 					font = hw->html.italic_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				if (currentWCFont == hw->html.fixed_WCfont ||
+				    currentWCFont == hw->html.fixedbold_WCfont)
+					WCfont = hw->html.fixeditalic_WCfont;
+				else if (currentWCFont == hw->html.plain_WCfont ||
+				    currentWCFont == hw->html.plainbold_WCfont)
+					WCfont = hw->html.plainitalic_WCfont;
+				else
+					WCfont = hw->html.italic_WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -3467,7 +4157,14 @@
                         {
                                 Superscript--;
                                 if ((Superscript==0) && (Subscript==0))
+#ifdef L10N
+				{
+#endif /* L10N */
                                   font = PopFont();
+#ifdef L10N
+				  WCfont = PopWCFont();
+				}
+#endif /* L10N */
                         }
                         else
                         {
@@ -3477,6 +4174,11 @@
                                     nonScriptFont=currentFont;
                                     PushFont(currentFont);
                                     font = hw->html.supsub_font;
+#ifdef L10N
+				    nonScriptWCFont=currentWCFont;
+				    PushWCFont(currentWCFont);
+				    WCfont = hw->html.supsub_WCfont;
+#endif /* L10N */
                                   }
                         }
                         break;
@@ -3485,7 +4187,14 @@
                         {
                                 Subscript--;
                                 if ((Subscript==0) && (Superscript==0))
+#ifdef L10N
+				{
+#endif /* L10N */
                                   font = PopFont();
+#ifdef L10N
+				  WCfont = PopWCFont();
+				}
+#endif /* L10N */
                         }
                         else
                         {
@@ -3495,6 +4204,11 @@
                                     nonScriptFont=currentFont;
                                     PushFont(currentFont);
                                     font = hw->html.supsub_font;
+#ifdef L10N
+				    nonScriptWCFont=currentWCFont;
+				    PushWCFont(currentWCFont);
+				    WCfont = hw->html.supsub_WCfont;
+#endif /* L10N */
                                   }
                         }
                         break;
@@ -3520,6 +4234,13 @@
 			{
 			        InDocHead = 0;   /* end <head> section */
 				Ignore = 0;
+#ifdef NETSCAPE_EXT
+				if (InDocBody == 0) {
+					InDocBody = 1;
+					if (use_color == True)
+						BodyParser(hw, *mptr);
+				}
+#endif /* NETSCAPE_EXT */
 			}
 			break;
 	      case M_UNDERLINED:
@@ -3543,95 +4264,335 @@
 			if (mark->is_end)
 			{
 				font = PopFont();
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_1, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header1_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header1_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_HEADER_2:
 			ConditionalLineFeed(hw, x, y, 1);
 			if (mark->is_end)
 			{
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_2, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header2_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header2_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_HEADER_3:
 			ConditionalLineFeed(hw, x, y, 1);
 			if (mark->is_end)
 			{
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_3, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header3_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header3_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_HEADER_4:
 			ConditionalLineFeed(hw, x, y, 1);
 			if (mark->is_end)
 			{
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_4, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header4_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header4_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_HEADER_5:
 			ConditionalLineFeed(hw, x, y, 1);
 			if (mark->is_end)
 			{
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_5, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header5_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header5_WCfont;
+#endif /* L10N */
 			}
 			break;
 		case M_HEADER_6:
 			ConditionalLineFeed(hw, x, y, 1);
 			if (mark->is_end)
 			{
+#ifdef HTML3
+				Alignment = defaultAlign;
+#endif /* HTML3 */
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
 			{
+#ifdef HTML3
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_HEADER_6, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+#endif /* HTML3 */
 				ConditionalLineFeed(hw, x, y, 2);
 				PushFont(currentFont);
 				font = hw->html.header6_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.header6_WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -3744,6 +4705,38 @@
 		 */
 		case M_PARAGRAPH:
 			ConditionalLineFeed(hw, x, y, 1);
+#ifdef HTML3
+			if (mark->is_end)
+			{
+				Alignment = defaultAlign;
+			}
+			else
+			{
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_PARAGRAPH, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else
+				  {
+				    Alignment = defaultAlign;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+			}
+#endif /* HTML3 */
 			ConditionalLineFeed(hw, x, y, 2);
 			break;
 		/*
@@ -4083,11 +5076,18 @@
 			if (mark->is_end)
 			{
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+#endif /* L10N */
 			}
 			else
 			{
 				PushFont(currentFont);
 				font = hw->html.address_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.address_WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -4164,8 +5164,16 @@
 				}
 				ConditionalLineFeed(hw, x, y, 1);
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
@@ -4176,6 +5184,10 @@
 				PF_LF_State = 0;
 				PushFont(currentFont);
 				font = hw->html.plain_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.plain_WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -4201,8 +5213,16 @@
 				}
 				ConditionalLineFeed(hw, x, y, 1);
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10n */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
@@ -4213,6 +5233,10 @@
 				PF_LF_State = 0;
 				PushFont(currentFont);
 				font = hw->html.listing_font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.listing_WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -4226,6 +5250,10 @@
 			PF_LF_State = 0;
 			PushFont(currentFont);
 			font = hw->html.plain_font;
+#ifdef L10N
+			PushWCFont(currentWCFont);
+			WCfont = hw->html.plain_WCfont;
+#endif /* L10N */
 			break;
 		/*
 		 * Numbered lists, Unnumbered lists, Menus.
@@ -4478,10 +5506,22 @@
 				{
 					hw->html.font = saveFont;
 					saveFont = NULL;
+#ifdef L10N
+					hw->html.WCfont = saveWCFont;
+					saveWCFont = NULL;
+#endif /* L10N */
 				}
 				font = PopFont();
+#ifdef L10N
+				WCfont = PopWCFont();
+				NewFont(font, WCfont);
+#else /* L10N */
 				NewFont(font);
+#endif /* L10N */
 				currentFont = font;
+#ifdef L10N
+				currentWCFont = WCfont;
+#endif /* L10N */
 				ConditionalLineFeed(hw, x, y, 2);
 			}
 			else
@@ -4494,9 +5534,17 @@
 				{
 					saveFont = hw->html.font;
 					hw->html.font = hw->html.plain_font;
+#ifdef L10N
+					saveWCFont = hw->html.WCfont;
+					hw->html.WCfont = hw->html.plain_WCfont;
+#endif /* L10N */
 				}
 				PushFont(currentFont);
 				font = hw->html.font;
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.WCfont;
+#endif /* L10N */
 			}
 			break;
 		/*
@@ -4615,17 +5663,215 @@
 			break;
 		case M_LINEBREAK:
 			LineFeed(hw, x, y);
+#ifdef HTML3
+			{
+				char *tptr;
+
+				tptr = ParseMarkTag(mark->start,
+						    MT_LINEBREAK, "ALIGN");
+				if (caseless_equal(tptr, "right"))
+				  {
+				    Alignment = ALIGN_RIGHT;
+				  }
+				else if (caseless_equal(tptr, "center"))
+				  {
+				    Alignment = ALIGN_CENTER;
+				  }
+				else if (caseless_equal(tptr, "left"))
+				  {
+				    Alignment = ALIGN_LEFT;
+				  }
+				/*
+				 * Clean up parsed ALIGN string
+				 */
+				if (tptr != NULL)
+				  {
+				    free(tptr);
+				  }
+			}
+#endif /* HTML3 */
 			break;
 		case M_TABLE:
+#ifdef DISABLE_TABLE
+			if (hw->html.disable_table == False)
+#endif /* DISABLE_TABLE */
 			TablePlace(hw, mptr, x, y, Width);
 			break;
+#ifdef NETSCAPE_EXT
+#ifdef HTML3
+		case M_CENTER:
+			ConditionalLineFeed(hw, x, y, 1);
+			if (mark->is_end)
+			{
+				defaultAlign = ALIGN_LEFT;
+				Alignment = ALIGN_LEFT;
+			}
+			else
+			{
+				defaultAlign = ALIGN_CENTER;
+				Alignment = ALIGN_CENTER;
+			}
+			ConditionalLineFeed(hw, x, y, 2);
+			break;
+#endif /* HTML3 */
+		case M_NOBR:
+			if (mark->is_end)
+			{
+				Nobreak = 0;
+			}
+			else
+			{
+				Nobreak = 1;
+			}
+			break;
+	      case M_BLINK:
+			if (mark->is_end)
+			{
+			    if (Blink > 0) {
+				if (--Blink == 0) {
+				    Arg arg[2];
+#ifdef MOTIF
+				    SWAPGROUND(hw->manager.foreground, hw->core.background_pixel);
+				    Fg = hw->manager.foreground;
+#else
+				    SWAPGROUND(hw->html.foreground, hw->core.background_pixel);
+				    Fg = hw->html.foreground;
+#endif /* MOTIF */
+				    Bg = hw->core.background_pixel;
+				    SWAPGROUND(hw->html.anchor_fg, hw->html.anchor_bg);
+				    SWAPGROUND(hw->html.visitedAnchor_fg, hw->html.visitedAnchor_bg);
+
+				    SWAPGROUND(hw->html.activeAnchor_fg, hw->html.activeAnchor_bg);
+				    XtSetArg(arg[0], XmNforeground, Fg);
+				    XtSetArg(arg[1], XmNbackground, Bg);
+				    XtSetValues(hw->html.view, arg, 2);
+				}
+			    }
+			}
+			else
+			{
+			    if (++Blink == 1) {
+				    Arg arg[2];
+#ifdef MOTIF
+				    SWAPGROUND(hw->manager.foreground, hw->core.background_pixel);
+				    Fg = hw->manager.foreground;
+#else
+				    SWAPGROUND(hw->html.foreground, hw->core.background_pixel);
+				    Fg = hw->html.foreground;
+#endif /* MOTIF */
+				    Bg = hw->core.background_pixel;
+				    SWAPGROUND(hw->html.anchor_fg, hw->html.anchor_bg);
+				    SWAPGROUND(hw->html.visitedAnchor_fg, hw->html.visitedAnchor_bg);
+
+				    SWAPGROUND(hw->html.activeAnchor_fg, hw->html.activeAnchor_bg);
+				    XtSetArg(arg[0], XmNforeground, Fg);
+				    XtSetArg(arg[1], XmNbackground, Bg);
+				    XtSetValues(hw->html.view, arg, 2);
+			    }
+			}
+			break;
+	      case M_FONT:
+			if (mark->is_end)
+			{
+			    font = PopFont();
+#ifdef L10N
+			    WCfont = PopWCFont();
+			    NewFont(font, WCfont);
+#else /* L10N */
+			    NewFont(font);
+#endif /* L10N */
+			    currentFont = font;
+#ifdef L10N
+			    currentWCFont = WCfont;
+#endif /* L10N */
+			    if (use_color == True) {
+				Arg arg[1];
+#ifdef MOTIF
+				hw->manager.foreground = Fg = PopColor();
+#else
+				hw->html.foreground = Fg = PopColor();
+#endif /* MOTIF */
+				XtSetArg(arg[0], XmNforeground, Fg);
+				XtSetValues(hw->html.view, arg, 1);
+			    }
+			}
+			else
+			{
+			    char *tptr;
+			    if (use_color == True) {
+#ifdef MOTIF
+				PushColor(hw->manager.foreground);
+#else
+				PushColor(hw->html.foreground);
+#endif /* MOTIF */
+				tptr = ParseMarkTag((*mptr)->start, MT_FONT, "COLOR");
+				if (tptr != NULL) {
+					Arg arg[1];
+					Fg = get_color(hw, tptr);
+#ifdef MOTIF
+					hw->manager.foreground = Fg;
+#else
+					hw->html.foreground = Fg;
+#endif /* MOTIF */
+					XtSetArg(arg[0], XmNforeground, Fg);
+					XtSetValues(hw->html.view, arg, 1);
+					free(tptr);
+				}
+			    }
+			    tptr = ParseMarkTag((*mptr)->start, MT_FONT, "SIZE");
+			    if (tptr != NULL) {
+				if (tptr[0] == '+') {
+				    CurrentFontSize += atoi(&tptr[1]);
+				    if (CurrentFontSize > 7)
+					CurrentFontSize = 7;
+				}
+				else if (tptr[0] == '-') {
+				    CurrentFontSize -= atoi(&tptr[1]);
+				    if (CurrentFontSize < 1)
+					CurrentFontSize = 1;
+				}
+				else {
+				    CurrentFontSize = atoi(tptr);
+				    if (CurrentFontSize == 0)
+					CurrentFontSize = DEFALUT_FONTSIZE;
+				}
+				PushFont(currentFont);
+				font = hw->html.sized_font[CurrentFontSize - 1];
+#ifdef L10N
+				PushWCFont(currentWCFont);
+				WCfont = hw->html.sized_WCfont[CurrentFontSize - 1];
+#endif /* L10N */
+				free(tptr);
+			    }
+			}
+			break;
+	      case M_BASEFONT:
+			if (!mark->is_end)
+			{
+			    char *tptr;
+			    tptr = ParseMarkTag((*mptr)->start, MT_BASEFONT, "SIZE");
+			    if (tptr != NULL) {
+				CurrentFontSize = atoi(tptr);
+				if (CurrentFontSize == 0)
+					CurrentFontSize = DEFALUT_FONTSIZE;
+				free(tptr);
+			    }
+			}
+#endif /* NETSCAPE_EXT */
 		default:
 			break;
 	}
 	if ((font != NULL)&&(font != currentFont))
 	{
+#ifdef L10N
+		NewFont(font, WCfont);
+#else /* L10N */
 		NewFont(font);
+#endif /* L10N */
 		currentFont = font;
+#ifdef L10N
+		currentWCFont = WCfont;
+#endif /* L10N */
         }
 
 } /* TriggerMarkChanges() */
@@ -4675,6 +5921,60 @@
 	}
 }
 
+#ifdef HTML3
+void
+LineAlignmentAdjust(hw, max_line, width, margin)
+	HTMLWidget hw;
+	int max_line, width, margin;
+{
+	struct ele_rec *eptr;
+	int line, alignment;
+	int offset, line_width;
+	int start, end;
+
+	/*
+	 * Item list for this line
+	 */
+	for(line = 0; line < max_line && hw->html.line_array[line] != NULL;
+	    line++)
+	{
+		eptr = hw->html.line_array[line];
+		start = eptr->x;
+		alignment = eptr->Halignment;
+		while ((eptr != NULL)&&(eptr->line_number == (line + 1)))
+		{
+			end = eptr->x + eptr->width;
+			eptr = eptr->next;
+		}
+		line_width = end - start + 1;
+		if(width >= line_width + (margin * 2))
+		{
+			switch(alignment)
+			{
+				case ALIGN_CENTER:
+					offset =
+					  (width - line_width) / 2 - margin;
+					break;
+				case ALIGN_RIGHT:
+					offset =
+					  width - line_width - (margin * 2);
+					break;
+				case ALIGN_LEFT:
+				default:
+					offset = 0;
+					break;
+			}
+			eptr = hw->html.line_array[line];
+			while ((eptr != NULL)&&
+			       (eptr->line_number == (line + 1)))
+			{
+				eptr->x += offset;
+				eptr = eptr->next;
+			}
+		}
+	}
+}
+#endif /* HTML3 */
 
 /*
  * Called by the widget to format all the objects in the
@@ -4711,11 +6011,32 @@
  * Without motif we use our own foreground resource instead of
  * using the manager's
  */
+#ifdef NETSCAPE_EXT
+	if (SetDefaultColor == True) { /* Initialize Colors */
+		Arg arg[2];
+#ifdef MOTIF
+		Fg = hw->manager.foreground = DefaultFg;
+#else
+		Fg = hw->html.foreground = DefaultFg;
+#endif /* MOTIF */
+		Bg = hw->core.background_pixel = DefaultBg;
+		XtSetArg(arg[0], XmNforeground, Fg);
+		XtSetArg(arg[1], XmNbackground, Bg);
+		XtSetValues(hw->html.view, arg, 2);
+		hw->html.activeAnchor_fg = DefaultActiveAnchorFg;
+		hw->html.activeAnchor_bg = DefaultActiveAnchorBg;
+		hw->html.anchor_fg = DefaultAnchorFg;
+		hw->html.anchor_bg = DefaultBg;
+		hw->html.visitedAnchor_fg = DefaultVisitedAnchorFg;
+		hw->html.visitedAnchor_bg = DefaultBg;
+	} /* Initialize Colors */
+#else /* NETSCAPE_EXT */
 #ifdef MOTIF
 	Fg = hw->manager.foreground;
 #else
 	Fg = hw->html.foreground;
 #endif /* MOTIF */
+#endif /* NETSCAPE_EXT */
 	Bg = hw->core.background_pixel;
 	Underlines = 0;
 	DashedUnderlines = False;
@@ -4747,7 +6068,37 @@
         Superscript = 0; /* amb */
         Subscript = 0;
 	InDocHead = 0;
+#ifdef NETSCAPE_EXT
+	InDocBody = 0;
+#endif /* NETSCAPE_EXT */
 	InUnderlined = 0;
+#ifdef HTML3
+	defaultAlign = ALIGN_LEFT;
+	Alignment = ALIGN_LEFT;
+#endif /* HTML3 */
+#ifdef NETSCAPE_EXT
+	InDocBody = 0;
+	Nobreak = 0;
+	Blink = 0;
+	use_color = mo_use_color() == 1 ? True : False;
+	CurrentFontSize = DEFALUT_FONTSIZE;
+	hw->html.sized_font[0] = hw->html.header6_font;
+	hw->html.sized_font[1] = hw->html.header5_font;
+	hw->html.sized_font[2] = hw->html.header4_font;
+	hw->html.sized_font[3] = hw->html.header3_font;
+	hw->html.sized_font[4] = hw->html.header2_font;
+	hw->html.sized_font[5] = hw->html.header1_font;
+	hw->html.sized_font[6] = hw->html.header1_font;
+#ifdef L10N
+	hw->html.sized_WCfont[0] = hw->html.header6_WCfont;
+	hw->html.sized_WCfont[1] = hw->html.header5_WCfont;
+	hw->html.sized_WCfont[2] = hw->html.header4_WCfont;
+	hw->html.sized_WCfont[3] = hw->html.header3_WCfont;
+	hw->html.sized_WCfont[4] = hw->html.header2_WCfont;
+	hw->html.sized_WCfont[5] = hw->html.header1_WCfont;
+	hw->html.sized_WCfont[6] = hw->html.header1_WCfont;
+#endif /* L10N */
+#endif /* NETSCAPE_EXT */
 
 	/*
 	 * Free the old title, if there is one.
@@ -4778,11 +6129,25 @@
 	/*
 	 * Set up a starting font, and starting x, y, position
 	 */
+#ifdef L10N
+	NewFont(hw->html.font, hw->html.WCfont);
+#else /* L10N */
 	NewFont(hw->html.font);
+#endif /* L10N */
 	currentFont = hw->html.font;
 	saveFont = NULL;
 	FontStack = &FontBase;
 	FontStack->font = hw->html.font;
+#ifdef L10N
+	currentWCFont = hw->html.WCfont;
+	saveWCFont = NULL;
+	WCFontStack = &WCFontBase;
+	WCFontStack->font = hw->html.WCfont;
+#endif /* L10N */
+#ifdef NETSCAPE_EXT
+	ColorStack = &ColorBase;
+	ColorStack->color = Fg;
+#endif /* NETSCAPE_EXT */
 
 	x = TextIndent;
 	y = hw->html.margin_height;
@@ -4805,9 +6170,20 @@
 		{
 			hw->html.font = saveFont;
 			saveFont = NULL;
-		}
+#ifdef L10N
+			hw->html.WCfont = saveWCFont;
+			saveWCFont = NULL;
+#endif /* L10N */
+		}
+#ifdef L10N
+		NewFont(hw->html.font, hw->html.WCfont);
+#else /* L10N */
 		NewFont(hw->html.font);
+#endif /* L10N */
 		currentFont = hw->html.font;
+#ifdef L10N
+		currentWCFont = hw->html.WCfont;
+#endif /* L10N */
 
 		ConditionalLineFeed(hw, &x, &y, 1);
 
@@ -4828,9 +6204,20 @@
 		{
 			hw->html.font = saveFont;
 			saveFont = NULL;
-		}
+#ifdef L10N
+			hw->html.WCfont = saveWCFont;
+			saveWCFont = NULL;
+#endif /* L10N */
+		}
+#ifdef L10N
+		NewFont(hw->html.font, hw->html.WCfont);
+#else /* L10N */
 		NewFont(hw->html.font);
+#endif /* L10N */
 		currentFont = hw->html.font;
+#ifdef L10N
+		currentWCFont = hw->html.WCfont;
+#endif /* L10N */
 
 		Preformat = 0;
 		PF_LF_State = 0;
@@ -4858,6 +6245,10 @@
 	{
 		hw->html.font = saveFont;
 		saveFont = NULL;
+#ifdef L10N
+		hw->html.WCfont = saveWCFont;
+		saveWCFont = NULL;
+#endif /* L10N */
 	}
 
 	/*
@@ -4892,6 +6283,9 @@
 	hw->html.line_array = MakeLineList(hw->html.formatted_elements,
 						LineNumber);
 
+#ifdef HTML3
+	LineAlignmentAdjust(hw, LineNumber, width, MarginW);
+#endif /* HTML3 */
 	/*
 	 * If the passed in MaxWidth was wrong, correct it.
 	 */
@@ -5007,7 +6401,16 @@
 	int partial;
 
 	XSetFont(XtDisplay(hw), hw->html.drawGC, eptr->font->fid);
+#ifdef L10N
+	if (eptr->WCfont != NULL)
+		XSetFont(XtDisplay(hw), hw->html.drawWCGC, eptr->WCfont->fid);
+#endif /* L10N */
 	ascent = eptr->font->max_bounds.ascent;
+#ifdef L10N
+	if ((eptr->WCfont != NULL) &&
+	    (eptr->WCfont->max_bounds.ascent > ascent))
+		ascent = eptr->WCfont->max_bounds.ascent;
+#endif /* L10N */
 	width = -1;
 	partial = 0;
 
@@ -5023,12 +6426,32 @@
 		}
 		else
 		{
+#ifdef L10N
+			if (eptr->WCfont == NULL) {
+#endif /* L10N */
 			XTextExtents(eptr->font, (char *)eptr->edata,
 				start_pos, &dir, &nascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, eptr->font, eptr->WCfont,
+				(char *)eptr->edata, start_pos,
+				&dir, &nascent, &descent, &all);
+			}
+#endif /* L10N */
 		}
 #else
+#ifdef L10N
+		if (eptr->WCfont == NULL) {
+#endif /* L10N */
 		XTextExtents(eptr->font, (char *)eptr->edata,
 			start_pos, &dir, &nascent, &descent, &all);
+#ifdef L10N
+		} else {
+		XTextExtentsComposite(hw, eptr->font, eptr->WCfont,
+			(char *)eptr->edata, start_pos,
+			&dir, &nascent, &descent, &all);
+		}
+#endif /* L10N */
 #endif /* ASSUME_FIXED_WIDTH_PRE */
 		x = eptr->x + all.width;
 		tdata = (char *)(eptr->edata + start_pos);
@@ -5059,7 +6482,9 @@
 	{
 		int dir, nascent, descent;
 		XCharStruct all;
+#ifndef L10N
 		int height;
+#endif /* L10N */
 
 		/*
 		 * May be safe to used the cached full width of this
@@ -5078,17 +6503,43 @@
 			}
 			else
 			{
+#ifdef L10N
+				if (eptr->WCfont == NULL) {
+#endif /* L10N */
 				XTextExtents(eptr->font, (char *)tdata,
 					tlen, &dir, &nascent, &descent, &all);
+#ifdef L10N
+				} else {
+				XTextExtentsComposite(hw,
+					eptr->font, eptr->WCfont,
+					(char *)tdata, tlen,
+					&dir, &nascent, &descent, &all);
+				}
+#endif /* L10N */
 			}
 #else
+#ifdef L10N
+			if (eptr->WCfont == NULL) {
+#endif /* L10N */
 			XTextExtents(eptr->font, (char *)tdata,
 				tlen, &dir, &nascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, eptr->font, eptr->WCfont,
+				(char *)tdata, tlen,
+				&dir, &nascent, &descent, &all);
+			}
+#endif /* L10N */
 #endif /* ASSUME_FIXED_WIDTH_PRE */
 		}
 
 		XSetForeground(XtDisplay(hw), hw->html.drawGC, bg);
 
+#ifdef L10N
+		XFillRectangle(XtDisplay(hw->html.view),
+			XtWindow(hw->html.view), hw->html.drawGC, x, y,
+			(unsigned int)all.width, (unsigned int)eptr->line_height);
+#else /* L10N */
 		height = (eptr->font->max_bounds.ascent - eptr->font->ascent);
 		if (height > 0)
 		{
@@ -5107,17 +6558,32 @@
 					eptr->font->descent),
 				(unsigned int)all.width, (unsigned int)height);
 		}
+#endif /* L10N */
 		width = all.width;
 	}
 #endif /* NO_EXTRA_FILLS */
 
 	XSetForeground(XtDisplay(hw), hw->html.drawGC, fg);
 	XSetBackground(XtDisplay(hw), hw->html.drawGC, bg);
-
+#ifdef L10N
+	XSetForeground(XtDisplay(hw), hw->html.drawWCGC, fg);
+	XSetBackground(XtDisplay(hw), hw->html.drawWCGC, bg);
+#endif /* L10N */
+
+#ifdef L10N
+	if ((hw->html.charset_info & CS_MULTIBYTE) ||
+	    (hw->html.charset_info == CS_ISO_8859_8)) {
+	XDrawImageStringComposite(hw, eptr->font, eptr->WCfont,
+		x, y + ascent, (char *)tdata, tlen);
+	} else {
+#endif /* L10N */
 	XDrawImageString(XtDisplay(hw->html.view), XtWindow(hw->html.view),
 		hw->html.drawGC,
 		x, y + ascent,
 		(char *)tdata, tlen);
+#ifdef L10N
+	}
+#endif /* L10N */
 
 	if (eptr->underline_number)
 	{
@@ -5146,12 +6612,33 @@
 			}
 			else
 			{
+#ifdef L10N
+				if (eptr->WCfont == NULL) {
+#endif /* L10N */
 				XTextExtents(eptr->font, (char *)tdata,
 					tlen, &dir, &nascent, &descent,&all);
+#ifdef L10N
+				} else {
+				XTextExtentsComposite(hw,
+					eptr->font, eptr->WCfont,
+					(char *)tdata, tlen,
+					&dir, &nascent, &descent,&all);
+				}
+#endif /* L10N */
 			}
 #else
+#ifdef L10N
+			if (eptr->WCfont == NULL) {
+#endif /* L10N */
 			XTextExtents(eptr->font, (char *)tdata,
 				tlen, &dir, &nascent, &descent,&all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, eptr->font, eptr->WCfont,
+				(char *)tdata, tlen,
+				&dir, &nascent, &descent,&all);
+			}
+#endif /* L10N */
 #endif /* ASSUME_FIXED_WIDTH_PRE */
 			width = all.width;
 		}
@@ -5387,7 +6874,11 @@
 			((eptr->anchorHRef != NULL)&&
 			(!eptr->pic_data->internal)))
 		{
+#ifdef NETSCAPE_EXT
+			extra = eptr->image_border;
+#else /* NETSCAPE_EXT */
 			extra = IMAGE_BORDER;
+#endif /* NETSCAPE_EXT */
 		}
 		else
 		{
@@ -5622,6 +7113,9 @@
 	struct ele_rec *rptr;
 	int i, start, end, line, guess;
 	int tx1, tx2, ty1, ty2;
+#ifdef L10N
+	int guessWC, ty2WC;
+#endif /* L10N */
 
 	x = x + hw->html.scroll_x;
 	y = y + hw->html.scroll_y;
@@ -5638,6 +7132,13 @@
 	 */
 	guess = y / (hw->html.font->max_bounds.ascent +
 		hw->html.font->max_bounds.descent);
+#ifdef L10N
+	if (hw->html.WCfont != NULL) {
+		guessWC = y / (hw->html.WCfont->max_bounds.ascent +
+			hw->html.WCfont->max_bounds.descent);
+		guess = (guessWC > guess) ? guessWC : guess;
+	}
+#endif /* L10N */
 	if (guess > (hw->html.line_count - 1))
 	{
 		guess = hw->html.line_count - 1;
@@ -5710,6 +7211,13 @@
 		ty2 = eptr->y + eptr->font->max_bounds.ascent +
 			eptr->font->max_bounds.descent;
 	}
+#ifdef L10N
+	if (eptr->WCfont != NULL) {
+		ty2WC = eptr->y + eptr->WCfont->max_bounds.ascent +
+			eptr->WCfont->max_bounds.descent;
+		ty2 = (ty2WC > ty2) ? ty2WC : ty2;
+	}
+#endif /* L10N */
 	line = eptr->line_number;
 	/*
 	 * Searches on this line should extend to the top of the
@@ -5763,6 +7271,14 @@
 				ty2 = eptr->y + eptr->font->max_bounds.ascent +
 					eptr->font->max_bounds.descent;
 			}
+#ifdef L10N
+			if (eptr->WCfont != NULL) {
+				ty2WC = eptr->y +
+					eptr->WCfont->max_bounds.ascent +
+					eptr->WCfont->max_bounds.descent;
+				ty2 = (ty2WC > ty2) ? ty2WC : ty2;
+			}
+#endif /* L10N */
 			line = eptr->line_number;
 			/*
 			 * Searches on this line should extend to the top of
@@ -5805,9 +7321,19 @@
 			XCharStruct all;
 
 			tx1 = eptr->x;
+#ifdef L10N
+			if (eptr->WCfont == NULL) {
+#endif /* L10N */
 			XTextExtents(eptr->font, (char *)eptr->edata,
 					eptr->edata_len - 1, &dir,
 					&ascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, eptr->font, eptr->WCfont,
+				(char *)eptr->edata, eptr->edata_len - 1,
+				&dir, &ascent, &descent, &all);
+			}
+#endif /* L10N */
 			tx2 = eptr->x + all.width;
 			if ((x >= tx1)&&(x <= tx2)&&(y >= ty1)&&(y <= ty2))
 			{
@@ -5874,8 +7400,18 @@
 		{
 			epos = rptr->edata_len - 2;
 		}
+#ifdef L10N
+		if (rptr->WCfont == NULL) {
+#endif /* L10N */
 		XTextExtents(rptr->font, (char *)rptr->edata,
 				(epos + 1), &dir, &ascent, &descent, &all);
+#ifdef L10N
+		} else {
+		XTextExtentsComposite(hw, rptr->font, rptr->WCfont,
+				(char *)rptr->edata, (epos + 1),
+				&dir, &ascent, &descent, &all);
+		}
+#endif /* L10N */
 		if (x > (int)(rptr->x + all.width))
 		{
 			epos = rptr->edata_len - 3;
@@ -5887,8 +7423,18 @@
 
 		while (epos >= 0)
 		{
+#ifdef L10N
+			if (rptr->WCfont == NULL) {
+#endif /* L10N */
 			XTextExtents(rptr->font, (char *)rptr->edata,
 				(epos + 1), &dir, &ascent, &descent, &all);
+#ifdef L10N
+			} else {
+			XTextExtentsComposite(hw, rptr->font, rptr->WCfont,
+				(char *)rptr->edata, (epos + 1),
+				&dir, &ascent, &descent, &all);
+			}
+#endif /* L10N */
 			if ((int)(rptr->x + all.width) <= x)
 			{
 				break;
@@ -5896,6 +7442,10 @@
 			epos--;
 		}
 		epos++;
+#ifdef L10N
+		/* epos always points the first byte of multibyte character */
+		chkWCbounds1(hw, (char *)rptr->edata, eptr->edata_len, &epos);
+#endif /* L10N */
 		*pos = epos;
 	}
 	return(rptr);
@@ -6062,7 +7612,7 @@
 		{
 			int i, spaces;
 			char *tptr;
-			char *tend, tchar;
+			char *tend = (char *)NULL, tchar = '\0';
 
 			if (eptr == start)
 			{
@@ -6363,7 +7913,7 @@
 		{
 			int i, spaces;
 			char *tptr;
-			char *tend, tchar;
+			char *tend = (char *)NULL, tchar = '\0';
 
 			if (eptr == start)
 			{
@@ -6636,3 +8186,364 @@
 	return(width);
 }
 
+#ifdef NETSCAPE_EXT
+static unsigned long          get_color(hw, color)
+	HTMLWidget hw;
+        char           *color;
+{
+	int	flag;
+	XColor	xc;
+	char	internal_color[128], *p;
+
+	if (color[0] != '#') {
+		internal_color[0] = '#';
+		internal_color[1] = '\0';
+	}
+	else
+		internal_color[0] = '\0';
+	strcat(internal_color, color);
+	for (p = &internal_color[1]; *p != '\0'; p++)
+		if (*p == 'o' || *p == 'O')
+			*p = '0';
+	flag = XParseColor(XtDisplay(hw),
+		DefaultColormapOfScreen(XtScreen(hw)), internal_color, &xc);
+	if (flag == 0) {
+#ifdef DEBUG
+		fprintf(stderr, "Color Allocation Error <%s>\n", color);
+#endif /* DEBUG */
+		return 0;
+	}
+	XAllocColor(XtDisplay(hw), DefaultColormapOfScreen(XtScreen(hw)), &xc);
+	return xc.pixel;
+}
+#endif /* NETSCAPE_EXT */
+
+#ifdef L10N
+
+#define IS_GR(c) ((0xa0 <= (c)) && ((c) <= 0xff))
+#define GR2GL(c) ((c) & 0x7f)
+#define ESC     0x1b
+
+XDrawImageStringComposite(hw, fs, WCfs, x, y, strings, nchars)
+    HTMLWidget hw;
+    XFontStruct *fs, *WCfs;
+    int x, y;
+    unsigned char *strings;
+    int nchars;
+{
+    if (!strings || !*strings || nchars <= 0) return(0);
+
+    XCompositeStringProc(hw->html.charset_info,
+	hw->html.bidirectionality,
+	XtDisplay(hw->html.view), XtWindow(hw->html.view),
+	hw->html.drawGC, hw->html.drawWCGC,
+	fs, WCfs, x, y, strings, nchars, True);
+}
+
+XTextExtentsComposite(hw, fs, WCfs, strings, nchars, direction_return,
+	font_ascent_return, font_descent_return, overall_return)
+    HTMLWidget hw;
+    XFontStruct *fs, *WCfs;
+    char *strings;
+    int nchars;
+    int *direction_return;
+    int *font_ascent_return, *font_descent_return;
+    XCharStruct *overall_return;
+{
+    if (!strings || !*strings || nchars <= 0) return(0);
+
+    if (hw->html.charset_info & CS_MULTIBYTE) {
+	overall_return->width =
+	    XCompositeStringProc(hw->html.charset_info,
+		hw->html.bidirectionality,
+		(Display *)0, (Drawable)None, (GC)None, (GC)None,
+		fs, WCfs, 0, 0, strings, nchars, False);
+    } else {
+	XTextExtents(fs, strings, nchars, direction_return,
+	    font_ascent_return, font_descent_return, overall_return);
+    }
+}
+
+XCompositeStringProc(charset, bidirectionality, dpy, d, gc, WCgc, fs, WCfs,
+	x, y, strings, nchars, drawing)
+    int charset;
+    int bidirectionality;
+    Display *dpy;
+    Drawable d;
+    GC gc, WCgc;
+    XFontStruct *fs, *WCfs;
+    int x, y;
+    unsigned char *strings;
+    int nchars;
+    int drawing;
+{
+    unsigned char *tail;
+    enum {GL, GR} stat;
+    int org_x;
+
+    tail = strings;
+    stat = GL;
+    org_x = x;
+
+    while (nchars > 0) {
+	if (IS_GR(*tail)) {
+	    if (stat == GL) {
+		if (drawing) {
+		    XDrawImageString(dpy, d, gc, x, y,
+			(char *)strings, (int)(tail-strings));
+		}
+		x += XTextWidth(fs, (char *)strings, (int)(tail-strings));
+		strings = tail;
+		stat = GR;
+	    }
+	    if (charset == CS_ISO_8859_8) {
+		tail++; nchars--;
+	    } else {
+		tail++; nchars--;
+		if (nchars > 0) {
+		    tail++; nchars--;
+		} else {
+		    break; /* data broken! */
+		}
+	    }
+	} else { /* ! IS_GR(*strings) */
+	    if (stat == GR) {
+		if (drawing) {
+		    if (charset == CS_ISO_8859_8) {
+			XDrawImageStringR2L(bidirectionality, dpy, d, gc, x, y,
+			    strings, (int)(tail-strings));
+		    } else {
+			XDrawImageStringWC(charset, dpy, d, WCgc, x, y,
+			    strings, (int)(tail-strings));
+		    }
+		}
+		if (charset == CS_ISO_8859_8) {
+		    x += XTextWidth(fs, (char *)strings, (int)(tail-strings));
+		} else {
+		    x += XTextWidthWC(charset, WCfs,
+			strings, (int)(tail-strings));
+		}
+		strings = tail;
+		stat = GL;
+	    }
+	    tail++; nchars--;
+	}
+    }
+
+    if ((int)(tail-strings) > 0) {
+	if (stat == GR) {
+	    if (drawing) {
+		if (charset == CS_ISO_8859_8) {
+		    XDrawImageStringR2L(bidirectionality, dpy, d, gc, x, y,
+			strings, (int)(tail-strings));
+		} else {
+		    XDrawImageStringWC(charset, dpy, d, WCgc, x, y,
+			strings, (int)(tail-strings));
+		}
+	    }
+	    if (charset == CS_ISO_8859_8) {
+		x += XTextWidth(fs, (char *)strings, (int)(tail-strings));
+	    } else {
+		x += XTextWidthWC(charset, WCfs, strings, (int)(tail-strings));
+	    }
+	} else {
+	    if (drawing) {
+		XDrawImageString(dpy, d, gc, x, y,
+		    (char *)strings, (int)(tail-strings));
+	    }
+	    x += XTextWidth(fs, (char *)strings, (int)(tail - strings));
+	}
+    }
+
+    return(x - org_x);
+}
+
+XDrawImageStringWC(charset, dpy, d, WCgc, x, y, strings, nchars)
+    int charset;
+    Display *dpy;
+    Drawable d;
+    GC WCgc;
+    int x, y;
+    unsigned char *strings;
+    int nchars;
+{
+    if ((currentWCFont != NULL) &&
+	(currentWCFont->max_char_or_byte2 >= 0x80)) { /* GR encoding font */
+	XDrawImageString16(dpy, d, WCgc, x, y, (XChar2b *)strings, nchars/2);
+    } else { /* GL encoding font */
+	int i;
+	unsigned char *head, *tail;
+	head = tail = (unsigned char *)malloc(nchars);
+	for (i=0; i<nchars; i++) *tail++ = GR2GL(*strings++);
+	XDrawImageString16(dpy, d, WCgc, x, y, (XChar2b *)head, nchars/2);
+	free((void *)head);
+    }
+}
+
+XTextWidthWC(charset, WCfs, strings, nchars)
+    int charset;
+    XFontStruct *WCfs;
+    unsigned char *strings;
+    int nchars;
+{
+    if ((WCfs != NULL) &&
+	(WCfs->max_char_or_byte2 >= 0x80)) { /* GR encoding font */
+	return(XTextWidth16(WCfs, (XChar2b *)strings, nchars/2));
+    } else { /* GL encoding font */
+	int i, width;
+	unsigned char *head, *tail;
+	head = tail = (unsigned char *)malloc(nchars);
+	for (i=0; i<nchars; i++) *tail++ = GR2GL(*strings++);
+	width = XTextWidth16(WCfs, (XChar2b *)head, nchars/2);
+	free((void *)head);
+	return(width);
+    }
+}
+
+XDrawImageStringR2L(bidirectionality, dpy, d, gc, x, y, strings, nchars)
+    int bidirectionality;
+    Display *dpy;
+    Drawable d;
+    GC gc;
+    int x, y;
+    unsigned char *strings;
+    int nchars;
+{
+    int i;
+    unsigned char *head, *tail;
+
+    if (bidirectionality == BIDIR_VISUAL) {
+	XDrawImageString(dpy, d, gc, x, y, (char *)strings, nchars);
+    } else /* if (bidirectionality == BIDIR_IMPLICIT) */ {
+	head = (unsigned char *)malloc(nchars);
+	tail = head + nchars - 1;
+	for (i=0; i<nchars; i++) *tail-- = *strings++;
+	XDrawImageString(dpy, d, gc, x, y, (char *)head, nchars);
+	free((void *)head);
+    }
+}
+
+/*
+ * If epos points the second byte of a multibyte character,
+ * change epos to point the first byte of it.
+ */
+chkWCbounds1(hw, text, length, epos)
+    HTMLWidget hw;
+    char *text;
+    int length;
+    int *epos;
+{
+    unsigned char *ptr = (unsigned char *)text;
+    int count = 0;
+
+    if (*epos < 0) return;
+    if (!(hw->html.charset_info & CS_MULTIBYTE)) return;
+
+    while (count < length) {
+	if (IS_GR(*ptr)) {
+	    if (*epos == count) {
+		break;
+	    } else if (*epos == count + 1) {
+		*epos = *epos - 1;
+		break;
+	    }
+	    ptr += 2; count += 2;
+	} else {
+	    ptr++; count++;
+	}
+    }
+}
+
+/*
+ * If epos points the first byte of a multibyte character,
+ * change epos to point the second byte of it.
+ */
+chkWCbounds2(hw, text, length, epos)
+    HTMLWidget hw;
+    char *text;
+    int length;
+    int *epos;
+{
+    unsigned char *ptr = (unsigned char *)text;
+    int count = 0;
+
+    if (*epos < 0) return;
+    if (!(hw->html.charset_info & CS_MULTIBYTE)) return;
+
+    while (count < length) {
+	if (IS_GR(*ptr)) {
+	    if (*epos == count) {
+		*epos = *epos + 1;
+		break;
+	    } else if (*epos == count + 1) {
+		break;
+	    }
+	    ptr += 2; count += 2;
+	} else {
+	    ptr++; count++;
+	}
+    }
+}
+
+#define PUTESCSEQ(charset, p) \
+	switch (charset) { \
+	case CS_ISO_8859_1: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'A'; break; \
+	case CS_ISO_8859_2: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'B'; break; \
+	case CS_ISO_8859_3: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'C'; break; \
+	case CS_ISO_8859_4: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'D'; break; \
+	case CS_ISO_8859_5: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'L'; break; \
+	case CS_ISO_8859_7: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'F'; break; \
+	case CS_ISO_8859_8: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'H'; break; \
+	case CS_ISO_8859_9: \
+		*p++ = ESC; *p++ = '-'; *p++ = 'M'; break; \
+	case CS_GB: \
+		*p++ = ESC; *p++ = '$'; *p++ = ')'; *p++ = 'A'; break; \
+	case CS_JIS: \
+		*p++ = ESC; *p++ = '$'; *p++ = ')'; *p++ = 'B'; break; \
+	case CS_KSC: \
+		*p++ = ESC; *p++ = '$'; *p++ = ')'; *p++ = 'C'; break; \
+	case CS_KOI8: \
+	case CS_Big5: \
+	case CS_HZ: \
+	default: \
+		/* Hum... */ break; \
+	}
+
+char *
+convWCtoCT(hw, text)
+    HTMLWidget hw;
+    char *text;
+{
+    unsigned char *wcptr;
+    char *ctptr, *ctext;
+    int initial_designation;
+
+    if (text == NULL) return((char *)text);
+
+    initial_designation = 0;
+    wcptr = (unsigned char *)text;
+    ctptr = ctext = (char *)malloc(strlen(text) * 5);
+    while (*wcptr) {
+	if (IS_GR(*wcptr)) {
+	    if (!initial_designation) {
+		PUTESCSEQ(hw->html.charset_info, ctptr);
+		initial_designation = 1;
+	    }
+	    *ctptr++ = *wcptr++;
+	} else {
+	    *ctptr++ = *wcptr++;
+	}
+    }
+    *ctptr = '\0';
+    free(text);
+    return(ctext);
+}
+
+#endif /* L10N */
--- libhtmlw/HTMLimages.c.orig	Wed Jan 11 09:03:32 1995
+++ libhtmlw/HTMLimages.c	Thu Sep 14 17:01:06 1995
@@ -282,12 +282,15 @@
 	XImage *newimage;
 	unsigned char *bit_data, *bitp, *datap;
 	Visual *theVisual;
-	int bmap_order;
-	unsigned long c;
 	int rshift, gshift, bshift;
+	unsigned int rmask, gmask, bmask, mask;
+	unsigned int rbits, gbits, bbits;
+	unsigned int *pxval;
+	XPixmapFormatValues *pmf, pmv;
 
 	switch(depth)
 	{
+	    case 4:
 	    case 6:
 	    case 8:
 		bit_data = (unsigned char *)malloc(width * height);
@@ -300,7 +303,6 @@
 		break;
 	    case 1:
 	    case 2:
-	    case 4:
 		if (BitmapBitOrder(dsp) == LSBFirst)
 		{
 			shiftstart = 0;
@@ -351,85 +353,59 @@
 			depth, ZPixmap, 0, (char *)bit_data,
 			(width + linepad), height, 8, bytesperline);
 		break;
-	    /*
-	     * WARNING:  This depth 16 code is donated code for 16 but
-	     * TrueColor displays.  I have no access to such displays, so I
-	     * can't really test it.
-	     * Donated by - andrew@icarus.demon.co.uk
-	     */
-	    case 16:
-		bit_data = (unsigned char *)malloc(width * height * 2);
-		bitp = bit_data;
-		datap = data;
-		for (w = (width * height); w > 0; w--)
-		{
-			temp = (((img_info->reds[(int)*datap] >> 1)& 0x7c00) |
-				((img_info->greens[(int)*datap] >> 6)& 0x03e0) |
-				((img_info->blues[(int)*datap] >> 11)& 0x001f));
-
-			if (BitmapBitOrder(dsp) == MSBFirst)
-			{
-				*bitp++ = (temp >> 8) & 0xff;
-				*bitp++ = temp & 0xff;
-			}
-			else
-			{
-				*bitp++ = temp & 0xff;
-				*bitp++ = (temp >> 8) & 0xff;
-			}
-
-			datap++;
+	    default:
+		if (depth < 9) {
+			fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth);
+			newimage = NULL;
+			break;
 		}
-
-		newimage = XCreateImage(dsp,
-			DefaultVisual(dsp, DefaultScreen(dsp)),
-			depth, ZPixmap, 0, (char *)bit_data,
-			width, height, 16, 0);
-		break;
-	    case 24:
-		bit_data = (unsigned char *)malloc(width * height * 4);
-
 		theVisual = DefaultVisual(dsp, DefaultScreen(dsp));
-		rshift = highbit(theVisual->red_mask) - 7;
-		gshift = highbit(theVisual->green_mask) - 7;
-		bshift = highbit(theVisual->blue_mask) - 7;
-		bmap_order = BitmapBitOrder(dsp);
-
-		bitp = bit_data;
-		datap = data;
-		for (w = (width * height); w > 0; w--)
+		rmask = theVisual->red_mask;
+		for (rshift = 0, mask = rmask; !(mask & 1); mask >>= 1)
+			rshift++;
+		for (rbits = 0; mask; mask >>= 1)
+			if (mask & 1) rbits++;
+		rbits = 16 - rbits;
+		gmask = theVisual->green_mask;
+		for (gshift = 0, mask = gmask; !(mask & 1); mask >>= 1)
+			gshift++;
+		for (gbits = 0; mask; mask >>= 1)
+			if (mask & 1) gbits++;
+		gbits = 16 - gbits;
+		bmask = theVisual->blue_mask;
+		for (bshift = 0, mask = bmask; !(mask & 1); mask >>= 1)
+			bshift++;
+		for (bbits = 0; mask; mask >>= 1)
+			if (mask&1) bbits++;
+		bbits = 16 - bbits;
+		pmf = XListPixmapFormats(dsp, &temp);
+		for (w = 0; w < temp; w++)
+			if (pmf[w].depth == depth)
 		{
-		    c =
-		     (((img_info->reds[(int)*datap] >> 8) & 0xff) << rshift) |
-		     (((img_info->greens[(int)*datap] >> 8) & 0xff) << gshift) |
-		     (((img_info->blues[(int)*datap] >> 8) & 0xff) << bshift);
-
-			datap++;
-
-			if (bmap_order == MSBFirst)
-			{
-				*bitp++ = (unsigned char)((c >> 24) & 0xff);
-				*bitp++ = (unsigned char)((c >> 16) & 0xff);
-				*bitp++ = (unsigned char)((c >> 8) & 0xff);
-				*bitp++ = (unsigned char)(c & 0xff);
-			}
-			else
-			{
-				*bitp++ = (unsigned char)(c & 0xff);
-				*bitp++ = (unsigned char)((c >> 8) & 0xff);
-				*bitp++ = (unsigned char)((c >> 16) & 0xff);
-				*bitp++ = (unsigned char)((c >> 24) & 0xff);
-			}
+			pmv = pmf[w];
+			break;
 		}
-
+		if (pmf)
+			XFree((char *)pmf);
+		pxval = (unsigned int *)
+			malloc(img_info->num_colors * sizeof(unsigned int));
+		for (w = 0; w < img_info->num_colors; w++)
+			pxval[w] = (((img_info->reds[w]>>rbits)<<rshift)&rmask)
+				|(((img_info->greens[w]>>gbits)<<gshift)&gmask)
+				|(((img_info->blues[w]>>bbits)<<bshift)&bmask);
+                temp = width * pmv.bits_per_pixel + pmv.scanline_pad - 1;
+                temp = (temp / pmv.scanline_pad) * pmv.scanline_pad / 8;
+                bit_data = (unsigned char *)malloc(temp * height);
+                bitp = bit_data;
+                datap = data;
 		newimage = XCreateImage(dsp,
 			DefaultVisual(dsp, DefaultScreen(dsp)),
 			depth, ZPixmap, 0, (char *)bit_data,
-			width, height, 32, 0);
-		break;
-	    default:
-		fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth);
-		return(NULL);
+			width, height, pmv.scanline_pad, temp);
+                for (h = 0; h < height; h++)
+                	for (w = 0; w < width; w++)
+                		XPutPixel(newimage, w, h, pxval[*datap++]);
+		free((char *)pxval);
 	}
 
 	return(newimage);
@@ -683,8 +659,8 @@
 	int Vclass;
 	XVisualInfo vinfo, *vptr;
 	Boolean need_to_dither;
-	unsigned long black_pixel;
-	unsigned long white_pixel;
+	unsigned long black_pixel = 0;
+	unsigned long white_pixel = 0;
 
 	/* find the visual class. */
 	vinfo.visualid = XVisualIDFromVisual(DefaultVisual(XtDisplay(hw),
--- libhtmlw/HTMLjot.c.orig	Wed Jan 11 09:03:33 1995
+++ libhtmlw/HTMLjot.c	Thu Sep 14 17:01:07 1995
@@ -98,7 +98,7 @@
 		JotCurrent->w = w;
 		JotCurrent->width = width;
 		JotCurrent->height = height;
-		JotCurrent->pix = NULL;
+		JotCurrent->pix = (Pixmap)NULL;
 		JotCurrent->drawing = False;
 		JotCurrent->strokes = NULL;
 		JotCurrent->last_stroke = NULL;
@@ -116,7 +116,7 @@
 		JotCurrent->w = w;
 		JotCurrent->width = width;
 		JotCurrent->height = height;
-		JotCurrent->pix = NULL;
+		JotCurrent->pix = (Pixmap)NULL;
 		JotCurrent->drawing = False;
 		JotCurrent->strokes = NULL;
 		JotCurrent->last_stroke = NULL;
@@ -182,7 +182,7 @@
 		return;
 	}
 
-	if (jptr->pix != NULL)
+	if (jptr->pix != (Pixmap)NULL)
 	{
                 XSetForeground(XtDisplay(w), hw->html.drawGC,
 			hw->core.background_pixel);
@@ -260,12 +260,12 @@
 		return;
 	}
 
-	if (jptr->pix == NULL)
+	if (jptr->pix == (Pixmap)NULL)
 	{
 		jptr->pix = XCreatePixmap(XtDisplay(w), XtWindow(w),
 			jptr->width, jptr->height,
 			XDefaultDepth(XtDisplay(w), XDefaultScreen(XtDisplay(w))));
-		if (jptr->pix == NULL)
+		if (jptr->pix == (Pixmap)NULL)
 		{
 			return;
 		}
@@ -323,7 +323,7 @@
 #endif /* MOTIF */
 	XDrawPoint(XtDisplay(w), XtWindow(w),
 			hw->html.drawGC, sptr->x, sptr->y);
-	if (jptr->pix != NULL)
+	if (jptr->pix != (Pixmap)NULL)
 	{
 		XDrawPoint(XtDisplay(w), jptr->pix,
 				hw->html.drawGC, sptr->x, sptr->y);
@@ -377,7 +377,7 @@
 #endif /* MOTIF */
 	XDrawLine(XtDisplay(w), XtWindow(w), hw->html.drawGC,
 		jptr->last_x, jptr->last_y, sptr->x, sptr->y);
-	if (jptr->pix != NULL)
+	if (jptr->pix != (Pixmap)NULL)
 	{
 		XDrawLine(XtDisplay(w), jptr->pix, hw->html.drawGC,
 			jptr->last_x, jptr->last_y, sptr->x, sptr->y);
@@ -431,7 +431,7 @@
 #endif /* MOTIF */
 	XDrawLine(XtDisplay(w), XtWindow(w), hw->html.drawGC,
 		jptr->last_x, jptr->last_y, sptr->x, sptr->y);
-	if (jptr->pix != NULL)
+	if (jptr->pix != (Pixmap)NULL)
 	{
 		XDrawLine(XtDisplay(w), jptr->pix, hw->html.drawGC,
 			jptr->last_x, jptr->last_y, sptr->x, sptr->y);
--- libhtmlw/HTMLparse.c.orig	Thu Jul  6 12:48:09 1995
+++ libhtmlw/HTMLparse.c	Tue Sep 26 15:06:19 1995
@@ -76,6 +76,16 @@
 #define TOLOWER(x)	(tolower(x))
 #else
 
+#ifdef L10N
+#define myisspace(x)	(isspace((x) & 0x7f))
+#define myisdigit(x)	(isdigit((x) & 0x7f))
+#define myisalpha(x)	(isalpha((x) & 0x7f))
+#else /* L10N */
+#define myisspace(x)	isspace(x)
+#define myisdigit(x)	isdigit(x)
+#define myisalpha(x)	isalpha(x)
+#endif /* L10N */
+
 /*
  * A hack to speed up caseless_equal.  Thanks to Quincey Koziol for
  * developing it for me
@@ -194,7 +204,7 @@
 	/*
 	 * Remove leading white space
 	 */
-	while (isspace((int)*ptr))
+	while (myisspace((int)*ptr))
 	{
 		ptr++;
 	}
@@ -204,7 +214,7 @@
 	 */
 	if (start == ptr)
 	{
-		while ((!isspace((int)*ptr))&&(*ptr != '\0'))
+		while ((!myisspace((int)*ptr))&&(*ptr != '\0'))
 		{
 			ptr++;
 		}
@@ -212,7 +222,7 @@
 	}
 	else
 	{
-		while ((!isspace((int)*ptr))&&(*ptr != '\0'))
+		while ((!myisspace((int)*ptr))&&(*ptr != '\0'))
 		{
 			*start++ = *ptr++;
 		}
@@ -223,7 +233,7 @@
 		/*
 		 * Remove trailing whitespace.
 		 */
-		while (isspace((int)*ptr))
+		while (myisspace((int)*ptr))
 		{
 			ptr++;
 		}
@@ -239,7 +249,7 @@
 		*start++ = ' ';
 		if (start == ptr)
 		{
-			while ((!isspace((int)*ptr))&&(*ptr != '\0'))
+			while ((!myisspace((int)*ptr))&&(*ptr != '\0'))
 			{
 				ptr++;
 			}
@@ -247,7 +257,7 @@
 		}
 		else
 		{
-			while ((!isspace((int)*ptr))&&(*ptr != '\0'))
+			while ((!myisspace((int)*ptr))&&(*ptr != '\0'))
 			{
 				*start++ = *ptr++;
 			}
@@ -277,7 +287,7 @@
 	int termination;
 {
 	int cnt;
-	char val;
+	char val = '\0';
 	int unterminated;
 
 	unterminated = (termination & 0x01);
@@ -291,7 +301,7 @@
 			char tchar;
 
 			tptr = (char *)(esc + 1);
-			while (isdigit((int)*tptr))
+			while (myisdigit((int)*tptr))
 			{
 				tptr++;
 			}
@@ -377,7 +387,7 @@
 	while (*ptr != '\0')
 	{
 		if ((*ptr == '&')&&
-			((isalpha((int)*(ptr + 1)))||(*(ptr + 1) == '#')))
+			((myisalpha((int)*(ptr + 1)))||(*(ptr + 1) == '#')))
 		{
 			break;
 		}
@@ -402,7 +412,7 @@
 		 * Extract the escape sequence from start to ptr
 		 */
 		start = ptr;
-		while ((*ptr != ';')&&(!isspace((int)*ptr))&&(*ptr != '\0'))
+		while ((*ptr != ';')&&(!myisspace((int)*ptr))&&(*ptr != '\0'))
 		{
 			ptr++;
 		}
@@ -414,7 +424,7 @@
 #endif
 			unterminated = 1;
 		}
-		else if (isspace((int)*ptr))
+		else if (myisspace((int)*ptr))
 		{
 			space_terminated = 1;
 		}
@@ -481,7 +491,7 @@
 		while (*ptr != '\0')
 		{
 			if ((*ptr == '&')&&
-			    ((isalpha((int)*(ptr + 1)))||(*(ptr + 1) == '#')))
+			    ((myisalpha((int)*(ptr + 1)))||(*(ptr + 1) == '#')))
 			{
 				break;
 			}
@@ -522,13 +532,13 @@
 	{
 		if (*ptr == '<')
 		{
-			if (isalpha((int)(*(ptr + 1))))
+			if (myisalpha((int)(*(ptr + 1))))
 			{
 				break;
 			}
 			else if (*(ptr + 1) == '/')
 			{
-				if (isalpha((int)(*(ptr + 2))))
+				if (myisalpha((int)(*(ptr + 2))))
 				{
 					break;
 				}
@@ -742,9 +752,9 @@
 		 * or '</' followed by any letter.
 		 */
 		if ((*ptr == '<')&&
-			((isalpha((int)(*(ptr + 1))))||
+			((myisalpha((int)(*(ptr + 1))))||
 			(*(ptr + 1) == '!')||
-			((*(ptr + 1) == '/')&&(isalpha((int)(*(ptr + 2)))))))
+			((*(ptr + 1) == '/')&&(myisalpha((int)(*(ptr + 2)))))))
 		{
 			struct mark_up *mp;
 			char *ep;
@@ -1025,7 +1035,7 @@
 	tptr = str;
 	while (*tptr != '\0')
 	{
-		if (isspace((int)*tptr))
+		if (myisspace((int)*tptr))
 		{
 			break;
 		}
@@ -1255,6 +1265,28 @@
 	{
 		type = M_TABLE_DATA;
 	}
+#ifdef NETSCAPE_EXT
+	else if (caseless_equal(str, MT_CENTER))
+	{
+		type = M_CENTER;
+	}
+	else if (caseless_equal(str, MT_NOBR))
+	{
+		type = M_NOBR;
+	}
+	else if (caseless_equal(str, MT_BLINK))
+	{
+		type = M_BLINK;
+	}
+	else if (caseless_equal(str, MT_FONT))
+	{
+		type = M_FONT;
+	}
+	else if (caseless_equal(str, MT_BASEFONT))
+	{
+		type = M_BASEFONT;
+	}
+#endif /* NETSCAPE_EXT */
 	else
 	{
 #ifdef VERBOSE
@@ -1295,7 +1327,7 @@
 	 * remove leading spaces, and set start
 	 */
 	ptr = *ptrp;
-	while (isspace((int)*ptr))
+	while (myisspace((int)*ptr))
 	{
 		ptr++;
 	}
@@ -1304,7 +1336,7 @@
 	/*
 	 * Find and set the end of the tag
 	 */
-	while ((!isspace((int)*ptr))&&(*ptr != '=')&&(*ptr != '\0'))
+	while ((!myisspace((int)*ptr))&&(*ptr != '=')&&(*ptr != '\0'))
 	{
 		ptr++;
 	}
@@ -1321,7 +1353,7 @@
 	 * set the has_value flag.
 	 */
 	has_value = 0;
-	while ((isspace((int)*ptr))||(*ptr == '='))
+	while ((myisspace((int)*ptr))||(*ptr == '='))
 	{
 		if (*ptr == '=')
 		{
@@ -1370,7 +1402,7 @@
 	}
 	else
 	{
-		while ((!isspace((int)*ptr))&&(*ptr != '\0'))
+		while ((!myisspace((int)*ptr))&&(*ptr != '\0'))
 		{
 			ptr++;
 		}
--- libhtmlw/HTMLtable.c.orig	Tue Jul  4 05:25:33 1995
+++ libhtmlw/HTMLtable.c	Thu Sep 14 17:01:07 1995
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <string.h>
+#include <ctype.h>
 #include <X11/Xlib.h>
 #include "HTMLP.h"
 #include "HTML.h"
@@ -40,6 +41,9 @@
 	tf->type = F_NONE;
 	tf->text = (char *) 0;
 	tf->font = (XFontStruct *) 0;
+#ifdef L10N
+	tf->WCfont = (XFontStruct *) 0;
+#endif /* L10N */
 	tf->formattedText = (char **) 0;
 	tf->numLines = 0;
 
@@ -764,6 +768,9 @@
 /* for right now, only get the text */
 
 	field->font = hw->html.plain_font; /* default font */
+#ifdef L10N
+	field->WCfont = hw->html.plain_WCfont; /* default font */
+#endif /* L10N */
 	m = (*mptr)->next;
 	while(m && (m->type != M_TABLE) && (m->type != M_TABLE_ROW) &&
 		(m->type != M_TABLE_DATA) && (m->type != M_TABLE_HEADER)
@@ -774,17 +781,26 @@
 			case M_VARIABLE:
 			case M_EMPHASIZED:
 					field->font = hw->html.italic_font;
+#ifdef L10N
+					field->WCfont = hw->html.italic_WCfont; 
+#endif /* L10N */
 					break;
 			case M_BOLD:
 			case M_STRONG:
 			case M_ANCHOR:
 					field->font = hw->html.bold_font;
+#ifdef L10N
+					field->WCfont = hw->html.bold_WCfont; 
+#endif /* L10N */
 					break;
 			case M_FIXED:
 			case M_CODE:
 			case M_SAMPLE:
 			case M_KEYBOARD:
 					field->font = hw->html.fixed_font;
+#ifdef L10N
+					field->WCfont = hw->html.fixed_WCfont; 
+#endif /* L10N */
 					break;
 			}
 		    }
@@ -793,6 +809,9 @@
 	
 	if (field->header) {
 		field->font = hw->html.plainbold_font;
+#ifdef L10N
+		field->WCfont = hw->html.plainbold_WCfont; 
+#endif /* L10N */
 		}
 	if (m->type == M_NONE){ /* text */
 		field->type = F_TEXT;
@@ -1068,13 +1087,26 @@
 
 		XSetLineAttributes(XtDisplay(hw),hw->html.drawGC,1,LineSolid,
 			CapNotLast,JoinMiter);
+#ifdef L10N
+		XSetBackground(XtDisplay(hw), hw->html.drawWCGC, eptr->bg);
+		XSetForeground(XtDisplay(hw), hw->html.drawWCGC, eptr->fg);
+#else /* L10N */
 		XSetBackground(XtDisplay(hw), hw->html.drawGC, eptr->bg);
 		XSetForeground(XtDisplay(hw), hw->html.drawGC, eptr->fg);
+#endif /* L10N */
 		XSetFont(XtDisplay(hw), hw->html.drawGC, field->font->fid);
+#ifdef L10N
+		XSetFont(XtDisplay(hw), hw->html.drawWCGC, field->WCfont->fid);
+		XDrawImageStringComposite(hw,
+			field->font, field->WCfont, placeX, placeY+baseLine,
+			field->formattedText[yy],
+			strlen(field->formattedText[yy]));
+#else /* L10N */
 		XDrawString(XtDisplay(hw), XtWindow(hw->html.view),
 			hw->html.drawGC, placeX, placeY+baseLine,
 			field->formattedText[yy],
 			strlen(field->formattedText[yy]));
+#endif /* L10N */
 
 		placeY += lineHeight;
 		}
--- libhtmlw/HTMLwidgets.c.orig	Tue Apr  4 13:22:41 1995
+++ libhtmlw/HTMLwidgets.c	Thu Sep 14 21:27:33 1995
@@ -110,6 +110,10 @@
 extern char *EJB_JOTfromJot();
 extern char *ParseMarkTag();
 
+#ifdef L10N
+XmString MLXmStringCreate(char *, int, XFontStruct *);
+Boolean  MLXmStringGet(XmString, int, String *);
+#endif /* L10N */
 
 #ifdef MOTIF
 static Boolean ModifyIgnore = False;
@@ -422,8 +426,13 @@
 						cbdata.attribute_names[cnt + j]
 							= wptr->name;
 #ifdef MOTIF
+#ifdef L10N
+						MLXmStringGet(str_list[j],
+						    hw->html.charset_info,
+#else /* L10N */
 						XmStringGetLtoR(str_list[j],
 						    XmSTRING_DEFAULT_CHARSET,
+#endif /* L10N */
 						    &val);
 #else
 						val = str_list[j];
@@ -459,7 +468,11 @@
 				argcnt++;
 				XtGetValues(child, arg, argcnt);
 				val = NULL;
+#ifdef L10N
+				MLXmStringGet(label, hw->html.charset_info,
+#else /* L10N */
 				XmStringGetLtoR(label, XmSTRING_DEFAULT_CHARSET,
+#endif /* L10N */
 					&val);
 #else
 				XtVaGetValues(wptr->w, XtNlabel, &val, NULL);
@@ -1136,7 +1149,6 @@
 	while ((wptr != NULL)&&(cnt < widget_count))
 	{
 		Widget child;
-		STRING label;
 #ifdef MOTIF
 		Cardinal argcnt;
 		Arg arg[5];
@@ -1308,7 +1320,13 @@
 				    for (i=0; i<vlist_cnt; i++)
 				    {
 					val_list[i] =
+#ifdef L10N
+						MLXmStringCreate(vlist[i],
+							hw->html.charset_info,
+							hw->html.WCfont);
+#else /* L10N */
 						XmStringCreateSimple(vlist[i]);
+#endif /* L10N */
 				    }
 #else
 				    XawListUnhighlight(child);
@@ -2210,6 +2228,10 @@
 				checked = True;
 				free(tptr);
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreateToggleButton(hw->html.view, widget_name,
 				arg, argcnt);
 			XtSetMappedWhenManaged(w, False);
@@ -2268,6 +2290,10 @@
 				checked = True;
 				free(tptr);
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreateToggleButton(hw->html.view, widget_name,
 				arg, argcnt);
 			XtSetMappedWhenManaged(w, False);
@@ -2296,10 +2322,20 @@
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 			if (value != NULL)
 			{
+#ifdef L10N
+				label = MLXmStringCreate(value,
+						hw->html.charset_info,
+						hw->html.WCfont);
+#else /* L10N */
 				label = XmStringCreateSimple(value);
+#endif /* L10N */
 				XtSetArg(arg[argcnt], XmNlabelString, label);
 				argcnt++;
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreatePushButton(hw->html.view, widget_name,
 				arg, argcnt);
 			XtSetMappedWhenManaged(w, False);
@@ -2329,10 +2365,20 @@
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 			if (value != NULL)
 			{
+#ifdef L10N
+				label = MLXmStringCreate(value,
+						hw->html.charset_info,
+						hw->html.WCfont);
+#else /* L10N */
 				label = XmStringCreateSimple(value);
+#endif /* L10N */
 				XtSetArg(arg[argcnt], XmNlabelString, label);
 				argcnt++;
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreatePushButton(hw->html.view, widget_name,
 				arg, argcnt);
 			XtSetMappedWhenManaged(w, False);
@@ -2356,10 +2402,20 @@
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 			if (value != NULL)
 			{
+#ifdef L10N
+				label = MLXmStringCreate(value,
+						hw->html.charset_info,
+						hw->html.WCfont);
+#else /* L10N */
 				label = XmStringCreateSimple(value);
+#endif /* L10N */
 				XtSetArg(arg[argcnt], XmNlabelString, label);
 				argcnt++;
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreatePushButton(hw->html.view, widget_name,
 				arg, argcnt);
 			XtSetMappedWhenManaged(w, False);
@@ -2409,12 +2465,20 @@
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 			XtSetArg(arg[argcnt], XmNshadowType, XmSHADOW_IN);
 			argcnt++;
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			frame = XmCreateFrame(hw->html.view, "Frame",
 				arg, argcnt);
 
 			argcnt = 0;
 			XtSetArg(arg[argcnt], XmNwidth, width); argcnt++;
 			XtSetArg(arg[argcnt], XmNheight, height); argcnt++;
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreateDrawingArea(frame, widget_name,
 				arg, argcnt);
 			XtManageChild(w);
@@ -2564,6 +2628,11 @@
                                 Widget child;
                                 XmString xmstr;
 				argcnt = 0;
+#ifdef L10N
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* L10N */
 				pulldown = XmCreatePulldownMenu(hw->html.view,
 					widget_name, arg, argcnt);
 
@@ -2572,11 +2641,22 @@
 					char bname[30];
 
 					sprintf(bname, "Button%d", (i + 1));
+#ifdef L10N
+					label = MLXmStringCreate(list[i],
+							hw->html.charset_info,
+							hw->html.WCfont);
+#else /* L10N */
 					label = XmStringCreateSimple(list[i]);
+#endif /* L10N */
 					argcnt = 0;
 					XtSetArg(arg[argcnt], XmNlabelString,
 						label);
 					argcnt++;
+#ifdef L10N
+					XtSetArg(arg[argcnt], XmNfontList,
+						 hw->html.font_list);
+					argcnt++;
+#endif /* L10N */
 					button = XmCreatePushButton(pulldown,
 						bname, arg, argcnt);
 					XtManageChild(button);
@@ -2628,16 +2708,35 @@
 					 */
 					value = (char *)hist;
 				}
+#ifdef L10N
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* L10N */
 				w = XmCreateOptionMenu(hw->html.view,
 					widget_name, arg, argcnt);
                                 argcnt = 0;
+#ifdef L10N
+                                xmstr = MLXmStringCreate("",
+						hw->html.charset_info,
+						hw->html.WCfont);
+#else /* L10N */
                                 xmstr = XmStringCreateSimple ("");
+#endif /* L10N */
                                 XtSetArg(arg[argcnt], XmNlabelString,
                                          (XtArgVal)xmstr);
                                 argcnt++;
                                 child = XmOptionLabelGadget (w);
                                 XtSetValues (child, arg, argcnt);
                                 XmStringFree (xmstr);
+#ifdef L10N
+				argcnt = 0;
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+				child = XmOptionButtonGadget (w);
+				XtSetValues (child, arg, argcnt);
+#endif /* L10N */
                         }
 			else /* type == W_LIST */
 			{
@@ -2660,12 +2759,24 @@
 				for (i=0; i<list_cnt; i++)
 				{
 					string_list[i] =
+#ifdef L10N
+						MLXmStringCreate(list[i],
+							hw->html.charset_info,
+							hw->html.WCfont);
+#else /* L10N */
 						XmStringCreateSimple(list[i]);
+#endif /* L10N */
 				}
 				for (i=0; i<vlist_cnt; i++)
 				{
 					val_list[i] =
+#ifdef L10N
+						MLXmStringCreate(vlist[i],
+							hw->html.charset_info,
+							hw->html.WCfont);
+#else /* L10N */
 						XmStringCreateSimple(vlist[i]);
+#endif /* L10N */
 				}
 
 				FreeCommaList(list, list_cnt);
@@ -2675,6 +2786,11 @@
 				argcnt = 0;
 				XtSetArg(arg[argcnt], XmNx, x); argcnt++;
 				XtSetArg(arg[argcnt], XmNy, y); argcnt++;
+#ifdef L10N
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* L10N */
 				scroll = XmCreateScrolledWindow(hw->html.view,
 					"Scroll", arg, argcnt);
 
@@ -2716,6 +2832,11 @@
 						XmNselectedItemCount, 1);
 					argcnt++;
 				}
+#ifdef L10N
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* L10N */
 				w = XmCreateList(scroll, widget_name,
 					arg, argcnt);
 				XtManageChild(w);
@@ -2743,7 +2864,11 @@
 		}
 		else if ((type_str != NULL)&&(strcasecmp(type_str, "password") ==0))
 		{
+#ifdef NAKED_PASSWORD
+			type = W_TEXTFIELD;
+#else /* NAKED_PASSWORD */
 			type = W_PASSWORD;
+#endif /* NAKED_PASSWORD */
 			value = ParseMarkTag(text, MT_INPUT, "VALUE");
 
 			size = -1;
@@ -2768,6 +2893,12 @@
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 			if (size > 0)
 			{
+#ifdef L10N
+#ifdef MOTIF_I18N
+				if (hw->html.halfsized_textfield)
+					size = (size + 1) / 2;
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 				XtSetArg(arg[argcnt], XmNcolumns, size);
 				argcnt++;
 			}
@@ -2791,6 +2922,10 @@
 				XtSetArg(arg[argcnt], XmNvalue, bval);
 				argcnt++;
 			}
+#ifdef L10N
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* L10N */
 			w = XmCreateTextField(hw->html.view, widget_name,
 				arg, argcnt);
 /*
@@ -2807,8 +2942,10 @@
 #endif /* MOTIF1_2 */
 			XtAddCallback(w, XmNactivateCallback,
 				(XtCallbackProc)CBActivateField, (caddr_t)fptr);
+#ifndef NAKED_PASSWORD
 			XtAddCallback(w, XmNmodifyVerifyCallback,
 				(XtCallbackProc)CBPasswordModify, (caddr_t)fptr);
+#endif /* NAKED_PASSWORD */
 		}
 		else if ((type_str != NULL)&&(strcasecmp(type_str, "textarea") ==0))
 		{
@@ -2869,6 +3006,12 @@
 			argcnt = 0;
 			XtSetArg(arg[argcnt], XmNx, x); argcnt++;
 			XtSetArg(arg[argcnt], XmNy, y); argcnt++;
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
 			scroll = XmCreateScrolledWindow(hw->html.view,
 				"Scroll", arg, argcnt);
 
@@ -2877,6 +3020,12 @@
 			argcnt++;
 			if (cols > 0)
 			{
+#ifdef L10N
+#ifdef MOTIF_I18N
+				if (hw->html.halfsized_textfield)
+					cols = (cols + 1) / 2;
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 				XtSetArg(arg[argcnt], XmNcolumns, cols);
 				argcnt++;
 			}
@@ -2890,6 +3039,12 @@
 				XtSetArg(arg[argcnt], XmNvalue, value);
 				argcnt++;
 			}
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+			XtSetArg(arg[argcnt], XmNfontList, hw->html.font_list);
+			argcnt++;
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
 			w = XmCreateText(scroll, widget_name, arg, argcnt);
 			XtManageChild(w);
 			w = scroll;
@@ -2901,7 +3056,7 @@
 		{
 			char **list;
 			int list_cnt;
-			int rows, cols;
+			int rows = 0, cols;
 			Widget scroll;
 
 			/*
@@ -2968,6 +3123,12 @@
 				XtSetArg(arg[argcnt], XmNy, y); argcnt++;
 				if (cols > 0)
 				{
+#ifdef L10N
+#ifdef MOTIF_I18N
+					if (hw->html.halfsized_textfield)
+						cols = (cols + 1) / 2;
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 					XtSetArg(arg[argcnt], XmNcolumns, cols);
 					argcnt++;
 				}
@@ -2982,6 +3143,13 @@
 					XtSetArg(arg[argcnt], XmNvalue, value);
 					argcnt++;
 				}
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
 				w = XmCreateTextField(hw->html.view,
 					widget_name, arg, argcnt);
 			}
@@ -2994,6 +3162,13 @@
 				argcnt = 0;
 				XtSetArg(arg[argcnt], XmNx, x); argcnt++;
 				XtSetArg(arg[argcnt], XmNy, y); argcnt++;
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
 				scroll = XmCreateScrolledWindow(hw->html.view,
 					"Scroll", arg, argcnt);
 
@@ -3003,6 +3178,12 @@
 				argcnt++;
 				if (cols > 0)
 				{
+#ifdef L10N
+#ifdef MOTIF_I18N
+					if (hw->html.halfsized_textfield)
+						cols = (cols + 1) / 2;
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 					XtSetArg(arg[argcnt], XmNcolumns, cols);
 					argcnt++;
 				}
@@ -3016,6 +3197,13 @@
 					XtSetArg(arg[argcnt], XmNvalue, value);
 					argcnt++;
 				}
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+				XtSetArg(arg[argcnt], XmNfontList,
+					 hw->html.font_list);
+				argcnt++;
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
 				w = XmCreateText(scroll, widget_name,
 					arg, argcnt);
 				XtManageChild(w);
@@ -4037,3 +4225,234 @@
 #endif
 }
 
+#ifdef L10N
+
+/* ------------------------- XmString ------------------------- */
+
+#if !defined(OPENWARE) && !defined(JDEC)
+
+#define IS_GR(c) ((0xa0 <= (c)) && ((c) <= 0xff))
+#define GR2GL(c) ((c) & 0x7f)
+#define GL2GR(c) ((c) | 0x80)
+#define ASCII_CODESET	"ISO8859-1"
+
+static XmStringCharSet
+CSinfo2str(int charset_info)
+{
+  switch (charset_info) {
+    case CS_ISO_8859_1: return("ISO8859-1");
+    case CS_ISO_8859_2: return("ISO8859-2");
+    case CS_ISO_8859_3: return("ISO8859-3");
+    case CS_ISO_8859_4: return("ISO8859-4");
+    case CS_ISO_8859_5: return("ISO8859-5");
+    case CS_ISO_8859_7: return("ISO8859-7");
+    case CS_ISO_8859_8: return("ISO8859-8");
+    case CS_ISO_8859_9: return("ISO8859-9");
+    case CS_KOI8:	return("KOI-1");
+    case CS_GB:		return("GB2312.1980-0");
+    case CS_HZ:		return("GB2312.1980-0");
+    case CS_KSC:	return("KSC5601.1987-0");
+    case CS_JIS:	return("JISX0208.1983-0");
+    case CS_Big5:	return("BIG5-0");
+    default: /* ??? */  return("ISO8859-1");
+  }
+}
+
+XmString
+MLXmStringCreate(char *text, int CharsetInfo, XFontStruct *WCfs)
+{
+  if (text == NULL) return(NULL);
+#ifdef IXIMOTIF1_2
+  return(XmStringCreate(text, CSinfo2str(CharsetInfo)));
+#else /* IXIMOTIF1_2 */
+  if (CharsetInfo & CS_MULTIBYTE) {
+    char c, *head, *tail;
+    enum {GL, GR} stat;
+    XmString mstring_head, mstring1, mstring2;
+    char GRbuf[BUFSIZ], *GRbufptr;
+    int GR_encoding;
+
+    head = tail = text;
+    GRbufptr = GRbuf;
+    stat = GL;
+    mstring_head = NULL;
+
+    if (WCfs != NULL) {
+      GR_encoding = (WCfs->max_char_or_byte2 >= 0x80) ? 1 : 0;
+    } else {
+      GR_encoding = 0;
+    }
+    
+    while ((c = *tail) != '\0') {
+      if (IS_GR((unsigned char)c)) {
+	if (stat == GL) {
+	  *tail = '\0';
+	  if (mstring_head == NULL) {
+	    if (*head != '\0') {
+	      mstring_head = XmStringCreateLtoR(head, ASCII_CODESET);
+	    }
+	  } else {
+	    mstring1 = mstring_head;
+	    mstring2 = XmStringCreateLtoR(head, ASCII_CODESET);
+	    mstring_head = XmStringConcat(mstring1, mstring2);
+	    XmStringFree(mstring1);
+	    XmStringFree(mstring2);
+	  }
+	  *tail = c;
+	  head = tail;
+	  stat = GR;
+	}
+	tail++;
+	*GRbufptr++ = GR_encoding ? c : GR2GL(c);
+	if ((c = *tail) != '\0') {
+	  tail++;
+	  *GRbufptr++ = GR_encoding ? c : GR2GL(c);
+	} else {
+	  break; /* data broken! */
+	}
+      } else {
+	if (stat == GR) {
+	  *GRbufptr = '\0';
+	  if (mstring_head == NULL) {
+	    if (*GRbuf != '\0') {
+	      mstring_head = XmStringCreateLtoR(GRbuf,
+						CSinfo2str(CharsetInfo));
+	      GRbufptr = GRbuf;
+	    }
+	  } else {
+	    mstring1 = mstring_head;
+	    mstring2 = XmStringCreateLtoR(GRbuf, CSinfo2str(CharsetInfo));
+	    GRbufptr = GRbuf;
+	    mstring_head = XmStringConcat(mstring1, mstring2);
+	    XmStringFree(mstring1);
+	    XmStringFree(mstring2);
+	  }
+	  head = tail;
+	  stat = GL;
+	}
+	tail++;
+      }
+    }
+    
+    if (stat == GL) {
+      if (mstring_head == NULL) {
+	if (*head != '\0') {
+	  mstring_head = XmStringCreateLtoR(head, ASCII_CODESET);
+	}
+      } else {
+	mstring1 = mstring_head;
+	mstring2 = XmStringCreateLtoR(head, ASCII_CODESET);
+	mstring_head = XmStringConcat(mstring1, mstring2);
+	XmStringFree(mstring1);
+	XmStringFree(mstring2);
+      }
+    } else {
+      *GRbufptr = '\0';
+      if (mstring_head == NULL) {
+	if (*GRbuf != '\0') {
+	  mstring_head = XmStringCreateLtoR(GRbuf, CSinfo2str(CharsetInfo));
+	  GRbufptr = GRbuf;
+	}
+      } else {
+	mstring1 = mstring_head;
+	mstring2 = XmStringCreateLtoR(GRbuf, CSinfo2str(CharsetInfo));
+	GRbufptr = GRbuf;
+	mstring_head = XmStringConcat(mstring1, mstring2);
+	XmStringFree(mstring1);
+	XmStringFree(mstring2);
+      }
+    }
+    if (mstring_head != NULL) {
+      return(mstring_head);
+    } else {
+#ifdef MOTIF1_2
+      return(XmStringCreateLocalized(""));
+#else /* MOTIF1_2 */
+      return(XmStringCreateSimple(""));
+#endif /* MOTIF1_2 */
+    }
+  } else {
+    return(XmStringCreateLtoR(text, CSinfo2str(CharsetInfo)));
+  }
+#endif /* IXIMOTIF1_2 */
+}
+
+Boolean
+MLXmStringGet(XmString string, int CharsetInfo, String *text)
+{
+#if defined(IXIMOTIF1_2)
+  return(XmStringGetLtoR(string, CSinfo2str(CharsetInfo), text));
+#else /* IXIMOTIF1_2 */
+  char buf[BUFSIZ], *bufptr;
+  XmStringContext context;
+  String rstring;
+  XmStringCharSet rcharset;
+  XmStringDirection rdirection;
+  Boolean rseparator;
+  
+  bufptr = buf;
+  XmStringInitContext(&context, string);
+  while (XmStringGetNextSegment(context, &rstring, &rcharset,
+				&rdirection, &rseparator) == True) {
+    if (rseparator == False) {
+      if ((!strcmp(rcharset, "JISX0208.1983-0") ||
+	   !strcmp(rcharset, "GB2312.1980-0") ||
+	   !strcmp(rcharset, "KSC5601.1987-0") ||
+	   !strcmp(rcharset, "BIG5-0"))) {
+	while (*rstring != '\0') {
+	  /* should not do for Big5, but... */
+	  *bufptr++ = GL2GR(*rstring++);
+	}
+      } else {
+	while (*rstring != '\0') {
+	  *bufptr++ = *rstring++;
+	}
+      }
+    }
+  }
+  
+  XmStringFreeContext(context);
+  *bufptr = '\0';
+  if (*buf != '\0') {
+    *text = (char *)malloc(strlen(buf)+1);
+    strcpy(*text, buf);
+    return(True);
+  } else {
+    return(False);
+  }
+#endif /* IXIMOTIF1_2 */
+}
+
+#endif /* ! OPENWARE && ! JDEC */
+
+#ifdef OPENWARE
+XmString
+  MLXmStringCreate(char *text, int CharsetInfo, XFontStruct *WCfs)
+{
+  return(XmjpCreateConcatWords(text, XmjpDEFAULT_CHARSET_ARRAY));
+}
+Boolean
+MLXmStringGet(XmString string, int CharsetInfo, String *text)
+{
+  return(XmjpGetLtoRWords(string, XmjpDEFAULT_CHARSET_ARRAY, text));
+}
+#endif /* OPENWARE */
+
+#ifdef JDEC
+#include <DXm/DECspecific.h>
+XmString
+MLXmStringCreate(char *text, int CharsetInfo, XFontStruct *WCfs)
+{
+  long dxm_dummy_len, dxm_dummy_status;
+  return(DXmCvtFCtoCS(text, &dxm_dummy_len, &dxm_dummy_status));
+}
+Boolean
+MLXmStringGet(XmString string, int CharsetInfo, String *text)
+{
+  long dxm_dummy_len, dxm_dummy_status;
+  *text = DXmCvtCStoFC(string, &dxm_dummy_len, &dxm_dummy_status);
+  return(dxm_dummy_status);
+}
+#endif /* JDEC */
+
+#endif /* L10N */
--- libwww2/HTAccess.c.orig	Tue Apr  4 13:23:03 1995
+++ libwww2/HTAccess.c	Thu Sep 14 17:01:08 1995
@@ -45,6 +45,7 @@
 
 
 extern char *mo_check_for_proxy (char *);
+extern char *mo_check_no_proxy (void);
 
 
 
@@ -93,6 +94,9 @@
 #ifdef DIRECT_WAIS
 extern HTProtocol HTWAIS;
 #endif
+#ifdef USE_SSL
+extern HTProtocol HTTPS;
+#endif /* USE_SSL */
     HTRegisterProtocol(&HTFTP);
     HTRegisterProtocol(&HTNews);
     HTRegisterProtocol(&HTGopher);
@@ -106,9 +110,96 @@
     HTRegisterProtocol(&HTTn3270);
     HTRegisterProtocol(&HTRlogin);
     HTRegisterProtocol(&HTMailto);
+#ifdef USE_SSL
+    HTRegisterProtocol(&HTTPS);
+#endif /* USE_SSL */
 }
 
 
+/*							override_proxy()
+**
+**	Check the no_proxy environment variable to get the list
+**	of hosts for which proxy server is not consulted.
+**
+**	no_proxy is a comma- or space-separated list of machine
+**	or domain names, with optional :port part.  If no :port
+**	part is present, it applies to all ports on that domain.
+**
+**	Example:
+**		no_proxy="cern.ch,some.domain:8001"
+**
+*/
+PRIVATE BOOL override_proxy ARGS1(CONST char *, addr)
+{
+    CONST char * no_proxy = getenv("no_proxy");
+    char * p = NULL;
+    char * host = NULL;
+    int port = 0;
+    int h_len = 0;
+
+    if (!no_proxy)
+	no_proxy = mo_check_no_proxy();
+    if (!no_proxy || !addr || !(host = HTParse(addr, "", PARSE_HOST)))
+	return NO;
+    if (!*host) { free(host); return NO; }
+
+    if (p = strchr(host, ':')) {	/* Port specified */
+	*p++ = 0;			/* Chop off port */
+	port = atoi(p);
+    }
+    else {				/* Use default port */
+	char * access = HTParse(addr, "", PARSE_ACCESS);
+	if (access) {
+	    if      (!strcmp(access,"http"))	port = 80;
+	    else if (!strcmp(access,"gopher"))	port = 70;
+	    else if (!strcmp(access,"ftp"))	port = 21;
+#ifdef USE_SSL
+	    else if (!strcmp(access,"https"))	port = HTTPS_TCP_PORT;
+#endif /* USE_SSL */
+	    free(access);
+	}
+    }
+    if (!port) port = 80;		/* Default */
+    h_len = strlen(host);
+
+    while (*no_proxy) {
+	CONST char * end;
+	CONST char * colon = NULL;
+	int templ_port = 0;
+	int t_len;
+
+	while (*no_proxy && (WHITE(*no_proxy) || *no_proxy==','))
+		no_proxy++;		/* Skip whitespace and separators */
+
+	end = no_proxy;
+	while (*end && !WHITE(*end) && *end != ',') {	/* Find separator */
+	    if (*end==':') colon = end;			/* Port number given */
+	    end++;
+	}
+
+	if (colon) {
+	    templ_port = atoi(colon+1);
+	    t_len = colon - no_proxy;
+	}
+	else {
+	    t_len = end - no_proxy;
+	}
+
+	if ((!templ_port || templ_port == port)  &&
+	    (t_len > 0  &&  t_len <= h_len  &&
+	    !strncmp(host + h_len - t_len, no_proxy, t_len))) {
+	    free(host);
+	    return YES;
+	}
+	if (*end) no_proxy = end+1;
+	else break;
+    }
+
+    free(host);
+    return NO;
+}
+
+
 /*		Find physical name and access protocol
 **		--------------------------------------
 **
@@ -127,7 +218,6 @@
 	HTParentAnchor *,	anchor)
 {
     char * access=0;	/* Name of access method */
-    char * physical = 0;
     
     HTAnchor_setPhysical(anchor, addr);
 
@@ -138,7 +228,11 @@
 */
 #define USE_GATEWAYS
 #ifdef USE_GATEWAYS
-    {
+
+    /* make sure the using_proxy variable is false */
+    using_proxy = NO;
+
+    if (!override_proxy(addr)) {
 	char *gateway_parameter, *gateway, *proxy;
 
 	/* search for gateways */
@@ -169,9 +263,6 @@
 	    gateway = DEFAULT_WAIS_GATEWAY;
 	}
 #endif
-
-	/* make sure the using_proxy variable is false */
-	using_proxy = NO;
 
 	/* proxy servers have precedence over gateway servers */
 	if (proxy) {
--- libwww2/HTCompressed.c.orig	Tue Apr  4 13:23:06 1995
+++ libwww2/HTCompressed.c	Thu Sep 14 17:01:08 1995
@@ -35,7 +35,6 @@
 {
   char *znam;
   char *cmd;
-  int len;
 
   cmd=NULL;
 
@@ -99,7 +98,7 @@
 
   if (system (cmd) != 0)
     {
-#ifndef sun
+#if !defined(sun) && !defined(sony_news)
       application_user_feedback 
         ("Unable to uncompress compressed data;\nresults may be in error.");
       free (cmd);
@@ -125,7 +124,6 @@
 void HTCompressedHText (HText *text, int compressed, int plain)
 {
   char *fnam;
-  char *znam;
   char *cmd;
   FILE *fp;
   int rv, size_of_data;
--- libwww2/HTFile.c.orig	Wed Jan 11 09:03:48 1995
+++ libwww2/HTFile.c	Thu Sep 14 17:01:08 1995
@@ -855,7 +855,9 @@
 {
     char * filename;
     HTFormat format;
+#ifdef vms
     int fd = -1;		/* Unix file descriptor number = INVALID */
+#endif /* vms */
     char * nodename = 0;
     char * newname=0;	/* Simplified name of file */
     HTAtom * encoding;	/* @@ not used yet */
--- libwww2/HTFormat.c.orig	Wed Jan 11 09:03:49 1995
+++ libwww2/HTFormat.c	Thu Sep 14 17:01:08 1995
@@ -181,6 +181,18 @@
     input_pointer = input_limit = input_buffer;
 }
 
+#ifdef NEWS_SELECT
+PUBLIC char * HTGetInputpointer NOARGS
+{
+    return input_pointer;
+}
+
+PUBLIC void HTSetInputpointer ARGS1 (char *,pointer)
+{
+    input_pointer = pointer;
+}
+#endif /* NEWS_SELECT */
+
 PUBLIC int interrupted_in_htgetcharacter = 0;
 PUBLIC char HTGetCharacter NOARGS
 {
--- libwww2/HTFormat.h.orig	Wed Jan 11 09:03:49 1995
+++ libwww2/HTFormat.h	Thu Sep 14 17:01:08 1995
@@ -281,6 +281,10 @@
  */
 extern char HTGetCharacter NOPARAMS;
 
+#ifdef NEWS_SELECT
+extern void HTSetInputpointer PARAMS((char* pointer));
+extern char * HTGetInputpointer NOPARAMS;
+#endif /* NEWS_SELECT */
 
 /*
 
--- libwww2/HTGopher.c.orig	Wed Jan 11 09:03:49 1995
+++ libwww2/HTGopher.c	Thu Sep 14 17:01:08 1995
@@ -153,12 +153,11 @@
   char ch;
   char line[BIG];
   char address[BIG];
-  char *name, *selector;		/* Gopher menu fields */
-  char *host;
+  char *name = '\0', *selector = '\0';		/* Gopher menu fields */
+  char *host = '\0';
   char *port;
   char *p = line;
   extern int interrupted_in_htgetcharacter;
-  CONST char *title;
   
 #define TAB 		'\t'
 #define HEX_ESCAPE 	'%'
--- libwww2/HTInit.c.orig	Sat Jun 10 02:12:13 1995
+++ libwww2/HTInit.c	Thu Sep 14 17:01:09 1995
@@ -104,11 +104,14 @@
       HTSetPresentation("image/xwd", "xwud -in %s", 1.0, 3.0, 0.0);
       HTSetPresentation("image/x-xwd", "xwud -in %s", 1.0, 3.0, 0.0);
       HTSetPresentation("image/x-xwindowdump", "xwud -in %s", 1.0, 3.0, 0.0);
+      HTSetPresentation("video/quicktime", "xanim %s", 1.0, 3.0, 0.0);
 
       HTSetPresentation("video/mpeg", "mpeg_play %s", 1.0, 3.0, 0.0);
 #ifdef __sgi
       HTSetPresentation("video/quicktime", "movieplayer -f %s", 1.0, 3.0, 0.0); /* sgi */
       HTSetPresentation("video/x-sgi-movie", "movieplayer -f %s", 1.0, 3.0, 0.0); /* sgi */
+#else
+      HTSetPresentation("video/x-msvideo", "xanim %s", 1.0, 3.0, 0.0);
 #endif
 
       HTSetPresentation("application/postscript", "ghostview %s", 1.0, 3.0, 0.0);
--- libwww2/HTMIME.c.orig	Wed Jan 11 09:03:52 1995
+++ libwww2/HTMIME.c	Thu Sep 14 17:01:09 1995
@@ -570,7 +570,7 @@
 {
     HTStream* me;
     
-    me = malloc(sizeof(*me));
+    me = (HTStream*)malloc(sizeof(*me));
     me->isa = &HTMIME;       
 
     if (TRACE)
--- libwww2/HTNews.c.orig	Tue Jun 13 02:03:33 1995
+++ libwww2/HTNews.c	Mon Sep 18 15:14:06 1995
@@ -20,6 +20,10 @@
 
 #include "HTNews.h"
 
+#ifdef MIME_HEAD
+#define TEXT_PLAIN	"text/plain"
+#define CHARSET		"ISO-2022-JP"
+#endif /* MIME_HEAD */
 
 #define NEWS_PORT 119		/* See rfc977 */
 #define APPEND			/* Use append methods */
@@ -52,7 +56,7 @@
 
 /*#define TRACE 1 */
 
-#define LINE_LENGTH 512		   /* Maximum length of line of ARTICLE etc */
+#define LINE_LENGTH 8192	/* Maximum length of line of ARTICLE etc */
 #define GROUP_NAME_LENGTH    256   /* Maximum length of group name */
 
 
@@ -84,6 +88,13 @@
 
 PRIVATE ConfigView = 1;                         /* view format configure */
 
+#ifdef NEWS_SELECT
+PRIVATE NewsListConfigView = 1;   /* news list view format configure */
+PRIVATE NewsListConfigFlag = 0;
+PRIVATE NewsConfigView = 1;       /* news view format configure */
+PRIVATE NewsHeaderConfigView = 1; /* news header view format configure */
+#endif /* NEWS_SELECT */
+
 /* PRIVATE HText *	HT;	*/		/* the new hypertext */
 PRIVATE HTStructured * target;			/* The output sink */
 PRIVATE HTStructuredClass targetClass;		/* Copy of fn addresses */
@@ -95,6 +106,9 @@
 #define START(e) (*targetClass.start_element)(target, e, 0, 0)
 #define END(e) (*targetClass.end_element)(target, e)
 
+#ifdef NEWS_SELECT
+extern int mo_been_here_before_huh_dad(char *);
+#endif /* NEWS_SELECT */
 
 /* Internal Utility Functions ----------------------------------------------*/
 
@@ -295,6 +309,9 @@
     	CONST char * p;
 	strcpy(href,"news:");
 	for(p=addr; *p && (*p!='>') && !WHITE(*p) && (*p!=','); p++);
+#ifdef L10N
+	if (*addr == '<') addr++;
+#endif /* L10N */
         strncat(href, addr, p-addr);	/* Make complete hypertext reference */
     }
     
@@ -334,6 +351,34 @@
     }
 }
 
+#ifdef NEWS_SELECT
+/*	Write list(Message-ID) of anchors
+**	---------------------
+**      Message-ID is changed to integer. (ex. <1>, <2>,....)
+**
+** On entry,
+**	text 	points to a comma or space separated list of addresses.
+*/
+PRIVATE void write_message_id_anchors ARGS1 (char *,text)
+{
+    char * start = text;
+    char * end;
+    char line[8];
+    char c;
+    int i=0;
+    for (;;) {
+        for(;*start && (WHITE(*start)); start++);  /* Find start */
+	if (!*start) return;			/* (Done) */
+        for(end=start; *end && (*end!=' ') && (*end!=','); end++) ;
+	if (*end) end++; 	/* Include comma or space but not NULL */
+	i++;
+	sprintf(line,"<%d> ",i);
+	write_anchor(line, start);
+	start = end;			/* Point to next one */
+    }
+}
+#endif /* NEWS_SELECT */
+
 /*	Abort the connection					abort_socket
 **	--------------------
 */
@@ -430,6 +475,318 @@
     } /* if bad status */
 }
 
+#ifdef L10N
+#define ESC	0x1b
+#define IS_EUC(c)     ((0xa1 <= (c)) && ((c) <= 0xfe))
+#define IS_SJIS1(c)   (((0x81 <= (c)) && ((c) <= 0x9f)) || \
+                       ((0xe0 <= (c)) && ((c) <= 0xfc)))
+#define IS_SJIS2(c)   ((0x40 <= (c)) && ((c) <= 0xfc) && ((c) != 0x7f))
+
+#define E2E(i1, i2, o1, o2) {(o1) = (i1); (o2) = (i2);}
+#define I2E(i1, i2, o1, o2) {(o1) = ((i1) | 0x80); (o2) = ((i2) | 0x80);}
+#define S2E(i1, i2, o1, o2) {\
+    if ((i1) >= 0xe0) { (i1) -= (0xe0 - 0xa0); }\
+    if ((i2) >= 0x80) { (i2)--; }\
+    if ((i2) < 0x40 + 94) {\
+      (o1) = (((((i1) - 0x81) * 2) + 0x21) | 0x80);\
+      (o2) = (((i2) - (0x40 - 0x21)) | 0x80);\
+    } else {\
+      (o1) = (((((i1) - 0x81) * 2) + 0x21 + 1) | 0x80);\
+      (o2) = (((i2) - (0x9e - 0x21)) | 0x80);\
+    }\
+}
+
+PRIVATE int mygetch;
+PRIVATE int mygetflag;
+
+PRIVATE int myGetCharacterInit NOARGS
+{
+	mygetch = '\0';
+	mygetflag = 0;
+}
+
+PRIVATE int myGetCharacter NOARGS
+{
+	int c;
+
+	if (mygetch != '\0') {
+		c = mygetch;
+		mygetch = '\0';
+	}
+	else {
+		if ((c = HTGetCharacter ()) == LF && mygetflag == 0) {
+			mygetch = HTGetCharacter ();
+			switch (mygetch) {
+			case ' ':
+			case '\t':
+				c = mygetch;
+				mygetch = '\0';
+				break;
+			case '.':
+				mygetflag = 1;
+				break;
+			case LF:
+				mygetflag = 2;
+				break;
+			default:	
+				if (mygetflag == 1) {
+					mygetflag = 0;
+				}
+				break;
+			}
+		}
+	}
+	return c;
+}
+
+PRIVATE int mimenewswrite ARGS1(CONST char *, msg)
+{
+	char mime[1024];
+	char line[1024];
+	char *p,*q;
+	int kflag;
+
+	p = msg;
+	q = line;
+	kflag = 0;
+	for (;;) {
+		if (*p & 0x80) {
+			if (!kflag) {
+				*q++ = ESC;
+				*q++ = '$';
+				*q++ = 'B';
+				kflag = 1;
+			}
+			*q++ = *p++ & 0x7f;
+			*q++ = *p++ & 0x7f;
+		}
+		else {
+			if (kflag) {
+				*q++ = ESC;
+				*q++ = '(';
+				*q++ = 'B';
+				kflag = 0;
+			}
+			*q++ = *p;
+			if (!(*p++)) break;
+		}
+	}
+#ifdef MIME_HEAD
+	MIME_strHeaderEncode(line, mime, sizeof(mime));
+	newswrite(mime);
+#else /* MIME_HEAD */
+	newswrite(line);
+#endif /* MIME_HEAD */
+}
+
+PRIVATE int jisnewswrite ARGS1(CONST char *, msg)
+{
+	char *p,*buf,*q,*t;
+	int kflag,cnt,jflag;
+
+	p = msg;
+	kflag = 0;
+	jflag = 0;
+	cnt = 0;
+	for (;;) {
+		if (*p & 0x80) {
+			if (!kflag) {
+				cnt += 3;
+				kflag = 1;
+				jflag = 1;
+			}
+			cnt += 2;
+			p += 2;
+		}
+		else {
+			if (kflag) {
+				cnt += 3;
+				kflag = 0;
+			}
+			cnt++;
+			if (!(*p++)) break;
+		}
+	}
+	buf = malloc(cnt);
+	p = msg;
+	q = buf;
+	kflag = 0;
+	for (;;) {
+		if (*p & 0x80) {
+			if (!kflag) {
+				*q++ = ESC;
+				*q++ = '$';
+				*q++ = 'B';
+				kflag = 1;
+			}
+			*q++ = *p++ & 0x7f;
+			*q++ = *p++ & 0x7f;
+		}
+		else {
+			if (kflag) {
+				*q++ = ESC;
+				*q++ = '(';
+				*q++ = 'B';
+				kflag = 0;
+			}
+			*q++ = *p;
+			if (!(*p++)) break;
+		}
+	}
+#ifdef MIME_HEAD
+	newswrite("Mime-Version: 1.0\r\n");
+	if (jflag) {
+		t = malloc(27 + strlen(TEXT_PLAIN) + strlen(CHARSET));
+		sprintf(t, "Content-Type: %s; charset=%s\r\n",
+			 TEXT_PLAIN, CHARSET);
+		newswrite(t);
+		free(t);
+	}
+	else {
+		t = malloc(35 + strlen(TEXT_PLAIN));
+		sprintf("Content-Type: %s; charset=US-ASCII\r\n", TEXT_PLAIN);
+		newswrite(t);
+		free(t);
+	}
+#endif
+#ifdef L10N
+	newswrite("X-Newsreader: NCSA Mosaic L10N+\r\n\r\n");
+#else /* L10N */
+	newswrite("X-Newsreader: NCSA Mosaic\r\n\r\n");
+#endif /* L10N */
+	newswrite(buf);
+	free(buf);
+}
+
+int euc_strHeaderDecode(char *in,char *out,int size,int mode)
+{
+	int kflag;
+	unsigned char *p,*q;
+	char tbuf[LINE_LENGTH];
+
+#ifdef MIME_HEAD
+	MIME_strHeaderDecode(in,tbuf,size);
+#else /* MIME_HEAD */
+	strcpy(tbuf,in);
+#endif /* MIME_HEAD */
+	kflag = 0;
+	p = (unsigned char *)tbuf;
+	q = (unsigned char *)out;
+	for (;;) {
+		if (*p == ESC) {
+			p++;
+			switch (*p) {
+			case '$':
+				p++;
+				p++;
+				kflag = 1;
+				break;
+			case '(':
+				p++;
+				p++;
+				kflag = 0;
+				break;
+			}
+		}
+		else if (*p <= 0x20 || kflag == 0) {
+			if(mode) {
+				switch (*p) {
+				case '<':
+					strcpy((char *)q,"&lt;");
+					q += 4;
+					break;
+				case '>':
+					strcpy((char *)q,"&gt;");
+					q += 4;
+					break;
+				case '&':
+					strcpy((char *)q,"&amp;");
+					q += 5;
+					break;
+				case '"':
+					strcpy((char *)q,"&quot;");
+					q += 6;
+					break;
+				default:
+					*q++ = *p;
+					break;
+				}
+			}
+			else {
+				*q++ = (*p & 0x7f);
+			}
+			if (!(*p++)) break;
+		}
+		else {
+			*q++ = (*p++)|0x80;
+		}
+	}
+}
+
+int jislftoeuc(char *in,char *out)
+{
+	int kflag;
+	unsigned char *p,*q;
+	static int sjiseuc=0;
+	int eucflag,sjisflag;
+	unsigned char c1, c2;
+
+	kflag = 0;
+	p = (unsigned char *)in;
+	q = (unsigned char *)out;
+	for (;;) {
+		if (*p == ESC) {
+			p++;
+			switch (*p) {
+			case '$':
+				p++;
+				p++;
+				kflag = 1;
+				break;
+			case '(':
+				p++;
+				p++;
+				kflag = 0;
+				break;
+			}
+		}
+		else {
+			if (c1 = *p++) {
+				if (c1 == LF) {
+					*q++ = c1;
+					*q = '\0';
+					break;
+				} else if (c2 = *p++) {
+					eucflag = (IS_EUC(c1) && IS_EUC(c2));
+					sjisflag = (IS_SJIS1(c1) && IS_SJIS2(c2));
+					if (eucflag && sjisflag) {
+						if (sjiseuc) {
+							S2E(c1, c2, *q++, *q++);
+						} else {
+							E2E(c1, c2, *q++, *q++);
+						}
+					} else if (sjisflag) {
+						S2E(c1, c2, *q++, *q++);
+						sjiseuc = 1;
+					} else if (eucflag) {
+						S2E(c1, c2, *q++, *q++);
+						sjiseuc = 0;
+					} else if (kflag == 1 && c1 > 0x20) {
+						I2E(c1, c2, *q++, *q++);
+					} else {
+						*q++ = c1;
+						p--;
+					}
+				} else {
+					*q++ = c1; *q = '\0'; break;
+				}
+			} else {
+				*q++ = c1; *q = '\0'; break;
+			}
+		}
+	}
+}
+#endif /* L10N */
 
 PRIVATE int response ARGS1(CONST char *,command)
 {
@@ -568,6 +925,9 @@
 	    abort_socket();	/* End of file, close socket */
 	    return NULL;	/* End of file on response */
 	}
+#ifdef L10N
+	*p &= 0x7f;
+#endif
 
 	if(*p == '\n'){
 	    *++p = 0;
@@ -589,6 +949,9 @@
     int status, done;
     char *aname,*p;
     char line[LINE_LENGTH+1];
+#ifdef L10N
+    char mime[LINE_LENGTH+1];
+#endif /* L10N */
     char buffer[LINE_LENGTH+1];
 
     *ref = *grp = *subj = *from = NULL;
@@ -619,8 +982,15 @@
 	
 	p = line;				/* Write pointer */
 	done = NO;
+#ifdef L10N
+	myGetCharacterInit();
+#endif /* L10N */
 	while(!done){
+#ifdef L10N
+	    char ch = *p++ = myGetCharacter ();
+#else /* L10N */
 	    char ch = *p++ = HTGetCharacter ();
+#endif /* L10N */
 	    if (ch==(char)EOF) {
 		abort_socket();	/* End of file, close socket */
 		return;		/* End of file on response */
@@ -641,13 +1011,18 @@
 		case 'S':
 		case 's':
 		    if (match(line, "SUBJECT:"))
+#ifdef L10N
+			euc_strHeaderDecode(line+9, mime, LINE_LENGTH, 0);
+			StrAllocCopy(*subj, mime);/* Save subject */
+#else /* L10N */
 			StrAllocCopy(*subj, line+9);/* Save subject */
+#endif /* L10N */
 		    break;
 		    
 		case 'R':
 		case 'r':
 		    if (match(line, "REFERENCES:")) {
-			p = line + 12;
+			p = line + 11;
 			StrAllocCopy(*ref,p+1);
 		    }
 		    break;
@@ -663,7 +1038,13 @@
 		case 'f':
 		case 'F':
 		    if (match(line, "FROM:")) {
+#ifdef L10N
+			euc_strHeaderDecode(strchr(line,':')+1, mime,
+				LINE_LENGTH, 0);
+			aname = author_name(mime);
+#else /* L10N */
 			aname = author_name(strchr(line,':')+1);
+#endif /* L10N */
 			if (aname && *aname){
 			    StrAllocCopy(*from, aname);
 			    p = *from + strlen(*from) - 1;
@@ -681,7 +1062,7 @@
 	} /* Loop over characters */
     } /* If good response */
 }
- 
+
 int NNTPpost(char *from, char *subj, char *ref, char *groups, char *msg)
 {
     char buf[1024];
@@ -710,18 +1091,30 @@
 
     HTProgress("Posting your article...");
     sprintf(buf,"From: %s\r\n",from);
+#ifdef L10N
+    mimenewswrite(buf);
+#else /* L10N */
     newswrite(buf);
+#endif /* L10N */
     sprintf(buf,"Subject: %s\r\n",subj);
+#ifdef L10N
+    mimenewswrite(buf);
+#else /* L10N */
     newswrite(buf);
+#endif /* L10N */
     if(ref){
 	sprintf(buf,"References: %s\r\n",ref);
 	newswrite(buf);
     }
     sprintf(buf,"Newsgroups: %s\r\n",groups);
     newswrite(buf);
+#ifdef L10N
+    jisnewswrite(msg);
+#else /* L10N */
     sprintf(buf,"X-Newsreader: NCSA Mosaic\r\n\r\n");
     newswrite(buf);
     newswrite(msg);
+#endif /* L10N */
     if(response("\r\n.\r\n") != 240)
 	HTProgress("Article was not posted.");
     else
@@ -793,7 +1186,6 @@
 news_next(char *url)
 {
     NewsArt *art;
-    char buf[128];
 
     if( art = is_news_url(url) ) {
 	if(art->next){
@@ -848,6 +1240,27 @@
     PUTS(line);
     PUTS("</H2>");
 }
+
+#ifdef NEWS_SELECT
+/* Interface with news-gui.c and various others... */
+void NEWSLISTconfig(int viewtype)
+{
+    NewsListConfigView = viewtype;
+    NewsListConfigFlag = 1;
+}
+
+/* Interface with news-gui.c and various others... */
+void NEWSconfig(int viewtype)
+{
+    NewsConfigView = viewtype;
+}
+
+/* Interface with news-gui.c and various others... */
+void NEWSHEADERconfig(int viewtype)
+{
+    NewsHeaderConfigView = viewtype;
+}
+#endif /* NEWS_SELECT */
 		
 /*	Read in an Article					read_article
 **	------------------
@@ -865,12 +1278,19 @@
 {
 
     char line[LINE_LENGTH+1];
+#ifdef L10N
+    char mime[LINE_LENGTH+1];
+#endif /* L10N */
     char *references=NULL;			/* Hrefs for other articles */
     char *newsgroups=NULL;			/* Newsgroups list */
     char *p = line;
     BOOL done = NO;
+#ifdef NEWS_SELECT
+    char *p_save;
+    char mailto[LINE_LENGTH+1];
+#endif /* NEWS_SELECT */
 
-    NewsArt *art,*art2,*art_t;
+    NewsArt *art,*art2;
     int l;
 
     l = strlen(artID)-3; /* ">\n\r" should be stripped outside !!! */
@@ -900,9 +1320,19 @@
 	PUTS("<HR>");
     }
 
+#ifdef NEWS_SELECT
+    p_save = HTGetInputpointer();
+#endif /* NEWS_SELECT */
     (*targetClass.start_element)(target, HTML_ADDRESS, 0, 0);
+#ifdef L10N
+    myGetCharacterInit();
+#endif /* L10N */
     while(!done){
+#ifdef L10N
+	char ch = *p++ = myGetCharacter ();
+#else /* L10N */
 	char ch = *p++ = HTGetCharacter ();
+#endif /* L10N */
 	if (ch==(char)EOF) {
 	    abort_socket();	/* End of file, close socket */
 	    return;		/* End of file on response */
@@ -922,25 +1352,73 @@
 	    } else if (match(line, "SUBJECT:")) {
 		END(HTML_ADDRESS);
 		START(HTML_TITLE);			/** Uuugh! @@@ */
+#ifdef L10N
+		euc_strHeaderDecode(line+8, mime, LINE_LENGTH, 1);
+		PUTS(mime);
+#else /* L10N */
 		PUTS(line+8);
+#endif /* L10N */
 		END(HTML_TITLE);
 		START(HTML_ADDRESS);
 		(*targetClass.start_element)(target, HTML_H1 , 0, 0);
+#ifdef L10N
+		euc_strHeaderDecode(line+8, mime, LINE_LENGTH, 1);
+		PUTS(mime);
+#else /* L10N */
 		PUTS(line+8);
+#endif /* L10N */
 		(*targetClass.end_element)(target, HTML_H1);
 		END(HTML_ADDRESS);
 		(*targetClass.start_element)(target, HTML_ADDRESS , 0, 0);
 	    } else if (match(line, "DATE:")
+#ifndef NEWS_SELECT
 		       || match(line, "FROM:")
+#endif /* NEWS_SELECT */
 		       || match(line, "ORGANIZATION:")) {
 		strcat(line, "\n");
+#ifdef L10N
+		euc_strHeaderDecode(strchr(line,':')+1, mime, LINE_LENGTH, 1);
+		PUTS(mime);
+#else /* L10N */
 		PUTS(strchr(line,':')+1);
+#endif /* L10N */
 	    } else if (match(line, "NEWSGROUPS:")) {
 		StrAllocCopy(newsgroups, HTStrip(strchr(line,':')+1));
 		
 	    } else if (match(line, "REFERENCES:")) {
 		StrAllocCopy(references, HTStrip(strchr(line,':')+1));
-		
+#ifdef NEWS_SELECT		
+	    } else if (match(line, "FROM:")) {
+		int mailaddr = 0;
+		char *ptr, *p_s, *p_e;
+		if (ptr = strchr(line,'@')) {
+		    for(p_s=ptr; *p_s!=' ' && *p_s!='<' && p_s!=line; p_s--);
+		    if (p_s != line) p_s++;
+		    if (p_s != ptr) {
+			for(p_e=ptr; *p_e!=' ' && *p_e!='>' && *p_e!='(' && *p_e!='\0'; p_e++);
+			p_e--;
+			if (p_e != ptr) {
+			    for(ptr=mailto; p_s <= p_e; p_s++,ptr++) *ptr=*p_s;
+			    *ptr='\0';
+			    mailaddr = 1;
+			}
+		    }
+		}
+		strcat(line, "\n");
+		if (mailaddr) {
+		    PUTS("<A HREF=\"mailto:");
+		    PUTS(mailto);
+		    PUTS("\">");
+		}
+#ifdef L10N
+		euc_strHeaderDecode(strchr(line,':')+1, mime, LINE_LENGTH, 1);
+		PUTS(mime);
+#else /* L10N */
+		PUTS(strchr(line,':')+1);
+#endif /* L10N */
+		if (mailaddr)
+		    PUTS("</A>");
+#endif /* NEWS_SELECT */
 	    } /* end if match */
 	    p = line;			/* Restart at beginning */
 	} /* if end of line */
@@ -948,6 +1426,20 @@
     (*targetClass.end_element)(target, HTML_ADDRESS);
     
     if (newsgroups || references) {
+#ifdef NEWS_SELECT
+	if (newsgroups) {
+	    PUTS("Newsgroups:");
+	    write_anchors(newsgroups);
+	    PUTS("<BR>");
+	    free(newsgroups);
+	}
+	if (references) {
+	    PUTS("References:");
+	    write_message_id_anchors(references);
+	    PUTS("<BR>");
+	    free(references);
+	}
+#else /* NEWS_SELECT */
 	(*targetClass.start_element)(target, HTML_DL , 0, 0);
 	if (newsgroups) {
 	    (*targetClass.start_element)(target, HTML_DT , 0, 0);
@@ -965,21 +1457,73 @@
 	    free(references);
 	}
 	(*targetClass.end_element)(target, HTML_DL);
+#endif /* NEWS_SELECT */
     }
+#ifdef NEWS_SELECT
+    if (!NewsHeaderConfigView) {
+	p = line;
+	HTSetInputpointer(p_save);
+	while(!done){
+#ifdef L10N
+	    char ch = *p++ = myGetCharacter ();
+#else /* L10N */
+	    char ch = *p++ = HTGetCharacter ();
+#endif /* L10N */
+	    if (ch==(char)EOF) {
+		abort_socket();	/* End of file, close socket */
+		return;		/* End of file on response */
+	    }
+	    if ((ch == LF) || (p == &line[LINE_LENGTH])) {
+		*--p=0;				/* Terminate the string */
+		if (TRACE) fprintf(stderr, "B %s", line);
+		if ((line[0]=='.') && (line[1] < ' ' && line[1]!='\t')) {
+		    done = YES;
+		    break;
+		} else if (line[0] < ' ' && line[0]!='\t') {
+		    break;	/* End of Header? */
+		} else if (match(line, "SUBJECT:") || match(line, "DATE:") ||
+			   match(line, "FROM:") || match(line, "ORGANIZATION:") ||
+			   match(line, "NEWSGROUPS:") || match(line, "LINES:") ||
+			   match(line, "REFERENCES:") || match(line, "PATH:") ||
+			   match(line, "MESSAGE-ID:")) {
+		    ;
+		} else {
+#ifdef L10N
+		    euc_strHeaderDecode(line, mime, LINE_LENGTH, 1);
+		    PUTS(mime);
+#else /* L10N */
+		    PUTS(line);
+#endif /* L10N */
+		    PUTS("<BR>");
+		} /* if not dot */
+		p = line; /* Restart at beginning */
+	    } /* if end of line */
+	} /* Loop over characters */
+    } /* if end of NewsHeaderConfigView */
+#endif /* NEWS_SELECT */
     PUTS("<HR>\n");
     
 /*	Read in the BODY of the Article:
 */
     (*targetClass.start_element)(target, HTML_PRE , 0, 0);
 
+#ifdef L10N
+    p = mime;
+#else /* L10N */
     p = line;
+#endif /* L10N */
     while(!done){
 	char ch = *p++ = HTGetCharacter ();
 	if (ch==(char)EOF) {
 	    abort_socket();	/* End of file, close socket */
 	    return;		/* End of file on response */
 	}
+#ifdef L10N
+	if ((ch == LF) || (p == &mime[LINE_LENGTH])) {
+	    jislftoeuc(mime,line);
+#else /* L10N */
 	if ((ch == LF) || (p == &line[LINE_LENGTH])) {
+#endif /* L10N */
 	    *p++=0;				/* Terminate the string */
 	    if (TRACE) fprintf(stderr, "B %s", line);
 	    if (line[0]=='.') {
@@ -995,8 +1539,38 @@
 **	Unfortunately, it will pick up mail addresses as well!
 */
 		char *l = line;
-		char *p,*pp;
+		char *p;
 		int f; /* ':' flag */
+#ifdef NEWS_SELECT
+		char *pp;
+		char ch;
+		char dum[2];
+		if (NewsConfigView) {
+		    for(pp=line;*pp!=0;pp++) {
+			ch = *pp;
+			switch(ch) {
+			    case '<':
+				 PUTS("&lt;");
+				break;
+			    case '>':
+				PUTS("&gt;");
+		 		break;
+			    case '&':
+				PUTS("&amp;");
+				break;
+			    case '"':
+				PUTS("&quot;");
+				break;
+			    default :
+				sprintf(dum,"%c",ch);
+				PUTS(dum);
+				break;
+			}
+		    }
+		}
+		else
+		  PUTS(l);
+#else /* NEWS_SELECT */
 #ifdef OLF
 		while (p=strchr(l, '<')) {
 		    char *q  = strchr(p,'>');
@@ -1019,14 +1593,18 @@
 #endif
 		for(f=1,p=line;*p;p++){
 		    if(*p == '<'){
+#ifndef L10N
 			if(strchr(p,'>')){
 			    f = 0;
 			} else {
+#endif /* L10N */
 			    *p = 0;
 			    PUTS(l);
 			    PUTS("&lt;");
 			    l=p+1; /* step over */
+#ifndef L10N
 			}
+#endif /* L10N */
 		    }
 #ifdef VERYCOOL
 			f = 0;
@@ -1057,9 +1635,14 @@
 		    }
 		}
 		PUTS(l);	/* Last bit of the line */
+#endif /* NEWS_SELECT */
 	    } /* if not dot */
 
+#ifdef L10N
+	    p = mime;				/* Restart at beginning */
+#else /* L10N */
 	    p = line;				/* Restart at beginning */
+#endif /* L10N */
 	} /* if end of line */
     } /* Loop over characters */
     
@@ -1098,7 +1681,7 @@
 */
     (*targetClass.start_element)(target, HTML_H1 , 0, 0);
     PUTS( "Newsgroups");
-    (*targetClass.end_element)(target, HTML_PRE);
+    (*targetClass.end_element)(target, HTML_H1);
     p = line;
     (*targetClass.start_element)(target, HTML_MENU , 0, 0);
     while(!done){
@@ -1110,12 +1693,12 @@
 	if ((ch == LF) || (p == &line[LINE_LENGTH])) {
 	    *p++=0;				/* Terminate the string */
 	    if (TRACE) fprintf(stderr, "B %s", line);
-    	    (*targetClass.start_element)(target, HTML_LI , 0, 0);
 	    if (line[0]=='.') {
 		if (line[1]<' ') {		/* End of article? */
 		    done = YES;
 		    break;
 		} else {			/* Line starts with dot */
+		    (*targetClass.start_element)(target, HTML_LI , 0, 0);
 		    PUTS( &line[1]);
 		}
 	    } else {
@@ -1123,12 +1706,17 @@
 /*	Normal lines are scanned for references to newsgroups.
 */
 		if (sscanf(line, "%s %d %d %c", 
-			   group, &last, &first, &postable)==4)
-		    sprintf(line,"<A HREF=\"news:%s\">%s</A> (%d) %s\n",
-			    group,group,
-			    (last<first)?0:(last-first),
+			   group, &last, &first, &postable)==4) {
+		    if (last<first)
+			sprintf(line,"%s (0) %s\n",
+			    postable=='y'?" ":" not postable ");
+		    else
+			sprintf(line,"<A HREF=\"news:%s\">%s</A> (%d) %s\n",
+			    group,group, last-first,
 			    postable=='y'?" ":" not postable ");
-		PUTS(line);
+		    (*targetClass.start_element)(target, HTML_LI, 0, 0);
+		    PUTS(line);
+		}
 	    } /* if not dot */
 	    p = line;			/* Restart at beginning */
 	} /* if end of line */
@@ -1196,17 +1784,17 @@
 )
 {
     NewsArt *art;
-    char *p,*aname, *author, *aref;
-    BOOL done;
-
-    char *num,*title,*date,*msgid,*ref,*bytes,*lines,*from;
-
+    char *p, *aname, *aref, *num,*title,*date,*msgid,*ref,*bytes,*lines,*from;
     char buf[2048];
+#ifdef L10N
+    char mime[2048];
+#endif /* L10N */
+#ifdef NEWS_SELECT
+    char url_news[512];
+#endif /* NEWS_SELECT */
 
-    char *reference=0;			/* Href for article */
     int status, count, first, last;	/* Response fields */
 					/* count is only an upper limit */
-    int c,i;
 
     if(TRACE) fprintf(stderr,"[%s]",response_text);
     sscanf(response_text, "%d %d %d %d", &status, &count, &first, &last);
@@ -1215,7 +1803,12 @@
 
     Count = 0;
 
+#ifdef NEWS_SELECT
+    if(NewsGroup && !strncmp(NewsGroup,groupName,strlen(groupName)) &&
+       !NewsListConfigFlag){
+#else /* NEWS_SELECT */
     if(NewsGroup && !strncmp(NewsGroup,groupName,strlen(groupName))){
+#endif /* NEWS_SELECT */
 	last_required = last;
 	first_required = ReadLast +1;
     } else {
@@ -1224,6 +1817,9 @@
 	ClearArtList();
 
 	StrAllocCopy(NewsGroup, groupName);
+#ifdef NEWS_SELECT
+	NewsListConfigFlag = 0;
+#endif /* NEWS_SELECT */
     }
 
     GroupFirst = first;
@@ -1267,11 +1863,20 @@
 
 	parsexover(buf,&num,&title,&from,&date,&msgid,&ref,&bytes,&lines);
 
+#ifdef NEWS_SELECT
+	sprintf(url_news,"news:%s",msgid);
+        if (NewsListConfigView || !mo_been_here_before_huh_dad(url_news)) {
+#endif /* NEWS_SELECT */
 	art->num = atoi(num);
 	
 	Count++;
 	     	
+#ifdef L10N
+	euc_strHeaderDecode(title, mime, sizeof(mime), 1);
+	StrAllocCopy(art->SUBJ, mime);
+#else /* L10N */
 	StrAllocCopy(art->SUBJ, title);
+#endif /* L10N */
 	
 	if(ref[0]){
 	    p = ref;
@@ -1301,7 +1906,12 @@
 	StrAllocCopy(art->ID, msgid);
 
 
+#ifdef L10N
+	euc_strHeaderDecode(from, mime, sizeof(mime), 1);
+	aname = author_name(mime);
+#else /* L10N */
 	aname = author_name(from);
+#endif /* L10N */
 	if (aname && *aname){
 	    StrAllocCopy(art->FROM, aname);
 	    p = art->FROM + strlen(art->FROM) - 1;
@@ -1310,6 +1920,9 @@
 	    StrAllocCopy(art->FROM, "Unknown");
 	}
 	AddArtTop(art);
+#ifdef NEWS_SELECT
+        }
+#endif /* NEWS_SELECT */
 
     }
     
@@ -1329,6 +1942,12 @@
 
     char buffer[LINE_LENGTH];
     char line[LINE_LENGTH];
+#ifdef L10N
+    char mime[LINE_LENGTH+1];
+#endif /* L10N */
+#ifdef NEWS_SELECT
+    char url_news[512];
+#endif /* NEWS_SELECT */
     char *reference=0;			/* Href for article */
     int artno;				/* Article number WITHIN GROUP */
     int status, count, first, last;	/* Response fields */
@@ -1341,12 +1960,20 @@
     if(TRACE) fprintf(stderr,"Newsgroup status=%d, count=%d, (%d-%d)",
     			status, count, first, last);
 
+#ifdef NEWS_SELECT
+    if(NewsGroup && !strncmp(NewsGroup,groupName,strlen(groupName)) &&
+       !NewsListConfigFlag){
+#else /* NEWS_SELECT */
     if(NewsGroup && !strncmp(NewsGroup,groupName,strlen(groupName))){
+#endif /* NEWS_SELECT */
 	last_required = last;
 	first_required = ReadLast +1;
     } else {
 	ClearArtList();
 	StrAllocCopy(NewsGroup, groupName);
+#ifdef NEWS_SELECT
+	NewsListConfigFlag = 0;
+#endif /* NEWS_SELECT */
     }
 
 
@@ -1429,8 +2056,15 @@
 	    
 	    p = line;				/* Write pointer */
 	    done = NO;
+#ifdef L10N
+	    myGetCharacterInit();
+#endif /* L10N */
 	    while(!done){
+#ifdef L10N
+		char ch = *p++ = myGetCharacter ();
+#else /* L10N */
 		char ch = *p++ = HTGetCharacter ();
+#endif /* L10N */
 		if (ch==(char)EOF) {
 		    abort_socket();	/* End of file, close socket */
 		    return;		/* End of file on response */
@@ -1451,7 +2085,14 @@
 		    case 'S':
 		    case 's':
 			if (match(line, "SUBJECT:"))
+#ifdef L10N
+			    {
+			    euc_strHeaderDecode(line+9, mime, LINE_LENGTH, 1);
+			    StrAllocCopy(art->SUBJ, mime);/* Save subject */
+			    }
+#else /* L10N */
 			    StrAllocCopy(art->SUBJ, line+9);/* Save subject */
+#endif /* L10N */
 			break;
 			
 		    case 'R':
@@ -1492,7 +2133,13 @@
 		    case 'f':
 		    case 'F':
 			if (match(line, "FROM:")) {
+#ifdef L10N
+			    euc_strHeaderDecode(strchr(line,':')+1, mime,
+			    	LINE_LENGTH, 1);
+			    aname = author_name(mime);
+#else /* L10N */
 			    aname = author_name(strchr(line,':')+1);
+#endif /* L10N */
 			    if (aname && *aname)
 				{
                                     StrAllocCopy(art->FROM, aname);
@@ -1511,6 +2158,18 @@
 		    p = line;		/* Restart at beginning */
 		} /* if end of line */
 	    } /* Loop over characters */
+#ifdef NEWS_SELECT
+	    sprintf(url_news,"news:%s",art->ID);
+	    if (NewsListConfigView == 0 && mo_been_here_before_huh_dad(url_news)) {
+		if (art->SUBJ) free(art->SUBJ);
+		if (art->FirstRef) free(art->FirstRef);
+		if (art->LastRef) free(art->LastRef);
+		if (art->ID) free(art->ID);
+		if (art->FROM) free(art->FROM);
+		free(art);
+	    }
+	    else
+#endif /* NEWS_SELECT */
 	    AddArtTop(art);
 
 /*	 indicate progress!   @@@@@@
@@ -1541,14 +2200,8 @@
 )
 {
     NewsArt *art,*art2;
-    char *p;
-    BOOL done;
-
     char buffer[LINE_LENGTH];
-    char *reference=0;			/* Href for article */
-    int i,artno;			 /* Article number WITHIN GROUP */
-    int status, count;	                 /* Response fields */
-					/* count is only an upper limit */
+    int i;
 
     
     if (!FirstArt) {
--- libwww2/HTSort.c.orig	Wed Jan 11 09:03:57 1995
+++ libwww2/HTSort.c	Thu Sep 14 17:01:09 1995
@@ -49,7 +49,7 @@
 
 void HTSortSort (void)
 {
-  qsort ((void *)hunk, count, sizeof (char *), dsortf);
+  qsort ((void *)hunk, count, sizeof (char *), (int (*)())dsortf);
 
   return;
 }
--- libwww2/HTTCP.c.orig	Sat Apr 22 09:59:42 1995
+++ libwww2/HTTCP.c	Thu Sep 14 17:01:09 1995
@@ -43,6 +43,7 @@
 */
 
 PRIVATE char *hostname=0;		/* The name of this host */
+static int connection_timeout = -1;
 
 
 /*	PUBLIC VARIABLES
@@ -65,7 +66,9 @@
 extern int errno;
 #endif /* errno */
 
+#if !defined(__FreeBSD__) && !defined(__NetBSD__)
 extern char *sys_errlist[];		/* see man perror on cernvax */
+#endif
 extern int sys_nerr;
 
 /*	Report Internet Error
@@ -431,7 +434,9 @@
 	  /* linux (and some other os's, I think) clear timeout... 
 	     let's reset it every time. bjs */
 	  timeout.tv_sec = 0;
-	  timeout.tv_usec = 100000;
+	  if (connection_timeout == -1)
+	    connection_timeout = GetConnectTimeout();
+	  timeout.tv_usec = connection_timeout;
 
 #ifdef __hpux
           ret = select(FD_SETSIZE, NULL, (int *)&writefds, NULL, &timeout);
@@ -546,7 +551,9 @@
 	  /* linux (and some other os's, I think) clear timeout... 
 	     let's reset it every time. bjs */
 	timeout.tv_sec = 0;
-	timeout.tv_usec = 100000;
+	if (connection_timeout == -1)
+	  connection_timeout = GetConnectTimeout();
+	timeout.tv_usec = connection_timeout;
 
 #ifdef __hpux
         ret = select(FD_SETSIZE, (int *)&readfds, NULL, NULL, &timeout);
@@ -571,5 +578,10 @@
           }
     }
 
+#ifdef USE_SSL
+  if (ssl_active_flag && (fildes == SSL_get_fd(ssl_con)))
+  return SSL_read(ssl_con, buf, nbyte);
+  else
+#endif /* USE_SSL */
   return read (fildes, buf, nbyte);
 }
--- libwww2/HTTCP.h.orig	Wed Jan 11 09:03:58 1995
+++ libwww2/HTTCP.h	Thu Sep 14 17:01:10 1995
@@ -104,4 +104,11 @@
 
 extern int HTDoRead (int, void *, unsigned);
 
+/*	Get Connect Timeout Value
+**	-------------------------
+**
+*/
+
+extern int GetConnectTimeout();
+
 #endif   /* HTTCP_H */
--- libwww2/HTTP.c.orig	Tue Jun 13 16:14:38 1995
+++ libwww2/HTTP.c	Thu Sep 14 17:01:10 1995
@@ -37,7 +37,12 @@
 /* defined in src/mo-www.c */
 extern char * HTAppName;	/* Application name: please supply */
 extern char * HTAppVersion;	/* Application version: please supply */
+#ifndef SECURE
 extern char * HTReferer;        /* HTTP referer field - amb */
+#endif /* SECURE */
+#ifdef L10N
+extern char * mo_get_accept_languages();
+#endif /* L10N */
 
 /* Variables that control whether we do a POST or a GET,
    and if a POST, what and how we POST. */
@@ -230,6 +235,7 @@
               HTLibraryVersion, CR, LF);
       StrAllocCat(command, line);
 
+#ifndef SECURE
       /* HTTP Referer field, specifies back-link URL   - amb */
       if (HTReferer)
 	{
@@ -237,6 +243,24 @@
 	  StrAllocCat(command, line);
 	  HTReferer = NULL;
 	}
+#endif /* SECURE */
+#ifdef L10N
+      {	char *str, *token, ch;
+      if ((str = strdup(mo_get_accept_languages())) != NULL) {
+	while (*str != '\0') {
+	  while ((*str==' ')||(*str=='\t')||(*str==','))
+	    str++;
+	  token = str;
+	  while ((*str!='\0')&&(*str!=' ')&&(*str!='\t')&&(*str!=','))
+	    str++;
+	  ch = *str; *str = '\0';
+	  sprintf(line, "Accept-Language: %s%c%c", token, CR, LF);
+	  StrAllocCat(command, line);
+	  *str = ch;
+	}
+      }
+      }
+#endif /* L10N */
       
       {
         char *docname;
@@ -355,7 +379,6 @@
   {
     /* Get numeric status etc */
     BOOL end_of_file = NO;
-    HTAtom * encoding = HTAtom_for("8bit");
     int buffer_length = INIT_LINE_SIZE;
     
     line_buffer = (char *) malloc(buffer_length * sizeof(char));
@@ -493,7 +516,7 @@
         server_version[6] != '.') 
       {	
         /* HTTP0 reply */
-        HTAtom * encoding;
+        HTAtom * encoding = HTAtom_for("8bit");
 
         if (TRACE)
           fprintf (stderr, "--- Talking HTTP0.\n");
--- libwww2/HTTPS.c.orig	Thu Sep 14 17:01:10 1995
+++ libwww2/HTTPS.c	Thu Sep 14 17:01:10 1995
@@ -0,0 +1,757 @@
+#ifdef USE_SSL
+/*	HyperText Tranfer Protocol	- Client implementation		HTTPS.c
+**	==========================
+*/
+
+#include "HTTP.h"
+
+#define HTTP_VERSION	"HTTP/1.0"
+
+#define INIT_LINE_SIZE		1024	/* Start with line buffer this big */
+#define LINE_EXTEND_THRESH	256	/* Minimum read size */
+#define VERSION_LENGTH 		20	/* for returned protocol version */
+
+#include "HTParse.h"
+#include "HTUtils.h"
+#include "tcp.h"
+#include "HTTCP.h"
+#include "HTFormat.h"
+#include "HTFile.h"
+#include <ctype.h>
+#include "HTAlert.h"
+#include "HTMIME.h"
+#include "HTML.h"
+#include "HTInit.h"
+#include "HTAABrow.h"
+
+/* I know...I know...a lib should not depend on a program... */
+#define _LIBWWW2
+#include "../src/kcms.h"
+#include <ssl.h>
+
+/* #define TRACE 1 */
+
+struct _HTStream 
+{
+  HTStreamClass * isa;
+};
+
+/* defined in src/mo-www.c */
+extern char * HTAppName;	/* Application name: please supply */
+extern char * HTAppVersion;	/* Application version: please supply */
+#ifndef SECURE
+extern char * HTReferer;        /* HTTP referer field - amb */
+#endif /* SECURE */
+#ifdef L10N
+extern char * mo_get_accept_languages();
+#endif /* L10N */
+
+/* Variables that control whether we do a POST or a GET,
+   and if a POST, what and how we POST. */
+
+/* these three vars are shared with HTTP.c ... and known in mo-www.c */
+extern int do_post;
+extern char *post_content_type;
+extern char *post_data;
+extern BOOL using_gateway;    /* are we using an HTTP gateway? */
+extern BOOL using_proxy;      /* are we using an HTTP proxy gateway? */
+
+
+SSL *ssl_con;
+static int ssl_init_done = 0;
+int ssl_active_flag = 0;
+int ssl_debug_flag = 0;
+int ssl_verify_flag = SSL_VERIFY_NONE;
+
+/*		Load Document from HTTPS Server			HTLoadHTTPS()
+**		===============================
+**
+**	Given a hypertext address, this routine loads a document.
+**
+**
+** On entry,
+**	arg	is the hypertext reference of the article to be loaded.
+**
+** On exit,
+**	returns	>=0	If no error, a good socket number
+**		<0	Error.
+**
+**	The socket must be closed by the caller after the document has been
+**	read.
+**
+*/
+PUBLIC int HTLoadHTTPS ARGS4 (
+	char *, 		arg,
+	HTParentAnchor *,	anAnchor,
+	HTFormat,		format_out,
+	HTStream*,		sink)
+{
+  int s;				/* Socket number for returned data */
+  char *command;			/* The whole command */
+  char *eol;			/* End of line if found */
+  char *start_of_data;		/* Start of body of reply */
+  int status;				/* tcp return */
+  int bytes_already_read;
+  char crlf[3];			/* A CR LF equivalent string */
+  HTStream *target;		/* Unconverted data */
+  HTFormat format_in;			/* Format arriving in the message */
+  
+  BOOL had_header;		/* Have we had at least one header? */
+  char *line_buffer;
+  char *line_kept_clean;
+  BOOL extensions;		/* Assume good HTTP server */
+  int compressed;
+  char line[256];
+  
+  int length, doing_redirect, rv;
+  int already_retrying = 0;
+  int return_nothing;
+  
+  if (!arg)
+    {
+      status = -3;
+      HTProgress ("Bad request.");
+      goto done;
+    }
+  if (!*arg) 
+    {
+      status = -2;
+      HTProgress ("Bad request.");
+      goto done;
+    }
+  
+  sprintf(crlf, "%c%c", CR, LF);
+
+  /* At this point, we're talking HTTP/1.0. */
+  extensions = YES;
+
+ try_again:
+  /* All initializations are moved down here from up above,
+     so we can start over here... */
+  eol = 0;
+  bytes_already_read = 0;
+  had_header = NO;
+  length = 0;
+  doing_redirect = 0;
+  compressed = 0;
+  target = NULL;
+  line_buffer = NULL;
+  line_kept_clean = NULL;
+  return_nothing = 0;
+
+  status = HTDoConnect (arg, "HTTPS", HTTPS_TCP_PORT, &s);
+  if (status == HT_INTERRUPTED)
+    {
+      /* Interrupt cleanly. */
+      if (TRACE)
+        fprintf (stderr,
+                 "HTTPS: Interrupted on connect; recovering cleanly.\n");
+      HTProgress ("Connection interrupted.");
+      /* status already == HT_INTERRUPTED */
+      goto done;
+    }
+  if (status < 0) 
+    {
+      if (TRACE) 
+        fprintf(stderr, 
+                "HTTPS: Unable to connect to remote host for `%s' (errno = %d).\n", arg, errno);
+      HTProgress ("Unable to connect to remote host.");
+      status = HT_NO_DATA;
+      goto done;
+    }
+
+  /* SSL time now ... */
+
+  if (!ssl_init_done)
+    {
+      int i;
+      if (ssl_debug_flag)
+	{
+	  SSL_debug("mosaic.log");
+	  (void)freopen("mosaic.err", "w", stderr);
+	  SSL_ERR = stderr;
+	}
+      else
+	{
+	  SSL_LOG = SSL_ERR = NULL;
+	}
+
+      ssl_con = (SSL *)SSL_new();
+
+      SSL_set_fd(ssl_con, s);
+      SSL_set_verify(ssl_con, ssl_verify_flag, NULL);
+
+      ssl_init_done = 1;
+      if (!X509_set_default_verify_paths())
+	{
+	  fprintf(stderr,"HTTPS: cannot load certificates via X509_set_default_verify_paths\n");
+	  HTProgress ("Unable to X509_set_default_verify_paths.");
+	  status = HT_NO_DATA;
+	  goto done;
+	}
+    }
+
+  if ( !SSL_connect(ssl_con) )
+    {
+      if (TRACE) 
+	fprintf(stderr,
+		/*
+		"HTTPS: Unable to ssl_connect to remote host for `%s' (errno = %d) %s %s.\n",
+		arg, errno, SSL_error_func_string(SSL_errno),
+		SSL_error_string(SSL_errno));
+		*/
+		"HTTPS: Unable to ssl_connect to remote host for `%s' (errno = %d)\n",
+		arg, errno);
+      HTProgress ("Unable to SSL_connect to remote host.");
+      status = HT_NO_DATA;
+      goto done;
+    }
+  else
+    {
+      ssl_active_flag = 1;
+    }
+  
+  /*	Ask that node for the document,
+   **	omitting the host name & anchor
+   */        
+  {
+    char * p1 = HTParse(arg, "", PARSE_PATH|PARSE_PUNCTUATION);
+    command = malloc(5 + strlen(p1)+ 2 + 31);
+
+    if (do_post)
+      strcpy(command, "POST ");
+    else
+      strcpy(command, "GET ");
+
+    /*
+     * For a gateway, the beginning '/' on the request must
+     * be stripped before appending to the gateway address.
+     */
+    if ((using_gateway)||(using_proxy))
+        strcat(command, p1+1);
+    else
+        strcat(command, p1);
+    free(p1);
+  }
+  if (extensions) 
+    {
+      strcat(command, " ");
+      strcat(command, HTTP_VERSION);
+    }
+  
+  strcat(command, crlf);	/* CR LF, as in rfc 977 */
+  
+  if (extensions) 
+    {
+      int n, i;
+      
+      if (!HTPresentations) HTFormatInit();
+      n = HTList_count(HTPresentations);
+
+	/* KCMS Accept Header - swp */
+	if (KCMS_Return_Format==JPEG) {
+		sprintf(line,"Accept: image/x-pjpeg%c%c",CR,LF);
+		StrAllocCat(command, line);
+	}
+	else if (KCMS_Return_Format==JYCC) {
+		sprintf(line,"Accept: image/x-pjycc%c%c",CR,LF);
+		StrAllocCat(command, line);
+	}
+	else if (KCMS_Return_Format==GIF) {
+		sprintf(line,"Accept: image/x-pgif%c%c",CR,LF);
+		StrAllocCat(command, line);
+	}
+
+/* Instead of sending a massive list of Accept: headers, we are going to
+   just send one now, saying that we accept everything - amb */
+
+/* changed back to sending the massive list of accept headers because it
+   is the "right" way (and we are catching hell for it!) - swp */
+
+      for(i=0; i<n; i++) 
+        {
+          HTPresentation * pres = HTList_objectAt(HTPresentations, i);
+          if (pres->rep_out == WWW_PRESENT) 
+            {
+              sprintf(line, "Accept: %s%c%c",
+                      HTAtom_name(pres->rep), CR, LF);
+              StrAllocCat(command, line);
+            }
+        }
+
+      sprintf(line, "User-Agent:  %s/%s  libwww/%s%c%c",
+              HTAppName ? HTAppName : "unknown",
+              HTAppVersion ? HTAppVersion : "0.0",
+              HTLibraryVersion, CR, LF);
+      StrAllocCat(command, line);
+
+#ifndef SECURE
+      /* HTTP Referer field, specifies back-link URL   - amb */
+      if (HTReferer)
+	{
+	  sprintf(line, "Referer: %s%c%c", HTReferer, CR, LF);
+	  StrAllocCat(command, line);
+	  HTReferer = NULL;
+	}
+#endif /* SECURE */
+#ifdef L10N
+      {	char *str, *token, ch;
+      if ((str = strdup(mo_get_accept_languages())) != NULL) {
+	while (*str != '\0') {
+	  while ((*str==' ')||(*str=='\t')||(*str==','))
+	    str++;
+	  token = str;
+	  while ((*str!='\0')&&(*str!=' ')&&(*str!='\t')&&(*str!=','))
+	    str++;
+	  ch = *str; *str = '\0';
+	  sprintf(line, "Accept-Language: %s%c%c", token, CR, LF);
+	  StrAllocCat(command, line);
+	  *str = ch;
+	}
+      }
+      }
+#endif /* L10N */
+      
+      {
+        char *docname;
+        char *hostname;
+        char *colon;
+        int portnumber;
+        char *auth;
+        
+        docname = HTParse(arg, "", PARSE_PATH);
+        hostname = HTParse(arg, "", PARSE_HOST);
+        if (hostname &&
+            NULL != (colon = strchr(hostname, ':'))) 
+          {
+            *(colon++) = '\0';	/* Chop off port number */
+            portnumber = atoi(colon);
+          }
+        else portnumber = HTTPS_TCP_PORT;
+        
+        if (NULL!=(auth=HTAA_composeAuth(hostname, portnumber, docname))) 
+          {
+            sprintf(line, "%s%c%c", auth, CR, LF);
+            StrAllocCat(command, line);
+          }
+        if (TRACE) 
+          {
+            if (auth)
+              fprintf(stderr, "HTTPS: Sending authorization: %s\n", auth);
+            else
+              fprintf(stderr, "HTTPS: Not sending authorization (yet)\n");
+          }
+        FREE(hostname);
+        FREE(docname);
+      }
+    }
+
+  if (do_post)
+    {
+      if (TRACE)
+        fprintf (stderr, "HTTPS: Doing post, content-type '%s'\n",
+                 post_content_type);
+      sprintf (line, "Content-type: %s%c%c",
+               post_content_type ? post_content_type : "lose", CR, LF);
+      StrAllocCat(command, line);
+      {
+        int content_length;
+        if (!post_data)
+          content_length = 4; /* 4 == "lose" :-) */
+        else
+          content_length = strlen (post_data);
+        sprintf (line, "Content-length: %d%c%c",
+                 content_length, CR, LF);
+        StrAllocCat(command, line);
+      }
+      
+      StrAllocCat(command, crlf);	/* Blank line means "end" */
+      
+      if (post_data)
+        StrAllocCat(command, post_data);
+      else
+        StrAllocCat(command, "lose");
+    }
+
+  StrAllocCat(command, crlf);	/* Blank line means "end" */
+
+  if (TRACE)
+    fprintf (stderr, "Writing:\n%s----------------------------------\n",
+             command);
+  
+  HTProgress ("Sending HTTPS request.");
+
+  status = SSL_write(ssl_con, command, (int)strlen(command));
+  free (command);
+  if (status <= 0) 
+    {
+      if (status == 0)
+        {
+          if (TRACE)
+            fprintf (stderr, "HTTPS: Got status 0 in initial write\n");
+          /* Do nothing. */
+        }
+      else if 
+        ((errno == ENOTCONN || errno == ECONNRESET || errno == EPIPE) &&
+         !already_retrying &&
+         /* Don't retry if we're posting. */ !do_post)
+          {
+            /* Arrrrgh, HTTP 0/1 compability problem, maybe. */
+            if (TRACE)
+              fprintf 
+                (stderr, 
+                 "HTTPS: BONZO ON WRITE Trying again with HTTP0 request.\n");
+            HTProgress ("Retrying as HTTPS0 request.");
+            NETCLOSE(s);
+            extensions = NO;
+            already_retrying = 1;
+            goto try_again;
+          }
+      else
+        {
+          if (TRACE)
+            fprintf (stderr, "HTTPS: Hit unexpected network WRITE error; aborting connection.\n");
+          NETCLOSE (s);
+          status = -1;
+          HTProgress ("Unexpected network write error; connection aborted.");
+          goto done;
+        }
+    }
+  
+  if (TRACE)
+    fprintf (stderr, "HTTPS: WRITE delivered OK\n");
+  HTProgress ("Done sending HTTPS request; waiting for response.");
+
+  /*	Read the first line of the response
+   **	-----------------------------------
+   */
+
+  {
+    /* Get numeric status etc */
+    BOOL end_of_file = NO;
+    HTAtom * encoding = HTAtom_for("8bit");
+    int buffer_length = INIT_LINE_SIZE;
+    
+    line_buffer = (char *) malloc(buffer_length * sizeof(char));
+    
+    do 
+      {	/* Loop to read in the first line */
+        /* Extend line buffer if necessary for those crazy WAIS URLs ;-) */
+        if (buffer_length - length < LINE_EXTEND_THRESH) 
+          {
+            buffer_length = buffer_length + buffer_length;
+            line_buffer = 
+              (char *) realloc(line_buffer, buffer_length * sizeof(char));
+          }
+        if (TRACE)
+          fprintf (stderr, "HTTPS: Trying to read %d\n",
+                   buffer_length - length - 1);
+        status = SSL_read(ssl_con, line_buffer + length,
+                         buffer_length - length - 1);
+        if (TRACE)
+          fprintf (stderr, "HTTPS: Read %d\n", status);
+        if (status <= 0) 
+          {
+            /* Retry if we get nothing back too; 
+               bomb out if we get nothing twice. */
+            if (status == HT_INTERRUPTED)
+              {
+                if (TRACE)
+                  fprintf (stderr, "HTTPS: Interrupted initial read.\n");
+                HTProgress ("Connection interrupted.");
+                status = HT_INTERRUPTED;
+		NETCLOSE (s);
+                goto clean_up;
+              }
+            else if 
+              (status < 0 &&
+               (errno == ENOTCONN || errno == ECONNRESET || errno == EPIPE) &&
+               !already_retrying &&
+               !do_post)
+              {
+                /* Arrrrgh, HTTP 0/1 compability problem, maybe. */
+                if (TRACE)
+                  fprintf (stderr, "HTTPS: BONZO Trying again with HTTP0 request.\n");
+                NETCLOSE(s);
+                if (line_buffer) 
+                  free(line_buffer);
+                if (line_kept_clean) 
+                  free(line_kept_clean);
+                
+                extensions = NO;
+                already_retrying = 1;
+                HTProgress ("Retrying as HTTP0 request.");
+                goto try_again;
+              }
+            else
+              {
+                if (TRACE)
+                  fprintf (stderr, "HTTPS: Hit unexpected network read error; aborting connection; status %d.\n", status);
+                HTProgress 
+                  ("Unexpected network read error; connection aborted.");
+
+                NETCLOSE (s);
+                status = -1;
+                goto clean_up;
+              }
+          }
+
+        bytes_already_read += status;
+        {
+          char line[256];
+          sprintf (line, "Read %d bytes of data.", bytes_already_read);
+          HTProgress (line);
+        }
+        
+        if (status == 0) 
+          {
+            end_of_file = YES;
+            break;
+          }
+        line_buffer[length+status] = 0;
+        
+        if (line_buffer)
+          {
+            if (line_kept_clean)
+              free (line_kept_clean);
+            line_kept_clean = (char *)malloc (buffer_length * sizeof (char));
+            bcopy (line_buffer, line_kept_clean, buffer_length);
+          }
+        
+        eol = strchr(line_buffer + length, LF);
+        /* Do we *really* want to do this? */
+        if (eol && eol != line_buffer && *(eol-1) == CR) 
+          *(eol-1) = ' '; 
+        
+        length = length + status;
+
+        /* Do we really want to do *this*? */
+        if (eol) 
+          *eol = 0;		/* Terminate the line */
+      }
+    /* All we need is the first line of the response.  If it's a HTTP/1.0
+       response, then the first line will be absurdly short and therefore
+       we can safely gate the number of bytes read through this code
+       (as opposed to below) to ~1000. */
+    /* Well, let's try 100. */
+    while (!eol && !end_of_file && bytes_already_read < 100);
+  } /* Scope of loop variables */
+    
+    
+  /*	We now have a terminated unfolded line. Parse it.
+   **	-------------------------------------------------
+   */
+  if (TRACE)
+    fprintf(stderr, "HTTPS: Rx: %s\n", line_buffer);
+  
+  {
+    int fields;
+    char server_version[VERSION_LENGTH+1];
+    int server_status;
+
+    server_version[0] = 0;
+    
+    fields = sscanf(line_buffer, "%20s %d",
+                    server_version,
+                    &server_status);
+    
+    if (TRACE)
+      fprintf (stderr, "HTTPS: Scanned %d fields from line_buffer\n", fields);
+    if (TRACE)
+      fprintf (stderr, "HTTPS: line_buffer '%s'\n", line_buffer);
+    
+    /* Rule out HTTP/1.0 reply as best we can. */
+    if (fields < 2 || !server_version[0] || server_version[0] != 'H' ||
+        server_version[1] != 'T' || server_version[2] != 'T' ||
+        server_version[3] != 'P' || server_version[4] != '/' ||
+        server_version[6] != '.') 
+      {	
+        /* HTTP0 reply */
+        HTAtom * encoding = HTAtom_for("8bit");
+
+        if (TRACE)
+          fprintf (stderr, "--- Talking HTTP0.\n");
+        
+        format_in = HTFileFormat(arg, &encoding, WWW_HTML, &compressed);
+        start_of_data = line_kept_clean;
+      } 
+    else 
+      {
+        /* Decode full HTTP response */
+        format_in = HTAtom_for("www/mime");
+        /* We set start_of_data to "" when !eol here because there
+           will be a put_block done below; we do *not* use the value
+           of start_of_data (as a pointer) in the computation of
+           length or anything else in this situation. */
+        start_of_data = eol ? eol + 1 : "";
+        length = eol ? length - (start_of_data - line_buffer) : 0;
+        
+        if (TRACE)
+          fprintf (stderr, "--- Talking HTTP1.\n");
+        
+        switch (server_status / 100) 
+          {
+          case 3:		/* Various forms of redirection */
+            /* We now support this in the parser, at least. */
+            doing_redirect = 1;
+            break;
+            
+          case 4:		/* "I think I goofed" */
+            switch (server_status) 
+              {
+              case 403:
+                /* 403 is "forbidden"; display returned text. */
+                break;
+
+              case 401:
+                /* length -= start_of_data - text_buffer; */
+                if (HTAA_shouldRetryWithAuth(start_of_data, length, s)) 
+                  {
+                    (void)NETCLOSE(s);
+                    if (line_buffer) 
+                      free(line_buffer);
+                    if (line_kept_clean) 
+                      free(line_kept_clean);
+
+                    if (TRACE) 
+                      fprintf(stderr, "%s %d %s\n",
+                              "HTTPS: close socket", s,
+                              "to retry with Access Authorization");
+                    
+                    HTProgress ("Retrying with access authorization information.");
+                    goto try_again;
+                    break;
+                  }
+                else 
+                  {
+                    /* Fall through. */
+                  }
+
+              default:
+                break;
+              } /* case 4 switch */
+            break;
+
+          case 5:		/* I think you goofed */
+            break;
+            
+          case 2:		/* Good: Got MIME object */
+            switch (server_status)
+              {
+              case 204:
+                return_nothing = 1;
+                format_in = HTAtom_for("text/html");
+                break;
+              default:
+                break;
+              }
+            break;
+            
+          default:		/* bad number */
+            HTAlert("Unknown status reply from server!");
+            break;
+          } /* Switch on server_status/100 */
+        
+      }	/* Full HTTP reply */
+  } /* scope of fields */
+
+  /* Set up the stream stack to handle the body of the message */
+  target = HTStreamStack(format_in,
+                         format_out,
+                         compressed,
+                         sink, anAnchor);
+  
+  if (!target) 
+    {
+      char buffer[1024];	/* @@@@@@@@ */
+      sprintf(buffer, "Sorry, no known way of converting %s to %s.",
+              HTAtom_name(format_in), HTAtom_name(format_out));
+      HTProgress (buffer);
+      status = -1;
+      NETCLOSE (s);
+      goto clean_up;
+    }
+
+  if (!return_nothing)
+    {
+      if (TRACE)
+        fprintf (stderr, "HTTPS: Doing put_block, '%s'\n", start_of_data);
+      /* Recycle the first chunk of data, in all cases. */
+      (*target->isa->put_block)(target, start_of_data, length);
+      
+      /* Go pull the bulk of the data down. */
+      rv = HTCopy(s, target, bytes_already_read);
+      if (rv == -1)
+        {
+          (*target->isa->handle_interrupt) (target);
+          status = HT_INTERRUPTED;
+	  NETCLOSE (s);
+          goto clean_up;
+        }
+      if (rv == -2 && !already_retrying && !do_post)
+        {
+          /* Aw hell. */
+          if (TRACE)
+            fprintf (stderr, "HTTPS: Trying again with HTTP0 request.\n");
+          /* May as well consider it an interrupt -- right? */
+          (*target->isa->handle_interrupt) (target);
+          NETCLOSE(s);
+          if (line_buffer) 
+            free(line_buffer);
+          if (line_kept_clean) 
+            free(line_kept_clean);
+          
+          extensions = NO;
+          already_retrying = 1;
+          HTProgress ("Retrying as HTTP0 request.");
+          goto try_again;
+        }
+    }
+  else
+    {
+      /* return_nothing is high. */
+      (*target->isa->put_string) (target, "<mosaic-access-override>\n");
+      HTProgress ("And silence filled the night.");
+    }
+
+  (*target->isa->end_document)(target);
+
+  /* Close socket before doing free. */
+  NETCLOSE(s);
+  (*target->isa->free)(target);
+
+  if (doing_redirect)
+    {
+      /* OK, now we've got the redirection URL temporarily stored
+         in external variable redirecting_url, exported from HTMIME.c,
+         since there's no straightforward way to do this in the library
+         currently.  Do the right thing. */
+      status = HT_REDIRECTING;
+    }
+  else
+    {
+      status = HT_LOADED;
+    }
+
+  /*	Clean up
+   */
+  
+ clean_up: 
+  if (line_buffer) 
+    free(line_buffer);
+  if (line_kept_clean) 
+    free(line_kept_clean);
+
+ done:
+  /* Clear out on exit, just in case. */
+  do_post = 0;
+  return status;
+}
+
+
+/*	Protocol descriptor
+*/
+
+PUBLIC HTProtocol HTTPS = { "https", HTLoadHTTPS, 0 };
+
+#endif /* USE_SSL */
--- libwww2/HTTPS.h.orig	Thu Sep 14 17:01:10 1995
+++ libwww2/HTTPS.h	Thu Sep 14 17:01:10 1995
@@ -0,0 +1,13 @@
+/*      HyperText Tranfer Protocol                                      HTTP.h
+**      ==========================
+*/
+
+#ifndef HTTPS_H
+#define HTTPS_H
+
+#include "HTAccess.h"
+
+
+extern HTProtocol HTTPS;
+
+#endif /* HTTPS_H */
--- libwww2/HTTelnet.c.orig	Wed Jan 11 09:03:59 1995
+++ libwww2/HTTelnet.c	Thu Sep 14 17:01:10 1995
@@ -152,7 +152,7 @@
 PRIVATE int remote_session ARGS2(char *, access, char *, host)
 {
   char *user, *hostname, *port;
-  int portnum;
+  int portnum = 0;
   char command[256];
   char *xterm_str;
   enum _login_protocol { telnet, rlogin, tn3270 } login_protocol;
@@ -250,7 +250,7 @@
       /* Sleep to let the xterm get up first.
          Otherwise, the popup will get buried. */
       sleep (2);
-      sprintf (str, "When you are connected, log in as '%s'.\0", user);
+      sprintf (str, "When you are connected, log in as '%s'.", user);
       application_user_feedback (str);
     }
   
--- libwww2/HTUtils.h.orig	Wed Jan 11 09:03:59 1995
+++ libwww2/HTUtils.h	Thu Sep 14 17:01:10 1995
@@ -180,6 +180,10 @@
 
 #define TCP_PORT 80     /* Allocated to http by Jon Postel/ISI 24-Jan-92 */
 
+#ifdef USE_SSL
+#define HTTPS_TCP_PORT	443
+#endif /* USE_SSL */
+
 /*      Inline Function WHITE: Is character c white space? */
 /*      For speed, include all control characters */
 
--- libwww2/Makefile.orig	Wed Mar  8 07:49:04 1995
+++ libwww2/Makefile	Thu Sep 14 17:01:10 1995
@@ -27,6 +27,7 @@
 HTString.c \
 HTTCP.c \
 HTTP.c \
+HTTPS.c \
 HTTelnet.c \
 HTWSRC.c \
 HTWriter.c \
--- libwww2/tcp.h.orig	Wed Jan 11 09:04:02 1995
+++ libwww2/tcp.h	Thu Sep 14 17:01:11 1995
@@ -40,9 +40,23 @@
    
  */
 /* Default values of those: */
+#ifdef USE_SSL
+
+#include <stdio.h>
+#include <ssl.h>
+extern int ssl_active_flag;
+extern SSL *ssl_con;
+#define NETCLOSE(X)	close((X));  ssl_active_flag = 0;
+#define NETREAD		HTDoRead  /* Routine to read from a TCP/IP socket */
+#define NETWRITE(X,Y,Z)	((ssl_active_flag && ((X) == SSL_get_fd(ssl_con))) ? SSL_read(ssl_con, (Y), (Z)) : write((X), (Y), (Z)))
+
+#else /* USE_SSL */
+
 #define NETCLOSE close      /* Routine to close a TCP-IP socket         */
 #define NETREAD  HTDoRead       /* Routine to read from a TCP-IP socket     */
 #define NETWRITE write      /* Routine to write to a TCP-IP socket      */
+
+#endif /* USE_SSL */
 
 /* Unless stated otherwise, */
 #define SELECT                  /* Can handle >1 channel.               */
--- src/Makefile.orig	Sat Jun 10 02:13:00 1995
+++ src/Makefile	Thu Sep 14 17:01:11 1995
@@ -5,7 +5,7 @@
 LIBXMX_INC = ../libXmx
 
 PROGRAM_LIBS = $(LIBWWW_DIR)/libwww.a $(LIBHTMLW_DIR)/libhtmlw.a $(LIBXMX_DIR)/libXmx.a
-LIBS = $(PROGRAM_LIBS) $(X_LIBS) $(DTM_LIBS) $(HDF_LIBS) $(WAIS_LIBS) $(JPEG_LIBS) $(MATH_LIB) $(SYS_LIBS)
+LIBS = $(PROGRAM_LIBS) $(X_LIBS) $(DTM_LIBS) $(HDF_LIBS) $(WAIS_LIBS) $(MMS_LIBS) $(SSL_LIBS) $(JPEG_LIBS) $(MATH_LIB) $(SYS_LIBS)
 
 CFILES = main.c gui.c gui-dialogs.c gui-menubar.c gui-documents.c gui-news.c\
   mo-www.c mo-dtm.c hotlist.c whine.c history.c\
--- src/accept.c.orig	Sun Apr  2 18:28:55 1995
+++ src/accept.c	Thu Sep 14 17:01:11 1995
@@ -18,10 +18,16 @@
 #include <sys/filio.h>
 #endif
 
+#if defined(SVR4) && !defined(SCO) && !defined(linux)
+#include <sys/filio.h>
+#endif
+
 #include "port.h"
 #include "accept.h"
 
 #include "memStuffForPipSqueeks.h"
+
+#include "mosaic.h"
 
 ListenAddress NetServerInitSocket(portNumber)
 /* return -1 on error */
--- src/annotate.c.orig	Sun Apr  2 18:28:56 1995
+++ src/annotate.c	Thu Sep 14 17:01:11 1995
@@ -349,10 +349,10 @@
   else
     author = pw->pw_gecos;
 
-  sprintf (namestr, "%s (%s@%s)\0", author, pw->pw_name, machine);
+  sprintf (namestr, "%s (%s@%s)", author, pw->pw_name, machine);
   XmxTextSetString (win->annotate_author, namestr);
 
-  sprintf (namestr, "Annotation by %s\0", author);
+  sprintf (namestr, "Annotation by %s", author);
   XmxTextSetString (win->annotate_title, namestr);
 
 #ifdef GRPAN_PASSWD
@@ -661,9 +661,19 @@
   annotate_form = XmxMakeForm (dialog_frame);
   
   author_label = XmxMakeLabel (annotate_form, "Annotation Author:");
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+  XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
   win->annotate_author = XmxMakeTextField (annotate_form);
   
   title_label = XmxMakeLabel (annotate_form, "Annotation Title:");
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+  XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
   win->annotate_title = XmxMakeTextField (annotate_form);
 
   /* Let's just not do any of this shit if we don't have
@@ -689,6 +699,13 @@
     XmxSetToggleButton (win->passwd_toggle, XmxSet);
     
     win->passwd_label = XmxMakeLabel (passwd_f, "Password:");
+#ifdef L10N
+#ifdef MOTIF_I18N
+    if (Rdata.half_sized_textfield)
+    XmxSetArg (XmNcolumns, 10);
+    else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
     XmxSetArg (XmNcolumns, 20);
     win->annotate_passwd = XmxMakeTextField (passwd_f);
 
@@ -707,7 +724,7 @@
   }
 #endif
   
-  logo = XmxMakeNamedLabel (annotate_form, NULL, "logo");
+  logo = XmxMakeNamedLabel (annotate_form, '\0', "logo");
   XmxApplyBitmapToLabelWidget
     (logo, annotate_bits, annotate_width, annotate_height);
   
@@ -729,7 +746,19 @@
   XmxSetArg (XmNeditable, True);
   XmxSetArg (XmNeditMode, XmMULTI_LINE_EDIT);
   XmxSetArg (XmNrows, 15);
+#ifdef L10N
+#ifdef MOTIF_I18N
+  if (Rdata.half_sized_textfield)
+  XmxSetArg (XmNcolumns, 40);
+  else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
   XmxSetArg (XmNcolumns, 80);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+  XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
   win->annotate_text = XmxMakeScrolledText (annotate_form);
   
   dialog_sep = XmxMakeHorizontalSeparator (annotate_form);
--- src/audan.c.orig	Tue Apr  4 09:55:23 1995
+++ src/audan.c	Thu Sep 14 17:01:11 1995
@@ -118,7 +118,11 @@
   kill (win->record_pid, SIGINT);
   
   /* Wait until the process is dead. */
+#ifdef sony_news
+  wait4 (win->record_pid, NULL, 0, (struct rusage *)0);
+#else /* sony_news */
   waitpid (win->record_pid, NULL, 0);
+#endif /* sony_news */
 
   /* No more process. */
   win->record_pid = 0;
@@ -146,26 +150,30 @@
           kill (win->record_pid, SIGINT);
           
           /* Wait until the process is dead. */
+#ifdef sony_news
+	  wait4 (win->record_pid, NULL, 0, (struct rusage *)0);
+#else /* sony_news */
           waitpid (win->record_pid, NULL, 0);
+#endif /* sony_news */
         }
       if (win->record_fnam)
         {
           if (win->audio_pubpri == mo_annotation_workgroup)
             {
               char namestr[200], titlestr[200], *author;
-              unsigned char *data;
+              unsigned char *data = NULL;
               struct passwd *pw = getpwuid (getuid ());
               FILE *fp;
               int len;
-              extern char *machine;
+	      extern char *machine;
               
               if (Rdata.default_author_name)
                 author = Rdata.default_author_name;
               else
                 author = pw->pw_gecos;
               
-              sprintf (namestr, "%s (%s@%s)\0", author, pw->pw_name, machine);
-              sprintf (titlestr, "Audio Annotation by %s\0", author);
+              sprintf (namestr, "%s (%s@%s)", author, pw->pw_name, machine);
+              sprintf (titlestr, "Audio Annotation by %s", author);
               
               len = 0;
               fp = fopen(win->record_fnam, "r");
@@ -213,7 +221,7 @@
               char filename[500], *cmd, namestr[200], textstr[500], titlestr[200],
               *author;
               struct passwd *pw = getpwuid (getuid ());
-              extern char *machine;
+	      extern char *machine;
               
               if (Rdata.default_author_name)
                 author = Rdata.default_author_name;
@@ -221,11 +229,11 @@
                 author = pw->pw_gecos;
               
 #ifdef __sgi
-              sprintf (filename, "%s/%s/%s%d.aiff\0", getenv ("HOME"), 
+              sprintf (filename, "%s/%s/%s%d.aiff", getenv ("HOME"), 
                        default_directory,
                        "PAN-", pan_id);
 #else /* sun or hp */
-              sprintf (filename, "%s/%s/%s%d.au\0", getenv ("HOME"), 
+              sprintf (filename, "%s/%s/%s%d.au", getenv ("HOME"), 
                        default_directory,
                        "PAN-", pan_id);
 #endif
@@ -236,6 +244,7 @@
               sprintf (cmd, "/bin/mv %s %s", win->record_fnam, filename);
               if ((system (cmd)) != 0)
                 {
+#ifndef sony_news
 			char *buf, *final, tmpbuf[80];
 			int final_len;
 
@@ -263,11 +272,12 @@
 				free(final);
 				final=NULL;
 			}
+#endif /* sony_news */
                 }
               free (cmd);
               
-              sprintf (titlestr, "Audio Annotation by %s\0", author);
-              sprintf (namestr, "%s (%s@%s)\0", author, pw->pw_name, machine);
+              sprintf (titlestr, "Audio Annotation by %s", author);
+              sprintf (namestr, "%s (%s@%s)", author, pw->pw_name, machine);
               sprintf (textstr, 
                        "This is an audio annotation. <P>\n\nTo hear the annotation, go <A HREF=\"file:%s\">here</A>. <P>\n", filename);
               
@@ -293,7 +303,11 @@
           kill (win->record_pid, SIGINT);
           
           /* Wait until the process is dead. */
+#ifdef sony_news
+	  wait4 (win->record_pid, NULL, 0, (struct rusage *)0);
+#else /* sony_news */
           waitpid (win->record_pid, NULL, 0);
+#endif /* sony_news */
           
           win->record_pid = 0;
           win->record_fnam = 0;
--- src/cciBindings2.c.orig	Thu May 11 11:49:24 1995
+++ src/cciBindings2.c	Thu Sep 14 17:01:11 1995
@@ -204,6 +204,10 @@
 int portNumber;
 {
 int retVal;
+#if !defined(__FreeBSD__) && !defined(__NetBSD__)
+extern char *sys_errlist[];
+#endif
+extern int errno;
 
 	listOfConnections = ListCreate();
 	listOfSendOutput = ListCreate();
@@ -226,12 +230,15 @@
     		if (fp) {
 			fprintf(fp,"%s:%d\n",machine_with_domain,portNumber);
         		fclose (fp);
-      			}
+			if (chmod(fnam, Rdata.cciPortFileMode) == -1) {
+				fprintf(stderr,sys_errlist[errno]);
+				mo_exit();
+			}
 		
     		free (fnam);
   		}
+	}
 	return(retVal);
-
 }
 
 int MoCCITerminateAllConnections()
@@ -462,6 +469,13 @@
 		cciForm = XmxMakeForm(dialogFrame);
 
 		label = XmxMakeLabel(cciForm, "CCI Port Address: ");
+#ifdef L10N
+#ifdef MOTIF_I18N
+		if(Rdata.half_sized_textfield)
+		XmxSetArg(XmNcolumns, 13);
+		else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
 		XmxSetArg(XmNcolumns, 25);
 			win->cci_win_text= XmxMakeText (cciForm);
 			XmxAddCallbackToText (win->cci_win_text, 
--- src/child.c.orig	Fri Feb  3 10:03:58 1995
+++ src/child.c	Thu Sep 14 17:01:12 1995
@@ -8,6 +8,9 @@
 #include <sys/types.h>
 
 #include "list.h"
+#ifdef sony_news
+typedef     int             pid_t;
+#endif /* sony_news */
 
 List childProcessList;
 
@@ -88,7 +91,7 @@
 pid_t pid;
 ProcessHandle *p;
 
-#ifdef SOLARIS
+#if defined(SOLARIS) || defined(nec_ews) || defined(_nec_ews)
 	pid = waitpid((pid_t)(-1),NULL,WNOHANG);
 	signal(SIGCHLD, (void (*)())ChildTerminated); /*Solaris resets the signal on a catch*/
 #else
--- src/comment.c.orig	Wed Jun 14 14:26:47 1995
+++ src/comment.c	Thu Sep 14 17:01:12 1995
@@ -66,7 +66,11 @@
 
 
 #include <pwd.h>
+#ifdef sony_news
+#include "utsname.h"
+#else /* sony_news */
 #include <sys/utsname.h>
+#endif /* sony_news */
 
 
 #ifdef DEBUG_CC
@@ -77,8 +81,11 @@
 
 
 extern mo_window *current_win;
-extern char *machine;
+#ifdef SECURE
+struct utsname mo_uname;
+#else /* SECURE */
 extern struct utsname mo_uname;
+#endif /* SECURE */
 
 
 void CommentCard(mo_window *win);
--- src/comment.h.orig	Thu Jul  6 01:09:59 1995
+++ src/comment.h	Thu Sep 14 17:01:12 1995
@@ -58,6 +58,7 @@
 
 #define MO_COMMENT_OS "Not Supported" /**/
 
+#ifdef __STDC__
 char *comment_card_html_top= \
 "<title>\n" \
 "	Comment Card for Mosaic 2.6\n" \
@@ -285,3 +286,231 @@
 "</form>\n" \
 "\n";
 
+#else /* __STDC__ */
+char *comment_card_html_top= "\
+<title>\n\
+	Comment Card for Mosaic 2.6\n\
+</title>\n\
+\n\
+<h1 align=center>\n\
+	Please Help Us Help You!!\n\
+</h1>\n\
+\n\
+<hr>\n\
+\n\
+<h2>\n\
+	Thank you for using NCSA Mosaic! We are continually striving to\n\
+	improve Mosaic to better meet the needs of its users. We would\n\
+	appreciate your taking the time to answer these few questions.\n\
+</h2>\n\
+\n\
+<hr>\n\
+\n\
+<form method=\"POST\" action=\"http://sdg.ncsa.uiuc.edu/XCGI/comment26\">\n\
+\n\
+	<h3>\n\
+		<ul>\n\
+			<li>\n\
+				If do not like surveys or you have already\n\
+				completed this survey, please press this\n\
+				button,\n\
+				<input type=\"submit\" value=\"Just Count Me\" \n\
+				name=\"countme\">,\n\
+				to be counted. Pushing the above button\n\
+				will send the following information about\n\
+				your system to be used in our statistics\n\
+				(completely anonymous):\n\
+				<p>\n\
+\n";
+
+char *comment_card_html_bot= "\
+				</p>\n\
+			</li>\n\
+			<br>\n\
+			<li>\n\
+				If you do not want to fill out this card,\n\
+				just push the \"Close Window\" button at the\n\
+				bottom of this window.\n\
+			</li>\n\
+			<br>\n\
+			<li>\n\
+				Otherwise, please proceed!\n\
+			</li>\n\
+		</ul>\n\
+	</h3>\n\
+\n\
+	<hr>\n\
+\n\
+	<p>\n\
+		How long have you been using Mosaic?\n\
+		<br>\n\
+		<select name=\"usage\">\n\
+			<option value=\"no comment\" selected>\n\
+				No Comment\n\
+			<option value=\"never\">\n\
+				Never\n\
+			<option value=\"lt 1 mon\">\n\
+				Less Than 1 Month\n\
+			<option value=\"1-6 mon\">\n\
+				1 - 6 Months\n\
+			<option value=\"6 mon-1 yr\">\n\
+				6 Months to a Year\n\
+			<option value=\"1-2 yrs\">\n\
+				1 - 2 Years\n\
+			<option value=\"gt 2 yrs\">\n\
+				More Than 2 Years\n\
+		</select>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		How familiar are you with the World Wide Web?\n\
+		<br>\n\
+		<select name=\"www\">\n\
+			<option value=\"no comment\" selected>\n\
+				No Comment\n\
+			<option value=\"no experience\">\n\
+				No Experience\n\
+			<option value=\"novice\">\n\
+				Novice\n\
+			<option value=\"intermediate\">\n\
+				Intermediate\n\
+			<option value=\"expert\">\n\
+				Expert\n\
+			<option value=\"master\">\n\
+				Web Master\n\
+		</select>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		On which other platform(s) do you use Mosaic?\n\
+		<br>\n\
+		<select name=\"platform\">\n\
+			<option value=\"no comment\" selected>\n\
+				No Comment\n\
+			<option value=\"no other\">\n\
+				No Other\n\
+			<option value=\"mac\">\n\
+				Macintosh\n\
+			<option value=\"windows\">\n\
+				Windows\n\
+			<option value=\"mac and windows\">\n\
+				Macintosh and Windows\n\
+		</select>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		What type of internet connection do you have?\n\
+		<br>\n\
+		<select name=\"connection\">\n\
+			<option value=\"no comment\" selected>\n\
+				No Comment\n\
+			<option value=\"no connection\">\n\
+				No Connection\n\
+			<option value=\"don't know\">\n\
+				Don't Know\n\
+			<option value=\"modem lt 9600\">\n\
+				Modem Less Than 9600\n\
+			<option value=\"modem eq 9600\">\n\
+				Modem at 9600\n\
+			<option value=\"modem eq 144\">\n\
+				Modem at 14.4k\n\
+			<option value=\"modem eq 288\">\n\
+				Modem at 28.8k\n\
+			<option value=\"modem gt 288\">\n\
+				Modem Greater Than 28.8k\n\
+			<option value=\"isdn\">\n\
+				ISDN\n\
+			<option value=\"direct\">\n\
+				Direct Connection\n\
+		</select>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		Have you ever sent email to our technical support?\n\
+		<br>\n\
+		<select name=\"email\">\n\
+			<option value=\"no comment\" selected>\n\
+				No Comment\n\
+			<option value=\"yes\">\n\
+				Yes, I Have\n\
+			<option value=\"no\">\n\
+				No, I Have Not\n\
+		</select>\n\
+\n\
+		<dl>\n\
+			<dd>\n\
+				If so, was it satisfactory?\n\
+				<br>\n\
+				<select name=\"satisfied\">\n\
+					<option value=\"no comment\" selected>\n\
+						No Comment\n\
+					<option value=\"yes\">\n\
+						Yes, It Was\n\
+					<option value=\"no\">\n\
+						No, It Was Not\n\
+				</select>\n\
+				<dl>\n\
+					<dd>\n\
+						Why or why not?\n\
+						<textarea name=\n\
+						\"satisfied_feedback\" \n\
+						rows=2 cols=40>\n\
+						</textarea>\n\
+					</dd>\n\
+				</dl>\n\
+			</dd>\n\
+		</dl>\n\
+	</p>\n\
+\n\
+<!---\n\
+NOTE:\n\
+	The following list of browsers\n\
+	are IN ALPHABETICAL ORDER! Please Please Please, if you add one, put\n\
+	it in ALPHABETICAL order as well...so we are not accused of being\n\
+	perferential\n\
+--->\n\
+	<p>\n\
+		What is your <b>favorite</b> Web browser?\n\
+		<dl>\n\
+			<dd>\n\
+				<select name=\"favorite\" size=5>\n\
+					<option value=\"no comment\" selected>\n\
+						No Comment\n\
+					<option value=\"arena\">\n\
+						Arena\n\
+					<option value=\"emacs-w3\">\n\
+						Emacs-W3\n\
+					<option value=\"spyglass\">\n\
+						Enhanced Mosaic (Spyglass)\n\
+					<option value=\"hot java\">\n\
+						Hot Java\n\
+					<option value=\"lynx\">\n\
+						Lynx\n\
+					<option value=\"ncsa\">\n\
+						N.C.S.A. Mosaic\n\
+					<option value=\"netscape $$$\">\n\
+						Netscape (for $$$)\n\
+					<option value=\"netscape free\">\n\
+						Netscape (for free)\n\
+					<option value=\"viola\">\n\
+						Viola\n\
+				</select>\n\
+			</dd>\n\
+		</dl>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		Other comments and/or suggestions are welcomed:\n\
+		<textarea name=\"comments_feedback\" rows=5 cols=60>\n\
+		</textarea>\n\
+	</p>\n\
+\n\
+	<p>\n\
+		When you are done, please press this button:\n\
+		<input type=\"submit\" value=\"Submit Comment Card for X Mosaic\"\n\
+		name=\"submitme\">\n\
+	</p>\n\
+\n\
+</form>\n\
+\n";
+#endif /* __STDC__ */
--- src/globalhist.c.orig	Sun Apr  2 18:29:04 1995
+++ src/globalhist.c	Thu Sep 14 17:01:12 1995
@@ -108,6 +108,11 @@
 {
   /* Canonical URL for this document. */
   char *url;
+#ifdef _USE_REAL_ACCESS_DATE
+  /* This attribute is aimed to save real access_date
+     to ~/.mosaic-global-history */
+  char *time;
+#endif /* _USE_REAL_ACCESS_DATE */
   /* This can be one of a couple of things:
      for an image, it's the ImageInfo struct;
      for an HDF file, it's the local filename (if any) */
@@ -164,7 +169,12 @@
 /* Assume url isn't already in the bucket; add it by
    creating a new entry and sticking it at the head of the bucket's
    linked list of entries. */
+#ifdef _USE_REAL_ACCESS_DATE
+/*  char *time is REAL ACCESS DATE */
+static void add_url_to_bucket (int buck, char *url, char *time)
+#else /* _USE_REAL_ACCESS_DATE */
 static void add_url_to_bucket (int buck, char *url)
+#endif /* _USE_REAL_ACCESS_DATE */
 {
   bucket *bkt = &(hash_table[buck]);
   entry *l;
@@ -175,6 +185,10 @@
   l->cached_data = NULL;
   l->next = NULL;
   
+#ifdef _USE_REAL_ACCESS_DATE
+  time[strlen(time)] = '\0';
+  l->time = strdup(time);
+#endif /* _USE_REAL_ACCESS_DATE */
   if (bkt->head == NULL)
     bkt->head = l;
   else
@@ -249,9 +263,19 @@
 mo_status mo_here_we_are_son (char *url)
 {
   char *curl = mo_url_canonicalize (url, "");
+#ifdef _USE_REAL_ACCESS_DATE
+  time_t foo = time (NULL);
+  char *ts = ctime (&foo);
+
+  ts[strlen(ts)-1] = '\0';
+#endif /* _USE_REAL_ACCESS_DATE */
 
   if (!been_here_before (curl))
+#ifdef _USE_REAL_ACCESS_DATE
+    add_url_to_bucket (hash_url (curl), curl, ts);
+#else /* _USE_REAL_ACCESS_DATE */
     add_url_to_bucket (hash_url (curl), curl);
+#endif /* _USE_REAL_ACCESS_DATE */
   
   free (curl);
 
@@ -275,6 +299,9 @@
   FILE *fp;
   char line[MO_LINE_LENGTH];
   char *status;
+#ifdef _USE_REAL_ACCESS_DATE
+  char time[80];
+#endif /* _USE_REAL_ACCESS_DATE */
   
   fp = fopen (filename, "r");
   if (!fp)
@@ -303,6 +330,10 @@
       if (!status || !(*line))
         goto done;
       
+#ifdef _USE_REAL_ACCESS_DATE
+      strcpy(time, strchr(line, ' '));
+      time[strlen(time)-1] = '\0';
+#endif /* _USE_REAL_ACCESS_DATE */
       url = strtok (line, " ");
       if (!url)
         goto screwed_with_file;
@@ -310,7 +341,11 @@
       /* We don't use the last-accessed date... yet. */
       /* lastdate = strtok (NULL, "\n"); blah blah blah... */
 
+#ifdef _USE_REAL_ACCESS_DATE
+      add_url_to_bucket (hash_url (url), url, time);
+#else /* _USE_REAL_ACCESS_DATE */
       add_url_to_bucket (hash_url (url), url);
+#endif /* _USE_REAL_ACCESS_DATE */
     }
   
  screwed_with_file:
@@ -398,7 +433,7 @@
   
   filename = (char *)malloc 
     ((strlen (home) + strlen (default_filename) + 8) * sizeof (char));
-  sprintf (filename, "%s/%s\0", home, default_filename);
+  sprintf (filename, "%s/%s", home, default_filename);
   cached_global_hist_fname = filename;
 
   mo_read_global_history (filename);
@@ -438,7 +473,11 @@
     {
       for (l = hash_table[i].head; l != NULL; l = l->next)
         {
+#ifdef _USE_REAL_ACCESS_DATE
+	  fprintf (fp, "%s %s\n", l->url, l->time ? l->time : ts);
+#else /* _USE_REAL_ACCESS_DATE */
           fprintf (fp, "%s %s\n", l->url, ts);
+#endif /* _USE_REAL_ACCESS_DATE */
         }
     }
   
@@ -546,12 +585,22 @@
 {
   int hash = hash_url (url);
   entry *l;
+#ifdef _USE_REAL_ACCESS_DATE
+  time_t foo = time (NULL);
+  char *ts = ctime (&foo);
+
+  ts[strlen(ts)-1] = '\0';
+#endif /* _USE_REAL_ACCESS_DATE */
 
   /* First, register ourselves if we're not already registered.
      Now, the same URL can be registered multiple times with different
      (or, in one instance, no) internal anchor. */
   if (!been_here_before (url))
+#ifdef _USE_REAL_ACCESS_DATE
+    add_url_to_bucket (hash_url (url), url, ts);
+#else /* _USE_REAL_ACCESS_DATE */
     add_url_to_bucket (hash_url (url), url);
+#endif /* _USE_REAL_ACCESS_DATE */
 
   /* Then, find the right entry. */
   if (hash_table[hash].count)
--- src/grpan.c.orig	Mon Jun  5 18:18:48 1995
+++ src/grpan.c	Thu Sep 14 17:01:12 1995
@@ -160,7 +160,7 @@
  ****************************************************************************/
 char *mo_fetch_grpan_links (char *url)
 {
-  char *request;
+/*  char *request; */
   char *ttxt, *ttxthead;
   char *post_data, *status_ptr;
 
@@ -193,7 +193,7 @@
       
       /* amb */
       post_data = (char *)malloc(strlen(url) + 1024);
-      sprintf(post_data, "cmd=an_get&format=html&url=%s\0", url);
+      sprintf(post_data, "cmd=an_get&format=html&url=%s", url);
       ttxt = mo_post_pull_er_over (Rdata.annotation_server,
 				   "application/x-www-form-urlencoded", 
 				   post_data, &ttxthead);
@@ -262,10 +262,10 @@
   else
     {
       char *post_data;
-      char *request;
+/*      char *request; */
       char *ttxt, *ttxthead;
       time_t foo = time (NULL);
-      char *ts = ctime (&foo);
+      char *ts = (char *)ctime (&foo);
       char *Etitle, *Euser;
       char *esc_text;
       
@@ -297,7 +297,7 @@
       if (post_data == NULL)
 	return mo_fail;
       esc_text = mo_escape_part(text);
-      sprintf(post_data, "cmd=an_post&url=%s&title=%s&author=%s&text=%s\0",
+      sprintf(post_data, "cmd=an_post&url=%s&title=%s&author=%s&text=%s",
 	      url, title, author, esc_text);
       ttxt = mo_post_pull_er_over (Rdata.annotation_server, 
 				   "application/x-www-form-urlencoded", 
@@ -345,7 +345,7 @@
       char *request;
       char *ttxt, *ttxthead;
       time_t foo = time (NULL);
-      char *ts = ctime (&foo);
+      char *ts = (char *)ctime (&foo);
       char *Etitle, *Euser;
 
       ts[strlen(ts)-1] = '\0';
@@ -406,7 +406,7 @@
       char *request;
       char *ttxt, *ttxthead;
       time_t foo = time (NULL);
-      char *ts = ctime (&foo);
+      char *ts = (char *)ctime (&foo);
       char *Etitle, *Euser;
       
       ts[strlen(ts)-1] = '\0';
--- src/gui-dialogs.c.orig	Thu May 18 06:03:01 1995
+++ src/gui-dialogs.c	Thu Sep 14 17:01:12 1995
@@ -75,7 +75,9 @@
 /*swp -- for ~ expansion*/
 #include <pwd.h>
 extern int sys_nerr;
+#if !defined(__FreeBSD__) && !defined(__NetBSD__)
 extern char *sys_errlist[];
+#endif
 extern int errno;
 #define __MAX_HOME_LEN__ 256
 int pathEval(char *dest, char *src);
@@ -294,8 +296,10 @@
   if (!win->save_win)
     {
       Widget frame, workarea, format_label;
-      Widget top_toggle_box, left_toggle_box;
 
+#if !defined(IXIMOTIF1_2) && defined(MOTIF_I18N)
+      XmxSetArg (XmNwidth, 400);
+#endif /* !IXIMOTIF1_2 && MOTIF_I18N */
       win->save_win = XmxMakeFileSBDialog
         (win->base, "NCSA Mosaic: Save Document", "Name for saved document:",
          save_win_cb, 0);
@@ -429,7 +433,7 @@
   sprintf (cmd, "/bin/mv %s %s", temp_binary_fnam, fname);
   retValue = system(cmd);
   retValue = (retValue & 0x0000FF00) >> 8;
-#ifndef sun
+#if !defined(sun) && !defined(sony_news)
   if (retValue != 0)
     {
 	char *buf, *final, tmpbuf[80];
@@ -785,8 +789,8 @@
 static XmxCallback (mail_win_cb)
 {
   mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
-  char *to, *subj, *text = 0, *content_type;
-  int free_text;
+  char *to, *subj, *text = '\0', *content_type = '\0';
+  int free_text = 0;
 
   switch (XmxExtractToken ((int)client_data))
     {
@@ -927,7 +931,6 @@
       Widget dialog_sep, buttons_form;
       Widget mail_form, to_label, subj_label;
       Widget frame, workarea, format_label;
-      Widget top_toggle_box, left_toggle_box;
 
       /* Create it for the first time. */
       XmxSetUniqid (win->id);
@@ -1098,7 +1101,7 @@
       sprintf (cmd, "%s %s", lpr, fnam);
       retValue = system(cmd);
       retValue = (retValue & 0x0000FF00) >> 8;
-#ifndef sun
+#if !defined(sun) && !defined(sony_news)
 /* we're getting bad values from system() on suns */
       if (retValue != 0)
         {
@@ -1206,7 +1209,6 @@
       Widget dialog_sep, buttons_form;
       Widget print_form, print_label;
       Widget frame, workarea, format_label;
-      Widget top_toggle_box, left_toggle_box;
 
       /* Create it for the first time. */
       XmxSetUniqid (win->id);
@@ -1355,7 +1357,19 @@
       XmxSetArg (XmNeditable, False);
       XmxSetArg (XmNeditMode, XmMULTI_LINE_EDIT);
       XmxSetArg (XmNrows, 15);
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 40);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 80);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
       win->source_text = XmxMakeScrolledText (source_form);
       
       dialog_sep = XmxMakeHorizontalSeparator (source_form);
@@ -1511,13 +1525,29 @@
       search_form = XmxMakeForm (dialog_frame);
       
       label = XmxMakeLabel (search_form, "Find string in document: ");
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 13);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 25);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
       win->search_win_text = XmxMakeText (search_form);
       XmxAddCallbackToText (win->search_win_text, search_win_cb, 0);
 
       win->search_caseless_toggle = XmxMakeToggleButton 
         (search_form, "Caseless Search", NULL, 0);
+#ifdef L10N
+      XmxSetToggleButton (win->search_caseless_toggle, XmxUnset);
+#else /* L10N */
       XmxSetToggleButton (win->search_caseless_toggle, XmxSet);
+#endif /* L10N */
       win->search_backwards_toggle = XmxMakeToggleButton 
         (search_form, "Backwards Search", NULL, 0);
 
@@ -1575,6 +1605,101 @@
   return mo_succeed;
 }
 
+#ifdef L10N
+/* ----------------------- mo_post_accept_languages ------------------------ */
+
+static XmxCallback (acpt_langs_win_cb)
+{
+  mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
+
+  switch (XmxExtractToken ((int)client_data))
+    {
+    case 0: /* Accept */
+      XtUnmanageChild (win->acpt_langs_win);
+      win->accept_languages = XmxTextGetString (win->acpt_langs_text);
+      mo_convert_newlines_to_spaces (win->accept_languages);
+      break;
+    case 1: /* Clear */
+      XmxTextSetString (win->acpt_langs_text, "");
+      break;
+    case 2: /* Default */
+      XmxTextSetString (win->acpt_langs_text, Rdata.default_accept_languages);
+      break;
+    case 3: /* Dismiss */
+      XtUnmanageChild (win->acpt_langs_win);
+      /* Do nothing. */
+      break;
+    }
+
+  return;
+}
+
+mo_status mo_post_accept_languages (mo_window *win)
+{
+  if (!win->acpt_langs_win)
+    {
+      Widget dialog_frame;
+      Widget dialog_sep, buttons_form;
+      Widget acpt_langs_form, label;
+
+      /* Create it for the first time. */
+      XmxSetUniqid (win->id);
+      win->acpt_langs_win = XmxMakeFormDialog
+	(win->base, "NCSA Mosaic: Accept Languages");
+      dialog_frame = XmxMakeFrame (win->acpt_langs_win, XmxShadowOut);
+
+      /* Constraints for base. */
+      XmxSetConstraints
+	(dialog_frame, XmATTACH_FORM, XmATTACH_FORM,
+	 XmATTACH_FORM, XmATTACH_FORM, NULL, NULL, NULL, NULL);
+
+      /* Main form. */
+      acpt_langs_form = XmxMakeForm (dialog_frame);
+
+      label = XmxMakeLabel (acpt_langs_form, "Accept Languages: ");
+      XmxSetArg (XmNwidth, 310);
+      XmxSetArg (XmNvalue, (XtArgVal)Rdata.default_accept_languages);
+      win->acpt_langs_text = XmxMakeTextField (acpt_langs_form);
+      XmxAddCallbackToText (win->acpt_langs_text, acpt_langs_win_cb, 0);
+
+      dialog_sep = XmxMakeHorizontalSeparator (acpt_langs_form);
+
+      buttons_form = XmxMakeFormAndFourButtons
+	(acpt_langs_form, acpt_langs_win_cb, "Accept", "Clear", "Default", "Dismiss",
+	 0, 1, 2, 3);
+
+      /* Constraints for acpt_langs_form. */
+      XmxSetOffsets (label, 14, 0, 10, 0);
+      XmxSetConstraints
+	(label, XmATTACH_FORM, XmATTACH_NONE, XmATTACH_FORM, XmATTACH_NONE,
+	 NULL, NULL, NULL, NULL);
+      XmxSetOffsets (win->acpt_langs_text, 10, 0, 5, 10);
+      XmxSetConstraints
+	(win->acpt_langs_text, XmATTACH_FORM, XmATTACH_NONE, XmATTACH_WIDGET,
+	 XmATTACH_FORM, NULL, NULL, label, NULL);
+      XmxSetArg (XmNtopOffset, 10);
+      XmxSetConstraints
+	(dialog_sep, XmATTACH_WIDGET, XmATTACH_WIDGET, XmATTACH_FORM,
+	 XmATTACH_FORM,
+	 win->acpt_langs_text, buttons_form, NULL, NULL);
+      XmxSetConstraints
+	(buttons_form, XmATTACH_NONE, XmATTACH_FORM, XmATTACH_FORM,
+	 XmATTACH_FORM,
+	 NULL, NULL, NULL, NULL);
+    }
+
+  XtManageChild (win->acpt_langs_win);
+
+  return mo_succeed;
+}
+
+/* Exported to libwww2. */
+char *mo_get_accept_languages()
+{
+  return(current_win->accept_languages);
+}
+#endif /* L10N */
+
 /*------------------------------------------------------------*/
 
 typedef struct {
@@ -1746,11 +1871,11 @@
 	execArg[argCount++] = sourceFileName;
 	execArg[argCount++] = NULL;
 
-#ifdef __sgi
+#if defined(__sgi) || (defined(SCO) && defined(NECODT))
 	pid = fork();
-#else
+#else /* __sgi || (SCO && NECODT) */
 	pid = vfork();
-#endif
+#endif /* __sgi || (SCO && NECODT) */
 	if (!pid) {
 		/* I'm the child */
 	        execvp(execArg[0], execArg); 
--- src/gui-documents.c.orig	Mon Jun 19 23:37:10 1995
+++ src/gui-documents.c	Thu Sep 14 17:01:13 1995
@@ -256,6 +256,9 @@
     binary_transfer = 0;
     ans = mo_fetch_annotation_links (url,
                                      Rdata.annotations_on_top);
+#ifdef L10N
+    mo_ml_codeconv(win, ans);
+#endif /* L10N */
     binary_transfer = tmp;
   }
 
@@ -405,6 +408,12 @@
 
   win->current_node = node;
 
+#ifdef L10N
+  if ((Rdata.keep_document_charset) && (node->font_size != win->font_size)) {
+      mo_set_fonts(win, node->font_size);
+  }
+#endif /* L10N */
+
   mo_busy ();
   mo_set_current_cached_win (win);
 
@@ -503,7 +512,22 @@
   /* Clear out the cached stuff, if any exists. */
   win->reloading = 1;
 
+#ifdef L10N
+  /* do code conversion */
+  mo_ml_codeconv(win, win->current_node->text);
+  win->current_node->font_size = win->font_size;
+#endif /* L10N */
+
+  /*
+   * Reload should force a cache refresh on a proxy
+   *       -- Ari L. <luotonen@dxcern.cern.ch>
+   *       T.Takinaka
+   */
+  if (Rdata.reload_pragma_no_cache) {
+    reloading = 1;
+  }
   mo_set_win_current_node (win, win->current_node);
+  reloading = 0;
 
   win->reloading = 0;
 
@@ -711,6 +735,10 @@
       /* Not a telnet session and not an override, but text present
          (the "usual" case): */
 
+#ifdef L10N
+      /* do code conversion */
+      mo_ml_codeconv(win, newtext);
+#endif /* L10N */
       /* Set the window text. */
       mo_do_window_text (win, url, newtext, newtexthead, 1, ref);
     }
@@ -875,6 +903,10 @@
       /* Not a telnet session and not an override, but text present
          (the "usual" case): */
 
+#ifdef L10N
+      /* do code conversion */
+      mo_ml_codeconv(win, newtext);
+#endif /* L10N */
       /* Set the window text. */
       mo_do_window_text (win, url, newtext, newtexthead, 1, ref);
     }
@@ -950,6 +982,275 @@
   return mo_succeed;
 }
 
+#ifdef L10N
+
+/* --------------- multilingual code convert routine --------------- */
+
+/* codeset status */
+#define ASCII		0
+#define MULTIBYTE	1
+
+#define ESC		0x1b
+#define SO		0x0e
+#define SI		0x0f
+
+#define IS_EUC(c)	((0xa1 <= (c)) && ((c) <= 0xfe))
+#define IS_SJIS1(c)	(((0x81 <= (c)) && ((c) <= 0x9f)) || \
+			 ((0xe0 <= (c)) && ((c) <= 0xfc)))
+#define IS_SJIS2(c)	((0x40 <= (c)) && ((c) <= 0xfc) && ((c) != 0x7f))
+
+#define E2E(i1, i2, o1, o2) {(o1) = (i1); (o2) = (i2);}
+#define I2E(i1, i2, o1, o2) {(o1) = ((i1) | 0x80); (o2) = ((i2) | 0x80);}
+#define S2E(i1, i2, o1, o2) {\
+    if ((i1) >= 0xe0) { (i1) -= (0xe0 - 0xa0); }\
+    if ((i2) >= 0x80) { (i2)--; }\
+    if ((i2) < 0x40 + 94) {\
+	(o1) = (((((i1) - 0x81) * 2) + 0x21) | 0x80);\
+	(o2) = (((i2) - (0x40 - 0x21)) | 0x80);\
+    } else {\
+	(o1) = (((((i1) - 0x81) * 2) + 0x21 + 1) | 0x80);\
+	(o2) = (((i2) - (0x9e - 0x21)) | 0x80);\
+    }\
+}
+
+/*
+ * code convertion main routine
+ */
+mo_ml_codeconv(win, str)
+     mo_window *win;
+     char *str;
+{
+    char *in = str;
+    char *out = in;
+    int codeset = ASCII;
+    unsigned char c1, c2, c3, c4;
+    static int sjiseuc=0;
+    int eucflag,sjisflag;
+
+    if (!in) return;
+    while (c1 = *in++) {
+	if (c1 == ESC) {
+	    if (c2 = *in++) {
+		if (c2 == '$') {
+		    if (c3 = *in++) {
+			if ((c3 == '@') || (c3 == 'B')) {
+			    codeset = MULTIBYTE;
+			    if (win->font_size != mo_charset_jis) {
+				mo_set_fonts(win, mo_charset_jis); }
+			} else if (c3 == ')') {
+			    if (c4 = *in++) {
+				if (c4 == 'A') {
+				    mo_set_fonts(win, mo_charset_gb);
+				} else if (c4 == 'B') {
+				    mo_set_fonts(win, mo_charset_jis);
+				} else if (c4 == 'C') {
+				    mo_set_fonts(win, mo_charset_ksc);
+				} else {
+				    *out++ = c1; *out++ = c2;
+				    *out++ = c3; *out++ = c4; }
+			    } else {
+				*out++ = c1; *out++ = c2; *out++ = c3; break; }
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else if (c2 == '(') {
+		    if (c3 = *in++) {
+			if ((c3 == 'B') || (c3 == 'J')) {
+			    codeset = ASCII;
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else if (c2 == '-') {
+		    if (c3 = *in++) {
+			if (c3 == 'A') {
+			    mo_set_fonts(win, mo_regular_fonts);
+			} else if (c3 == 'B') {
+			    mo_set_fonts(win, mo_charset_iso_8859_2);
+			} else if (c3 == 'C') {
+			    mo_set_fonts(win, mo_charset_iso_8859_3);
+			} else if (c3 == 'D') {
+			    mo_set_fonts(win, mo_charset_iso_8859_4);
+			} else if (c3 == 'L') {
+			    mo_set_fonts(win, mo_charset_iso_8859_5);
+			} else if (c3 == 'F') {
+			    mo_set_fonts(win, mo_charset_iso_8859_7);
+			} else if (c3 == 'H') {
+			    mo_set_fonts(win, mo_charset_iso_8859_8);
+			} else if (c3 == 'M') {
+			    mo_set_fonts(win, mo_charset_iso_8859_9);
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else {
+		    *out++ = c1; *out++ = c2; }
+	    } else {
+		*out++ = c1; break; }
+	} else if ((c1 == '~') && (win->font_size == mo_charset_hz)) {
+	    if (c2 = *in++) {
+		if (c2 == '{') {
+		    codeset = MULTIBYTE;
+		} else if (c2 == '}') {
+		    codeset = ASCII;
+		} else if (c2 == '~') {
+		    *out++ = '~';
+		} else if (c2 == '\n') {
+		    /* ignore newline */
+		} else {
+		    *out++ = c1; *out++ = c2; }
+	    } else {
+		*out++ = c1; break; }
+	} else if (c1 == SO) {
+	    codeset = MULTIBYTE;
+	} else if (c1 == SI) {
+	    codeset = ASCII;
+	} else if (c2 = *in++) {
+	    eucflag = (IS_EUC(c1) && IS_EUC(c2));
+	    sjisflag = (IS_SJIS1(c1) && IS_SJIS2(c2));
+	    if (win->font_size != mo_charset_jis) {
+		*out++ = c1;
+		in--;
+	    } else if (eucflag && sjisflag) {
+		if (sjiseuc) {
+		    S2E(c1, c2, *out++, *out++);
+		} else {
+		    E2E(c1, c2, *out++, *out++); }
+	    } else if (sjisflag) {
+		S2E(c1, c2, *out++, *out++);
+		sjiseuc = 1;
+	    } else if (eucflag) {
+		E2E(c1, c2, *out++, *out++);
+		sjiseuc = 0;
+	    } else if (codeset == MULTIBYTE && c1 > 0x20) {
+		I2E(c1, c2, *out++, *out++);
+	    } else {
+		*out++ = c1 & 0x7f;
+		in--; }
+	} else {
+	    *out++ = c1; break; }
+    }
+    *out = 0;
+}
+
+/*
+ * code convertion for News
+ */
+mo_news_codeconv(str)
+     char *str;
+{
+    char *in = str;
+    char *out = in;
+    int codeset = ASCII;
+    unsigned char c1, c2, c3, c4;
+    static int sjiseuc=0;
+    int eucflag,sjisflag;
+
+    if (!in) return;
+
+    while (c1 = *in++) {
+	if (c1 == ESC) {
+	    if (c2 = *in++) {
+		if (c2 == '$') {
+		    if (c3 = *in++) {
+			if ((c3 == '@') || (c3 == 'B')) {
+			    codeset = MULTIBYTE;
+			} else if (c3 == ')') {
+			    if (c4 = *in++) {
+				if (c4 == 'A') {
+				    ;
+				} else if (c4 == 'B') {
+				    ;
+				} else if (c4 == 'C') {
+				    ;
+				} else {
+				    *out++ = c1; *out++ = c2;
+				    *out++ = c3; *out++ = c4; }
+			    } else {
+				*out++ = c1; *out++ = c2; *out++ = c3; break; }
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else if (c2 == '(') {
+		    if (c3 = *in++) {
+			if ((c3 == 'B') || (c3 == 'J')) {
+			    codeset = ASCII;
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else if (c2 == '-') {
+		    if (c3 = *in++) {
+			if (c3 == 'A') {
+			    ;
+			} else if (c3 == 'B') {
+			    ;
+			} else if (c3 == 'C') {
+			    ;
+			} else if (c3 == 'D') {
+			    ;
+			} else if (c3 == 'L') {
+			    ;
+			} else if (c3 == 'F') {
+			    ;
+			} else if (c3 == 'H') {
+			    ;
+			} else if (c3 == 'M') {
+			    ;
+			} else {
+			    *out++ = c1; *out++ = c2; *out++ = c3; }
+		    } else {
+			*out++ = c1; *out++ = c2; break; }
+		} else {
+		    *out++ = c1; *out++ = c2; }
+	    } else {
+		*out++ = c1; break; }
+	} else if ((c1 == '~')) {
+	    if (c2 = *in++) {
+		if (c2 == '{') {
+		    codeset = MULTIBYTE;
+		} else if (c2 == '}') {
+		    codeset = ASCII;
+		} else if (c2 == '~') {
+		    *out++ = '~';
+		} else if (c2 == '\n') {
+		    /* ignore newline */
+		} else {
+		    *out++ = c1; *out++ = c2; }
+	    } else {
+		*out++ = c1; break; }
+	} else if (c1 == SO) {
+	    codeset = MULTIBYTE;
+	} else if (c1 == SI) {
+	    codeset = ASCII;
+	} else if (c2 = *in++) {
+	    eucflag = (IS_EUC(c1) && IS_EUC(c2));
+	    sjisflag = (IS_SJIS1(c1) && IS_SJIS2(c2));
+	    if (eucflag && sjisflag) {
+		if (sjiseuc) {
+		    S2E(c1, c2, *out++, *out++);
+		} else {
+		    E2E(c1, c2, *out++, *out++); }
+	    } else if (sjisflag) {
+		S2E(c1, c2, *out++, *out++);
+		sjiseuc = 1;
+	    } else if (eucflag) {
+		E2E(c1, c2, *out++, *out++);
+		sjiseuc = 0;
+	    } else if (codeset == MULTIBYTE && c1 > 0x20) {
+		I2E(c1, c2, *out++, *out++);
+	    } else {
+		*out++ = c1;
+		in--; }
+	} else {
+	    *out++ = c1; break; }
+    }
+    *out = 0;
+}
+
+#endif /* L10N */
 
 mo_status mo_post_access_document (mo_window *win, char *url,
                                    char *content_type, char *post_data)
--- src/gui-menubar.c.orig	Tue Jul  4 07:03:07 1995
+++ src/gui-menubar.c	Wed Sep 27 22:12:13 1995
@@ -64,9 +64,144 @@
 
 #define MAX_DOCUMENTS_MENU_ITEMS 120
 #define DOCUMENTS_MENU_COUNT_OFFSET 5000
+#ifdef DOCMENU_EXTENDER
+#define EX_DOCUMENTS_MENU_COUNT_OFFSET 7000
+#endif /* DOCMENU_EXTENDER */
 /* List of URL's matching items in documents menu. */
 static char *urllist[MAX_DOCUMENTS_MENU_ITEMS];
 
+#ifdef L10N
+
+/* ------------------------- font cache table ------------------------- */
+#define FONT_CACHE_TABLE_SIZE 200
+
+typedef struct font_cache_entry
+{
+  char *fontname;
+  XFontStruct *fontstruct;
+} font_cache_entry;
+
+typedef struct font_cache
+{
+  int count;
+  font_cache_entry table[FONT_CACHE_TABLE_SIZE];
+} font_cache;
+
+static font_cache	font_cache_table;
+
+InitFontCache()
+{
+  int i;
+
+  font_cache_table.count = 0;
+  for (i=0; i<FONT_CACHE_TABLE_SIZE; i++) {
+    font_cache_table.table[i].fontname = (char *)NULL;
+    font_cache_table.table[i].fontstruct = (XFontStruct *)NULL;
+  }
+}
+
+static XFontStruct *
+CachedLoadQueryFont(Display *dpy, char *name)
+{
+  int i;
+
+  for (i=0; i<font_cache_table.count; i++) {
+    if (!strcmp(name, font_cache_table.table[i].fontname)) {
+      return(font_cache_table.table[i].fontstruct);
+    }
+  }
+  /* not found */
+  if (font_cache_table.count++ >= FONT_CACHE_TABLE_SIZE) {
+    fprintf(stderr, "Font Cache Overflow\n");
+    mo_exit();
+  }
+  font_cache_table.table[i].fontname = name;
+#ifdef IXIMOTIF1_2
+  if (strchr(name, ':') != NULL) {
+    int n;
+    char *p, **q, *fs = strdup(name);
+    XFontSet fontset;
+    for (p = fs; *p && (p = strchr(p, ';')) != NULL; p++) *p = ',';
+    if ((p = strchr(fs, ':')) != NULL) *p = '\0';
+    if ((fontset = XCreateFontSet(dpy, fs, &q, &n, NULL)) == NULL)
+      fprintf(stderr, "FontSet \"%s\" Can not Create.\n", name);
+    while (n > 0) fprintf(stderr,
+			  "XCreateFontSet: missing charset \"%s\".\n", q[--n]);
+    free(fs);
+    return(font_cache_table.table[i].fontstruct = (XFontStruct *)fontset);
+  }
+  else
+#endif /* IXIMOTIF1_2 */
+  return(font_cache_table.table[i].fontstruct = XLoadQueryFont(dpy, name));
+}
+
+CloseFontCache()
+{
+  int i;
+
+  for (i=0; i<font_cache_table.count; i++) {
+    if (font_cache_table.table[i].fontstruct != (XFontStruct *)NULL) {
+#ifdef IXIMOTIF1_2
+      if (strchr(font_cache_table.table[i].fontname, ':') != NULL)
+      XFreeFontSet(dsp, (XFontSet)font_cache_table.table[i].fontstruct);
+      else
+#endif /* IXIMOTIF1_2 */
+      XFreeFont(dsp, font_cache_table.table[i].fontstruct);
+    }
+  }
+}
+
+/* ------------------------- fontset search ------------------------- */
+extern char **ParseCommaList();
+
+char *
+strcasestr(char *str, char *key)
+{
+  char *begin;
+
+  if ((str == NULL) || (key == NULL) || (*key == '\0'))
+    return(str);
+
+  for (begin = str; begin != NULL; begin++) {
+    char *b = begin;
+    char *k = key;
+    while ((*b != '\0') && (*k != '\0')) {
+      if (toupper(*b++) != toupper(*k++)) goto next;
+    }
+    if (*begin == '\0') {
+      return(NULL);
+    } else {
+      return(begin);
+    }
+  next:;
+  }
+  return(NULL);
+}
+
+char *
+GetFontName(char *fontSet, char *key)
+{
+  char **vlist;
+  int vlist_cnt;
+  int i;
+  char *c;
+
+  vlist = ParseCommaList(fontSet, &vlist_cnt);
+
+  for (i=0; i<vlist_cnt; i++) {
+    if (strcasestr(vlist[i], key) != NULL) {
+      c = vlist[i];
+      while ((*c != '\0') && isspace(*c)) c++;
+      return(c);
+    }
+  }
+  /* not found */
+  fprintf(stderr, "%s font is not specified in the FontSet: %s\nUsing fixed (latin-1) font.\n",
+         key, fontSet);
+  return("fixed");
+}
+#endif /* L10N */
+
 /* --------------------------- mo_post_exitbox ---------------------------- */
 
 static XmxCallback (exit_confirm_cb)
@@ -79,7 +214,7 @@
   return;
 }
 
-static void mo_post_exitbox (void)
+void mo_post_exitbox (void)
 {
   if (Rdata.confirm_exit)
     {
@@ -113,21 +248,44 @@
   return mo_succeed;
 }
 
+#ifdef DISABLE_TABLE
+/* -------------------- mo_set_disable_table_toggle -------------------- */
+
+mo_status mo_set_disable_table_toggle (mo_window *win)
+{
+  XmxRSetToggleState (win->menubar, mo_disable_table,
+                      win->disable_table ? XmxSet : XmxNotSet);
+  return mo_succeed;
+}
+#endif /* DISABLE_TABLE */
+
 /* ---------------------------- mo_set_fonts ---------------------------- */
 
 static long wrapFont (char *name)
 {
+#ifdef L10N
+  XFontStruct *font = CachedLoadQueryFont (dsp, name);
+#else /* L10N */
   XFontStruct *font = XLoadQueryFont (dsp, name);
+#endif /* L10N */
   if (font == NULL)
     {
       fprintf (stderr, "Could not open font '%s'\n", name);
+#ifdef L10N
+      font = CachedLoadQueryFont (dsp, "fixed");
+#else /* L10N */
       font = XLoadQueryFont (dsp, "fixed");
+#endif /* L10N */
     }
   return ((long)font);
 }
 
 mo_status mo_set_fonts (mo_window *win, int size)
 {
+#ifdef L10N
+  mo_set_font_list(win, size);
+  XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* L10N */
   switch (size)
     {
     case mo_large_fonts:
@@ -148,6 +306,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-times-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-times-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-times-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-times-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-times-bold-r-normal-*-25-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-times-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-times-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-times-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-times-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-times-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-times-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-times-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 0;
@@ -170,6 +348,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-times-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-times-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-times-medium-i-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-times-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-times-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-times-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-times-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-times-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-times-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-times-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-times-medium-i-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-times-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
       XmxSetValues (win->scrolled_win);
       win->font_family = 0;
       break;
@@ -191,6 +389,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-times-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-times-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-times-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-times-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-times-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-times-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-times-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-times-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-times-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-times-bold-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-times-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-times-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 0;
@@ -213,6 +431,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-helvetica-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-25-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
       XmxSetValues (win->scrolled_win);
       win->font_family = 1;
       break;
@@ -234,6 +472,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-helvetica-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
       XmxSetValues (win->scrolled_win);
       win->font_family = 1;
       break;
@@ -255,6 +513,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-helvetica-bold-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-helvetica-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 1;
@@ -277,6 +555,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-25-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
       XmxSetValues (win->scrolled_win);
       win->font_family = 2;
       break;
@@ -298,6 +596,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
       XmxSetValues (win->scrolled_win);
       win->font_family = 2;
       break;
@@ -319,6 +637,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-adobe-courier-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-adobe-new century schoolbook-bold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-adobe-new century schoolbook-medium-i-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-adobe-new century schoolbook-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 2;
@@ -341,6 +679,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-b&h-lucidabright-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-25-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-20-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 3;
@@ -363,6 +721,26 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-b&h-lucidabright-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-24-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 3;
@@ -385,10 +763,508 @@
       XmxSetArg (WbNplainboldFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNplainitalicFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
       XmxSetArg (WbNsupSubFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+#ifdef L10N
+      XmxSetArg (WbNWCfont, wrapFont("-b&h-lucidabright-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNitalicWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNboldWCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader1WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-18-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader2WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-17-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader3WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader4WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader5WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-11-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNheader6WCFont, wrapFont("-b&h-lucidabright-demibold-r-normal-*-10-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNaddressWCFont, wrapFont("-b&h-lucidabright-medium-i-normal-*-14-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainWCFont, wrapFont("-b&h-lucidatypewriter-medium-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainboldWCFont, wrapFont("-b&h-lucidatypewriter-bold-r-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont("-adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNsupSubWCFont, wrapFont("-b&h-lucidabright-medium-r-normal-*-8-*-*-*-*-*-*-*"));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_1);
+#endif /* L10N */
 
       XmxSetValues (win->scrolled_win);
       win->font_family = 3;
       break;
+#ifdef L10N
+    case mo_charset_iso_8859_2:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-2")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-2")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-2")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-2")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-2")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-2")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-2")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-2")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-2")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-2")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-2")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-2")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-2")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-2")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-2")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_2);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_3:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-3")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-3")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-3")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-3")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-3")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-3")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-3")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-3")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-3")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-3")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-3")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-3")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-3")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-3")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-3")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_3);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_4:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-4")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-4")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-4")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-4")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-4")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-4")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-4")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-4")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-4")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-4")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-4")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-4")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-4")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-4")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-4")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-4")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-4")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-5")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-4")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_4);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_5:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-5")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-5")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-5")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-5")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-5")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-5")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-5")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-5")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-5")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-5")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-5")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-5")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-5")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-5")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-5")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_5);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_7:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-7")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-7")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-7")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-7")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-7")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-7")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-7")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-7")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-7")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-7")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-7")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-7")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-7")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-7")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-7")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_7);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_8:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-8")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-8")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-8")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-8")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-8")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-8")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-8")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-8")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-8")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-8")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-8")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-8")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-8")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-8")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-8")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_8);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_iso_8859_9:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-9")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-9")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-9")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-9")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-9")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-9")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-9")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "is8859-9")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-9")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-9")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-9")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-9")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-9")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-9")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-9")));
+      XmxSetArg (WbNcharsetInfo, CS_ISO_8859_9);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_koi8:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "koi-1")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "koi-1")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "koi-1")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "koi-1")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "koi-1")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "koi-1")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "koi-1")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "koi-1")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "koi-1")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "koi-1")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "koi-1")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "koi-1")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "koi-1")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "koi-1")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "koi-1")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "koi-1")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "koi-1")));
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "koi-1")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "koi-1")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "koi-1")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "koi-1")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "koi-1")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "koi-1")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "koi-1")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "koi-1")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "koi-1")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "koi-1")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "koi-1")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "koi-1")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "koi-1")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "koi-1")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "koi-1")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "koi-1")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "koi-1")));
+      XmxSetArg (WbNcharsetInfo, CS_KOI8);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_jis:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-1")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-1")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-1")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-1")));
+      /* Wide Character will be treated as JIS X 0208 (Japanese) */
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "jisx0208")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "jisx0208")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "jisx0208")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "jisx0208")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "jisx0208")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "jisx0208")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "jisx0208")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "jisx0208")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "jisx0208")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "jisx0208")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "jisx0208")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "jisx0208")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "jisx0208")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "jisx0208")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "jisx0208")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "jisx0208")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "jisx0208")));
+      XmxSetArg (WbNcharsetInfo, CS_JIS);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_gb:
+    case mo_charset_hz:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-1")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-1")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-1")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-1")));
+      /* Wide Character will be treated as GB 2312/GB-encoding (Chinese) */
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "gb2312")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "gb2312")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "gb2312")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "gb2312")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "gb2312")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "gb2312")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "gb2312")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "gb2312")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "gb2312")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "gb2312")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "gb2312")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "gb2312")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "gb2312")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "gb2312")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "gb2312")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "gb2312")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "gb2312")));
+      if (size == mo_charset_gb)
+       XmxSetArg (WbNcharsetInfo, CS_GB);
+      else
+       XmxSetArg (WbNcharsetInfo, CS_HZ);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_big5:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-1")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-1")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-1")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-1")));
+      /* Wide Character will be treated as Big5 (Chinese) */
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "big5")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "big5")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "big5")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "big5")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "big5")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "big5")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "big5")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "big5")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "big5")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "big5")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "big5")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "big5")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "big5")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "big5")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "big5")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "big5")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "big5")));
+      XmxSetArg (WbNcharsetInfo, CS_Big5);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+    case mo_charset_ksc:
+      XmxSetArg (XtNfont, wrapFont(GetFontName(Rdata.FontSet, "iso8859-1")));
+      XmxSetArg (WbNitalicFont, wrapFont(GetFontName(Rdata.italicFontSet, "iso8859-1")));
+      XmxSetArg (WbNboldFont, wrapFont(GetFontName(Rdata.boldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedFont, wrapFont(GetFontName(Rdata.fixedFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixedboldFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNfixeditalicFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNheader1Font, wrapFont(GetFontName(Rdata.header1FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader2Font, wrapFont(GetFontName(Rdata.header2FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader3Font, wrapFont(GetFontName(Rdata.header3FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader4Font, wrapFont(GetFontName(Rdata.header4FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader5Font, wrapFont(GetFontName(Rdata.header5FontSet, "iso8859-1")));
+      XmxSetArg (WbNheader6Font, wrapFont(GetFontName(Rdata.header6FontSet, "iso8859-1")));
+      XmxSetArg (WbNaddressFont, wrapFont(GetFontName(Rdata.addressFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainFont, wrapFont(GetFontName(Rdata.plainFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainboldFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "iso8859-1")));
+      XmxSetArg (WbNplainitalicFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "iso8859-1")));
+      XmxSetArg (WbNsupSubFont, wrapFont(GetFontName(Rdata.supSubFontSet, "iso8859-1")));
+      /* Wide Character will be treated as KSC 5601 (Korean) */
+      XmxSetArg (WbNWCfont, wrapFont(GetFontName(Rdata.FontSet, "ksc5601")));
+      XmxSetArg (WbNitalicWCFont, wrapFont(GetFontName(Rdata.italicFontSet, "ksc5601")));
+      XmxSetArg (WbNboldWCFont, wrapFont(GetFontName(Rdata.boldFontSet, "ksc5601")));
+      XmxSetArg (WbNfixedWCFont, wrapFont(GetFontName(Rdata.fixedFontSet, "ksc5601")));
+      XmxSetArg (WbNfixedboldWCFont, wrapFont(GetFontName(Rdata.fixedboldFontSet, "ksc5601")));
+      XmxSetArg (WbNfixeditalicWCFont, wrapFont(GetFontName(Rdata.fixeditalicFontSet, "ksc5601")));
+      XmxSetArg (WbNheader1WCFont, wrapFont(GetFontName(Rdata.header1FontSet, "ksc5601")));
+      XmxSetArg (WbNheader2WCFont, wrapFont(GetFontName(Rdata.header2FontSet, "ksc5601")));
+      XmxSetArg (WbNheader3WCFont, wrapFont(GetFontName(Rdata.header3FontSet, "ksc5601")));
+      XmxSetArg (WbNheader4WCFont, wrapFont(GetFontName(Rdata.header4FontSet, "ksc5601")));
+      XmxSetArg (WbNheader5WCFont, wrapFont(GetFontName(Rdata.header5FontSet, "ksc5601")));
+      XmxSetArg (WbNheader6WCFont, wrapFont(GetFontName(Rdata.header6FontSet, "ksc5601")));
+      XmxSetArg (WbNaddressWCFont, wrapFont(GetFontName(Rdata.addressFontSet, "ksc5601")));
+      XmxSetArg (WbNplainWCFont, wrapFont(GetFontName(Rdata.plainFontSet, "ksc5601")));
+      XmxSetArg (WbNplainboldWCFont, wrapFont(GetFontName(Rdata.plainboldFontSet, "ksc5601")));
+      XmxSetArg (WbNplainitalicWCFont, wrapFont(GetFontName(Rdata.plainitalicFontSet, "ksc5601")));
+      XmxSetArg (WbNsupSubWCFont, wrapFont(GetFontName(Rdata.supSubFontSet, "ksc5601")));
+      XmxSetArg (WbNcharsetInfo, CS_KSC);
+      XmxSetValues (win->scrolled_win);
+      win->font_family = 0;
+      break;
+#endif /* L10N */
     }
 
   XmxRSetToggleState (win->menubar, win->font_size, XmxNotSet);
@@ -399,6 +1275,228 @@
   return mo_succeed;
 }
 
+#ifdef L10N
+
+XmFontList
+wrapFontList(int size)
+{
+  char *charset1, *charset2;
+  char *fname1, *fname2;
+  XFontStruct *fstruct1, *fstruct2;
+#ifdef OPENWARE
+  XFontStruct *fstruct3;
+#endif /* OPENWARE */
+#ifdef IXIMOTIF1_2
+  XmFontType type;
+  XmFontListEntry fle;
+#endif /* IXIMOTIF1_2 */
+
+  XmFontList flist;
+
+  /* choose  font list */
+  switch (size) {
+  case mo_charset_iso_8859_2:
+    charset1 = charset2 = "ISO8859-2";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-2");
+    break;
+  case mo_charset_iso_8859_3:
+    charset1 = charset2 = "ISO8859-3";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-3");
+    break;
+  case mo_charset_iso_8859_4:
+    charset1 = charset2 = "ISO8859-4";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-4");
+    break;
+  case mo_charset_iso_8859_5:
+    charset1 = charset2 = "ISO8859-5";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-5");
+    break;
+  case mo_charset_iso_8859_7:
+    charset1 = charset2 = "ISO8859-7";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-7");
+    break;
+  case mo_charset_iso_8859_8:
+    charset1 = charset2 = "ISO8859-8";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-8");
+    break;
+  case mo_charset_iso_8859_9:
+    charset1 = charset2 = "ISO8859-9";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-9");
+    break;
+  case mo_charset_koi8:
+    charset1 = charset2 = "KOI-1";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "koi-1");
+    break;
+  case mo_charset_jis:
+    charset1 = "ISO8859-1";
+#ifdef JDEC
+    charset2 = "JISX0208.1983-1";
+#else /* JDEC */
+    charset2 = "JISX0208.1983-0";
+#endif /* JDEC */
+    fname1 = GetFontName(Rdata.textfieldFontSet, "iso8859-1");
+    fname2 = GetFontName(Rdata.textfieldFontSet, "jisx0208");
+    break;
+  case mo_charset_gb:
+  case mo_charset_hz:
+    charset1 = "ISO8859-1";
+    charset2 = "GB2312.1980-0";
+    fname1 = GetFontName(Rdata.textfieldFontSet, "iso8859-1");
+    fname2 = GetFontName(Rdata.textfieldFontSet, "gb2312");
+    break;
+  case mo_charset_big5:
+    charset1 = "ISO8859-1";
+    charset2 = "BIG5-0";
+    fname1 = GetFontName(Rdata.textfieldFontSet, "iso8859-1");
+    fname2 = GetFontName(Rdata.textfieldFontSet, "big5");
+    break;
+  case mo_charset_ksc:
+    charset1 = "ISO8859-1";
+    charset2 = "KSC5601.1987-0";
+    fname1 = GetFontName(Rdata.textfieldFontSet, "iso8859-1");
+    fname2 = GetFontName(Rdata.textfieldFontSet, "ksc5601");
+    break;
+  case mo_large_fonts:
+  case mo_regular_fonts:
+  case mo_small_fonts:
+  case mo_large_helvetica:
+  case mo_regular_helvetica:
+  case mo_small_helvetica:
+  case mo_large_newcentury:
+  case mo_regular_newcentury:
+  case mo_small_newcentury:
+  case mo_large_lucidabright:
+  case mo_regular_lucidabright:
+  case mo_small_lucidabright:
+  default:
+    charset1 = charset2 = "ISO8859-1";
+    fname1 = fname2 = GetFontName(Rdata.textfieldFontSet, "iso8859-1");
+    break;
+  }
+
+  /* and create XmFontList */
+#ifndef IXIMOTIF1_2
+  if ((fstruct1 = CachedLoadQueryFont(dsp, fname1)) == (XFontStruct *)NULL) {
+      fprintf(stderr, "Could not open font: '%s'\n", fname1);
+      fstruct1 = CachedLoadQueryFont(dsp, "fixed");
+  }
+#endif /* !IXIMOTIF1_2 */
+#ifdef OPENWARE
+  flist = XmFontListCreate(fstruct1, (XmStringCharSet)"codeset0");
+#endif /* OPENWARE */
+#ifdef J_IRIX
+  flist = XmFontListCreate(fstruct1, XmSTRING_DEFAULT_CHARSET);
+#endif /* J_IRIX */
+#if !defined(OPENWARE) && !defined(J_IRIX) && !defined(IXIMOTIF1_2)
+  flist = XmFontListCreate(fstruct1, charset1);
+#endif /* !OPENWARE && !J_IRIX && !IXIMOTIF1_2 */
+  if ((fstruct2 = CachedLoadQueryFont(dsp, fname2)) == (XFontStruct *)NULL) {
+      fprintf(stderr, "Could not open font: '%s'\n", fname2);
+      fstruct2 = CachedLoadQueryFont(dsp, "fixed");
+  }
+#ifdef IXIMOTIF1_2
+  if (strchr(fname2, ':') != NULL) type = XmFONT_IS_FONTSET;
+  else type = XmFONT_IS_FONT;
+  fle = XmFontListEntryCreate(XmFONTLIST_DEFAULT_TAG, type, (XtPointer)fstruct2);
+  flist = XmFontListAppendEntry(NULL, fle);
+  XmFontListEntryFree(&fle);
+#endif /* IXIMOTIF1_2 */
+#ifdef OPENWARE
+  flist = XmFontListAdd(flist, fstruct2, (XmStringCharSet)"codeset1");
+#endif /* OPENWARE */
+#ifdef J_IRIX
+  flist = XmFontListAdd(flist, fstruct2, XmSTRING_DEFAULT_CHARSET);
+#endif /* J_IRIX */
+#if !defined(OPENWARE) && !defined(J_IRIX) && !defined(IXIMOTIF1_2)
+  flist = XmFontListAdd(flist, fstruct2, charset2);
+#endif /* !OPENWARE && !J_IRIX && !IXIMOTIF1_2 */
+
+#ifdef OPENWARE
+  if ((fstruct3 = CachedLoadQueryFont(dsp, fname1)) == (XFontStruct *)NULL) {
+      fprintf(stderr, "Could not open font: '%s'\n", fname1);
+      fstruct3 = CachedLoadQueryFont(dsp, "fixed");
+  }
+  flist = XmFontListAdd(flist, fstruct3, (XmStringCharSet)"codeset2");
+#endif /* OPENWARE */
+#ifdef J_IRIX
+  flist = XmFontListAdd(flist, fstruct1, charset1);
+  flist = XmFontListAdd(flist, fstruct2, charset2);
+#endif /* J_IRIX */
+
+  return(flist);
+}
+
+mo_set_font_list(mo_window *win, int size)
+{
+  Arg wargs[1];
+
+  win->font_list = wrapFontList(size);
+  XtSetArg(wargs[0], XmNfontList, (XtArgVal)win->font_list);
+  if (win->title_text)     XtSetValues(win->title_text, wargs, 1);
+  if (win->url_text)       XtSetValues(win->url_text, wargs, 1);
+  if (win->search_win_text) XtSetValues(win->search_win_text, wargs, 1);
+ /* if (win->edithot_text)    XtSetValues(win->edithot_text, wargs, 1); */
+  if (win->annotate_author) XtSetValues(win->annotate_author, wargs, 1);
+  if (win->annotate_title)  XtSetValues(win->annotate_title, wargs, 1);
+  if (win->history_list)    XtSetValues(win->history_list, wargs, 1);
+  if (win->hotlist_list)    XtSetValues(win->hotlist_list, wargs, 1);
+  if (win->source_text)            XtSetValues(win->source_text, wargs, 1);
+  if (win->annotate_text)   XtSetValues(win->annotate_text, wargs, 1);
+  /* Taninaka */
+  if (win->news_win && win->news_text)      XtSetValues(win->news_text, wargs, 1);
+  if (win->mailto_win && win->mailto_text)  XtSetValues(win->mailto_text, wargs, 1);
+  /* Taninaka */
+}
+
+/* ----------------------- mo_set_bidirectionality ----------------------- */
+
+mo_status mo_set_bidirectionality (mo_window *win, int choice)
+{
+  switch (choice)
+    {
+    case mo_bidir_visual:
+      XmxSetArg (WbNbidirInfo, BIDIR_VISUAL);
+      XmxSetValues (win->scrolled_win);
+      break;
+    case mo_bidir_implicit:
+      XmxSetArg (WbNbidirInfo, BIDIR_IMPLICIT);
+      XmxSetValues (win->scrolled_win);
+      break;
+/* Not yet supported:
+    case mo_bidir_explicit:
+      XmxSetArg (WbNbidirInfo, BIDIR_EXPLICIT);
+      XmxSetValues (win->scrolled_win);
+      break;
+*/
+    }
+
+  XmxRSetToggleState (win->menubar, win->bidirectionality, XmxNotSet);
+  XmxRSetToggleState (win->menubar, choice, XmxSet);
+  win->bidirectionality = choice;
+
+  return mo_succeed;
+}
+
+/* -------------------------- mo_force_font_change -------------------------- */
+
+mo_status mo_force_font_change(mo_window *win, int size)
+{
+  void *to_free = NULL;
+
+  if (win->current_node) {
+    to_free = win->current_node->cached_stuff;
+    win->current_node->cached_stuff = NULL;
+    win->current_node->font_size = size;
+  }
+  XmxSetArg(WbNforceReparse, (XtArgVal)True);
+  mo_set_fonts(win, size);
+  if (to_free) {
+    HTMLFreeWidgetInfo(to_free);
+  }
+}
+
+#endif /* l10n */
+
 /* -------------------------- mo_set_underlines --------------------------- */
 
 mo_status mo_set_underlines (mo_window *win, int choice)
@@ -529,6 +1627,10 @@
 /* ------------------------------ menubar_cb ------------------------------ */
 
 extern void NNTPconfig(int viewtype);
+#ifdef NEWS_SELECT
+extern void NEWSconfig(int viewtype);
+extern void NEWSHEADERconfig(int viewtype);
+#endif /* NEWS_SELECT */
 
 XmxCallback (menubar_cb)
 {
@@ -683,8 +1785,37 @@
     case mo_large_lucidabright:
     case mo_regular_lucidabright:
     case mo_small_lucidabright:
+#ifdef L10N
+    case mo_charset_iso_8859_2:
+    case mo_charset_iso_8859_3:
+    case mo_charset_iso_8859_4:
+    case mo_charset_iso_8859_5:
+    case mo_charset_iso_8859_7:
+    case mo_charset_iso_8859_8:
+    case mo_charset_iso_8859_9:
+    case mo_charset_koi8:
+    case mo_charset_gb:
+    case mo_charset_hz:
+    case mo_charset_jis:
+    case mo_charset_ksc:
+    case mo_charset_big5:
+#endif /* L10N */
+#ifdef L10N
+      mo_force_font_change (win, i);
+#else /* L10N */
       mo_set_fonts (win, i);
+#endif /* L10N */
+      break;
+#ifdef L10N
+    case mo_bidir_visual:
+    case mo_bidir_implicit:
+/*  case mo_bidir_explicit: */ /* Not yet supported: */
+      mo_set_bidirectionality (win, i);
       break;
+    case mo_set_accept_languages:
+      mo_post_accept_languages (win);
+      break;
+#endif /* L10N */
     case mo_default_underlines:
     case mo_l1_underlines:
     case mo_l2_underlines:
@@ -762,6 +1893,36 @@
       XmxRSetToggleState (win->menubar, mo_news_fmt0, XmxNotSet);
       XmxRSetToggleState (win->menubar, mo_news_fmt1, XmxSet);
       break;
+#ifdef NEWS_SELECT
+    case mo_news_body_fmt0:
+      NEWSconfig(0);
+      XmxRSetToggleState (win->menubar, mo_news_body_fmt1, XmxNotSet);
+      XmxRSetToggleState (win->menubar, mo_news_body_fmt0, XmxSet);
+      if ((strlen(win->current_node->url) > 5) && ! strncmp("news:", win->current_node->url , 5))
+        mo_reload_window_text (win, 0);
+      break;
+    case mo_news_body_fmt1:
+      NEWSconfig(1);
+      XmxRSetToggleState (win->menubar, mo_news_body_fmt0, XmxNotSet);
+      XmxRSetToggleState (win->menubar, mo_news_body_fmt1, XmxSet);
+      if ((strlen(win->current_node->url) > 5) && ! strncmp("news:", win->current_node->url , 5))
+        mo_reload_window_text (win, 0);
+      break;
+    case mo_news_header_fmt0:
+      NEWSHEADERconfig(0);
+      XmxRSetToggleState (win->menubar, mo_news_header_fmt1, XmxNotSet);
+      XmxRSetToggleState (win->menubar, mo_news_header_fmt0, XmxSet);
+      if ((strlen(win->current_node->url) > 5) && ! strncmp("news:", win->current_node->url , 5))
+        mo_reload_window_text (win, 0);
+      break;
+    case mo_news_header_fmt1:
+      NEWSHEADERconfig(1);
+      XmxRSetToggleState (win->menubar, mo_news_header_fmt0, XmxNotSet);
+      XmxRSetToggleState (win->menubar, mo_news_header_fmt1, XmxSet);
+      if ((strlen(win->current_node->url) > 5) && ! strncmp("news:", win->current_node->url , 5))
+        mo_reload_window_text (win, 0);
+      break;
+#endif /* NEWS_SELECT */
     case mo_news_post:
       mo_post_news_win(win);
       break;
@@ -822,7 +1983,23 @@
       else
         mo_do_delete_annotation (win);
       break;
+#ifdef DISABLE_TABLE
+    case mo_disable_table:
+      win->disable_table = 1 - win->disable_table;
+      mo_set_disable_table_toggle (win);
+      XmxSetArg (WbNdisableTable, win->disable_table ? True : False);
+      XmxSetValues (win->scrolled_win);
+      break;
+#endif /* DISABLE_TABLE */
     default:
+#ifdef DOCMENU_EXTENDER
+      if (i >= EX_DOCUMENTS_MENU_COUNT_OFFSET) {
+        char dynamic_doc_menu[MO_LINE_LENGTH];
+        sprintf(dynamic_doc_menu, urllist[i - EX_DOCUMENTS_MENU_COUNT_OFFSET],
+                win->current_node->url);
+        mo_access_document (win, dynamic_doc_menu);
+      } else
+#endif /* DOCMENU_EXTENDER */
       if (i >= DOCUMENTS_MENU_COUNT_OFFSET)
         mo_access_document (win, urllist[i - DOCUMENTS_MENU_COUNT_OFFSET]);
       break;
@@ -1022,6 +2199,22 @@
   { "<Lucida Bright Regular",      'L', menubar_cb, mo_regular_lucidabright },
   { "<Lucida Bright Small",        'u', menubar_cb, mo_small_lucidabright },
   { "<Lucida Bright Large",        'i', menubar_cb, mo_large_lucidabright },
+#ifdef L10N
+  { "----" },
+  { "<(ISO 8859-2)",               '2', menubar_cb, mo_charset_iso_8859_2 },
+  { "<(ISO 8859-3)",               '3', menubar_cb, mo_charset_iso_8859_3 },
+  { "<(ISO 8859-4)",               '4', menubar_cb, mo_charset_iso_8859_4 },
+  { "<Cyrillic (ISO 8859-5)",      '5', menubar_cb, mo_charset_iso_8859_5 },
+  { "<Cyrillic (KOI8)",            'K', menubar_cb, mo_charset_koi8 },
+  { "<Greek (ISO 8859-7)",         '7', menubar_cb, mo_charset_iso_8859_7 },
+  { "<Hebrew (ISO 8859-8)",        '8', menubar_cb, mo_charset_iso_8859_8 },
+  { "<(ISO 8859-9)",               '9', menubar_cb, mo_charset_iso_8859_9 },
+  { "<Chinese (GB 2312)",          'G', menubar_cb, mo_charset_gb },
+  { "<Chinese (Big5)",             'B', menubar_cb, mo_charset_big5 },
+  { "<Chinese (HZ)",               'H', menubar_cb, mo_charset_hz },
+  { "<Korean (KSC 5601)",          'K', menubar_cb, mo_charset_ksc },
+  { "<Japanese (JIS X 0208)",      'J', menubar_cb, mo_charset_jis },
+#endif /* L10N */
   { NULL },
 };
 
@@ -1035,6 +2228,18 @@
   { NULL },
 };
 
+#ifdef L10N
+static XmxMenubarStruct bidir_menuspec[] =
+{
+  { "<Visual",                     'V', menubar_cb, mo_bidir_visual },
+  { "<Implicit",                   'I', menubar_cb, mo_bidir_implicit },
+/* Not yet supported:
+  { "<Explicit",                   'E', menubar_cb, mo_bidir_explicit },
+*/
+  { NULL },
+};
+#endif /* L10N */
+
 static XmxMenubarStruct opts_menuspec[] =
 {
   { "#Fancy Selections",           'S', menubar_cb, mo_fancy_selections },
@@ -1049,8 +2254,21 @@
   { "Flush Image Cache",           'I', menubar_cb, mo_clear_image_cache },
   { "Clear Global History...",     'C', menubar_cb, mo_clear_global_history },
   { "----" },
-  { "Fonts",                       'F', NULL, NULL, fnts_menuspec },
-  { "Anchor Underlines",           'A', NULL, NULL, undr_menuspec }, 
+  { "Fonts",                       'F', 0, 0, fnts_menuspec },
+#ifdef L10N
+  { "Bi-directionality",           'B', 0, 0, bidir_menuspec },
+#endif /* L10N */
+  { "Anchor Underlines",           'A', 0, 0, undr_menuspec }, 
+#ifdef L10N
+/* Conflict Key `L', Changed to lanGuages ;-)
+  { "Accept Languages",            'L', menubar_cb, mo_set_accept_languages },
+  */
+  { "Accept Languages",            'g', menubar_cb, mo_set_accept_languages },
+#endif /* L10N */
+#ifdef DISABLE_TABLE
+  { "----" },
+  { "#Disable TableTag",           'D', menubar_cb, mo_disable_table },
+#endif /* DISABLE_TABLE */
   { NULL },
 };
 
@@ -1113,6 +2331,22 @@
     { NULL }
 };
 
+#ifdef NEWS_SELECT
+static XmxMenubarStruct newsbodyfmt_menuspec[] =
+{
+    { "<HTML View",      'H', menubar_cb, mo_news_body_fmt0 },
+    { "<Normal View",    'N', menubar_cb, mo_news_body_fmt1 },
+    { NULL }
+};
+
+static XmxMenubarStruct newsheaderfmt_menuspec[] =
+{
+    { "<Header View",    'H', menubar_cb, mo_news_header_fmt0 },
+    { "<Normal View",    'N', menubar_cb, mo_news_header_fmt1 },
+    { NULL }
+};
+#endif /* NEWS_SELECT */
+
 static XmxMenubarStruct news_menuspec[] = 
 {
     { "Next",              'N', menubar_cb, mo_news_next },
@@ -1127,7 +2361,11 @@
 /*    { "Reply",             'R', menubar_cb, mo_news_reply },
     { "Cancel",            'C', menubar_cb, mo_news_cancel },
 */    { "----" },
-    { "Format",            'm', NULL, NULL, newsfmt_menuspec },
+    { "Format",            'm', 0, 0, newsfmt_menuspec },
+#ifdef NEWS_SELECT
+    { "Body Format",       'B', 0, 0, newsbodyfmt_menuspec },
+    { "Header Format",     'H', 0, 0, newsheaderfmt_menuspec },
+#endif /* NEWS_SELECT */
 /*    { "----" },
     { "Subscribe",         'S', menubar_cb, mo_news_cancel },
     { "Unsubscribe",       'U', menubar_cb, mo_news_cancel },
@@ -1139,14 +2377,14 @@
 
 static XmxMenubarStruct menuspec[] =
 {
-  { "File",      'F', NULL, NULL, file_menuspec },
-  { "Options",   'O', NULL, NULL, opts_menuspec },
-  { "Navigate",  'N', NULL, NULL, navi_menuspec },
-  { "Annotate",  'A', NULL, NULL, anno_menuspec },
-  { "News",      'w', NULL, NULL, news_menuspec }, 
-  { "Help",      'H', NULL, NULL, help_menuspec },
+  { "File",      'F', 0, 0, file_menuspec },
+  { "Options",   'O', 0, 0, opts_menuspec },
+  { "Navigate",  'N', 0, 0, navi_menuspec },
+  { "Annotate",  'A', 0, 0, anno_menuspec },
+  { "News",      'w', 0, 0, news_menuspec }, 
+  { "Help",      'H', 0, 0, help_menuspec },
   /* Dummy submenu. */
-  { NULL,       NULL, NULL, NULL, NULL },
+  { NULL,       '\0', 0, 0, 0 },
   { NULL },
 };
 
@@ -1214,13 +2452,13 @@
 
 static XmxMenubarStruct simple_menuspec[] =
 {
-  { "File",      'F', NULL, NULL, file_simple_menuspec },
-  { "Navigate",  'N', NULL, NULL, navi_simple_menuspec },
-  { "Options",   'O', NULL, NULL, opts_simple_menuspec },
-  { "Annotate",  'A', NULL, NULL, anno_simple_menuspec },
-  { "Help",      'H', NULL, NULL, help_simple_menuspec },
+  { "File",      'F', 0, 0, file_simple_menuspec },
+  { "Navigate",  'N', 0, 0, navi_simple_menuspec },
+  { "Options",   'O', 0, 0, opts_simple_menuspec },
+  { "Annotate",  'A', 0, 0, anno_simple_menuspec },
+  { "Help",      'H', 0, 0, help_simple_menuspec },
   /* Dummy submenu. */
-  { NULL,       NULL, NULL, NULL, NULL },
+  { NULL,       '\0', 0, 0, 0 },
   { NULL },
 };
 
@@ -1294,7 +2532,9 @@
           menu[count].namestr[strlen(line)-1] = '\0';
           menu[count].mnemonic = 0;
           menu[count].func = (void (*)())menubar_cb;
+#ifndef DOCMENU_EXTENDER
           menu[count].data = count + DOCUMENTS_MENU_COUNT_OFFSET;
+#endif /* !DOCMENU_EXTENDER */
           menu[count].sub_menu = 0;
           
           status = fgets (line, MO_LINE_LENGTH, fp);
@@ -1310,6 +2550,27 @@
           /* There's a URL. */
           urllist[count] = strdup (line);
           urllist[count][strlen(line)-1] = '\0';
+#ifdef DOCMENU_EXTENDER
+          {
+            /* Give current URL to "Documets" menu.
+             * menu specfile example:
+             *
+             *   View with Delegate + CIIlib(10080)
+             *   http://Delegate.Host:10080/-_-[CURRENT]
+             */
+            char *p;
+            p = strchr(line, '[');
+            if (p == NULL || strncmp(p, "[CURRENT]", 9) != 0) {
+              menu[count].data = count + DOCUMENTS_MENU_COUNT_OFFSET;
+            } else {
+              menu[count].data = count + EX_DOCUMENTS_MENU_COUNT_OFFSET;
+              urllist[count][p - line] = '\0';
+              strcat(urllist[count], "%s");
+              strcat(urllist[count], p + 9);
+              urllist[count][strlen(urllist[count])-1] = '\0';
+            }
+          }
+#endif /* DOCMENU_EXTENDER */
         }
 
       /* Count increases. */
--- src/gui-news.c.orig	Tue Jun 13 02:04:37 1995
+++ src/gui-news.c	Thu Sep 14 17:01:13 1995
@@ -169,6 +169,18 @@
       status = fgets (line, MO_LINE_LENGTH, fp);
       if (!status || !(*line))
         goto done;
+#ifdef L10N
+      {
+        char *p;
+	for (p=line;*p;p++) {
+	  if (*p & 0x80) {
+	    if (!(*(++p) & 0x80)) {
+	      p[-1] = '?';
+	    }
+	  }
+        }
+      }
+#endif /* L10N */
       
       XmTextInsert (win->news_text,
                     pos = XmTextGetInsertionPosition (win->news_text),
@@ -198,7 +210,7 @@
 static XmxCallback (news_win_cb)
 {
   mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
-  char *msg,*subj,*group,*from,*line;
+  char *msg,*subj,*group,*from;
 
   switch (XmxExtractToken ((int)client_data))
     {
@@ -337,6 +349,9 @@
 
 	if(line = NNTPgetquoteline(win->newsfollow_artid)){
 	    do {
+#ifdef L10N
+		mo_news_codeconv(line);
+#endif /* L10N */
 		XmTextInsert(win->news_text,
 			     pos = XmTextGetInsertionPosition (win->news_text),
 			     line);
@@ -398,7 +413,7 @@
 
 mo_status mo_post_generic_news_win(mo_window *win, int follow)
 {
-  extern char *machine;	
+  extern char *machine;
   struct passwd *pw = getpwuid (getuid ());
   char namestr[1024], *author, tmp[1024];
   Widget dialog_frame;
@@ -411,7 +426,7 @@
       author = Rdata.default_author_name;
   else
       author = pw->pw_gecos;
-  sprintf (namestr, "%s <%s@%s>\0", author, pw->pw_name, machine);
+  sprintf (namestr, "%s <%s@%s>", author, pw->pw_name, machine);
 
   if (!win->news_win)
     {
@@ -446,12 +461,33 @@
       else
 	  yap_label = XmxMakeLabel (news_form, "Post a UseNet News Article");
 
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 33);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 65);
       win->news_text_subj = XmxMakeText (news_form);
 
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 33);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 65);
       win->news_text_group = XmxMakeText (news_form);
 
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 33);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 65);
       XmxSetArg (XmNeditable, False);
       win->news_text_from = XmxMakeText (news_form);
@@ -462,9 +498,21 @@
       XmxSetArg (XmNeditable, True);
       XmxSetArg (XmNeditMode, XmMULTI_LINE_EDIT);
       XmxSetArg (XmNrows, 30);
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 40);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 80);
       XmxSetArg (XmNwordWrap, True); 
       XmxSetArg (XmNscrollHorizontal, False); 
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 && !MOTIF_I18N */
+#endif /* L10N */
       win->news_text = XmxMakeScrolledText (news_form);
       
       dialog_sep = XmxMakeHorizontalSeparator (news_form);
--- src/gui.c.orig	Tue Jul  4 05:17:35 1995
+++ src/gui.c	Thu Sep 28 12:02:54 1995
@@ -62,7 +62,11 @@
 #include <netinet/in.h>
 #include <netdb.h>
 #include <ctype.h>
+#ifdef sony_news
+#include "utsname.h"
+#else /* sony_news */
 #include <sys/utsname.h>
+#endif /* sony_news */
 
 /* doesn't seem to be on all X11R4 systems
 #if (XtSpecificationRelease == 4)
@@ -106,6 +110,18 @@
 #include "bitmaps/xmosaic_right.xbm"
 #include "bitmaps/xmosaic_down.xbm"
 
+#include "bitmaps/back.xbm"
+#include "bitmaps/dis_back.xbm"
+#include "bitmaps/forward.xbm"
+#include "bitmaps/dis_forward.xbm"
+#include "bitmaps/home.xbm"
+#include "bitmaps/reload.xbm"
+#include "bitmaps/open.xbm"
+#include "bitmaps/save.xbm"
+#include "bitmaps/clone.xbm"
+#include "bitmaps/new.xbm"
+#include "bitmaps/close.xbm"
+
 /* Because Sun cripples the keysym.h file. */
 #ifndef XK_KP_Up
 #define XK_KP_Home              0xFF95  /* Keypad Home */
@@ -124,7 +140,7 @@
  * Marc, I imagine you might want to do something cleaner
  * with these?
  */
-extern Pixmap IconPix[NUMBER_OF_FRAMES];
+extern Pixmap *IconPix;
 extern int IconsMade;
 extern void MoCCINewConnection();
 
@@ -156,7 +172,9 @@
 int have_hdf;
 int twirl_increment;
 
+#ifndef SECURE
 char *HTReferer = NULL;
+#endif /* SECURE */
 
 /* This is exported to libwww, like altogether too many other
    variables here. */
@@ -180,8 +198,8 @@
 
 static Cursor busy_cursor;
 static int busy = 0;
-static Widget *busylist = NULL;
 char *cached_url = NULL;
+static int cntlflag=0;
 
 /* Forward declaration of test predicate. */
 int anchor_visited_predicate (Widget, char *);
@@ -195,13 +213,25 @@
 /* Pixmaps for interrupt button. */
 static Pixmap xmosaic_up_pix, xmosaic_left_pix, xmosaic_down_pix, xmosaic_right_pix;
 
+/* Pixmaps for main window buttons */
+static Pixmap back_pix, dis_back_pix, forward_pix, dis_forward_pix,
+  home_pix, reload_pix, open_pix, save_pix, clone_pix, new_pix, close_pix;
+
 extern char *HTDescribeURL (char *);
 extern mo_status mo_post_access_document (mo_window *win, char *url,
                                           char *content_type, 
                                           char *post_data);
+extern void mo_post_exitbox();
 XmxCallbackPrototype (menubar_cb);
 
+#ifndef SECURE
 struct utsname mo_uname;
+#endif /* SECURE */
+
+#ifdef NETSCAPE_EXT
+extern int mo_use_color();
+static int mono_or_color = 1;
+#endif /* NETSCAPE_EXT */
 
 /* ----------------------------- WINDOW LIST ------------------------------ */
 
@@ -322,6 +352,12 @@
 	{
 		return(Rdata.http_proxy);
 	}
+#ifdef USE_SSL
+	else if (strcmp(access, "https") == 0)
+	{
+		return(Rdata.https_proxy);
+	}
+#endif /* USE_SSL */
 	else if (strcmp(access, "ftp") == 0)
 	{
 		return(Rdata.ftp_proxy);
@@ -349,6 +385,21 @@
 }
 
 /****************************************************************************
+ * name:    mo_check_no_proxy
+ * purpose: Return the direct access sites (without proxy).
+ * inputs:
+ *   nothing
+ * returns:
+ *   The sites accessed directly without proxy method.
+ *     (proxy.ncsa.uiuc.edu)
+ * remarks: This should really be open-ended configurable.
+ ****************************************************************************/
+char *mo_check_no_proxy (void)
+{
+	return(Rdata.no_proxy);
+}
+
+/****************************************************************************
  * name:    mo_assemble_help_url
  * purpose: Make a temporary, unique filename.
  * inputs:  
@@ -541,12 +592,15 @@
 {
   char *href, *reftext;
 /*  char *access;*/
+#ifndef SECURE
   static char *referer = NULL;
+#endif /* SECURE */
   mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
   XButtonReleasedEvent *event = 
     (XButtonReleasedEvent *)(((WbAnchorCallbackData *)call_data)->event);
   int force_newwin = (event->button == Button2 ? 1 : 0);
   int old_binx_flag;
+  extern char reloading;
 
   /* if shift was down, make this a Load to Local Disk -- amb */
   old_binx_flag = win->binary_transfer;
@@ -571,6 +625,7 @@
         return;
     }
 
+#ifndef SECURE
   /* amb */
   if (referer!=NULL)
     {
@@ -585,6 +640,7 @@
     }
   else
     HTReferer = NULL;
+#endif /* SECURE */
   
   if (((WbAnchorCallbackData *)call_data)->href)
     href = strdup (((WbAnchorCallbackData *)call_data)->href);
@@ -597,6 +653,9 @@
 
   mo_convert_newlines_to_spaces (href);
 
+  if (cntlflag) {
+       reloading = 1;
+  }
   if (!force_newwin)
     mo_load_window_text (win, href, reftext);
   else
@@ -620,6 +679,7 @@
         /* Just do mo_load_window_text go get the xterm forked off. */
         mo_load_window_text (win, url, reftext);
     }
+  reloading = 0;
 
   win->binary_transfer = old_binx_flag;
   free (href);
@@ -940,7 +1000,7 @@
   if (twirl && Rdata.twirling_transfer_icon)
     {
      {
-	if (IconPix[logo_count] != NULL)
+	if (IconPix[logo_count] != (Pixmap)NULL)
 	{
 		AnimatePixmapInWidget
 		    (win->logo, IconPix[logo_count]);
@@ -974,6 +1034,25 @@
   logo_count = 0;
 }
 
+static XmxEventHandler (mo_view_keyrelease_handler)
+{
+  mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
+  int _bufsize = 3, _count;
+  char _buffer[3];
+  KeySym _key;
+  XComposeStatus _cs;
+
+  if (!win)
+    return;
+
+  /* Go get ascii translation. */
+  _count = XLookupString (&(event->xkey), _buffer, _bufsize,
+			  &_key, &_cs);
+  /* Control */
+  if (_key == XK_Control_L || _key == XK_Control_R) {
+       cntlflag = 0;
+  }
+}
 
 
 /****************************************************************************
@@ -1177,6 +1256,11 @@
   /* Search. */
   if (_key == XK_S || _key == XK_s)
     mo_post_search_window (win);
+
+  /* Control */
+  if (_key == XK_Control_L || _key == XK_Control_R) {
+    cntlflag = 1;
+  }
 }
   
   if (!Rdata.kioskNoExit) {
@@ -1212,11 +1296,23 @@
   win->menubar = mo_make_document_view_menubar (form);
 
   XmxRSetToggleState (win->menubar, win->font_size, XmxSet);
+#ifdef L10N
+  XmxRSetToggleState (win->menubar, win->bidirectionality, XmxSet);
+#endif /* L10N */
 
   /* setup news default states */
   XmxRSetToggleState (win->menubar, mo_news_fmt0, XmxNotSet);
   XmxRSetToggleState (win->menubar, mo_news_fmt1, XmxSet);
 
+#ifdef NEWS_SELECT
+  /* setup news body default states */
+  XmxRSetToggleState (win->menubar, mo_news_body_fmt0, XmxNotSet);
+  XmxRSetToggleState (win->menubar, mo_news_body_fmt1, XmxSet);
+  /* setup news header default states */
+  XmxRSetToggleState (win->menubar, mo_news_header_fmt0, XmxNotSet);
+  XmxRSetToggleState (win->menubar, mo_news_header_fmt1, XmxSet);
+#endif /* NEWS_SELECT */
+
   win->binary_transfer = 0;
   XmxRSetToggleState (win->menubar, mo_binary_transfer,
                       (win->binary_transfer ? XmxSet : XmxNotSet));
@@ -1250,7 +1346,7 @@
     XmxSetArg (XmNcursorPositionVisible, True);
     XmxSetArg (XmNeditable, True);
     win->url_text = XmxMakeTextField (form);
-    XmxAddCallbackToText (win->url_text, url_field_cb, NULL);
+    XmxAddCallbackToText (win->url_text, url_field_cb, 0);
     }
   else {
     url_label = XmxMakeLabel (form, "URL:");
@@ -1261,7 +1357,7 @@
     XtUnmanageChild(win->url_text);
     }
 
-  win->logo = XmxMakeNamedPushButton (form, NULL, "logo", icon_pressed_cb, NULL);
+  win->logo = XmxMakeNamedPushButton (form, NULL, "logo", icon_pressed_cb, 0);
 
       xmosaic_right_pix = XmxCreatePixmapFromBitmap
         (win->logo, xmosaic_right_bits, xmosaic_right_width, 
@@ -1287,7 +1383,7 @@
 	    (win->logo, xmosaic_up_pix);
     }
 
-  XmxSetArg (WbNtext, NULL);
+  XmxSetArg (WbNtext, (int)NULL);
   win->last_width = 0;
   XmxSetArg (XmNresizePolicy, XmRESIZE_ANY);
   XmxSetArg (WbNpreviouslyVisitedTestFunction, (long)anchor_visited_predicate);
@@ -1295,6 +1391,9 @@
   XmxSetArg (WbNfancySelections, win->pretty ? True : False);
   XmxSetArg (WbNdelayImageLoads, win->delay_image_loads ? True : False);
   XmxSetArg (XmNshadowThickness, 2);
+#ifdef DISABLE_TABLE
+  XmxSetArg (WbNdisableTable, win->disable_table ? True : False);
+#endif /* DISABLE_TABLE */
   win->scrolled_win = XtCreateWidget ("view", htmlWidgetClass,
                                       form, Xmx_wargs, Xmx_n);
   XtManageChild (win->scrolled_win);
@@ -1310,6 +1409,8 @@
 
   XmxAddEventHandler
     (win->view, KeyPressMask, mo_view_keypress_handler, 0);
+  XmxAddEventHandler
+    (win->view, KeyReleaseMask, mo_view_keyrelease_handler, 0);
 
   XmxSetArg (XmNresizePolicy, XmRESIZE_ANY);
   XmxSetArg (XmNresizable, True);
@@ -1337,30 +1438,93 @@
         (win->button_rc, "Forward", menubar_cb, mo_forward);
       win->home_button = XmxMakePushButton
         (win->button_rc, "Home", menubar_cb, mo_home_document);
+
+      if (Rdata.button_icons) {
+	back_pix = XmxCreatePixmapFromBitmap
+	  (win->back_button, back_bits, back_width, back_height);
+	XmxApplyPixmapToLabelWidget (win->back_button, back_pix);
+	dis_back_pix = XmxCreatePixmapFromBitmap
+	  (win->back_button, dis_back_bits, dis_back_width, dis_back_height);
+	XmxApplyPixmapToLabelWidgetInsensitive
+	  (win->back_button, dis_back_pix);
+	forward_pix = XmxCreatePixmapFromBitmap
+	  (win->forward_button, forward_bits, forward_width, forward_height);
+	XmxApplyPixmapToLabelWidget (win->forward_button, forward_pix);
+	dis_forward_pix = XmxCreatePixmapFromBitmap
+	  (win->forward_button, dis_forward_bits, dis_forward_width,
+	   dis_forward_height);
+	XmxApplyPixmapToLabelWidgetInsensitive
+	  (win->forward_button, dis_forward_pix);
+	home_pix = XmxCreatePixmapFromBitmap
+	  (win->home_button, home_bits, home_width, home_height);
+	XmxApplyPixmapToLabelWidget (win->home_button, home_pix);
+      }
+
       if (!(Rdata.kiosk || Rdata.kioskNoExit)) 
 	{
-        if (!Rdata.simple_interface)
+        if (!Rdata.simple_interface) {
           win->reload_button = XmxMakePushButton
             (win->button_rc, "Reload", menubar_cb, mo_reload_document);
-        if (!Rdata.simple_interface)
+	  if (Rdata.button_icons) {
+	    reload_pix = XmxCreatePixmapFromBitmap
+	      (win->reload_button, reload_bits, reload_width, reload_height);
+	    XmxApplyPixmapToLabelWidget (win->reload_button, reload_pix);
+	  }
+	}
+        if (!Rdata.simple_interface) {
           win->open_button = XmxMakePushButton
             (win->button_rc, "Open...", menubar_cb, mo_open_document);
+	  if (Rdata.button_icons) {
+	    open_pix = XmxCreatePixmapFromBitmap
+	      (win->open_button, open_bits, open_width, open_height);
+	    XmxApplyPixmapToLabelWidget (win->open_button, open_pix);
+	  }
+	}
         win->save_button = XmxMakePushButton 
           (win->button_rc, "Save As...", menubar_cb, mo_save_document);
         win->clone_button = XmxMakePushButton 
           (win->button_rc, "Clone", menubar_cb, mo_clone_window);
-        if (!Rdata.simple_interface)
+	if (Rdata.button_icons) {
+	  save_pix = XmxCreatePixmapFromBitmap
+	    (win->save_button, save_bits, save_width, save_height);
+	  XmxApplyPixmapToLabelWidget (win->save_button, save_pix);
+	  clone_pix = XmxCreatePixmapFromBitmap
+	    (win->clone_button, clone_bits, clone_width, clone_height);
+	  XmxApplyPixmapToLabelWidget (win->clone_button, clone_pix);
+	}
+        if (!Rdata.simple_interface) {
           win->new_button = XmxMakePushButton
             (win->button_rc, "New Window", menubar_cb, mo_new_window);
+	  if (Rdata.button_icons) {
+	    new_pix = XmxCreatePixmapFromBitmap
+	      (win->new_button, new_bits, new_width, new_height);
+	    XmxApplyPixmapToLabelWidget (win->new_button, new_pix);
+	  }
+	}
   	}
       if (!Rdata.kioskNoExit) {
         win->close_button = XmxMakePushButton 
           (win->button_rc, "Close Window", menubar_cb, mo_close_window);
+	  if (Rdata.button_icons) {
+	    close_pix = XmxCreatePixmapFromBitmap
+	      (win->close_button, close_bits, close_width, close_height);
+	    XmxApplyPixmapToLabelWidget (win->close_button, close_pix);
+	  }
 	}
     }
 
     if (Rdata.track_pointer_motion)
       {
+	if (Rdata.button_bar) {
+	XmxSetOffsets (win->button_rc, 2, 5, 10, 10);
+	XmxSetConstraints
+	  (win->button_rc, XmATTACH_FORM, XmATTACH_NONE, XmATTACH_FORM,
+	   XmATTACH_NONE, NULL, NULL, NULL, NULL);
+	XmxSetOffsets (win->tracker_label, 0, 0, 10, 10);
+	XmxSetConstraints
+	  (win->tracker_label, XmATTACH_WIDGET, XmATTACH_FORM, XmATTACH_FORM,
+	   XmATTACH_FORM, win->button_rc, NULL, NULL, NULL);
+	} else {
         XmxSetOffsets (win->tracker_label, 0, 0, 10, 10);
         XmxSetConstraints 
           (win->tracker_label, XmATTACH_FORM, XmATTACH_NONE, XmATTACH_FORM,
@@ -1369,6 +1533,7 @@
         XmxSetConstraints
           (win->button_rc, XmATTACH_WIDGET, XmATTACH_FORM, XmATTACH_FORM,
            XmATTACH_FORM, win->tracker_label, NULL, NULL, NULL);
+	}
       }
     else
       {
@@ -1420,6 +1585,22 @@
      XmATTACH_WIDGET, XmATTACH_NONE, XmATTACH_NONE, XmATTACH_FORM, 
      win->menubar->base, NULL, NULL, NULL);
 
+  if (Rdata.button_bar) {
+  /* Top to logo, bottom to nothing,
+     Left to form, right to nothing. */
+  XmxSetOffsets (win->bottom_form, 10, 2, 2, 2);
+  XmxSetConstraints
+    (win->bottom_form,
+     XmATTACH_WIDGET, XmATTACH_NONE, XmATTACH_FORM, XmATTACH_NONE,
+     win->logo, NULL, NULL, NULL);
+  /* Top to button bar, bottom to bottom form,
+     Left to form, right to form. */
+  XmxSetOffsets (win->scrolled_win, 7, 2, 2, 2);
+  XmxSetConstraints
+    (win->scrolled_win,
+     XmATTACH_WIDGET, XmATTACH_FORM, XmATTACH_FORM, XmATTACH_FORM,
+     win->bottom_form, NULL, NULL, NULL);
+  } else {
   /* Top to logo, bottom to bottom form,
      Left to form, right to form. */
   XmxSetOffsets (win->scrolled_win, 7, 2, 7, 7);
@@ -1432,6 +1613,7 @@
   XmxSetConstraints
     (win->bottom_form, XmATTACH_NONE, XmATTACH_FORM, XmATTACH_FORM,
      XmATTACH_FORM, NULL, NULL, NULL, NULL);
+  }
 
   /* Can't go back or forward if we haven't gone anywhere yet... */
   mo_back_impossible (win);
@@ -1465,6 +1647,10 @@
 
   if (!win)
     return mo_fail;
+  if ((Rdata.lastwindow_confirm) && (wincount <= 1)) {
+    mo_post_exitbox(win);
+    return mo_fail;
+  }
 
   node = win->history;
 
@@ -1491,6 +1677,9 @@
 #ifdef HAVE_AUDIO_ANNOTATIONS
   POPDOWN (audio_annotate_win);
 #endif
+#ifdef L10N
+  POPDOWN (acpt_langs_win);
+#endif /* L10N */
   XtPopdown (win->base);
 
   /* Free up some of the HTML Widget's state */
@@ -1610,6 +1799,7 @@
   win->hotlist_win = win->hotlist_list = 0;
   win->whine_win = win->whine_text = 0;
   win->mailto_win = win->mailto_text = 0;
+  win->mailto_fsb_win = 0;
   win->news_win = 0;
   win->news_fsb_win = 0;
   win->annotate_win = 0;
@@ -1623,6 +1813,9 @@
 #ifdef HAVE_AUDIO_ANNOTATIONS
   win->audio_annotate_win = 0;
 #endif
+#ifdef L10N
+  win->acpt_langs_win = win->acpt_langs_text = 0;
+#endif /* L10N */
 
   win->history = NULL;
   win->current_node = 0;
@@ -1631,14 +1824,31 @@
   win->format_optmenu = 0;
   win->save_format = 0;
   if (!parent) {
+#ifdef L10N
+    if (!Rdata.simple_interface) {
+    win->font_size = charset2font_size(Rdata.default_charset);
+    win->font_family = 0;
+    } else {
+#endif /* L10N */
     win->font_size = mo_get_font_size_from_res(Rdata.default_font_choice,
 			&(win->font_family));
     /*win->font_size = mo_regular_fonts;*/
     /*win->font_family = 0;*/
+#ifdef L10N
+    }
+#endif /* L10N */
   } else {
     win->font_size = parent->font_size;
     win->font_family = parent->font_family;
   }
+#ifdef L10N
+  win->bidirectionality = default_bidir2bidir(Rdata.default_bidirectionality);
+  win->accept_languages = Rdata.default_accept_languages;
+  win->annotate_author = win->annotate_title = win->annotate_text = 0;
+#endif /* L10N */
+#ifdef DISABLE_TABLE
+  win->disable_table = Rdata.default_disable_table;
+#endif /* DISABLE_TABLE */
 
   win->underlines_snarfed = 0;
   if (!parent)
@@ -1681,7 +1891,11 @@
 
   if (!IconsMade)
     {
-      MakeAnimationPixmaps(win->logo);
+      int stat = False;
+      if (Rdata.twirl_icons_index[0] != '\0')
+        stat = MakeDynamicAnimationPixmaps(win->logo, Rdata.twirl_icons_index);
+      if (stat == False)
+        MakeAnimationPixmaps(win->logo);
       IconsMade = 1;
       XmxApplyPixmapToLabelWidget
             (win->logo, IconPix[0]);
@@ -1689,8 +1903,20 @@
     }
 
   /* Set the font size. */
+#ifdef L10N
+  mo_set_fonts (win, win->font_size);
+  mo_set_bidirectionality (win, win->bidirectionality);
+#ifdef MOTIF_I18N
+  if (Rdata.half_sized_textfield)
+    XmxSetArg(WbNhalfsizedTextfield, True);
+  else
+    XmxSetArg(WbNhalfsizedTextfield, False);
+  XmxSetValues(win->scrolled_win);
+#endif /* MOTIF_I18N */
+#else /* L10N */
   if (win->font_size != mo_regular_fonts)
     mo_set_fonts (win, win->font_size);
+#endif /* L10N */
 
   /* Set the underline state. */
   mo_set_underlines (win, win->underlines_state);
@@ -1698,6 +1924,11 @@
   /* Set the fancy selections toggle to the starting value. */
   mo_set_fancy_selections_toggle (win);
 
+#ifdef DISABLE_TABLE
+  /* Set the disable table toggle to the starting value. */
+  mo_set_disable_table_toggle (win);
+#endif /* DISABLE_TABLE */
+
   return win;
 }
 
@@ -1741,7 +1972,7 @@
   mo_window *win;
   Atom WM_DELETE_WINDOW;
 
-  XmxSetArg (XmNtitle, (long)"NCSA Mosaic: Document View");
+  XmxSetArg (XmNtitle, (long)"NCSA Mosaic: Document View (L10N+)");
   XmxSetArg (XmNiconName, (long)"Mosaic");
   XmxSetArg (XmNallowShellResize, False);
   base = XtCreatePopupShell ("shell", topLevelShellWidgetClass,
@@ -1810,7 +2041,7 @@
   if (Rdata.auto_place_windows)
     {
       char geom[20];
-      sprintf (geom, "+%d+%d\0", x, y);
+      sprintf (geom, "+%d+%d", x, y);
       XmxSetArg (XmNgeometry, (long)geom);
     }
   XmxSetArg (XmNwidth, width);
@@ -2123,6 +2354,14 @@
     }
   
   /* Motif setup. */
+#ifdef L10N
+#ifdef OPENWARE
+  XmjpInitialize(&argc, argv, NULL);
+#endif /* OPENWARE */
+#endif /* L10N */
+#ifdef NETSCAPE_EXT
+  mono_or_color = use_color;
+#endif /* NETSCAPE_EXT */
   XmxStartup ();
   XmxSetArg (XmNmappedWhenManaged, False);
   if (no_defaults)
@@ -2192,7 +2431,7 @@
       
       personal_extension_map = (char *)malloc 
         (strlen (home) + strlen (Rdata.personal_extension_map) + 8);
-      sprintf (personal_extension_map, "%s/%s\0", home, 
+      sprintf (personal_extension_map, "%s/%s", home, 
                Rdata.personal_extension_map);
     }
   else
@@ -2209,7 +2448,7 @@
       
       personal_type_map = (char *)malloc 
         (strlen (home) + strlen (Rdata.personal_type_map) + 8);
-      sprintf (personal_type_map, "%s/%s\0", home, 
+      sprintf (personal_type_map, "%s/%s", home, 
                Rdata.personal_type_map);
     }
   else
@@ -2228,18 +2467,34 @@
   gethostname (machine, 64);
 
   {
+#ifdef L10N
+      char *L10Ncomment = "L10N+";
+#else /* L10N */
+      char *L10Ncomment = "";
+#endif /* L10N */
+#ifdef SECURE
+      HTAppVersion =
+	(char *)malloc (sizeof(char) * (
+			strlen(MO_VERSION_STRING) +
+			strlen(L10Ncomment) + 20));
+	sprintf(HTAppVersion, "%s%s (X11)",
+			MO_VERSION_STRING, L10Ncomment);
+#else /* SECURE */
       uname(&mo_uname);
       HTAppVersion = 
     	(char *)malloc (sizeof(char) * (
 			strlen(MO_VERSION_STRING) +
+			strlen(L10Ncomment) +
 			strlen(mo_uname.sysname) + 
 			strlen(mo_uname.release) +
 			strlen(mo_uname.machine) + 20));
-  	sprintf(HTAppVersion, "%s (X11;%s %s %s)", 
+  	sprintf(HTAppVersion, "%s%s (X11;%s %s %s)", 
 				MO_VERSION_STRING,
+				L10Ncomment,
 				mo_uname.sysname,
 				mo_uname.release,
 				mo_uname.machine);
+#endif /* SECURE */
   }
   
   /* Then make a copy of the hostname for shortmachine.
@@ -2340,11 +2595,15 @@
   gargc = argc;
 
 #ifndef VMS
-  signal (SIGUSR1, ProcessExternalDirective);
+  signal (SIGUSR1, (void (*)())ProcessExternalDirective);
 #endif
 
   defer_initial_window = 0;
 
+#ifdef L10N
+  InitFontCache();
+#endif /* L10N */
+
   if (!defer_initial_window)
     mo_open_initial_window ();
 
@@ -2511,3 +2770,192 @@
 
   return;
 }
+
+#ifdef L10N
+/* ---------- convert character set to font_size (Geee...) ---------- */
+
+charset2font_size(charset)
+     char *charset;
+{
+  if (charset == NULL) return(mo_regular_fonts);
+
+  if (!strcasecmp(charset, "")) {
+    return(mo_regular_fonts);
+    /* ISO 8859-2 */
+  } else if (!strcasecmp(charset, "iso-8859-1")) {
+    return(mo_regular_fonts);
+  } else if (!strcasecmp(charset, "latin-1")) {
+    return(mo_regular_fonts);
+    /* ISO 8859-2, Czech */
+  } else if (!strcasecmp(charset, "iso-8859-2")) {
+    return(mo_charset_iso_8859_2);
+  } else if (!strcasecmp(charset, "latin-2")) {
+    return(mo_charset_iso_8859_2);
+  } else if (!strcasecmp(charset, "czech")) {
+    return(mo_charset_iso_8859_2);
+    /* ISO 8859-3 */
+  } else if (!strcasecmp(charset, "iso-8859-3")) {
+    return(mo_charset_iso_8859_3);
+  } else if (!strcasecmp(charset, "latin-3")) {
+    return(mo_charset_iso_8859_3);
+    /* ISO 8859-4 */
+  } else if (!strcasecmp(charset, "iso-8859-4")) {
+    return(mo_charset_iso_8859_4);
+  } else if (!strcasecmp(charset, "latin-4")) {
+    return(mo_charset_iso_8859_4);
+    /* ISO 8859-5, KOI-8, Cyrillic */
+  } else if (!strcasecmp(charset, "iso-8859-5")) {
+    return(mo_charset_iso_8859_5);
+  } else if (!strncasecmp(charset, "koi", 3)) {
+    return(mo_charset_koi8);
+  } else if (!strcasecmp(charset, "cyrillic")) {
+    return(mo_charset_iso_8859_5);
+  } else if (!strncasecmp(charset, "russia", 6)) {
+    return(mo_charset_iso_8859_5);
+    /* ISO 8859-7, Greek */
+  } else if (!strcasecmp(charset, "iso-8859-7")) {
+    return(mo_charset_iso_8859_7);
+  } else if (!strcasecmp(charset, "greek")) {
+    return(mo_charset_iso_8859_7);
+    /* ISO 8859-8, Hebrew */
+  } else if (!strcasecmp(charset, "ISO-8859-8")) {
+    return(mo_charset_iso_8859_8);
+  } else if (!strcasecmp(charset, "hebrew")) {
+    return(mo_charset_iso_8859_8);
+    /* ISO 8859-9 */
+  } else if (!strcasecmp(charset, "iso-8859-9")) {
+    return(mo_charset_iso_8859_9);
+  } else if (!strcasecmp(charset, "latin-5")) {
+    return(mo_charset_iso_8859_5);
+    /* Japanese */
+  } else if (!strcasecmp(charset, "jis")) {
+    return(mo_charset_jis);
+  } else if (!strncasecmp(charset, "japan", 5)) {
+    return(mo_charset_jis);
+  } else if (!strcasecmp(charset, "iso-2022-jp")) {
+    return(mo_charset_jis);
+    /* Chinese */
+  } else if (!strcasecmp(charset, "gb")) {
+    return(mo_charset_gb);
+  } else if (!strcasecmp(charset, "chinese")) {
+    return(mo_charset_gb);
+  } else if (!strcasecmp(charset, "big5")) {
+    return(mo_charset_big5);
+  } else if (!strncasecmp(charset, "eten", 3)) {
+    return(mo_charset_big5);
+  } else if (!strcasecmp(charset, "hz")) {
+    return(mo_charset_hz);
+    /* Korean */
+  } else if (!strcasecmp(charset, "ksc")) {
+    return(mo_charset_ksc);
+  } else if (!strncasecmp(charset, "korea", 5)) {
+    return(mo_charset_ksc);
+    /* unknown */
+  } else {
+    fprintf(stderr, "Unknown character set: %s.  Using Latin-1 font.\n",
+	    charset);
+    return(mo_regular_fonts);
+  }
+}
+
+/* ---------- convert bidirectionality in string to int  ---------- */
+
+default_bidir2bidir(bidir)
+     char *bidir;
+{
+  if (bidir == NULL) return(mo_bidir_visual);
+
+  if (!strcasecmp(bidir, "visual")) {
+    return(mo_bidir_visual);
+  } else if (!strcasecmp(bidir, "implicit")) {
+    return(mo_bidir_implicit);
+/* Not yet supported:
+  } else if (!strcasecmp(bidir, "explicit")) {
+    return(mo_bidir_explicit);
+*/
+  } else {
+    fprintf(stderr, "Unknown Bi-directionality: %s.  Using Visual.\n",
+           bidir);
+    return(mo_bidir_visual);
+  }
+}
+
+/* ---------- kinsoku characters  ---------- */
+
+char *kinsoku_chars(type)
+     int type;
+{
+  switch (type) {
+    case 0:
+      return(Rdata.kinsoku_bol);
+    default:
+      return(Rdata.kinsoku_eol);
+  }
+}
+
+int ignore_bj(type)
+     int type;
+{
+  switch (type) {
+    case 0:
+      return(Rdata.ignore_space_between_japanese);
+    default:
+      return(Rdata.ignore_lf_between_japanese);
+  }
+}
+#endif /* L10N */
+
+#ifdef sony_news
+/* uname() for NEWSOS 4.x */
+#include <errno.h>
+#include <string.h>
+#include <news/sysnews.h>
+#include <unistd.h>
+
+int uname (name)
+    struct utsname *name;
+{
+  struct machtype machtype_buf;
+  char news_version[256], str[256];
+
+  if (name == NULL) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (gethostname(name->nodename, sizeof(name->nodename)) == -1) {
+    return -1;
+  }
+  if (sysnews(NEWS_VERSION, news_version, sizeof(news_version)) == -1) {
+    return -1;
+  }
+
+  if (sscanf(news_version, "%s Release %[^:]", name->sysname, str) != 2) {
+    return -1;
+  } else {
+    char *p;
+    if ((p = rindex(str, '#')) == NULL) {
+      return -1;
+    }
+    strcpy(name->version, p);
+    *(--p) = '\0';
+    strcpy(name->release, str);
+  }
+
+  if (sysnews(NEWS_MACHTYPE, &machtype_buf) == -1) {
+    return -1;
+  }
+
+  strcpy(name->machine, machtype_buf.mt_machine);
+  strcpy(name->processor, machtype_buf.mt_maincpu);
+
+  return 0;
+}
+#endif
+
+#ifdef NETSCAPE_EXT
+int mo_use_color()
+{
+  return mono_or_color;
+}
+#endif /* NETSCAPE_EXT */
--- src/history.c.orig	Tue Apr  4 13:23:58 1995
+++ src/history.c	Thu Sep 14 17:01:14 1995
@@ -221,7 +221,7 @@
               server[(foo2 - foo1)] = '\0';
               
               title = (char *) malloc ((strlen (server) + 32) * sizeof (char));
-              sprintf (title, "Gopher server at %s\0", server);
+              sprintf (title, "Gopher server at %s", server);
               
               /* OK, we got a title... */
               free (server);
@@ -266,7 +266,7 @@
               server[(foo2 - foo1)] = '\0';
               
               title = (char *) malloc ((strlen (server) + 32) * sizeof (char));
-              sprintf (title, "WAIS server at %s\0", server);
+              sprintf (title, "WAIS server at %s", server);
               
               /* OK, we got a title... */
               free (server);
@@ -291,7 +291,7 @@
           foo1 = url + 5;
           
           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-          sprintf (title, "USENET article %s\0", foo1);
+          sprintf (title, "USENET article %s", foo1);
 
           goto done;
         }
@@ -301,7 +301,7 @@
           foo1 = url + 5;
           
           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-          sprintf (title, "USENET newsgroup %s\0", foo1);
+          sprintf (title, "USENET newsgroup %s", foo1);
 
           goto done;
         }
@@ -316,7 +316,7 @@
           foo1 = url + 7;
           
           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-          sprintf (title, "Local file %s\0", foo1);
+          sprintf (title, "Local file %s", foo1);
           
           goto done;
         }
@@ -326,7 +326,7 @@
           foo1 = url + 16;
           
           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-          sprintf (title, "Local file %s\0", foo1);
+          sprintf (title, "Local file %s", foo1);
           
           goto done;
         }
@@ -336,7 +336,7 @@
           foo1 = url + 7;
           
           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-          sprintf (title, "Remote file %s\0", foo1);
+          sprintf (title, "Remote file %s", foo1);
           
           goto done;
         }
@@ -349,7 +349,7 @@
         foo1 = url + 6;
         
         title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
-        sprintf (title, "Remote file %s\0", foo1);
+        sprintf (title, "Remote file %s", foo1);
         
         goto done;
       }
@@ -357,7 +357,7 @@
   
   /* Punt... */
   title = (char *) malloc ((strlen (url) + 24) * sizeof (char));
-  sprintf (title, "Untitled, URL %s\0", url);
+  sprintf (title, "Untitled, URL %s", url);
   
  done:
   return title;
@@ -406,6 +406,9 @@
   node->text = newtext;
   node->texthead = newtexthead;
   node->ref = ref;
+#ifdef L10N
+  node->font_size = win->font_size;
+#endif /* L10N */
   /* Figure out what the title is... */
   node->title = mo_grok_title (win, url, ref);
   
@@ -538,7 +541,11 @@
       subj = XmxTextGetString (win->mailhist_subj_text);
 
       /* Open a file descriptor to sendmail. */
+#ifdef L10N
+      fp = mo_start_sending_mail_message (to, subj, "text/x-html", "iso-2022jp", NULL);
+#else /* L10N */
       fp = mo_start_sending_mail_message (to, subj, "text/x-html", NULL);
+#endif /* L10N */
       if (!fp)
         goto oops;
 
@@ -737,6 +744,11 @@
       XmxSetArg (XmNlistSizePolicy, XmCONSTANT);
       XmxSetArg (XmNwidth, 380);
       XmxSetArg (XmNheight, 184);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
       win->history_list = XmxMakeScrolledList 
         (history_form, history_list_cb, 0);
       XtAugmentTranslations (win->history_list, listTable);
--- src/hotlist.c.orig	Sun Apr  2 18:29:15 1995
+++ src/hotlist.c	Thu Sep 14 17:01:14 1995
@@ -591,7 +591,7 @@
 	  if (XmListGetSelectedPos (win->hotlist_list, &pos_list, &pos_cnt) &&
 	      pos_cnt)
 	    {
-	      posi = pos_list[0]; XtFree(pos_list);
+	      posi = pos_list[0]; XtFree((char *)pos_list);
 	    }
 
 	if (isUrl)
@@ -684,9 +684,9 @@
 {
   Widget ed_or_ins_w, dialog_frame;
   Widget dialog_sep, buttons_form;
-  Widget eht_form, title_label, url_label, url_val, sep2;
+  Widget eht_form, title_label, url_label, url_val, sep2 = NULL;
   edit_or_insert_hot_info *eht_info;
-  Widget togm, togm2, insert_tog, append_tog;
+  Widget togm = NULL, togm2 = NULL, insert_tog, append_tog;
   
   XmxSetUniqid (win->id);
   eht_info = (edit_or_insert_hot_info *)
@@ -715,6 +715,11 @@
   
   title_label = XmxMakeLabel (eht_form, "Entry Title: ");
   XmxSetArg (XmNwidth, 335);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+  XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
   eht_info->title_text = XmxMakeTextField (eht_form);
   XmxAddCallbackToText (eht_info->title_text, edit_or_insert_hot_cb,
 			isInsert*3);
@@ -1114,7 +1119,7 @@
   
   filename = (char *)malloc 
     ((strlen (home) + strlen (default_filename) + 8) * sizeof (char));
-  sprintf (filename, "%s/%s\0", home, default_filename);
+  sprintf (filename, "%s/%s", home, default_filename);
   
   /* Try to load the default hotlist. */
   default_hotlist = mo_read_hotlist (filename);
@@ -1122,7 +1127,7 @@
   if (!default_hotlist)
     {
       /* amb - doesn't have any hotlist, add the .html extension (ugh) */
-      sprintf(filename, "%s/%s.html\0", home, default_filename);
+      sprintf(filename, "%s/%s.html", home, default_filename);
       default_hotlist = mo_new_root_hotlist (filename, "Default");
     }
   
@@ -1400,7 +1405,11 @@
       subj = XmxTextGetString (win->mailhot_subj_text);
 
       /* Open a file descriptor to sendmail. */
+#ifdef L10N
+      fp = mo_start_sending_mail_message (to, subj, "text/x-html", "iso-2022jp", NULL);
+#else /* L10N */
       fp = mo_start_sending_mail_message (to, subj, "text/x-html", NULL);
+#endif /* L10N */
       if (!fp)
         goto oops;
 
@@ -1596,7 +1605,7 @@
         if (rv && pos_cnt)
           {
             mo_edit_title_in_current_hotlist (win, pos_list[0]);
-	    XtFree(pos_list);
+	    XtFree((char *)pos_list);
             /* Writing the default hotlist should take place in the callback. */
             /* mo_write_default_hotlist (); */
           }
@@ -1618,7 +1627,7 @@
 	    pos_cnt)
 	  {
 	    mo_copy_hotlist_position(win, pos_list[0]);
-	    XtFree(pos_list);
+	    XtFree((char *)pos_list);
 	  }
         else
           {
@@ -1771,6 +1780,11 @@
       XmxSetArg (XmNresizable, False);
       XmxSetArg (XmNscrollBarDisplayPolicy, XmSTATIC);
       XmxSetArg (XmNlistSizePolicy, XmCONSTANT);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
       win->hotlist_list = 
         XmxMakeScrolledList (hotlist_form, hotlist_list_cb, 0);
       XtAugmentTranslations (win->hotlist_list, listTable);
--- src/img.c.orig	Tue Jun 13 16:15:43 1995
+++ src/img.c	Thu Sep 14 17:01:14 1995
@@ -164,7 +164,7 @@
   int widthbyheight = 0;
   char *fnam;
   int rc;
-  int bg, bg_red, bg_green, bg_blue;
+  int bg, bg_red = 0, bg_green = 0, bg_blue = 0;
 #ifdef HAVE_HDF
   int ishdf = 0;
   char *hdfref = NULL;
@@ -428,7 +428,7 @@
       img_data->width = width;
       img_data->height = height;
       img_data->image_data = data;
-      img_data->image = NULL;
+      img_data->image = (Pixmap)NULL;
       /* Bandaid for bug afflicting Eric's code, apparently. */
       img_data->internal = 0;
     }
@@ -471,7 +471,8 @@
    * reduce the color usage, and then reprocess it.
    * Don't cut colors for direct mapped visuals like TrueColor.
    */
-  if ((cnt > Rdata.colors_per_inlined_image)&&(Vclass != TrueColor))
+  if ((cnt > Rdata.colors_per_inlined_image)&&
+	((Vclass != TrueColor)||(Vclass != DirectColor)))
     {
       MedianCut(img_data->image_data, &img_data->width, 
                 &img_data->height, colrs, 256, 
@@ -510,6 +511,55 @@
       img_data->blues = (int *)malloc(sizeof(int) * cnt);
     }
 
+  /*
+   *  For DirectColor Server   By A.Inoue (94/12/28)
+   */
+  if ( Vclass == DirectColor )
+    {
+      int bit_order;
+      extern Widget view;
+
+  bit_order = BitmapBitOrder(XtDisplay(view));
+  for (i=0; i < 256; i++)
+    {
+      int indx;
+      int scale = 65535/255;
+
+      if (Used[i] != 0)
+	{
+	  if ( XAllocColor(XtDisplay(view),
+		DefaultColormapOfScreen(XtScreen(view)),
+		&colrs[i] ) == 0 )
+	    {
+	      fprintf(stderr,"XAlloc Color error %d\n", i);
+	      break;
+            }
+	  indx = Used[i] - 1;
+	  if ( bit_order == MSBFirst )
+	    {
+	      img_data->reds[indx]=((colrs[i].pixel)& 0xff)*scale;
+	      img_data->greens[indx]=((colrs[i].pixel>>8)& 0xff)*scale;
+	      img_data->blues[indx]=((colrs[i].pixel>>16)& 0xff)*scale;
+	    }
+	  else
+	    {
+	      img_data->reds[indx]=((colrs[i].pixel>>24)& 0xff)*scale;
+	      img_data->greens[indx]=((colrs[i].pixel>>16)& 0xff)*scale;
+	      img_data->blues[indx]=((colrs[i].pixel>>8)& 0xff)*scale;
+	    }
+
+	  /* squeegee in the background color */
+	  if ((bg >= 0)&&(i == bg))
+	    {
+	      img_data->reds[indx] = bg_red;
+	      img_data->greens[indx] = bg_green;
+	      img_data->blues[indx] = bg_blue;
+	    }
+	}
+    }
+    }
+  else
+    {
   for (i=0; i < 256; i++)
     {
       int indx;
@@ -528,6 +578,7 @@
               img_data->blues[indx] = bg_blue;
             }
         }
+    }
     }
 
     /* if MedianCut ate our background, add the new one now. */
--- src/mailto.c.orig	Fri Jun  2 06:41:06 1995
+++ src/mailto.c	Thu Sep 14 17:01:14 1995
@@ -55,14 +55,101 @@
 /* Interface for mailto: URLs, stolen from whine.c */
 
 #include "mosaic.h"
+#include "libhtmlw/HTML.h"
 #include <pwd.h>
 
+#define TEXT_PLAIN	"text/plain"
+#ifdef L10N
+#define CHARSET		"ISO-2022-JP"
+#endif /* L10N */
+
 extern mo_window *current_win;
 mo_status mo_send_mailto_message (char *text, char *to, char *subj, 
 				  char *content_type, char *url);
 
 /* ----------------------- mo_post_mailto_window ------------------------ */
 
+static XmxCallback (include_mailto_fsb_cb)
+{
+  char *fname;
+  FILE *fp;
+  char line[MO_LINE_LENGTH], *status;
+
+  mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
+
+  if (!win)
+    return;
+
+  XtUnmanageChild (win->mailto_fsb_win);
+  fname = (char *)malloc (128 * sizeof (char));
+  
+  XmStringGetLtoR (((XmFileSelectionBoxCallbackStruct *)call_data)->value,
+                   XmSTRING_DEFAULT_CHARSET,
+                   &fname);
+
+  fp = fopen (fname, "r");
+  if (!fp)
+    {
+        char *buf, *final, tmpbuf[80];
+	int final_len;
+
+        buf=my_strerror(errno);
+        if (!buf || !*buf || !strcmp(buf,"Error 0")) {
+                sprintf(tmpbuf,"Unknown Error");
+                buf=tmpbuf;
+	}
+
+        final_len=30+((!fname || !*fname?3:strlen(fname))+13)+15+(strlen(buf)+13);
+        final=(char *)calloc(final_len,sizeof(char));
+
+        strcpy(final,"\nUnable to Open File:\n");
+        sprintf(final+strlen(final),"   %s\n",(!fname || !*fname?" ":fname));
+        sprintf(final+strlen(final),"\nOpen Error:\n");
+        sprintf(final+strlen(final),"   %s\n",buf);
+
+	XmxMakeErrorDialog (win->mailto_win, 
+                          final, 
+                          "Open Error");
+	XtManageChild (Xmx_w);
+
+	if (final) {
+		free(final);
+		final=NULL;
+	}
+      return;
+    }
+  
+  while (1)
+    {
+      long pos;
+      status = fgets (line, MO_LINE_LENGTH, fp);
+      if (!status || !(*line))
+        goto done;
+#ifdef L10N
+      {
+        char *p;
+	for (p=line;*p;p++) {
+	  if (*p & 0x80) {
+	    if (!(*(++p) & 0x80)) {
+	      p[-1] = '?';
+	    }
+	  }
+        }
+      }
+#endif /* L10N */
+      
+      XmTextInsert (win->mailto_text,
+                    pos = XmTextGetInsertionPosition (win->mailto_text),
+                    line);
+      /* move insertion position to past this line to avoid inserting the
+         lines in reverse order */
+      XmTextSetInsertionPosition (win->mailto_text, pos + strlen(line));
+    }
+
+ done:
+  return;
+}
+
 static XmxCallback (mailto_win_cb)
 {
   mo_window *win = mo_fetch_window_by_id (XmxExtractUniqid ((int)client_data));
@@ -82,7 +169,7 @@
       to = XmxTextGetString (win->mailto_tofield);
       subj = XmxTextGetString (win->mailto_subfield);
 
-      mo_send_mailto_message (msg, to, subj, "text/plain", 
+      mo_send_mailto_message (msg, to, subj, TEXT_PLAIN,
 			      win->current_node->url);
       free (msg);
       free (to);
@@ -91,6 +178,9 @@
       break;
     case 1:   /* dismiss */
       XtUnmanageChild (win->mailto_win); 
+      XtDestroyWidget (win->mailto_win);
+      win->mailto_win = NULL;
+      win->mailto_fsb_win = NULL;
       /* Do nothing. */
       break;
     case 2:   /* help */
@@ -99,6 +189,21 @@
          mo_assemble_help_url ("help-on-mailto.html"),
          NULL, NULL);
       break;
+    case 3:   /* Insert File */
+      if (!win->mailto_fsb_win)
+	{
+	  win->mailto_fsb_win =
+	    XmxMakeFileSBDialog (win->mailto_win,
+				 "NCSA Mosaic: Include File In Mail to",
+				 "Name of file to include:",
+				 include_mailto_fsb_cb, 0);
+	}
+      else
+	{
+	  XmFileSelectionDoSearch (win->mailto_fsb_win, NULL);
+	}
+      XmxManageRemanage (win->mailto_fsb_win);
+      break;
     }
 
   return;
@@ -110,6 +215,9 @@
   struct passwd *pw = getpwuid (getuid ());
   char namestr[1000], *author;
   extern char *machine;
+  FILE *fp;
+  char tmp[1024];
+  int pos;
 
   if (!win->mailto_win)
     {
@@ -138,9 +246,21 @@
       XmxSetArg (XmNeditable, True);
       XmxSetArg (XmNeditMode, XmMULTI_LINE_EDIT);
       XmxSetArg (XmNrows, 15);
+#ifdef L10N
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 40);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 80);
       /* XmxSetArg (XmNwordWrap, True); */
       /* XmxSetArg (XmNscrollHorizontal, False); */
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#endif /* L10N */
       win->mailto_text = XmxMakeScrolledText (mailto_form);
       
       dialog_sep = XmxMakeHorizontalSeparator (mailto_form);
@@ -188,8 +308,9 @@
 	 sublabel, NULL);
 
       /* create buttons */
-      buttons_form = XmxMakeFormAndThreeButtonsSqueezed
-        (mailto_form, mailto_win_cb, "Send", "Dismiss", "Help...", 0, 1, 2);
+      buttons_form = XmxMakeFormAndFourButtons
+        (mailto_form, mailto_win_cb, "Send", "Insert File", "Dismiss",
+	 "Help...", 0, 3, 1, 2);
 
       XmxSetOffsets (XtParent (win->mailto_text), 3, 0, 3, 3);
       XmxSetConstraints
@@ -212,15 +333,30 @@
     author = Rdata.default_author_name;
   else
     author = pw->pw_gecos;
-  sprintf (namestr, "%s <%s@%s>\0", author, pw->pw_name, machine);
+  sprintf (namestr, "%s <%s@%s>", author, pw->pw_name, machine);
   XmxTextSetString (win->mailto_fromfield, namestr);
   XmxTextSetString (win->mailto_tofield, to_address);
   if (subject != NULL)
   	XmTextFieldSetString(win->mailto_subfield,subject);
   else
   	XmTextFieldSetString(win->mailto_subfield,"");
-  XmxTextSetString (win->mailto_text, "");
-  
+  /* XmxTextSetString (win->mailto_text, ""); */
+  XmxTextSetString (win->mailto_text, "\n\n");
+  /* tack signature on the end if it exists - code from Martin Hamilton */
+  if (Rdata.signature)
+      XmTextSetInsertionPosition (win->mailto_text, 2);
+  if ((fp = fopen(Rdata.signature, "r")) != NULL) {
+      while(fgets(tmp, sizeof(tmp) - 1, fp)) {
+          XmTextInsert(win->mailto_text,
+            pos = XmTextGetInsertionPosition (win->mailto_text), tmp);
+          XmTextSetInsertionPosition (win->mailto_text, pos + strlen(tmp));
+      }
+      fclose(fp);
+  }
+/* taninaka (end of read signature) */
+
+  XmTextSetInsertionPosition (win->mailto_text, 0);
+
   XmxManageRemanage (win->mailto_win);
   return mo_succeed;
 }
@@ -231,10 +367,21 @@
 
 static FILE *_fp = NULL;
 
+#ifdef L10N
+FILE *mo_start_sending_mailto_message (char *to, char *subj, 
+                                     char *content_type, char *charset, char *url)
+#else /* L10N */
 FILE *mo_start_sending_mailto_message (char *to, char *subj, 
                                      char *content_type, char *url)
+#endif /* L10N */
 {
   char cmd[2048];
+#ifdef L10N
+  char jis[4096];
+#ifdef MIME_HEAD
+  char mime[4096];
+#endif /* MIME_HEAD */
+#endif /* L10N */
 /*  char *tmp;*/
 
   if (!to)
@@ -249,16 +396,33 @@
     {
       sprintf (cmd, "%s -t", Rdata.sendmail_command);
     }
-
   if ((_fp = popen (cmd, "w")) == NULL)
     return NULL;
 
   fprintf (_fp, "To: %s\n", to);
-  fprintf (_fp, "Subject: %s\n", subj);
-  fprintf (_fp, "Content-Type: %s\n", content_type);
   fprintf (_fp, "Mime-Version: 1.0\n");
+#ifdef L10N
+  if (strcmp (charset, CHARSET)) {
+#endif /* L10N */
+  fprintf (_fp, "Subject: %s\n", subj);
+#ifdef L10N
+  } else {
+  mo_codeconv(subj, jis);
+#ifdef MIME_HEAD
+  MIME_strHeaderEncode(jis, mime, 4096);
+  fprintf (_fp, "Subject: %s\n", mime);
+#else /* MIME_HEAD */
+  fprintf (_fp, "Subject: %s\n", jis);
+#endif /* MIME_HEAD */
+  }
+  fprintf (_fp, "Content-Type: %s; charset=%s\n", content_type, charset);
+  fprintf (_fp, "X-Mailer: NCSA Mosaic %s L10N+ on %s\n", 
+           MO_VERSION_STRING, MO_MACHINE_TYPE);
+#else /* L10N */
+  fprintf (_fp, "Content-Type: %s; charset=US-ASCII\n", content_type);
   fprintf (_fp, "X-Mailer: NCSA Mosaic %s on %s\n", 
            MO_VERSION_STRING, MO_MACHINE_TYPE);
+#endif /* L10N */
   if (url)
     fprintf (_fp, "X-URL: %s\n", url);
 
@@ -288,12 +452,28 @@
                                 char *content_type, char *url)
 {
   FILE *fp;
-
+#ifdef L10N
+  char *jis;
+#endif /* L10N */
+
+#ifdef L10N
+  jis = malloc(strlen(text) * 4);
+  if (mo_codeconv (text, jis))
+  fp = mo_start_sending_mailto_message (to, subj, content_type, CHARSET, url);
+  else
+  fp = mo_start_sending_mailto_message (to, subj, content_type, "us-ascii", url);
+#else /* L10N */
   fp = mo_start_sending_mailto_message (to, subj, content_type, url);
+#endif /* L10N */
   if (!fp)
     return mo_fail;
-  
+
+#ifdef L10N
+  fputs (jis, fp);
+  free (jis);
+#else /* L10N */  
   fputs (text, fp);
+#endif /* L10N */
 
   mo_finish_sending_mailto_message ();
 
--- src/main.c.orig	Sat Jun 10 02:13:04 1995
+++ src/main.c	Thu Sep 14 17:01:14 1995
@@ -61,7 +61,14 @@
 #include "mosaic.h"
 #include <signal.h>
 #include <sys/wait.h>
+#ifdef SOLARIS
 #include <sys/utsname.h>
+#endif /* SOLARIS */
+#ifdef L10N
+#ifdef sony_news
+#include <locale.h>
+#endif /* sony_news */
+#endif /* L10N */
 
 /* swp */
 #include "kcms.h"
@@ -77,6 +84,9 @@
   mo_dtm_disconnect ();
 #endif
 
+#ifdef L10N
+  CloseFontCache();
+#endif /* L10N */
   exit (0);
 }
 
@@ -115,7 +125,7 @@
   free (directive);
 
  done:
-  signal (SIGUSR1, ProcessExternalDirective);
+  signal (SIGUSR1, (void (*)())ProcessExternalDirective);
   return;
 }  
 #endif
@@ -169,7 +179,7 @@
 #endif
     pid_t pid;
 
-#ifdef SOLARIS
+#if defined(SOLARIS) || defined(nec_ews) || defined(_nec_ews)
     while( (pid = waitpid((pid_t)(-1),NULL,WNOHANG)) > 0);
     signal(SIGCHLD, (void (*)())clean_child); /*Solaris resets the signal on a catch*/
 #else
@@ -183,6 +193,7 @@
 
 main (int argc, char **argv)
 {
+#ifdef SOLARIS
   struct utsname u;
   FILE *fp;
 
@@ -218,6 +229,10 @@
 		}
 	}
 
+#else /* SOLARIS */
+  extern void InitChildProcessor();
+  extern void ChildTerminated();
+#endif /* SOLARIS */
   signal (SIGBUS, FatalProblem);
   signal (SIGSEGV, FatalProblem);
   signal (SIGILL, FatalProblem);
@@ -251,5 +266,20 @@
 
   CheckKCMS();
   
+#ifdef L10N
+#ifdef sony_news
+  setlocale(LC_CTYPE, "");
+  XtSetLanguageProc(NULL, NULL, NULL);
+#else
+#ifdef MOTIF_I18N
+  XtSetLanguageProc(NULL, NULL, NULL);
+#endif /* MOTIF_I18N */
+#endif /* sony_news */
+#endif /* L10N */
+
   mo_do_gui (argc, argv);
 }
+
+#ifdef L10N
+char l10n_version_string[] = MO_VERSION_STRING;
+#endif /* L10N */
--- src/medcut.c.orig	Sun Apr  2 18:29:20 1995
+++ src/medcut.c	Thu Sep 14 17:01:14 1995
@@ -236,7 +236,7 @@
 int FindTarget(tptr)
 int *tptr;
 {
-	int range, i, indx;
+	int range, i, indx = 0;
 
 	range = 0;
 	for (i=0; i<BoxCount; i++)
--- src/mo-www.c.orig	Thu Jun 15 14:59:00 1995
+++ src/mo-www.c	Thu Sep 14 17:01:15 1995
@@ -558,7 +558,7 @@
   if (me)
     return me->srclen;
   else
-    return NULL;
+    return (int)NULL;
 }
 
 /*
@@ -704,10 +704,10 @@
   tmp = (char *)malloc ((strlen (url) +
                          strlen (cwd) + 32));
   if (url[0] == '/')
-    sprintf (tmp, "file://localhost%s\0", 
+    sprintf (tmp, "file://localhost%s", 
              url);
   else
-    sprintf (tmp, "file://localhost%s/%s\0",
+    sprintf (tmp, "file://localhost%s/%s",
              cwd,
              url);
 
@@ -784,6 +784,8 @@
 
 /* Grumble grumble... */
 #if defined(ultrix) || defined(VMS) || defined(NeXT) || defined(M4310) || defined(vax)
+#ifdef L10N
+#ifndef JDEC /* strdup() is defined in libim */
 char *strdup (char *str)
 {
   char *dup;
@@ -793,6 +795,8 @@
 
   return dup;
 }
+#endif /* not JDEC */
+#endif /* L10N */
 #endif
 
 /* Feedback from the library. */
@@ -853,7 +857,7 @@
       str[i] = ' ';
 
   tptr = str;
-  while ((*tptr != '\0')&&(isspace((int)(*tptr))))
+  while ((*tptr != '\0')&&(isspace((unsigned char)(*tptr))))
 	tptr++;
 
   if (tptr != str)
@@ -988,3 +992,20 @@
 }
 #endif
 
+/* -------------- get connect timeout value from resource data ------------ */
+
+int GetConnectTimeout()
+/* Get Timeout value for connect() from resource data */
+{
+  int default_timeout = 100; /* default value */
+  if (Rdata.connectTimeout <= 0) {
+    fprintf(stderr, "You shoud be set 'connectTimeout' positive value.");
+    fprintf(stderr, "\nI use default value(%dsec).\n", default_timeout);
+    return default_timeout * 1000;
+  } else if (Rdata.connectTimeout > 600) {
+    fprintf(stderr, "You shoud be set 'connectTimeout' more small.");
+    fprintf(stderr, "\nI use default value(%dsec).\n", default_timeout);
+    return default_timeout * 1000;
+  } else
+    return Rdata.connectTimeout * 1000;
+}
--- src/mosaic.h.orig	Tue Jul  4 05:25:57 1995
+++ src/mosaic.h	Thu Sep 28 12:01:14 1995
@@ -76,7 +76,8 @@
 /* ------------------------------------------------------------------------ */
 /* -------------------------------- ICONS --------------------------------- */
 /* ------------------------------------------------------------------------ */
-#define NUMBER_OF_FRAMES	25
+#define DEFAULT_NUMBER_OF_FRAMES	25
+extern int NUMBER_OF_FRAMES;
 
 /* ------------------------------------------------------------------------ */
 /* -------------------------------- MACROS -------------------------------- */
@@ -179,6 +180,9 @@
 #if defined(NeXT)
 #define MO_MACHINE_TYPE "NeXT"
 #endif
+#if defined(nec_ews) || defined(_nec_ews)
+#define MO_MACHINE_TYPE "NEC EWS"
+#endif /* nec_ews || _nec_ews */
 #ifndef MO_MACHINE_TYPE
 #define MO_MACHINE_TYPE "Unknown Platform"
 #endif
@@ -186,7 +190,7 @@
 #ifdef __hpux
 #define HAVE_AUDIO_ANNOTATIONS
 #else
-#if defined(__sgi) || defined(sun)
+#if defined(__sgi) || defined(sun) || defined(nec_ews) || defined(_nec_ews) || defined(sony_news)
 #define HAVE_AUDIO_ANNOTATIONS
 #endif /* if */
 #endif /* ifdef */
@@ -222,6 +226,10 @@
 #define public
 #define private static
 
+#ifdef sony_news
+typedef long pid_t;
+#endif /* sony_news */
+
 /* ------------------------------------------------------------------------ */
 /* ------------------------------ MAIN TYPES ------------------------------ */
 /* ------------------------------------------------------------------------ */
@@ -258,12 +266,16 @@
   Widget searchindex_win;    /* network index search */
   Widget cci_win;	     /* common client interface control window */
   Widget mailto_win;
+  Widget mailto_fsb_win;     /* Taninaka */
 #ifdef HAVE_DTM
   Widget dtmout_win;
 #endif
 #ifdef HAVE_AUDIO_ANNOTATIONS
   Widget audio_annotate_win;
 #endif
+#ifdef L10N
+  Widget acpt_langs_win;
+#endif /* L10N */
 
   XmxMenuRecord *menubar;
   Widget url_text;
@@ -297,6 +309,9 @@
   int save_format; /* starts at 0 */
 
   Widget open_text;
+#ifdef L10N
+  Widget acpt_langs_text;
+#endif /* L10N */
 
   Widget mail_to_text;
   Widget mail_subj_text;
@@ -341,6 +356,9 @@
   int font_size;
   int font_family;
   int pretty;
+#ifdef DISABLE_TABLE
+  int disable_table;
+#endif /* DISABLE_TABLE */
 
   int underlines_snarfed;
   int underlines_state;
@@ -403,6 +421,12 @@
   Widget checkout_toggle;
   Widget checkin_toggle;
 #endif
+
+#ifdef L10N
+  XmFontList font_list;
+  int bidirectionality;
+  char *accept_languages;
+#endif /* L10N */
 } mo_window;
 
 /* ------------------------------- mo_node -------------------------------- */
@@ -419,6 +443,9 @@
   char *text;
   char *texthead;   /* head of the alloc'd text -- this should
                        be freed, NOT text */
+#ifdef L10N
+  int  font_size;   /* keep font for the current document */
+#endif /* L10N */
   /* Position in the list, starting at 1; last item is
      effectively 0 (according to the XmList widget). */
   int position;
@@ -459,6 +486,7 @@
   char *sendmail_command;
   char *print_command;
   int	cciPort;
+  int   cciPortFileMode;
   int  max_num_of_cci_connections;
   char *edit_command;
   Boolean edit_command_use_xterm;
@@ -471,11 +499,15 @@
   char *signature;
 
   char *http_proxy;
+#ifdef USE_SSL
+  char *https_proxy;
+#endif /* USE_SSL */
   char *ftp_proxy;
   char *wais_proxy;
   char *gopher_proxy;
   char *news_proxy;
   char *file_proxy;
+  char *no_proxy;
 
   int colors_per_inlined_image;
 
@@ -505,6 +537,7 @@
   char *personal_type_map;
 
   int twirl_increment;
+  char *twirl_icons_index;
 
   int image_cache_size;
 
@@ -515,6 +548,7 @@
   Boolean use_global_history;           
   Boolean display_urls_not_titles;      
   Boolean confirm_exit;
+  Boolean lastwindow_confirm;
   Boolean default_fancy_selections;
   Boolean annotations_on_top;
   Boolean track_visited_anchors;
@@ -549,11 +583,49 @@
   Boolean print_header_top;
   Boolean print_header_left;
 
+  Boolean button_icons;
+  Boolean button_bar;
+
   char *mail_filter_command;
 
 #ifdef __sgi
   Boolean debugging_malloc;
 #endif
+#ifdef L10N
+  char *FontSet;
+  char *italicFontSet;
+  char *boldFontSet;
+  char *fixedFontSet;
+  char *fixedboldFontSet;
+  char *fixeditalicFontSet;
+  char *header1FontSet;
+  char *header2FontSet;
+  char *header3FontSet;
+  char *header4FontSet;
+  char *header5FontSet;
+  char *header6FontSet;
+  char *addressFontSet;
+  char *plainFontSet;
+  char *plainboldFontSet;
+  char *plainitalicFontSet;
+  char *textfieldFontSet;
+  char *supSubFontSet;
+  char *default_charset;
+  char *default_bidirectionality;
+  int  keep_document_charset;
+  char *default_accept_languages;
+#ifdef MOTIF_I18N
+  int half_sized_textfield;
+#endif /* MOTIF_I18N */
+  char *kinsoku_bol;
+  char *kinsoku_eol;
+  int ignore_space_between_japanese;
+  int ignore_lf_between_japanese;
+#endif /* L10N */
+  int  connectTimeout;
+#ifdef DISABLE_TABLE
+  Boolean default_disable_table;
+#endif /* DISABLE_TABLE */
 } AppData, *AppDataPtr;
 
 /* ---------------------------- a few globals ----------------------------- */
@@ -586,6 +658,17 @@
   mo_large_helvetica, mo_regular_helvetica, mo_small_helvetica,
   mo_large_newcentury, mo_regular_newcentury, mo_small_newcentury,
   mo_large_lucidabright, mo_regular_lucidabright, mo_small_lucidabright,
+#ifdef L10N
+  mo_charset_iso_8859_2, mo_charset_iso_8859_3, mo_charset_iso_8859_4,
+  mo_charset_iso_8859_5, mo_charset_iso_8859_7,
+  mo_charset_iso_8859_8, mo_charset_iso_8859_9,
+  mo_charset_koi8,
+  mo_charset_gb, mo_charset_hz, mo_charset_jis, mo_charset_ksc,
+  mo_charset_big5,
+  mo_bidir_visual, mo_bidir_implicit,
+  /* mo_bidir_explicit, */ /* Not yet supported: */
+  mo_set_accept_languages,
+#endif /* L10N */
   mo_help_about, mo_help_onwindow, mo_help_onversion, mo_help_faq,
   mo_whine, mo_help_html, mo_help_url, mo_cc,
   mo_whats_new,
@@ -603,6 +686,13 @@
   mo_news_post, mo_news_cancel, mo_news_reply, mo_news_follow,
   mo_news_fmt0, mo_news_fmt1, mo_news_index, mo_news_list,
   mo_news_sub, mo_news_unsub, mo_news_subscr,
+#ifdef NEWS_SELECT
+  mo_news_body_fmt0, mo_news_body_fmt1,
+  mo_news_header_fmt0, mo_news_header_fmt1,
+#endif /* NEWS_SELECT */
+#ifdef DISABLE_TABLE
+  mo_disable_table,
+#endif /* DISABLE_TABLE */
   mo_re_init, mo_delay_image_loads, mo_expand_images_current
 } mo_token;
 
@@ -698,6 +788,10 @@
 extern mo_status mo_post_subscribe_win (mo_window *);
 extern mo_status mo_post_follow_win (mo_window *);
 extern mo_status mo_post_generic_news_win (mo_window *, int follow);
+#ifdef L10N
+extern mo_status mo_post_accept_languages (mo_window *);
+extern char *    mo_get_accept_languages ();
+#endif /* L10N */
 
 /* gui-documents.c */
 extern mo_status mo_back_impossible (mo_window *win);
@@ -714,6 +808,9 @@
 extern mo_status mo_set_fonts (mo_window *, int);
 extern mo_status mo_set_underlines (mo_window *, int);
 extern XmxMenuRecord *mo_make_document_view_menubar (Widget);
+#ifdef DISABLE_TABLE
+extern mo_status mo_set_disable_table_toggle (mo_window *);
+#endif /* DISABLE_TABLE */
 
 /* history.c */
 extern mo_status mo_free_node_data (mo_node *);
@@ -802,12 +899,20 @@
 /* pixmaps.c */
 extern void AnimatePixmapInWidget(Widget, Pixmap);
 extern void MakeAnimationPixmaps(Widget);
+extern int  MakeDynamicAnimationPixmaps(Widget, char *);
 
 /* whine.c */
 extern mo_status mo_post_whine_win (mo_window *);
 extern mo_status mo_send_mail_message (char *, char *, char *, char *, char *);
+#ifdef L10N
+extern FILE *mo_start_sending_mail_message (char *, char *, char *, char *, char *);
+#else /* L10N */
 extern FILE *mo_start_sending_mail_message (char *, char *, char *, char *);
+#endif /* L10N */
 extern mo_status mo_finish_sending_mail_message (void);
+#ifdef L10N
+extern int mo_codeconv (char *, char *);
+#endif /* L10N */
 
 /* HTNews.c -- this should be elsewhere */
 extern news_prev(char *url);
--- src/pan.c.orig	Sun Apr  2 18:29:23 1995
+++ src/pan.c	Thu Sep 14 17:01:15 1995
@@ -382,7 +382,7 @@
   struct stat buf;
   int r;
 
-  sprintf (filename, "%s/%s\0", home, default_directory);
+  sprintf (filename, "%s/%s", home, default_directory);
 
   r = stat (filename, &buf); 
   if (r == -1)
@@ -433,7 +433,7 @@
   filename = (char *)malloc 
     ((strlen (home) + strlen (default_directory) + 
       strlen (default_filename) + 8) * sizeof (char));
-  sprintf (filename, "%s/%s/%s\0", home, default_directory, default_filename);
+  sprintf (filename, "%s/%s/%s", home, default_directory, default_filename);
   cached_global_pan_fname = filename;
 
   mo_read_pan_file (filename);
@@ -485,7 +485,7 @@
   ensure_pan_directory_exists ();
  
   /* Write the new annotation to its appropriate file. */
-  sprintf (filename, "%s/%s/%s%d.html\0", home, default_directory,
+  sprintf (filename, "%s/%s/%s%d.html", home, default_directory,
            PAN_ANNOTATION_PREFIX, id);
 
   fp = fopen (filename, "w");
@@ -547,7 +547,7 @@
   remove_an_from_entry (l, id);
 
   /* Remove the annotation itself. */
-  sprintf (filename, "%s/%s/%s%d.html\0", home, default_directory,
+  sprintf (filename, "%s/%s/%s%d.html", home, default_directory,
            PAN_ANNOTATION_PREFIX, id);
 /*
   cmd = (char *)malloc ((strlen (filename) + 32) * sizeof (char));
@@ -560,7 +560,7 @@
 #ifdef HAVE_AUDIO_ANNOTATIONS
 #if defined(__sgi)
   /* Remove a possible audio annotation. */
-  sprintf (filename, "%s/%s/%s%d.aiff\0", home, default_directory,
+  sprintf (filename, "%s/%s/%s%d.aiff", home, default_directory,
            PAN_ANNOTATION_PREFIX, id);
 /*
   cmd = (char *)malloc ((strlen (filename) + 32) * sizeof (char));
@@ -572,7 +572,7 @@
  
 #else /* sun or HP, probably */
   /* Remove a possible audio annotation. */
-  sprintf (filename, "%s/%s/%s%d.au\0", home, default_directory,
+  sprintf (filename, "%s/%s/%s%d.au", home, default_directory,
            PAN_ANNOTATION_PREFIX, id);
 /*
   cmd = (char *)malloc ((strlen (filename) + 32) * sizeof (char));
@@ -680,7 +680,7 @@
 
       /* Do we have to assume we're opening a file with
          suffix .html??? */
-      sprintf (filename, "%s/%s/%s%d.html\0", home, default_directory,
+      sprintf (filename, "%s/%s/%s%d.html", home, default_directory,
                PAN_ANNOTATION_PREFIX, l->an[i]);
 
       fp = fopen (filename, "r");
--- src/picread.c.orig	Fri Jun 30 01:17:51 1995
+++ src/picread.c	Thu Sep 14 17:01:15 1995
@@ -289,7 +289,7 @@
 	char *t;
 	char *t2;
 	unsigned char *ptr, *dataP;
-	int bytes_per_line, version10p, raster_length, padding;
+	int bytes_per_line, version10p = 0, raster_length, padding;
 	int i, bytes, temp, value;
 	int Ncolors, charspp, xpmformat;
         static unsigned long fg_pixel, bg_pixel;
--- src/pixmaps.c.orig	Fri Feb  3 09:56:46 1995
+++ src/pixmaps.c	Thu Sep 14 17:01:15 1995
@@ -59,9 +59,11 @@
 #include <memory.h>
 
 extern unsigned char *ProcessXpm3Data();
+extern unsigned char *ReadBitmap();
 
 
-Pixmap IconPix[NUMBER_OF_FRAMES];
+int NUMBER_OF_FRAMES = DEFAULT_NUMBER_OF_FRAMES;
+Pixmap *IconPix;
 int IconsMade = 0;
 
 
@@ -262,13 +264,15 @@
 	int Vclass;
 	XVisualInfo vinfo, *vptr;
 	Visual *theVisual;
-	int bmap_order;
-	unsigned long c;
 	int rshift, gshift, bshift;
+	unsigned int rmask, gmask, bmask, mask;
+	unsigned int rbits, gbits, bbits;
+	unsigned int pxval[256];
+	XPixmapFormatValues *pmf, pmv;
 
 	if (data == NULL)
 	{
-		return(NULL);
+		return((Pixmap)NULL);
 	}
 
 	/* find the visual class. */
@@ -276,21 +280,63 @@
 		DefaultScreen(XtDisplay(wid))));
 	vptr = XGetVisualInfo(XtDisplay(wid), VisualIDMask, &vinfo, &i);
 	Vclass = vptr->class;
-	XFree((char *)vptr);
 
 	depth = DefaultDepthOfScreen(XtScreen(wid));
 
+	if ((Vclass == TrueColor) || (Vclass == DirectColor)) {
+	    rmask = vptr->red_mask;
+	    for (rshift = 0, mask = rmask; !(mask & 1); mask >>= 1) rshift++;
+	    for (rbits = 0; mask; mask >>= 1)
+		if (mask & 1) rbits++;
+	    rbits = 16 - rbits;
+	    gmask = vptr->green_mask;
+	    for (gshift = 0, mask = gmask; !(mask & 1); mask >>= 1) gshift++;
+	    for (gbits = 0; mask; mask >>= 1)
+		if (mask & 1) gbits++;
+	    gbits = 16 - gbits;
+	    bmask = vptr->blue_mask;
+	    for (bshift = 0, mask = bmask; !(mask & 1); mask >>= 1) bshift++;
+	    for (bbits = 0; mask; mask >>= 1)
+		if (mask & 1) bbits++;
+	    bbits = 16 - bbits;
+	    pmf = XListPixmapFormats(XtDisplay(wid), &temp);
+	    for (i = 0; i < temp; i++)
+		if (pmf[i].depth == depth)
+		{
+		    pmv = pmf[i];
+		    break;
+		}
+	    if (pmf)
+		XFree((char *)pmf);
+	}
+	XFree((char *)vptr);
+
         for (i=0; i < 256; i++)
         {
 		struct color_rec *hash_ptr;
-
-                tmpcolr.red = colrs[i].red;
+		tmpcolr.red = colrs[i].red;
                 tmpcolr.green = colrs[i].green;
                 tmpcolr.blue = colrs[i].blue;
                 tmpcolr.flags = DoRed|DoGreen|DoBlue;
-                if ((Vclass == TrueColor) || (Vclass == DirectColor))
-                {
+
+                if (Vclass == TrueColor)
+		{
                         Mapping[i] = i;
+			pxval[i]=(((colrs[i].red>>rbits)<<rshift) & rmask)
+			    |(((colrs[i].green>>gbits)<<gshift) & gmask)
+			    |(((colrs[i].blue>>bbits)<<bshift) & bmask);
+		}
+		else if (Vclass == DirectColor)
+                {
+			Mapping[i] = i;
+			if ( XAllocColor(XtDisplay(wid),
+				DefaultColormapOfScreen(XtScreen(wid)),
+				&tmpcolr ) == 0 )
+			{
+				fprintf(stderr,	"XAlloc Color error %d\n", i);
+				break;
+			}
+			pxval[i] = tmpcolr.pixel;
                 }
                 else
                 {
@@ -326,6 +372,7 @@
 
 	switch(depth)
 	{
+	    case 4:
 	    case 6:
 	    case 8:
 		bit_data = (unsigned char *)malloc(size);
@@ -340,7 +387,6 @@
 		break;
 	    case 1:
 	    case 2:
-	    case 4:
 		if (BitmapBitOrder(XtDisplay(wid)) == LSBFirst)
 		{
 			shiftstart = 0;
@@ -392,88 +438,25 @@
 			depth, ZPixmap, 0, (char *)bit_data,
 			(width + linepad), height, 8, bytesperline);
 		break;
-	    /*
-	     * WARNING:  This depth 16 code is donated code for 16 but
-	     * TrueColor displays.  I have no access to such displays, so I
-	     * can't really test it.
-	     * Donated by - andrew@icarus.demon.co.uk
-	     */
-	    case 16:
-		bit_data = (unsigned char *)malloc(size * 2);
-		bitp = bit_data;
-		datap = data;
-		for (w = size; w > 0; w--)
-		{
-			temp = (((colrs[(int)*datap].red   >> 1) & 0x7c00) |
-				((colrs[(int)*datap].green >> 6) & 0x03e0) |
-				((colrs[(int)*datap].blue  >> 11) & 0x001f));
-
-			if (BitmapBitOrder(XtDisplay(wid)) == MSBFirst)
-			{
-				*bitp++ = (temp >> 8) & 0xff;
-				*bitp++ = temp & 0xff;
-			}
-			else
-			{
-				*bitp++ = temp & 0xff;
-				*bitp++ = (temp >> 8) & 0xff;
-			}
-
-			datap++;
-		}
-
-		newimage = XCreateImage(XtDisplay(wid),
-			DefaultVisual(XtDisplay(wid),
-				DefaultScreen(XtDisplay(wid))),
-			depth, ZPixmap, 0, (char *)bit_data,
-			width, height, 16, 0);
-		break;
-	    case 24:
-		bit_data = (unsigned char *)malloc(size * 4);
-
-		theVisual = DefaultVisual(XtDisplay(wid),
-			DefaultScreen(XtDisplay(wid)));
-		rshift = highbit(theVisual->red_mask) - 7;
-		gshift = highbit(theVisual->green_mask) - 7;
-		bshift = highbit(theVisual->blue_mask) - 7;
-		bmap_order = BitmapBitOrder(XtDisplay(wid));
-
+	    default:
+ 		if (depth < 9) {
+ 			fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth);
+ 			newimage = NULL;
+ 			break;
+ 		}
+ 		temp = width * pmv.bits_per_pixel + pmv.scanline_pad - 1;
+ 		temp = (temp / pmv.scanline_pad) * pmv.scanline_pad / 8;
+ 		bit_data = (unsigned char *)malloc(temp * height);
 		bitp = bit_data;
 		datap = data;
-		for (w = size; w > 0; w--)
-		{
-			c =
-			  (((colrs[(int)*datap].red >> 8) & 0xff) << rshift) |
-			  (((colrs[(int)*datap].green >> 8) & 0xff) << gshift) |
-			  (((colrs[(int)*datap].blue >> 8) & 0xff) << bshift);
-
-			datap++;
-
-			if (bmap_order == MSBFirst)
-			{
-				*bitp++ = (unsigned char)((c >> 24) & 0xff);
-				*bitp++ = (unsigned char)((c >> 16) & 0xff);
-				*bitp++ = (unsigned char)((c >> 8) & 0xff);
-				*bitp++ = (unsigned char)(c & 0xff);
-			}
-			else
-			{
-				*bitp++ = (unsigned char)(c & 0xff);
-				*bitp++ = (unsigned char)((c >> 8) & 0xff);
-				*bitp++ = (unsigned char)((c >> 16) & 0xff);
-				*bitp++ = (unsigned char)((c >> 24) & 0xff);
-			}
-		}
-
 		newimage = XCreateImage(XtDisplay(wid),
-			DefaultVisual(XtDisplay(wid),
-				DefaultScreen(XtDisplay(wid))),
-			depth, ZPixmap, 0, (char *)bit_data,
-			width, height, 32, 0);
-		break;
-	    default:
-		fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth);
-		newimage = NULL;
+ 			DefaultVisual(XtDisplay(wid),
+ 			DefaultScreen(XtDisplay(wid))),
+ 			depth, ZPixmap, 0, (char *)bit_data, width, height,
+ 			pmv.scanline_pad, temp);
+		for (h = 0; h < height; h++)
+			for (w = 0; w < width; w++)
+				XPutPixel(newimage, w, h, pxval[*datap++]);
 	}
 	free((char *)data);
 
@@ -494,7 +477,7 @@
 	}
 	else
 	{
-		return(NULL);
+		return((Pixmap)NULL);
 	}
 }
 
@@ -504,9 +487,11 @@
 {
 	int i;
 
+	NUMBER_OF_FRAMES = DEFAULT_NUMBER_OF_FRAMES;
+	IconPix = (Pixmap *)malloc(sizeof(Pixmap) * NUMBER_OF_FRAMES);
 	for (i=0; i<NUMBER_OF_FRAMES; i++)
 	{
-		IconPix[i] = NULL;
+		IconPix[i] = (Pixmap)NULL;
 	}
 
 	InitHash();
@@ -536,6 +521,113 @@
 	MAKE_PIXMAP_FROM_ICON(23);
 	MAKE_PIXMAP_FROM_ICON(24);
 	MAKE_PIXMAP_FROM_ICON(25);
+}
+
+
+int
+MakeDynamicAnimationPixmaps(Widget localwid, char *indexfile)
+{
+	int i;
+	extern Widget view;
+	Widget swapview = view;
+	char indexpath[MO_LINE_LENGTH], dummy[MO_LINE_LENGTH],
+		*point, **filelist;
+	FILE *fp = fopen(indexfile, "r");
+
+	if (fp == (FILE *)NULL)
+	{
+		printf("Can't find '%s'. I use default icons.\n", indexfile);
+		return False;
+	}
+	strcpy(indexpath, indexfile);
+	point = strrchr(indexpath, '/');
+	if (point == NULL)
+	{
+		indexpath[0] = '\0';
+	} else {
+		*point = '\0';
+	}
+	for (NUMBER_OF_FRAMES = 0; fgets(dummy,MO_LINE_LENGTH,fp);
+							NUMBER_OF_FRAMES++);
+	rewind(fp);
+
+	IconPix = (Pixmap *)malloc(sizeof(Pixmap) * NUMBER_OF_FRAMES);
+
+	InitHash();
+	view = localwid;
+	filelist = (char **)malloc(NUMBER_OF_FRAMES * sizeof(char *));
+
+	for (i=0; i<NUMBER_OF_FRAMES; i++)
+	{
+		unsigned char *data;
+		int w, h, bg, j;
+		XColor colrs[256];
+		char filename[MO_LINE_LENGTH], searchfile[MO_LINE_LENGTH];
+
+		fgets(searchfile,MO_LINE_LENGTH,fp);
+		if (searchfile[strlen(searchfile)-1] == '\n')
+		{
+			searchfile[strlen(searchfile)-1] = '\0';
+		}
+		
+		for (j = 0; j < i; j++)
+		{
+			if (strcmp(searchfile, filelist[j]) == 0)
+				break;
+		}
+		if (i != j)
+		{	/* pixmap sharing */
+			IconPix[i] = IconPix[j];
+			filelist[i] = filelist[j];
+			continue;
+		}
+		filelist[i] = (char *)malloc(strlen(searchfile) * sizeof(char));
+		strcpy(filelist[i], searchfile);
+		sprintf(filename, "%s/%s", indexpath, searchfile);
+
+		data = ReadBitmap(filename, &w, &h, colrs, &bg);
+		if (data == NULL)
+		{
+			/* Resource free */
+			for (j = 0; j < i; j++)
+			{
+				XFreePixmap(XtDisplay(localwid), IconPix[j]);
+				if (filelist[j] != NULL)
+				{
+					free(filelist[j]);
+					filelist[j] = NULL;
+				}
+			}
+			free(filelist);
+			fclose(fp);
+			free(IconPix);
+			printf("Can't find '%s'. I use default icons\n",
+				searchfile);
+			return False;
+		}
+		IconPix[i] = PixmapFromData(localwid, data, w, h, colrs);
+		if (w > IconWidth)
+		{
+			IconWidth = w;
+		}
+		if (h > IconHeight)
+		{
+			IconHeight = h;
+		}
+	}
+	/* Resource free */
+	for (i = 0; i < NUMBER_OF_FRAMES; i++)
+	{
+		if (filelist[i] != NULL)
+		{
+			free(filelist[i]);
+			filelist[i] = NULL;
+		}
+	}
+	free(filelist);
+	fclose(fp);
+	view = swapview;
+	return True;
 }
 
 
--- src/readJPEG.c.orig	Tue Apr  4 13:24:06 1995
+++ src/readJPEG.c	Thu Sep 14 17:01:16 1995
@@ -42,7 +42,7 @@
 
 struct jpeg_decompress_struct cinfo;
 struct my_error_mgr jerr;
-unsigned char *retBuffer=0;
+unsigned char *retBuffer=NULL;
 unsigned char *r;
 JSAMPARRAY buffer;		/* Output row buffer */
 int row_stride;		/* physical row width in output buffer */
--- src/support.c.orig	Fri Feb  3 09:56:48 1995
+++ src/support.c	Thu Sep 14 17:01:16 1995
@@ -3,8 +3,10 @@
 
 /*for memcpy*/
 #include <memory.h>
+#include <ctype.h>
 
 #include "cci.h"
+#include "mosaic.h"
 
 int ReadBuffer(s,data,numBytesToRead)
 /* this routine reads from the specified port, but also considers contents
--- src/utsname.h.orig	Thu Sep 14 17:01:16 1995
+++ src/utsname.h	Thu Sep 14 17:01:16 1995
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ *	$Id: utsname.h,v 1.1 1995/07/18 12:27:01 kanaya Exp kanaya $
+ *****************************************************************************/
+
+#ifndef _UTSNAME_H
+#define	_UTSNAME_H
+
+#if 1
+#define SYS_NMLN	257	/* 4.0 size of utsname elements.*/
+#else
+#define SYS_NMLN	9	/* old size of utsname elements */
+#endif
+
+struct utsname {
+	char	sysname[SYS_NMLN];
+	char	nodename[SYS_NMLN];
+	char	release[SYS_NMLN];
+	char	version[SYS_NMLN];
+	char	machine[SYS_NMLN];
+	char	processor[SYS_NMLN];
+};
+
+#endif	/* ! _UTSNAME_H */
--- src/whine.c.orig	Thu Jul  6 05:45:08 1995
+++ src/whine.c	Thu Sep 14 22:07:08 1995
@@ -56,6 +56,11 @@
 
 #include "mosaic.h"
 
+#define TEXT_PLAIN	"text/plain"
+#ifdef L10N
+#define CHARSET		"ISO-2022-JP"
+#endif /* L10N */
+
 static char *yap_msg =
   "Type your message in the editing area below and then press\n\
 the Send button at the bottom of the window.  Your message\n\
@@ -82,8 +87,8 @@
 
       sprintf (subj, "User Feedback -- NCSA Mosaic %s on %s.",
                MO_VERSION_STRING, MO_MACHINE_TYPE);
-      
-      mo_send_mail_message (msg, MO_DEVELOPER_ADDRESS, subj, "text/plain",
+
+      mo_send_mail_message (msg, MO_DEVELOPER_ADDRESS, subj, TEXT_PLAIN,
                             NULL);
 
       free (msg);
@@ -134,6 +139,16 @@
       XmxSetArg (XmNeditable, True);
       XmxSetArg (XmNeditMode, XmMULTI_LINE_EDIT);
       XmxSetArg (XmNrows, 15);
+#ifdef L10N
+#if defined(IXIMOTIF1_2) || !defined(MOTIF_I18N)
+      XmxSetArg (XmNfontList, (XtArgVal)win->font_list);
+#endif /* IXIMOTIF1_2 || !MOTIF_I18N */
+#ifdef MOTIF_I18N
+      if (Rdata.half_sized_textfield)
+      XmxSetArg (XmNcolumns, 40);
+      else
+#endif /* MOTIF_I18N */
+#endif /* L10N */
       XmxSetArg (XmNcolumns, 80);
       /* XmxSetArg (XmNwordWrap, True); */
       /* XmxSetArg (XmNscrollHorizontal, False); */
@@ -176,11 +191,22 @@
 
 static FILE *_fp = NULL;
 
+#ifdef L10N
+FILE *mo_start_sending_mail_message (char *to, char *subj, 
+                                     char *content_type, char *charset, char *url)
+#else /* L10N */
 FILE *mo_start_sending_mail_message (char *to, char *subj, 
                                      char *content_type, char *url)
+#endif /* L10N */
 {
   char cmd[2048];
   char *tmp;
+#ifdef L10N
+  char jis[4096];
+#ifdef MIME_HEAD
+  char mime[4096];
+#endif /* MIME_HEAD */
+#endif /* L10N */
 
   if (!to)
     return NULL;
@@ -219,11 +245,29 @@
 #ifdef OLD
   fprintf (_fp, "To: %s\n", to);
 #endif
-  fprintf (_fp, "Subject: %s\n", subj);
-  fprintf (_fp, "Content-Type: %s\n", content_type);
   fprintf (_fp, "Mime-Version: 1.0\n");
+#ifdef L10N
+  if (strcmp (charset, CHARSET)) {
+#endif /* L10N */
+  fprintf (_fp, "Subject: %s\n", subj);
+#ifdef L10N
+  } else {
+  mo_codeconv(subj, jis);
+#ifdef MIME_HEAD
+  MIME_strHeaderEncode(jis, mime, 4096);
+  fprintf (_fp, "Subject: %s\n", mime);
+#else /* MIME_HEAD */
+  fprintf (_fp, "Subject: %s\n", jis);
+#endif /* MIME_HEAD */
+  }
+  fprintf (_fp, "Content-Type: %s; charset=%s\n", content_type, charset);
+  fprintf (_fp, "X-Mailer: NCSA Mosaic %s L10N+ on %s\n", 
+           MO_VERSION_STRING, MO_MACHINE_TYPE);
+#else /* L10N */
+  fprintf (_fp, "Content-Type: %s; charset=US-ASCII\n", content_type);
   fprintf (_fp, "X-Mailer: NCSA Mosaic %s on %s\n", 
            MO_VERSION_STRING, MO_MACHINE_TYPE);
+#endif /* L10N */
   if (url)
     fprintf (_fp, "X-URL: %s\n", url);
 
@@ -253,14 +297,56 @@
                                 char *content_type, char *url)
 {
   FILE *fp;
-
+#ifdef L10N
+  char *jis;
+#endif /* L10N */
+
+#ifdef L10N
+  jis = malloc(strlen(text) * 4);
+  if (mo_codeconv (text, jis))
+  fp = mo_start_sending_mail_message (to, subj, content_type, CHARSET, url);
+  else
+  fp = mo_start_sending_mail_message (to, subj, content_type, "us-ascii", url);
+#else /* L10N */
   fp = mo_start_sending_mail_message (to, subj, content_type, url);
+#endif /* L10N */
   if (!fp)
     return mo_fail;
   
+#ifdef L10N
+  fputs (jis, fp);
+  free (jis);
+#else /* L10N */
   fputs (text, fp);
+#endif /* L10N */
 
   mo_finish_sending_mail_message ();
 
   return mo_succeed;
 }
+
+#ifdef L10N
+int mo_codeconv (char *p, char *q)
+{
+#define ESC	0x1b
+  int kflag = 0, jflag = 0;
+  for (;;) {
+    if (*p & 0x80) {
+      if (!kflag) {
+	*q++ = ESC;  *q++ = '$';  *q++ = 'B';
+	kflag = jflag = 1;
+      }
+      *q++ = *p++ & 0x7f;  *q++ = *p++ & 0x7f;
+    }
+    else {
+      if (kflag) {
+	*q++ = ESC;  *q++ = '(';  *q++ = 'B';
+	kflag = 0;
+      }
+      *q++ = *p;
+      if (!(*p++)) break;
+    }
+  }
+  return jflag;
+}
+#endif /* L10N */
--- src/xpmread.c.orig	Sun Apr  2 18:29:27 1995
+++ src/xpmread.c	Thu Sep 14 17:01:16 1995
@@ -522,7 +522,7 @@
     char ****colorTablePtr;		/* Jee, that's something! */
     xpmHashTable *hashtable;
 {
-    unsigned int key, l, a, b;
+    unsigned int key = 0, l, a, b;
     unsigned int curkey;		/* current color key */
     unsigned int lastwaskey;		/* key read */
     char buf[BUFSIZ];
@@ -1153,7 +1153,6 @@
 	unsigned char *pix_data;
 	unsigned char *bptr;
 	unsigned int *pixels;
-        extern Widget view;
 
 	*w = 0;
 	*h = 0;
--- src/xresources.h.orig	Fri Jun 16 22:54:11 1995
+++ src/xresources.h	Thu Sep 28 12:02:14 1995
@@ -93,6 +93,8 @@
       HOME_PAGE_DEFAULT },
   { "confirmExit", "ConfirmExit", XtRBoolean, sizeof (Boolean),
       offset (confirm_exit), XtRString, "True" },
+  { "lastwindowConfirm", "LastwindowConfirm", XtRBoolean, sizeof (Boolean),
+      offset (lastwindow_confirm), XtRString, "True" },
   /* THIS USED TO BE mailCommand BUT IS NOW sendmailCommand. */
   { "sendmailCommand", "SendmailCommand", XtRString, sizeof (char *),
       offset (sendmail_command), XtRString, "/usr/lib/sendmail" },
@@ -103,6 +105,8 @@
       offset (print_command), XtRString, "lpr" },
   { "cciPort","CCIPort",XtRInt,sizeof (int),
       offset (cciPort), XtRString, "0" },
+  { "cciPortFileMode", "CCIPortFileMode", XtRInt, sizeof (int),
+      offset (cciPortFileMode), XtRString, "384" },
   { "maxNumCCIConnect","MaxNumCCIConnect",XtRInt,sizeof (int),
       offset (max_num_of_cci_connections), XtRString, "1" },
   { "editCommand", "EditCommand", XtRString, sizeof (char *),
@@ -133,6 +137,10 @@
       XtRString, "False" },
   { "defaultAuthorName", "DefaultAuthorName", XtRString, sizeof (char *),
       offset (default_author_name), XtRString, NULL },
+  { "buttonIcons", "ButtonIcons", XtRBoolean, sizeof (Boolean),
+      offset (button_icons), XtRString, "False" },
+  { "buttonBar", "ButtonBar", XtRBoolean, sizeof (Boolean),
+      offset (button_bar), XtRString, "False" },
   { "signature", "Signature", XtRString, sizeof (char *),
       offset (signature), XtRString, NULL },
   { "annotationsOnTop", "AnnotationsOnTop", XtRBoolean, sizeof (Boolean),
@@ -159,7 +167,15 @@
 #if defined (sun)
       "/usr/demo/SOUND/record" },
 #else
+#if defined(nec_ews) || defined(_nec_ews) || defined(sony_news)
+#ifdef RECORD
+      RECORD },
+#else /* RECORD */
+      "record" },
+#endif /* RECORD */
+#else
       "/bin/true" },
+#endif /* if nec_ews || _nec_ews || sony_news */
 #endif /* if sun */
 #endif /* if sgi */
 #endif /* ifdef */
@@ -174,7 +190,11 @@
 #if defined (sun)
       "record" },
 #else
+#if defined(nec_ews) || defined(_nec_ews) || defined(sony_news)
+      "record" },
+#else
       "true" },
+#endif /* if nec_ews || _nec_ews || sony_news */
 #endif /* if sun */
 #endif /* if sgi */
 #endif /* ifdef */
@@ -196,6 +216,10 @@
   /* Proxy gateway resources */
   { "httpProxy", "ProxyGateway", XtRString, sizeof (char *),
       offset (http_proxy), XtRString, NULL },
+#ifdef USE_SSL
+  { "httpsProxy", "ProxyGateway", XtRString, sizeof (char *),
+      offset (https_proxy), XtRString, NULL },
+#endif /* USE_SSL */
   { "ftpProxy", "ProxyGateway", XtRString, sizeof (char *),
       offset (ftp_proxy), XtRString, NULL },
   { "waisProxy", "ProxyGateway", XtRString, sizeof (char *),
@@ -206,6 +230,8 @@
       offset (news_proxy), XtRString, NULL },
   { "fileProxy", "ProxyGateway", XtRString, sizeof (char *),
       offset (file_proxy), XtRString, NULL },
+  { "noProxy", "NoProxyDomain", XtRString, sizeof (char *),
+      offset (no_proxy), XtRString, NULL },
 
   { "fullHostname", "FullHostname", XtRString, sizeof (char *),
       offset (full_hostname), XtRString, NULL },
@@ -277,6 +303,8 @@
       offset (twirling_transfer_icon), XtRString, "True" },
   { "twirlIncrement", "TwirlIncrement", XtRInt, sizeof (int),
       offset (twirl_increment), XtRString, "4096" },
+  { "twirlIconsIndex", "TwirlIconsIndex", XtRString, sizeof (char *),
+      offset (twirl_icons_index), XtRString, "" },
 
   { "imageCacheSize", "ImageCacheSize", XtRInt, sizeof (int),
       offset (image_cache_size), XtRString, "2048" },
@@ -301,6 +329,102 @@
   { "debuggingMalloc", "DebuggingMalloc", XtRBoolean, sizeof (Boolean),
       offset (debugging_malloc), XtRString, "False" },
 #endif
+
+#ifdef L10N
+  { "fontSet", "FontSet", XtRString, sizeof(char *),
+      offset(FontSet), XtRString, NULL },
+
+  { "italicFontSet", "ItalicFontSet", XtRString, sizeof(char *),
+      offset(italicFontSet), XtRString, NULL },
+
+  { "boldFontSet", "BoldFontSet", XtRString, sizeof(char *),
+      offset(boldFontSet), XtRString, NULL },
+
+  { "fixedFontSet", "FixedFontSet", XtRString, sizeof(char *),
+      offset(fixedFontSet), XtRString, NULL },
+
+  { "fixedBoldFontSet", "FixedBoldFontSet", XtRString, sizeof(char *),
+      offset(fixedboldFontSet), XtRString, NULL },
+
+  { "fixedItalicFontSet", "FixedItalicFontSet", XtRString, sizeof(char *),
+      offset(fixeditalicFontSet), XtRString, NULL },
+
+  { "header1FontSet", "Header1FontSet", XtRString, sizeof(char *),
+      offset(header1FontSet), XtRString, NULL },
+
+  { "header2FontSet", "Header2FontSet", XtRString, sizeof(char *),
+      offset(header2FontSet), XtRString, NULL },
+
+  { "header3FontSet", "Header3FontSet", XtRString, sizeof(char *),
+      offset(header3FontSet), XtRString, NULL },
+
+  { "header4FontSet", "Header4FontSet", XtRString, sizeof(char *),
+      offset(header4FontSet), XtRString, NULL },
+
+  { "header5FontSet", "Header5FontSet", XtRString, sizeof(char *),
+      offset(header5FontSet), XtRString, NULL },
+
+  { "header6FontSet", "Header6FontSet", XtRString, sizeof(char *),
+      offset(header6FontSet), XtRString, NULL },
+
+  { "addressFontSet", "AddressFontSet", XtRString, sizeof(char *),
+      offset(addressFontSet), XtRString, NULL },
+
+  { "plainFontSet", "PlainFontSet", XtRString, sizeof(char *),
+      offset(plainFontSet), XtRString, NULL },
+
+  { "plainBoldFontSet", "PlainBoldFontSet", XtRString, sizeof(char *),
+      offset(plainboldFontSet), XtRString, NULL },
+
+  { "plainItalicFontSet", "PlainItalicFontSet", XtRString, sizeof(char *),
+      offset(plainitalicFontSet), XtRString, NULL },
+
+  { "textfieldFontSet", "TextfieldFontSet", XtRString, sizeof(char *),
+      offset(textfieldFontSet), XtRString, NULL },
+
+  { "supSubFontSet", "SupSubFontSet", XtRString, sizeof(char *),
+      offset(supSubFontSet), XtRString, NULL },
+
+  { "defaultCharset", "DefaultCharset", XtRString, sizeof (char *),
+      offset (default_charset), XtRString, NULL },
+
+  { "defaultBidirectionality", "DefaultBidirectionality", XtRString,
+      sizeof(char *), offset(default_bidirectionality), XtRString, NULL },
+
+  { "keepDocumentCharset", "KeepDocumentCharset", XtRBoolean,
+      sizeof(Boolean), offset(keep_document_charset), XtRString, "True" },
+
+  { "defaultAcceptLanguages", "DefaultAcceptLanguages", XtRString,
+       sizeof (char *), offset (default_accept_languages), XtRString, NULL },
+
+#ifdef MOTIF_I18N
+  { "halfsizedTextfield", "HalfSizedTextfield", XtRBoolean,
+       sizeof (Boolean), offset (half_sized_textfield), XtRString, "True" },
+#endif /* MOTIF_I18N */
+
+  { "kinsokuEol", "KinsokuEol", XtRString,
+       sizeof (char *), offset (kinsoku_eol), XtRString, '\0' },
+
+  { "kinsokuBol", "KinsokuBol", XtRString,
+       sizeof (char *), offset (kinsoku_bol), XtRString, '\0' },
+
+  { "ignoreSpaceBetweenJapanese", "IgnoreSpaceBetweenJapanese", XtRBoolean,
+       sizeof (Boolean), offset (ignore_space_between_japanese),
+       XtRString, "False" },
+
+  { "ignoreLFBetweenJapanese", "IgnoreLFBetweenJapanese", XtRBoolean,
+       sizeof (Boolean), offset (ignore_lf_between_japanese),
+       XtRString, "True" },
+#endif /* L10N */
+
+  /* adjustment connection timeout value(by sec) */
+  { "connectTimeout", "ConnectTimeout", XtRInt, sizeof (int),
+      offset (connectTimeout), XtRString, "100" },
+#ifdef DISABLE_TABLE
+  { "disableTable", "DisableTable", XtRBoolean,
+      sizeof (Boolean), offset (default_disable_table), 
+      XtRString, "True" },
+#endif /* DISABLE_TABLE */
 };
 
 #undef offset
@@ -334,6 +458,11 @@
   {"-kioskNoExit",  "*kioskNoExit",   XrmoptionNoArg,  "True"},
   {"-cciPort",  "*cciPort",   	      XrmoptionSepArg,  "0"},
   {"-maxNumCCIConnect",  "*maxNumCCIConnect",  XrmoptionSepArg,  "0"},
+#ifdef L10N
+  {"-charset", "*defaultCharset",     XrmoptionSepArg, NULL},
+  {"-bidirectionality", "*defaultBidirectionality", XrmoptionSepArg, NULL},
+  {"-acceptlanguages", "*defaultAcceptLanguages", XrmoptionSepArg, NULL},
+#endif /* L10N */
 };
 
 static String color_resources[] = {
@@ -361,8 +490,17 @@
   "*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
   "*pulldownmenu*fontList:	-*-helvetica-bold-o-normal-*-14-*-iso8859-1",
   "*XmList*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1",
+#if defined(ultrix) || defined(__alpha) || defined(VMS)
+  "*XmText.fontList:      -adobe-courier-medium-r-normal-*-14-*-iso8859-1",
+  "*XmTextField.fontList: -adobe-courier-medium-r-normal-*-14-*-iso8859-1",
+#else /* ultrix || __alpha || VMS */
   "*XmText.fontList:      -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
+#ifdef IXIMOTIF1_2
+  "*XmTextField.fontList: -*-*-*-r-normal-*-16-*-*-*-*-*-iso8859-1",
+#else /* IXIMOTIF1_2 */
   "*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
+#endif /* IXIMOTIF1_2 */
+#endif /* ultrix || __alpha || VMS */
   
   "*optionmenu*marginHeight: 	0",
   "*optionmenu*marginTop: 		5",
@@ -394,6 +532,9 @@
   "*XmText*marginHeight:		4",
   "*fsb*XmText*width:                   420",
   "*fsb*XmTextField*width:                   420",
+#ifdef IXIMOTIF1_2
+  "*fsb.textColumns:                    26",
+#endif /* IXIMOTIF1_2 */
   "*fillOnSelect:			True",
   "*visibleWhenOff:		        True",
   "*XmText*highlightThickness:		0",
@@ -434,9 +575,9 @@
   "*TroughColor:                        #545454545454",
   "*XmSelectionBox*Background:	 	#afafafafafaf",
   "*XmMessageBox*Background:	 	#afafafafafaf",
-  "*XmLabel*Foreground:                 #1d1d15155b5b",
+  "*XmLabel*Foreground:                 #000000000000",
   "*XmToggleButton*Foreground:          #1d1d15155b5b",
-  "*XmPushButton*Foreground:            #5b5b00000000",
+  "*XmPushButton*Foreground:            #000000000000",
   "*logo*Foreground:                    #1d1d15155b5b",
   "*searchindex_button*Foreground:      #1d1d15155b5b",
   "*XmTextField*Background: 		#8c8c8c8c8c8c",
@@ -456,9 +597,9 @@
 #else /* not sgi */
   "*Foreground:			 	#000000000000",
   "*XmScrollBar*Foreground:             #bfbfbfbfbfbf",
-  "*XmLabel*Foreground:                 #1d1d15155b5b",
+  "*XmLabel*Foreground:                 #000000000000",
   "*XmToggleButton*Foreground:          #1d1d15155b5b",
-  "*XmPushButton*Foreground:            #5b5b00000000",
+  "*XmPushButton*Foreground:            #000000000000",
   "*logo*Foreground:                    #1d1d15155b5b",
   "*searchindex_button*Foreground:      #1d1d15155b5b",
 
@@ -486,7 +627,266 @@
   "*activeAnchorFG:                     #ffff00000000",
   "*activeAnchorBG:                     #bfbfbfbfbfbf",
 #endif
-  
+
+#ifdef L10N
+  "*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*",
+  "*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*SupSubFontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+#ifdef IXIMOTIF1_2
+  "*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*:jisx0208.1983,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*:,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*:,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*:",
+#else /* IXIMOTIF1_2 */
+  "*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*",
+#endif /* IXIMOTIF1_2 */
+  "*fsb.filterLabelString:	Filter",
+  "*fsb.dirListLabelString:	Directories",
+  "*fsb.fileListLabelString:	Files",
+  "*fsb.applyLabelString:	Filter",
+  "*cancelLabelString:		Cancel",
+  "*okLabelString:		OK",
+#endif /* L10N */
+ 
   NULL,
 };
 
@@ -515,8 +915,17 @@
   "*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
   "*pulldownmenu*fontList:	-*-helvetica-bold-o-normal-*-14-*-iso8859-1",
   "*XmList*fontList:	-*-helvetica-medium-r-normal-*-14-*-iso8859-1",
+#if defined(ultrix) || defined(__alpha) || defined(VMS)
+  "*XmText.fontList:	  -adobe-courier-medium-r-normal-*-14-*-iso8859-1",
+  "*XmTextField.fontList: -adobe-courier-medium-r-normal-*-14-*-iso8859-1",
+#else /* ultrix || __alpha || VMS */
   "*XmText.fontList:      -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
+#ifdef IXIMOTIF1_2
+  "*XmTextField.fontList: -*-*-*-r-normal-*-16-*-*-*-*-*-iso8859-1",
+#else /* IXIMOTIF1_2 */
   "*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
+#endif /* IXIMOTIF1_2 */
+#endif /* ultrix || __alpha || VMS */
 
   "*optionmenu*marginHeight: 	0",
   "*optionmenu*marginTop: 		5",
@@ -588,6 +997,249 @@
   "*VisitedAnchorUnderlines:            1",
   "*DashedVisitedAnchorUnderlines:      True",
   "*VerticalScrollOnRight:              True",
+
+#ifdef L10N
+  "*FontSet:		-adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*italicFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*boldFontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedFontSet:	-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedBoldFontSet:	-adobe-courier-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fixedItalicFontSet:	-adobe-courier-medium-o-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header1FontSet:	-adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-24-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-24-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-24-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-24-*-*-*-*-*-ksc5601.1987-*",
+  "*header2FontSet:	-adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header3FontSet:	-adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header4FontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header5FontSet:	-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*header6FontSet:	-adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*addressFontSet:	-adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-medium-r-normal-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainFontSet:	-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainBoldFontSet:	-adobe-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*plainItalicFontSet:	-adobe-courier-medium-o-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*SupSubFontSet:	-adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-14-*-*-*-*-*-koi-1,\
+			-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*textfieldFontSet:	-*-fixed-*-*-*-*-16-*-*-*-*-*-iso8859-1,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-2,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-3,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-4,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-5,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-7,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-8,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-iso8859-9,\
+			-*-*-*-*-*-*-16-*-*-*-*-*-koi-1,\
+			-*-fixed-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*,\
+			-*-*-delicate-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,\
+			-*-*-medium-r-normal-*-15-*-*-*-*-*-big5*-*,\
+			-*-mincho-*-*-*-*-16-*-*-*-*-*-ksc5601.1987-*",
+  "*fsb.filterLabelString:		Filter",
+  "*fsb.dirListLabelString:		Directories",
+  "*fsb.fileListLabelString:		Files",
+  "*fsb.applyLabelString:		Filter",
+  "*cancelLabelString:			Cancel",
+  "*okLabelString:			OK",
+#endif /* L10N */
   
   NULL,
 };
--- src/bitmaps/back.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/back.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define back_width 32
+#define back_height 16
+static char back_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x0f,0x00,
+ 0x30,0xc0,0x0c,0x00,0x30,0x30,0xfc,0xff,0x33,0x0c,0x00,0x00,0x33,0x03,0x00,
+ 0x00,0x33,0x03,0x00,0x00,0x33,0x0c,0x00,0x00,0x33,0x30,0xfc,0xff,0x33,0xc0,
+ 0x0c,0x00,0x30,0x00,0x0f,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,
+ 0x00,0x00,0x00,0x00};
--- src/bitmaps/clone.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/clone.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define clone_width 32
+#define clone_height 16
+static char clone_bits[] = {
+ 0xff,0xff,0x03,0x00,0x03,0x00,0x03,0x00,0xc3,0x0f,0x03,0x00,0x03,0x00,0x03,
+ 0x00,0xf3,0xc0,0xff,0xff,0x03,0xc0,0x00,0xc0,0x03,0xc0,0xf0,0xc3,0x03,0xc0,
+ 0x00,0xc0,0xf3,0xcf,0x3c,0xc0,0x03,0xc0,0x00,0xc0,0x03,0xc0,0x00,0xc0,0xff,
+ 0xff,0x00,0xc0,0x00,0xc0,0xfc,0xc3,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,
+ 0x00,0xc0,0xff,0xff};
--- src/bitmaps/close.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/close.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define close_width 32
+#define close_height 16
+static char close_bits[] = {
+ 0x03,0x00,0x00,0xc0,0x0c,0x00,0x00,0x30,0x30,0x00,0x00,0x0c,0xc0,0x00,0x00,
+ 0x03,0x00,0x03,0xc0,0x00,0x00,0x0c,0x30,0x00,0x00,0x30,0x0c,0x00,0x00,0xc0,
+ 0x03,0x00,0x00,0xc0,0x03,0x00,0x00,0x30,0x0c,0x00,0x00,0x0c,0x30,0x00,0x00,
+ 0x03,0xc0,0x00,0xc0,0x00,0x00,0x03,0x30,0x00,0x00,0x0c,0x0c,0x00,0x00,0x30,
+ 0x03,0x00,0x00,0xc0};
--- src/bitmaps/dis_back.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/dis_back.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define dis_back_width 32
+#define dis_back_height 16
+static char dis_back_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,
+ 0x30,0x00,0x00,0x00,0x00,0x30,0xcc,0xcc,0x33,0x00,0x00,0x00,0x00,0x03,0x00,
+ 0x00,0x33,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0xcc,0xcc,0x03,0x00,
+ 0x00,0x00,0x30,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00};
--- src/bitmaps/dis_forward.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/dis_forward.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define dis_forward_width 32
+#define dis_forward_height 16
+static char dis_forward_bits[] = {
+ 0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0xf0,
+ 0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,0x3c,0x0c,0x00,0x00,0x00,0x00,0xcc,0x00,
+ 0x00,0xc0,0x00,0x00,0x00,0xc0,0xcc,0x00,0x00,0x00,0xc0,0xcc,0x3c,0x0c,0x0c,
+ 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00};
--- src/bitmaps/forward.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/forward.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define forward_width 32
+#define forward_height 16
+static char forward_bits[] = {
+ 0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0xf0,
+ 0x00,0x0c,0x00,0x30,0x03,0xcc,0xff,0x3f,0x0c,0xcc,0x00,0x00,0x30,0xcc,0x00,
+ 0x00,0xc0,0xcc,0x00,0x00,0xc0,0xcc,0x00,0x00,0x30,0xcc,0xff,0x3f,0x0c,0x0c,
+ 0x00,0x30,0x03,0x0c,0x00,0xf0,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00};
--- src/bitmaps/home.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/home.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define home_width 32
+#define home_height 16
+static char home_bits[] = {
+ 0x00,0xf0,0x00,0x3f,0x00,0x0c,0x03,0x33,0x00,0x03,0x0c,0x33,0xc0,0x00,0x30,
+ 0x33,0x30,0x00,0xc0,0x33,0x0c,0x00,0x00,0x33,0x03,0x00,0x00,0x3c,0x03,0x00,
+ 0x00,0x30,0x03,0x00,0x00,0x30,0x03,0x00,0x00,0x30,0x03,0xfc,0x0f,0x30,0x03,
+ 0x0c,0x0c,0x30,0x03,0x0c,0x0c,0x30,0x03,0x0c,0x0c,0x30,0x03,0x0c,0x0c,0x30,
+ 0xff,0x0f,0xfc,0x3f};
--- src/bitmaps/new.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/new.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define new_width 32
+#define new_height 16
+static char new_bits[] = {
+ 0xff,0xff,0x03,0x00,0x03,0x00,0x03,0x00,0xc3,0x0f,0x03,0x00,0x03,0x00,0x03,
+ 0x00,0xf3,0xc0,0xff,0xff,0x03,0xc0,0x00,0xc0,0x03,0xc0,0x00,0xc0,0x03,0xc0,
+ 0x00,0xc0,0xf3,0xcf,0x00,0xc0,0x03,0xc0,0x00,0xc0,0x03,0xc0,0x00,0xc0,0xff,
+ 0xff,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,
+ 0x00,0xc0,0xff,0xff};
--- src/bitmaps/open.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/open.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define open_width 32
+#define open_height 16
+static char open_bits[] = {
+ 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xc0,0x00,0x00,0x00,0x30,0x03,
+ 0x00,0x00,0xfc,0x0f,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3f,0x00,0x03,0x00,
+ 0x30,0x00,0x03,0x00,0xf0,0xff,0x0c,0x00,0xc0,0xc0,0x0c,0x00,0xc0,0xc0,0x0c,
+ 0x00,0xc0,0x30,0x30,0x00,0x00,0x33,0x30,0x00,0x00,0x33,0x30,0x00,0x00,0x0f,
+ 0xc0,0xff,0xff,0x03};
--- src/bitmaps/reload.xbm.orig	Thu Sep 14 17:01:17 1995
+++ src/bitmaps/reload.xbm	Thu Sep 14 17:01:17 1995
@@ -0,0 +1,8 @@
+#define reload_width 32
+#define reload_height 16
+static char reload_bits[] = {
+ 0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x00,0x30,0x00,0x00,0x03,0x0c,0xff,0x3f,
+ 0x0c,0xcc,0x00,0xc0,0x0c,0xcc,0x00,0xc0,0x0c,0xcc,0x00,0xc0,0x0c,0xcc,0x00,
+ 0xc0,0x0c,0xcc,0x00,0xc0,0x0c,0xcc,0xc0,0xc0,0x0f,0xcc,0x00,0x03,0x00,0x0c,
+ 0xff,0xcf,0x0f,0x30,0x00,0xcc,0x0c,0xc0,0xff,0xcc,0x0f,0x00,0x00,0x03,0x00,
+ 0x00,0xc0,0x00,0x00};
--- src/bitmaps/save.xbm.orig	Thu Sep 14 17:01:18 1995
+++ src/bitmaps/save.xbm	Thu Sep 14 17:01:18 1995
@@ -0,0 +1,8 @@
+#define save_width 32
+#define save_height 16
+static char save_bits[] = {
+ 0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x3f,0xff,0x03,0x3c,0xfc,0xff,0x03,0x3c,
+ 0xfc,0xff,0x03,0x3c,0xfc,0xff,0x03,0x3c,0xfc,0xff,0x03,0x00,0xfc,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfc,0xff,0xff,0x3f};
