changeset 74:54cc21c15cbb r20-0b32

Import from CVS: tag r20-0b32
author cvs
date Mon, 13 Aug 2007 09:04:33 +0200
parents e2d7a37b7c8d
children a4e0195b387b
files CHANGES-beta ChangeLog Makefile Makefile.in config.status configure configure.in dynodump/Makefile dynodump/Makefile.in dynodump/dynodump.c etc/sgml/sinfo.dtd lib-src/ChangeLog lib-src/Makefile.in.in lib-src/mmencode.c lib-src/update-autoloads.sh lib-src/update-elc.sh lisp/ChangeLog lisp/calendar/calendar.el lisp/comint/telnet.el lisp/electric/ebuff-menu.el lisp/emulators/crisp.el lisp/emulators/tpu-edt.el lisp/games/blackbox.el lisp/games/gomoku.el lisp/ilisp/ilisp-out.el lisp/modes/cc-mode.el lisp/modes/eiffel3.el lisp/modes/hideshow.el lisp/modes/outl-mouse.el lisp/mu/mu-bbdb.el lisp/mu/std11-parse.el lisp/mu/std11.el lisp/mule/chinese-hooks.el lisp/mule/cyrillic-hooks.el lisp/mule/european-hooks.el lisp/mule/greek-hooks.el lisp/mule/hebrew-hooks.el lisp/mule/japanese-hooks.el lisp/mule/mule-category.el lisp/mule/mule-coding.el lisp/mule/thai-hooks.el lisp/packages/buff-menu.el lisp/packages/compile.el lisp/packages/icomplete.el lisp/packages/lpr.el lisp/packages/man-xref.el lisp/packages/man.el lisp/packages/ps-print.el lisp/packages/vc.el lisp/prim/events.el lisp/prim/files.el lisp/prim/glyphs.el lisp/prim/keydefs.el lisp/prim/lisp.el lisp/prim/loaddefs.el lisp/prim/loadup.el lisp/prim/minibuf.el lisp/prim/mouse.el lisp/prim/obsolete.el lisp/prim/replace.el lisp/prim/simple.el lisp/psgml/ChangeLog lisp/psgml/psgml-parse.el lisp/sunpro/sunpro-init.el lisp/term/AT386.el lisp/term/linux.el lisp/term/lk201.el lisp/term/news.el lisp/term/tvi970.el lisp/term/xterm.el lisp/tl/emu-x20.el lisp/tl/emu-xemacs.el lisp/tl/emu.el lisp/tl/filename.el lisp/tl/richtext.el lisp/tl/tl-str.el lisp/tm/gnus-art-mime.el lisp/tm/gnus-charset.el lisp/tm/mime-setup.el lisp/tm/tm-bbdb.el lisp/tm/tm-def.el lisp/tm/tm-edit.el lisp/tm/tm-ew-d.el lisp/tm/tm-ew-e.el lisp/tm/tm-mh-e.el lisp/tm/tm-parse.el lisp/tm/tm-play.el lisp/tm/tm-rmail.el lisp/tm/tm-setup.el lisp/tm/tm-view.el lisp/tm/tm-vm.el lisp/utils/bench.el lisp/utils/mail-extr.el lisp/version.el lisp/vm/vm.el lisp/x11/x-init.el lisp/x11/x-iso8859-1.el lisp/x11/x-menubar.el lisp/x11/x-win-sun.el man/ChangeLog man/Makefile man/lispref/numbers.texi man/tm/Makefile man/tm/gnus-mime-en.sgml man/tm/gnus-mime-en.texi man/tm/gnus-mime-ja.sgml man/tm/gnus-mime-ja.texi man/tm/tm-edit-en.sgml man/tm/tm-edit-en.texi man/tm/tm-edit-ja.sgml man/tm/tm-edit-ja.texi man/tm/tm-en.sgml man/tm/tm-en.texi man/tm/tm-ja.sgml man/tm/tm-ja.texi man/tm/tm-mh-e-en.sgml man/tm/tm-mh-e-en.texi man/tm/tm-mh-e-ja.sgml man/tm/tm-mh-e-ja.texi man/tm/tm-view-en.sgml man/tm/tm-view-en.texi man/tm/tm-view-ja.sgml man/tm/tm-view-ja.texi src/ChangeLog src/EmacsShell-sub.c src/EmacsShell.c src/Makefile.in.in src/bitmaps.h src/cmds.c src/config.h.in src/console-tty.h src/console-x.h src/device-x.c src/dgif_lib.c src/doprnt.c src/emacsfns.h src/eval.c src/event-Xt.c src/event-stream.c src/fileio.c src/frame.h src/glyphs-x.c src/glyphs.c src/keymap.c src/lisp.h src/lread.c src/lstream.c src/mem-limits.h src/mule-canna.c src/mule-charset.c src/mule-charset.h src/mule-coding.c src/ralloc.c src/redisplay-tty.c src/s/sol2.h src/s/sunos4-0-shr.h src/specifier.c src/syssignal.h src/vm-limit.c src/window.h src/xmu.c src/xselect.c
diffstat 162 files changed, 19515 insertions(+), 3309 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 09:03:47 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 09:04:33 2007 +0200
@@ -1,4 +1,23 @@
 							-*- indented-text -*-
+to 20.0 beta32
+-- InfoDock man.el
+-- Fix long-standing race condition in timeout handling (courtesy of David
+   Moore).
+-- next-line-add-newlines now defaults to nil
+-- tm-7.97
+-- charset renames for Mule 2.4 and TM compatibility.
+-- ANSIfication of the code base is mostly completed.
+-- Random bug fixes.
+-- Default JPEG image loading is now old tempfile code, but should work again.
+-- Keysyms now use dashes instead of underscores for compatibility.
+-- Miscellaneous bug fixes courtesy of Christoph Wedler
+-- mic-paren.el courtesy of Mikael Sjdin
+-- lpr.el/ps-print.el - Allow dynamic expansion of
+   lpr-switches/ps-lpr-switches.
+-- Lisp Bug fixes
+-- Install info files compressed (courtesy of Joseph J Nuspl)
+-- Default locking for Linux is now .lock locking
+
 to 20.0 beta31
 
 -- EDT/TPU modes synched from GNU Emacs, should actually work for the first
--- a/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,21 @@
+Wed Dec 18 20:22:08 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* configure.in: Reformat.  Fix shared include file rename
+	problem.
+
+	* configure: Reformat.  Fix shared include file rename problem.
+
+	* dynodump/dynodump.c (__EXTENSIONS__): Define it.
+
+Thu Dec 12 13:19:00 1996  Joseph J Nuspl  <nuspl@nvwls.cc.purdue.edu>
+
+	* Makefile.in (install-arch-indep): Install infofiles gzipped by
+	default.
+
+Tue Dec 10 19:25:25 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* CHANGES-beta: XEmacs 20.0-b31 is released.
+
 Tue Dec 10 18:33:19 1996  Rod Whitby  <rwhitby@asc.sps.mot.com>
 
 	* info/vhdl-mode.info: New file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,609 @@
+# Generated automatically from Makefile.in by configure.
+# DIST: This is the distribution Makefile for XEmacs.  configure can
+# DIST: make most of the changes to this file you might want, so try
+# DIST: that first.
+
+# This file is part of XEmacs.
+
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# make all	to compile and build XEmacs.
+# make install	to install it.
+# make TAGS	to update tags tables.
+#
+# make clean  or  make mostlyclean
+#      Delete all files from the current directory that are normally
+#      created by building the program.	 Don't delete the files that
+#      record the configuration.  Also preserve files that could be made
+#      by building, but normally aren't because the distribution comes
+#      with them.
+#
+#      Delete `.dvi' files here if they are not part of the distribution.
+# 
+# make distclean
+#      Delete all files from the current directory that are created by
+#      configuring or building the program.  If you have unpacked the
+#      source and built the program without creating any other files,
+#      `make distclean' should leave only the files that were in the
+#      distribution.
+# 
+# make realclean
+#      Delete everything from the current directory that can be
+#      reconstructed with this Makefile.  This typically includes
+#      everything deleted by distclean, plus more: C source files
+#      produced by Bison, tags tables, info files, and so on.
+#
+# make extraclean
+#      Still more severe - delete backup and autosave files, too.
+
+SHELL = /bin/sh
+
+
+# ==================== Things `configure' Might Edit ====================
+
+CC=gcc
+CPP=gcc -E -I/usr/X11R6/include
+C_SWITCH_SYSTEM= -DFUNCPROTO=11 -DNARROWPROTO -D_BSD_SOURCE 
+LN_S=ln -s
+CFLAGS=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2
+C_SWITCH_X_SITE=-I/usr/X11R6/include
+LD_SWITCH_X_SITE=-L/usr/X11R6/lib
+YACC=bison -y
+
+### These help us choose version- and architecture-specific directories
+### to install files in.
+
+### This should be the number of the XEmacs version we're building,
+### like `19.12' or `19.13'.
+version=20.0-b32
+
+### This should be the name of the configuration we're building XEmacs
+### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
+configuration=i586-unknown-linux2.0.27
+
+### Libraries which should be edited into lib-src/Makefile.
+libsrc_libs= -lgcc -lc -lgcc /usr/lib/crtn.o 
+
+# ==================== Where To Install Things ====================
+
+# The default location for installation.  Everything is placed in
+# subdirectories of this directory.  The default values for many of
+# the variables below are expressed in terms of this one, so you may
+# not need to change them.  This defaults to /usr/local.
+prefix=/usr/local
+
+# Like `prefix', but used for architecture-specific files.
+exec_prefix=${prefix}
+
+# Where to install XEmacs and other binaries that people will want to
+# run directly (like etags).
+bindir=${exec_prefix}/bin
+
+# Where to install architecture-independent data files.	 ${lispdir}
+# and ${etcdir} are subdirectories of this.
+datadir=${prefix}/lib
+
+# Where to install and expect the files that XEmacs modifies as it
+# runs.	 These files are all architecture-independent. Right now, the
+# only such data is the locking directory; ${lockdir} is a
+# subdirectory of this.
+statedir=${prefix}/lib
+
+# Where to install and expect executable files to be run by XEmacs
+# rather than directly by users, and other architecture-dependent
+# data.	 ${archlibdir} is a subdirectory of this.
+libdir=${exec_prefix}/lib
+
+# Where to install XEmacs's man pages, and what extension they should have.
+mandir=${prefix}/man/man1
+manext=.1
+
+# Where to install and expect the info files describing XEmacs.	In the
+# past, this defaulted to a subdirectory of ${prefix}/lib/xemacs, but
+# since there are now many packages documented with the texinfo
+# system, it is inappropriate to imply that it is part of XEmacs.
+infodir=${prefix}/lib/xemacs-${version}/info
+
+# This is set to 'yes' if the user specified the --infodir flag at
+# configuration time.
+infodir_user_defined=no
+
+# Where to find the source code.  The source code for XEmacs's C kernel is
+# expected to be in ${srcdir}/src, and the source code for XEmacs's
+# utility programs is expected to be in ${srcdir}/lib-src.  This is
+# set by the configure script's `--srcdir' option.
+srcdir=/usr/local/xemacs/xemacs-20.0-b32
+
+# Tell make where to find source files; this is needed for the makefiles.
+VPATH=/usr/local/xemacs/xemacs-20.0-b32
+
+# ==================== XEmacs-specific directories ====================
+
+# These variables hold the values XEmacs will actually use.  They are
+# based on the values of the standard Make variables above.
+
+# Where to install the lisp files distributed with
+# XEmacs.  This includes the XEmacs version, so that the
+# lisp files for different versions of XEmacs will install
+# themselves in separate directories.
+lispdir=${datadir}/xemacs-${version}/lisp
+
+# This is set to 'yes' if the user specified the --lispdir or
+# --datadir flag at configuration time.
+lispdir_user_defined=no
+
+# Directories XEmacs should search for lisp files specific
+# to this site (i.e. customizations), before consulting
+# ${lispdir}.  This should be a colon-separated list of
+# directories.
+sitelispdir=${datadir}/xemacs/site-lisp
+
+# Where XEmacs will search for its lisp files while
+# building.  This is only used during the process of
+# compiling XEmacs, to help XEmacs find its lisp files
+# before they've been installed in their final location.
+# It's usually identical to lispdir, except that the
+# entry for the directory containing the installed lisp
+# files has been replaced with ../lisp.  This should be a
+# colon-separated list of directories.
+buildlispdir=${srcdir}/lisp
+
+# Where to install the other architecture-independent
+# data files distributed with XEmacs (like the tutorial,
+# the cookie recipes and the Zippy database). This path
+# usually contains the XEmacs version number, so the data
+# files for multiple versions of XEmacs may be installed
+# at once.
+etcdir=${datadir}/xemacs-${version}/etc
+
+# This is set to 'yes' if the user specified the --etcdir or
+# --datadir flag at configuration time.
+etcdir_user_defined=no
+
+# Where to create and expect the locking directory, where
+# the XEmacs locking code keeps track of which files are
+# currently being edited.
+lockdir=${statedir}/xemacs/lock
+
+# This is set to 'yes' if the user specified the --lockdir or
+# --statedir flag at configuration time.
+lockdir_user_defined=no
+
+# Where to put executables to be run by XEmacs rather than
+# the user.  This path usually includes the XEmacs version
+# and configuration name, so that multiple configurations
+# for multiple versions of XEmacs may be installed at
+# once.
+archlibdir=${libdir}/xemacs-${version}/${configuration}
+
+# This is set to 'yes' if the user specified any of --exec-prefix,
+# --libdir or --archlibdir at configuration time.
+archlibdir_user_defined=no
+
+# ==================== Utility Programs for the Build ====================
+
+# Allow the user to specify the install program.
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+
+# ============================= Targets ==============================
+
+# Subdirectories to make recursively.  `lisp' is not included
+# because the compiled lisp files are part of the distribution
+# and you cannot remake them without installing XEmacs first.
+MAKE_SUBDIR = lib-src lwlib dynodump src
+
+# Subdirectories that can be made recursively.
+SUBDIR = ${MAKE_SUBDIR} man
+
+# The makefiles of the directories in $SUBDIR.
+SUBDIR_MAKEFILES = lib-src/Makefile lwlib/Makefile dynodump/Makefile src/Makefile
+
+# Subdirectories to install, and where they'll go.
+# lib-src's makefile knows how to install it, so we don't do that here.
+# When installing the info files, we need to do special things to
+# avoid nuking an existing dir file, so we don't do that here;
+# instead, we have written out explicit code in the `install' targets.
+COPYDIR = ${srcdir}/etc ${srcdir}/lisp
+COPYDESTS = ${etcdir} ${lispdir}
+
+.NO_PARALLEL:	src/paths.h src/Emacs.ad.h ${MAKE_SUBDIR} dump-elcs
+
+all:	src/paths.h src/Emacs.ad.h ${MAKE_SUBDIR}
+
+# Convenience target for XEmacs beta testers
+beta:	clean all-elc
+
+# Build XEmacs and recompile out-of-date and missing .elc files along
+# the way.
+all-elc all-elcs:  src/paths.h src/Emacs.ad.h lib-src lwlib dump-elcs src
+	sh ${srcdir}/lib-src/update-elc.sh
+
+# Sub-target for all-elc.
+dump-elc dump-elcs:  FRC.dump-elcs
+	cd src; $(MAKE) dump-elcs $(MFLAGS) \
+		CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
+
+autoloads:	src
+	sh ${srcdir}/lib-src/update-autoloads.sh
+
+# We force the rebuilding of src/paths.h because the user might give
+# different values for the various directories.  Since we use
+# move-if-change, src/paths.h only actually changes if the user did
+# something notable, so the only unnecessary work we do is in building
+# src/paths.h.tmp, which isn't much.  Note that sed is not in /bin on
+# 386bsd.
+src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC.src.paths.h
+	@echo "Producing \`src/paths.h' from \`src/paths.h.in'."
+	-rm -f src/paths.h.tmp
+	@cp ${srcdir}/src/paths.h.in src/paths.h.tmp
+	-chmod 0644 src/paths.h.tmp
+	@echo '#define PATH_PREFIX "${prefix}"' >> src/paths.h.tmp
+	@if [ x"${lispdir_user_defined}" = x"yes" ]; then \
+	  echo '#define PATH_LOADSEARCH "${lispdir}"' >> src/paths.h.tmp;\
+	else \
+	  echo '/* #define PATH_LOADSEARCH "${lispdir}" */' >>src/paths.h.tmp;\
+	fi
+	@if [ x"${archlibdir_user_defined}" = x"yes" ]; then \
+	  echo '#define PATH_EXEC "${archlibdir}"' >> src/paths.h.tmp ;\
+	else \
+	  echo '/* #define PATH_EXEC "${archlibdir}" */' >> src/paths.h.tmp ;\
+	fi
+	@if [ x"${etcdir_user_defined}" = x"yes" ]; then \
+	  echo '#define PATH_DATA "${etcdir}"' >> src/paths.h.tmp ;\
+	else \
+	  echo '/* #define PATH_DATA "${etcdir}" */' >> src/paths.h.tmp ;\
+	fi
+	@if [ x"${lockdir_user_defined}" = x"yes" ]; then \
+	  echo '#define PATH_LOCK "${lockdir}"' >> src/paths.h.tmp ;\
+	else \
+	  echo '/* #define PATH_LOCK "${lockdir}" */' >> src/paths.h.tmp ;\
+	fi
+	@if [ x"${infodir_user_defined}" = x"yes" ]; then \
+	  echo '#define PATH_INFO "${infodir}"' >> src/paths.h.tmp ;\
+	else \
+	  echo '/* #define PATH_INFO "${infodir}" */' >> src/paths.h.tmp ;\
+	fi
+	@sh ${srcdir}/move-if-change src/paths.h.tmp src/paths.h
+
+# We have to force the building of Emacs.ad.h as well in order to get it
+# updated correctly when VPATH is being used.  Since we use move-if-change,
+# it will only actually change if the user modified ${etcdir}/Emacs.ad.
+src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad
+	@echo "Producing \`src/Emacs.ad.h' from \`etc/Emacs.ad'."
+	-rm -f src/Emacs.ad.h
+	@(echo "/*	Do not edit this file!" ; \
+	  echo "  	Automatically generated from ${srcdir}/etc/Emacs.ad" ; \
+	  echo " */" ; \
+	  /bin/sh ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \
+	  src/Emacs.ad.h
+
+src:	lib-src lwlib dynodump FRC.src
+lib-src: FRC.lib-src
+lwlib:	FRC.lwlib
+dynodump: FRC.dynodump
+
+.RECURSIVE: ${SUBDIR}
+
+${SUBDIR}: ${SUBDIR_MAKEFILES} src/config.h FRC
+	cd $@; $(MAKE) all $(MFLAGS) \
+		CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
+
+Makefile: ${srcdir}/Makefile.in config.status
+	./config.status
+
+src/Makefile: ${srcdir}/src/Makefile.in.in config.status
+	./config.status
+
+lib-src/Makefile: ${srcdir}/lib-src/Makefile.in.in config.status
+	./config.status
+
+lwlib/Makefile: ${srcdir}/lwlib/Makefile.in.in config.status
+	./config.status
+
+dynodump/Makefile: ${srcdir}/dynodump/Makefile.in.in config.status
+	./config.status
+
+src/config.h: ${srcdir}/src/config.h.in
+	./config.status
+
+# ==================== Installation ====================
+
+## If we let lib-src do its own installation, that means we
+## don't have to duplicate the list of utilities to install in
+## this Makefile as well.
+
+## On AIX, use tar xBf.
+## On Xenix, use tar xpf.
+
+.PHONY: install install-arch-dep install-arch-indep mkdir
+
+## We delete each directory in ${COPYDESTS} before we copy into it;
+## that way, we can reinstall over directories that have been put in
+## place with their files read-only (perhaps because they are checked
+## into RCS).  In order to make this safe, we make sure that the
+## source exists and is distinct from the destination.
+
+## FSF doesn't depend on `all', but rather on ${MAKE_SUBDIR}, so that
+## they "won't ever modify src/paths.h".  But that means you can't do
+## 'make install' right off the bat because src/paths.h won't exist.
+## And, in XEmacs case, src/Emacs.ad.h won't exist either.  I also
+## don't see the point in avoiding modifying paths.h.  It creates an
+## inconsistency in the build process.  So we go ahead and depend on
+## all.  --cet
+
+install: all install-arch-dep install-arch-indep;
+
+install-arch-dep: mkdir
+	(cd lib-src && \
+	  $(MAKE) install $(MFLAGS) prefix=${prefix} \
+	    exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \
+	    archlibdir=${archlibdir})
+	if [ `(cd ${archlibdir}; /bin/pwd)` != `(cd ./lib-src; /bin/pwd)` ]; \
+	then \
+	   ${INSTALL_DATA} lib-src/DOC ${archlibdir}/DOC ; \
+	   for subdir in `find ${archlibdir} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \
+	     rm -rf $${subdir}/RCS $${subdir}/CVS $${subdir}/SCCS ; \
+	     rm -f  $${subdir}/\#* $${subdir}/*~ ; \
+	   done ; \
+	else true; fi
+	${INSTALL_PROGRAM} src/xemacs ${bindir}/xemacs-${version}
+	-chmod 0755 ${bindir}/xemacs-${version}
+	rm -f ${bindir}/xemacs
+	(cd ${bindir} ; ${LN_S} xemacs-${version} ./xemacs)
+
+install-arch-indep: mkdir
+	-set ${COPYDESTS} ; \
+	 for dir in ${COPYDIR} ; do \
+	   if [ `(cd $$1 && pwd)` != `(cd $${dir} && pwd)` ] ; then \
+	     echo "rm -rf $$1" ; \
+	   fi ; \
+	   shift ; \
+	 done
+	-set ${COPYDESTS} ; \
+	 mkdir ${COPYDESTS} ; \
+	 for dir in ${COPYDIR} ; do \
+	   dest=$$1 ; shift ; \
+	   [ -d $${dir} ] \
+	   && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
+	   && (echo "Copying $${dir}..." ; \
+	       (cd $${dir}; tar -cf - . )|(cd $${dest};umask 022; tar -xf - );\
+	       chmod 0755 $${dest}; \
+	       for subdir in `find $${dest} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \
+		 rm -rf $${subdir}/RCS $${subdir}/CVS $${subdir}/SCCS ; \
+		 rm -f  $${subdir}/\#* $${subdir}/*~ ; \
+	       done) ; \
+	 done
+	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
+	then \
+	  (cd ${srcdir}/info ; \
+	   if [ ! -f ${infodir}/dir ] && [ -f dir ]; then \
+	     ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir ; \
+	   fi ; \
+	   for f in ange-ftp* cc-mode* cl* dired* ediff* external-widget* \
+		    forms* gnus* hyperbole* ilisp* info* internals* \
+		    ispell* lispref* mailcrypt* message* mh-e* \
+                    new-users-guide* oo-browser* pcl-cvs* psgml* rmail* \
+                    standards* supercite* term.* termcap* texinfo* viper* \
+                    vm* w3* xemacs* ; do \
+	     ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f ; \
+	     chmod 0644 ${infodir}/$$f; \
+	     gzip -9 ${infodir}/$$f; \
+	   done); \
+	else true; fi
+	cd ${srcdir}/etc; for page in xemacs etags ctags gnuserv \
+				      gnuclient gnuattach gnudoit ; do \
+	  ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${mandir}/$${page}${manext} ; \
+	  chmod 0644 ${mandir}/$${page}${manext} ; \
+	done
+
+MAKEPATH=./lib-src/make-path
+### Build all the directories we're going to install XEmacs in.	Since
+### we may be creating several layers of directories (for example,
+### /usr/local/lib/xemacs-19.13/mips-dec-ultrix4.2), we use make-path
+### instead of mkdir.  Not all systems' mkdirs have the `-p' flag.
+mkdir: FRC.mkdir
+	${MAKEPATH} ${COPYDESTS} ${lockdir} ${infodir} ${mandir} \
+	  ${bindir} ${datadir} ${libdir} ${sitelispdir}
+	-chmod 0777 ${lockdir}
+
+### Delete all the installed files that the `install' target would
+### create (but not the noninstalled files such as `make all' would
+### create).
+###
+### Don't delete the lisp and etc directories if they're in the source tree.
+#### This target has not been updated in sometime and until it is it
+#### would be extremely dangerous for anyone to use it.
+#uninstall:
+#	(cd lib-src; 					\
+#	 $(MAKE) $(MFLAGS) uninstall			\
+#	    prefix=${prefix} exec_prefix=${exec_prefix}	\
+#	    bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir})
+#	for dir in ${lispdir} ${etcdir} ; do 		\
+#	  case `(cd $${dir} ; pwd)` in			\
+#	    `(cd ${srcdir} ; pwd)`* ) ;;		\
+#	    * ) rm -rf $${dir} ;;			\
+#	  esac ;					\
+#	  case $${dir} in				\
+#	    ${datadir}/xemacs/${version}/* )		\
+#	      rm -rf ${datadir}/xemacs/${version}	\
+#	    ;;						\
+#	  esac ;					\
+#	done
+#	(cd ${infodir} && rm -f cl* xemacs* forms* info* vip*)
+#	(cd ${mandir} && rm -f xemacs.1 etags.1 ctags.1 gnuserv.1)
+#	(cd ${bindir} && rm -f xemacs-${version} xemacs)
+
+
+### Some makes seem to remember that they've built something called FRC,
+### so you can only use a given FRC once per makefile.
+FRC FRC.src.paths.h FRC.src FRC.lib-src FRC.lwlib FRC.mkdir FRC.dump-elcs:
+FRC.dynodump:
+FRC.mostlyclean FRC.clean FRC.distclean FRC.realclean:
+
+# ==================== Cleaning up and miscellanea ====================
+
+.PHONY: mostlyclean clean distclean realclean extraclean
+
+### `mostlyclean'
+###      Like `clean', but may refrain from deleting a few files that people
+###      normally don't want to recompile.  For example, the `mostlyclean'
+###      target for GCC does not delete `libgcc.a', because recompiling it
+###      is rarely necessary and takes a lot of time.
+mostlyclean: FRC.mostlyclean
+	(cd src      && $(MAKE) $(MFLAGS) mostlyclean)
+	(cd lib-src  && $(MAKE) $(MFLAGS) mostlyclean)
+	(cd lwlib    && $(MAKE) $(MFLAGS) mostlyclean)
+	(cd dynodump && $(MAKE) $(MFLAGS) mostlyclean)
+	-(cd man     && $(MAKE) $(MFLAGS) mostlyclean)
+
+### `clean'
+###      Delete all files from the current directory that are normally
+###      created by building the program.  Don't delete the files that
+###      record the configuration.  Also preserve files that could be made
+###      by building, but normally aren't because the distribution comes
+###      with them.
+### 
+###      Delete `.dvi' files here if they are not part of the distribution.
+clean: FRC.clean
+	(cd src      && $(MAKE) $(MFLAGS) clean)
+	(cd lib-src  && $(MAKE) $(MFLAGS) clean)
+	(cd lwlib    && $(MAKE) $(MFLAGS) clean)
+	(cd dynodump && $(MAKE) $(MFLAGS) clean)
+	-(cd man     && $(MAKE) $(MFLAGS) clean)
+
+### `distclean'
+###      Delete all files from the current directory that are created by
+###      configuring or building the program.  If you have unpacked the
+###      source and built the program without creating any other files,
+###      `make distclean' should leave only the files that were in the
+###      distribution.
+top_distclean=\
+	rm -f config.status config-tmp-* build-install ; \
+	rm -f Makefile ${SUBDIR_MAKEFILES}; \
+	(cd lock && rm -f *)
+
+distclean: FRC.distclean
+	(cd src      && $(MAKE) $(MFLAGS) distclean)
+	(cd lib-src  && $(MAKE) $(MFLAGS) distclean)
+	(cd lwlib    && $(MAKE) $(MFLAGS) distclean)
+	(cd dynodump && $(MAKE) $(MFLAGS) distclean)
+	-(cd man     && $(MAKE) $(MFLAGS) distclean)
+	-${top_distclean}
+
+### `realclean'
+###      Delete everything from the current directory that can be
+###      reconstructed with this Makefile.  This typically includes
+###      everything deleted by distclean, plus more: C source files
+###      produced by Bison, tags tables, info files, and so on.
+### 
+###      One exception, however: `make realclean' should not delete
+###      `configure' even if `configure' can be remade using a rule in the
+###      Makefile.  More generally, `make realclean' should not delete
+###      anything that needs to exist in order to run `configure' and then
+###      begin to build the program.
+realclean: FRC.realclean
+	(cd src      && $(MAKE) $(MFLAGS) realclean)
+	(cd lib-src  && $(MAKE) $(MFLAGS) realclean)
+	(cd lwlib    && $(MAKE) $(MFLAGS) realclean)
+	(cd dynodump && $(MAKE) $(MFLAGS) realclean)
+	-(cd man     && $(MAKE) $(MFLAGS) realclean)
+	-${top_distclean}
+
+### This doesn't actually appear in the coding standards, but Karl
+### says GCC supports it, and that's where the configuration part of
+### the coding standards seem to come from.  It's like distclean, but
+### it deletes backup and autosave files too.
+extraclean:
+	(cd src      && $(MAKE) $(MFLAGS) extraclean)
+	(cd lib-src  && $(MAKE) $(MFLAGS) extraclean)
+	(cd lwlib    && $(MAKE) $(MFLAGS) extraclean)
+	(cd dynodump && $(MAKE) $(MFLAGS) extraclean)
+	-(cd man     && $(MAKE) $(MFLAGS) extraclean)
+	-rm -f *~ \#*
+	-${top_distclean}
+
+### Unlocking and relocking.  The idea of these productions is to reduce
+### hassles when installing an incremental tar of XEmacs.  Do `make unlock'
+### before unlocking the file to take the write locks off all sources so
+### that tar xvof will overwrite them without fuss.  Then do `make relock'
+### afterward so that VC mode will know which files should be checked in
+### if you want to mung them.
+###
+### Note: it's no disaster if these productions miss a file or two; tar
+### and VC will swiftly let you know if this happens, and it is easily
+### corrected.
+SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \
+	README build-install.in configure make-dist move-if-change
+
+.PHONY: unlock relock
+
+unlock:
+	chmod u+w $(SOURCES) cpp/*
+	-(cd elisp && chmod u+w Makefile README *.texi)
+	(cd etc     && $(MAKE) $(MFLAGS) unlock)
+	(cd lib-src && $(MAKE) $(MFLAGS) unlock)
+	(cd lisp    && $(MAKE) $(MFLAGS) unlock)
+	(cd lisp/term && chmod u+w README *.el)
+	(cd man && chmod u+w *texi* ChangeLog split-man)
+	(cd lwlib && chmod u+w *.[ch] Makefile.in.in)
+	(cd src && $(MAKE) $(MFLAGS) unlock)
+
+relock:
+	chmod u-w $(SOURCES) cpp/*
+	-(cd elisp && chmod u-w Makefile README *.texi)
+	(cd etc     && $(MAKE) $(MFLAGS) relock)
+	(cd lib-src && $(MAKE) $(MFLAGS) relock)
+	(cd lisp    && $(MAKE) $(MFLAGS) relock)
+	(cd lisp/term && chmod u+w README *.el)
+	(cd man && chmod u+w *texi* ChangeLog split-man)
+	(cd lwlib && chmod u+w *.[ch] Makefile.in.in)
+	(cd src && $(MAKE) $(MFLAGS) relock)
+
+.PHONY: TAGS tags check dist
+
+TAGS tags:
+	@echo "If you don't have a copy of etags around, then do 'make lib-src' first."
+	@PATH=`pwd`/lib-src:$$PATH HOME=/-=-; export PATH HOME; \
+	  echo "Using etags from `which etags`."
+	PATH=`pwd`/lib-src:$$PATH ; export PATH; cd ${srcdir} ; \
+	etags --regex='/[ 	]*DEF\(VAR\|INE\)_[A-Z_]+[ 	]*([ 	]*"\([^"]+\)"/\2/' src/*.[ch] ; \
+	for d in `find lisp -name SCCS -prune -o -name RCS -prune -o -type d -print` ; do \
+	  (cd $$d ; if [ "`echo *.el`" != "*.el" ] ; then etags -a -o ${srcdir}/TAGS *.el ; fi ) ; \
+	done ; \
+	etags -a lwlib/*.[ch]
+
+check:
+	@echo "We don't have any automated tests for XEmacs yet."
+
+dist:
+	cd ${srcdir} && make-dist
+
+.PHONY: info dvi
+force-info:
+info: force-info
+	cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@
+dvi:
+	cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@
+
+# Fix up version information in executables (Solaris-only)
+mcs:
+	date=`LANG=C LC_ALL=C date -u '+%e %b %Y'`; \
+	ident="@(#)RELEASE VERSION XEmacs ${version} $${date}"; \
+	for f in `file lib-src/* src/xemacs | grep ELF | sed -e 's/:.*//'`; do \
+	  mcs -da "$${ident} `echo $${f} | sed 's/.*\///'`" $${f}; \
+	done
--- a/Makefile.in	Mon Aug 13 09:03:47 2007 +0200
+++ b/Makefile.in	Mon Aug 13 09:04:33 2007 +0200
@@ -401,6 +401,7 @@
                     vm* w3* xemacs* ; do \
 	     ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f ; \
 	     chmod 0644 ${infodir}/$$f; \
+	     gzip -9 ${infodir}/$$f; \
 	   done); \
 	else true; fi
 	cd ${srcdir}/etc; for page in xemacs etags ctags gnuserv \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config.status	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,698 @@
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host altair.xemacs.org:
+#
+# ./configure  --with-sound=no --with-xface=yes --error-checking=all --debug=yes --with-mule=yes --cflags=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2 --run-in-place=yes --with-offix=yes --with-png=yes
+
+ac_cs_usage="Usage: config.status [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo running ${CONFIG_SHELL-/bin/sh} ./configure  --with-sound=no --with-xface=yes --error-checking=all --debug=yes --with-mule=yes --cflags=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2 --run-in-place=yes --with-offix=yes --with-png=yes --no-create
+    exec ${CONFIG_SHELL-/bin/sh} ./configure  --with-sound=no --with-xface=yes --error-checking=all --debug=yes --with-mule=yes --cflags=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2 --run-in-place=yes --with-offix=yes --with-png=yes --no-create ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "config.status generated by autoconf version 1.11"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "$ac_cs_usage"; exit 0 ;;
+  *) echo "$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+trap 'rm -fr Makefile lib-src/Makefile.in src/Makefile.in lwlib/Makefile.in dynodump/Makefile.in src/config.h conftest*; exit 1' 1 2 15
+LN_S='ln -s'
+CC='gcc'
+CPP='gcc -E -I/usr/X11R6/include'
+RANLIB='ranlib'
+INSTALL='/usr/bin/install -c'
+INSTALL_PROGRAM='${INSTALL}'
+INSTALL_DATA='${INSTALL} -m 644'
+YACC='bison -y'
+SET_MAKE=''
+ALLOCA=''
+version='20.0-b32'
+configuration='i586-unknown-linux2.0.27'
+canonical='i586-unknown-linux2.0.27'
+srcdir='/usr/local/xemacs/xemacs-20.0-b32'
+prefix='/usr/local'
+exec_prefix='${prefix}'
+bindir='${exec_prefix}/bin'
+datadir='${prefix}/lib'
+statedir='${prefix}/lib'
+libdir='${exec_prefix}/lib'
+mandir='${prefix}/man/man1'
+infodir='${prefix}/lib/xemacs-${version}/info'
+infodir_user_defined='no'
+lispdir='${datadir}/xemacs-${version}/lisp'
+lispdir_user_defined='no'
+sitelispdir='${datadir}/xemacs/site-lisp'
+etcdir='${datadir}/xemacs-${version}/etc'
+etcdir_user_defined='no'
+lockdir='${statedir}/xemacs/lock'
+lockdir_user_defined='no'
+archlibdir='${libdir}/xemacs-${version}/${configuration}'
+archlibdir_user_defined='no'
+docdir=''
+bitmapdir=''
+c_switch_system=' -DFUNCPROTO=11 -DNARROWPROTO -D_BSD_SOURCE '
+c_switch_machine=' '
+libsrc_libs=' -lgcc -lc -lgcc /usr/lib/crtn.o '
+LD_SWITCH_X_SITE='-L/usr/X11R6/lib'
+LD_SWITCH_X_SITE_AUX=''
+C_SWITCH_X_SITE='-I/usr/X11R6/include'
+LD_SWITCH_SITE=''
+C_SWITCH_SITE=''
+CFLAGS='-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2'
+native_sound_lib=''
+machfile='m/intel386.h'
+opsysfile='s/linux.h'
+dynodump_arch=''
+internal_makefile_list='Makefile lib-src/Makefile.in src/Makefile.in lwlib/Makefile.in dynodump/Makefile.in'
+LIBS=' -lX11      -lgcc -lc -lgcc /usr/lib/crtn.o   -lm'
+top_srcdir=''
+ac_prsub='s%^prefix\([ 	]*\)=\([ 	]*\).*$%prefix\1=\2/usr/local%
+s%^exec_prefix\([ 	]*\)=\([ 	]*\).*$%exec_prefix\1=\2${prefix}%'
+ac_vpsub=''
+extrasub=''
+
+ac_given_srcdir=$srcdir
+
+CONFIG_FILES=${CONFIG_FILES-"$internal_makefile_list"}
+for ac_file in .. ${CONFIG_FILES}; do if test "x$ac_file" != x..; then
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+  else
+    ac_dir_suffix=
+  fi
+
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dir_suffix"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  comment_str="Generated automatically from `echo $ac_file|sed 's|.*/||'`.in by configure."
+  case "$ac_file" in
+    *.c | *.h | *.C | *.cc | *.m )  echo "/* $comment_str */" > "$ac_file" ;;
+    * )          echo "# $comment_str"     > "$ac_file" ;;
+  esac
+  sed -e "
+$ac_prsub
+$ac_vpsub
+$extrasub
+s%@LN_S@%$LN_S%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+s%@RANLIB@%$RANLIB%g
+s%@INSTALL@%$INSTALL%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@YACC@%$YACC%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@ALLOCA@%$ALLOCA%g
+s%@version@%$version%g
+s%@configuration@%$configuration%g
+s%@canonical@%$canonical%g
+s%@srcdir@%$srcdir%g
+s%@prefix@%$prefix%g
+s%@exec_prefix@%$exec_prefix%g
+s%@bindir@%$bindir%g
+s%@datadir@%$datadir%g
+s%@statedir@%$statedir%g
+s%@libdir@%$libdir%g
+s%@mandir@%$mandir%g
+s%@infodir@%$infodir%g
+s%@infodir_user_defined@%$infodir_user_defined%g
+s%@lispdir@%$lispdir%g
+s%@lispdir_user_defined@%$lispdir_user_defined%g
+s%@sitelispdir@%$sitelispdir%g
+s%@etcdir@%$etcdir%g
+s%@etcdir_user_defined@%$etcdir_user_defined%g
+s%@lockdir@%$lockdir%g
+s%@lockdir_user_defined@%$lockdir_user_defined%g
+s%@archlibdir@%$archlibdir%g
+s%@archlibdir_user_defined@%$archlibdir_user_defined%g
+s%@docdir@%$docdir%g
+s%@bitmapdir@%$bitmapdir%g
+s%@c_switch_system@%$c_switch_system%g
+s%@c_switch_machine@%$c_switch_machine%g
+s%@libsrc_libs@%$libsrc_libs%g
+s%@LD_SWITCH_X_SITE@%$LD_SWITCH_X_SITE%g
+s%@LD_SWITCH_X_SITE_AUX@%$LD_SWITCH_X_SITE_AUX%g
+s%@C_SWITCH_X_SITE@%$C_SWITCH_X_SITE%g
+s%@LD_SWITCH_SITE@%$LD_SWITCH_SITE%g
+s%@C_SWITCH_SITE@%$C_SWITCH_SITE%g
+s%@CFLAGS@%$CFLAGS%g
+s%@native_sound_lib@%$native_sound_lib%g
+s%@machfile@%$machfile%g
+s%@opsysfile@%$opsysfile%g
+s%@dynodump_arch@%$dynodump_arch%g
+s%@internal_makefile_list@%$internal_makefile_list%g
+s%@LIBS@%$LIBS%g
+s%@top_srcdir@%$top_srcdir%g
+s%@DEFS@%-DHAVE_CONFIG_H%" $ac_given_srcdir/${ac_file}.in >> $ac_file
+fi; done
+
+# These sed commands are put into ac_sed_defs when defining a macro.
+# They are broken into pieces to make the sed script easier to manage.
+# They are passed to sed as "A NAME B NAME C VALUE D", where NAME
+# is the cpp macro being defined and VALUE is the value it is being given.
+# Each defining turns into a single global substitution command.
+# Hopefully no one uses "!" as a variable value.
+# Other candidates for the sed separators, like , and @, do get used.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s!^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*!\1#\2'
+ac_dC='\3'
+ac_dD='!g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s!^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)!\1#\2define\3'
+ac_uC=' '
+ac_uD='\4!g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s!^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$!\1#\2define\3'
+ac_eC=' '
+ac_eD='!g'
+rm -f conftest.sed
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_SYS_TIMEB_H${ac_dB}HAVE_SYS_TIMEB_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SYS_TIMEB_H${ac_uB}HAVE_SYS_TIMEB_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SYS_TIMEB_H${ac_eB}HAVE_SYS_TIMEB_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SYS_TIME_H${ac_dB}HAVE_SYS_TIME_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SYS_TIME_H${ac_uB}HAVE_SYS_TIME_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SYS_TIME_H${ac_eB}HAVE_SYS_TIME_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_UNISTD_H${ac_eB}HAVE_UNISTD_H${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_UTIME_H${ac_dB}HAVE_UTIME_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_UTIME_H${ac_uB}HAVE_UTIME_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_UTIME_H${ac_eB}HAVE_UTIME_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SYS_WAIT_H${ac_dB}HAVE_SYS_WAIT_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SYS_WAIT_H${ac_uB}HAVE_SYS_WAIT_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SYS_WAIT_H${ac_eB}HAVE_SYS_WAIT_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_LIBINTL_H${ac_dB}HAVE_LIBINTL_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LIBINTL_H${ac_uB}HAVE_LIBINTL_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LIBINTL_H${ac_eB}HAVE_LIBINTL_H${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_LOCALE_H${ac_dB}HAVE_LOCALE_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LOCALE_H${ac_uB}HAVE_LOCALE_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LOCALE_H${ac_eB}HAVE_LOCALE_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_LINUX_VERSION_H${ac_dB}HAVE_LINUX_VERSION_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LINUX_VERSION_H${ac_uB}HAVE_LINUX_VERSION_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LINUX_VERSION_H${ac_eB}HAVE_LINUX_VERSION_H${ac_eC}1${ac_eD}
+${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
+${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
+${ac_eA}STDC_HEADERS${ac_eB}STDC_HEADERS${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}TIME_WITH_SYS_TIME${ac_dB}TIME_WITH_SYS_TIME${ac_dC}1${ac_dD}
+${ac_uA}TIME_WITH_SYS_TIME${ac_uB}TIME_WITH_SYS_TIME${ac_uC}1${ac_uD}
+${ac_eA}TIME_WITH_SYS_TIME${ac_eB}TIME_WITH_SYS_TIME${ac_eC}1${ac_eD}
+${ac_dA}SYS_SIGLIST_DECLARED${ac_dB}SYS_SIGLIST_DECLARED${ac_dC}1${ac_dD}
+${ac_uA}SYS_SIGLIST_DECLARED${ac_uB}SYS_SIGLIST_DECLARED${ac_uC}1${ac_uD}
+${ac_eA}SYS_SIGLIST_DECLARED${ac_eB}SYS_SIGLIST_DECLARED${ac_eC}1${ac_eD}
+${ac_dA}HAVE_STRUCT_UTIMBUF${ac_dB}HAVE_STRUCT_UTIMBUF${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STRUCT_UTIMBUF${ac_uB}HAVE_STRUCT_UTIMBUF${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STRUCT_UTIMBUF${ac_eB}HAVE_STRUCT_UTIMBUF${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
+${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
+${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
+${ac_dA}HAVE_TIMEVAL${ac_dB}HAVE_TIMEVAL${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TIMEVAL${ac_uB}HAVE_TIMEVAL${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TIMEVAL${ac_eB}HAVE_TIMEVAL${ac_eC}1${ac_eD}
+${ac_dA}HAVE_TZNAME${ac_dB}HAVE_TZNAME${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TZNAME${ac_uB}HAVE_TZNAME${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TZNAME${ac_eB}HAVE_TZNAME${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_LONG_FILE_NAMES${ac_dB}HAVE_LONG_FILE_NAMES${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LONG_FILE_NAMES${ac_uB}HAVE_LONG_FILE_NAMES${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LONG_FILE_NAMES${ac_eB}HAVE_LONG_FILE_NAMES${ac_eC}1${ac_eD}
+${ac_dA}HAVE_PTHREADS${ac_dB}HAVE_PTHREADS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_PTHREADS${ac_uB}HAVE_PTHREADS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_PTHREADS${ac_eB}HAVE_PTHREADS${ac_eC}1${ac_eD}
+${ac_dA}HAVE_XAUTH${ac_dB}HAVE_XAUTH${ac_dC}1${ac_dD}
+${ac_uA}HAVE_XAUTH${ac_uB}HAVE_XAUTH${ac_uC}1${ac_uD}
+${ac_eA}HAVE_XAUTH${ac_eB}HAVE_XAUTH${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_OFFIX_DND${ac_dB}HAVE_OFFIX_DND${ac_dC}1${ac_dD}
+${ac_uA}HAVE_OFFIX_DND${ac_uB}HAVE_OFFIX_DND${ac_uC}1${ac_uD}
+${ac_eA}HAVE_OFFIX_DND${ac_eB}HAVE_OFFIX_DND${ac_eC}1${ac_eD}
+${ac_dA}THIS_IS_X11R6${ac_dB}THIS_IS_X11R6${ac_dC}1${ac_dD}
+${ac_uA}THIS_IS_X11R6${ac_uB}THIS_IS_X11R6${ac_uC}1${ac_uD}
+${ac_eA}THIS_IS_X11R6${ac_eB}THIS_IS_X11R6${ac_eC}1${ac_eD}
+${ac_dA}HAVE_X11_XLOCALE_H${ac_dB}HAVE_X11_XLOCALE_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_X11_XLOCALE_H${ac_uB}HAVE_X11_XLOCALE_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_X11_XLOCALE_H${ac_eB}HAVE_X11_XLOCALE_H${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_LIBM${ac_dB}HAVE_LIBM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LIBM${ac_uB}HAVE_LIBM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LIBM${ac_eB}HAVE_LIBM${ac_eC}1${ac_eD}
+${ac_dA}HAVE_XPM${ac_dB}HAVE_XPM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_XPM${ac_uB}HAVE_XPM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_XPM${ac_eB}HAVE_XPM${ac_eC}1${ac_eD}
+${ac_dA}HAVE_XMU${ac_dB}HAVE_XMU${ac_dC}1${ac_dD}
+${ac_uA}HAVE_XMU${ac_uB}HAVE_XMU${ac_uC}1${ac_uD}
+${ac_eA}HAVE_XMU${ac_eB}HAVE_XMU${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_XFACE${ac_dB}HAVE_XFACE${ac_dC}1${ac_dD}
+${ac_uA}HAVE_XFACE${ac_uB}HAVE_XFACE${ac_uC}1${ac_uD}
+${ac_eA}HAVE_XFACE${ac_eB}HAVE_XFACE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_GIF${ac_dB}HAVE_GIF${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GIF${ac_uB}HAVE_GIF${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GIF${ac_eB}HAVE_GIF${ac_eC}1${ac_eD}
+${ac_dA}HAVE_JPEG${ac_dB}HAVE_JPEG${ac_dC}1${ac_dD}
+${ac_uA}HAVE_JPEG${ac_uB}HAVE_JPEG${ac_uC}1${ac_uD}
+${ac_eA}HAVE_JPEG${ac_eB}HAVE_JPEG${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_PNG${ac_dB}HAVE_PNG${ac_dC}1${ac_dD}
+${ac_uA}HAVE_PNG${ac_uB}HAVE_PNG${ac_uC}1${ac_uD}
+${ac_eA}HAVE_PNG${ac_eB}HAVE_PNG${ac_eC}1${ac_eD}
+${ac_dA}HAVE_MENUBARS${ac_dB}HAVE_MENUBARS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_MENUBARS${ac_uB}HAVE_MENUBARS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_MENUBARS${ac_eB}HAVE_MENUBARS${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SCROLLBARS${ac_dB}HAVE_SCROLLBARS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SCROLLBARS${ac_uB}HAVE_SCROLLBARS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SCROLLBARS${ac_eB}HAVE_SCROLLBARS${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_DIALOGS${ac_dB}HAVE_DIALOGS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_DIALOGS${ac_uB}HAVE_DIALOGS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_DIALOGS${ac_eB}HAVE_DIALOGS${ac_eC}1${ac_eD}
+${ac_dA}LWLIB_MENUBARS_LUCID${ac_dB}LWLIB_MENUBARS_LUCID${ac_dC}1${ac_dD}
+${ac_uA}LWLIB_MENUBARS_LUCID${ac_uB}LWLIB_MENUBARS_LUCID${ac_uC}1${ac_uD}
+${ac_eA}LWLIB_MENUBARS_LUCID${ac_eB}LWLIB_MENUBARS_LUCID${ac_eC}1${ac_eD}
+${ac_dA}LWLIB_SCROLLBARS_LUCID${ac_dB}LWLIB_SCROLLBARS_LUCID${ac_dC}1${ac_dD}
+${ac_uA}LWLIB_SCROLLBARS_LUCID${ac_uB}LWLIB_SCROLLBARS_LUCID${ac_uC}1${ac_uD}
+${ac_eA}LWLIB_SCROLLBARS_LUCID${ac_eB}LWLIB_SCROLLBARS_LUCID${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}LWLIB_DIALOGS_ATHENA${ac_dB}LWLIB_DIALOGS_ATHENA${ac_dC}1${ac_dD}
+${ac_uA}LWLIB_DIALOGS_ATHENA${ac_uB}LWLIB_DIALOGS_ATHENA${ac_uC}1${ac_uD}
+${ac_eA}LWLIB_DIALOGS_ATHENA${ac_eB}LWLIB_DIALOGS_ATHENA${ac_eC}1${ac_eD}
+${ac_dA}HAVE_H_ERRNO${ac_dB}HAVE_H_ERRNO${ac_dC}1${ac_dD}
+${ac_uA}HAVE_H_ERRNO${ac_uB}HAVE_H_ERRNO${ac_uC}1${ac_uD}
+${ac_eA}HAVE_H_ERRNO${ac_eB}HAVE_H_ERRNO${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SIGSETJMP${ac_dB}HAVE_SIGSETJMP${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SIGSETJMP${ac_uB}HAVE_SIGSETJMP${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SIGSETJMP${ac_eB}HAVE_SIGSETJMP${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}LOCALTIME_CACHE${ac_dB}LOCALTIME_CACHE${ac_dC}1${ac_dD}
+${ac_uA}LOCALTIME_CACHE${ac_uB}LOCALTIME_CACHE${ac_uC}1${ac_uD}
+${ac_eA}LOCALTIME_CACHE${ac_eB}LOCALTIME_CACHE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_INLINE${ac_dB}HAVE_INLINE${ac_dC}1${ac_dD}
+${ac_uA}HAVE_INLINE${ac_uB}HAVE_INLINE${ac_uC}1${ac_uD}
+${ac_eA}HAVE_INLINE${ac_eB}HAVE_INLINE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_ALLOCA_H${ac_dB}HAVE_ALLOCA_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ALLOCA_H${ac_uB}HAVE_ALLOCA_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ALLOCA_H${ac_eB}HAVE_ALLOCA_H${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_ALLOCA${ac_dB}HAVE_ALLOCA${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ALLOCA${ac_uB}HAVE_ALLOCA${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ALLOCA${ac_eB}HAVE_ALLOCA${ac_eC}1${ac_eD}
+${ac_dA}HAVE_STRCOLL${ac_dB}HAVE_STRCOLL${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STRCOLL${ac_uB}HAVE_STRCOLL${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STRCOLL${ac_eB}HAVE_STRCOLL${ac_eC}1${ac_eD}
+${ac_dA}SIZEOF_SHORT${ac_dB}SIZEOF_SHORT${ac_dC}2${ac_dD}
+${ac_uA}SIZEOF_SHORT${ac_uB}SIZEOF_SHORT${ac_uC}2${ac_uD}
+${ac_eA}SIZEOF_SHORT${ac_eB}SIZEOF_SHORT${ac_eC}2${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}SIZEOF_INT${ac_dB}SIZEOF_INT${ac_dC}4${ac_dD}
+${ac_uA}SIZEOF_INT${ac_uB}SIZEOF_INT${ac_uC}4${ac_uD}
+${ac_eA}SIZEOF_INT${ac_eB}SIZEOF_INT${ac_eC}4${ac_eD}
+${ac_dA}SIZEOF_LONG${ac_dB}SIZEOF_LONG${ac_dC}4${ac_dD}
+${ac_uA}SIZEOF_LONG${ac_uB}SIZEOF_LONG${ac_uC}4${ac_uD}
+${ac_eA}SIZEOF_LONG${ac_eB}SIZEOF_LONG${ac_eC}4${ac_eD}
+${ac_dA}HAVE_ACOSH${ac_dB}HAVE_ACOSH${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ACOSH${ac_uB}HAVE_ACOSH${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ACOSH${ac_eB}HAVE_ACOSH${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_ASINH${ac_dB}HAVE_ASINH${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ASINH${ac_uB}HAVE_ASINH${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ASINH${ac_eB}HAVE_ASINH${ac_eC}1${ac_eD}
+${ac_dA}HAVE_ATANH${ac_dB}HAVE_ATANH${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ATANH${ac_uB}HAVE_ATANH${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ATANH${ac_eB}HAVE_ATANH${ac_eC}1${ac_eD}
+${ac_dA}HAVE_CBRT${ac_dB}HAVE_CBRT${ac_dC}1${ac_dD}
+${ac_uA}HAVE_CBRT${ac_uB}HAVE_CBRT${ac_uC}1${ac_uD}
+${ac_eA}HAVE_CBRT${ac_eB}HAVE_CBRT${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_CLOSEDIR${ac_dB}HAVE_CLOSEDIR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_CLOSEDIR${ac_uB}HAVE_CLOSEDIR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_CLOSEDIR${ac_eB}HAVE_CLOSEDIR${ac_eC}1${ac_eD}
+${ac_dA}HAVE_DUP2${ac_dB}HAVE_DUP2${ac_dC}1${ac_dD}
+${ac_uA}HAVE_DUP2${ac_uB}HAVE_DUP2${ac_uC}1${ac_uD}
+${ac_eA}HAVE_DUP2${ac_eB}HAVE_DUP2${ac_eC}1${ac_eD}
+${ac_dA}HAVE_FMOD${ac_dB}HAVE_FMOD${ac_dC}1${ac_dD}
+${ac_uA}HAVE_FMOD${ac_uB}HAVE_FMOD${ac_uC}1${ac_uD}
+${ac_eA}HAVE_FMOD${ac_eB}HAVE_FMOD${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_FPATHCONF${ac_dB}HAVE_FPATHCONF${ac_dC}1${ac_dD}
+${ac_uA}HAVE_FPATHCONF${ac_uB}HAVE_FPATHCONF${ac_uC}1${ac_uD}
+${ac_eA}HAVE_FPATHCONF${ac_eB}HAVE_FPATHCONF${ac_eC}1${ac_eD}
+${ac_dA}HAVE_FREXP${ac_dB}HAVE_FREXP${ac_dC}1${ac_dD}
+${ac_uA}HAVE_FREXP${ac_uB}HAVE_FREXP${ac_uC}1${ac_uD}
+${ac_eA}HAVE_FREXP${ac_eB}HAVE_FREXP${ac_eC}1${ac_eD}
+${ac_dA}HAVE_FTIME${ac_dB}HAVE_FTIME${ac_dC}1${ac_dD}
+${ac_uA}HAVE_FTIME${ac_uB}HAVE_FTIME${ac_uC}1${ac_uD}
+${ac_eA}HAVE_FTIME${ac_eB}HAVE_FTIME${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_GETHOSTNAME${ac_dB}HAVE_GETHOSTNAME${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GETHOSTNAME${ac_uB}HAVE_GETHOSTNAME${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GETHOSTNAME${ac_eB}HAVE_GETHOSTNAME${ac_eC}1${ac_eD}
+${ac_dA}HAVE_GETPAGESIZE${ac_dB}HAVE_GETPAGESIZE${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GETPAGESIZE${ac_uB}HAVE_GETPAGESIZE${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GETPAGESIZE${ac_eB}HAVE_GETPAGESIZE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_GETTIMEOFDAY${ac_dB}HAVE_GETTIMEOFDAY${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GETTIMEOFDAY${ac_uB}HAVE_GETTIMEOFDAY${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GETTIMEOFDAY${ac_eB}HAVE_GETTIMEOFDAY${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_GETCWD${ac_dB}HAVE_GETCWD${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GETCWD${ac_uB}HAVE_GETCWD${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GETCWD${ac_eB}HAVE_GETCWD${ac_eC}1${ac_eD}
+${ac_dA}HAVE_GETWD${ac_dB}HAVE_GETWD${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GETWD${ac_uB}HAVE_GETWD${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GETWD${ac_eB}HAVE_GETWD${ac_eC}1${ac_eD}
+${ac_dA}HAVE_LRAND48${ac_dB}HAVE_LRAND48${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LRAND48${ac_uB}HAVE_LRAND48${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LRAND48${ac_eB}HAVE_LRAND48${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_MKDIR${ac_dB}HAVE_MKDIR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_MKDIR${ac_uB}HAVE_MKDIR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_MKDIR${ac_eB}HAVE_MKDIR${ac_eC}1${ac_eD}
+${ac_dA}HAVE_MKTIME${ac_dB}HAVE_MKTIME${ac_dC}1${ac_dD}
+${ac_uA}HAVE_MKTIME${ac_uB}HAVE_MKTIME${ac_uC}1${ac_uD}
+${ac_eA}HAVE_MKTIME${ac_eB}HAVE_MKTIME${ac_eC}1${ac_eD}
+${ac_dA}HAVE_PERROR${ac_dB}HAVE_PERROR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_PERROR${ac_uB}HAVE_PERROR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_PERROR${ac_eB}HAVE_PERROR${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_RANDOM${ac_dB}HAVE_RANDOM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_RANDOM${ac_uB}HAVE_RANDOM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_RANDOM${ac_eB}HAVE_RANDOM${ac_eC}1${ac_eD}
+${ac_dA}HAVE_REALPATH${ac_dB}HAVE_REALPATH${ac_dC}1${ac_dD}
+${ac_uA}HAVE_REALPATH${ac_uB}HAVE_REALPATH${ac_uC}1${ac_uD}
+${ac_eA}HAVE_REALPATH${ac_eB}HAVE_REALPATH${ac_eC}1${ac_eD}
+${ac_dA}HAVE_RENAME${ac_dB}HAVE_RENAME${ac_dC}1${ac_dD}
+${ac_uA}HAVE_RENAME${ac_uB}HAVE_RENAME${ac_uC}1${ac_uD}
+${ac_eA}HAVE_RENAME${ac_eB}HAVE_RENAME${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_RES_INIT${ac_dB}HAVE_RES_INIT${ac_dC}1${ac_dD}
+${ac_uA}HAVE_RES_INIT${ac_uB}HAVE_RES_INIT${ac_uC}1${ac_uD}
+${ac_eA}HAVE_RES_INIT${ac_eB}HAVE_RES_INIT${ac_eC}1${ac_eD}
+${ac_dA}HAVE_RINT${ac_dB}HAVE_RINT${ac_dC}1${ac_dD}
+${ac_uA}HAVE_RINT${ac_uB}HAVE_RINT${ac_uC}1${ac_uD}
+${ac_eA}HAVE_RINT${ac_eB}HAVE_RINT${ac_eC}1${ac_eD}
+${ac_dA}HAVE_RMDIR${ac_dB}HAVE_RMDIR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_RMDIR${ac_uB}HAVE_RMDIR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_RMDIR${ac_eB}HAVE_RMDIR${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_SELECT${ac_dB}HAVE_SELECT${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SELECT${ac_uB}HAVE_SELECT${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SELECT${ac_eB}HAVE_SELECT${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SETITIMER${ac_dB}HAVE_SETITIMER${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SETITIMER${ac_uB}HAVE_SETITIMER${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SETITIMER${ac_eB}HAVE_SETITIMER${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SETPGID${ac_dB}HAVE_SETPGID${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SETPGID${ac_uB}HAVE_SETPGID${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SETPGID${ac_eB}HAVE_SETPGID${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_SETLOCALE${ac_dB}HAVE_SETLOCALE${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SETLOCALE${ac_uB}HAVE_SETLOCALE${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SETLOCALE${ac_eB}HAVE_SETLOCALE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SETSID${ac_dB}HAVE_SETSID${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SETSID${ac_uB}HAVE_SETSID${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SETSID${ac_eB}HAVE_SETSID${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SIGBLOCK${ac_dB}HAVE_SIGBLOCK${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SIGBLOCK${ac_uB}HAVE_SIGBLOCK${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SIGBLOCK${ac_eB}HAVE_SIGBLOCK${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_SIGPROCMASK${ac_dB}HAVE_SIGPROCMASK${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SIGPROCMASK${ac_uB}HAVE_SIGPROCMASK${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SIGPROCMASK${ac_eB}HAVE_SIGPROCMASK${ac_eC}1${ac_eD}
+${ac_dA}HAVE_STRCASECMP${ac_dB}HAVE_STRCASECMP${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STRCASECMP${ac_uB}HAVE_STRCASECMP${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STRCASECMP${ac_eB}HAVE_STRCASECMP${ac_eC}1${ac_eD}
+${ac_dA}HAVE_STRERROR${ac_dB}HAVE_STRERROR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STRERROR${ac_uB}HAVE_STRERROR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STRERROR${ac_eB}HAVE_STRERROR${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_TZSET${ac_dB}HAVE_TZSET${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TZSET${ac_uB}HAVE_TZSET${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TZSET${ac_eB}HAVE_TZSET${ac_eC}1${ac_eD}
+${ac_dA}HAVE_UTIMES${ac_dB}HAVE_UTIMES${ac_dC}1${ac_dD}
+${ac_uA}HAVE_UTIMES${ac_uB}HAVE_UTIMES${ac_uC}1${ac_uD}
+${ac_eA}HAVE_UTIMES${ac_eB}HAVE_UTIMES${ac_eC}1${ac_eD}
+${ac_dA}HAVE_WAITPID${ac_dB}HAVE_WAITPID${ac_dC}1${ac_dD}
+${ac_uA}HAVE_WAITPID${ac_uB}HAVE_WAITPID${ac_uC}1${ac_uD}
+${ac_eA}HAVE_WAITPID${ac_eB}HAVE_WAITPID${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_MMAP${ac_dB}HAVE_MMAP${ac_dC}1${ac_dD}
+${ac_uA}HAVE_MMAP${ac_uB}HAVE_MMAP${ac_uC}1${ac_uD}
+${ac_eA}HAVE_MMAP${ac_eB}HAVE_MMAP${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SOCKETS${ac_dB}HAVE_SOCKETS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SOCKETS${ac_uB}HAVE_SOCKETS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SOCKETS${ac_eB}HAVE_SOCKETS${ac_eC}1${ac_eD}
+${ac_dA}SYSV_SYSTEM_DIR${ac_dB}SYSV_SYSTEM_DIR${ac_dC}1${ac_dD}
+${ac_uA}SYSV_SYSTEM_DIR${ac_uB}SYSV_SYSTEM_DIR${ac_uC}1${ac_uD}
+${ac_eA}SYSV_SYSTEM_DIR${ac_eB}SYSV_SYSTEM_DIR${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_TERMIOS${ac_dB}HAVE_TERMIOS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TERMIOS${ac_uB}HAVE_TERMIOS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TERMIOS${ac_eB}HAVE_TERMIOS${ac_eC}1${ac_eD}
+${ac_dA}NLIST_STRUCT${ac_dB}NLIST_STRUCT${ac_dC}1${ac_dD}
+${ac_uA}NLIST_STRUCT${ac_uB}NLIST_STRUCT${ac_uC}1${ac_uD}
+${ac_eA}NLIST_STRUCT${ac_eB}NLIST_STRUCT${ac_eC}1${ac_eD}
+${ac_dA}HAVE_NCURSES${ac_dB}HAVE_NCURSES${ac_dC}1${ac_dD}
+${ac_uA}HAVE_NCURSES${ac_uB}HAVE_NCURSES${ac_uC}1${ac_uD}
+${ac_eA}HAVE_NCURSES${ac_eB}HAVE_NCURSES${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_NCURSES_TERM_H${ac_dB}HAVE_NCURSES_TERM_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_NCURSES_TERM_H${ac_uB}HAVE_NCURSES_TERM_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_NCURSES_TERM_H${ac_eB}HAVE_NCURSES_TERM_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_NCURSES_CURSES_H${ac_dB}HAVE_NCURSES_CURSES_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_NCURSES_CURSES_H${ac_uB}HAVE_NCURSES_CURSES_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_NCURSES_CURSES_H${ac_eB}HAVE_NCURSES_CURSES_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_LIBDB${ac_dB}HAVE_LIBDB${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LIBDB${ac_uB}HAVE_LIBDB${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LIBDB${ac_eB}HAVE_LIBDB${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_BERKELEY_DB${ac_dB}HAVE_BERKELEY_DB${ac_dC}1${ac_dD}
+${ac_uA}HAVE_BERKELEY_DB${ac_uB}HAVE_BERKELEY_DB${ac_uC}1${ac_uD}
+${ac_eA}HAVE_BERKELEY_DB${ac_eB}HAVE_BERKELEY_DB${ac_eC}1${ac_eD}
+${ac_dA}HAVE_LIBGDBM${ac_dB}HAVE_LIBGDBM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_LIBGDBM${ac_uB}HAVE_LIBGDBM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_LIBGDBM${ac_eB}HAVE_LIBGDBM${ac_eC}1${ac_eD}
+${ac_dA}HAVE_DBM${ac_dB}HAVE_DBM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_DBM${ac_uB}HAVE_DBM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_DBM${ac_eB}HAVE_DBM${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_GNU_DBM${ac_dB}HAVE_GNU_DBM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_GNU_DBM${ac_uB}HAVE_GNU_DBM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_GNU_DBM${ac_eB}HAVE_GNU_DBM${ac_eC}1${ac_eD}
+${ac_dA}EMACS_VERSION${ac_dB}EMACS_VERSION${ac_dC}20.0-b32${ac_dD}
+${ac_uA}EMACS_VERSION${ac_uB}EMACS_VERSION${ac_uC}20.0-b32${ac_uD}
+${ac_eA}EMACS_VERSION${ac_eB}EMACS_VERSION${ac_eC}20.0-b32${ac_eD}
+${ac_dA}EMACS_CONFIGURATION${ac_dB}EMACS_CONFIGURATION${ac_dC}"i586-unknown-linux2.0.27"${ac_dD}
+${ac_uA}EMACS_CONFIGURATION${ac_uB}EMACS_CONFIGURATION${ac_uC}"i586-unknown-linux2.0.27"${ac_uD}
+${ac_eA}EMACS_CONFIGURATION${ac_eB}EMACS_CONFIGURATION${ac_eC}"i586-unknown-linux2.0.27"${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}config_machfile${ac_dB}config_machfile${ac_dC}"m/intel386.h"${ac_dD}
+${ac_uA}config_machfile${ac_uB}config_machfile${ac_uC}"m/intel386.h"${ac_uD}
+${ac_eA}config_machfile${ac_eB}config_machfile${ac_eC}"m/intel386.h"${ac_eD}
+${ac_dA}config_opsysfile${ac_dB}config_opsysfile${ac_dC}"s/linux.h"${ac_dD}
+${ac_uA}config_opsysfile${ac_uB}config_opsysfile${ac_uC}"s/linux.h"${ac_uD}
+${ac_eA}config_opsysfile${ac_eB}config_opsysfile${ac_eC}"s/linux.h"${ac_eD}
+${ac_dA}LD_SWITCH_X_SITE${ac_dB}LD_SWITCH_X_SITE${ac_dC}-L/usr/X11R6/lib${ac_dD}
+${ac_uA}LD_SWITCH_X_SITE${ac_uB}LD_SWITCH_X_SITE${ac_uC}-L/usr/X11R6/lib${ac_uD}
+${ac_eA}LD_SWITCH_X_SITE${ac_eB}LD_SWITCH_X_SITE${ac_eC}-L/usr/X11R6/lib${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}LD_SWITCH_X_SITE_AUX${ac_dB}LD_SWITCH_X_SITE_AUX${ac_dC}${ac_dD}
+${ac_uA}LD_SWITCH_X_SITE_AUX${ac_uB}LD_SWITCH_X_SITE_AUX${ac_uC}${ac_uD}
+${ac_eA}LD_SWITCH_X_SITE_AUX${ac_eB}LD_SWITCH_X_SITE_AUX${ac_eC}${ac_eD}
+${ac_dA}C_SWITCH_X_SITE${ac_dB}C_SWITCH_X_SITE${ac_dC}-I/usr/X11R6/include${ac_dD}
+${ac_uA}C_SWITCH_X_SITE${ac_uB}C_SWITCH_X_SITE${ac_uC}-I/usr/X11R6/include${ac_uD}
+${ac_eA}C_SWITCH_X_SITE${ac_eB}C_SWITCH_X_SITE${ac_eC}-I/usr/X11R6/include${ac_eD}
+${ac_dA}LD_SWITCH_SITE${ac_dB}LD_SWITCH_SITE${ac_dC}${ac_dD}
+${ac_uA}LD_SWITCH_SITE${ac_uB}LD_SWITCH_SITE${ac_uC}${ac_uD}
+${ac_eA}LD_SWITCH_SITE${ac_eB}LD_SWITCH_SITE${ac_eC}${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}C_SWITCH_SITE${ac_dB}C_SWITCH_SITE${ac_dC}${ac_dD}
+${ac_uA}C_SWITCH_SITE${ac_uB}C_SWITCH_SITE${ac_uC}${ac_uD}
+${ac_eA}C_SWITCH_SITE${ac_eB}C_SWITCH_SITE${ac_eC}${ac_eD}
+${ac_dA}UNEXEC_SRC${ac_dB}UNEXEC_SRC${ac_dC}unexelf.c${ac_dD}
+${ac_uA}UNEXEC_SRC${ac_uB}UNEXEC_SRC${ac_uC}unexelf.c${ac_uD}
+${ac_eA}UNEXEC_SRC${ac_eB}UNEXEC_SRC${ac_eC}unexelf.c${ac_eD}
+${ac_dA}HAVE_X_WINDOWS${ac_dB}HAVE_X_WINDOWS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_X_WINDOWS${ac_uB}HAVE_X_WINDOWS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_X_WINDOWS${ac_eB}HAVE_X_WINDOWS${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}HAVE_XFREE386${ac_dB}HAVE_XFREE386${ac_dC}1${ac_dD}
+${ac_uA}HAVE_XFREE386${ac_uB}HAVE_XFREE386${ac_uC}1${ac_uD}
+${ac_eA}HAVE_XFREE386${ac_eB}HAVE_XFREE386${ac_eC}1${ac_eD}
+${ac_dA}GNU_MALLOC${ac_dB}GNU_MALLOC${ac_dC}1${ac_dD}
+${ac_uA}GNU_MALLOC${ac_uB}GNU_MALLOC${ac_uC}1${ac_uD}
+${ac_eA}GNU_MALLOC${ac_eB}GNU_MALLOC${ac_eC}1${ac_eD}
+${ac_dA}REL_ALLOC${ac_dB}REL_ALLOC${ac_dC}1${ac_dD}
+${ac_uA}REL_ALLOC${ac_uB}REL_ALLOC${ac_uC}1${ac_uD}
+${ac_eA}REL_ALLOC${ac_eB}REL_ALLOC${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}LISP_FLOAT_TYPE${ac_dB}LISP_FLOAT_TYPE${ac_dC}1${ac_dD}
+${ac_uA}LISP_FLOAT_TYPE${ac_uB}LISP_FLOAT_TYPE${ac_uC}1${ac_uD}
+${ac_eA}LISP_FLOAT_TYPE${ac_eB}LISP_FLOAT_TYPE${ac_eC}1${ac_eD}
+${ac_dA}HAVE_TOOLBARS${ac_dB}HAVE_TOOLBARS${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TOOLBARS${ac_uB}HAVE_TOOLBARS${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TOOLBARS${ac_eB}HAVE_TOOLBARS${ac_eC}1${ac_eD}
+${ac_dA}HAVE_TTY${ac_dB}HAVE_TTY${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TTY${ac_uB}HAVE_TTY${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TTY${ac_eB}HAVE_TTY${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}MULE${ac_dB}MULE${ac_dC}1${ac_dD}
+${ac_uA}MULE${ac_uB}MULE${ac_uC}1${ac_uD}
+${ac_eA}MULE${ac_eB}MULE${ac_eC}1${ac_eD}
+${ac_dA}USE_GCC${ac_dB}USE_GCC${ac_dC}1${ac_dD}
+${ac_uA}USE_GCC${ac_uB}USE_GCC${ac_uC}1${ac_uD}
+${ac_eA}USE_GCC${ac_eB}USE_GCC${ac_eC}1${ac_eD}
+${ac_dA}CONST_IS_LOSING${ac_dB}CONST_IS_LOSING${ac_dC}1${ac_dD}
+${ac_uA}CONST_IS_LOSING${ac_uB}CONST_IS_LOSING${ac_uC}1${ac_uD}
+${ac_eA}CONST_IS_LOSING${ac_eB}CONST_IS_LOSING${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}USE_ASSERTIONS${ac_dB}USE_ASSERTIONS${ac_dC}1${ac_dD}
+${ac_uA}USE_ASSERTIONS${ac_uB}USE_ASSERTIONS${ac_uC}1${ac_uD}
+${ac_eA}USE_ASSERTIONS${ac_eB}USE_ASSERTIONS${ac_eC}1${ac_eD}
+${ac_dA}DEBUG_XEMACS${ac_dB}DEBUG_XEMACS${ac_dC}1${ac_dD}
+${ac_uA}DEBUG_XEMACS${ac_uB}DEBUG_XEMACS${ac_uC}1${ac_uD}
+${ac_eA}DEBUG_XEMACS${ac_eB}DEBUG_XEMACS${ac_eC}1${ac_eD}
+${ac_dA}MEMORY_USAGE_STATS${ac_dB}MEMORY_USAGE_STATS${ac_dC}1${ac_dD}
+${ac_uA}MEMORY_USAGE_STATS${ac_uB}MEMORY_USAGE_STATS${ac_uC}1${ac_uD}
+${ac_eA}MEMORY_USAGE_STATS${ac_eB}MEMORY_USAGE_STATS${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}ERROR_CHECK_EXTENTS${ac_dB}ERROR_CHECK_EXTENTS${ac_dC}1${ac_dD}
+${ac_uA}ERROR_CHECK_EXTENTS${ac_uB}ERROR_CHECK_EXTENTS${ac_uC}1${ac_uD}
+${ac_eA}ERROR_CHECK_EXTENTS${ac_eB}ERROR_CHECK_EXTENTS${ac_eC}1${ac_eD}
+${ac_dA}ERROR_CHECK_TYPECHECK${ac_dB}ERROR_CHECK_TYPECHECK${ac_dC}1${ac_dD}
+${ac_uA}ERROR_CHECK_TYPECHECK${ac_uB}ERROR_CHECK_TYPECHECK${ac_uC}1${ac_uD}
+${ac_eA}ERROR_CHECK_TYPECHECK${ac_eB}ERROR_CHECK_TYPECHECK${ac_eC}1${ac_eD}
+${ac_dA}ERROR_CHECK_BUFPOS${ac_dB}ERROR_CHECK_BUFPOS${ac_dC}1${ac_dD}
+${ac_uA}ERROR_CHECK_BUFPOS${ac_uB}ERROR_CHECK_BUFPOS${ac_uC}1${ac_uD}
+${ac_eA}ERROR_CHECK_BUFPOS${ac_eB}ERROR_CHECK_BUFPOS${ac_eC}1${ac_eD}
+CONFEOF
+cat >> conftest.sed <<CONFEOF
+${ac_dA}ERROR_CHECK_GC${ac_dB}ERROR_CHECK_GC${ac_dC}1${ac_dD}
+${ac_uA}ERROR_CHECK_GC${ac_uB}ERROR_CHECK_GC${ac_uC}1${ac_uD}
+${ac_eA}ERROR_CHECK_GC${ac_eB}ERROR_CHECK_GC${ac_eC}1${ac_eD}
+${ac_dA}ERROR_CHECK_MALLOC${ac_dB}ERROR_CHECK_MALLOC${ac_dC}1${ac_dD}
+${ac_uA}ERROR_CHECK_MALLOC${ac_uB}ERROR_CHECK_MALLOC${ac_uC}1${ac_uD}
+${ac_eA}ERROR_CHECK_MALLOC${ac_eB}ERROR_CHECK_MALLOC${ac_eC}1${ac_eD}
+${ac_dA}NO_UNION_TYPE${ac_dB}NO_UNION_TYPE${ac_dC}1${ac_dD}
+${ac_uA}NO_UNION_TYPE${ac_uB}NO_UNION_TYPE${ac_uC}1${ac_uD}
+${ac_eA}NO_UNION_TYPE${ac_eB}NO_UNION_TYPE${ac_eC}1${ac_eD}
+CONFEOF
+# This sed command replaces #undef's with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it in
+# src/config.h.
+cat >> conftest.sed <<\CONFEOF
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+CONFEOF
+rm -f conftest.h
+# Break up the sed commands because old seds have small limits.
+ac_max_sed_lines=20
+
+CONFIG_HEADERS=${CONFIG_HEADERS-"src/config.h"}
+for ac_file in .. ${CONFIG_HEADERS}; do if test "x$ac_file" != x..; then
+  echo creating $ac_file
+
+  cp $ac_given_srcdir/$ac_file.in conftest.h1
+  cp conftest.sed conftest.stm
+  while :
+  do
+    ac_lines=`grep -c . conftest.stm`
+    if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+    rm -f conftest.s1 conftest.s2 conftest.h2
+    sed ${ac_max_sed_lines}q conftest.stm > conftest.s1 # Like head -20.
+    sed 1,${ac_max_sed_lines}d conftest.stm > conftest.s2 # Like tail +21.
+    sed -f conftest.s1 < conftest.h1 > conftest.h2
+    rm -f conftest.s1 conftest.h1 conftest.stm
+    mv conftest.h2 conftest.h1
+    mv conftest.s2 conftest.stm
+  done
+  rm -f conftest.stm conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.h1 >> conftest.h
+  rm -f conftest.h1
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    # The file exists and we would not be changing it.
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+rm -f conftest.sed
+
+
+
+
+echo "creating src/Makefile"; topsrcdir=/usr/local/xemacs/xemacs-20.0-b32; ( cd ./src; rm -f junk.c; sed -e 's/^# Generated.*//' -e 's%/\*\*/#.*%%' < Makefile.in > junk.c; eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`; < junk.cpp sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$//' -e 's/^ / /' | sed -n -e '/^..*$/p' > Makefile.new; chmod 444 Makefile.new; mv -f Makefile.new Makefile; rm -f junk.c junk.cpp; )
+echo "creating lwlib/Makefile"; topsrcdir=/usr/local/xemacs/xemacs-20.0-b32; ( cd ./lwlib; rm -f junk.c; sed -e 's/^# Generated.*//' -e 's%/\*\*/#.*%%' < Makefile.in > junk.c; eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`; < junk.cpp sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$//' -e 's/^ / /' | sed -n -e '/^..*$/p' > Makefile.new; chmod 444 Makefile.new; mv -f Makefile.new Makefile; rm -f junk.c junk.cpp; )
+echo "creating lib-src/Makefile"; topsrcdir=/usr/local/xemacs/xemacs-20.0-b32; ( cd ./lib-src; rm -f junk.c; sed -e 's/^# Generated.*//' -e 's%/\*\*/#.*%%' < Makefile.in > junk.c; eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`; < junk.cpp sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$//' -e 's/^ / /' | sed -n -e '/^..*$/p' > Makefile.new; chmod 444 Makefile.new; mv -f Makefile.new Makefile; rm -f junk.c junk.cpp; )
+echo "creating dynodump/Makefile"; topsrcdir=/usr/local/xemacs/xemacs-20.0-b32; ( cd ./dynodump; rm -f junk.c; sed -e 's/^# Generated.*//' -e 's%/\*\*/#.*%%' < Makefile.in > junk.c; eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`; < junk.cpp sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$//' -e 's/^ / /' | sed -n -e '/^..*$/p' > Makefile.new; chmod 444 Makefile.new; mv -f Makefile.new Makefile; rm -f junk.c junk.cpp; )
+
+exit 0
--- a/configure	Mon Aug 13 09:03:47 2007 +0200
+++ b/configure	Mon Aug 13 09:04:33 2007 +0200
@@ -998,14 +998,10 @@
   ## AT&T 3b1 - The Mighty Unix PC!
   m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
 
-  ## Bull dpx20
-  rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;;
-
-  ## Bull dpx2
-  m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;;
-
-  ## Bull sps7
-  m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;;
+  ## Bull machines
+  rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
+  m68*-bull-sysv3*  ) machine=dpx2      opsys=usg5-3 ;; # dpx2
+  m68*-bull-sysv2*  ) machine=sps7      opsys=usg5-2 ;; # sps7
 
   ## CCI 5/32, 6/32 -- see "Tahoe".
 
@@ -1039,7 +1035,7 @@
   ## Data General AViiON Machines
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) machine=aviion opsys=dgux5-4r3 ;;
   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) machine=aviion opsys=dgux5-4r2 ;;
-  m88k-dg-dgux* ) machine=aviion opsys=dgux ;;
+  m88k-dg-dgux* 			  ) machine=aviion opsys=dgux	   ;;
 
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* ) machine=pmax opsys=bsd4-2 ;;
   mips-dec-ultrix4.[12]* | mips-dec-bsd* ) machine=pmax opsys=bsd4-3 ;;
@@ -1092,7 +1088,7 @@
   m88k-harris-cxux* )
     # Build needs to be different on 7.0 and later releases
     case "`uname -r`" in
-       [56].[0-9] ) machine=nh4000 opsys=cxux ;;
+       [56].[0-9] ) machine=nh4000 opsys=cxux  ;;
        [7].[0-9]  ) machine=nh4000 opsys=cxux7 ;;
     esac
     NON_GNU_CPP="/lib/cpp"
@@ -1123,10 +1119,10 @@
     esac
 
     case "${canonical}" in
-      *-hp-hpux7*     )  opsys=hpux      ;;
-      *-hp-hpux8*     )  opsys=hpux8     ;;
-      *-hp-hpux9*     )  opsys=hpux9     ;;
-      *-hp-hpux10*    )  opsys=hpux10    ;;
+      *-hp-hpux7*     )  opsys=hpux       ;;
+      *-hp-hpux8*     )  opsys=hpux8      ;;
+      *-hp-hpux9*     )  opsys=hpux9      ;;
+      *-hp-hpux10*    )  opsys=hpux10     ;;
       * )
         case "`uname -r`" in
 	  ## Someone's system reports A.B8.05 for this.
@@ -1332,19 +1328,20 @@
     
     case "${canonical}" in
       ## The Sun386 didn't get past 4.0.
-      i[3-9]86-*-sunos4*   ) opsys=sunos4-0      ;;
-      *-sunos4.0*	   ) opsys=sunos4-0      ;;
-      *-sunos4.1.2*        ) opsys=sunos4-1-2    ;;
-      *-sunos4.1.[3-9]*	   ) opsys=sunos4-1-3    ;;
-      *-sunos4* | *-sunos  ) opsys=sunos4-1	 ;;
-
-      *-solaris2.3*	   ) opsys=sol2-3 	 ;;
-      *-solaris2.4*	   ) opsys=sol2-4	 ;;
-      *-solaris2.5*	   ) opsys=sol2-5	 ;;
-      *-solaris2.[6-9]*	   ) opsys=sol2-6	 ;;
-      *-solaris*	   ) opsys=sol2		 ;;
-      *-mach*		   ) opsys=mach-bsd4-3   ;;
-      *			   ) opsys=bsd4-2	 ;;
+      i[3-9]86-*-sunos4*  ) opsys=sunos4-0	;;
+      *-sunos4.0*	  ) opsys=sunos4-0	;;
+      *-sunos4.1.2*	  ) opsys=sunos4-1-2	;;
+      *-sunos4.1.[3-9]*	  ) opsys=sunos4-1-3	;;
+      *-sunos4* | *-sunos ) opsys=sunos4-1	;;
+
+      *-solaris2.3*	  ) opsys=sol2-3	;;
+      *-solaris2.4*	  ) opsys=sol2-4	;;
+      *-solaris2.5*	  ) opsys=sol2-5	;;
+      *-solaris2.[6-9]*	  ) opsys=sol2-6	;;
+      *-solaris*	  ) opsys=sol2		;;
+
+      *-mach*		  ) opsys=mach-bsd4-3	;;
+      *			  ) opsys=bsd4-2	;;
     esac
 
     case "${canonical}" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
@@ -1464,13 +1461,11 @@
     *-bsd4.[01] )		opsys=bsd4-1 ;;
     *-bsd4.2 )			opsys=bsd4-2 ;;
     *-bsd4.3 )			opsys=bsd4-3 ;;
-    *-sysv0 | *-sysvr0 )	opsys=usg5-0 ;;
-    *-sysv2 | *-sysvr2 )	opsys=usg5-2 ;;
-    *-sysv2.2 | *-sysvr2.2 )	opsys=usg5-2-2 ;;
-    *-sysv3* | *-sysvr3* )	opsys=usg5-3 ;;
-    *-sysv4.1* | *-sysvr4.1* )
-      NON_GNU_CPP=/usr/lib/cpp
-      opsys=usg5-4 ;;
+    *-sysv0    | *-sysvr0 )	opsys=usg5-0 ;;
+    *-sysv2    | *-sysvr2 )	opsys=usg5-2 ;;
+    *-sysv2.2  | *-sysvr2.2 )	opsys=usg5-2-2 ;;
+    *-sysv3*   | *-sysvr3* )	opsys=usg5-3 ;;
+    *-sysv4.1* | *-sysvr4.1* )	opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
     *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
 	if test -z "$NON_GNU_CPP" ; then
 	  if test -f /usr/ccs/lib/cpp
@@ -2655,7 +2650,7 @@
     if eval "test -n \"\$with_$feature\" -a \"\$with_$feature\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without X support" >&2
     fi
-     eval "with_$feature=no"
+    eval "with_$feature=no"
   done
 elif test -z "${with_toolbars}"  ; then
   with_toolbars='yes'
@@ -2668,7 +2663,7 @@
 if test -n "${x_libraries}" ; then
   if test "${add_runtime_flag}" ; then
     LD_SWITCH_X_SITE="-L${x_libraries} -R${dash_r_space}${x_libraries}"
-      else
+  else
     LD_SWITCH_X_SITE="-L${x_libraries}"
   fi
 fi
@@ -2717,7 +2712,7 @@
   esac
 fi
 
-if test "${opsys}" = "hpux-9shr"; then
+if test "${opsys}" = "hpux9-shr"; then
   case "${x_libraries}" in
     *X11R4* ) opsysfile="s/hpux9shxr4.h" ;;
   esac
@@ -4117,7 +4112,7 @@
 "
 }
 
-test "${with_scrollbars}" != "no"    && 
+test "${with_dialogs}"    != "no"    && 
 {
 test -n "$verbose" && \
 echo "	defining HAVE_DIALOGS"
@@ -5102,7 +5097,7 @@
 # # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
 # A C_CHECK_LIB(m, sqrt)
 
-for ac_func in acosh asinh atanh cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getwd logb lrand48 matherr mkdir mktime perror poll random realpath rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask strcasecmp strerror tzset utimes waitpid
+for ac_func in acosh asinh atanh cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random realpath rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask strcasecmp strerror tzset utimes waitpid
 do
 ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
 test -n "$silent" || echo "checking for ${ac_func}"
--- a/configure.in	Mon Aug 13 09:03:47 2007 +0200
+++ b/configure.in	Mon Aug 13 09:04:33 2007 +0200
@@ -1004,14 +1004,10 @@
   ## AT&T 3b1 - The Mighty Unix PC!
   m68*-att-sysv* ) machine=7300 opsys=usg5-2-2 ;;
 
-  ## Bull dpx20
-  rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;;
-
-  ## Bull dpx2
-  m68*-bull-sysv3* ) machine=dpx2 opsys=usg5-3 ;;
-
-  ## Bull sps7
-  m68*-bull-sysv2* ) machine=sps7 opsys=usg5-2 ;;
+  ## Bull machines
+  rs6000-bull-bosx* ) machine=ibmrs6000 opsys=aix3-2 ;; # dpx20
+  m68*-bull-sysv3*  ) machine=dpx2      opsys=usg5-3 ;; # dpx2
+  m68*-bull-sysv2*  ) machine=sps7      opsys=usg5-2 ;; # sps7
 
   ## CCI 5/32, 6/32 -- see "Tahoe".
 
@@ -1045,7 +1041,7 @@
   ## Data General AViiON Machines
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) machine=aviion opsys=dgux5-4r3 ;;
   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* ) machine=aviion opsys=dgux5-4r2 ;;
-  m88k-dg-dgux* ) machine=aviion opsys=dgux ;;
+  m88k-dg-dgux* 			  ) machine=aviion opsys=dgux	   ;;
 
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* ) machine=pmax opsys=bsd4-2 ;;
   mips-dec-ultrix4.[12]* | mips-dec-bsd* ) machine=pmax opsys=bsd4-3 ;;
@@ -1098,7 +1094,7 @@
   m88k-harris-cxux* )
     # Build needs to be different on 7.0 and later releases
     case "`uname -r`" in
-       [56].[0-9] ) machine=nh4000 opsys=cxux ;;
+       [56].[0-9] ) machine=nh4000 opsys=cxux  ;;
        [7].[0-9]  ) machine=nh4000 opsys=cxux7 ;;
     esac
     NON_GNU_CPP="/lib/cpp"
@@ -1129,13 +1125,10 @@
     esac
 
     case "${canonical}" in
-      *-hp-hpux7*     )  opsys=hpux      ;;
-      *-hp-hpux8shr*  )  opsys=hpux8-shr  ;;
-      *-hp-hpux8*     )  opsys=hpux8     ;;
-      *-hp-hpux9shr*  )  opsys=hpux9-shr  ;;
-      *-hp-hpux9*     )  opsys=hpux9     ;;
-      *-hp-hpux10shr* )  opsys=hpux10-shr ;;
-      *-hp-hpux10*    )  opsys=hpux10    ;;
+      *-hp-hpux7*     )  opsys=hpux       ;;
+      *-hp-hpux8*     )  opsys=hpux8      ;;
+      *-hp-hpux9*     )  opsys=hpux9      ;;
+      *-hp-hpux10*    )  opsys=hpux10     ;;
       * )
         case "`uname -r`" in
 	  ## Someone's system reports A.B8.05 for this.
@@ -1148,6 +1141,8 @@
         esac
       ;;
     esac
+
+    case "${canonical}" in *-hp-hpux*shr* ) opsys="${opsys}-shr" ;; esac
   ;;
 
   hppa-*-nextstep* ) machine=hp800 opsys=nextstep ;;
@@ -1339,26 +1334,24 @@
     
     case "${canonical}" in
       ## The Sun386 didn't get past 4.0.
-      i[3-9]86-*-sunos4	   ) opsys=sunos4-0      ;;
-      *-sunos4shr*	   ) opsys=sunos4-0shr   ;;
-      *-sunos4-0shr*	   ) opsys=sunos4-0shr   ;;
-      *-sunos4-1shr*	   ) opsys=sunos4-1shr   ;;
-      *-sunos4-1-2shr*	   ) opsys=sunos4-1-2shr ;;
-      *-sunos4-1-[3-9]shr* ) opsys=sunos4-1-3shr ;;
-      *-sunos4.0*	   ) opsys=sunos4-0      ;;
-      *-sunos4.1.2*        ) opsys=sunos4-1-2    ;;
-      *-sunos4.1.[3-9]*	   ) opsys=sunos4-1-3    ;;
-      *-sunos4* | *-sunos  ) opsys=sunos4-1	 ;;
-
-      *-solaris2.3*	   ) opsys=sol2-3 	 ;;
-      *-solaris2.4*	   ) opsys=sol2-4	 ;;
-      *-solaris2.5*	   ) opsys=sol2-5	 ;;
-      *-solaris2.[6-9]*	   ) opsys=sol2-6	 ;;
-      *-solaris*	   ) opsys=sol2		 ;;
-      *-mach*		   ) opsys=mach-bsd4-3   ;;
-      *			   ) opsys=bsd4-2	 ;;
+      i[3-9]86-*-sunos4*  ) opsys=sunos4-0	;;
+      *-sunos4.0*	  ) opsys=sunos4-0	;;
+      *-sunos4.1.2*	  ) opsys=sunos4-1-2	;;
+      *-sunos4.1.[3-9]*	  ) opsys=sunos4-1-3	;;
+      *-sunos4* | *-sunos ) opsys=sunos4-1	;;
+
+      *-solaris2.3*	  ) opsys=sol2-3	;;
+      *-solaris2.4*	  ) opsys=sol2-4	;;
+      *-solaris2.5*	  ) opsys=sol2-5	;;
+      *-solaris2.[6-9]*	  ) opsys=sol2-6	;;
+      *-solaris*	  ) opsys=sol2		;;
+
+      *-mach*		  ) opsys=mach-bsd4-3	;;
+      *			  ) opsys=bsd4-2	;;
     esac
 
+    case "${canonical}" in *-sunos4*shr* ) opsys="${opsys}-shr" ;; esac
+
     ## Watch out for a compiler that is guaranteed not to work.
     case "${canonical}" in
       *-solaris* ) test "$CC" = "/usr/ucb/cc" && unset CC ;;
@@ -1474,13 +1467,11 @@
     *-bsd4.[01] )		opsys=bsd4-1 ;;
     *-bsd4.2 )			opsys=bsd4-2 ;;
     *-bsd4.3 )			opsys=bsd4-3 ;;
-    *-sysv0 | *-sysvr0 )	opsys=usg5-0 ;;
-    *-sysv2 | *-sysvr2 )	opsys=usg5-2 ;;
-    *-sysv2.2 | *-sysvr2.2 )	opsys=usg5-2-2 ;;
-    *-sysv3* | *-sysvr3* )	opsys=usg5-3 ;;
-    *-sysv4.1* | *-sysvr4.1* )
-      NON_GNU_CPP=/usr/lib/cpp
-      opsys=usg5-4 ;;
+    *-sysv0    | *-sysvr0 )	opsys=usg5-0 ;;
+    *-sysv2    | *-sysvr2 )	opsys=usg5-2 ;;
+    *-sysv2.2  | *-sysvr2.2 )	opsys=usg5-2-2 ;;
+    *-sysv3*   | *-sysvr3* )	opsys=usg5-3 ;;
+    *-sysv4.1* | *-sysvr4.1* )	opsys=usg5-4 NON_GNU_CPP=/usr/lib/cpp ;;
     *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
 	if test -z "$NON_GNU_CPP" ; then
 	  if test -f /usr/ccs/lib/cpp
@@ -1505,13 +1496,11 @@
 
 if test "${dynamic}" = "yes" ; then
   case "${opsys}" in
-    hpux8 | hpux9 | hpux10 | sunos4-0 | sunos4-1 | sunos4-1-2 | sunos4-1-3 | sco5 ) 
-    opsys="${opsys}-shr" ;;
+    hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;;
   esac
 elif test "${dynamic}" = "no" ; then
   case "${opsys}" in
-    sol2 | sol2-3 | sol2-4 | decosf1-3 | decosf3-1 | decosf3-2 | linux )
-    opsys="${opsys}-static" ;;
+    sol2* | decosf1-3 | decosf3-* | linux ) opsys="${opsys}-static" ;;
   esac
 fi
 
@@ -1851,7 +1840,7 @@
     if eval "test -n \"\$with_$feature\" -a \"\$with_$feature\" != no" ; then
        AC_WARN(--with-$feature ignored:  Not valid without X support)
     fi
-     eval "with_$feature=no"
+    eval "with_$feature=no"
   done
 elif test -z "${with_toolbars}"  ; then
   with_toolbars='yes'
@@ -1864,7 +1853,7 @@
 if test -n "${x_libraries}" ; then
   if test "${add_runtime_flag}" ; then
     LD_SWITCH_X_SITE="-L${x_libraries} -R${dash_r_space}${x_libraries}"
-      else
+  else
     LD_SWITCH_X_SITE="-L${x_libraries}"
   fi
 fi
@@ -1913,7 +1902,7 @@
   esac
 fi
 
-if test "${opsys}" = "hpux9shr"; then
+if test "${opsys}" = "hpux9-shr"; then
   case "${x_libraries}" in
     *X11R4* ) opsysfile="s/hpux9shxr4.h" ;;
   esac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dynodump/Makefile	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,31 @@
+SHELL = /bin/sh
+CC=gcc
+CFLAGS=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2
+ARCH=
+srcdir=/usr/local/xemacs/xemacs-20.0-b32/dynodump
+
+VPATH=/usr/local/xemacs/xemacs-20.0-b32/dynodump
+INCLUDES = -I${srcdir} -I${srcdir}/$(ARCH)
+ALL_CFLAGS = ${CFLAGS} -fpic  ${INCLUDES}
+OBJS = _relocate.o dynodump.o syms.o uninit.o
+.c.o:
+	$(CC) -c $(ALL_CFLAGS) $<
+all::
+dynodump.so: ${srcdir}/_dynodump.h $(OBJS)
+	$(CC) -o dynodump.so -G $(OBJS) -lelf -lmapmalloc
+_relocate.o: ${srcdir}/$(ARCH)/_relocate.c
+	$(CC) -c $(ALL_CFLAGS) ${srcdir}/$(ARCH)/_relocate.c
+uninit.o: ${srcdir}/$(ARCH)/uninit.c
+	$(CC) -c $(ALL_CFLAGS) ${srcdir}/$(ARCH)/uninit.c
+mostlyclean:
+	-rm -f *.o \#*
+clean: mostlyclean
+	-rm -f *.so *.so.1
+distclean: clean
+	-rm -f Makefile Makefile.in
+realclean: distclean
+	rm -f TAGS
+versionclean:
+	true
+extraclean: realclean
+	-rm -f *~ \#*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dynodump/Makefile.in	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,122 @@
+# Generated automatically from Makefile.in.in by configure.
+/* Hey Emacs, this is a -*- Makefile -*- */
+
+/* Makefile for dynodump subdirectory in XEmacs
+   Copyright (C) 1995 Board of Trustees, University of Illinois
+
+This file is part of XEmacs.
+
+XEmacs is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to the Free
+Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* Avoid trouble on systems where the "SHELL" variable might be
+   inherited from the environment. */
+SHELL = /bin/sh
+
+/* Some people use these in paths they define.  We do not want their paths
+   getting changed on them. */
+#undef sparc
+#undef sun
+#undef unix
+#undef i386
+#undef ppc
+#undef sgi
+
+/* ==================== Things "configure" will edit ==================== */
+
+CC=gcc
+CFLAGS=-m486 -g -O4 -malign-loops=2 -malign-jumps=2 -malign-functions=2
+ARCH=
+
+/* Where to find the source code.  This is set by the configure
+   "--srcdir" option.  However, the value of ${srcdir} in
+   this makefile is not identical to what was specified with --srcdir,
+   since the variable here has "/dynodump" added at the end. */
+srcdir=/usr/local/xemacs/xemacs-20.0-b32/dynodump
+
+/* ========================= start of cpp stuff ========================= */
+
+#define NO_SHORTNAMES
+#define THIS_IS_YMAKEFILE
+#define NOT_C_CODE
+#include "../src/config.h"
+
+/* With the traditional VPATH setting, it is not possible to
+   simultaneously compile in-place and in another directory.  The
+   mistaken definition is that *all* dependencies are searched for in
+   the VPATH directory, rather than just the dependencies that are not
+   themselves targets.  Thus, if there is an up-to-date .o file in the
+   in-place location, it will not get recompiled in the not-in-place
+   location.
+
+   The GNU Make "vpath" directive continues this tradition, but at
+   least lets you to restrict the classes of files that it applies to.
+   This allows us to kludge around the problem. */
+#ifdef USE_GNU_MAKE
+vpath %.c /usr/local/xemacs/xemacs-20.0-b32/dynodump
+vpath %.h /usr/local/xemacs/xemacs-20.0-b32/dynodump
+/* now list files that should NOT be searched in the srcdir.
+   This includes any .c or .h that is built from something else
+   (e.g. a .in file). */
+/* none here */
+#else
+VPATH=/usr/local/xemacs/xemacs-20.0-b32/dynodump
+#endif
+
+#ifdef USE_GCC
+# define PIC_ARG -fpic
+#else
+# define PIC_ARG -K pic
+#endif
+
+INCLUDES = -I${srcdir} -I${srcdir}/$(ARCH)
+ALL_CFLAGS = ${CFLAGS} PIC_ARG ${INCLUDES}
+OBJS = _relocate.o dynodump.o syms.o uninit.o
+
+.c.o:
+	$(CC) -c $(ALL_CFLAGS) $<
+
+/* If we do not need dynodump, then do nothing. */
+#ifdef DYNODUMP
+all:: dynodump.so
+#else
+all::
+#endif
+
+dynodump.so: ${srcdir}/_dynodump.h $(OBJS)
+	$(CC) -o dynodump.so -G $(OBJS) -lelf -lmapmalloc
+
+_relocate.o: ${srcdir}/$(ARCH)/_relocate.c
+	$(CC) -c $(ALL_CFLAGS) ${srcdir}/$(ARCH)/_relocate.c
+
+uninit.o: ${srcdir}/$(ARCH)/uninit.c
+	$(CC) -c $(ALL_CFLAGS) ${srcdir}/$(ARCH)/uninit.c
+
+mostlyclean:
+	-rm -f *.o \#*
+
+clean: mostlyclean
+	-rm -f *.so *.so.1
+
+distclean: clean
+	-rm -f Makefile Makefile.in
+
+realclean: distclean
+	rm -f TAGS
+
+versionclean:
+	true
+
+extraclean: realclean
+	-rm -f *~ \#*
--- a/dynodump/dynodump.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/dynodump/dynodump.c	Mon Aug 13 09:04:33 2007 +0200
@@ -73,8 +73,9 @@
  * N.B. The above commentary is not quite correct in the flags have been hardwired
  *      to RTLD_SAVREL.
  */
-#pragma ident	"@(#) $Id: dynodump.c,v 1.1.1.1 1996/12/18 22:42:15 steve Exp $ - SMI"
+#pragma ident	"@(#) $Id: dynodump.c,v 1.1.1.2 1996/12/21 20:44:43 steve Exp $ - SMI"
 
+#define __EXTENSIONS__
 #include	<sys/param.h>
 #include	<sys/procfs.h>
 #include	<fcntl.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/sinfo.dtd	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,437 @@
+<!-- This is sinfo.dtd,
+      by MORIOKA Tomohiko
+      $Id: sinfo.dtd,v 1.1.1.1 1996/12/21 20:45:50 steve Exp $
+-->
+
+<!entity % emph 
+	"em|it|bf|sf|sl|tt|cparam|code|verb|var|mail|file|kbd|key">
+
+<!entity % index "idx|cdx" >
+
+<!-- url added by HG; htmlurl added by esr -->
+<!entity % xref
+	" a|label|ref|dref|cf|cite|ncite|concept " >
+
+<!entity % inline 
+	" (#pcdata | f| x| %emph; |sq| %xref | %index )* " >
+
+<!entity % list 
+        " list | ul | ol | dl | kl | vl | memo | lisp | rfc | standard
+        | report " >
+
+<!entity % par 	
+	"  %list; | comment | lq | quote | tscreen " >
+
+<!entity % mathpar " dm | eq " >
+
+<!entity % thrm 
+        " defun | define | defvar | prop | lemma | coroll | proof | theorem " >
+
+<!entity % sectpar 
+        " %par; | figure | table | faq | hrule | %mathpar; | 
+	  %thrm; ">
+<!element sinfo o o (head, body) >
+
+<!element head - - (titlepag, header?, toc?, lof?, lot?)>
+<!attlist head opts cdata "null">
+
+<!element body - - ( abstract?, (p|noindent)*, h1*,
+			(appendix, h1+)?, biblio?) +(footnote)>
+<!attlist body opts cdata "null">
+
+<!entity % general system -- general purpose characters -- >
+%general;
+<!entity   Ae  '&Auml;' >
+<!entity   ae  '&auml;' >
+<!entity   Oe  '&Ouml;' >
+<!entity   oe  '&ouml;' >
+<!entity   Ue  '&Uuml;' >
+<!entity   ue  '&uuml;' >
+<!entity   sz  '&szlig;' >
+<!element  noindent o o (( %inline | %sectpar )+) +(newline) >
+<!element  p o o (( %inline | %sectpar )+) +(newline) >
+<!entity ptag '<p>' >
+<!entity psplit '</p><p>' >
+
+<!element em - - (%inline)>
+<!element bf - - (%inline)>
+<!element it - - (%inline)>
+<!element sf - - (%inline)>
+<!element sl - - (%inline)>
+<!element tt - - (%inline)>
+<!element sq - - (%inline)>
+<!element cparam - - (%inline)>
+
+<!entity   ftag     '<f>'    -- formula begin -- >
+<!entity   qendtag  '</sq>'>
+
+<!element lq - - ((p|noindent)*)>
+<!element quote - - ((%inline; | %sectpar;)*, (p|noindent)*)+ >
+<!element tscreen - - ((%inline; | %sectpar;)*, (p|noindent)*)+ >
+<!element ul - - (li+)>
+<!element ol - - (li+)>
+<!element list - - (li+)>
+<!element memo - - ((%inline; | %sectpar; )*, (p|noindent)*)+ >
+<!attlist memo title cdata "Memo">
+<!element rfc - o empty>
+<!attlist rfc
+	  name cdata #implied
+	  number cdata #required
+	  type cdata #implied
+	  author cdata #required
+	  title cdata #required
+	  date cdata #required
+	  obsolete cdata #implied>
+<!element standard - o empty>
+<!attlist standard
+	  abbrev   cdata #implied
+	  org      cdata #implied
+	  title-cn cdata #implied
+	  title-en cdata #implied
+	  title-fr cdata #implied
+	  title-ja cdata #implied
+	  number   cdata #required
+ 	  year     cdata #implied>
+<!element report - o empty>
+<!attlist report
+	  abbrev   cdata #implied
+	  author   cdata #required
+	  title-cn cdata #implied
+	  title-en cdata #implied
+	  title-fr cdata #implied
+	  title-ja cdata #implied
+	  date     cdata #implied>
+<!element dl - - (dt,dd)+ >
+<!element dt - o ((%inline; | %sectpar;)*, (p|noindent)*) >
+<!element dd - o ((%inline; | %sectpar;)*, (p|noindent|newline)*) >
+
+<!element kl - - ((kt,kd)|(dt,dd))+ >
+<!element kt - o ((%inline; | %sectpar;)*, (p|noindent)*) >
+<!element kd - o ((%inline; | %sectpar;)*, (p|noindent|newline)*) >
+
+<!element vl - - (dt,dd)+ >
+
+<!element li - o ((%inline; | %sectpar;)*, (p|noindent)*) >
+
+<!element tag - o (%inline)>
+<!entity space " ">
+<!entity null "">
+
+<!element faq - - (keyword?, (poster?, pdate?, (question| answer| coment)? )*)+>
+<!element keyword - o (%inline;)*>
+<!element poster - o (%inline;)*>
+<!element pdate - o (%inline;)*>
+<!element question - o ((%inline; | %sectpar;)*, (p|noindent)*)+>
+<!element answer - o ((%inline; | %sectpar;)*, (p|noindent)*)+>
+<!element coment - o ((%inline; | %sectpar;)*, (p|noindent)*)+>
+<!element hrule - o empty >
+
+<!element figure - - ((eps | ph ), caption?)>
+<!attlist figure
+	loc cdata "tbp">
+
+<!-- eps attributes added by mb and td  -->
+<!element eps - o empty  >
+<!attlist eps
+        file cdata #required
+        height cdata "5cm"
+        angle cdata "0">
+
+<!element ph - o empty >
+<!attlist ph
+        vspace cdata #required>
+
+<!element caption - o (%inline)>
+
+<!element rowsep - o empty>
+<!element colsep - o empty>
+<!element hline  - o empty>
+
+<!entity rowsep "<rowsep>">
+<!entity colsep "<colsep>">
+
+<!element table   - - (tabular, caption?) >
+<!attlist table
+	loc cdata "tbp">
+
+<!element code - - rcdata>
+<!element verb - - rcdata>
+<!element var - - rcdata>
+<!element lisp - - rcdata>
+<!element mail - - rcdata>
+<!element file - - rcdata>
+<!element kbd - - rcdata>
+<!element key - - rcdata>
+
+<!shortref ttmap     -- also on one-line --
+        "B&#RE;" space
+        "&#RS;&#RE;" null 
+        "&#RS;B&#RE;" null
+	"&#RS;B" null
+        '#'     num
+        '%'     percnt
+        '~'     tilde
+        '_'     lowbar
+        '^'     circ
+        '{'     lcub
+        '}'     rcub
+        '|'     verbar >
+
+<!usemap ttmap  tt>
+<!element  mc  - - cdata >
+<!entity % sppos     "tu" >
+<!entity % fcs       "%sppos;|phr" >
+<!entity % fcstxt    "#pcdata|mc|%fcs;" >
+<!entity % fscs      "rf|v|fi" >
+<!entity % limits    "pr|in|sum" >
+<!entity % fbu       "fr|lim|ar|root" >
+<!entity % fph       "unl|ovl|sup|inf" >
+<!entity % fbutxt    "(%fbu;) | (%limits;) | 
+                      (%fcstxt;)|(%fscs;)|(%fph;)" >
+<!entity % fphtxt    "p|#pcdata" >
+<!element  f        - - ((%fbutxt;)*) >
+
+<!entity   fendtag  '</f>'   -- formula end -- >
+
+<!shortref fmap 
+      "&#RS;B" null
+      "&#RS;B&#RE;" null
+      "&#RS;&#RE;" null
+      "_" thinsp
+      "~" nbsp
+      "]" fendtag
+      "#" num
+      "%" percnt
+      "^" circ
+      "{" lcub
+      "}" rcub
+      "|" verbar>
+
+<!usemap   fmap     f >
+
+<!element  dm       - - ((%fbutxt;)*)>
+<!element  eq       - - ((%fbutxt;)*)>
+
+<!shortref dmmap
+     "&#RE;" space
+      "_" thinsp
+      "~" nbsp
+      "]" fendtag
+      "#" num
+      "%" percnt
+      "^" circ
+      "{" lcub
+      "}" rcub
+      "|" verbar>
+
+<!usemap dmmap (dm,eq)>
+<!element  fr       - - (nu,de) >
+<!element  nu       o o ((%fbutxt;)*) >
+<!element  de       o o ((%fbutxt;)*) >
+<!element  sub      o o ((%fbutxt;)*) >
+<!element  super    o o ((%fbutxt;)*) >
+<!element  opd      - o ((%fbutxt;)*) >
+<!element  pr       - - (ll,u,opd?) >
+<!element  in       - - (ll,u,opd?) >
+<!element  sum      - - (ll,u,opd?) >
+<!element  lim      - - (op,ll,u,opd?) >
+<!element  op       o o (%fcstxt;|rf|%fph;) -(tu) >
+<!element  root     - - ((%fbutxt;)*) >
+<!attlist  root
+        n cdata "">
+<!element col o o ((%fbutxt;)*) >
+<!element row o o (col, (arc, col)*) >
+
+<!element  ar       - - (row, (arr, row)*) >
+<!attlist  ar
+    ca     cdata    #required >
+<!element  arr      - o empty >
+<!element  arc      - o empty >
+<!entity   arr "<arr>" >
+<!entity   arc "<arc>" >
+
+<!shortref arrmap
+     "&#RE;" space
+      "@" arr
+      "|" arc 
+      "_" thinsp
+      "~" nbsp
+      "#" num
+      "%" percnt
+      "^" circ
+      "{" lcub
+      "}" rcub >
+
+<!usemap   arrmap   ar >
+<!element  sup      - - ((%fbutxt;)*) -(tu) >
+<!element  inf      - - ((%fbutxt;)*) -(tu) >
+<!element  unl - - ((%fbutxt;)*) >
+<!element  ovl - - ((%fbutxt;)*) >
+<!element  rf  - o (#pcdata) >
+<!element  phr - o ((%fphtxt;)*) >
+<!element  v   - o ((%fcstxt;)*) 
+	-(tu|%limits;|%fbu;|%fph;) >
+<!element  fi  - o (#pcdata) >
+<!element  tu  - o empty >
+
+<!element defun - - (args?,opts?,rest?,(p|noindent|newline)*)>
+<!attlist defun
+	  name cdata #required>
+<!element args - o (#pcdata)>
+<!element opts - o (#pcdata)>
+<!element rest - o (#pcdata)>
+
+<!element define - - (args?,opts?,rest?,(p|noindent|newline)*)>
+<!attlist define
+	  type cdata #required
+	  name cdata #required>
+
+<!element defvar - - ((p|noindent)+) >
+<!attlist defvar
+	  name cdata #required>
+<!element prop - - (thtag?, p+) >
+<!element lemma - - (thtag?, p+) >
+<!element coroll - - (thtag?, p+) >
+<!element proof - - (p+) >
+<!element theorem - - (thtag?, p+) >
+<!element thtag - - (%inline)>
+
+<!entity   qtag     '<sq>' >
+
+<!element label - o empty>
+<!attlist label id cdata #required>
+
+<!element concept - - cdata>
+
+<!element a - - (p+)>
+<!attlist a
+ 	  file cdata #implied
+	  node cdata #implied
+	  href cdata #implied>
+
+<!element cf - o empty>
+<!attlist cf
+ 	  file cdata #implied
+	  node cdata #implied
+	  href cdata #implied >
+
+<!element ref - o empty>
+<!attlist ref
+ 	  file cdata #implied
+	  node cdata #implied>
+
+<!element dref - - cdata>
+<!attlist dref
+ 	  file cdata #implied>
+
+<!element comment - - (%inline)>
+<!element x - - ((#pcdata | mc)*) >
+<!usemap   #empty   x >
+
+<!-- Hacked by mdw, abstract now part of titlepag -->
+<!element titlepag o o (title, author, date?, trans?, tdate?)>
+<!element title - o (%inline, subtitle?) +(newline)>
+<!element subtitle - o (%inline)>
+<!element author - o (name, thanks?, inst?, mail?,
+                        (and, name, thanks?, inst?)*)>
+<!element trans - o (name, thanks?, inst?, 
+                        (and, name, thanks?, inst?)*)>
+<!element name o o (%inline) +(newline)>
+<!element and - o empty>
+<!element thanks - o (%inline)>
+<!element inst - o (%inline) +(newline)>
+<!element date - o (#pcdata) >
+<!element tdate - o (#pcdata) >
+
+<!element newline - o empty >
+<!entity nl "<newline>"> 
+
+<!-- Hacked by ono -->
+<!element abstract - o (%inline, (p|noindent)*)+ +(newline)>
+
+
+<!element toc - o empty>
+<!element lof - o empty>
+<!element lot - o empty>
+<!element header - - (lhead, rhead) >
+<!element lhead - o (%inline)>
+<!element rhead - o (%inline)>
+<!entity % sec-b "(p|noindent)*, (cindex|findex|vindex)* " >
+<!entity % sect "heading, node?, %sec-b " >
+<!element heading o o (%inline)>
+<!element h1  - o (%sect, h2*) +(footnote)>
+<!element h2 - o (%sect, h3*)>
+<!element h3 - o (%sect, h4*)>
+<!element h4 - o (%sect, h5*)>
+<!element h5 - o (%sect)>
+<!element node - o (heading)>
+<!element cindex - o empty>
+<!element findex - o empty>
+<!element vindex - o empty>
+<!element appendix - o empty >
+<!element footnote - - (%inline)>
+<!element cite - o empty>
+<!attlist cite 
+        id cdata #required>
+
+<!element ncite - o empty>
+<!attlist ncite 
+        id cdata #required
+	note cdata #required>
+
+<!element idx - - (#pcdata)>
+<!element cdx - - (#pcdata)>
+
+<!element biblio - o empty>
+<!attlist biblio
+	style cdata "sinfo"
+        files cdata "">
+<!element slides - - (slide*) >
+
+<!attlist slides
+	opts cdata "null">
+<!element slide - o (title?, p+) >
+<!entity  % addr "(address?, email?, phone?, fax?)" >  
+	
+<!element letter - - 
+	(from, %addr, to, %addr, cc?, subject?, sref?, rref?,
+         rdate?, opening, p+, closing, encl?, ps?)>
+
+<!attlist letter
+	opts cdata "null">
+	
+<!element from		- o (#pcdata) >
+<!element to		- o (#pcdata) >
+	
+<!element address 	- o (#pcdata) +(newline) >
+<!element email		- o (#pcdata) >
+<!element phone		- o (#pcdata) >
+<!element fax 		- o (#pcdata) >
+	
+<!element subject 	- o (%inline;) >
+<!element sref		- o (#pcdata) >
+<!element rref          - o (#pcdata) >
+<!element rdate         - o (#pcdata) >
+	
+<!element opening 	- o (%inline;) >
+	
+<!element closing - o (%inline;) >
+<!element cc - o (%inline;) +(newline) >
+<!element encl - o (%inline;) +(newline) >
+	
+<!element ps - o (p+) >
+
+<!element telefax - - 
+	(from, %addr, to, address, email?, 
+         phone?, fax, cc?, subject?,
+         opening, p+, closing, ps?)>
+
+<!attlist telefax
+	opts cdata "null"
+	length cdata "2">
+
+<!element notes - - (title?, p+) >
+<!attlist notes
+	opts cdata "null" >
+
+<!-- end of sinfo dtd -->
--- a/lib-src/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/lib-src/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,11 @@
+Wed Dec 18 20:22:55 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* mmencode.c: Don't declare index().
+
+	* Makefile.in.in: Documentation changes.
+
+	* update-elc.sh: Portability Fix.
+
 Thu Dec  5 15:41:53 1996  Martin Buchholz  <mrb@Eng.Sun.COM>
 
 	* update-elc.sh: Corrections to protect against too smart /bin/sh'es.
--- a/lib-src/Makefile.in.in	Mon Aug 13 09:03:47 2007 +0200
+++ b/lib-src/Makefile.in.in	Mon Aug 13 09:04:33 2007 +0200
@@ -21,22 +21,24 @@
 
 /* Note: FSF Makefile.in.in does something weird so that the comments
    above a certain point in this file are in shell format instead of
-   in C format.  I don't know how the hell this is supposed to work. */
+   in C format.  How the hell is this supposed to work? */
 
-/* Avoid trouble on systems where the `SHELL' variable might be
+/* Avoid trouble on systems where the "SHELL" variable might be
    inherited from the environment. */
 SHELL = /bin/sh
 
-/* Some people use these in paths they define.  We don't want their paths
-   getting changed on them. */
+/* Some people use these in paths they define.
+   This is a horrible kludge - should we really use CPP
+   to pre-process Makefiles? */
 #undef sparc
 #undef sun
 #undef unix
 #undef sgi
 #undef NeXT
 #undef mips
+#undef i386
 
-/* ==================== Things `configure' will edit ==================== */
+/* ==================== Things "configure" will edit ==================== */
 
 CC=@CC@
 CFLAGS=@CFLAGS@
@@ -52,28 +54,28 @@
    subdirectories of this directory.  The default values for many of
    the variables below are expressed in terms of this one, so you may
    not need to change them.  This is set with the --prefix option to
-   `../configure'. */
+   "../configure". */
 prefix=@prefix@
 
-/* Like `prefix', but used for architecture-specific files.  This is
-   set with the --exec-prefix option to `../configure'. */
+/* Like "prefix", but used for architecture-specific files.  This is
+   set with the "--exec-prefix" option to "../configure". */
 exec_prefix=@exec_prefix@
 
 /* Where to install Emacs and other binaries that people will want to
-   run directly (like etags).  This is set with the --bindir option
-   to `../configure'. */
+   run directly (like etags).  This is set with the "--bindir" option
+   to "../configure". */
 bindir=@bindir@
 
 /* Where to install and expect executable files to be run by Emacs
    rather than directly by users, and other architecture-dependent
    data.  ${archlibdir} is usually below this.  This is set with the
-   --libdir option to `../configure'. */
+   --libdir option to "../configure". */
 libdir=@libdir@
 
 /* Where to find the source code.  This is set by the configure
-   script's `--srcdir' option.  However, the value of ${srcdir} in
+   "--srcdir" option.  However, the value of ${srcdir} in
    this makefile is not identical to what was specified with --srcdir,
-   since the variable here has `/lib-src' added at the end. */
+   since the variable here has "/lib-src" appended to the end. */
 srcdir=@srcdir@
 
 /* ==================== Emacs-specific directories ==================== */
@@ -85,7 +87,7 @@
    This path usually includes the Emacs version and configuration name,
    so that multiple configurations for multiple versions of Emacs may
    be installed at once.  This can be set with the --archlibdir option
-   to `../configure'. */
+   to "../configure". */
 archlibdir=@archlibdir@
 
 /* ==================== Utility Programs for the Build ================= */
@@ -110,7 +112,7 @@
 /* These need to be conditional on I18N3
 	make-msgfile make-po */
 
-/* Like UTILITIES, but they're not system-dependent, and should not be
+/* Like UTILITIES, but they are not system-dependent, and should not be
    deleted by the distclean target. */
 TM_SCRIPTS=tm-au tm-file tm-html tm-image tm-mpeg tm-plain tm-ps tmdecode
 SCRIPTS= rcs2log vcdiff $(TM_SCRIPTS)
@@ -138,22 +140,22 @@
    in-place location, it will not get recompiled in the not-in-place
    location.
 
-   The GNU Make `vpath' directive continues this tradition, but at
+   The GNU Make "vpath" directive continues this tradition, but at
    least lets you restrict the classes of files that it applies to.
    This allows us to kludge around the problem. */
 #ifdef USE_GNU_MAKE
 vpath %.c @srcdir@
 vpath %.h @srcdir@
 /* now list files that should NOT be searched in the srcdir.
-   This includes any .c or .h that's built from something else
+   This includes any .c or .h built from something else
    (e.g. a .in file). */
 /* none here */
 #else
 VPATH=@srcdir@
 #endif
 
-/* We won't really call alloca;
-   don't let the file name alloca.c get messed up.  */
+/* We will not really call alloca;
+   do not let the file name alloca.c get messed up.  */
 #ifdef alloca
 #undef alloca
 #endif
@@ -236,8 +238,8 @@
    -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
 CPP_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -Demacs -DHAVE_CONFIG_H \
    -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
-/* Formerly -Demacs was missing, but it's needed to suppress the
-   defining of malloc to xmalloc.  [Yes it's fucked up.  Blame FSF
+/* Formerly -Demacs was missing, but it is needed to suppress the
+   defining of malloc to xmalloc.  [Yes it is fucked up.  Blame FSF
    for this.] */
 ALLOCA_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -Demacs -DHAVE_CONFIG_H \
    -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
@@ -282,7 +284,7 @@
 
 maybe-blessmail: BLESSMAIL
 #ifdef MOVEMAIL_NEEDS_BLESSING
-/* Don't charge ahead and do it!  Let the installer decide.
+/* Do not charge ahead and do it!  Let the installer decide.
 	  ./blessmail ${archlibdir}/movemail  */
 	@if [ `wc -l <blessmail` != 2 ] ; then \
 	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
@@ -311,7 +313,7 @@
 	  done ; \
 	fi
 
-/* We don't need to install `wakeup' explicitly, because it will be
+/* We do not need to install "wakeup" explicitly, because it will be
    copied when this whole directory is copied.  */
 install: ${archlibdir}
 	@echo
--- a/lib-src/mmencode.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/lib-src/mmencode.c	Mon Aug 13 09:04:33 2007 +0200
@@ -22,7 +22,6 @@
 static void
 output64chunk(int c1, int c2, int c3, int pads, FILE *outfile);
 
-extern char *index();
 static char basis_64[] =
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
@@ -43,7 +42,7 @@
 char64(c)
 char c;
 {
-    char *s = (char *) index(basis_64, c);
+    char *s = (char *) strchr(basis_64, c);
     if (s) return(s-basis_64);
     return(-1);
 }
@@ -267,7 +266,7 @@
 {
     char *s;
     if (islower(c)) c = toupper(c);
-    s = (char *) index(basis_hex, c);
+    s = (char *) strchr(basis_hex, c);
     if (s) return(s-basis_hex);
     return(-1);
 }
--- a/lib-src/update-autoloads.sh	Mon Aug 13 09:03:47 2007 +0200
+++ b/lib-src/update-autoloads.sh	Mon Aug 13 09:04:33 2007 +0200
@@ -25,5 +25,5 @@
 
 $EMACS -batch -q -f batch-update-autoloads \
   `ls lisp | egrep -v \
-  "COPYING|README|SCCS|egg|eterm|its|mule|paths.el|quail|version.el|vms" \
+  "ChangeLog|CVS|COPYING|README|SCCS|egg|eterm|its|mule|paths.el|quail|version.el|vms" \
   | xargs -i echo lisp/\{\}`
--- a/lib-src/update-elc.sh	Mon Aug 13 09:03:47 2007 +0200
+++ b/lib-src/update-elc.sh	Mon Aug 13 09:04:33 2007 +0200
@@ -21,7 +21,7 @@
 done
 
 if test ! -d lisp/. ; then
-  echo "$0: Can't find the \`lisp' directory."
+  echo "$0: Cannot find the \`lisp' directory."
   exit 1
 fi
 
@@ -60,7 +60,7 @@
 # first recompile the byte-compiler, so that the other compiles take place
 # with the latest version (assuming we're compiling the lisp dir of the emacs
 # we're running, which might not be the case, but often is.)
-echo "Checking the byte compiler... "
+echo "Checking the byte compiler..."
 $REAL -batch -q -no-site-file -f batch-byte-recompile-directory lisp/bytecomp
 
 # Prepare for byte-compiling directories with directory-specific instructions
--- a/lisp/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,194 @@
+Fri Dec 20 15:19:36 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* packages/compile.el (compilation-error-regexp-alist): Complete
+	fix for lossage on bad regexps.
+
+	* prim/loadup.el: Remove cc-mode as a dumped package.
+
+	* prim/glyphs.el (init-glyphs): hscroll-glyph is now builtin.
+
+	* prim/minibuf.el (minibuffer-complete-word): Correct an ebola
+	infection that caused incorrect interpretation of SPC in the
+	minibuffer.
+
+Thu Dec 19 22:16:47 1996  Heiko Muenkel  <muenkel@tnt.uni-hannover.de>
+
+	* modes/outl-mouse.el (outline-glyph-menu): Remove Hide body item,
+	Add Show all item.
+
+Thu Dec 19 00:37:59 1996  Bart Robinson <lomew@cs.utah.edu>
+
+	* prim/files.el: Make enable-local-variables 'ask-me behave sanely.
+
+Wed Dec 18 23:10:15 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* prim/simple.el (next-line-add-newlines): Now defaults to nil.
+
+Wed Dec 18 22:56:48 1996  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils/bench.el (bench-mark-13): Added.
+
+Wed Dec 18 20:26:10 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* mule/mule-coding.el: Change charset names.
+
+	* mule/japanese-hooks.el: Change charset names.
+
+	* mule/hebrew-hooks.el: Change charset names.
+	Remove quail hooks.
+
+	* mule/greek-hooks.el: Change charset names.
+	Remove quail hooks.
+
+	* mule/european-hooks.el ((make-char 'latin-iso8859-1 32)): Change
+	charset names.
+	Remove quail hooks.
+
+	* mule/cyrillic-hooks.el (cyrillic-iso8859-5): Use instead of cyrillic.
+	Remove quail hooks.
+
+	* mule/chinese-hooks.el (chinese-gb2312): Fix chinese syntax tables.
+	Use chinese-gb2312.
+	Remove quail hooks.
+	(chinese): Comment out code for egg.
+
+	* mule/thai-hooks.el: Use thai-tis620.
+	(thai): Prefer macro definition of lambda.
+
+	* sunpro/sunpro-init.el (sunpro-startup): Guard against Sun
+	censorship.
+
+	* prim/obsolete.el (wholenump): New obsolete alias.
+
+	* prim/simple.el (comment-indent-function): Use macro definition
+	of (lambda () ...).
+
+	* prim/replace.el (list-matching-lines): Remove redundant
+	(message (format ...))
+
+	* modes/cc-mode.el: Readd autoloads (prior to removing cc-mode as
+	a dumped package).
+
+Wed Dec 18 11:09:45 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* comint/telnet.el: Synch up to 19.15 & Emacs 19.34.
+	(telnet-check-software-type-initialize): Cleanup from Synch.
+
+Sat Dec 14 17:39:17 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* packages/buff-menu.el (list-buffers-directory): autoload.
+
+Fri Dec 13 16:53:14 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* electric/ebuff-menu.el (electric-buffer-list): Restore behavior
+	of using prefix argument.
+
+	* emulators/crisp.el (crisp-mode-map): Rename kp_.* keysyms to
+	kp-\1.
+
+	* emulators/tpu-edt.el: Ditto.
+
+	* x11/x-win-sun.el: Ditto.
+
+	* x11/x-iso8859-1.el: Ditto.
+
+	* term/tvi970.el: Ditto.
+
+	* term/news.el: Ditto.
+
+	* term/lk201.el: Ditto.
+
+	* term/linux.el: Ditto.
+
+	* prim/keydefs.el: Ditto.
+
+	* prim/events.el: Ditto.
+
+	* packages/icomplete.el (icomplete-get-keys): Ditto.
+
+	* games/gomoku.el (gomoku-mode-map): Ditto.
+
+	* games/blackbox.el (blackbox-mode-map): Ditto.
+
+Fri Dec 13 09:40:27 1996  Sudish Joseph  <sudish@mindspring.com>
+
+	* prim/minibuf.el (next-history-element): Remove kludge test on
+	minibuffer-history-sexp-flag.
+
+	* x11/x-init.el (init-post-x-win): Fix hooks for gnuattached ttys
+	on XEmacsen started on X displays.
+
+Thu Dec 12 16:05:53 1996  Raymond Toy  <toy@rtp.ericsson.se>
+
+	* ilisp/ilisp-out.el (ilisp-find-lower-window): Correct XEmacs
+	version check to look at major numbers.
+	(ilisp-find-top-left-most-window): Ditto.
+
+Thu Dec 12 15:21:43 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* utils/mail-extr.el (mail-extract-address-components): Don't
+	automatically downcase extracted elements.  It violates standards.
+
+Thu Dec 12 14:46:47 1996  Christoph Wedler  <wedler@fmi.uni-passau.de>
+
+	* x11/x-menubar.el (buffers-menu-filter): The buffer menu was
+	shortened to `buffers-menu-max-size' items even if
+	`buffers-menu-submenus-for-groups-p' is non-nil.
+
+	Let `buffers-menu-submenus-for-groups-p' be an integer : if there
+	are more buffers than this value, use submenus, otherwise not.
+	
+	* packages/vc.el (vc-rename-this-file): New function (was missing,
+	but referred to on the menubar).
+
+	* packages/compile.el (compilation-font-lock-keywords): `defvar'
+	instead of `defconst'!
+
+	* prim/mouse.el (default-mouse-track-normalize-point): Double
+	click mouse-1 on sexpr selects the sexpr.
+
+	* x11/x-menubar.el (options-menu-saved-forms): Fix bug in
+	`save-options-menu-settings'.
+
+Thu Dec 12 14:25:21 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* prim/simple.el (forward-to-indentation): Do not deactivate zmacs
+	region on usage.
+	(backward-to-indentation): Ditto.
+
+Thu Dec 12 14:22:55 1996  Christoph Wedler  <wedler@fmi.uni-passau.de>
+
+	* prim/lisp.el (backward-up-list): Do not deactivate zmacs region
+	on usage.
+
+Wed Dec 11 20:26:21 1996  Barry A. Warsaw  <bwarsaw@CNRI.Reston.VA.US>
+
+	* prim/files.el (set-auto-mode): Require a #! signature to set
+	mode based on interpreter.
+
+Wed Dec 11 13:25:50 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* packages/man.el (Manual-use-rosetta-man): Restore Neal Becker's
+	Rosetta Man Patch.
+	(Man-cleanup-manpage): Use it.
+
+	* prim/simple.el (yank): Corrected a mistaken synch with Emacs
+	19.34.
+
+	* modes/eiffel3.el (eiffel-mode-syntax-table): Quote the semicolon
+	syntax entry so update-autoloads doesn't barf.
+
+	* packages/buff-menu.el (Buffer-menu-mode-map): Correct mouse key
+	bindings.
+
+Tue Dec 10 21:24:04 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* packages/ps-print.el (ps-do-despool): Allow dynamic expansion of
+	`ps-lpr-switches'.
+
+	* packages/lpr.el (print-region-1): Allow dynamic expansion of
+	`lpr-switches'.
+
 Tue Dec 10 18:30:01 1996  Rod Whitby  <rwhitby@asc.sps.mot.com>
 
 	* modes/vhdl-mode.el: New File.
--- a/lisp/calendar/calendar.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/calendar/calendar.el	Mon Aug 13 09:04:33 2007 +0200
@@ -626,8 +626,6 @@
 (defvar calendar-mark-ring nil)
 
 ;;;###autoload
-(put 'general-holidays 'risky-local-variable t)
-;;;###autoload
 (defvar general-holidays
   '((holiday-fixed 1 1 "New Year's Day")
     (holiday-float 1 1 3 "Martin Luther King Day")
@@ -650,21 +648,23 @@
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'local-holidays 'risky-local-variable t)
+(put 'general-holidays 'risky-local-variable t)
+
 ;;;###autoload
 (defvar local-holidays nil
   "*Local holidays.
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'other-holidays 'risky-local-variable t)
+(put 'local-holidays 'risky-local-variable t)
 ;;;###autoload
 (defvar other-holidays nil
   "*User defined holidays.
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'hebrew-holidays-1 'risky-local-variable t)
+(put 'other-holidays 'risky-local-variable t)
+
 ;;;###autoload
 (defvar hebrew-holidays-1
   '((holiday-rosh-hashanah-etc)
@@ -684,7 +684,8 @@
                21))) "\"Tal Umatar\" (evening)"))))
 
 ;;;###autoload
-(put 'hebrew-holidays-2 'risky-local-variable t)
+(put 'hebrew-holidays-1 'risky-local-variable t)
+
 ;;;###autoload
 (defvar hebrew-holidays-2
   '((if all-hebrew-calendar-holidays
@@ -706,7 +707,8 @@
         (holiday-hebrew 11 15 "Tu B'Shevat"))))
 
 ;;;###autoload
-(put 'hebrew-holidays-3 'risky-local-variable t)
+(put 'hebrew-holidays-2 'risky-local-variable t)
+
 ;;;###autoload
 (defvar hebrew-holidays-3
   '((if all-hebrew-calendar-holidays
@@ -737,10 +739,10 @@
                   (day (extract-calendar-day s-s)))
              day))
          "Shabbat Shirah"))))
+;;;###autoload
+(put 'hebrew-holidays-3 'risky-local-variable t)
 
 ;;;###autoload
-(put 'hebrew-holidays-4 'risky-local-variable t)
-;;;###autoload
 (defvar hebrew-holidays-4
   '((holiday-passover-etc)
     (if (and all-hebrew-calendar-holidays
@@ -756,17 +758,18 @@
         (holiday-julian 3 26 "Kiddush HaHamah"))
     (if all-hebrew-calendar-holidays
         (holiday-tisha-b-av-etc))))
+;;;###autoload
+(put 'hebrew-holidays-4 'risky-local-variable t)
 
 ;;;###autoload
-(put 'hebrew-holidays 'risky-local-variable t)
-;;;###autoload
 (defvar hebrew-holidays (append hebrew-holidays-1 hebrew-holidays-2
 				hebrew-holidays-3 hebrew-holidays-4)
   "*Jewish holidays.
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'christian-holidays 'risky-local-variable t)
+(put 'hebrew-holidays 'risky-local-variable t)
+
 ;;;###autoload
 (defvar christian-holidays
   '((if all-christian-calendar-holidays
@@ -785,7 +788,8 @@
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'islamic-holidays 'risky-local-variable t)
+(put 'christian-holidays 'risky-local-variable t)
+
 ;;;###autoload
 (defvar islamic-holidays
   '((holiday-islamic
@@ -818,7 +822,8 @@
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'solar-holidays 'risky-local-variable t)
+(put 'islamic-holidays 'risky-local-variable t)
+
 ;;;###autoload
 (defvar solar-holidays
   '((if (fboundp 'atan)
@@ -848,7 +853,9 @@
 See the documentation for `calendar-holidays' for details.")
 
 ;;;###autoload
-(put 'calendar-holidays 'risky-local-variable t)
+(put 'solar-holidays 'risky-local-variable t)
+
+;;;###autoload
 (defvar calendar-holidays
   (append general-holidays local-holidays other-holidays
           christian-holidays hebrew-holidays islamic-holidays
@@ -940,6 +947,9 @@
 
      (((2 6 1989) \"New Moon\") ((2 12 1989) \"First Quarter Moon\") ... ).")
 
+;;;###autoload
+(put 'calendar-holidays 'risky-local-variable t)
+
 (defconst calendar-buffer "*Calendar*"
   "Name of the buffer used for the calendar.")
 
--- a/lisp/comint/telnet.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/comint/telnet.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,6 +1,6 @@
 ;;; telnet.el --- run a telnet session from within an Emacs buffer
 
-;;; Copyright (C) 1985, 1988, 1992, 1993, 1994 Free Software Foundation, Inc.
+;;; Copyright (C) 1985, 1988, 1992, 1994 Free Software Foundation, Inc.
 
 ;; Author: William F. Schelter
 ;; Keywords: comm, unix
@@ -19,11 +19,11 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the 
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
 
-;;; Synched up with: FSF 19.30.
+;;; Synched up with: FSF 19.34.
 
 ;;; Commentary:
 
@@ -55,17 +55,15 @@
 
 (defvar telnet-new-line "\r")
 (defvar telnet-mode-map nil)
-(make-variable-buffer-local 'telnet-new-line)
 (defvar telnet-default-prompt-pattern "^[^#$%>\n]*[#$%>] *")
 (defvar telnet-prompt-pattern telnet-default-prompt-pattern)
+
 (defvar telnet-replace-c-g nil)
-(make-variable-buffer-local 'telnet-replace-c-g)
-(defvar telnet-remote-echoes t
-   "True if the telnet process will echo input.")
-(make-variable-buffer-local 'telnet-remote-echoes)
-(defvar telnet-interrupt-string "\C-c"
-  "String sent by C-c.")
-(make-variable-buffer-local 'telnet-interrupt-string)
+(make-variable-buffer-local
+ (defvar telnet-remote-echoes t
+   "True if the telnet process will echo input."))
+(make-variable-buffer-local
+ (defvar telnet-interrupt-string "\C-c" "String sent by C-c."))
 
 (defvar telnet-count 0
   "Number of output strings read from the telnet process
@@ -94,6 +92,7 @@
   (interactive)
   (process-send-string nil "\C-z"))
 
+;; XEmacs change (Keep telnet- prefix)
 (defun telnet-send-process-next-char ()
   (interactive)
   (process-send-string nil
@@ -105,22 +104,22 @@
 ; initialization on first load.
 (if telnet-mode-map
     nil
-  (progn
-    (setq telnet-mode-map (make-sparse-keymap))
-    (set-keymap-name telnet-mode-map 'telnet-mode-map)
-    (set-keymap-parents telnet-mode-map (list comint-mode-map))
-    (define-key telnet-mode-map "\C-m" 'telnet-send-input)
-    ;;(define-key telnet-mode-map "\C-j" 'telnet-send-input)
-    (define-key telnet-mode-map "\C-c\C-q" 'telnet-send-process-next-char)
-    (define-key telnet-mode-map "\C-c\C-c" 'telnet-interrupt-subjob) 
-    (define-key telnet-mode-map "\C-c\C-z" 'telnet-c-z)))
+  ;; FSF
+  ;; (setq telnet-mode-map (nconc (make-sparse-keymap) comint-mode-map))
+  (setq telnet-mode-map (make-sparse-keymap))
+  (set-keymap-parents telnet-mode-map (list comint-mode-map))
+  (define-key telnet-mode-map "\C-m" 'telnet-send-input)
+;  (define-key telnet-mode-map "\C-j" 'telnet-send-input)
+  (define-key telnet-mode-map "\C-c\C-q" 'send-process-next-char)
+  (define-key telnet-mode-map "\C-c\C-c" 'telnet-interrupt-subjob) 
+  (define-key telnet-mode-map "\C-c\C-z" 'telnet-c-z))
 
 ;;maybe should have a flag for when have found type
 (defun telnet-check-software-type-initialize (string)
   "Tries to put correct initializations in.  Needs work."
   (let ((case-fold-search t))
     (cond ((string-match "unix" string)
-	   (setq telnet-prompt-pattern shell-prompt-pattern)
+	   (setq telnet-prompt-pattern comint-prompt-regexp)
 	   (setq telnet-new-line "\n"))
 	  ((string-match "tops-20" string) ;;maybe add telnet-replace-c-g
 	   (setq telnet-prompt-pattern  "[@>] *"))
--- a/lisp/electric/ebuff-menu.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/electric/ebuff-menu.el	Mon Aug 13 09:04:33 2007 +0200
@@ -42,7 +42,7 @@
 (defvar electric-buffer-menu-mode-map nil)
 
 ;;;###autoload
-(defun electric-buffer-list (arg)
+(defun electric-buffer-list (&optional files-only)
   "Pops up a buffer describing the set of Emacs buffers.
 Vaguely like ITS lunar select buffer; combining typeoutoid buffer
 listing with menuoid buffer selection.
@@ -57,11 +57,16 @@
 
 Calls value of `electric-buffer-menu-mode-hook' on entry if non-nil.
 
+Non-null optional arg FILES-ONLY means mention only file buffers.
+When called from Lisp code, FILES-ONLY may be a regular expression,
+in which case only buffers whose names match that expression are listed,
+or an arbitrary predicate function.
+
 \\{electric-buffer-menu-mode-map}" 
-  (interactive "P")
+  (interactive (list (if current-prefix-arg t nil)))
   (let (select buffer)
     (save-window-excursion
-      (save-window-excursion (list-buffers arg))
+      (save-window-excursion (list-buffers files-only))
       (setq buffer (window-buffer (Electric-pop-up-window "*Buffer List*")))
       (unwind-protect
 	  (progn
--- a/lisp/emulators/crisp.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/emulators/crisp.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,7 +1,7 @@
 ;; @(#) crisp.el -- Crisp/Brief Emacs emulator
 
 ;; Author: Gary D. Foster <Gary.Foster@corp.sun.com>
-;; $Revision: 1.1.1.1 $
+;; $Revision: 1.1.1.2 $
 ;; Keywords: emulations brief crisp
 
 ;; This file is part of GNU Emacs.
@@ -127,8 +127,8 @@
 (define-key crisp-mode-map [(meta f10)]      'compile)
 
 (define-key crisp-mode-map [(SunF37)]          'kill-buffer)
-(define-key crisp-mode-map [(kp_add)]       'x-copy-primary-selection)
-(define-key crisp-mode-map [(kp_subtract)]  'x-kill-primary-selection)
+(define-key crisp-mode-map [(kp-add)]       'x-copy-primary-selection)
+(define-key crisp-mode-map [(kp-subtract)]  'x-kill-primary-selection)
 (define-key crisp-mode-map [(insert)]       'x-yank-clipboard-selection)
 (define-key crisp-mode-map [(f16)]          'x-copy-primary-selection) ; copy on Sun5 kbd
 (define-key crisp-mode-map [(f20)]          'x-kill-primary-selection) ; cut on Sun5 kbd 
--- a/lisp/emulators/tpu-edt.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/emulators/tpu-edt.el	Mon Aug 13 09:04:33 2007 +0200
@@ -215,8 +215,8 @@
 ;;    ; Repeat the preceding mappings for X-windows.
 ;;    (cond
 ;;     (window-system
-;;      (global-set-key [kp_7] 'tpu-paragraph)                   ; KP7
-;;      (define-key GOLD-map [kp_f1] 'universal-argument)))      ; GOLD-PF1
+;;      (global-set-key [kp-7] 'tpu-paragraph)                   ; KP7
+;;      (define-key GOLD-map [kp-f1] 'universal-argument)))      ; GOLD-PF1
 
 ;;    ; Display the TPU-edt version.
 ;;    (tpu-version)
@@ -2250,7 +2250,7 @@
 
 
 ;;;
-;;;  Minibuffer map additions to make KP_enter = RET
+;;;  Minibuffer map additions to make KP-enter = RET
 ;;;
 (define-key minibuffer-local-map "\eOM" 'exit-minibuffer)
 (define-key minibuffer-local-ns-map "\eOM" 'exit-minibuffer)
--- a/lisp/games/blackbox.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/games/blackbox.el	Mon Aug 13 09:04:33 2007 +0200
@@ -89,7 +89,7 @@
   (define-key blackbox-mode-map " " 'bb-romp)
   (define-key blackbox-mode-map [insert] 'bb-romp)
   (define-key blackbox-mode-map "\C-m" 'bb-done)
-  (define-key blackbox-mode-map [kp_enter] 'bb-done))
+  (define-key blackbox-mode-map [kp-enter] 'bb-done))
 
 ;; Blackbox mode is suitable only for specially formatted data.
 (put 'blackbox-mode 'mode-class 'special)
--- a/lisp/games/gomoku.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/games/gomoku.el	Mon Aug 13 09:04:33 2007 +0200
@@ -117,7 +117,7 @@
   (define-key gomoku-mode-map [down] 'gomoku-move-down)
   (define-key gomoku-mode-map [left] 'gomoku-move-left)
   (define-key gomoku-mode-map [right] 'gomoku-move-right)
-  (define-key gomoku-mode-map [kp_enter] 'gomoku-human-plays)
+  (define-key gomoku-mode-map [kp-enter] 'gomoku-human-plays)
   (define-key gomoku-mode-map [button2] 'gomoku-click)
   (define-key gomoku-mode-map [insert] 'gomoku-human-plays))
 
--- a/lisp/ilisp/ilisp-out.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/ilisp/ilisp-out.el	Mon Aug 13 09:04:33 2007 +0200
@@ -262,7 +262,8 @@
   "Find the window directly below us, if any.  This is probably the 
  window from which enlarge-window would steal lines."
   (if (or (not (string-match "XEmacs" emacs-version))
-	  (< emacs-minor-version 12))
+	  (and (= emacs-major-version 19)
+	       (< emacs-minor-version 12)))
       (let* ((bottom (nth 3 (window-edges window)))
 	     (window* nil)
 	     (win window))
@@ -279,7 +280,8 @@
 (defun ilisp-find-top-left-most-window ()
   "Return the leftmost topmost window on the current screen."
   (if (or (not (string-match "XEmacs" emacs-version))
-	  (< emacs-minor-version 12))
+	  (and (= emacs-major-version 19)
+	       (< emacs-minor-version 12)))
       (let* ((window* (selected-window))
 	     (edges* (window-edges window*))
 	     (win nil)
--- a/lisp/modes/cc-mode.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/modes/cc-mode.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1261,6 +1261,7 @@
 ;; main entry points for the modes
 (defconst c-list-of-mode-names nil)
 
+;;;###autoload
 (defun c-mode ()
   "Major mode for editing K&R and ANSI C code.
 To submit a problem report, enter `\\[c-submit-bug-report]' from a
@@ -1296,6 +1297,7 @@
   (run-hooks 'c-mode-hook))
 (setq c-list-of-mode-names (cons "C" c-list-of-mode-names))
 
+;;;###autoload
 (defun c++-mode ()
   "Major mode for editing C++ code.
 To submit a problem report, enter `\\[c-submit-bug-report]' from a
@@ -1334,6 +1336,7 @@
   (run-hooks 'c++-mode-hook))
 (setq c-list-of-mode-names (cons "C++" c-list-of-mode-names))
 
+;;;###autoload
 (defun objc-mode ()
   "Major mode for editing Objective C code.
 To submit a problem report, enter `\\[c-submit-bug-report]' from an
@@ -1372,6 +1375,7 @@
   (run-hooks 'objc-mode-hook))
 (setq c-list-of-mode-names (cons "ObjC" c-list-of-mode-names))
 
+;;;###autoload
 (defun java-mode ()
   "Major mode for editing Java code.
 To submit a problem report, enter `\\[c-submit-bug-report]' from an
@@ -2332,6 +2336,7 @@
 	)))
    stylevars))
 
+;;;###autoload
 (defun c-set-style (stylename)
   "Set cc-mode variables to use one of several different indentation styles.
 STYLENAME is a string representing the desired style from the list of
--- a/lisp/modes/eiffel3.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/modes/eiffel3.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,4 +1,4 @@
-;;; $Id: eiffel3.el,v 1.1.1.1 1996/12/18 22:42:46 steve Exp $
+;;; $Id: eiffel3.el,v 1.1.1.2 1996/12/21 20:47:49 steve Exp $
 ;;;--------------------------------------------------------------------------
 ;;; TowerEiffel -- Copyright (c) 1993-1996 Tower Technology Corporation. 
 ;;; All Rights Reserved.
@@ -1770,7 +1770,7 @@
     (modify-syntax-entry ?> "." table)
     (modify-syntax-entry ?& "." table)
     (modify-syntax-entry ?| "." table)
-    (modify-syntax-entry ?; "." table)
+    (modify-syntax-entry ?\; "." table)
     (modify-syntax-entry ?: "." table)
     (modify-syntax-entry ?! "." table)
     (modify-syntax-entry ?. "." table)
--- a/lisp/modes/hideshow.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/modes/hideshow.el	Mon Aug 13 09:04:33 2007 +0200
@@ -159,15 +159,16 @@
 `forward-sexp'.  For other modes such as simula, a more specialized function
 is necessary.")
 
-(defvar hs-emacs-type 'fsf
+(defvar hs-emacs-type 'lucid
   "Used to support both FSF Emacs and Xemacs.")
 
-(eval-when-compile
-  (if (string-match "xemacs\\|lucid" emacs-version)
-      (progn
-	(defvar current-menubar nil "")
-	(defun set-buffer-menubar (arg1))
-	(defun add-menu (arg1 arg2 arg3)))))
+;; This doesn't work
+;(eval-when-compile
+;  (if (string-match "XEmacs\\|Lucid" emacs-version)
+;      (progn
+;	(defvar current-menubar nil "")
+;	(defun set-buffer-menubar (arg1))
+;	(defmacro add-menu (arg1 arg2 arg3)))))
 
 
 ;;;----------------------------------------------------------------------------
@@ -417,7 +418,7 @@
  	(if (eq hs-emacs-type 'lucid)
 	    (progn
 	      (set-buffer-menubar (copy-sequence current-menubar))
-	      (add-menu nil (car hs-menu-bar) (cdr hs-menu-bar))))
+	      (add-submenu (car hs-menu-bar) hs-menu-bar)))
 	(setq selective-display t
 	      selective-display-ellipses t)
 	(hs-grok-mode-type)
--- a/lisp/modes/outl-mouse.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/modes/outl-mouse.el	Mon Aug 13 09:04:33 2007 +0200
@@ -264,9 +264,10 @@
   '("Outline Commands"
     ["Hide all"		hide-body			t]
     ["Hide all subtrees" hide-subtrees-same-level	t]
+    ["Hide subtree"	hide-subtree                    t]
+;   ["Hide body"        hide-body                       t]
     "---"
-    ["Hide subtree"	hide-subtree                    t]
-    ["Hide body"        hide-body                       t]
+    ["Show all"		show-all			t]
     ["Show subtree"	show-subtree                    t]
     ["Show body"        show-entry                      t]
     "---"
--- a/lisp/mu/mu-bbdb.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mu/mu-bbdb.el	Mon Aug 13 09:04:33 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1996 Shuhei KOBAYASHI
 
 ;; Author: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
-;; Version: $Id: mu-bbdb.el,v 1.1.1.1 1996/12/18 22:43:39 steve Exp $
+;; Version: $Id: mu-bbdb.el,v 1.1.1.2 1996/12/21 20:50:53 steve Exp $
 
 ;; This file is part of tl (Tiny Library).
 
@@ -38,7 +38,8 @@
 ;;; Code:
 
 (require 'mu-cite)
-(require 'bbdb)
+(if (module-installed-p 'bbdb)
+    (require 'bbdb))
 
 (defvar mu-bbdb-load-hook nil
   "*List of functions called after mu-bbdb is loaded.")
@@ -61,9 +62,9 @@
 (defun mu-cite/set-bbdb-attr (attr addr)
   "Add attribute information to BBDB."
   (let* ((bbdb-notice-hook nil)
-         (record (bbdb-annotate-message-sender 
+         (record (bbdb-annotate-message-sender
                   addr t
-	          (bbdb-invoke-hook-for-value 
+	          (bbdb-invoke-hook-for-value
 	           bbdb/mail-auto-create-p)
 		  t)))
     (if record
--- a/lisp/mu/std11-parse.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mu/std11-parse.el	Mon Aug 13 09:04:33 2007 +0200
@@ -2,12 +2,12 @@
 
 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
-;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, RFC 822, STD 11
 ;; Version:
-;;	$Id: std11-parse.el,v 1.1.1.1 1996/12/18 22:43:39 steve Exp $
+;;	$Id: std11-parse.el,v 1.1.1.2 1996/12/21 20:50:53 steve Exp $
 
-;; This file is part of tl (Tiny Library).
+;; This file is part of MU (Message Utilities).
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -68,7 +68,7 @@
 	)
     (if (and (> len i)
 	     (eq (aref str i) open))
-	(let (p chr dest)
+	(let (p chr)
 	  (setq i (1+ i))
 	  (catch 'tag
 	    (while (< i len)
--- a/lisp/mu/std11.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mu/std11.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, RFC 822, STD 11
-;; Version: $Id: std11.el,v 1.1.1.1 1996/12/18 22:43:39 steve Exp $
+;; Version: $Id: std11.el,v 1.1.1.2 1996/12/21 20:50:52 steve Exp $
 
 ;; This file is part of MU (Message Utilities).
 
@@ -113,8 +113,11 @@
 (defun std11-unfold-string (string)
   "Unfold STRING as message header field. [std11.el]"
   (let ((dest ""))
-    (while (string-match "\n\\s +" string)
-      (setq dest (concat dest (substring string 0 (match-beginning 0)) " "))
+    (while (string-match "\n\\([ \t]\\)" string)
+      (setq dest (concat dest
+                         (substring string 0 (match-beginning 0))
+                         (match-string 1 string)
+                         ))
       (setq string (substring string (match-end 0)))
       )
     (concat dest string)
@@ -197,37 +200,48 @@
 ;;; @ quoted-string
 ;;;
 
+(defun std11-wrap-as-quoted-pairs (string specials)
+  (let (dest
+	(i 0)
+	(b 0)
+	(len (length string))
+	)
+    (while (< i len)
+      (let ((chr (aref string i)))
+	(if (memq chr specials)
+	    (setq dest (concat dest (substring string b i) "\\")
+		  b i)
+	  ))
+      (setq i (1+ i))
+      )
+    (concat dest (substring string b))
+    ))
+
 (defconst std11-non-qtext-char-list '(?\" ?\\ ?\r ?\n))
 
 (defun std11-wrap-as-quoted-string (string)
   "Wrap STRING as RFC 822 quoted-string. [std11.el]"
   (concat "\""
-	  (mapconcat (function
-		      (lambda (chr)
-			(if (memq chr std11-non-qtext-char-list)
-			    (concat "\\" (char-to-string chr))
-			  (char-to-string chr)
-			  )
-			)) string "")
+	  (std11-wrap-as-quoted-pairs string std11-non-qtext-char-list)
 	  "\""))
 
-(defun std11-strip-quoted-pair (str)
-  (let ((dest "")
+(defun std11-strip-quoted-pair (string)
+  "Strip quoted-pairs in STRING. [std11.el]"
+  (let (dest
+	(b 0)
 	(i 0)
-	(len (length str))
-	chr flag)
+	(len (length string))
+	)
     (while (< i len)
-      (setq chr (aref str i))
-      (if (or flag (not (eq chr ?\\)))
-	  (progn
-	    (setq dest (concat dest (char-to-string chr)))
-	    (setq flag nil)
-	    )
-	(setq flag t)
-	)
-      (setq i (+ i 1))
-      )
-    dest))
+      (let ((chr (aref string i)))
+	(if (eq chr ?\\)
+	    (setq dest (concat dest (substring string b i))
+		  b (1+ i)
+		  i (+ i 2))
+	  (setq i (1+ i))
+	  )))
+    (concat dest (substring string b))
+    ))
 
 (defun std11-strip-quoted-string (string)
   "Strip quoted-string STRING. [std11.el]"
@@ -291,13 +305,28 @@
 	       (comment (nth 2 address))
 	       phrase)
 	   (if (eq (car addr) 'phrase-route-addr)
-	       (setq phrase (mapconcat (function
-					(lambda (token)
-					  (cdr token)
-					  ))
-				       (nth 1 addr) ""))
+	       (setq phrase
+		     (mapconcat
+		      (function
+		       (lambda (token)
+			 (let ((type (car token)))
+			   (cond ((eq type 'quoted-string)
+				  (std11-strip-quoted-pair (cdr token))
+				  )
+				 ((eq type 'comment)
+				  (concat
+				   "("
+				   (std11-strip-quoted-pair (cdr token))
+				   ")")
+				  )
+				 (t
+				  (cdr token)
+				  )))))
+		      (nth 1 addr) ""))
 	     )
-	   (or phrase comment)
+	   (cond ((> (length phrase) 0) phrase)
+		 (comment (std11-strip-quoted-pair comment))
+		 )
 	   ))))
 
 
--- a/lisp/mule/chinese-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/chinese-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -28,9 +28,13 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;; Syntax of Chinese characters.
-(loop for row in '(33 34 41)  do (modify-syntax-entry `[chinese-gb ,row] "."))
-(loop for row from 35 to  40  do (modify-syntax-entry `[chinese-gb ,row] "w"))
-(loop for row from 42 to 126  do (modify-syntax-entry `[chinese-gb ,row] "w"))
+(modify-syntax-entry 'chinese-gb2312 "w")
+(loop for row in '(33 34 41)
+      do (modify-syntax-entry `[chinese-gb2312 ,row] "."))
+;;(loop for row from 35 to  40
+;;      do (modify-syntax-entry `[chinese-gb2312 ,row] "w"))
+;;(loop for row from 42 to 126
+;;      do (modify-syntax-entry `[chinese-gb2312 ,row] "w"))
 
 (modify-syntax-entry 'chinese-cns11643-1  "w")
 (modify-syntax-entry 'chinese-cns11643-2  "w")
@@ -77,7 +81,7 @@
  'euc-china 'iso2022
  "Coding-system of Chinese EUC (Extended Unix Code)."
  '(charset-g0 ascii
-   charset-g1 chinese-gb
+   charset-g1 chinese-gb2312
    charset-g2 sisheng
    charset-g3 t
    mnemonic "EUC/China"
@@ -99,31 +103,31 @@
 (copy-coding-system 'big5 'big5-eten)
 
 ;; If you prefer QUAIL to EGG, please modify below as you wish.
-(when (and (featurep 'egg) (featurep 'wnn))
-  (setq wnn-server-type 'cserver)
-  (load "its/pinyin")
-  (setq its:*standard-modes*
-        (cons (its:get-mode-map "PinYin") its:*standard-modes*)))
+;;(when (and (featurep 'egg) (featurep 'wnn))
+;;  (setq wnn-server-type 'cserver)
+;;  (load "its/pinyin")
+;;  (setq its:*standard-modes*
+;;        (cons (its:get-mode-map "PinYin") its:*standard-modes*)))
 
 ;; For QUAIL
 ;; Please add your own quail package if any.
 
 ;; For GB character input
-(add-hook 'quail-package-alist '("py"      "quail/py"))
-(add-hook 'quail-package-alist '("qj"      "quail/qj"))
-(add-hook 'quail-package-alist '("punct"   "quail/punct"))
-(add-hook 'quail-package-alist '("sw"      "quail/sw"))
-(add-hook 'quail-package-alist '("tonepy"  "quail/tonepy"))
-(add-hook 'quail-package-alist '("ccdospy" "quail/ccdospy"))
-(add-hook 'quail-package-alist '("ctlau"   "quail/ctlau"))
+;;(add-hook 'quail-package-alist '("py"      "quail/py"))
+;;(add-hook 'quail-package-alist '("qj"      "quail/qj"))
+;;(add-hook 'quail-package-alist '("punct"   "quail/punct"))
+;;(add-hook 'quail-package-alist '("sw"      "quail/sw"))
+;;(add-hook 'quail-package-alist '("tonepy"  "quail/tonepy"))
+;;(add-hook 'quail-package-alist '("ccdospy" "quail/ccdospy"))
+;;(add-hook 'quail-package-alist '("ctlau"   "quail/ctlau"))
 
 ;; For BIG5 character input
-(add-hook 'quail-package-alist '("py-b5"    "quail/py-b5"))
-(add-hook 'quail-package-alist '("qj-b5"    "quail/qj-b5"))
-(add-hook 'quail-package-alist '("punct-b5" "quail/punct-b5"))
-(add-hook 'quail-package-alist '("ctlaub"   "quail/ctlaub"))
-(add-hook 'quail-package-alist '("zozy"     "quail/zozy"))
-(add-hook 'quail-package-alist '("etzy"     "quail/etzy"))
+;;(add-hook 'quail-package-alist '("py-b5"    "quail/py-b5"))
+;;(add-hook 'quail-package-alist '("qj-b5"    "quail/qj-b5"))
+;;(add-hook 'quail-package-alist '("punct-b5" "quail/punct-b5"))
+;;(add-hook 'quail-package-alist '("ctlaub"   "quail/ctlaub"))
+;;(add-hook 'quail-package-alist '("zozy"     "quail/zozy"))
+;;(add-hook 'quail-package-alist '("etzy"     "quail/etzy"))
 
 ;; For Big5 handling
 
@@ -172,8 +176,9 @@
     (set-default-file-coding-system 'euc-china) ; GB encoding
     (setq terminal-coding-system    'euc-china)
     (setq keyboard-coding-system    'euc-china)
-    (when (featurep 'egg)
-      (setq-default its:*current-map* (its:get-mode-map "PinYin")))
-    (setq-default quail-current-package (assoc "py" quail-package-alist))))
+;;    (when (featurep 'egg)
+;;      (setq-default its:*current-map* (its:get-mode-map "PinYin")))
+;;    (setq-default quail-current-package (assoc "py" quail-package-alist))))
+    ))
 
 (set-coding-category-system 'big5 'big5)
--- a/lisp/mule/cyrillic-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/cyrillic-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -24,11 +24,7 @@
 ;;; Synched up with: Mule 2.3.
 
 ;; For syntax of Cyrillic
-(let ((c 33))
-  (while (< c 128)
-    (modify-syntax-entry (make-char 'cyrillic c) "w")
-    (setq c (1+ c))))
-(modify-syntax-entry (make-char 'cyrillic 32) "w") ; no-break space
+(modify-syntax-entry 'cyrillic-iso8859-5 "w")
 (modify-syntax-entry ?,L-(B ".")
 (modify-syntax-entry ?,Lp(B ".")
 (modify-syntax-entry ?,L}(B ".")
@@ -43,18 +39,18 @@
  'iso-8859-5 'iso2022
  "MIME ISO-8859-5"
  '(charset-g0 ascii
-   charset-g1 cyrillic
+   charset-g1 cyrillic-iso8859-5
    charset-g2 t
    charset-g3 t
    mnemonic "ISO8/Cyr"
    ))
 
-(add-hook 'quail-package-alist '("jcuken" "quail/cyrillic"))
-(add-hook 'quail-package-alist '("macedonian" "quail/cyrillic"))
-(add-hook 'quail-package-alist '("serbian" "quail/cyrillic"))
-(add-hook 'quail-package-alist '("beylorussian" "quail/cyrillic"))
-(add-hook 'quail-package-alist '("ukrainian" "quail/cyrillic"))
-(add-hook 'quail-package-alist '("yawerty" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("jcuken" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("macedonian" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("serbian" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("beylorussian" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("ukrainian" "quail/cyrillic"))
+;;(add-hook 'quail-package-alist '("yawerty" "quail/cyrillic"))
 
 (define-language-environment 'cyrillic
   "Cyrillic"
@@ -64,5 +60,6 @@
     (set-default-file-coding-system 'iso-8859-5)
     (setq terminal-coding-system 'iso-8859-5)
     (setq keyboard-coding-system 'iso-8859-5)
-    (setq-default quail-current-package
-		  (assoc "yawerty" quail-package-alist))))
+;;    (setq-default quail-current-package
+;;		  (assoc "yawerty" quail-package-alist))))
+    ))
--- a/lisp/mule/european-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/european-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -25,9 +25,9 @@
 
 ;; For syntax of Latin-1 characters.
 (loop for c from 64 to 127		; from ',A@(B' to ',A(B'
-      do (modify-syntax-entry (make-char 'latin-1 c) "w"))
+      do (modify-syntax-entry (make-char 'latin-iso8859-1 c) "w"))
 
-(modify-syntax-entry (make-char 'latin-1 32) "w") ; no-break space
+(modify-syntax-entry (make-char 'latin-iso8859-1 32) "w") ; no-break space
 (modify-syntax-entry ?,AW(B "_")
 (modify-syntax-entry ?,Aw(B "_")
 
@@ -36,9 +36,9 @@
       do (modify-syntax-entry c "w"))
 
 (loop for c from 62 to 126
-      do (modify-syntax-entry (make-char 'latin-2 c) "w"))
+      do (modify-syntax-entry (make-char 'latin-iso8859-2 c) "w"))
 
-(modify-syntax-entry (make-char 'latin-2 32) "w") ; no-break space
+(modify-syntax-entry (make-char 'latin-iso8859-2 32) "w") ; no-break space
 (modify-syntax-entry ?,BW(B ".")
 (modify-syntax-entry ?,Bw(B ".")
 
@@ -49,7 +49,7 @@
 (make-coding-system
  'iso-8859-2 'iso2022 "MIME ISO-8859-2"
  '(charset-g0 ascii
-   charset-g1 latin-2
+   charset-g1 latin-iso8859-2
    charset-g2 t
    charset-g3 t
    mnemonic "MIME/Ltn-2"
@@ -58,7 +58,7 @@
 (make-coding-system
  'iso-8859-3 'iso2022 "MIME ISO-8859-3"
  '(charset-g0 ascii
-   charset-g1 latin-3
+   charset-g1 latin-iso8859-3
    charset-g2 t
    charset-g3 t
    mnemonic "MIME/Ltn-3"
@@ -67,7 +67,7 @@
 (make-coding-system
  'iso-8859-4 'iso2022 "MIME ISO-8859-4"
  '(charset-g0 ascii
-   charset-g1 latin-4
+   charset-g1 latin-iso8859-4
    charset-g2 t
    charset-g3 t
    mnemonic "MIME/Ltn-4"
@@ -76,17 +76,17 @@
 (make-coding-system
  'iso-8859-9 'iso2022 "MIME ISO-8859-9"
  '(charset-g0 ascii
-   charset-g1 latin-5
+   charset-g1 latin-iso8859-9
    charset-g2 t
    charset-g3 t
    mnemonic "MIME/Ltn-5"
    ))
 
-(add-hook 'quail-package-alist '("latin-1" "quail/latin"))
-(add-hook 'quail-package-alist '("latin-2" "quail/latin"))
-(add-hook 'quail-package-alist '("latin-3" "quail/latin"))
-(add-hook 'quail-package-alist '("latin-4" "quail/latin"))
-(add-hook 'quail-package-alist '("latin-5" "quail/latin"))
+;(add-hook 'quail-package-alist '("latin-1" "quail/latin"))
+;(add-hook 'quail-package-alist '("latin-2" "quail/latin"))
+;(add-hook 'quail-package-alist '("latin-3" "quail/latin"))
+;(add-hook 'quail-package-alist '("latin-4" "quail/latin"))
+;(add-hook 'quail-package-alist '("latin-5" "quail/latin"))
 
 (define-language-environment 'european
   "European (for Latin-1 through Latin-5)"
@@ -94,12 +94,13 @@
     ;(set-coding-category-system 'iso-8-designate 'iso-8859-1)
     ;(set-coding-priority-list '(iso-8-designate iso-8-1))
     (set-default-file-coding-system    'binary) ; iso-8859-1
-    (setq locale-coding-system         'binary) ; iso-8859-1
+    ;;(setq locale-coding-system         'binary) ; iso-8859-1
     (setq process-input-coding-system  'binary) ; iso-8859-1
     (setq process-output-coding-system 'binary) ; iso-8859-1
     (set-default-file-coding-system    'binary) ; iso-8859-1
     (set-file-coding-system-for-read   'binary) ; iso-8859-1
     ;(setq display-coding-system 'iso-8859-1)
     ;(setq keyboard-coding-system 'iso-8859-1)
-    (setq-default quail-current-package
-                  (assoc "latin-1" quail-package-alist))))
+    ;(setq-default quail-current-package
+    ;              (assoc "latin-1" quail-package-alist))))
+    ))
--- a/lisp/mule/greek-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/greek-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -24,11 +24,9 @@
 ;;; Synched up with: Mule 2.3.
 
 ;; For syntax of Greek
-(let ((c 54))
-  (while (< c 127)
-    (modify-syntax-entry (make-char 'greek c) "w")
-    (setq c (1+ c))))
-(modify-syntax-entry (make-char 'greek 32) "w") ; no-break space
+(loop for c from 54 to 126
+      do (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w"))
+(modify-syntax-entry (make-char 'greek-iso8859-7 32) "w") ; no-break space
 (modify-syntax-entry ?,F7(B ".")
 (modify-syntax-entry ?,F;(B ".")
 (modify-syntax-entry ?,F=(B ".")
@@ -41,13 +39,13 @@
 (make-coding-system
  'iso-8859-7 'iso2022 "MIME ISO-8859-7"
  '(charset-g0 ascii
-   charset-g1 greek
+   charset-g1 greek-iso8859-7
    charset-g2 t
    charset-g3 t
    mnemonic "MIME/Grk"
    ))
 
-(add-hook 'quail-package-alist '("greek" "quail/greek"))
+;;(add-hook 'quail-package-alist '("greek" "quail/greek"))
 
 (define-language-environment 'greek
   "Greek"
@@ -57,6 +55,6 @@
     (set-default-file-coding-system 'iso-8859-7)
     (setq terminal-coding-system 'iso-8859-7)
     (setq keyboard-coding-system 'iso-8859-7)
-    (setq-default quail-current-package
-		  (assoc "greek" quail-package-alist))))
-
+;;    (setq-default quail-current-package
+;;		  (assoc "greek" quail-package-alist))))
+    ))
--- a/lisp/mule/hebrew-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/hebrew-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -29,14 +29,14 @@
 
 ;; Syntax of Hebrew characters
 (loop for c from 96 to 122
-      do (modify-syntax-entry (make-char 'hebrew c) "w"))
-(modify-syntax-entry (make-char 'hebrew 32) "w") ; no-break space
+      do (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w"))
+(modify-syntax-entry (make-char 'hebrew-iso8859-8 32) "w") ; no-break space
 
 (make-coding-system
  'iso-8859-8 'iso2022
  "MIME ISO-8859-8"
  '(charset-g0 ascii
-   charset-g1 hebrew
+   charset-g1 hebrew-iso8859-8
    charset-g2 t
    charset-g3 t
    no-iso6429 t
@@ -47,13 +47,13 @@
  'ctext-hebrew 'iso2022
  "Coding-system of Hebrew."
  '(charset-g0 ascii
-   charset-g1 hebrew
+   charset-g1 hebrew-iso8859-8
    charset-g2 t
    charset-g3 t
    mnemonic "CText/Hbrw"
 ))
 
-(add-hook 'quail-package-alist '("hebrew" "quail/hebrew"))
+;;(add-hook 'quail-package-alist '("hebrew" "quail/hebrew"))
 
 (define-language-environment 'hebrew
   "Hebrew"
@@ -63,5 +63,6 @@
     (set-default-file-coding-system 'iso-8859-8)
     (setq terminal-coding-system    'iso-8859-8)
     (setq keyboard-coding-system    'iso-8859-8)
-    (setq-default quail-current-package
-                  (assoc "hebrew" quail-package-alist))))
+;;    (setq-default quail-current-package
+;;                  (assoc "hebrew" quail-package-alist))))
+    ))
--- a/lisp/mule/japanese-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/japanese-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -28,7 +28,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;; Syntax of Japanese characters.
-(modify-syntax-entry 'japanese-jisx0201-kana "w")
+(modify-syntax-entry 'katakana-jisx0201 "w")
 (modify-syntax-entry 'japanese-jisx0212 "w")
 
 (modify-syntax-entry 'japanese-jisx0208 "w")
@@ -127,7 +127,7 @@
  '(charset-g0 ascii
    short t
    seven t
-   input-charset-conversion ((japanese-jisx0201-roman ascii)
+   input-charset-conversion ((latin-jisx0201 ascii)
 			     (japanese-jisx0208-1978 japanese-jisx0208))
    mnemonic "Mail/Ja"
    ))
@@ -140,7 +140,7 @@
  '(charset-g0 ascii
    short t
    seven t
-   output-charset-conversion ((ascii japanese-jisx0201-roman)
+   output-charset-conversion ((ascii latin-jisx0201)
 			      (japanese-jisx0208 japanese-jisx0208-1978))
    mnemonic "Mail/Ja-old"
    ))
@@ -150,7 +150,7 @@
  "Coding-system of Japanese EUC (Extended Unix Code)."
  '(charset-g0 ascii
    charset-g1 japanese-jisx0208
-   charset-g2 japanese-jisx0201-kana
+   charset-g2 katakana-jisx0201
    charset-g3 japanese-jisx0212
    short t
    mnemonic "EUC/Ja"
@@ -161,7 +161,7 @@
   (lambda ()
     (set-coding-category-system 'iso-7   'iso-2022-jp)
     (set-coding-category-system 'iso-8-2 'euc-japan)
-    (set-coding-priority-list '(iso-7 iso-8-2 no-conversion))
+    (set-coding-priority-list '(iso-7 iso-8-2 shift-jis no-conversion))
     ;;'(iso-8-2 iso-8-designate iso-8-1 shift-jis big5)
     
     ;;(when (featurep 'egg)
--- a/lisp/mule/mule-category.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/mule-category.el	Mon Aug 13 09:04:33 2007 +0200
@@ -214,26 +214,26 @@
     (terpri)))
 
 (defconst predefined-category-list
-  '((latin-1 ?l "Latin-1 through Latin-5 character set")
-    (latin-2 ?l)
-    (latin-3 ?l)
-    (latin-4 ?l)
-    (latin-5 ?l)
-    (cyrillic ?y "Cyrillic character set")
-    (arabic ?b "Arabic character set")
-    (greek  ?g "Greek character set")
-    (hebrew ?w "Hebrew character set")
-    (japanese-jisx0201-kana  ?k "Japanese 1-byte Katakana character set")
-    (japanese-jisx0201-roman ?r "Japanese 1-byte Roman character set")
+  '((latin-iso8859-1	?l "Latin-1 through Latin-5 character set")
+    (latin-iso8859-2	?l)
+    (latin-iso8859-3	?l)
+    (latin-iso8859-4	?l)
+    (latin-iso8859-9	?l)
+    (cyrillic-iso8859-5 ?y "Cyrillic character set")
+    (arabic-iso8859-6	?b "Arabic character set")
+    (greek-iso8859-7	?g "Greek character set")
+    (hebrew-iso8859-8	?w "Hebrew character set")
+    (katakana-jisx0201	?k "Japanese 1-byte Katakana character set")
+    (latin-jisx0201	?r "Japanese 1-byte Roman character set")
     (japanese-jisx0208-1978 ?j "Japanese 2-byte character set (old)")
-    (japanese-jisx0208 ?j "Japanese 2-byte character set")
-    (japanese-jisx0212 ?j)
-    (chinese-gb ?c "Chinese GB (China, PRC) 2-byte character set")
-    (chinese-cns11643-1 ?t "Chinese Taiwan (CNS or Big5) 2-byte character set")
-    (chinese-cns11643-2 ?t)
-    (chinese-big5-1 ?t)
-    (chinese-big5-2 ?t)
-    (korean-ksc5601 ?h "Hangul (Korean) 2-byte character set")
+    (japanese-jisx0208	?j "Japanese 2-byte character set")
+    (japanese-jisx0212	?j)
+    (chinese-gb2312	?c "Chinese GB (China, PRC) 2-byte character set")
+    (chinese-cns11643-1	?t "Chinese Taiwan (CNS or Big5) 2-byte character set")
+    (chinese-cns11643-2	?t)
+    (chinese-big5-1	?t)
+    (chinese-big5-2	?t)
+    (korean-ksc5601	?h "Hangul (Korean) 2-byte character set")
     )
   "List of predefined categories.
 Each element is a list of a charset, a designator, and maybe a doc string.")
--- a/lisp/mule/mule-coding.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/mule-coding.el	Mon Aug 13 09:04:33 2007 +0200
@@ -191,7 +191,7 @@
  'ctext 'iso2022
  "Coding-system used in X as Compound Text Encoding."
  '(charset-g0 ascii
-   charset-g1 latin-1
+   charset-g1 latin-iso8859-1
    eol-type lf
    mnemonic "CText"
    ))
@@ -200,7 +200,7 @@
  'iso-2022-ss2-8 'iso2022
  "ISO-2022 coding system using SS2 for 96-charset in 8-bit code."
  '(charset-g0 ascii
-   charset-g1 latin-1
+   charset-g1 latin-iso8859-1
    charset-g2 t ;; unspecified but can be used later.
    short t
    mnemonic "ISO8/SS"
@@ -229,7 +229,7 @@
  'iso-2022-8 'iso2022
  "ISO-2022 eight-bit coding system.  No single-shift or locking-shift."
  '(charset-g0 ascii
-   charset-g1 latin-1
+   charset-g1 latin-iso8859-1
    short t
    mnemonic "ISO8"
    ))
@@ -238,7 +238,7 @@
  'escape-quoted 'iso2022
  "ISO-2022 eight-bit coding system with escape quoting; used for .ELC files."
  '(charset-g0 ascii
-   charset-g1 latin-1
+   charset-g1 latin-iso8859-1
    eol-type lf
    escape-quoted t
    mnemonic "ESC/Quot"
--- a/lisp/mule/thai-hooks.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/mule/thai-hooks.el	Mon Aug 13 09:04:33 2007 +0200
@@ -42,7 +42,7 @@
  'tis620 'iso2022
  "Coding-system used for ASCII(MSB=0) & TIS620(MSB=1)."
  '(charset-g0 ascii
-   charset-g1 thai
+   charset-g1 thai-tis620
    no-ascii-cntl t
    mnemonic "TIS620"
    post-read-conversion thai-compose-region
@@ -53,9 +53,9 @@
 
 (define-language-environment 'thai
   "Thai"
-  #'(lambda ()
-      (set-coding-category-system 'iso-8-designate 'tis620)
-      (set-coding-priority-list '(iso-8-designate iso-8-1))
-      (set-default-file-coding-system 'tis620)
-      (setq-default quail-current-package (assoc "thai" quail-package-alist))))
+  (lambda ()
+    (set-coding-category-system 'iso-8-designate 'tis620)
+    (set-coding-priority-list '(iso-8-designate iso-8-1))
+    (set-default-file-coding-system 'tis620)))
+    ;;(setq-default quail-current-package (assoc "thai" quail-package-alist))))
 
--- a/lisp/packages/buff-menu.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/buff-menu.el	Mon Aug 13 09:04:33 2007 +0200
@@ -96,8 +96,8 @@
   (define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table)
   (define-key Buffer-menu-mode-map "%" 'Buffer-menu-toggle-read-only)
   (define-key Buffer-menu-mode-map "g" 'revert-buffer)
-  (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select)
-  (define-key Buffer-menu-mode-map [mouse-3] 'Buffer-menu-popup-menu)
+  (define-key Buffer-menu-mode-map 'button2 'Buffer-menu-mouse-select)
+  (define-key Buffer-menu-mode-map 'button3 'Buffer-menu-popup-menu)
   )
 
 ;; Buffer Menu mode is suitable only for specially formatted data.
@@ -489,7 +489,10 @@
 (make-variable-buffer-local 'list-buffers-identification)
 
 ;; XEmacs
-(defvar list-buffers-directory)
+;;;###autoload
+(defvar list-buffers-directory nil)
+
+;;;###autoload
 (make-variable-buffer-local 'list-buffers-directory)
 
 ;; #### not synched
--- a/lisp/packages/compile.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/compile.el	Mon Aug 13 09:04:33 2007 +0200
@@ -210,10 +210,10 @@
     ;; jwz:
     ;; IRIX 5.2
     ;; cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ...
-    (" \\([^ \"\n,]+\\), line \\([0-9]+\\):" 1 2)
+    (" \\([^ \n,\"]+\\), line \\([0-9]+\\):" 1 2)
     ;; IRIX 5.2
     ;; cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ...
-    (": \\([^ \n,]+\\): \\([0-9]+\\):" 1 2)
+    (": \\([^ \n,\"]+\\): \\([0-9]+\\):" 1 2)
 
     ;; Cray C compiler error messages
     ("\n\\(cc\\| cft\\)-[0-9]+ c\\(c\\|f77\\): ERROR \\([^,\n]+, \\)* File = \\([^,\n]+\\), Line = \\([0-9]+\\)" 4 5)
@@ -303,7 +303,7 @@
 (defvar grep-history nil)
 
 ;; XEmacs
-(defconst compilation-font-lock-keywords (purecopy
+(defvar compilation-font-lock-keywords (purecopy
   (list
    '("^[-_.\"A-Za-z0-9/+]+\\(:\\|, line \\)[0-9]+: \\([wW]arning:\\).*$" .
      font-lock-keyword-face)
--- a/lisp/packages/icomplete.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/icomplete.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 
 ;;; Author: Ken Manheimer <klm@nist.gov>
 ;;; Maintainer: Ken Manheimer <klm@nist.gov>
-;;; Version: $Id: icomplete.el,v 1.1.1.2 1996/12/18 22:50:53 steve Exp $
+;;; Version: $Id: icomplete.el,v 1.1.1.3 1996/12/21 20:48:12 steve Exp $
 ;;; Created: Mar 1993 klm@nist.gov - first release to usenet
 ;;; Keywords: help, abbrev
 
@@ -134,7 +134,7 @@
       (concat "<"
 	      (if keys
 		  (mapconcat 'key-description
-			     (sort '([next] [kp_next] [(control v)])
+			     (sort '([next] [kp-next] [(control v)])
 				   #'(lambda (x y)
 				       (< (length x) (length y))))
 			     ", ")
--- a/lisp/packages/lpr.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/lpr.el	Mon Aug 13 09:04:33 2007 +0200
@@ -95,6 +95,9 @@
   (interactive "r")
   (print-region-1 start end lpr-switches t))
 
+;; XEmacs change
+(require 'message)	; Until We can get some sensible autoloads, or
+			; message-flatten-list gets put somewhere decent.
 (defun print-region-1 (start end switches page-headers)
   ;; On some MIPS system, having a space in the job name
   ;; crashes the printer demon.  But using dashes looks ugly
@@ -106,6 +109,7 @@
 	(binary-process-input buffer-file-type)
 	(binary-process-output buffer-file-type)
 	(width tab-width)
+	nswitches
 	switch-string)
     (save-excursion
       (if page-headers
@@ -116,9 +120,18 @@
 					 (list lpr-headers-switches)
 				        lpr-headers-switches)
 				     switches))))
+      (setq nswitches (message-flatten-list    ; XEmacs
+		       (mapcar '(lambda (arg)  ; Dynamic evaluation
+				  (cond ((stringp arg) arg)
+					((functionp arg) (apply arg nil))
+					((symbolp arg) (eval arg))
+					((consp arg) (apply (car arg)
+							    (cdr arg)))
+					(t nil)))
+			       switches)))
       (setq switch-string
-	    (if switches (concat " with options "
-				 (mapconcat 'identity switches " "))
+	    (if nswitches (concat " with options "
+				 (mapconcat 'identity nswitches " "))
 	      ""))
       (message "Spooling%s..." switch-string)
       (if (/= tab-width 8)
@@ -150,7 +163,7 @@
 			   ;; These belong in pr if we are using that.
 			   (and lpr-add-switches lpr-headers-switches
 				(list "-T" title))
-			   switches)))
+			   nswitches)))
       (if (markerp end)
 	  (set-marker end nil))
       (message "Spooling%s...done" switch-string))))
--- a/lisp/packages/man-xref.el	Mon Aug 13 09:03:47 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-;;; man-xref.el --- cross reference selection functions for man mode
-
-;; Author:  Mark Hood <hood@eng.sun.com>
-;; @(#)man-xref.el	1.15	
-
-;; This file is part of XEmacs.
-
-;; XEmacs is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; XEmacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Synched up with: FSF 19.35.
-
-;;; Commentary:
-
-;; This package is an add-on to the man.el that comes with Emacs
-;; 19.34.  It renders manpage cross references in bold, sets them up
-;; for mouse highlighting, and allows selection via keystrokes or
-;; mouse.  All strings matching Man-reference-regexp in the text of
-;; the man page are set up, in addition to the ones in the See Also
-;; section.
-
-;; To use this package, put something like the following in your Emacs
-;; initialization file.  This example causes tab and M-tab to go to
-;; the next and previous manual cross references, causes carriage
-;; return to display a man page for the reference under point, and
-;; allows mouse button 2 to invoke a man page display.
-
-;; (add-hook 'Man-mode-hook
-;;	  '(lambda ()
-;;	     (Man-mouseify-xrefs)
-;;	     (define-key Man-mode-map "\r" 'Man-do-manual-reference)
-;;	     (define-key Man-mode-map "\t" 'Man-next-manual-reference)
-;;	     (define-key Man-mode-map "\e\t" 'Man-prev-manual-reference)
-;;	     (define-key Man-mode-map [mouse-2] 'Man-mouse-manual-reference)
-;;	     ))
-;;
-;; (autoload 'Man-mouseify-xrefs "~/emacs/man-xref")
-
-(eval-when-compile (require 'cl))
-
-(defvar Man-word-syntax "w_()" "Syntax for words in a man buffer.")
-
-(defun Man-current-word ()
-  "Return word under point, using `Man-word-syntax' for word syntax."
-  (save-excursion
-    (let ((s (+ (point) (skip-syntax-backward Man-word-syntax))))
-      (skip-syntax-forward Man-word-syntax)
-      (buffer-substring s (point)))))
-
-(defun Man-prev-word-hyphen-p ()
-  "Return nil if previous word is not hyphenated.
-Non-nil value is the buffer position of the beginning of the hyphenated word."
-  (save-excursion
-    (skip-syntax-backward Man-word-syntax)
-    (skip-chars-backward " \t")
-    (cond ((and (> (point) (1+ (point-min)))
-		(string-equal "-\n" (buffer-substring (- (point) 2) (point))))
-	   (backward-char)
-	   (skip-syntax-backward Man-word-syntax)
-	   (point)))))
-
-(defun Man-next-manual-reference ()
-  "Move point to the beginning of the next manual reference."
-  (interactive)
-  (let ((current (point))
-	(end (re-search-forward (concat "[ \t]" Man-reference-regexp) nil t))
-	(start (or (Man-prev-word-hyphen-p) (1+ (match-beginning 0)))))
-    (cond ((eq end nil))
-	  ((> start current)
-	   (goto-char start))
-	  ;; current is in the pre-hyphen portion of a hyphenated reference
-	  ((re-search-forward Man-reference-regexp nil t)
-	   (goto-char (or (Man-prev-word-hyphen-p) (match-beginning 0))))
-	  ((goto-char current)))))
-
-(defun Man-prev-manual-reference ()
-  "Move point to the beginning of the previous manual reference."
-  (interactive)
-  (if (re-search-backward (concat "[ \t]" Man-reference-regexp) nil t)
-      (goto-char (or (Man-prev-word-hyphen-p) (1+ (match-beginning 0))))))
-
-(defun Man-mouseify-xrefs ()
-  "Render man cross references in bold font and set up mouse highlighting.
-Add these cross references to `Man-refpages-alist'."
-  (let (start end xref hyphen alist)
-    (goto-char (point-min))
-    (forward-line 1)
-    (while (re-search-forward Man-reference-regexp nil t)
-      (setq start (match-beginning 0))
-      (setq end (match-end 0))
-      (setq xref (buffer-substring start end))
-      (cond ((setq hyphen (Man-prev-word-hyphen-p))
-	     (setq start hyphen)
-	     (goto-char hyphen)
-	     (setq xref (concat (substring (Man-current-word) 0 -1) xref))
-	     (goto-char end)))
-      (setq Man-refpages-alist (cons (list xref) Man-refpages-alist))
-      (Man-boldify-mouse-region start end))
-    (setq Man-refpages-alist
-	  (sort Man-refpages-alist
-		(function (lambda (a b) (string< (car a) (car b))))))
-    ;; delete duplicate entries in the alist
-    (setq alist Man-refpages-alist)
-    (while alist
-      (cond ((string= (car (car alist)) (car (car (cdr alist))))
-	     (setcdr alist (cdr (cdr alist))))
-	    ((setq alist (cdr alist)))))
-    (goto-char (point-min))
-    (forward-line 1)))
-
-(defun Man-mouse-manual-reference (mouse)
-  "Move point to mouse position and run `Man-getpage-in-background' there."
-  (interactive "e")
-  (select-window (car (car (cdr mouse))))
-  (goto-char (car (cdr (car (cdr mouse)))))
-  (Man-do-manual-reference))
-
-(defun Man-do-manual-reference ()
-  "Run `Man-getpage-in-background' on cross reference under point.
-Word under point is checked for a match with `Man-reference-regexp'.  
-If point is not over a word, try to use previous word for a match."
-  (interactive)
-  (save-excursion
-    (let ((xref (Man-current-word)) (hyphen (Man-prev-word-hyphen-p)))
-      (if (and (zerop (length xref))
-	       (setq xref " ")
-	       (skip-syntax-backward " ")
-	       (not (eq (point) (point-min))))
-	  (Man-do-manual-reference)
-	(cond ((string-equal "-" (substring xref -1))
-	       (skip-syntax-forward Man-word-syntax)
-	       (skip-syntax-forward " ")
-	       (setq xref (concat (substring xref 0 -1) (Man-current-word))))
-	      (hyphen
-	       (goto-char hyphen)
-	       (setq xref (concat (substring (Man-current-word) 0 -1) xref))))
-	(if (string-match Man-reference-regexp xref)
-	    (Man-getpage-in-background
-	     (Man-translate-references
-	      (substring xref (match-beginning 0) (match-end 0))))
-	  (message "No cross reference found under point."))))))
-
-(eval-and-compile
-  (when (string-match "XEmacs\\|Lucid" emacs-version)
-    (fset 'make-overlay 'make-extent)
-    (fset 'overlay-put 'set-extent-property)))
-
-(defun Man-boldify-mouse-region (beg end)
-  "Render region text in bold with mouse highlighting."
-  (let ((overlay (make-overlay beg end)))
-    (overlay-put overlay 'face 'bold)
-    (overlay-put overlay 'mouse-face 'highlight)
-    (overlay-put overlay 'hilit t)))
-
--- a/lisp/packages/man.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/man.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,11 +1,8 @@
 ;;; man.el --- browse UNIX manual pages
-
-;; Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc.
+;; Keywords: help
 
-;; Author:		Barry A. Warsaw <bwarsaw@cen.com>
-;; Keywords:		help
-;; Adapted-By:		ESR, pot
-
+;; Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc.
+;;
 ;; This file is part of XEmacs.
 
 ;; XEmacs is free software; you can redistribute it and/or modify it
@@ -20,1045 +17,1126 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Synched up with: FSF 19.34.
-
-;;; Commentary:
-
-;; This code provides a function, `man', with which you can browse
-;; UNIX manual pages.  Formatting is done in background so that you
-;; can continue to use your Emacs while processing is going on.
-;;
-;; The mode also supports hypertext-like following of manual page SEE
-;; ALSO references, and other features.  See below or do `?' in a
-;; manual page buffer for details.
-
-;; ========== Credits and History ========== 
-;; In mid 1991, several people posted some interesting improvements to
-;; man.el from the standard emacs 18.57 distribution.  I liked many of
-;; these, but wanted everything in one single package, so I decided
-;; to incorporate them into a single manual browsing mode.  While
-;; much of the code here has been rewritten, and some features added,
-;; these folks deserve lots of credit for providing the initial
-;; excellent packages on which this one is based.
-
-;; Nick Duffek <duffek@chaos.cs.brandeis.edu>, posted a very nice
-;; improvement which retrieved and cleaned the manpages in a
-;; background process, and which correctly deciphered such options as
-;; man -k.
-
-;; Eric Rose <erose@jessica.stanford.edu>, submitted manual.el which
-;; provided a very nice manual browsing mode.
-
-;; This package was available as `superman.el' from the LCD package
-;; for some time before it was accepted into Emacs 19.  The entry
-;; point and some other names have been changed to make it a drop-in
-;; replacement for the old man.el package.
-
-;; Francesco Potorti` <pot@cnuce.cnr.it> cleaned it up thoroughly,
-;; making it faster, more robust and more tolerant of different
-;; systems' man idiosyncrasies.
-
-;; ========== Features ==========
-;; + Runs "man" in the background and pipes the results through a
-;;   series of sed and awk scripts so that all retrieving and cleaning
-;;   is done in the background. The cleaning commands are configurable.
-;; + Syntax is the same as Un*x man
-;; + Functionality is the same as Un*x man, including "man -k" and
-;;   "man <section>", etc.
-;; + Provides a manual browsing mode with keybindings for traversing
-;;   the sections of a manpage, following references in the SEE ALSO
-;;   section, and more.
-;; + Multiple manpages created with the same man command are put into
-;;   a narrowed buffer circular list.
+;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
-;; ============= TODO ===========
-;; - Add a command for printing.
-;; - The awk script deletes multiple blank lines.  This behaviour does
-;;   not allow to understand if there was indeed a blank line at the
-;;   end or beginning of a page (after the header, or before the
-;;   footer).  A different algorithm should be used.  It is easy to
-;;   compute how many blank lines there are before and after the page
-;;   headers, and after the page footer.  But it is possible to compute
-;;   the number of blank lines before the page footer by euristhics
-;;   only.  Is it worth doing?
-;; - Allow a user option to mean that all the manpages should go in
-;;   the same buffer, where they can be browsed with M-n and M-p.
-;; - Allow completion on the manpage name when calling man.  This
-;;   requires a reliable list of places where manpages can be found.  The
-;;   drawback would be that if the list is not complete, the user might
-;;   be led to believe that the manpages in the missing directories do
-;;   not exist.
-
-
-;;; Code:
-
-(require 'assoc)
-
-;; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-;; empty defvars (keep the compiler quiet)
+;; Mostly rewritten by Alan K. Stebbens <aks@hub.ucsb.edu> 11-apr-90.
+;;
+;;  o  Match multiple man pages using TOPIC as a simple pattern
+;;  o  Search unformatted pages, even when formatted matches are found
+;;  o  Query the user as to which pages are desired
+;;  o  Use of the prefix arg to toggle/bypass the above features
+;;  o  Buffers named by the first topic in the buffer
+;;  o  Automatic uncompress for compressed man pages (.Z, .z, and .gz)
+;;  o  View the resulting buffer using M-x view mode
+;;
+;; Modified 16-mar-91 by Jamie Zawinski <jwz@lucid.com> to default the 
+;; manual topic to the symbol at point, just like find-tag does.
+;;
+;; Modified 22-mar-93 by jwz to use multiple fonts and follow xrefs with mouse.
+;;
+;; Modified 16-apr-93 by Dave Gillespie <daveg@synaptics.com> to make
+;; apropos work nicely; work correctly when bold or italic is unavailable; 
+;; reuse old buffer if topic is re-selected (in Manual-topic-buffer mode).
+;;
+;; Modified 4-apr-94 by jwz: merged in Tibor Polgar's code for manpath.conf.
+;;
+;; Modified 19-apr-94 by Tibor Polgar <tlp00@spg.amdahl.com> to add support for
+;; $PAGER variable to be emacsclient and properly process man pages (assuming
+;; the man pages were built by man in /tmp.  also fixed bug with man list being
+;; backwards.
+;;
+;; Modified 23-aug-94 by Tibor Polgar <tlp00@spg.amdahl.com> to add support for
+;; displaying only one instance of a man page (Manual-unique-man-sections-only)
+;; Fixed some more man page ordering bugs, bug with Manual-query-multiple-pages.
+;;
+;; Modified 29-nov-94 by Ben Wing <wing@spg.amdahl.com>: small fixes
+;; that should hopefully make things work under HPUX and IRIX.; 
+;;
+;; Modified 15-jul-95 by Dale Atems <atems@physics.wayne.edu>:
+;; some extensive rewriting to make things work right (more or less)
+;; under IRIX.
+;; 
+;; This file defines "manual-entry", and the remaining definitions all
+;; begin with "Manual-".  This makes the autocompletion on "M-x man" work.
+;;
+;; Variables of interest:
+;;
+;;	Manual-program
+;;	Manual-topic-buffer
+;;	Manual-buffer-view-mode
+;;	Manual-directory-list
+;;	Manual-formatted-directory-list
+;;	Manual-match-topic-exactly
+;;	Manual-query-multiple-pages
+;;	Manual-page-history
+;;	Manual-subdirectory-list
+;;	Manual-man-page-section-ids
+;;	Manual-formatted-page-prefix
+;;	Manual-unformatted-page-prefix
+;;	Manual-use-full-section-ids
 
-(defvar Man-notify)
-(defvar Man-current-page)
-(defvar Man-page-list)
-(defvar Man-filter-list nil
-  "*Manpage cleaning filter command phrases.
-This variable contains a list of the following form:
-
-'((command-string phrase-string*)*)
-
-Each phrase-string is concatenated onto the command-string to form a
-command filter.  The (standard) output (and standard error) of the Un*x
-man command is piped through each command filter in the order the
-commands appear in the association list.  The final output is placed in
-the manpage buffer.")
-
-(defvar Man-original-frame)
-(defvar Man-arguments)
-(defvar Man-sections-alist)
-(defvar Man-refpages-alist)
-(defvar Man-uses-untabify-flag t
-  "When non-nil use `untabify' instead of Man-untabify-command.")
-(defvar Man-page-mode-string)
-(defvar Man-sed-script nil
-  "Script for sed to nuke backspaces and ANSI codes from manpages.")
-
-;; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-;; user variables
-
-(defvar Man-fontify-manpage-flag t
-  "*Make up the manpage with fonts.")
-
-(defvar Man-overstrike-face 'bold
-  "*Face to use when fontifying overstrike.")
+(defvar Manual-program "man" "\
+*Name of the program to invoke in order to format the source man pages.")
 
-(defvar Man-underline-face 'underline
-  "*Face to use when fontifying underlining.")
-
-;; Use the value of the obsolete user option Man-notify, if set.
-(defvar Man-notify-method (if (boundp 'Man-notify) Man-notify 'friendly)
-  "*Selects the behavior when manpage is ready.
-This variable may have one of the following values, where (sf) means
-that the frames are switched, so the manpage is displayed in the frame
-where the man command was called from:
+(defvar Manual-section-switch (if (eq system-type 'usg-unix-v) "-s" nil)
+  "SysV needs this to work right.")
 
-newframe   -- put the manpage in its own frame (see `Man-frame-parameters')
-pushy      -- make the manpage the current buffer in the current window
-bully      -- make the manpage the current buffer and only window (sf)
-aggressive -- make the manpage the current buffer in the other window (sf)
-friendly   -- display manpage in the other window but don't make current (sf)
-polite     -- don't display manpage, but prints message and beep when ready
-quiet      -- like `polite', but don't beep
-meek       -- make no indication that the manpage is ready
+(defvar Manual-topic-buffer t "\
+*Non-nil means \\[Manual-entry] should output the manual entry for TOPIC into
+a buffer named *man TOPIC*, otherwise, it should name the buffer
+*Manual Entry*.")
 
-Any other value of `Man-notify-method' is equivalent to `meek'.")
-
-(defvar Man-frame-parameters nil
-  "*Frame parameter list for creating a new frame for a manual page.")
+(defvar Manual-buffer-view-mode t "\
+*Whether manual buffers should be placed in view-mode.
+nil means leave the buffer in fundamental-mode in another window.
+t means use `view-buffer' to display the man page in the current window.
+Any other value means use `view-buffer-other-window'.")
 
-(defvar Man-downcase-section-letters-flag t
-  "*Letters in sections are converted to lower case.
-Some Un*x man commands can't handle uppercase letters in sections, for
-example \"man 2V chmod\", but they are often displayed in the manpage
-with the upper case letter.  When this variable is t, the section
-letter (e.g., \"2V\") is converted to lowercase (e.g., \"2v\") before
-being sent to the man background process.")
-
-(defvar Man-circular-pages-flag t
-  "*If t, the manpage list is treated as circular for traversal.")
+(defvar Manual-match-topic-exactly t "\
+*Non-nil means that \\[manual-entry] will match the given TOPIC exactly, rather
+apply it as a pattern.  When this is nil, and \"Manual-query-multiple-pages\"
+is non-nil, then \\[manual-entry] will query you for all matching TOPICs.
+This variable only has affect on the preformatted man pages (the \"cat\" files),
+since the \"man\" command always does exact topic matches.")
 
-(defvar Man-section-translations-alist
-  (list
-   '("3C++" . "3")
-   ;; Some systems have a real 3x man section, so let's comment this.
-   ;; '("3X" . "3")                        ; Xlib man pages
-   '("3X11" . "3")
-   '("1-UCB" . ""))
-  "*Association list of bogus sections to real section numbers.
-Some manpages (e.g. the Sun C++ 2.1 manpages) have section numbers in
-their references which Un*x `man' does not recognize.  This
-association list is used to translate those sections, when found, to
-the associated section number.")
-
-(defvar manual-program "man"
-  "The name of the program that produces man pages.")
-
-(defvar Man-untabify-command "pr"
-  "Command used for untabifying.")
-
-(defvar Man-untabify-command-args (list "-t" "-e")
-  "List of arguments to be passed to Man-untabify-command (which see).")
+(defvar Manual-query-multiple-pages nil "\
+*Non-nil means that \\[manual-entry] will query the user about multiple man
+pages which match the given topic.  The query is done using the function 
+\"y-or-n-p\".  If this variable is nil, all man pages with topics matching the
+topic given to \\[manual-entry] will be inserted into the temporary buffer.
+See the variable \"Manual-match-topic-exactly\" to control the matching.")
 
-(defvar Man-sed-command "sed"
-  "Command used for processing sed scripts.")
-
-(defvar Man-awk-command "awk"
-  "Command used for processing awk scripts.")
+(defvar Manual-unique-man-sections-only nil
+  "*Only present one man page per section.  This variable is useful if the same or
+up/down level man pages for the same entry are present in mulitple man paths.
+When set to t, only the first entry found in a section is displayed, the others
+are ignored without any messages or warnings.  Note that duplicates can occur if
+the system has both formatted and unformatted version of the same page.")
 
-(defvar Man-mode-line-format
-  '("" mode-line-modified
-       mode-line-buffer-identification "  "
-       global-mode-string
-       " " Man-page-mode-string
-       "  %[(" mode-name mode-line-process minor-mode-alist ")%]----"
-       (-3 . "%p") "-%-")
-  "Mode line format for manual mode buffer.")
+(defvar Manual-mode-hook nil
+  "Function or functions run on entry to Manual-mode.")
 
-(defvar Man-mode-map nil
-  "Keymap for Man mode.")
-
-(defvar Man-mode-hook nil
-  "Hook run when Man mode is enabled.")
+(defvar Manual-directory-list nil "\
+*A list of directories used with the \"man\" command, where each directory
+contains a set of \"man?\" and \"cat?\" subdirectories.  If this variable is nil,
+it is initialized by \\[Manual-directory-list-init].")
 
-(defvar Man-cooked-hook nil
-  "Hook run after removing backspaces but before Man-mode processing.")
-
-(defvar Man-name-regexp "[-a-zA-Z0-9_][-a-zA-Z0-9_.]*"
-  "Regular expression describing the name of a manpage (without section).")
+(defvar Manual-formatted-directory-list nil "\
+A list of directories containing formatted man pages.  Initialized by
+\\[Manual-directory-list-init].")
 
-(defvar Man-section-regexp "[0-9][a-zA-Z+]*\\|[LNln]"
-  "Regular expression describing a manpage section within parentheses.")
+(defvar Manual-unformatted-directory-list nil "\
+A list of directories containing the unformatted (source) man pages.  
+Initialized by \\[Manual-directory-list-init].")
 
-(defvar Man-page-header-regexp
-  (concat "^[ \t]*\\(" Man-name-regexp
-	  "(\\(" Man-section-regexp "\\))\\).*\\1")
-  "Regular expression describing the heading of a page.")
-
-(defvar Man-heading-regexp "^\\([A-Z][A-Z ]+\\)$"
-  "Regular expression describing a manpage heading entry.")
-
-(defvar Man-see-also-regexp "SEE ALSO"
-  "Regular expression for SEE ALSO heading (or your equivalent).
-This regexp should not start with a `^' character.")
+(defvar Manual-page-history nil "\
+A list of names of previously visited man page buffers.")
 
-(defvar Man-first-heading-regexp "^[ \t]*NAME$\\|^[ \t]*No manual entry fo.*$"
-  "Regular expression describing first heading on a manpage.
-This regular expression should start with a `^' character.")
+(defvar Manual-manpath-config-file "/usr/lib/manpath.config"
+  "*Location of the manpath.config file, if any.")
 
-(defvar Man-reference-regexp
-  (concat "\\(" Man-name-regexp "\\)(\\(" Man-section-regexp "\\))")
-  "Regular expression describing a reference in the SEE ALSO section.")
+(defvar Manual-apropos-switch "-k"
+  "*Man apropos switch")
 
-(defvar Man-switches ""
-  "Switches passed to the man command, as a single string.")
+;; New variables.
 
-(defvar Man-specified-section-option
-  (if (string-match "-solaris[0-9.]*$" system-configuration)
-      "-s"
-    "")
-  "Option that indicates a specified a manual section name.")
+(defvar Manual-subdirectory-list nil "\
+A list of all the subdirectories in which man pages may be found.
+Iniialized by Manual-directory-list-init.")
 
-;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-;; end user variables
-
-;; other variables and keymap initializations
-(make-variable-buffer-local 'Man-sections-alist)
-(make-variable-buffer-local 'Man-refpages-alist)
-(make-variable-buffer-local 'Man-page-list)
-(make-variable-buffer-local 'Man-current-page)
-(make-variable-buffer-local 'Man-page-mode-string)
-(make-variable-buffer-local 'Man-original-frame)
-(make-variable-buffer-local 'Man-arguments)
+;; This is for SGI systems; don't know what it should be otherwise.
+(defvar Manual-man-page-section-ids "1nl6823457poD" "\
+String containing all suffix characters for \"cat\" and \"man\"
+that identify valid sections of the Un*x manual.") 
 
-(setq-default Man-sections-alist nil)
-(setq-default Man-refpages-alist nil)
-(setq-default Man-page-list nil)
-(setq-default Man-current-page 0)
-(setq-default Man-page-mode-string "1 of 1")
+(defvar Manual-formatted-page-prefix "cat" "\
+Prefix for directories where formatted man pages are to be found.
+Defaults to \"cat\".")
 
-(defconst Man-sysv-sed-script "\
-/\b/ {	s/_\b//g
-	s/\b_//g
-        s/o\b+/o/g
-        s/+\bo/o/g
-	:ovstrk
-	s/\\(.\\)\b\\1/\\1/g
-	t ovstrk
-	}
-/\e\\[[0-9][0-9]*m/ s///g"
-  "Script for sysV-like sed to nuke backspaces and ANSI codes from manpages.")
+(defvar Manual-unformatted-page-prefix "man" "\
+Prefix for directories where unformatted man pages are to be found.
+Defaults to \"man\".")
 
-(defconst Man-berkeley-sed-script "\
-/\b/ {	s/_\b//g\\
-	s/\b_//g\\
-        s/o\b+/o/g\\
-        s/+\bo/o/g\\
-	:ovstrk\\
-	s/\\(.\\)\b\\1/\\1/g\\
-	t ovstrk\\
-	}\\
-/\e\\[[0-9][0-9]*m/ s///g"
-  "Script for berkeley-like sed to nuke backspaces and ANSI codes from manpages.")
+(defvar Manual-leaf-signature "" "\
+Regexp for identifying \"leaf\" subdirectories in the search path.
+If empty, initialized by Manual-directory-list-init.")
+
+(defvar Manual-use-full-section-ids t "\
+If non-nil, pass full section ids to Manual-program, otherwise pass
+only the first character. Defaults to 't'.")
 
-(if Man-mode-map
-    nil
-  (setq Man-mode-map (make-keymap))
-  (suppress-keymap Man-mode-map)
-  (define-key Man-mode-map " "    'scroll-up)
-  (define-key Man-mode-map "\177" 'scroll-down)
-  (define-key Man-mode-map "n"    'Man-next-section)
-  (define-key Man-mode-map "p"    'Man-previous-section)
-  (define-key Man-mode-map "\en"  'Man-next-manpage)
-  (define-key Man-mode-map "\ep"  'Man-previous-manpage)
-  (define-key Man-mode-map ">"    'end-of-buffer)
-  (define-key Man-mode-map "<"    'beginning-of-buffer)
-  (define-key Man-mode-map "."    'beginning-of-buffer)
-  (define-key Man-mode-map "r"    'Man-follow-manual-reference)
-  (define-key Man-mode-map "g"    'Man-goto-section)
-  (define-key Man-mode-map "s"    'Man-goto-see-also-section)
-  (define-key Man-mode-map "k"    'Man-kill)
-  (define-key Man-mode-map "q"    'Man-quit)
-  (define-key Man-mode-map "m"    'man)
-  (define-key Man-mode-map "?"    'describe-mode)
-  )
+(defvar Manual-use-subdirectory-list (eq system-type 'irix) "\
+This makes manual-entry work correctly on SGI machines but it
+imposes a large startup cost which is why it is not simply on by
+default on all systems.")
+
+(make-face 'man-italic)
+(or (face-differs-from-default-p 'man-italic)
+    (copy-face 'italic 'man-italic))
+;; XEmacs (from Darrell Kindred): underlining is annoying due to
+;; large blank spaces in this face.
+;; (or (face-differs-from-default-p 'man-italic)
+;;    (set-face-underline-p 'man-italic t))
 
-
-;; ======================================================================
-;; utilities
-
-(defun Man-init-defvars ()
-  "Used for initialising variables based on the value of window-system.
-This is necessary if one wants to dump man.el with emacs."
+(make-face 'man-bold)
+(or (face-differs-from-default-p 'man-bold)
+    (copy-face 'bold 'man-bold))
+(or (face-differs-from-default-p 'man-bold)
+    (copy-face 'man-italic 'man-bold))
 
-  ;; The following is necessary until fonts are implemented on
-  ;; terminals.
-  (setq Man-fontify-manpage-flag (and Man-fontify-manpage-flag
-				      window-system))
+(make-face 'man-heading)
+(or (face-differs-from-default-p 'man-heading)
+    (copy-face 'man-bold 'man-heading))
 
-  (setq Man-sed-script
-	(cond
-	 (Man-fontify-manpage-flag
-	  nil)
-	 ((= 0 (call-process Man-sed-command nil nil nil Man-sysv-sed-script))
-	  Man-sysv-sed-script)
-	 ((= 0 (call-process Man-sed-command nil nil nil Man-berkeley-sed-script))
-	  Man-berkeley-sed-script)
-	 (t
-	  nil)))
+(make-face 'man-xref)
+(or (face-differs-from-default-p 'man-xref)
+    (set-face-underline-p 'man-xref t))
+
+;; Manual-directory-list-init
+;; Initialize the directory lists.
 
-  (setq Man-filter-list
-	(list
-	 (cons
-	  Man-sed-command
-	  (list
-	   (if Man-sed-script
-	       (concat "-e '" Man-sed-script "'")
-	     "")
-	   "-e '/^[\001-\032][\001-\032]*$/d'"
-	   "-e '/\e[789]/s///g'"
-	   "-e '/Reformatting page.  Wait/d'"
-	   "-e '/Reformatting entry.  Wait/d'"
-	   "-e '/^[ \t]*Hewlett-Packard[ \t]Company[ \t]*-[ \t][0-9]*[ \t]-/d'"
-	   "-e '/^[ \t]*Hewlett-Packard[ \t]*-[ \t][0-9]*[ \t]-.*$/d'"
-	   "-e '/^[ \t][ \t]*-[ \t][0-9]*[ \t]-[ \t]*Formatted:.*[0-9]$/d'"
-	   "-e '/^[ \t]*Page[ \t][0-9]*.*(printed[ \t][0-9\\/]*)$/d'"
-	   "-e '/^Printed[ \t][0-9].*[0-9]$/d'"
-	   "-e '/^[ \t]*X[ \t]Version[ \t]1[01].*Release[ \t][0-9]/d'"
-	   "-e '/^[A-za-z].*Last[ \t]change:/d'"
-	   "-e '/^Sun[ \t]Release[ \t][0-9].*[0-9]$/d'"
-	   "-e '/[ \t]*Copyright [0-9]* UNIX System Laboratories, Inc.$/d'"
-	   "-e '/^[ \t]*Rev\\..*Page [0-9][0-9]*$/d'"
-	   ))
-	 (cons
-	  Man-awk-command
-	  (list
-	   "'\n"
-	   "BEGIN { blankline=0; anonblank=0; }\n"
-	   "/^$/ { if (anonblank==0) next; }\n"
-	   "{ anonblank=1; }\n"
-	   "/^$/ { blankline++; next; }\n"
-	   "{ if (blankline>0) { print \"\"; blankline=0; } print $0; }\n"
-	   "'"
-	   ))
-	 (if (not Man-uses-untabify-flag)
-	     (cons
-	      Man-untabify-command
-	      Man-untabify-command-args)
-	   )))
-)
-
-(defsubst Man-match-substring (&optional n string)
-  "Return the substring matched by the last search.
-Optional arg N means return the substring matched by the Nth paren
-grouping.  Optional second arg STRING means return a substring from
-that string instead of from the current buffer."
-  (if (null n) (setq n 0))
-  (if string
-      (substring string (match-beginning n) (match-end n))
-    (buffer-substring (match-beginning n) (match-end n))))
-
-(defsubst Man-make-page-mode-string ()
-  "Formats part of the mode line for Man mode."
-  (format "%s page %d of %d"
-	  (or (nth 2 (nth (1- Man-current-page) Man-page-list))
-	      "")
-	  Man-current-page
-	  (length Man-page-list)))
-
-(defsubst Man-build-man-command ()
-  "Builds the entire background manpage and cleaning command."
-  (let ((command (concat manual-program " " Man-switches " %s 2>/dev/null"))
-	(flist Man-filter-list))
-    (while (and flist (car flist))
-      (let ((pcom (car (car flist)))
-	    (pargs (cdr (car flist))))
-	(setq command
-	      (concat command " | " pcom " "
-		      (mapconcat '(lambda (phrase)
-				    (if (not (stringp phrase))
-					(error "Malformed Man-filter-list"))
-				    phrase)
-				 pargs " ")))
-	(setq flist (cdr flist))))
-    command))
+(defun Manual-directory-list-init (&optional arg) 
+  "Initialize the Manual-directory-list variable from $MANPATH
+if it is not already set, or if a prefix argument is provided."
+  (interactive "P")
+  (if arg (setq Manual-directory-list nil))
+  (if (null Manual-directory-list)
+      (let ((manpath (getenv "MANPATH"))
+	    (global (Manual-manpath-config-contents))
+	    (dirlist nil)
+	    dir)
+	(cond ((and manpath global)
+	       (setq manpath (concat manpath ":" global)))
+	      (global
+	       (setq manpath global))
+	      ((not manpath)
+	       ;; XEmacs - (bpw/stig) Unix-specifix hack for lusers w/ no manpath
+	       (setq manpath "/usr/local/man:/usr/share/man:/usr/contrib/man:/usr/X11/man:/usr/man:/usr/catman")))
+	;; Make sure that any changes we've made internally are seen by man.
+	(setenv "MANPATH" manpath)
+	(while (string-match "\\`:*\\([^:]+\\)" manpath)
+	  (setq dir (substring manpath (match-beginning 1) (match-end 1)))
+	  (and (not (member dir dirlist))
+	       (setq dirlist (cons dir dirlist)))
+	  (setq manpath (substring manpath (match-end 0))))
+	(setq dirlist (nreverse dirlist))
+	(setq Manual-directory-list dirlist)
+	(setq Manual-subdirectory-list nil)
+	(setq Manual-formatted-directory-list nil)
+	(setq Manual-unformatted-directory-list nil)))
+  (if (string-equal Manual-leaf-signature "")
+      (setq Manual-leaf-signature
+	    (concat "/\\("
+		    Manual-formatted-page-prefix
+		    "\\|" Manual-unformatted-page-prefix
+		    "\\)"
+		    "[" Manual-man-page-section-ids
+		    "].?/.")))
+  (if Manual-use-subdirectory-list
+      (progn
+	(if (null Manual-subdirectory-list)
+	    (setq Manual-subdirectory-list
+		  (Manual-all-subdirectories Manual-directory-list
+					     Manual-leaf-signature nil)))
+	(if (null Manual-formatted-directory-list)
+	    (setq Manual-formatted-directory-list
+		  (Manual-filter-subdirectories Manual-subdirectory-list
+						Manual-formatted-page-prefix)))
+	(if (null Manual-unformatted-directory-list)
+	    (setq Manual-unformatted-directory-list
+		  (Manual-filter-subdirectories Manual-subdirectory-list
+						Manual-unformatted-page-prefix))))
+    (if (null Manual-formatted-directory-list)
+        (setq Manual-formatted-directory-list
+	      (Manual-select-subdirectories Manual-directory-list
+					    Manual-formatted-page-prefix)))
+    (if (null Manual-unformatted-directory-list)
+        (setq Manual-unformatted-directory-list
+	      (Manual-select-subdirectories Manual-directory-list
+					    Manual-unformatted-page-prefix)))))
 
-(defun Man-translate-references (ref)
-  "Translates REF from \"chmod(2V)\" to \"2v chmod\" style.
-Leave it as is if already in that style.  Possibly downcase and
-translate the section (see the Man-downcase-section-letters-flag
-and the Man-section-translations-alist variables)."
-  (let ((name "")
-	(section "")
-	(slist Man-section-translations-alist))
-    (cond
-     ;; "chmod(2V)" case ?
-     ((string-match (concat "^" Man-reference-regexp "$") ref)
-      (setq name (Man-match-substring 1 ref)
-	    section (Man-match-substring 2 ref)))
-     ;; "2v chmod" case ?
-     ((string-match (concat "^\\(" Man-section-regexp
-			    "\\) +\\(" Man-name-regexp "\\)$") ref)
-      (setq name (Man-match-substring 2 ref)
-	    section (Man-match-substring 1 ref))))
-    (if (string= name "")
-	ref				; Return the reference as is
-      (if Man-downcase-section-letters-flag
-	  (setq section (downcase section)))
-      (while slist
-	(let ((s1 (car (car slist)))
-	      (s2 (cdr (car slist))))
-	  (setq slist (cdr slist))
-	  (if Man-downcase-section-letters-flag
-	      (setq s1 (downcase s1)))
-	  (if (not (string= s1 section)) nil
-	    (setq section (if Man-downcase-section-letters-flag
-			      (downcase s2)
-			    s2)
-		  slist nil))))
-      (concat Man-specified-section-option section " " name))))
 
-
-;; ======================================================================
-;; default man entry: get word under point
-
-(defsubst Man-default-man-entry ()
-  "Make a guess at a default manual entry.
-This guess is based on the text surrounding the cursor, and the
-default section number is selected from `Man-auto-section-alist'."
-  (let (default-title)
-    (save-excursion
-      
-      ;; Default man entry title is any word the cursor is on, or if
-      ;; cursor not on a word, then nearest preceding word.  Cannot
-      ;; use the current-word function because it skips the dots.
-      (if (not (looking-at "[-a-zA-Z_.]"))
-	  (skip-chars-backward "^a-zA-Z"))
-      (skip-chars-backward "-(a-zA-Z_0-9_.")
-      (if (looking-at "(") (forward-char 1))
-      (setq default-title
-	    (buffer-substring
-	     (point)
-	     (progn (skip-chars-forward "-a-zA-Z0-9_.") (point))))
-      
-      ;; If looking at something like ioctl(2) or brc(1M), include the
-      ;; section number in the returned value.  Remove text properties.
-      (let ((result (concat
-		     default-title
-		     (if (looking-at
-			  (concat "[ \t]*([ \t]*\\("
-				  Man-section-regexp "\\)[ \t]*)"))
-			 (format "(%s)" (Man-match-substring 1))))))
-	(set-text-properties 0 (length result) nil result)
-	result))))
-
-
-;; ======================================================================
-;; Top level command and background process sentinel
-
-;; For compatibility with older versions.
-;;;###autoload
-(defalias 'manual-entry 'man)
+(defun Manual-manpath-config-contents ()
+  "Parse the `Manual-manpath-config-file' file, if any.
+Returns a string like in $MANPATH."
+  (if (and Manual-manpath-config-file
+	   (file-readable-p Manual-manpath-config-file))
+      (let ((buf (get-buffer-create " *Manual-config*"))
+	    path)
+	(set-buffer buf)
+	(buffer-disable-undo buf)
+	(erase-buffer)
+	(insert-file-contents Manual-manpath-config-file)
+	(while (re-search-forward "^\\(MANDATORY_MANPATH\\|MANPATH_MAP\\)"
+				  nil t)
+	  (and (re-search-forward "\\(/[^ \t\n]+\\)[ \t]*$")
+	       (setq path (concat path (buffer-substring (match-beginning 1)
+							 (match-end 1))
+				  ":"))))
+	(kill-buffer buf)
+	path)))
+;;
+;; manual-entry  -- The "main" user function
+;;
 
 ;;;###autoload
-(defun man (man-args)
-  "Get a Un*x manual page and put it in a buffer.
-This command is the top-level command in the man package.  It runs a Un*x
-command to retrieve and clean a manpage in the background and places the
-results in a Man mode (manpage browsing) buffer.  See variable
-`Man-notify-method' for what happens when the buffer is ready.
-If a buffer already exists for this man page, it will display immediately."
+(defun manual-entry (topic &optional arg silent)
+  "Display the Unix manual entry (or entries) for TOPIC.
+If prefix arg is given, modify the search according to the value:
+  2 = complement default exact matching of the TOPIC name;
+      exact matching default is specified by `Manual-match-topic-exactly'
+  3 = force a search of the unformatted man directories
+  4 = both 2 and 3
+The manual entries are searched according to the variable
+Manual-directory-list, which should be a list of directories.  If
+Manual-directory-list is nil, \\[Manual-directory-list-init] is
+invoked to create this list from the MANPATH environment variable.
+See the variable Manual-topic-buffer which controls how the buffer
+is named.  See also the variables Manual-match-topic-exactly,
+Manual-query-multiple-pages, and Manual-buffer-view-mode."
+  (interactive
+   (list (let* ((fmh "-A-Za-z0-9_.")
+		(default (save-excursion
+			   (buffer-substring
+			    (progn
+			      (re-search-backward "\\sw" nil t)
+			      (skip-chars-backward fmh) (point))
+			    (progn (skip-chars-forward fmh) (point)))))
+		(thing (read-string
+			(if (equal default "") "Manual entry: "
+			  (concat "Manual entry: (default " default ") ")))))
+	   (if (equal thing "") default thing))
+	 (prefix-numeric-value current-prefix-arg)))
+  ;;(interactive "sManual entry (topic): \np")
+  (or arg (setq arg 1))
+  (Manual-directory-list-init nil)
+  (let ((exact (if (or (= arg 2) (= arg 4))
+		   (not Manual-match-topic-exactly)
+		 Manual-match-topic-exactly))
+	(force (if (>= arg 3)
+                   t
+                   nil))
+	section fmtlist manlist apropos-mode)
+    (let ((case-fold-search nil))
+      (if (and (null section)
+	       (string-match
+		"\\`[ \t]*\\([^( \t]+\\)[ \t]*(\\(.+\\))[ \t]*\\'" topic))
+	  (setq section (substring topic (match-beginning 2)
+				   (match-end 2))
+		topic (substring topic (match-beginning 1)
+				 (match-end 1)))
+	(if (string-match "\\`[ \t]*-k[ \t]+\\([^ \t]+\\)\\'" topic)
+	    (setq section "-k"
+		  topic (substring topic (match-beginning 1))))))
+    (if (equal section "-k")
+	(setq apropos-mode t)
+      (or silent
+	  (message "Looking for formatted entry for %s%s..."
+		   topic (if section (concat "(" section ")") "")))
+      (setq fmtlist (Manual-select-man-pages
+                      Manual-formatted-directory-list
+                      topic section exact '()))
+      (if (or force (not section) (null fmtlist))
+	  (progn
+	    (or silent
+		(message "%sooking for unformatted entry for %s%s..."
+			 (if fmtlist "L" "No formatted entry, l")
+			 topic (if section (concat "(" section ")") "")))
+	    (setq manlist (Manual-select-man-pages
+                            Manual-unformatted-directory-list
+                            topic section exact (if force '() fmtlist))))))
+
+    ;; Delete duplicate man pages (a file of the same name in multiple
+    ;; directories.)
+    (or nil ;force
+        (let ((rest (append fmtlist manlist)))
+          (while rest
+            (let ((rest2 (cdr rest)))
+              (while rest2
+                (if (equal (file-name-nondirectory (car rest))
+                           (file-name-nondirectory (car rest2)))
+                    (setq fmtlist (delq (car rest2) fmtlist)
+                          manlist (delq (car rest2) manlist)))
+                (setq rest2 (cdr rest2))))
+            (setq rest (cdr rest)))))
+
+    (if (not (or fmtlist manlist apropos-mode))
+        (progn
+          (message "No entries found for %s%s" topic
+                   (if section (concat "(" section ")") ""))
+          nil)
+      (let ((bufname (cond ((not Manual-topic-buffer)
+                            ;; What's the point of retaining this?
+                            (if apropos-mode
+                                "*Manual Apropos*"
+                                "*Manual Entry*"))
+                           (apropos-mode
+                            (concat "*man apropos " topic "*"))
+                           (t
+                            (concat "*man "
+                                    (cond (exact
+                                           (if section
+                                               (concat topic "." section)
+                                               topic))
+                                          ((or (cdr fmtlist) (cdr manlist)
+                                               (and fmtlist manlist))
+                                           ;; more than one entry found
+                                           (concat topic "..."))
+                                          (t
+                                           (file-name-nondirectory
+                                            (car (or fmtlist manlist)))))
+                                    "*"))))
+            (temp-buffer-show-function 
+             (cond ((eq 't Manual-buffer-view-mode) 'view-buffer)
+                   ((eq 'nil Manual-buffer-view-mode)
+                    temp-buffer-show-function)
+                   (t 'view-buffer-other-window))))
+
+        (if apropos-mode
+            (setq manlist (list (format "%s.%s" topic section))))
+
+        (cond
+          ((and Manual-topic-buffer (get-buffer bufname))
+           ;; reselect an old man page buffer if it exists already.
+           (save-excursion
+             (set-buffer (get-buffer bufname))
+             (Manual-mode))
+           (if temp-buffer-show-function
+               (funcall temp-buffer-show-function (get-buffer bufname))
+               (display-buffer bufname)))
+          (t
+           (with-output-to-temp-buffer bufname
+             (buffer-disable-undo standard-output)
+             (save-excursion
+               (set-buffer standard-output)
+               (setq buffer-read-only nil)
+               (erase-buffer)
+	       (Manual-insert-pages fmtlist manlist apropos-mode)
+               (set-buffer-modified-p nil)
+               (Manual-mode)
+               ))))
+        (setq Manual-page-history
+              (cons (buffer-name)
+                    (delete (buffer-name) Manual-page-history)))
+        (message nil)
+        t))))
+
+(defun Manpage-apropos (topic &optional arg silent)
+  "Apropos on Unix manual pages for TOPIC.
+It calls the function `manual-entry'. Look at this function for
+further description. Look also at the variable `Manual-apropos-switch',
+if this function doesn't work on your system."
   (interactive
-   (list (let* ((default-entry (Man-default-man-entry))
-		(input (read-string
-			(format "Manual entry%s: "
-				(if (string= default-entry "")
-				    ""
-				  (format " (default %s)" default-entry))))))
-	   (if (string= input "")
-	       (if (string= default-entry "")
-		   (error "No man args given")
-		 default-entry)
-	     input))))
+   (list (let* ((fmh "-A-Za-z0-9_.")
+		(default (save-excursion
+			   (buffer-substring
+			    (progn
+			      (re-search-backward "\\sw" nil t)
+			      (skip-chars-backward fmh) (point))
+			    (progn (skip-chars-forward fmh) (point)))))
+		(thing (read-string
+			(if (equal default "") "Manual entry: "
+			  (concat "Manual entry: (default " default ") ")))))
+	   (if (equal thing "") default thing))
+	 (prefix-numeric-value current-prefix-arg)))
+  (manual-entry (concat Manual-apropos-switch " " topic) arg silent))
+
+(defun Manual-insert-pages (fmtlist manlist apropos-mode)
+  (let ((sep (make-string 65 ?-))
+	name start end topic section)
+    (while fmtlist			; insert any formatted files
+      (setq name (car fmtlist))
+      (goto-char (point-max))
+      (setq start (point))
+      ;; In case the file can't be read or uncompressed or
+      ;; something like that.
+      (condition-case ()
+	  (Manual-insert-man-file name)
+	(file-error nil))
+      (goto-char (point-max))
+      (setq end (point))
+      (save-excursion
+	(save-restriction
+	  (message "Cleaning manual entry for %s..."
+		   (file-name-nondirectory name))
+	  (narrow-to-region start end)
+	  (Manual-nuke-nroff-bs)
+	  (goto-char (point-min))
+	  (insert "File: " name "\n")
+	  (goto-char (point-max))
+	  ))
+      (if (or (cdr fmtlist) manlist)
+	  (insert "\n\n" sep "\n"))
+      (setq fmtlist (cdr fmtlist)))
 
-  ;; Possibly translate the "subject(section)" syntax into the
-  ;; "section subject" syntax and possibly downcase the section.
-  (setq man-args (Man-translate-references man-args))
+    (while manlist			; process any unformatted files
+      (setq name (car manlist))
+      (or (string-match "\\([^/]+\\)\\.\\([^./]+\\)\\(\\.gz\\'\\)" name)
+	  (string-match "\\([^/]+\\)\\.\\([^./]+\\)\\'" name))
+      (setq topic (substring name (match-beginning 1) (match-end 1)))
+      (setq section (substring name (match-beginning 2) (match-end 2)))
+      ;; This won't work under IRIX, because SGI man accepts only the
+      ;; "main" (one-character) section id, not full section ids
+      ;; like 1M, 3X, etc. Put (setq Manual-use-full-section-ids nil)
+      ;; in your .emacs to work around this problem.
+      (if (not (or Manual-use-full-section-ids (string-equal section "")))
+	  (setq section (substring section 0 1)))
+      (message "Invoking man %s%s %s..."
+	       (if Manual-section-switch
+		   (concat Manual-section-switch " ")
+		 "")
+	       section topic)
+      (setq start (point))
+      (Manual-run-formatter name topic section)
+      (setq end (point))
+      (save-excursion
+	(save-restriction
+	  (message "Cleaning manual entry for %s(%s)..." topic section)
+	  (narrow-to-region start end)
+	  (Manual-nuke-nroff-bs apropos-mode)
+	  (goto-char (point-min))
+	  (insert "File: " name "\n")
+	  (goto-char (point-max))
+	  ))
+      (if (cdr manlist)
+	  (insert "\n\n" sep "\n"))
+      (setq manlist (cdr manlist))))
+  (if (< (buffer-size) 200)
+      (progn
+	(goto-char (point-min))
+	(if (looking-at "^File: ")
+	    (forward-line 1))
+	(error (buffer-substring (point) (progn (end-of-line) (point))))))
+  nil)
+
+
+(defun Manual-run-formatter (name topic section)
+  (cond ((string-match "roff\\'" Manual-program)
+	 ;; kludge kludge
+	 (call-process Manual-program nil t nil "-Tman" "-man" name))
+	(Manual-section-switch
+	 (call-process Manual-program nil t nil Manual-section-switch
+		       section topic))
+	(t
+	 (call-process Manual-program nil t nil section topic))))
+
 
-  (Man-getpage-in-background man-args))
+(defvar Manual-mode-map
+  (let ((m (make-sparse-keymap)))
+    (set-keymap-name m 'Manual-mode-map)
+    (define-key m "l" 'Manual-last-page)
+    (define-key m 'button2 'Manual-follow-xref)
+    (define-key m 'button3 'Manual-popup-menu)
+    m))
+
+(defun Manual-mode ()
+  (kill-all-local-variables)
+  (setq buffer-read-only t)
+  (use-local-map Manual-mode-map)
+  (setq major-mode 'Manual-mode
+	mode-name "Manual")
+  ;; man pages with long lines are buggy!
+  ;; This looks slightly better if they only
+  ;; overran by a couple of chars.
+  (setq truncate-lines t)
+  ;; turn off horizontal scrollbars in this buffer
+  (set-specifier scrollbar-height (cons (current-buffer) 0))
+  (run-hooks 'Manual-mode-hook))
+
+(defun Manual-last-page ()
+  (interactive)
+  (while (or (not (get-buffer (car (or Manual-page-history
+				       (error "No more history.")))))
+	     (eq (get-buffer (car Manual-page-history)) (current-buffer)))
+    (setq Manual-page-history (cdr Manual-page-history)))
+  (switch-to-buffer (car Manual-page-history)))
+
+
+;; Manual-select-subdirectories
+;; Given a DIRLIST and a SUBDIR name, return all subdirectories of the former which
+;; match the latter.
+
+(defun Manual-select-subdirectories (dirlist subdir)
+  (let ((dirs '())
+        (case-fold-search nil)
+        (match (concat "\\`" (regexp-quote subdir)))
+        d)
+    (while dirlist
+      (setq d (car dirlist) dirlist (cdr dirlist))
+      (if (file-directory-p d)
+          (let ((files (directory-files d t match nil 'dirs-only))
+		(dir-temp '()))
+            (while files
+              (if (file-executable-p (car files))
+                  (setq dir-temp (cons (file-name-as-directory (car files))
+                                   dir-temp)))
+              (setq files (cdr files)))
+	    (and dir-temp
+		 (setq dirs (append dirs (nreverse dir-temp)))))))
+    dirs))
 
 
-(defun Man-getpage-in-background (topic)
-  "Uses TOPIC to build and fire off the manpage and cleaning command."
-  (let* ((man-args topic)
-	 (bufname (concat "*Man " man-args "*"))
-	 (buffer  (get-buffer bufname)))
-    (if buffer
-	(Man-notify-when-ready buffer)
-      (require 'env)
-      (message "Invoking %s %s in the background" manual-program man-args)
-      (setq buffer (generate-new-buffer bufname))
-      (save-excursion
-	(set-buffer buffer)
-	(setq Man-original-frame (selected-frame))
-	(setq Man-arguments man-args))
-      (let ((process-environment (copy-sequence process-environment)))
-	;; Prevent any attempt to use display terminal fanciness.
-	(setenv "TERM" "dumb")
-	(set-process-sentinel
-	 (start-process manual-program buffer "sh" "-c"
-			(format (Man-build-man-command) man-args))
-	 'Man-bgproc-sentinel)))))
+;; Manual-filter-subdirectories
+;; Given a DIRLIST and a SUBDIR name, return all members of the former
+;; which match the latter.
+
+(defun Manual-filter-subdirectories (dirlist subdir)
+  (let ((match (concat
+		"/"
+		(regexp-quote subdir)
+		"[" Manual-man-page-section-ids "]"))
+	slist dir)
+    (while dirlist
+      (setq dir (car dirlist) dirlist (cdr dirlist))
+      (if (and (file-executable-p dir) (string-match match dir))
+	    (setq slist (cons dir slist))))
+    (nreverse slist)))
+
+
+(defun Manual-all-subdirectories (dirlist leaf-signature dirs &optional silent) "\
+Given a DIRLIST, return a backward-sorted list of all subdirectories
+thereof, prepended to DIRS if non-nil. This function calls itself
+recursively until subdirectories matching LEAF-SIGNATURE are reached,
+or the hierarchy has been thoroughly searched. This code is a modified
+version of a function written by Tim Bradshaw (tfb@ed.ac.uk)."
+  (Manual-all-subdirectories-noloop dirlist leaf-signature dirs nil silent))
+
+(defun Manual-all-subdirectories-noloop (dirlist leaf-signature dirs been &optional silent) "\
+Does the job of manual-all-subdirectories and keeps track of where it
+has been to avoid loops."
+  (let (dir)
+    (while dirlist
+      (setq dir (car dirlist) dirlist (cdr dirlist))
+      (if (file-directory-p dir)
+	  (let ((dir-temp (cons (file-name-as-directory dir) dirs)))
+	    ;; Without feedback the user might wonder about the delay!
+	    (or silent (message
+			"Building list of search directories... %s"
+			(car dir-temp)))
+	    (if (member (file-truename dir) been)
+		()		 ; Ignore. We have been here before
+	      (setq been (cons (file-truename dir) been))
+	      (setq dirs
+		    (if (string-match leaf-signature dir)
+			dir-temp
+		      (Manual-all-subdirectories-noloop
+		       (directory-files dir t "[^.]$" nil 'dirs-only)
+		       leaf-signature dir-temp been silent))))))))
+  dirs)
+
+
+(defvar Manual-bogus-file-pattern "\\.\\(lpr\\|ps\\|PS\\)\\'"
+  "Some systems have files in the man/man*/ directories which aren't man pages.
+This pattern is used to prune those files.")
+
+;; Manual-select-man-pages
+;;
+;; Given a DIRLIST, discover all filenames which complete given the TOPIC
+;; and SECTION.
+
+;; ## Note: BSD man looks for .../man1/foo.1 and .../man1/$MACHINE/foo.1
+
+;; ## Fixed for SGI IRIX 5.x on Sat Jul 15 1995 by Dale Atems
+;; (atems@physics.wayne.edu).
+
+(defun Manual-select-man-pages (dirlist topic section exact shadow)
+  (let ((case-fold-search nil))
+    (and section
+      (let ((l '())
+	    ;;(match (concat (substring section 0 1) "/?\\'"))
+	    ;;                                          ^^^
+	    ;; We'll lose any pages inside subdirectories of the "standard"
+	    ;; ones if we insist on this! The following regexp should
+	    ;; match any directory ending with the full section id or
+	    ;; its first character, or any direct subdirectory thereof:
+	    (match (concat "\\("
+			   (regexp-quote section)
+			   "\\|"
+			   (substring section 0 1)
+			   "\\)/?"))
+	    d)
+	(while dirlist
+	  (setq d (car dirlist) dirlist (cdr dirlist))
+	  (if (string-match match d)
+	      (setq l (cons d l))))
+	(setq dirlist l)))
+    (if shadow
+        (setq shadow (concat "/\\("
+                             (mapconcat #'(lambda (n)
+                                            (regexp-quote
+                                             (file-name-nondirectory n)))
+                                        shadow
+                                        "\\|")
+                             "\\)\\'")))
+    (let ((manlist '())
+          (match (concat "\\`"
+                           (regexp-quote topic)
+			    ;; **Note: on IRIX the preformatted pages
+			    ;; are packed, so they end with ".z". This
+			    ;; way you miss them if you specify a
+			    ;; section. I don't see any point to it here
+			    ;; even on BSD systems since we're looking
+			    ;; one level down already, but I can't test
+			    ;; this. More thought needed (???)
 
-(defun Man-notify-when-ready (man-buffer)
-  "Notify the user when MAN-BUFFER is ready.
-See the variable `Man-notify-method' for the different notification behaviors."
-  (let ((saved-frame (save-excursion
-		       (set-buffer man-buffer)
-		       Man-original-frame)))
-    (cond
-     ((eq Man-notify-method 'newframe)
-      ;; Since we run asynchronously, perhaps while Emacs is waiting
-      ;; for input, we must not leave a different buffer current.  We
-      ;; can't rely on the editor command loop to reselect the
-      ;; selected window's buffer.
-      (save-excursion
-	(set-buffer man-buffer)
-	(make-frame Man-frame-parameters)))
-     ((eq Man-notify-method 'pushy)
-      (switch-to-buffer man-buffer))
-     ((eq Man-notify-method 'bully)
-      (and window-system
-	   (frame-live-p saved-frame)
-	   (select-frame saved-frame))
-      (pop-to-buffer man-buffer)
-      (delete-other-windows))
-     ((eq Man-notify-method 'aggressive)
-      (and window-system
-	   (frame-live-p saved-frame)
-	   (select-frame saved-frame))
-      (pop-to-buffer man-buffer))
-     ((eq Man-notify-method 'friendly)
-      (and window-system
-	   (frame-live-p saved-frame)
-	   (select-frame saved-frame))
-      (display-buffer man-buffer 'not-this-window))
-     ((eq Man-notify-method 'polite)
-      (beep)
-      (message "Manual buffer %s is ready" (buffer-name man-buffer)))
-     ((eq Man-notify-method 'quiet)
-      (message "Manual buffer %s is ready" (buffer-name man-buffer)))
-     ((or (eq Man-notify-method 'meek)
-	  t)
-      (message ""))
-     )))
+			   (cond ((and section
+				       (not Manual-use-subdirectory-list))
+				  (concat "\\." (regexp-quote section)))
+                                 (exact
+                                  ;; If Manual-match-topic-exactly is
+                                  ;; set, then we must make sure the
+                                  ;; completions are exact, except for
+                                  ;; trailing weird characters after
+                                  ;; the section.
+                                  "\\.")
+                                 (t
+                                  ""))))
+          dir)
+      (while dirlist
+        (setq dir (car dirlist) dirlist (cdr dirlist))
+        (if (not (file-directory-p dir))
+            (progn
+              (message "warning: %s is not a directory" dir)
+              ;;(sit-for 1)
+              )
+            (let ((files (directory-files dir t match nil t))
+                  f)
+              (while files
+                (setq f (car files) files (cdr files))
+                (cond ((string-match Manual-bogus-file-pattern f)
+		       ;(message "Bogus fule %s" f) (sit-for 2)
+                       )
+		      ((and shadow (string-match shadow f))
+                       ;(message "Shadowed %s" f) (sit-for 2)
+                       )
+                      ((not (file-readable-p f))
+                       ;(message "Losing with %s" f) (sit-for 2)
+                       )
+                      (t
+                       (setq manlist (cons f manlist))))))))
+      (setq manlist (nreverse manlist))
+      (and Manual-unique-man-sections-only
+	   (setq manlist (Manual-clean-to-unique-pages-only manlist)))
+      (if (and manlist Manual-query-multiple-pages)
+          (apply #'append
+                 (mapcar #'(lambda (page)
+                             (and page 
+                                  (y-or-n-p (format "Read %s? " page))
+				  (list page)))
+                         manlist))
+          manlist))))
 
-(defun Man-fontify-manpage ()
-  "Convert overstriking and underlining to the correct fonts.
-Same for the ANSI bold and normal escape sequences."
-  (interactive)
-  (message "Please wait: making up the %s man page..." Man-arguments)
-  (goto-char (point-min))
-  (while (search-forward "\e[1m" nil t)
-    (delete-backward-char 4)
-    (put-text-property (point)
-		       (progn (if (search-forward "\e[0m" nil 'move)
-				  (delete-backward-char 4))
-			      (point))
-		       'face Man-overstrike-face))
+(defun Manual-clean-to-unique-pages-only (manlist)
+  "Prune the current list of pages down to a unique set."
+  (let (page-name unique-pages)
+    (apply 'append
+	   (mapcar '(lambda (page)
+		      (cond (page
+			     (and (string-match ".*/\\(.*\\)" page)
+				  (setq page-name (substring page (match-beginning 1)
+							     (match-end 1)))
+				  ;; try to clip off .Z, .gz suffixes
+				  (and (string-match "\\(.*\\)\\.\\(.+\\)\\.\\(.+\\)"
+						     page-name)
+				       (setq page-name
+					     (substring page-name (match-beginning 1)
+							(match-end 2)))))
+			     ;; add Manual-unique-pages if it isn't there
+			     ;;  and return file
+			     (if (and unique-pages
+				      page-name
+				      (string-match (concat "\\b" page-name "\\b")
+						    unique-pages))
+				 nil
+			       (setq unique-pages (concat unique-pages
+								 page-name
+								 " "))
+			       (list page)))))
+		   manlist))))
+			    
+
+
+(defun Manual-insert-man-file (name)
+  ;; Insert manual file (unpacked as necessary) into buffer
+  (cond ((equal (substring name -3) ".gz")
+	 (call-process "gunzip" nil t nil "--stdout" name))
+        ((or (equal (substring name -2) ".Z")
+	     ;; HPUX uses directory names that end in .Z and compressed
+	     ;; files that don't.  How gratuitously random.
+             (let ((case-fold-search nil))
+               (string-match "\\.Z/" name)))
+	 (call-process "zcat" name t nil)) ;; XEmacs change for HPUX
+	((equal (substring name -2) ".z")
+	 (call-process "pcat" nil t nil name))
+	(t
+	 (insert-file-contents name))))
+
+(defmacro Manual-delete-char (n)
+  ;; in v19, delete-char is compiled as a function call, but delete-region
+  ;; is byte-coded, so it's much faster.  (We were spending 40% of our time
+  ;; in delete-char alone.)
+  (list 'delete-region '(point) (list '+ '(point) n)))
+
+;; Hint: BS stands form more things than "back space"
+(defun Manual-nuke-nroff-bs (&optional apropos-mode)
+  (interactive "*")
+  ;;
+  ;; turn underlining into italics
+  ;;
   (goto-char (point-min))
   (while (search-forward "_\b" nil t)
-    (backward-delete-char 2)
-    (put-text-property (point) (1+ (point)) 'face Man-underline-face))
-  (goto-char (point-min))
-  (while (search-forward "\b_" nil t)
-    (backward-delete-char 2)
-    (put-text-property (1- (point)) (point) 'face Man-underline-face))
-  (goto-char (point-min))
-  (while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
-    (replace-match "\\1")
-    (put-text-property (1- (point)) (point) 'face Man-overstrike-face))
-  (goto-char (point-min))
-  (while (re-search-forward "o\b\\+\\|\\+\bo" nil t)
-    (replace-match "o")
-    (put-text-property (1- (point)) (point) 'face 'bold))
-  (goto-char (point-min))
-  (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t)
-    (replace-match "+")
-    (put-text-property (1- (point)) (point) 'face 'bold))
-  ;; \255 is some kind of dash in Latin-1.
+    ;; searching for underscore-backspace and then comparing the following
+    ;; chars until the sequence ends turns out to be much faster than searching
+    ;; for a regexp which matches the whole sequence.
+    (let ((s (match-beginning 0)))
+      (goto-char s)
+      (while (and (= (following-char) ?_)
+		  (= (char-after (1+ (point))) ?\b))
+	(Manual-delete-char 2)
+	(forward-char 1))
+      (set-extent-face (make-extent s (point)) 'man-italic)))
+  ;;
+  ;; turn overstriking into bold
+  ;;
   (goto-char (point-min))
-  (while (search-forward "\255" nil t) (replace-match "-"))
-  (message "%s man page made up" Man-arguments))
-
-(defun Man-cleanup-manpage ()
-  "Remove overstriking and underlining from the current buffer."
-  (interactive)
-  (message "Please wait: cleaning up the %s man page..."
-	   Man-arguments)
-  (if (or (interactive-p) (not Man-sed-script))
-      (progn
-	(goto-char (point-min))
-	(while (search-forward "_\b" nil t) (backward-delete-char 2))
-	(goto-char (point-min))
-	(while (search-forward "\b_" nil t) (backward-delete-char 2))
-	(goto-char (point-min))
-	(while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
-	  (replace-match "\\1"))
-	(goto-char (point-min))
-	(while (re-search-forward "\e\\[[0-9]+m" nil t) (replace-match ""))
-	(goto-char (point-min))
-	(while (re-search-forward "o\b\\+\\|\\+\bo" nil t) (replace-match "o"))
-	))
+  (while (re-search-forward "\\([^\n]\\)\\(\b\\1\\)" nil t)
+    ;; Surprisingly, searching for the above regexp is faster than searching
+    ;; for a backspace and then comparing the preceding and following chars,
+    ;; I presume because there are many false matches, meaning more funcalls
+    ;; to re-search-forward.
+    (let ((s (match-beginning 0)))
+      (goto-char s)
+      ;; Some systems (SGI) overstrike multiple times, eg, "M\bM\bM\bM".
+      (while (looking-at "\\([^\n]\\)\\(\b\\1\\)+")
+	(delete-region (+ (point) 1) (match-end 0))
+	(forward-char 1))
+      (set-extent-face (make-extent s (point)) 'man-bold)))
+  ;;
+  ;; hack bullets: o^H+ --> +
   (goto-char (point-min))
-  (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t) (replace-match "+"))
-  ;; \255 is some kind of dash in Latin-1.
-  (goto-char (point-min))
-  (while (search-forward "\255" nil t) (replace-match "-"))
-  (message "%s man page cleaned up" Man-arguments))
-
-(defun Man-bgproc-sentinel (process msg)
-  "Manpage background process sentinel."
-  (let ((Man-buffer (process-buffer process))
-	(delete-buff nil)
-	(err-mess nil))
-
-    (if (null (buffer-name Man-buffer)) ;; deleted buffer
-	(set-process-buffer process nil)
+  (while (search-forward "\b" nil t)
+    (Manual-delete-char -2))
 
-      (save-excursion
-	(set-buffer Man-buffer)
-	(let ((case-fold-search nil))
-	  (goto-char (point-min))
-	  (cond ((or (looking-at "No \\(manual \\)*entry for")
-		     (looking-at "[^\n]*: nothing appropriate$"))
-		 (setq err-mess (buffer-substring (point)
-						  (progn
-						    (end-of-line) (point)))
-		       delete-buff t))
-		((not (and (eq (process-status process) 'exit)
-			   (= (process-exit-status process) 0)))
-		 (setq err-mess
-		       (concat (buffer-name Man-buffer)
-			       ": process "
-			       (let ((eos (1- (length msg))))
-				 (if (= (aref msg eos) ?\n)
-				     (substring msg 0 eos) msg))))
-		 (goto-char (point-max))
-		 (insert (format "\nprocess %s" msg))
-		 ))
-	  (if delete-buff
-	      (kill-buffer Man-buffer)
-	    (if Man-fontify-manpage-flag
-		(Man-fontify-manpage)
-	      (Man-cleanup-manpage))
-	    (run-hooks 'Man-cooked-hook)
-	    (Man-mode)
-	    (set-buffer-modified-p nil)
-	    ))
-	;; Restore case-fold-search before calling
-	;; Man-notify-when-ready because it may switch buffers.
+  (if (> (buffer-size) 100) ; minor kludge
+      (Manual-nuke-nroff-bs-footers))
+  ;;
+  ;; turn subsection header lines into bold
+  ;;
+  (goto-char (point-min))
+  (if apropos-mode
+      (while (re-search-forward "[a-zA-Z0-9] ([0-9]" nil t)
+	(forward-char -2)
+	(delete-backward-char 1))
 
-	(if (not delete-buff)
-	    (Man-notify-when-ready Man-buffer))
-
-	(if err-mess
-	    (error err-mess))
-	))))
-
-
-;; ======================================================================
-;; set up manual mode in buffer and build alists
-
-(defun Man-mode ()
-  "A mode for browsing Un*x manual pages.
-
-The following man commands are available in the buffer. Try
-\"\\[describe-key] <key> RET\" for more information:
+    ;;    (while (re-search-forward "^[^ \t\n]" nil t)
+    ;;      (set-extent-face (make-extent (match-beginning 0)
+    ;;                                   (progn (end-of-line) (point)))
+    ;;                      'man-heading))
 
-\\[man]       Prompt to retrieve a new manpage.
-\\[Man-follow-manual-reference]       Retrieve reference in SEE ALSO section.
-\\[Man-next-manpage]   Jump to next manpage in circular list.
-\\[Man-previous-manpage]   Jump to previous manpage in circular list.
-\\[Man-next-section]       Jump to next manpage section.
-\\[Man-previous-section]       Jump to previous manpage section.
-\\[Man-goto-section]       Go to a manpage section.
-\\[Man-goto-see-also-section]       Jumps to the SEE ALSO manpage section.
-\\[Man-quit]       Deletes the manpage window, bury its buffer.
-\\[Man-kill]       Deletes the manpage window, kill its buffer.
-\\[describe-mode]       Prints this help text.
-
-The following variables may be of some use. Try
-\"\\[describe-variable] <variable-name> RET\" for more information:
+    ;; boldface the first line
+    (if (looking-at "[^ \t\n].*$")
+	(set-extent-face (make-extent (match-beginning 0) (match-end 0))
+			 'man-bold))
 
-Man-notify-method               What happens when manpage formatting is done.
-Man-downcase-section-letters-flag  Force section letters to lower case.
-Man-circular-pages-flag         Treat multiple manpage list as circular.
-Man-auto-section-alist          List of major modes and their section numbers.
-Man-section-translations-alist  List of section numbers and their Un*x equiv.
-Man-filter-list                 Background manpage filter command.
-Man-mode-line-format            Mode line format for Man mode buffers.
-Man-mode-map                    Keymap bindings for Man mode buffers.
-Man-mode-hook                   Normal hook run on entry to Man mode.
-Man-section-regexp              Regexp describing manpage section letters.
-Man-heading-regexp              Regexp describing section headers.
-Man-see-also-regexp             Regexp for SEE ALSO section (or your equiv).
-Man-first-heading-regexp        Regexp for first heading on a manpage.
-Man-reference-regexp            Regexp matching a references in SEE ALSO.
-Man-switches			Background `man' command switches.
+    ;; boldface subsequent title lines
+    ;; Regexp to match section headers changed to match a non-indented
+    ;; line preceded by a blank line and followed by an indented line. 
+    ;; This seems to work ok for manual pages but gives better results
+    ;; with other nroff'd files
+    (while (re-search-forward "\n\n\\([^ \t\n].*\\)\n[ \t]+[^ \t\n]" nil t)
+      (goto-char (match-end 1))
+      (set-extent-face (make-extent (match-beginning 1) (match-end 1))
+		       'man-heading)
+      (forward-line 1))
+    )
 
-The following key bindings are currently in effect in the buffer:
-\\{Man-mode-map}"
-  (interactive)
-  (setq major-mode 'Man-mode
-	mode-name "Man"
-	buffer-auto-save-file-name nil
-	mode-line-format Man-mode-line-format
-	truncate-lines t
-	buffer-read-only t)
-  (buffer-disable-undo (current-buffer))
-  (auto-fill-mode -1)
-  (use-local-map Man-mode-map)
-  (Man-build-page-list)
-  (Man-strip-page-headers)
-  (Man-unindent)
-  (Man-goto-page 1)
-  (run-hooks 'Man-mode-hook))
-
-(defsubst Man-build-section-alist ()
-  "Build the association list of manpage sections."
-  (setq Man-sections-alist nil)
+  ;; Zap ESC7,  ESC8, and ESC9
+  ;; This is for Sun man pages like "man 1 csh"
   (goto-char (point-min))
-  (let ((case-fold-search nil))
-    (while (re-search-forward Man-heading-regexp (point-max) t)
-      (aput 'Man-sections-alist (Man-match-substring 1))
-      (forward-line 1))))
+  (while (re-search-forward "\e[789]" nil t)
+    (replace-match ""))
+  
+  ;; Nuke blanks lines at start.
+  ;;  (goto-char (point-min))
+  ;;  (skip-chars-forward "\n")
+  ;;  (delete-region (point-min) (point))
+
+  (Manual-mouseify-xrefs)
+  )
+
+(fset 'nuke-nroff-bs 'Manual-nuke-nroff-bs) ; use old name
+
 
-(defsubst Man-build-references-alist ()
-  "Build the association list of references (in the SEE ALSO section)."
-  (setq Man-refpages-alist nil)
-  (save-excursion
-    (if (Man-find-section Man-see-also-regexp)
-	(let ((start (progn (forward-line 1) (point)))
-	      (end (progn
-		     (Man-next-section 1)
-		     (point)))
-	      hyphenated
-	      (runningpoint -1))
-	  (save-restriction
-	    (narrow-to-region start end)
-	    (goto-char (point-min))
-	    (back-to-indentation)
-	    (while (and (not (eobp)) (/= (point) runningpoint))
-	      (setq runningpoint (point))
-	      (if (re-search-forward Man-reference-regexp end t)
-		  (let* ((word (Man-match-substring 0))
-			 (len (1- (length word))))
-		    (if hyphenated
-			(setq word (concat hyphenated word)
-			      hyphenated nil))
-		    (if (= (aref word len) ?-)
-			(setq hyphenated (substring word 0 len))
-		      (aput 'Man-refpages-alist word))))
-	      (skip-chars-forward " \t\n,")))))))
+(defun Manual-nuke-nroff-bs-footers ()
+  ;; Nuke headers and footers.
+  ;;
+  ;; nroff assumes pages are 66 lines high.  We assume that, and that the
+  ;; first and last line on each page is expendible.  There is no way to
+  ;; tell the difference between a page break in the middle of a paragraph
+  ;; and a page break between paragraphs (the amount of extra whitespace
+  ;; that nroff inserts is the same in both cases) so this might strip out
+  ;; a blank line were one should remain.  I think that's better than
+  ;; leaving in a blank line where there shouldn't be one.  (Need I say
+  ;; it: FMH.)
+  ;;
+  ;; Note that if nroff spits out error messages, pages will be more than
+  ;; 66 lines high, and we'll lose badly.  That's ok because standard
+  ;; nroff doesn't do any diagnostics, and the "gnroff" wrapper for groff
+  ;; turns off error messages for compatibility.  (At least, it's supposed
+  ;; to.)
+  ;; 
+  (goto-char (point-min))
+  ;; first lose the status output
+  (let ((case-fold-search t))
+    (if (and (not (looking-at "[^\n]*warning"))
+	     (looking-at "Reformatting.*\n"))
+	(delete-region (match-beginning 0) (match-end 0))))
 
-(defun Man-build-page-list ()
-  "Build the list of separate manpages in the buffer."
-  (setq Man-page-list nil)
-  (let ((page-start (point-min))
-	(page-end (point-max))
-	(header ""))
-    (goto-char page-start)
-    ;; (switch-to-buffer (current-buffer))(debug)
-    (while (not (eobp))
-      (setq header
-	    (if (looking-at Man-page-header-regexp)
-		(Man-match-substring 1)
-	      nil))
-      ;; Go past both the current and the next Man-first-heading-regexp
-      (if (re-search-forward Man-first-heading-regexp nil 'move 2)
-	  (let ((p (progn (beginning-of-line) (point))))
-	    ;; We assume that the page header is delimited by blank
-	    ;; lines and that it contains at most one blank line.  So
-	    ;; if we back by three blank lines we will be sure to be
-	    ;; before the page header but not before the possible
-	    ;; previous page header.
-	    (search-backward "\n\n" nil t 3)
-	    (if (re-search-forward Man-page-header-regexp p 'move)
-		(beginning-of-line))))
-      (setq page-end (point))
-      (setq Man-page-list (append Man-page-list
-				  (list (list (copy-marker page-start)
-					      (copy-marker page-end)
-					      header))))
-      (setq page-start page-end)
-      )))
+  ;; kludge around a groff bug where it won't keep quiet about some
+  ;; warnings even with -Wall or -Ww.
+  (cond ((looking-at "grotty:")
+	 (while (looking-at "grotty:")
+	   (delete-region (point) (progn (forward-line 1) (point))))
+	 (if (looking-at " *done\n")
+	     (delete-region (point) (match-end 0)))))
 
-(defun Man-strip-page-headers ()
-  "Strip all the page headers but the first from the manpage."
-  (let ((buffer-read-only nil)
-	(case-fold-search nil)
-	(page-list Man-page-list)
-	(page ())
-	(header ""))
-    (while page-list
-      (setq page (car page-list))
-      (and (nth 2 page)
-	   (goto-char (car page))
-	   (re-search-forward Man-first-heading-regexp nil t)
-	   (setq header (buffer-substring (car page) (match-beginning 0)))
-	   ;; Since the awk script collapses all successive blank
-	   ;; lines into one, and since we don't want to get rid of
-	   ;; the fast awk script, one must choose between adding
-	   ;; spare blank lines between pages when there were none and
-	   ;; deleting blank lines at page boundaries when there were
-	   ;; some.  We choose the first, so we comment the following
-	   ;; line.
-	   ;; (setq header (concat "\n" header)))
-	   (while (search-forward header (nth 1 page) t)
-	     (replace-match "")))
-      (setq page-list (cdr page-list)))))
+  (let ((pages '())
+	p)
+    ;; collect the page boundary markers before we start deleting, to make
+    ;; it easier to strip things out without changing the page sizes.
+    (while (not (eobp))
+      (forward-line 66)
+      (setq pages (cons (point-marker) pages)))
+    (setq pages (nreverse pages))
+    (while pages
+      (goto-char (car pages))
+      (set-marker (car pages) nil)
+      ;;
+      ;; The lines are: 3 blank; footer; 6 blank; header; 3 blank.
+      ;; We're in between the previous footer and the following header,
+      ;;
+      ;; First lose 3 blank lines, the header, and then 3 more.
+      ;;
+      (setq p (point))
+      (skip-chars-forward "\n")
+      (delete-region p (point))
+      (and (looking-at "[^\n]+\n\n?\n?\n?")
+	   (delete-region (match-beginning 0) (match-end 0)))
+      ;;
+      ;; Next lose the footer, and the 3 blank lines after, and before it.
+      ;; But don't lose the last footer of the manual entry; that contains
+      ;; the "last change" date, so it's not completely uninteresting.
+      ;; (Actually lose all blank lines before it; sh(1) needs this.)
+      ;;
+      (skip-chars-backward "\n")
+      (beginning-of-line)
+      (if (null (cdr pages))
+	  nil
+	(and (looking-at "[^\n]+\n\n?\n?\n?")
+	     (delete-region (match-beginning 0) (match-end 0))))
+      (setq p (point))
+      (skip-chars-backward "\n")
+      (if (> (- p (point)) 4)
+	  (delete-region (+ 2 (point)) p)
+	(delete-region (1+ (point)) p))
+;      (and (looking-at "\n\n?\n?")
+;	   (delete-region (match-beginning 0) (match-end 0)))
 
-(defun Man-unindent ()
-  "Delete the leading spaces that indent the manpage."
-  (let ((buffer-read-only nil)
-	(case-fold-search nil)
-	(page-list Man-page-list))
-    (while page-list
-      (let ((page (car page-list))
-	    (indent "")
-	    (nindent 0))
-	(narrow-to-region (car page) (car (cdr page)))
-	(if Man-uses-untabify-flag
-	    (untabify (point-min) (point-max)))
-	(if (catch 'unindent
-	      (goto-char (point-min))
-	      (if (not (re-search-forward Man-first-heading-regexp nil t))
-		  (throw 'unindent nil))
-	      (beginning-of-line)
-	      (setq indent (buffer-substring (point)
-					     (progn
-					       (skip-chars-forward " ")
-					       (point))))
-	      (setq nindent (length indent))
-	      (if (zerop nindent)
-		  (throw 'unindent nil))
-	      (setq indent (concat indent "\\|$"))
-	      (goto-char (point-min))
-	      (while (not (eobp))
-		(if (looking-at indent)
-		    (forward-line 1)
-		  (throw 'unindent nil)))
-	      (goto-char (point-min)))
-	    (while (not (eobp))
-	      (or (eolp)
-		  (delete-char nindent))
-	      (forward-line 1)))
-	(setq page-list (cdr page-list))
-	))))
-
-
-;; ======================================================================
-;; Man mode commands
-
-(defun Man-next-section (n)
-  "Move point to Nth next section (default 1)."
-  (interactive "p")
-  (let ((case-fold-search nil))
-    (if (looking-at Man-heading-regexp)
-	(forward-line 1))
-    (if (re-search-forward Man-heading-regexp (point-max) t n)
-	(beginning-of-line)
-      (goto-char (point-max)))))
-
-(defun Man-previous-section (n)
-  "Move point to Nth previous section (default 1)."
-  (interactive "p")
-  (let ((case-fold-search nil))
-    (if (looking-at Man-heading-regexp)
-	(forward-line -1))
-    (if (re-search-backward Man-heading-regexp (point-min) t n)
-	(beginning-of-line)
-      (goto-char (point-min)))))
-
-(defun Man-find-section (section)
-  "Move point to SECTION if it exists, otherwise don't move point.
-Returns t if section is found, nil otherwise."
-  (let ((curpos (point))
-	(case-fold-search nil))
+      (setq pages (cdr pages)))
+    ;;
+    ;; Now nuke the extra blank lines at the beginning and end.
     (goto-char (point-min))
-    (if (re-search-forward (concat "^" section) (point-max) t)
-	(progn (beginning-of-line) t)
-      (goto-char curpos)
-      nil)
+    (if (looking-at "\n+")
+	(delete-region (match-beginning 0) (match-end 0)))
+    (forward-line 1)
+    (if (looking-at "\n\n+")
+	(delete-region (1+ (match-beginning 0)) (match-end 0)))
+    (goto-char (point-max))
+    (skip-chars-backward "\n")
+    (delete-region (point) (point-max))
+    (beginning-of-line)
+    (forward-char -1)
+    (setq p (point))
+    (skip-chars-backward "\n")
+    (if (= ?\n (following-char)) (forward-char 1))
+    (if (> (point) (1+ p))
+	(delete-region (point) p))
     ))
 
-(defun Man-goto-section ()
-  "Query for section to move point to."
-  (interactive)
-  (aput 'Man-sections-alist
-	(let* ((default (aheadsym Man-sections-alist))
-	       (completion-ignore-case t)
-	       chosen
-	       (prompt (concat "Go to section: (default " default ") ")))
-	  (setq chosen (completing-read prompt Man-sections-alist))
-	  (if (or (not chosen)
-		  (string= chosen ""))
-	      default
-	    chosen)))
-  (Man-find-section (aheadsym Man-sections-alist)))
-
-(defun Man-goto-see-also-section ()
-  "Move point the the \"SEE ALSO\" section.
-Actually the section moved to is described by `Man-see-also-regexp'."
-  (interactive)
-  (if (not (Man-find-section Man-see-also-regexp))
-      (error (concat "No " Man-see-also-regexp
-		     " section found in the current manpage"))))
+;(defun Manual-nuke-nroff-bs-footers ()
+;  ;; Nuke headers: "MORE(1) UNIX Programmer's Manual MORE(1)"
+;  (goto-char (point-min))
+;  (while (re-search-forward "^ *\\([A-Za-z][-_A-Za-z0-9]*([0-9A-Za-z]+)\\).*\\1$" nil t)
+;    (replace-match ""))
+;  
+;  ;;
+;  ;; it would appear that we have a choice between sometimes introducing
+;  ;; an extra blank line when a paragraph was broken by a footer, and
+;  ;; sometimes not putting in a blank line between two paragraphs when
+;  ;; a footer appeared right between them.  FMH; I choose the latter.
+;  ;;
+;
+;  ;; Nuke footers: "Printed 12/3/85	27 April 1981	1"
+;  ;;    Sun appear to be on drugz:
+;  ;;     "Sun Release 3.0B  Last change: 1 February 1985     1"
+;  ;;    HP are even worse!
+;  ;;     "     Hewlett-Packard   -1- (printed 12/31/99)"  FMHWA12ID!!
+;  ;;    System V (well WICATs anyway):
+;  ;;     "Page 1			  (printed 7/24/85)"
+;  ;;    Who is administering PCP to these corporate bozos?
+;  (goto-char (point-min))
+;  (while (re-search-forward
+;	   (cond
+;	    ((eq system-type 'hpux)
+;	     "\n\n?[ \t]*Hewlett-Packard\\(\\| Company\\)[ \t]*- [0-9]* -.*\n")
+;	    ((eq system-type 'dgux-unix)
+;	     "\n\n?[ \t]*Licensed material--.*Page [0-9]*\n")
+;	    ((eq system-type 'usg-unix-v)
+;	     "\n\n? *Page [0-9]*.*(printed [0-9/]*)\n")
+;	    (t
+;	     "\n\n?\\(Printed\\|Sun Release\\) [0-9].*[0-9]\n"))
+;	   nil t)
+;    (replace-match ""))
+;
+;  ;;    Also, hack X footers:
+;  ;;     "X Version 11         Last change: Release 5         1"
+;  (goto-char (point-min))
+;  (while (re-search-forward "\n\n?X Version [^\n]+\n" nil t)
+;    (replace-match ""))
+;
+;  ;; Crunch blank lines
+;  (goto-char (point-min))
+;  (while (re-search-forward "\n\n\n\n*" nil t)
+;    (replace-match "\n\n"))
+;  )
 
-(defun Man-follow-manual-reference (reference)
-  "Get one of the manpages referred to in the \"SEE ALSO\" section.
-Specify which reference to use; default is based on word at point."
-  (interactive
-   (if (not Man-refpages-alist)
-       (error "There are no references in the current man page")
-     (list (let* ((default (or
-			     (car (all-completions
-				   (save-excursion
-				     (skip-syntax-backward "w()")
-				     (skip-chars-forward " \t")
-				     (let ((word (current-word)))
-				       ;; strip a trailing '-':
-				       (if (string-match "-$" word)
-					   (substring word 0
-						      (match-beginning 0))
-					 word)))
-				   Man-refpages-alist))
-			     (aheadsym Man-refpages-alist)))
-		   chosen
-		   (prompt (concat "Refer to: (default " default ") ")))
-	      (setq chosen (completing-read prompt Man-refpages-alist nil t))
-	      (if (or (not chosen)
-		      (string= chosen ""))
-		  default
-		chosen)))))
-  (if (not Man-refpages-alist)
-      (error "Can't find any references in the current manpage")
-    (aput 'Man-refpages-alist reference)
-    (Man-getpage-in-background
-     (Man-translate-references (aheadsym Man-refpages-alist)))))
-
-(defun Man-kill ()
-  "Kill the buffer containing the manpage."
-  (interactive)
-  (let ((buff (current-buffer)))
-    (delete-windows-on buff)
-    (kill-buffer buff))
-  (if (and window-system
-	   (or (eq Man-notify-method 'newframe)
-	       (and pop-up-frames
-		    (eq Man-notify-method 'bully))))
-      (delete-frame)))
+(defun Manual-mouseify-xrefs ()
+  (goto-char (point-min))
+  (forward-line 1)
+  (let ((case-fold-search nil)
+	s e name extent)
+    ;; possibly it would be faster to rewrite this expression to search for
+    ;; a less common sequence first (like "([0-9]") and then back up to see
+    ;; if it's really a match.  This function is 15% of the total time, 13%
+    ;; of which is this call to re-search-forward.
+    (while (re-search-forward "[a-zA-Z_][-a-zA-Z0-9_.]*([0-9][a-zA-Z0-9]*)"
+			      nil t)
+      (setq s (match-beginning 0)
+	    e (match-end 0)
+	    name (buffer-substring s e))
+      (goto-char s)
+      (skip-chars-backward " \t")
+      (if (and (bolp)
+	       (progn (backward-char 1) (= (preceding-char) ?-)))
+	  (progn
+	    (setq s (point))
+	    (skip-chars-backward "-a-zA-Z0-9_.")
+	    (setq name (concat (buffer-substring (point) (1- s)) name))
+	    (setq s (point))))
+      ;; if there are upper case letters in the section, downcase them.
+      (if (string-match "(.*[A-Z]+.*)$" name)
+	  (setq name (concat (substring name 0 (match-beginning 0))
+			     (downcase (substring name (match-beginning 0))))))
+      ;; (setq already-fontified (extent-at s))
+      (setq extent (make-extent s e))
+      (set-extent-property extent 'man (list 'Manual-follow-xref name))
+      (set-extent-property extent 'highlight t)
+      ;; (if (not already-fontified)...
+      (set-extent-face extent 'man-xref)
+      (goto-char e))))
 
-(defun Man-quit ()
-  "Bury the buffer containing the manpage."
-  (interactive)
-  (let ((buff (current-buffer)))
-    (delete-windows-on buff)
-    (bury-buffer buff))
-  (if (and window-system
-	   (or (eq Man-notify-method 'newframe)
-	       (and pop-up-frames
-		    (eq Man-notify-method 'bully))))
-      (delete-frame)))
+(defun Manual-follow-xref (&optional name-or-event)
+  "Invoke `manual-entry' on the cross-reference under the mouse.
+When invoked noninteractively, the arg may be an xref string to parse instead."
+  (interactive "e")
+  (if (eventp name-or-event)
+      (let* ((p (event-point name-or-event))
+	     (extent (and p (extent-at p
+			     (event-buffer name-or-event)
+			     'highlight)))
+	     (data (and extent (extent-property extent 'man))))
+	(if (eq (car-safe data) 'Manual-follow-xref)
+	    (eval data)
+	  (error "no manual cross-reference there.")))
+    (let ((Manual-match-topic-exactly t)
+	  (Manual-query-multiple-pages nil))
+      (or (manual-entry name-or-event)
+	  ;; If that didn't work, maybe it's in a different section than the
+	  ;; man page writer expected.  For example, man pages tend assume
+	  ;; that all user programs are in section 1, but X tends to generate
+	  ;; makefiles that put things in section "n" instead...
+	  (and (string-match "[ \t]*([^)]+)\\'" name-or-event)
+	       (progn
+		 (message "No entries found for %s; checking other sections..."
+			  name-or-event)
+		 (manual-entry
+		  (substring name-or-event 0 (match-beginning 0))
+		  nil t)))))))
 
-(defun Man-goto-page (page)
-  "Go to the manual page on page PAGE."
-  (interactive
-   (if (not Man-page-list)
-       (let ((args Man-arguments))
-	 (kill-buffer (current-buffer))
-	 (error "Can't find the %s manpage" args))
-     (if (= (length Man-page-list) 1)
-	 (error "You're looking at the only manpage in the buffer")
-       (list (read-minibuffer (format "Go to manpage [1-%d]: "
-				      (length Man-page-list)))))))
-  (if (not Man-page-list)
-      (let ((args Man-arguments))
-	(kill-buffer (current-buffer))
-	(error "Can't find the %s manpage" args)))
-  (if (or (< page 1)
-	  (> page (length Man-page-list)))
-      (error "No manpage %d found" page))
-  (let* ((page-range (nth (1- page) Man-page-list))
-	 (page-start (car page-range))
-	 (page-end (car (cdr page-range))))
-    (setq Man-current-page page
-	  Man-page-mode-string (Man-make-page-mode-string))
-    (widen)
-    (goto-char page-start)
-    (narrow-to-region page-start page-end)
-    (Man-build-section-alist)
-    (Man-build-references-alist)
-    (goto-char (point-min))))
+(defun Manual-popup-menu (&optional event)
+  "Pops up a menu of cross-references in this manual page.
+If there is a cross-reference under the mouse button which invoked this
+command, it will be the first item on the menu.  Otherwise, they are
+on the menu in the order in which they appear in the buffer."
+  (interactive "e")
+  (let ((buffer (current-buffer))
+	(sep "---")
+	(prefix "Show Manual Page for ")
+	xref items)
+    (cond (event
+	   (setq buffer (event-buffer event))
+	   (let* ((p (event-point event))
+		  (extent (and p (extent-at p buffer 'highlight)))
+		  (data (and extent (extent-property extent 'man))))
+	     (if (eq (car-safe data) 'Manual-follow-xref)
+		 (setq xref (nth 1 data))))))
+    (if xref (setq items (list sep xref)))
+    (map-extents #'(lambda (extent ignore)
+		     (let ((data (extent-property extent 'man)))
+		       (if (and (eq (car-safe data) 'Manual-follow-xref)
+				(not (member (nth 1 data) items)))
+			   (setq items (cons (nth 1 data) items)))
+		    nil))
+		 buffer)
+    (if (eq sep (car items)) (setq items (cdr items)))
+    (let ((popup-menu-titles nil))
+      (popup-menu
+       (cons "Manual Entry"
+	     (mapcar #'(lambda (item)
+			 (if (eq item sep)
+			     item
+                           (vector (concat prefix item)
+                                   (list 'Manual-follow-xref item) t)))
+		     (nreverse items)))))))
 
-
-(defun Man-next-manpage ()
-  "Find the next manpage entry in the buffer."
-  (interactive)
-  (if (= (length Man-page-list) 1)
-      (error "This is the only manpage in the buffer"))
-  (if (< Man-current-page (length Man-page-list))
-      (Man-goto-page (1+ Man-current-page))
-    (if Man-circular-pages-flag
-	(Man-goto-page 1)
-      (error "You're looking at the last manpage in the buffer"))))
+(defun pager-cleanup-hook ()
+  "cleanup man page if called via $PAGER"
+  (let ((buf-name (or buffer-file-name (buffer-name))))
+	(if (and (or (string-match "^/tmp/man[0-9]+" buf-name)
+		     (string-match ".*/man/\\(man\\|cat\\)[1-9a-z]/" buf-name))
+		 (not (string-match Manual-bogus-file-pattern buf-name)))
+	    (let (buffer manpage)
+	      (require 'man)
+	      (goto-char (point-min))
+	      (setq buffer-read-only nil)
+	      (Manual-nuke-nroff-bs)
+	      (goto-char (point-min))
+	      (if (re-search-forward "[^ \t]")
+		  (goto-char (- (point) 1)))
+	      (if (looking-at "\\([a-zA-Z0-9]+\\)[ \t]*(")
+		  (setq manpage (buffer-substring (match-beginning 1) (match-end 1)))
+		(setq manpage "???"))
+	      (setq buffer
+		    (rename-buffer
+		     (generate-new-buffer-name (concat "*man " manpage "*"))))
+	      (setq buffer-file-name nil)
+	      (goto-char (point-min))
+	      (insert (format "%s\n" buf-name))
+	      (goto-char (point-min))
+	      (buffer-disable-undo buffer)
+	      (set-buffer-modified-p nil)
+	      (Manual-mode)
+	      ))))
 
-(defun Man-previous-manpage ()
-  "Find the previous manpage entry in the buffer."
-  (interactive)
-  (if (= (length Man-page-list) 1)
-      (error "This is the only manpage in the buffer"))
-  (if (> Man-current-page 1)
-      (Man-goto-page (1- Man-current-page))
-    (if Man-circular-pages-flag
-	(Man-goto-page (length Man-page-list))
-      (error "You're looking at the first manpage in the buffer"))))
-
-;; Init the man package variables, if not already done.
-(Man-init-defvars)
-
+(add-hook 'server-visit-hook 'pager-cleanup-hook)
 (provide 'man)
-
-;;; man.el ends here
--- a/lisp/packages/ps-print.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/ps-print.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1899,6 +1899,10 @@
       (if ps-razzle-dazzle
 	  (message "Formatting...done")))))
 
+;; XEmacs change
+(require 'message)	; Until We can get some sensible autoloads, or
+			; message-flatten-list gets put somewhere decent.
+;; Permit dynamic evaluation at print time of ps-lpr-switches
 (defun ps-do-despool (filename)
   (if (or (not (boundp 'ps-spool-buffer))
 	  (not ps-spool-buffer))
@@ -1921,12 +1925,21 @@
 	(set-buffer ps-spool-buffer)
 	(if (and (eq system-type 'ms-dos) (stringp dos-ps-printer))
 	    (write-region (point-min) (point-max) dos-ps-printer t 0)
-	  (let ((binary-process-input t)) ; for MS-DOS
+	  (let ((binary-process-input t)  ; for MS-DOS
+		(ps-lpr-sw (message-flatten-list    ; XEmacs
+			    (mapcar '(lambda (arg)  ; Dynamic evaluation
+				       (cond ((stringp arg) arg)
+					     ((functionp arg) (apply arg nil))
+					     ((symbolp arg) (eval arg))
+					     ((consp arg) (apply (car arg)
+								 (cdr arg)))
+					     (t nil)))
+				    ps-lpr-switches))))
 	    (apply 'call-process-region
 		   (point-min) (point-max) ps-lpr-command nil
 		   (if (fboundp 'start-process) 0 nil)
 		   nil
-		   ps-lpr-switches))))
+		   ps-lpr-sw))))
       (if ps-razzle-dazzle
 	  (message "Printing...done")))
     (kill-buffer ps-spool-buffer)))
@@ -2029,12 +2042,16 @@
 ;; article subjects shows up at the printer.  This function, bound to
 ;; prsc for the gnus *Summary* buffer means I don't have to switch
 ;; buffers first.
+;; sb:  Updated for Gnus 5.
 (defun ps-gnus-print-article-from-summary ()
   (interactive)
-  (if (get-buffer "*Article*")
-      (save-excursion
-	(set-buffer "*Article*")
-	(ps-spool-buffer-with-faces))))
+  (let ((ps-buf (if (boundp 'gnus-article-buffer)
+		    gnus-article-buffer
+		  "*Article*")))
+    (if (get-buffer ps-buf)
+	(save-excursion
+	  (set-buffer ps-buf)
+	  (ps-spool-buffer-with-faces)))))
 
 ;; See ps-gnus-print-article-from-summary.  This function does the
 ;; same thing for vm.
--- a/lisp/packages/vc.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/packages/vc.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1416,6 +1416,11 @@
   )
 
 ;;;###autoload
+(defun vc-rename-this-file (new)
+  (interactive "FVC rename file to: ")
+  (vc-rename-file buffer-file-name new))
+
+;;;###autoload
 (defun vc-update-change-log (&rest args)
   "Find change log file and add entries from recent RCS logs.
 The mark is left at the end of the text prepended to the change log.
--- a/lisp/prim/events.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/events.el	Mon Aug 13 09:04:33 2007 +0200
@@ -120,29 +120,31 @@
 (put 'space	'ascii-character ? )
 
  ;; Do the same voodoo for the keypad keys.  I used to bind these to keyboard
- ;; macros (for instance, kp_0 was bound to "0") so that they would track the
+ ;; macros (for instance, kp-0 was bound to "0") so that they would track the
  ;; bindings of the corresponding keys by default, but that made the display
  ;; of M-x describe-bindings much harder to read, so now we'll just bind them
  ;; to self-insert by default.  Not a big difference...
  
-(put 'kp_0 'ascii-character ?0)
-(put 'kp_1 'ascii-character ?1)
-(put 'kp_2 'ascii-character ?2)
-(put 'kp_3 'ascii-character ?3)
-(put 'kp_4 'ascii-character ?4)
-(put 'kp_5 'ascii-character ?5)
-(put 'kp_6 'ascii-character ?6)
-(put 'kp_7 'ascii-character ?7)
-(put 'kp_8 'ascii-character ?8)
-(put 'kp_9 'ascii-character ?9)
+(put 'kp-0 'ascii-character ?0)
+(put 'kp-1 'ascii-character ?1)
+(put 'kp-2 'ascii-character ?2)
+(put 'kp-3 'ascii-character ?3)
+(put 'kp-4 'ascii-character ?4)
+(put 'kp-5 'ascii-character ?5)
+(put 'kp-6 'ascii-character ?6)
+(put 'kp-7 'ascii-character ?7)
+(put 'kp-8 'ascii-character ?8)
+(put 'kp-9 'ascii-character ?9)
 
-(put 'kp_space     'ascii-character ? )
-(put 'kp_tab       'ascii-character ?\t)
-(put 'kp_enter     'ascii-character ?\r)
-(put 'kp_equal     'ascii-character ?=)
-(put 'kp_multiply  'ascii-character ?*)
-(put 'kp_add       'ascii-character ?+)
-(put 'kp_separator 'ascii-character ?,)
-(put 'kp_subtract  'ascii-character ?-)
-(put 'kp_decimal   'ascii-character ?.)
-(put 'kp_divide    'ascii-character ?/)
+(put 'kp-space     'ascii-character ? )
+(put 'kp-tab       'ascii-character ?\t)
+(put 'kp-enter     'ascii-character ?\r)
+(put 'kp-equal     'ascii-character ?=)
+(put 'kp-multiply  'ascii-character ?*)
+(put 'kp-add       'ascii-character ?+)
+(put 'kp-separator 'ascii-character ?,)
+(put 'kp-subtract  'ascii-character ?-)
+(put 'kp-decimal   'ascii-character ?.)
+(put 'kp-divide    'ascii-character ?/)
+
+;;; events.el ends here
--- a/lisp/prim/files.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/files.el	Mon Aug 13 09:04:33 2007 +0200
@@ -749,10 +749,13 @@
   "Create a suitably named buffer for visiting FILENAME, and return it.
 FILENAME (sans directory) is used unchanged if that name is free;
 otherwise a string <2> or <3> or ... is appended to get an unused name."
-  (let ((lastname (file-name-nondirectory filename)))
-    (if (string= lastname "")
-	(setq lastname filename))
-    (generate-new-buffer lastname)))
+    (let ((handler (find-file-name-handler filename 'create-file-buffer)))
+      (if handler
+	  (funcall handler 'create-file-buffer filename)
+	(let ((lastname (file-name-nondirectory filename)))
+	  (if (string= lastname "")
+	      (setq lastname filename))
+	  (generate-new-buffer lastname)))))
 
 (defun generate-new-buffer (name)
   "Create and return a buffer with a name based on NAME.
@@ -767,48 +770,51 @@
 See documentation of variable `directory-abbrev-alist' for more information.
 If optional argument HACK-HOMEDIR is non-nil, then this also substitutes
 \"~\" for the user's home directory."
-  ;; Get rid of the prefixes added by the automounter.
-  ;(if (and (string-match automount-dir-prefix filename)
-  ;         (file-exists-p (file-name-directory
-  ;                         (substring filename (1- (match-end 0))))))
-  ;    (setq filename (substring filename (1- (match-end 0)))))
-  (let ((tail directory-abbrev-alist))
-    ;; If any elt of directory-abbrev-alist matches this name,
-    ;; abbreviate accordingly.
-    (while tail
-      (if (string-match (car (car tail)) filename)
-	  (setq filename
-		(concat (cdr (car tail)) (substring filename (match-end 0)))))
-      (setq tail (cdr tail))))
-  (if hack-homedir
-      (progn
-	;; Compute and save the abbreviated homedir name.
-	;; We defer computing this until the first time it's needed, to
-	;; give time for directory-abbrev-alist to be set properly.
-	;; We include a slash at the end, to avoid spurious matches
-	;; such as `/usr/foobar' when the home dir is `/usr/foo'.
-	(or abbreviated-home-dir
-	    (setq abbreviated-home-dir
-		  (let ((abbreviated-home-dir "$foo"))
-		    (concat "\\`" (regexp-quote (abbreviate-file-name
-						 (expand-file-name "~")))
-			    "\\(/\\|\\'\\)"))))
-        ;; If FILENAME starts with the abbreviated homedir,
-        ;; make it start with `~' instead.
-	(if (and (string-match abbreviated-home-dir filename)
-                 ;; If the home dir is just /, don't change it.
-                 (not (and (= (match-end 0) 1) ;#### unix-specific
-			   (= (aref filename 0) ?/)))
-		 (not (and (or (eq system-type 'ms-dos) 
-			       (eq system-type 'windows-nt))
-			   (save-match-data
-			     (string-match "^[a-zA-Z]:/$" filename)))))
-	    (setq filename
-		  (concat "~"
-			  (substring filename
-				     (match-beginning 1) (match-end 1))
-			  (substring filename (match-end 0)))))))
-  filename)
+  (let ((handler (find-file-name-handler filename 'abbreviate-file-name)))
+    (if handler
+	(funcall handler 'abbreviate-file-name filename hack-homedir)
+      ;; Get rid of the prefixes added by the automounter.
+      ;;(if (and (string-match automount-dir-prefix filename)
+      ;;         (file-exists-p (file-name-directory
+      ;;                         (substring filename (1- (match-end 0))))))
+      ;;    (setq filename (substring filename (1- (match-end 0)))))
+      (let ((tail directory-abbrev-alist))
+	;; If any elt of directory-abbrev-alist matches this name,
+	;; abbreviate accordingly.
+	(while tail
+	  (if (string-match (car (car tail)) filename)
+	      (setq filename
+		    (concat (cdr (car tail)) (substring filename (match-end 0)))))
+	  (setq tail (cdr tail))))
+      (if hack-homedir
+	  (progn
+	    ;; Compute and save the abbreviated homedir name.
+	    ;; We defer computing this until the first time it's needed, to
+	    ;; give time for directory-abbrev-alist to be set properly.
+	    ;; We include a slash at the end, to avoid spurious matches
+	    ;; such as `/usr/foobar' when the home dir is `/usr/foo'.
+	    (or abbreviated-home-dir
+		(setq abbreviated-home-dir
+		      (let ((abbreviated-home-dir "$foo"))
+			(concat "\\`" (regexp-quote (abbreviate-file-name
+						     (expand-file-name "~")))
+				"\\(/\\|\\'\\)"))))
+	    ;; If FILENAME starts with the abbreviated homedir,
+	    ;; make it start with `~' instead.
+	    (if (and (string-match abbreviated-home-dir filename)
+		     ;; If the home dir is just /, don't change it.
+		     (not (and (= (match-end 0) 1) ;#### unix-specific
+			       (= (aref filename 0) ?/)))
+		     (not (and (or (eq system-type 'ms-dos) 
+				   (eq system-type 'windows-nt))
+			       (save-match-data
+				 (string-match "^[a-zA-Z]:/$" filename)))))
+		(setq filename
+		      (concat "~"
+			      (substring filename
+					 (match-beginning 1) (match-end 1))
+			      (substring filename (match-end 0)))))))
+      filename)))
 
 (defvar find-file-not-true-dirname-list nil
   "*List of logical names for which visiting shouldn't save the true dirname.
@@ -1240,7 +1246,10 @@
 		  (setq alist (cdr alist))))
               ;; If we can't deduce a mode from the file name,
               ;; look for an interpreter specified in the first line.
-	      (if (null mode)
+	      (if (and (null mode)
+		       (save-excursion ; XEmacs
+			 (goto-char (point-min))
+			 (looking-at "#!")))
                   (let ((firstline
                          (buffer-substring
                           (point-min)
@@ -1456,22 +1465,23 @@
 		   (setq result (cons (cons key val) result))
 		   (skip-chars-forward " \t;")))
 	       (setq result (nreverse result))))))
-	
-    (let ((set-any-p (or force (hack-local-variables-p t)))
-	  (mode-p nil))
-      (while result
-	(let ((key (car (car result)))
-	      (val (cdr (car result))))
-	  (cond ((eq key 'mode)
-		 (setq mode-p t)
-		 (funcall (intern (concat (downcase (symbol-name val))
-					  "-mode"))))
-		(set-any-p
-		 (hack-one-local-variable key val))
-		(t
-		 nil)))
-	(setq result (cdr result)))
-      mode-p)))
+
+    (if result
+	(let ((set-any-p (or force (hack-local-variables-p t)))
+	      (mode-p nil))
+	  (while result
+	    (let ((key (car (car result)))
+		  (val (cdr (car result))))
+	      (cond ((eq key 'mode)
+		     (setq mode-p t)
+		     (funcall (intern (concat (downcase (symbol-name val))
+					      "-mode"))))
+		    (set-any-p
+		     (hack-one-local-variable key val))
+		    (t
+		     nil)))
+	    (setq result (cdr result)))
+	  mode-p))))
 
 (defconst ignored-local-variables
   (list 'enable-local-eval)
@@ -1689,81 +1699,85 @@
 If the value is non-nil, it is the result of `file-modes' on the original file;
 this means that the caller, after saving the buffer, should change the modes
 of the new file to agree with the old modes."
-  (if (and make-backup-files
-           (not backup-inhibited)
-	   (not buffer-backed-up)
-	   (file-exists-p buffer-file-name)
-	   (memq (aref (elt (file-attributes buffer-file-name) 8) 0)
-		 '(?- ?l)))
-      (let ((real-file-name buffer-file-name)
-	    backup-info backupname targets setmodes)
-	;; If specified name is a symbolic link, chase it to the target.
-	;; Thus we make the backups in the directory where the real file is.
-	(setq real-file-name (file-chase-links real-file-name))
-	(setq backup-info (find-backup-file-name real-file-name)
-	      backupname (car backup-info)
-	      targets (cdr backup-info))
+  (if buffer-file-name
+      (let ((handler (find-file-name-handler buffer-file-name 'backup-buffer)))
+	(if handler
+	    (funcall handler 'backup-buffer)
+	  (if (and make-backup-files
+		   (not backup-inhibited)
+		   (not buffer-backed-up)
+		   (file-exists-p buffer-file-name)
+		   (memq (aref (elt (file-attributes buffer-file-name) 8) 0)
+			 '(?- ?l)))
+	      (let ((real-file-name buffer-file-name)
+		    backup-info backupname targets setmodes)
+		;; If specified name is a symbolic link, chase it to the target.
+		;; Thus we make the backups in the directory where the real file is.
+		(setq real-file-name (file-chase-links real-file-name))
+		(setq backup-info (find-backup-file-name real-file-name)
+		      backupname (car backup-info)
+		      targets (cdr backup-info))
 ;;;     (if (file-directory-p buffer-file-name)
 ;;;         (error "Cannot save buffer in directory %s" buffer-file-name))
-	(if backup-info
-	    (condition-case ()
-		(let ((delete-old-versions
-		       ;; If have old versions to maybe delete,
-		       ;; ask the user to confirm now, before doing anything.
-		       ;; But don't actually delete til later.
-		       (and targets
-			    (or (eq delete-old-versions t)
-				(eq delete-old-versions nil))
-			    (or delete-old-versions
-				(y-or-n-p (format "Delete excess backup versions of %s? "
-						  real-file-name))))))
-		  ;; Actually write the back up file.
-		  (condition-case ()
-		      (if (or file-precious-flag
-    ;			  (file-symlink-p buffer-file-name)
-			      backup-by-copying
-			      (and backup-by-copying-when-linked
-				   (> (file-nlinks real-file-name) 1))
-			      (and backup-by-copying-when-mismatch
-				   (let ((attr (file-attributes real-file-name)))
-				     (or (nth 9 attr)
-					 (not (file-ownership-preserved-p real-file-name))))))
+		(if backup-info
+		    (condition-case ()
+			(let ((delete-old-versions
+			       ;; If have old versions to maybe delete,
+			       ;; ask the user to confirm now, before doing anything.
+			       ;; But don't actually delete til later.
+			       (and targets
+				    (or (eq delete-old-versions t)
+					(eq delete-old-versions nil))
+				    (or delete-old-versions
+					(y-or-n-p (format "Delete excess backup versions of %s? "
+							  real-file-name))))))
+			  ;; Actually write the back up file.
 			  (condition-case ()
-			      (copy-file real-file-name backupname t t)
+			      (if (or file-precious-flag
+					;			  (file-symlink-p buffer-file-name)
+				      backup-by-copying
+				      (and backup-by-copying-when-linked
+					   (> (file-nlinks real-file-name) 1))
+				      (and backup-by-copying-when-mismatch
+					   (let ((attr (file-attributes real-file-name)))
+					     (or (nth 9 attr)
+						 (not (file-ownership-preserved-p real-file-name))))))
+				  (condition-case ()
+				      (copy-file real-file-name backupname t t)
+				    (file-error
+				     ;; If copying fails because file BACKUPNAME
+				     ;; is not writable, delete that file and try again.
+				     (if (and (file-exists-p backupname)
+					      (not (file-writable-p backupname)))
+					 (delete-file backupname))
+				     (copy-file real-file-name backupname t t)))
+				;; rename-file should delete old backup.
+				(rename-file real-file-name backupname t)
+				(setq setmodes (file-modes backupname)))
 			    (file-error
-			     ;; If copying fails because file BACKUPNAME
-			     ;; is not writable, delete that file and try again.
-			     (if (and (file-exists-p backupname)
-				      (not (file-writable-p backupname)))
-				 (delete-file backupname))
-			     (copy-file real-file-name backupname t t)))
-			;; rename-file should delete old backup.
-			(rename-file real-file-name backupname t)
-			(setq setmodes (file-modes backupname)))
-		    (file-error
-		     ;; If trouble writing the backup, write it in ~.
-		     (setq backupname (expand-file-name "~/%backup%~"))
-		     (message "Cannot write backup file; backing up in ~/%%backup%%~")
-		     (sleep-for 1)
-		     (condition-case ()
-			 (copy-file real-file-name backupname t t)
-		       (file-error
-			;; If copying fails because file BACKUPNAME
-			;; is not writable, delete that file and try again.
-			(if (and (file-exists-p backupname)
-				 (not (file-writable-p backupname)))
-			    (delete-file backupname))
-			(copy-file real-file-name backupname t t)))))
-		  (setq buffer-backed-up t)
-		  ;; Now delete the old versions, if desired.
-		  (if delete-old-versions
-		      (while targets
-			(condition-case ()
-			    (delete-file (car targets))
-			  (file-error nil))
-			(setq targets (cdr targets))))
-		  setmodes)
-	    (file-error nil))))))
+			     ;; If trouble writing the backup, write it in ~.
+			     (setq backupname (expand-file-name "~/%backup%~"))
+			     (message "Cannot write backup file; backing up in ~/%%backup%%~")
+			     (sleep-for 1)
+			     (condition-case ()
+				 (copy-file real-file-name backupname t t)
+			       (file-error
+				;; If copying fails because file BACKUPNAME
+				;; is not writable, delete that file and try again.
+				(if (and (file-exists-p backupname)
+					 (not (file-writable-p backupname)))
+				    (delete-file backupname))
+				(copy-file real-file-name backupname t t)))))
+			  (setq buffer-backed-up t)
+			  ;; Now delete the old versions, if desired.
+			  (if delete-old-versions
+			      (while targets
+				(condition-case ()
+				    (delete-file (car targets))
+				  (file-error nil))
+				(setq targets (cdr targets))))
+			  setmodes)
+		      (file-error nil)))))))))
 
 (defun file-name-sans-versions (name &optional keep-backup-version)
   "Return FILENAME sans backup versions or strings.
@@ -2503,28 +2517,35 @@
   ;; Not just because users often use the default.
   (interactive "FRecover file: ")
   (setq file (expand-file-name file))
-  (if (auto-save-file-name-p file)
-      (error "%s is an auto-save file" file))
-  (let ((file-name (let ((buffer-file-name file))
-		     (make-auto-save-file-name))))
-    (cond ((if (file-exists-p file)
-	       (not (file-newer-than-file-p file-name file))
-	     (not (file-exists-p file-name)))
-	   (error "Auto-save file %s not current" file-name))
-	  ((save-window-excursion
-	     (if (not (eq system-type 'vax-vms))
-		 (with-output-to-temp-buffer "*Directory*"
-		   (buffer-disable-undo standard-output)
-		   (call-process "ls" nil standard-output nil
-				 (if (file-symlink-p file) "-lL" "-l")
-				 file file-name)))
-	     (yes-or-no-p (format "Recover auto save file %s? " file-name)))
-	   (switch-to-buffer (find-file-noselect file t))
-	   (let ((buffer-read-only nil))
-	     (erase-buffer)
-	     (insert-file-contents file-name nil))
-	   (after-find-file nil nil t))
-	  (t (error "Recover-file cancelled.")))))
+  (let ((handler (or (find-file-name-handler file 'recover-file)
+		    (find-file-name-handler 
+		     (let ((buffer-file-name file))
+		       (make-auto-save-file-name))
+		     'recover-file))))
+    (if handler
+	(funcall handler 'recover-file file)
+      (if (auto-save-file-name-p file)
+	  (error "%s is an auto-save file" file))
+      (let ((file-name (let ((buffer-file-name file))
+			 (make-auto-save-file-name))))
+	(cond ((if (file-exists-p file)
+		   (not (file-newer-than-file-p file-name file))
+		 (not (file-exists-p file-name)))
+	       (error "Auto-save file %s not current" file-name))
+	      ((save-window-excursion
+		 (if (not (eq system-type 'vax-vms))
+		     (with-output-to-temp-buffer "*Directory*"
+		       (buffer-disable-undo standard-output)
+		       (call-process "ls" nil standard-output nil
+				     (if (file-symlink-p file) "-lL" "-l")
+				     file file-name)))
+		 (yes-or-no-p (format "Recover auto save file %s? " file-name)))
+	       (switch-to-buffer (find-file-noselect file t))
+	       (let ((buffer-read-only nil))
+		 (erase-buffer)
+		 (insert-file-contents file-name nil))
+	       (after-find-file nil nil t))
+	      (t (error "Recover-file cancelled.")))))))
 
 (defun recover-session ()
   "Recover auto save files from a previous Emacs session.
--- a/lisp/prim/glyphs.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/glyphs.el	Mon Aug 13 09:04:33 2007 +0200
@@ -633,12 +633,16 @@
 
 	;; finish initializing continuation glyph -- created internally
 	;; because it has a built-in bitmap
-	(set-glyph-image continuation-glyph "\\" 'global 'tty)))
+	(set-glyph-image continuation-glyph "\\" 'global 'tty)
+
+	;; finish initializing hscroll glyph -- created internally
+	;; because it has a built-in bitmap
+	(set-glyph-image hscroll-glyph "$" 'global 'tty)))
 
   (set-glyph-image octal-escape-glyph "\\")
   (set-glyph-image control-arrow-glyph "^")
   (set-glyph-image invisible-text-glyph " ...")
-  (set-glyph-image hscroll-glyph "$")
+  ;; (set-glyph-image hscroll-glyph "$")
 
   ;; finish initializing xemacs logo -- created internally because it
   ;; has a built-in bitmap
--- a/lisp/prim/keydefs.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/keydefs.el	Mon Aug 13 09:04:33 2007 +0200
@@ -23,6 +23,10 @@
 
 ;;; Synched up with: Not synched with FSF.
 
+;;; Commentary:
+
+;;; Code:
+
 ;; created by C code
 (defvar global-map (current-global-map) "\
 Default global keymap mapping XEmacs keyboard input into commands.
@@ -516,10 +520,10 @@
 ;; files, but these appear to be the standard Motif and PC bindings.
 
 ;; potential R6isms
-(define-key global-map 'kp_left		'backward-char)
-(define-key global-map 'kp_up		'previous-line)
-(define-key global-map 'kp_right	'forward-char)
-(define-key global-map 'kp_down		'next-line)
+(define-key global-map 'kp-left		'backward-char)
+(define-key global-map 'kp-up		'previous-line)
+(define-key global-map 'kp-right	'forward-char)
+(define-key global-map 'kp-down		'next-line)
 
 
 ;; movement by larger blocks
@@ -542,10 +546,10 @@
 (define-key global-map '(control prior)	'scroll-right)
 (define-key global-map '(control next)	'scroll-left)
 ;; potential R6isms
-(define-key global-map 'kp_prior	'scroll-down)
-(define-key global-map 'kp_next		'scroll-up)
-(define-key global-map '(control kp_prior) 'scroll-right)
-(define-key global-map '(control kp_next) 'scroll-left)
+(define-key global-map 'kp-prior	'scroll-down)
+(define-key global-map 'kp-next		'scroll-up)
+(define-key global-map '(control kp-prior) 'scroll-right)
+(define-key global-map '(control kp-next) 'scroll-left)
 
 
 ;; movement to the limits
@@ -554,10 +558,10 @@
 (define-key global-map 'begin		'beginning-of-line)
 (define-key global-map '(control begin)	'beginning-of-buffer)
 ;; potential R6isms
-(define-key global-map 'kp_home		'beginning-of-line)
-(define-key global-map '(control kp_home) 'beginning-of-buffer)
-(define-key global-map 'kp_end		'end-of-line)
-(define-key global-map '(control kp_end) 'end-of-buffer)
+(define-key global-map 'kp-home		'beginning-of-line)
+(define-key global-map '(control kp-home) 'beginning-of-buffer)
+(define-key global-map 'kp-end		'end-of-line)
+(define-key global-map '(control kp-end) 'end-of-buffer)
 
 ;; movement between windows
 (define-key global-map '(control tab)	'other-window)
@@ -569,41 +573,41 @@
 (define-key global-map '(meta home)	'beginning-of-buffer-other-window)
 (define-key global-map '(meta end)	'end-of-buffer-other-window)
 ;; potential R6isms
-(define-key global-map '(meta kp_next)	'scroll-other-window)
-(define-key global-map '(meta kp_prior)	'scroll-other-window-down)
-(define-key global-map '(meta kp_home)	'beginning-of-buffer-other-window)
-(define-key global-map '(meta kp_end)	'end-of-buffer-other-window)
+(define-key global-map '(meta kp-next)	'scroll-other-window)
+(define-key global-map '(meta kp-prior)	'scroll-other-window-down)
+(define-key global-map '(meta kp-home)	'beginning-of-buffer-other-window)
+(define-key global-map '(meta kp-end)	'end-of-buffer-other-window)
 
 ;; potential R6isms
 (define-key global-map 'redo		'repeat-complex-command)
-(define-key global-map 'kp_insert	'overwrite-mode)
-(define-key global-map 'kp_delete	'backward-delete-char-untabify)
+(define-key global-map 'kp-insert	'overwrite-mode)
+(define-key global-map 'kp-delete	'backward-delete-char-untabify)
 
-(define-key global-map 'kp_enter	[return]) ; do whatever RET does now
-(define-key global-map 'kp_tab		[tab])
+(define-key global-map 'kp-enter	[return]) ; do whatever RET does now
+(define-key global-map 'kp-tab		[tab])
 
 (define-key global-map 'undo		'undo)
 (define-key global-map 'help		'help-for-help)
 
-(define-key global-map 'kp_space	'self-insert-command)
-(define-key global-map 'kp_equal	'self-insert-command)
-(define-key global-map 'kp_multiply	'self-insert-command)
-(define-key global-map 'kp_add		'self-insert-command)
-(define-key global-map 'kp_separator	'self-insert-command)
-(define-key global-map 'kp_subtract	'self-insert-command)
-(define-key global-map 'kp_decimal	'self-insert-command)
-(define-key global-map 'kp_divide	'self-insert-command)
+(define-key global-map 'kp-space	'self-insert-command)
+(define-key global-map 'kp-equal	'self-insert-command)
+(define-key global-map 'kp-multiply	'self-insert-command)
+(define-key global-map 'kp-add		'self-insert-command)
+(define-key global-map 'kp-separator	'self-insert-command)
+(define-key global-map 'kp-subtract	'self-insert-command)
+(define-key global-map 'kp-decimal	'self-insert-command)
+(define-key global-map 'kp-divide	'self-insert-command)
 
-(define-key global-map 'kp_0		'self-insert-command)
-(define-key global-map 'kp_1		'self-insert-command)
-(define-key global-map 'kp_2		'self-insert-command)
-(define-key global-map 'kp_3		'self-insert-command)
-(define-key global-map 'kp_4		'self-insert-command)
-(define-key global-map 'kp_5		'self-insert-command)
-(define-key global-map 'kp_6		'self-insert-command)
-(define-key global-map 'kp_7		'self-insert-command)
-(define-key global-map 'kp_8		'self-insert-command)
-(define-key global-map 'kp_9		'self-insert-command)
+(define-key global-map 'kp-0		'self-insert-command)
+(define-key global-map 'kp-1		'self-insert-command)
+(define-key global-map 'kp-2		'self-insert-command)
+(define-key global-map 'kp-3		'self-insert-command)
+(define-key global-map 'kp-4		'self-insert-command)
+(define-key global-map 'kp-5		'self-insert-command)
+(define-key global-map 'kp-6		'self-insert-command)
+(define-key global-map 'kp-7		'self-insert-command)
+(define-key global-map 'kp-8		'self-insert-command)
+(define-key global-map 'kp-9		'self-insert-command)
 
 (define-key global-map 'select		'function-key-error)
 (define-key global-map 'print		'function-key-error)
@@ -613,3 +617,5 @@
 (define-key global-map 'deleteline	'kill-line)
 (define-key global-map 'insertchar	'function-key-error)
 (define-key global-map 'deletechar	'delete-char)
+
+;;; keydefs.el ends here
--- a/lisp/prim/lisp.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/lisp.el	Mon Aug 13 09:04:33 2007 +0200
@@ -115,7 +115,7 @@
 With argument, do this that many times.
 A negative argument means move forward but still to a less deep spot.
 In Lisp programs, an argument is required."
-  (interactive "p")
+  (interactive "_p")
   (up-list (- arg)))
 
 (defun up-list (arg) 
--- a/lisp/prim/loaddefs.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/loaddefs.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4840,6 +4840,81 @@
 ;;;### (autoloads nil "cc-mode" "modes/cc-mode.el" (12964 17751))
 ;;; Generated autoloads from modes/cc-mode.el
 
+(autoload 'c-mode "cc-mode" "\
+Major mode for editing K&R and ANSI C code.
+To submit a problem report, enter `\\[c-submit-bug-report]' from a
+c-mode buffer.  This automatically sets up a mail buffer with version
+information already added.  You just need to add a description of the
+problem, including a reproducible test case and send the message.
+
+To see what version of cc-mode you are running, enter `\\[c-version]'.
+
+The hook variable `c-mode-hook' is run with no args, if that value is
+bound and has a non-nil value.  Also the hook `c-mode-common-hook' is
+run first.
+
+Key bindings:
+\\{c-mode-map}" t nil)
+
+(autoload 'c++-mode "cc-mode" "\
+Major mode for editing C++ code.
+To submit a problem report, enter `\\[c-submit-bug-report]' from a
+c++-mode buffer.  This automatically sets up a mail buffer with
+version information already added.  You just need to add a description
+of the problem, including a reproducible test case, and send the
+message.
+
+To see what version of cc-mode you are running, enter `\\[c-version]'.
+
+The hook variable `c++-mode-hook' is run with no args, if that
+variable is bound and has a non-nil value.  Also the hook
+`c-mode-common-hook' is run first.
+
+Key bindings:
+\\{c++-mode-map}" t nil)
+
+(autoload 'objc-mode "cc-mode" "\
+Major mode for editing Objective C code.
+To submit a problem report, enter `\\[c-submit-bug-report]' from an
+objc-mode buffer.  This automatically sets up a mail buffer with
+version information already added.  You just need to add a description
+of the problem, including a reproducible test case, and send the
+message.
+
+To see what version of cc-mode you are running, enter `\\[c-version]'.
+
+The hook variable `objc-mode-hook' is run with no args, if that value
+is bound and has a non-nil value.  Also the hook `c-mode-common-hook'
+is run first.
+
+Key bindings:
+\\{objc-mode-map}" t nil)
+
+(autoload 'java-mode "cc-mode" "\
+Major mode for editing Java code.
+To submit a problem report, enter `\\[c-submit-bug-report]' from an
+java-mode buffer.  This automatically sets up a mail buffer with
+version information already added.  You just need to add a description
+of the problem, including a reproducible test case and send the
+message.
+
+To see what version of cc-mode you are running, enter `\\[c-version]'.
+
+The hook variable `java-mode-hook' is run with no args, if that value
+is bound and has a non-nil value.  Also the common hook
+`c-mode-common-hook' is run first.  Note that this mode automatically
+sets the \"java\" style before calling any hooks so be careful if you
+set styles in `c-mode-common-hook'.
+
+Key bindings:
+\\{java-mode-map}" t nil)
+
+(autoload 'c-set-style "cc-mode" "\
+Set cc-mode variables to use one of several different indentation styles.
+STYLENAME is a string representing the desired style from the list of
+styles described in the variable `c-style-alist'.  See that variable
+for details of setting up styles." t nil)
+
 (fset 'set-c-style           'c-set-style)
 
 ;;;***
@@ -5299,7 +5374,7 @@
 ;;; Generated autoloads from modes/ksh-mode.el
 
 (autoload 'ksh-mode "ksh-mode" "\
-ksh-mode $Revision: 1.1.1.2 $ - Major mode for editing (Bourne, Korn or Bourne again)
+ksh-mode $Revision: 1.1.1.3 $ - Major mode for editing (Bourne, Korn or Bourne again)
 shell scripts.
 Special key bindings and commands:
 \\{ksh-mode-map}
--- a/lisp/prim/loadup.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/loadup.el	Mon Aug 13 09:04:33 2007 +0200
@@ -135,7 +135,8 @@
      (load-gc "lisp-mode")
      (load-gc "text-mode")
      (load-gc "fill")
-     (load-gc "cc-mode")
+     ;; (load-gc "cc-mode")		; as FSF goes so go we ..
+     ;; (load-gc "scroll-in-place")	; We're not ready for this :-(
      ;; we no longer load buff-menu automatically.
      ;; it will get autoloaded if needed.
      
--- a/lisp/prim/minibuf.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/minibuf.el	Mon Aug 13 09:04:33 2007 +0200
@@ -157,6 +157,10 @@
     (define-key map "\M-?" 'comint-dynamic-list-completions)
     map)
   "Minibuffer keymap used by shell-command and related commands.")
+
+(defvar should-use-dialog-box t
+  "Variable controlling usage of the dialog box.  If nil, the dialog box
+will never be used, even in response to mouse events.")
 
 (defvar minibuffer-electric-file-name-behavior t
   "If non-nil, slash and tilde in certain places cause immediate deletion.
@@ -840,7 +844,7 @@
                                    (error nil))))
                         (char last-command-char))
                     ;; Try to complete by adding a word-delimiter
-                    (or (and (integerp char) (> char 0)
+                    (or (and (characterp char) (> char 0)
                              (funcall foo (char-to-string char)))
                         (and (not (eq char ?\ ))
                              (funcall foo " "))
@@ -1207,9 +1211,7 @@
 	  (let ((elt (nth (1- minibuffer-history-position)
 			  (symbol-value minibuffer-history-variable))))
 	    (insert
-	     (if (and minibuffer-history-sexp-flag
-		      ;; total kludge
-		      (not (stringp elt)))
+	     (if (not (stringp elt))
 		 (let ((print-level nil))
 		   (condition-case nil
 		       (let ((print-readably t)
@@ -2003,10 +2005,16 @@
   "If non-nil, questions should be asked with a dialog box instead of the
 minibuffer.  This looks at `last-command-event' to see if it was a mouse
 event, and checks whether dialog-support exists and the current device
-supports dialog boxes."
+supports dialog boxes.
+
+The dialog box is totally disabled if the variable `should-use-dialog-box'
+is set to nil."
   (and (featurep 'dialog)
        (device-on-window-system-p)
+       should-use-dialog-box
        (or force-dialog-box-use
 	   (button-press-event-p last-command-event)
 	   (button-release-event-p last-command-event)
 	   (misc-user-event-p last-command-event))))
+
+;;; minibuf.el ends here
--- a/lisp/prim/mouse.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/mouse.el	Mon Aug 13 09:04:33 2007 +0200
@@ -771,9 +771,17 @@
   (cond ((eq type 'word)
 	 ;; trap the beginning and end of buffer errors
 	 (condition-case ()
-	     (if forwardp
-		 (default-mouse-track-end-of-word t)
-	       (default-mouse-track-beginning-of-word t))
+	     (progn
+	       (setq type (char-syntax (char-after (point))))
+	       (if forwardp
+		   (if (= type ?\()
+		       (goto-char (scan-sexps (point) 1))
+		     (if (= type  ?\))
+			 (forward-char 1)
+		       (default-mouse-track-end-of-word t)))
+		 (if (= type ?\))
+		     (goto-char (scan-sexps (1+ (point)) -1))
+		   (default-mouse-track-beginning-of-word t))))
 	   (error ())))
 	((eq type 'line)
 	 (if forwardp (end-of-line) (beginning-of-line)))
--- a/lisp/prim/obsolete.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/obsolete.el	Mon Aug 13 09:04:33 2007 +0200
@@ -357,6 +357,7 @@
 (define-obsolete-function-alias 'user-original-login-name 'user-login-name)
 
 ; old names
+(define-obsolete-function-alias 'wholenump 'natnump)
 (define-obsolete-function-alias 'show-buffer 'set-window-buffer)
 (define-obsolete-function-alias 'buffer-flush-undo 'buffer-disable-undo)
 (define-obsolete-function-alias 'eval-current-buffer 'eval-buffer)
--- a/lisp/prim/replace.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/replace.el	Mon Aug 13 09:04:33 2007 +0200
@@ -440,7 +440,7 @@
       (save-excursion
 	(if list-matching-lines-whole-buffer
 	    (beginning-of-buffer))
-	(message (format "Searching for %s ..." regexp))
+	(message "Searching for %s ..." regexp)
 	;; Find next match, but give up if prev match was at end of buffer.
 	(while (and (not (= prevpos (point-max)))
 		    (re-search-forward regexp nil t))
--- a/lisp/prim/simple.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/prim/simple.el	Mon Aug 13 09:04:33 2007 +0200
@@ -861,13 +861,13 @@
 ;; XEmacs -- shouldn't these functions keep the zmacs region active?
 (defun forward-to-indentation (arg)
   "Move forward ARG lines and position at first nonblank character."
-  (interactive "p")
+  (interactive "_p")
   (forward-line arg)
   (skip-chars-forward " \t"))
 
 (defun backward-to-indentation (arg)
   "Move backward ARG lines and position at first nonblank character."
-  (interactive "p")
+  (interactive "_p")
   (forward-line (- arg))
   (skip-chars-forward " \t"))
 
@@ -1227,8 +1227,10 @@
       ;; This is like exchange-point-and-mark, but doesn't activate the mark.
       ;; It is cleaner to avoid activation, even though the command
       ;; loop would deactivate the mark because we inserted text.
-      (goto-char (prog1 (mark t)
-		   (set-marker (mark-marker) (point) (current-buffer)))))
+      ;; (But doesn't work in XEmacs)
+      ;(goto-char (prog1 (mark t)
+		   ;(set-marker (mark-marker) (point) (current-buffer)))))
+      (exchange-point-and-mark t))
   ;; If we do get all the way thru, make this-command indicate that.
   (setq this-command 'yank)
   nil)
@@ -1534,7 +1536,8 @@
     (switch-to-buffer buffer)))
 
 
-(defvar next-line-add-newlines t
+;;; After 8 years of waiting ... -sb
+(defvar next-line-add-newlines nil  ; XEmacs
   "*If non-nil, `next-line' inserts newline to avoid `end of buffer' error.")
 
 (defun next-line (arg)
@@ -1900,16 +1903,16 @@
 (defconst comment-indent-function
   ;; XEmacs - add at least one space after the end of the text on the
   ;; current line...  
-  #'(lambda ()
-      (save-excursion 
-	(beginning-of-line) 
-	(let ((eol (save-excursion (end-of-line) (point))))
-	  (and comment-start-skip
-	       (re-search-forward comment-start-skip eol t)
-	       (setq eol (match-beginning 0)))
-	  (goto-char eol)
-	  (skip-chars-backward " \t")
-	  (max comment-column (1+ (current-column))))))
+  (lambda ()
+    (save-excursion 
+      (beginning-of-line) 
+      (let ((eol (save-excursion (end-of-line) (point))))
+	(and comment-start-skip
+	     (re-search-forward comment-start-skip eol t)
+	     (setq eol (match-beginning 0)))
+	(goto-char eol)
+	(skip-chars-backward " \t")
+	(max comment-column (1+ (current-column))))))
   "Function to compute desired indentation for a comment.
 This function is called with no args with point at the beginning of
 the comment's starting delimiter.")
--- a/lisp/psgml/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/psgml/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,8 @@
+Sat Dec 21 11:59:34 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* psgml-parse.el (sgml-final): Moved up in file to make the byte
+	compiler happier.
+
 Tue Sep 10 17:52:40 1996  Steven L Baur  <steve@miranova.com>
 
 	* Various files: Sync'ed with 1.0a12
--- a/lisp/psgml/psgml-parse.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/psgml/psgml-parse.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,5 +1,5 @@
 ;;;; psgml-parse.el --- Parser for SGML-editing mode with parsing support
-;; $Id: psgml-parse.el,v 1.1.1.1 1996/12/18 22:43:36 steve Exp $
+;; $Id: psgml-parse.el,v 1.1.1.2 1996/12/21 20:50:41 steve Exp $
 
 ;; Copyright (C) 1994, 1995 Lennart Staflin
 
@@ -465,6 +465,11 @@
    (t					;state is a and-state
     (sgml-get-and-move state token))))
 
+(defsubst sgml-final (state)
+  (if (sgml-normal-state-p state)
+      (sgml-state-final-p state)
+    (sgml-final-and state)))
+
 (defun sgml-get-and-move (state token)
   ;; state is a and-state
   (let ((m (sgml-get-move (sgml-and-state-substate state) token)))
@@ -503,11 +508,6 @@
         (sgml-tokens-of-moves (sgml-state-reqs (sgml-and-state-next state))))))
 
 
-(defsubst sgml-final (state)
-  (if (sgml-normal-state-p state)
-      (sgml-state-final-p state)
-    (sgml-final-and state)))
-
 (defun sgml-final-and (state)
   (and (sgml-final (sgml-and-state-substate state))
        (loop for s in (sgml-and-state-dfas state)
--- a/lisp/sunpro/sunpro-init.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/sunpro/sunpro-init.el	Mon Aug 13 09:04:33 2007 +0200
@@ -77,6 +77,14 @@
      (setq exec-path (append exec-path (list (concat sunpro-dir "bin/"))))))))
 
 (defun sunpro-startup ()
+  "Runs at startup if support for Sun Workshop is compiled in.  Don't run this."
+  
+  ;; Sun distribution censors yow, among other things...
+  (unless (locate-file "yow.el" load-path)
+    (fmakunbound 'yow)
+    (delete-menu-item '("Apps" "Games" "Quote from Zippy"))
+    (delete-menu-item '("Apps" "Games" "Psychoanalyze Zippy!")))
+  
   (when (not (noninteractive))
 
     (flet
--- a/lisp/term/AT386.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/AT386.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,21 +5,22 @@
 
 ;; Copyright (C) 1992 Free Software Foundation, Inc.
 
-;; This file is part of GNU Emacs.
+;; This file is part of XEmacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; XEmacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 2, or (at your option)
 ;; any later version.
 
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
 
 ;;; Commentary:
 
@@ -48,9 +49,9 @@
   (define-key AT386-keypad-map "@" [insert])	;; Ins key
 
   ;; These are not normally set up by either
-  (define-key AT386-keypad-map "G" [kp_5])	;; Unlabeled center key
-  (define-key AT386-keypad-map "S" [kp_subtract])
-  (define-key AT386-keypad-map "T" [kp_add])
+  (define-key AT386-keypad-map "G" [kp-5])	;; Unlabeled center key
+  (define-key AT386-keypad-map "S" [kp-subtract])
+  (define-key AT386-keypad-map "T" [kp-add])
 
   ;; Arrange for the ALT key to be equivalent to ESC
   (define-key function-key-map "\eN" [?\e]) ; ALT map
@@ -58,4 +59,3 @@
 
 
 ;;; AT386.el ends here
-
--- a/lisp/term/linux.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/linux.el	Mon Aug 13 09:04:33 2007 +0200
@@ -18,7 +18,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
 
 ;;;; Code:
 
@@ -55,24 +56,26 @@
 (define-key function-key-map "\e[4~" [end])
 (define-key function-key-map "\e[5~" [prior])
 (define-key function-key-map "\e[6~" [next])
-(define-key function-key-map "\e[G" [kp_5])
+(define-key function-key-map "\e[G" [kp-5])
 
-(define-key function-key-map "\eOp" [kp_0])
-(define-key function-key-map "\eOq" [kp_1])
-(define-key function-key-map "\eOr" [kp_2])
-(define-key function-key-map "\eOs" [kp_3])
-(define-key function-key-map "\eOt" [kp_4])
-(define-key function-key-map "\eOu" [kp_5])
-(define-key function-key-map "\eOv" [kp_6])
-(define-key function-key-map "\eOw" [kp_7])
-(define-key function-key-map "\eOx" [kp_8])
-(define-key function-key-map "\eOy" [kp_9])
+(define-key function-key-map "\eOp" [kp-0])
+(define-key function-key-map "\eOq" [kp-1])
+(define-key function-key-map "\eOr" [kp-2])
+(define-key function-key-map "\eOs" [kp-3])
+(define-key function-key-map "\eOt" [kp-4])
+(define-key function-key-map "\eOu" [kp-5])
+(define-key function-key-map "\eOv" [kp-6])
+(define-key function-key-map "\eOw" [kp-7])
+(define-key function-key-map "\eOx" [kp-8])
+(define-key function-key-map "\eOy" [kp-9])
 
-(define-key function-key-map "\eOl" [kp_add])
-(define-key function-key-map "\eOS" [kp_subtract])
-(define-key function-key-map "\eOM" [kp_enter])
-(define-key function-key-map "\eOR" [kp_multiply])
-(define-key function-key-map "\eOQ" [kp_divide])
-(define-key function-key-map "\eOn" [kp_decimal])
-(define-key function-key-map "\eOP" [kp_numlock])
+(define-key function-key-map "\eOl" [kp-add])
+(define-key function-key-map "\eOS" [kp-subtract])
+(define-key function-key-map "\eOM" [kp-enter])
+(define-key function-key-map "\eOR" [kp-multiply])
+(define-key function-key-map "\eOQ" [kp-divide])
+(define-key function-key-map "\eOn" [kp-decimal])
+(define-key function-key-map "\eOP" [kp-numlock])
 
+;;; linux.el ends here
+
--- a/lisp/term/lk201.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/lk201.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,26 @@
+;;; lk201.el --- basic editing commands for XEmacs
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Not in FSF
+
+;;; Commentary:
+
 ;; Define function key sequences for DEC terminals.
 
 ;; Termcap or terminfo should set these.
@@ -6,6 +29,8 @@
 ;; (define-key function-key-map "\e[C" [right])
 ;; (define-key function-key-map "\e[D" [left])
 
+;;; Code:
+
 (define-key function-key-map "\e[1~" [find])
 (define-key function-key-map "\e[2~" [insert])
 (define-key function-key-map "\e[3~" [delete])
@@ -43,26 +68,28 @@
 
 ;; Termcap or terminfo should set these, but doesn't properly.
 ;; Termcap sets these to k1-k4, which get mapped to f1-f4 in term.c
-(define-key function-key-map "\eOP" [kp_f1])
-(define-key function-key-map "\eOQ" [kp_f2])
-(define-key function-key-map "\eOR" [kp_f3])
-(define-key function-key-map "\eOS" [kp_f4])
+(define-key function-key-map "\eOP" [kp-f1])
+(define-key function-key-map "\eOQ" [kp-f2])
+(define-key function-key-map "\eOR" [kp-f3])
+(define-key function-key-map "\eOS" [kp-f4])
 
-(define-key function-key-map "\eOI" [kp_tab])
-(define-key function-key-map "\eOj" [kp_multiply])
-(define-key function-key-map "\eOk" [kp_add])
-(define-key function-key-map "\eOl" [kp_separator])
-(define-key function-key-map "\eOM" [kp_enter])
-(define-key function-key-map "\eOm" [kp_subtract])
-(define-key function-key-map "\eOn" [kp_decimal])
-(define-key function-key-map "\eOo" [kp_divide])
-(define-key function-key-map "\eOp" [kp_0])
-(define-key function-key-map "\eOq" [kp_1])
-(define-key function-key-map "\eOr" [kp_2])
-(define-key function-key-map "\eOs" [kp_3])
-(define-key function-key-map "\eOt" [kp_4])
-(define-key function-key-map "\eOu" [kp_5])
-(define-key function-key-map "\eOv" [kp_6])
-(define-key function-key-map "\eOw" [kp_7])
-(define-key function-key-map "\eOx" [kp_8])
-(define-key function-key-map "\eOy" [kp_9])
+(define-key function-key-map "\eOI" [kp-tab])
+(define-key function-key-map "\eOj" [kp-multiply])
+(define-key function-key-map "\eOk" [kp-add])
+(define-key function-key-map "\eOl" [kp-separator])
+(define-key function-key-map "\eOM" [kp-enter])
+(define-key function-key-map "\eOm" [kp-subtract])
+(define-key function-key-map "\eOn" [kp-decimal])
+(define-key function-key-map "\eOo" [kp-divide])
+(define-key function-key-map "\eOp" [kp-0])
+(define-key function-key-map "\eOq" [kp-1])
+(define-key function-key-map "\eOr" [kp-2])
+(define-key function-key-map "\eOs" [kp-3])
+(define-key function-key-map "\eOt" [kp-4])
+(define-key function-key-map "\eOu" [kp-5])
+(define-key function-key-map "\eOv" [kp-6])
+(define-key function-key-map "\eOw" [kp-7])
+(define-key function-key-map "\eOx" [kp-8])
+(define-key function-key-map "\eOy" [kp-9])
+
+;;; lk201.el ends here
--- a/lisp/term/news.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/news.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,21 +5,22 @@
 
 ;; Copyright (C) 1989, 1993 Free Software Foundation, Inc.
 
-;;; This file is part of GNU Emacs.
+;;; This file is part of XEmacs.
 ;;;
-;;; GNU Emacs is free software; you can redistribute it and/or modify
-;;; it under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 2, or (at your option)
-;;; any later version.
+;;; XEmacs is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2, or (at your
+;;; option) any later version.
 ;;;
-;;; GNU Emacs is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
+;;; XEmacs is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;; General Public License for more details.
 ;;;
 ;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Emacs; see the file COPYING.  If not, write to
-;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;; along with XEmacs; see the file COPYING.  If not, write to the
+;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;;; Boston, MA 02111-1307, USA.
 
 ;;; Commentary:
 
@@ -50,23 +51,23 @@
   (define-key news-fkey-prefix "a" [execute])
   (define-key news-fkey-prefix "b" [select])
   (define-key news-fkey-prefix "c" [cancel])
-  (define-key news-fkey-prefix "M" [kp_enter])
-  (define-key news-fkey-prefix "q" [kp_1])
-  (define-key news-fkey-prefix "s" [kp_3])
-  (define-key news-fkey-prefix "u" [kp_5])
-  (define-key news-fkey-prefix "w" [kp_7])
-  (define-key news-fkey-prefix "y" [kp_9])
+  (define-key news-fkey-prefix "M" [kp-enter])
+  (define-key news-fkey-prefix "q" [kp-1])
+  (define-key news-fkey-prefix "s" [kp-3])
+  (define-key news-fkey-prefix "u" [kp-5])
+  (define-key news-fkey-prefix "w" [kp-7])
+  (define-key news-fkey-prefix "y" [kp-9])
 
   ;; These aren't in either termcap or terminfo's repertoire
-  (define-key news-fkey-prefix "m" [kp_subtract])
-  (define-key news-fkey-prefix "k" [kp_add])
-  (define-key news-fkey-prefix "l" [kp_separator])
-  (define-key news-fkey-prefix "n" [kp_decimal])
-  (define-key news-fkey-prefix "p" [kp_0])
-  (define-key news-fkey-prefix "r" [kp_2])
-  (define-key news-fkey-prefix "t" [kp_4])
-  (define-key news-fkey-prefix "v" [kp_6])
-  (define-key news-fkey-prefix "x" [kp_8])
+  (define-key news-fkey-prefix "m" [kp-subtract])
+  (define-key news-fkey-prefix "k" [kp-add])
+  (define-key news-fkey-prefix "l" [kp-separator])
+  (define-key news-fkey-prefix "n" [kp-decimal])
+  (define-key news-fkey-prefix "p" [kp-0])
+  (define-key news-fkey-prefix "r" [kp-2])
+  (define-key news-fkey-prefix "t" [kp-4])
+  (define-key news-fkey-prefix "v" [kp-6])
+  (define-key news-fkey-prefix "x" [kp-8])
   )
 
 ;;; news.el ends here
--- a/lisp/term/tvi970.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/tvi970.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,21 +5,22 @@
 
 ;; Copyright (C) 1992 Free Software Foundation, Inc.
 
-;; This file is part of GNU Emacs.
+;; This file is part of XEmacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 2, or (at your option)
 ;; any later version.
 
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
 
 ;;; Commentary:
 
@@ -38,10 +39,10 @@
 		      (car key-binding) (nth 1 key-binding))))
 	'(
 	  ;; These are set up by termcap or terminfo
-	  ;; ("\eOP"	[kp_f1])
-	  ;; ("\eOQ"	[kp_f2])
-	  ;; ("\eOR"	[kp_f3])
-	  ;; ("\eOS"	[kp_f4])
+	  ;; ("\eOP"	[kp-f1])
+	  ;; ("\eOQ"	[kp-f2])
+	  ;; ("\eOR"	[kp-f3])
+	  ;; ("\eOS"	[kp-f4])
 
 	  ;; These might br set by terminfo
 	  ("\e[H"	[home])
@@ -53,27 +54,27 @@
 	  ("\e[U"	[next])		;; actually the `page' key
 
 	  ;; These won't be set up by either
-	  ("\eOm"	[kp_subtract])
-	  ("\eOl"	[kp_separator])
-	  ("\eOn"	[kp_decimal])
-	  ("\eOM"	[kp_enter])
+	  ("\eOm"	[kp-subtract])
+	  ("\eOl"	[kp-separator])
+	  ("\eOn"	[kp-decimal])
+	  ("\eOM"	[kp-enter])
 
 	  ;; These won't be set up by either either
-	  ("\e[K"	[key_eol])	;; Not an X keysym
-	  ("\e[J"	[key_eos])	;; Not an X keysym
-	  ("\e[2J"	[key_clear])	;; Not an X keysym
-	  ("\e[P"	[key_dc])	;; Not an X keysym
+	  ("\e[K"	[key-eol])	;; Not an X keysym
+	  ("\e[J"	[key-eos])	;; Not an X keysym
+	  ("\e[2J"	[key-clear])	;; Not an X keysym
+	  ("\e[P"	[key-dc])	;; Not an X keysym
 	  ("\e[g"	[(shift tab)])	;; Not an X keysym
 	  ("\e[2N"	[clearentry])	;; Not an X keysym
 	  ("\e[2K"	[(shift clearentry)])	;; Not an X keysym
 	  ("\e[E"	[?\C-j])	;; Not an X keysym
 	  ("\e[g"	[(shift backtab)])	;; Not an X keysym
-	  ("\e[?1i"	[key_sprint])	;; Not an X keysym
-	  ("\e[4h"	[key_sic])	;; Not an X keysym
+	  ("\e[?1i"	[key-sprint])	;; Not an X keysym
+	  ("\e[4h"	[key-sic])	;; Not an X keysym
 	  ("\e[4l"	[(shift delete)])	;; Not an X keysym
 	  ("\e[Q"	[(shift insertline)])	;; Not an X keysym
-	  ("\e[1Q"	[key_sdl])	;; Not an X keysym
-	  ("\e[19l"	[key_seol])	;; Not an X keysym
+	  ("\e[1Q"	[key-sdl])	;; Not an X keysym
+	  ("\e[19l"	[key-seol])	;; Not an X keysym
 	  ("\e[19h"	[(shift erasepage)])	;; Not an X keysym
 	  ("\e[V"	[(shift page)])	;; Not an X keysym
 	  ("\eS"	[send])		;; Not an X keysym
@@ -85,7 +86,7 @@
   (while (< i 10)
     (define-key function-key-map
       (format "\eO%c" (+ i ?p))
-      (vector (intern (format "kp_%d" i))))
+      (vector (intern (format "kp-%d" i))))
     (setq i (1+ i))))
 ;; The numbered function keys.
 (let ((i 0))
--- a/lisp/term/xterm.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/term/xterm.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,6 +4,7 @@
 ;; Keywords: terminals
 
 ;; Copyright (C) 1995 Free Software Foundation, Inc.
+
 ;; This file is part of XEmacs.
 
 ;; XEmacs is free software; you can redistribute it and/or modify it
@@ -66,23 +67,23 @@
 (define-key function-key-map "\eOC" [right])
 (define-key function-key-map "\eOD" [left])
 
-(define-key function-key-map "\eOp" [kp_0])
-(define-key function-key-map "\eOq" [kp_1])
-(define-key function-key-map "\eOr" [kp_2])
-(define-key function-key-map "\eOs" [kp_3])
-(define-key function-key-map "\eOt" [kp_4])
-(define-key function-key-map "\eOu" [kp_5])
-(define-key function-key-map "\eOv" [kp_6])
-(define-key function-key-map "\eOw" [kp_7])
-(define-key function-key-map "\eOx" [kp_8])
-(define-key function-key-map "\eOy" [kp_9])
+(define-key function-key-map "\eOp" [kp-0])
+(define-key function-key-map "\eOq" [kp-1])
+(define-key function-key-map "\eOr" [kp-2])
+(define-key function-key-map "\eOs" [kp-3])
+(define-key function-key-map "\eOt" [kp-4])
+(define-key function-key-map "\eOu" [kp-5])
+(define-key function-key-map "\eOv" [kp-6])
+(define-key function-key-map "\eOw" [kp-7])
+(define-key function-key-map "\eOx" [kp-8])
+(define-key function-key-map "\eOy" [kp-9])
 
-(define-key function-key-map "\eOk" [kp_add])
-(define-key function-key-map "\eOm" [kp_subtract])
-(define-key function-key-map "\eOM" [kp_enter])
-(define-key function-key-map "\eOj" [kp_multiply])
-(define-key function-key-map "\eOo" [kp_divide])
-(define-key function-key-map "\eOn" [kp_decimal])
+(define-key function-key-map "\eOk" [kp-add])
+(define-key function-key-map "\eOm" [kp-subtract])
+(define-key function-key-map "\eOM" [kp-enter])
+(define-key function-key-map "\eOj" [kp-multiply])
+(define-key function-key-map "\eOo" [kp-divide])
+(define-key function-key-map "\eOn" [kp-decimal])
 
 ;; If you use the X resource -- XTerm*sunFunctionKeys: on -- you may
 ;; need these.
@@ -113,3 +114,5 @@
 (define-key function-key-map "\e[2z" [insert])
 (define-key function-key-map "\e[5z" [prior])
 (define-key function-key-map "\e[6z" [next])
+
+;;; xterm.el ends here
--- a/lisp/tl/emu-x20.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tl/emu-x20.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 ;; Copyright (C) 1994,1995,1996 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: emu-x20.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;; Version: $Id: emu-x20.el,v 1.1.1.2 1996/12/21 20:50:48 steve Exp $
 ;; Keywords: emulation, compatibility, Mule, XEmacs
 
 ;; This file is part of tl (Tiny Library).
@@ -36,7 +36,7 @@
        )))
 
 
-;;; @ character set
+;;; @ graphic character set
 ;;;
 
 (defalias 'charset-description 'charset-doc-string)
@@ -57,33 +57,6 @@
   (delq 'ascii (charsets-in-region start end))
   )
 
-;;; @@ for Mule emulation
-;;;
-
-(defconst lc-ascii  'ascii)
-(defconst lc-ltn1   'latin-1)
-(defconst lc-ltn2   'latin-2)
-(defconst lc-ltn3   'latin-3)
-(defconst lc-ltn4   'latin-4)
-(defconst lc-crl    'cyrillic)
-(defconst lc-arb    'arabic)
-(defconst lc-grk    'greek)
-(defconst lc-hbw    'hebrew)
-(defconst lc-ltn5   'latin-5)
-(defconst lc-jp     'japanese-jisx0208)
-(defconst lc-jp2    'japanese-jisx0212)
-(defconst lc-kr     'korean-ksc5601)
-(defconst lc-big5-1 'chinese-big5-1)
-(defconst lc-big5-2 'chinese-big5-2)
-(defconst lc-cn     'chinese-gb)
-(defconst lc-cns1   'chinese-cns11643-1)
-(defconst lc-cns2   'chinese-cns11643-2)
-(defconst lc-cns3   'chinese-cns11643-3)
-(defconst lc-cns4   'chinese-cns11643-4)
-(defconst lc-cns5   'chinese-cns11643-5)
-(defconst lc-cns6   'chinese-cns11643-6)
-(defconst lc-cns7   'chinese-cns11643-7)
-
 
 ;;; @ coding-system
 ;;;
@@ -113,25 +86,28 @@
 
 (defvar charsets-mime-charset-alist
   '(((ascii)						. us-ascii)
-    ((ascii latin-1)					. iso-8859-1)
-    ((ascii latin-2)					. iso-8859-2)
-    ((ascii latin-3)					. iso-8859-3)
-    ((ascii latin-4)					. iso-8859-4)
-;;; ((ascii cyrillic)					. iso-8859-5)
-    ((ascii cyrillic)					. koi8-r)
-    ((ascii arabic)					. iso-8859-6)
-    ((ascii greek)					. iso-8859-7)
-    ((ascii hebrew)					. iso-8859-8)
-    ((ascii latin-5)					. iso-8859-9)
+    ((ascii latin-iso8859-1)				. iso-8859-1)
+    ((ascii latin-iso8859-2)				. iso-8859-2)
+    ((ascii latin-iso8859-3)				. iso-8859-3)
+    ((ascii latin-iso8859-4)				. iso-8859-4)
+;;; ((ascii cyrillic-iso8859-5)				. iso-8859-5)
+    ((ascii cyrillic-iso8859-5)				. koi8-r)
+    ((ascii arabic-iso8859-6)				. iso-8859-6)
+    ((ascii greek-iso8859-7)				. iso-8859-7)
+    ((ascii hebrew-iso8859-8)				. iso-8859-8)
+    ((ascii latin-iso8859-9)				. iso-8859-9)
     ((ascii japanese-jisx0208-1978 japanese-jisx0208)	. iso-2022-jp)
     ((ascii korean-ksc5601)				. euc-kr)
     ((ascii chinese-big5-1 chinese-big5-2)		. big5)
     ((ascii japanese-jisx0208-1978 chinese-gb
 	    japanese-jisx0208 korean-ksc5601
-	    japanese-jisx0212 latin-1 greek)		. iso-2022-jp-2)
-    ((ascii japanese-jisx0208-1978 chinese-gb japanese-jisx0208 korean-ksc5601
-	    japanese-jisx0212 chinese-cns11643-1 chinese-cns11643-2
-	    latin-1 greek)				. iso-2022-int-1)
+	    japanese-jisx0212 latin-iso8859-1
+	    greek-iso8859-7)				. iso-2022-jp-2)
+    ((ascii japanese-jisx0208-1978 chinese-gb2312
+	    japanese-jisx0208 korean-ksc5601
+	    japanese-jisx0212
+	    chinese-cns11643-1 chinese-cns11643-2
+	    latin-iso8859-1 greek-iso8859-7)		. iso-2022-int-1)
     ))
 
 (defvar default-mime-charset 'iso-2022-int-1)
--- a/lisp/tl/emu-xemacs.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tl/emu-xemacs.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,7 +5,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Version:
-;;	$Id: emu-xemacs.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;;	$Id: emu-xemacs.el,v 1.1.1.2 1996/12/21 20:50:48 steve Exp $
 ;; Keywords: emulation, compatibility, XEmacs
 
 ;; This file is part of emu.
--- a/lisp/tl/emu.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tl/emu.el	Mon Aug 13 09:04:33 2007 +0200
@@ -3,10 +3,10 @@
 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: emu.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
-;; Keywords: emulation, compatibility, NEmacs, MULE, XEmacs
+;; Version: $Id: emu.el,v 1.1.1.2 1996/12/21 20:50:49 steve Exp $
+;; Keywords: emulation, compatibility, NEmacs, MULE, Emacs/mule, XEmacs
 
-;; This file is part of tl (Tiny Library).
+;; This file is part of emu.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -25,6 +25,20 @@
 
 ;;; Code:
 
+(defmacro defun-maybe (name &rest everything-else)
+  (or (and (fboundp name)
+	   (not (get name 'defun-maybe))
+	   )
+      (` (or (fboundp (quote (, name)))
+	     (progn
+	       (defun (, name) (,@ everything-else))
+	       (put (quote (, name)) 'defun-maybe t)
+	       ))
+	 )))
+
+(put 'defun-maybe 'lisp-indent-function 'defun)
+
+
 (or (boundp 'emacs-major-version)
     (defconst emacs-major-version (string-to-int emacs-version)))
 (or (boundp 'emacs-minor-version)
@@ -130,14 +144,24 @@
 (defvar path-separator ":"
   "Character used to separate concatenated paths.")
 
-(or (fboundp 'buffer-substring-no-properties)
-    (defun buffer-substring-no-properties (beg end)
-      "Return the text from BEG to END, without text properties, as a string.
+(defun-maybe buffer-substring-no-properties (beg end)
+  "Return the text from BEG to END, without text properties, as a string.
 \[emu.el; EMACS 19.29 emulating function]"
-      (let ((string (buffer-substring beg end)))
-        (tl:set-text-properties 0 (length string) nil string)
-	string))
-    )
+  (let ((string (buffer-substring beg end)))
+    (tl:set-text-properties 0 (length string) nil string)
+    string))
+
+(defun-maybe match-string (num &optional string)
+  "Return string of text matched by last search.
+NUM specifies which parenthesized expression in the last regexp.
+ Value is nil if NUMth pair didn't match, or there were less than NUM pairs.
+Zero means the entire text matched by the whole regexp or whole string.
+STRING should be given if the last search was by `string-match' on STRING.
+\[emu.el; EMACS 19.29 emulating function]"
+  (if (match-beginning num)
+      (if string
+	  (substring string (match-beginning num) (match-end num))
+	(buffer-substring (match-beginning num) (match-end num)))))
 
 (or running-emacs-19_29-or-later
     running-xemacs
@@ -155,17 +179,16 @@
 	)
       ))
 
-(or (fboundp 'add-to-list)
-    ;; This function was imported Emacs 19.30.
-    (defun add-to-list (list-var element)
-      "Add to the value of LIST-VAR the element ELEMENT if it isn't there yet.
+;; This function was imported Emacs 19.30.
+(defun-maybe add-to-list (list-var element)
+  "Add to the value of LIST-VAR the element ELEMENT if it isn't there yet.
 If you want to use `add-to-list' on a variable that is not defined
 until a certain package is loaded, you should put the call to `add-to-list'
 into a hook function that will be run only after loading the package.
 \[emu.el; EMACS 19.30 emulating function]"
-      (or (member element (symbol-value list-var))
-	  (set list-var (cons element (symbol-value list-var)))))
-    )
+  (or (member element (symbol-value list-var))
+      (set list-var (cons element (symbol-value list-var)))
+      ))
 
 
 ;;; @ EMACS 19.30 emulation
@@ -194,16 +217,14 @@
 ;;; @ EMACS 19.31 emulation
 ;;;
 
-(or (fboundp 'buffer-live-p)
-    (defun buffer-live-p (object)
-      "Return non-nil if OBJECT is a buffer which has not been killed.
+(defun-maybe buffer-live-p (object)
+  "Return non-nil if OBJECT is a buffer which has not been killed.
 Value is nil if OBJECT is not a buffer or if it has been killed.
 \[emu.el; EMACS 19.31 emulating function]"
-      (and object
-	   (get-buffer object)
-	   (buffer-name (get-buffer object))
-	   ))
-    )
+  (and object
+       (get-buffer object)
+       (buffer-name (get-buffer object))
+       ))
 
 (or (fboundp 'save-selected-window)
     ;; This function was imported Emacs 19.33.
@@ -221,17 +242,15 @@
 ;;; @ XEmacs emulation
 ;;;
 
-(or (fboundp 'functionp)
-    (defun functionp (obj)
-      "Returns t if OBJ is a function, nil otherwise.
+(defun-maybe functionp (obj)
+  "Returns t if OBJ is a function, nil otherwise.
 \[emu.el; XEmacs emulating function]"
-      (or (subrp obj)
-	  (byte-code-function-p obj)
-	  (and (symbolp obj)(fboundp obj))
-	  (and (consp obj)(eq (car obj) 'lambda))
-	  ))
-    )
-	
+  (or (subrp obj)
+      (byte-code-function-p obj)
+      (and (symbolp obj)(fboundp obj))
+      (and (consp obj)(eq (car obj) 'lambda))
+      ))
+
 
 ;;; @ for XEmacs 20
 ;;;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/tl/filename.el	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,142 @@
+;;; filename.el --- file name filter
+
+;; Copyright (C) 1996 MORIOKA Tomohiko
+
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Version: $Id: filename.el,v 1.1.1.1 1996/12/21 20:50:51 steve Exp $
+;; Keywords: string, file name
+
+;; This file is part of tl (Tiny Library).
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Code:
+
+(require 'tl-list)
+(require 'tl-str)
+
+
+;;; @ variables
+;;;
+
+(defvar filename-limit-length 21)
+
+(defvar filename-replacement-alist
+  (list
+   (cons (string-to-char-list " \t") "_")
+   (cons (string-to-char-list (expand-char-ranges "!-*,/:;<>?[-^`{-~")) "_")
+   '(filename-control-p . "")
+   ))
+
+(defvar filename-filters
+  (nconc
+   (and (file-installed-p "kakasi" exec-path)
+	'(filename-japanese-to-roman-string)
+	)
+   '(filename-special-filter
+     filename-eliminate-top-low-lines
+     filename-canonicalize-low-lines
+     filename-maybe-truncate-by-size
+     filename-eliminate-bottom-low-lines
+     )))
+
+
+;;; @ filters
+;;;
+
+(defun filename-japanese-to-roman-string (str)
+  (save-excursion
+    (set-buffer (get-buffer-create " *temp kakasi*"))
+    (erase-buffer)
+    (insert str)
+    (call-process-region (point-min)(point-max) "kakasi" t t t
+			 "-Ha" "-Ka" "-Ja" "-Ea" "-ka")
+    (buffer-string)
+    ))
+
+(defun filename-control-p (character)
+  (let ((code (char-int character)))
+    (or (< code 32)(= code 127))
+    ))
+
+(defun filename-special-filter (string)
+  (let (dest
+	(i 0)
+	(len (length string))
+	(b 0)
+	)
+    (while (< i len)
+      (let* ((chr (sref string i))
+	     (ret (ASSOC chr filename-replacement-alist
+			 :test (function
+				(lambda (chr key)
+				  (if (functionp key)
+				      (funcall key chr)
+				    (memq chr key)
+				    )
+				  ))))
+	     )
+	(if ret
+	    (setq dest (concat dest (substring string b i)(cdr ret))
+		  i (+ i (char-length chr))
+		  b i)
+	  (setq i (+ i (char-length chr)))
+	  )))
+    (concat dest (substring string b))
+    ))
+
+(defun filename-eliminate-top-low-lines (string)
+  (if (string-match "^_+" string)
+      (substring string (match-end 0))
+    string))
+
+(defun filename-canonicalize-low-lines (string)
+  (let (dest)
+    (while (string-match "__+" string)
+      (setq dest (concat dest (substring string 0 (1+ (match-beginning 0)))))
+      (setq string (substring string (match-end 0)))
+      )
+    (concat dest string)
+    ))
+
+(defun filename-maybe-truncate-by-size (string)
+  (if (and (> (length string) filename-limit-length)
+	   (string-match "_" string filename-limit-length)
+	   )
+      (substring string 0 (match-beginning 0))
+    string))
+
+(defun filename-eliminate-bottom-low-lines (string)
+  (if (string-match "_+$" string)
+      (substring string 0 (match-beginning 0))
+    string))
+
+
+;;; @ interface
+;;;
+
+(defun replace-as-filename (string)
+  "Return safety filename from STRING. [filename.el]"
+  (poly-funcall filename-filters string)
+  )
+
+
+;;; @ end
+;;;
+
+(provide 'filename)
+
+;;; filename.el ends here
--- a/lisp/tl/richtext.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tl/richtext.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,30 +1,30 @@
-;;;
 ;;; richtext.el -- read and save files in text/richtext format
-;;;
-;;; Copyright (C) 1995 Free Software Foundation, Inc.
-;;; Copyright (C) 1995 MORIOKA Tomohiko
-;;;
-;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;;; Created: 1995/7/15
-;;; Version:
-;;;	$Id: richtext.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
-;;; Keywords: wp, faces, MIME, multimedia
-;;;
-;;; This file is part of GNU Emacs.
-;;;
-;;; GNU Emacs is free software; you can redistribute it and/or modify
-;;; it under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 2, or (at your option)
-;;; any later version.
-;;;
-;;; GNU Emacs is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Emacs; see the file COPYING.  If not, write to
-;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
+
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Created: 1995/7/15
+;; Version: $Id: richtext.el,v 1.1.1.2 1996/12/21 20:50:51 steve Exp $
+;; Keywords: wp, faces, MIME, multimedia
+
+;; This file is not part of GNU Emacs yet.
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Code:
 
 (require 'enriched)
 
@@ -143,7 +143,7 @@
       (narrow-to-region from to)
       (goto-char from)
       (let ((file-width (enriched-get-file-width))
-	    (use-hard-newlines t) pc nc)
+	    (use-hard-newlines t))
 	(enriched-remove-header)
 	
 	(goto-char from)
@@ -181,3 +181,5 @@
 ;;;
 
 (provide 'richtext)
+
+;;; richtext.el ends here
--- a/lisp/tl/tl-str.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tl/tl-str.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Version:
-;;	$Id: tl-str.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;;	$Id: tl-str.el,v 1.1.1.2 1996/12/21 20:50:49 steve Exp $
 ;; Keywords: string
 
 ;; This file is part of tl (Tiny Library).
@@ -206,40 +206,7 @@
       (substring filename 0 (match-beginning 0))
     filename))
 
-(defvar filename-special-char-range
-  (nconc '((0 . 31))
-	 (string-to-int-list "!\"$")
-	 (list (cons (char-int ?&) (char-int ?*)))
-	 (string-to-int-list "/;<>?")
-	 (list (cons (char-int ?\[) (char-int ?^)))
-	 (string-to-int-list "`")
-	 (list (cons (char-int ?{) (char-int ?})))
-	 '((127 . 159)))
-  "*Range of characters which is not available in file name. [tl-str.el]")
-
-(defvar filename-space-char-range '(9 32 160)
-  "*Range of characters which indicates space. These characters
-are replaced to `_' by function `replace-as-filename' [tl-str.el]")
-
-(defun replace-as-filename (str)
-  "Return safety filename from STR. [tl-str.el]"
-  (let (sf)
-    (mapconcat (function
-		(lambda (chr)
-		  (cond ((member-of-range chr filename-space-char-range)
-			 (if sf
-			     ""
-			   (setq sf t)
-			   "_"))
-			((member-of-range chr filename-special-char-range)
-			 "")
-			(t
-			 (setq sf nil)
-			 (char-to-string chr)
-			 ))
-		  ))
-	       (string-to-char-list str)
-	       "")))
+(autoload 'replace-as-filename "filename")
 
 
 ;;; @ symbol
--- a/lisp/tm/gnus-art-mime.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/gnus-art-mime.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,7 +5,7 @@
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/8/6
 ;; Version:
-;;	$Id: gnus-art-mime.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;;	$Id: gnus-art-mime.el,v 1.1.1.2 1996/12/21 20:50:48 steve Exp $
 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is not part of GNU Emacs yet.
@@ -28,14 +28,14 @@
 ;;; Code:
 
 (require 'emu)
+(require 'gnus-mime)
 (require 'gnus-art)
+(require 'tm-view)
 
 (autoload 'mime-eword/decode-region "tm-ew-d"
   "Decode MIME encoded-words in region." t)
 (autoload 'mime/decode-message-header "tm-ew-d"
   "Decode MIME encoded-words in message header." t)
-(autoload 'mime/viewer-mode "tm-view"
-  "Major mode for viewing MIME message." t)
 
 
 ;;; @ encoded-word
--- a/lisp/tm/gnus-charset.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/gnus-charset.el	Mon Aug 13 09:04:33 2007 +0200
@@ -5,7 +5,7 @@
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/8/6
 ;; Version:
-;;	$Id: gnus-charset.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;;	$Id: gnus-charset.el,v 1.1.1.2 1996/12/21 20:50:47 steve Exp $
 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is not part of GNU Emacs yet.
@@ -83,14 +83,45 @@
   (call-after-loaded
    'nnheader
    (lambda ()
-     (defun nnheader-find-file-noselect (filename &optional nowarn rawfile)
-       (as-binary-input-file (find-file-noselect filename nowarn rawfile))
+     (defun nnheader-find-file-noselect (&rest args)
+       (as-binary-input-file
+        (let ((format-alist nil)
+              (auto-mode-alist (nnheader-auto-mode-alist))
+              (default-major-mode 'fundamental-mode)
+              (after-insert-file-functions ; for jam-code-guess
+               (if (memq 'jam-code-guess-after-insert-file-function
+                         after-insert-file-functions)
+                   '(jam-code-guess-after-insert-file-function))))
+          (apply 'find-file-noselect args)))
        )
-     (defun nnheader-insert-file-contents-literally
+     ;; Red Gnus 0.67 or later
+     (defun nnheader-insert-file-contents
        (filename &optional visit beg end replace)
        (as-binary-input-file
-	(insert-file-contents-literally filename visit beg end replace)
-	))
+        (let ((format-alist nil)
+              (auto-mode-alist (nnheader-auto-mode-alist))
+              (default-major-mode 'fundamental-mode)
+              (enable-local-variables nil)
+              (after-insert-file-functions ; for jam-code-guess
+               (if (memq 'jam-code-guess-after-insert-file-function
+                         after-insert-file-functions)
+                   '(jam-code-guess-after-insert-file-function))))
+          (insert-file-contents filename visit beg end replace))
+        ))
+     ;; imported from Red Gnus 0.66
+     (or (fboundp 'nnheader-auto-mode-alist)
+         (defun nnheader-auto-mode-alist ()
+           (let ((alist auto-mode-alist)
+                 out)
+             (while alist
+               (when (listp (cdar alist))
+                 (push (car alist) out))
+               (pop alist))
+             (nreverse out)))
+         )
+     ;; alias for Old Gnus
+     (defalias 'nnheader-insert-file-contents-literally
+       'nnheader-insert-file-contents)
      ))
   (call-after-loaded
    'nnmail
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/tm/mime-setup.el	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,184 @@
+;;; mime-setup.el --- setup file for tm viewer and composer.
+
+;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
+
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Version:
+;;	$Id: mime-setup.el,v 1.1.1.1 1996/12/21 20:50:48 steve Exp $
+;; Keywords: mail, news, MIME, multimedia, multilingual, encoded-word
+
+;; This file is part of tm (Tools for MIME).
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Code:
+
+(require 'tm-setup)
+
+(autoload 'mime/editor-mode "tm-edit"
+  "Minor mode for editing MIME message." t)
+(autoload 'mime/decode-message-header "tm-ew-d"
+  "Decode MIME encoded-words in message header." t)
+
+(defun mime-setup-decode-message-header ()
+  (save-excursion
+    (save-restriction
+      (goto-char (point-min))
+      (narrow-to-region
+       (point-min)
+       (if (re-search-forward
+	    (concat "^" (regexp-quote mail-header-separator) "$")
+	    nil t)
+	   (match-beginning 0)
+	 (point-max)
+	 ))
+      (mime/decode-message-header)
+      (set-buffer-modified-p nil)
+      )))
+
+(add-hook 'mime/editor-mode-hook 'mime-setup-decode-message-header)
+
+
+;;; @ variables
+;;;
+
+(defvar mime-setup-use-sc nil
+  "If it is not nil, mime-setup requires sc-setup. [mime-setup.el]")
+
+(defvar mime-setup-use-signature t
+  "If it is not nil, mime-setup sets up to use signature.el.
+\[mime-setup.el]")
+
+(defvar mime-setup-default-signature-key "\C-c\C-s"
+  "*Key to insert signature. [mime-setup.el]")
+
+(defvar mime-setup-signature-key-alist '((mail-mode . "\C-c\C-w"))
+  "Alist of major-mode vs. key to insert signature. [mime-setup.el]")
+
+
+;;; @ for signature
+;;;
+
+(defun mime-setup-set-signature-key ()
+  (let ((key (or (cdr (assq major-mode mime-setup-signature-key-alist))
+		 mime-setup-default-signature-key)))
+    (define-key (current-local-map) key (function insert-signature))
+    ))
+
+(if mime-setup-use-signature
+    (progn
+      (autoload 'insert-signature "signature" "Insert signature" t)
+      (add-hook 'mime/editor-mode-hook 'mime-setup-set-signature-key)
+      (setq gnus-signature-file nil)
+      (setq mail-signature nil)
+      (setq message-signature nil)
+      ))
+
+
+;;; @ about SuperCite
+;;;
+
+(if mime-setup-use-sc
+    (require 'sc-setup)
+  )
+
+
+;;; @ for mu-cite
+;;;
+
+(add-hook 'mu-cite/pre-cite-hook 'mime/decode-message-header)
+
+
+;;; @ for RMAIL and VM
+;;;
+
+(add-hook 'mail-setup-hook 'mime/decode-message-header)
+(add-hook 'mail-setup-hook 'mime/editor-mode 'append)
+(add-hook 'mail-send-hook  'mime-editor/maybe-translate)
+
+
+;;; @ for mh-e
+;;;
+
+(defun mime-setup-mh-draft-setting ()
+  (mime/editor-mode)
+  (make-local-variable 'mail-header-separator)
+  (setq mail-header-separator "--------")
+  (save-excursion
+    (goto-char (point-min))
+    (setq buffer-read-only nil)
+    (if (re-search-forward "^-*$" nil t)
+	(progn
+	  (replace-match mail-header-separator)
+	  (set-buffer-modified-p (buffer-modified-p))
+	  ))
+    ))
+
+(add-hook 'mh-letter-mode-hook 'mime-setup-mh-draft-setting t)
+(add-hook 'mh-before-send-letter-hook 'mime-editor/maybe-translate)
+
+
+;;; @ for GNUS
+;;;
+
+(add-hook 'news-reply-mode-hook 'mime/editor-mode)
+(add-hook 'news-inews-hook      'mime-editor/maybe-translate)
+
+
+;;; @ for message (September Gnus 0.58 or later)
+;;;
+
+(defun message-maybe-setup-default-charset ()
+  (let ((charset
+	 (and (boundp 'gnus-summary-buffer)
+              (buffer-live-p gnus-summary-buffer)
+	      (save-excursion
+		(set-buffer gnus-summary-buffer)
+		default-mime-charset))))
+    (if charset
+	(progn
+	  (make-local-variable 'default-mime-charset)
+	  (setq default-mime-charset charset)
+	  ))))
+
+(or (boundp 'epoch::version)
+    (progn
+      (add-hook 'message-setup-hook 'mime/editor-mode)
+      (add-hook 'message-setup-hook 'message-maybe-setup-default-charset)
+      (add-hook 'message-send-hook  'mime-editor/maybe-translate)
+      (add-hook 'message-header-hook 'mime/encode-message-header)
+      
+      (call-after-loaded
+       'message
+       (function
+	(lambda ()
+	  (require 'message-mime)
+	  )))
+      ))
+
+
+;;; @ end
+;;;
+
+(provide 'mime-setup)
+
+(run-hooks 'mime-setup-load-hook)
+
+;;; mime-setup.el ends here
+;;;
+;;; Local Variables:
+;;; mode: emacs-lisp
+;;; End:
--- a/lisp/tm/tm-bbdb.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-bbdb.el	Mon Aug 13 09:04:33 2007 +0200
@@ -6,7 +6,7 @@
 ;; Author: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
 ;;         Artur Pioro <artur@flugor.if.uj.edu.pl>
 ;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
-;; Version: $Id: tm-bbdb.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;; Version: $Id: tm-bbdb.el,v 1.1.1.2 1996/12/21 20:50:46 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia, multilingual, BBDB
 
 ;; This file is part of tm (Tools for MIME).
@@ -28,23 +28,50 @@
 
 ;;; Code:
 
-(eval-when (compile)
-  (ignore-errors
-    (require 'bbdb)
-    (require 'bbdb-com)))
-(eval-when (load eval)
-    (require 'bbdb)
-    (require 'bbdb-com))
 (require 'std11)
 (require 'tm-ew-d)
 (require 'tm-view)
+(if (module-installed-p 'bbdb-com)
+    (require 'bbdb-com)
+  (eval-when-compile
+    ;; imported from bbdb-1.51
+    (defmacro bbdb-pop-up-elided-display ()
+      '(if (boundp 'bbdb-pop-up-elided-display)
+	   bbdb-pop-up-elided-display
+	 bbdb-elided-display))
+    (defmacro bbdb-user-mail-names ()
+      "Returns a regexp matching the address of the logged-in user"
+      '(or bbdb-user-mail-names
+	   (setq bbdb-user-mail-names
+		 (concat "\\b" (regexp-quote (user-login-name)) "\\b"))))
+    ))
 
 
+;;; @ User Variables
+;;;
+
+(defvar tm-bbdb/use-mail-extr t
+  "*If non-nil, `mail-extract-address-components' is used.
+Otherwise `tm-bbdb/extract-address-components' overrides it.")
+
+(defvar tm-bbdb/auto-create-p nil
+  "*If t, create new BBDB records automatically.
+If function, then it is called with no arguments to decide whether an
+entry should be automatically creaded.
+
+tm-bbdb uses this variable instead of `bbdb/mail-auto-create-p' or
+`bbdb/news-auto-create-p' unless other tm-MUA overrides it.")
+
+(defvar tm-bbdb/delete-empty-window nil
+  "*If non-nil, delete empty BBDB window.
+All bbdb-MUAs but bbdb-gnus display BBDB window even if it is empty.
+If you prefer behavior of bbdb-gnus, set this variable to t.
+
+For framepop users: If empty, `framepop-banish' is used instead.")
+
 ;;; @ mail-extr
 ;;;
 
-(defvar tm-bbdb/use-mail-extr t)
-
 (defun tm-bbdb/extract-address-components (str)
   (let* ((ret     (std11-extract-address-components str))
          (phrase  (car ret))
@@ -123,8 +150,6 @@
 ;;; @ BBDB functions for mime/viewer-mode
 ;;;
 
-(defvar tm-bbdb/auto-create-p nil)
-
 (defun tm-bbdb/update-record (&optional offer-to-create)
   "Return the record corresponding to the current MIME previewing message.
 Creating or modifying it as necessary. A record will be created if
@@ -153,7 +178,7 @@
         ))))
 
 (defun tm-bbdb/annotate-sender (string)
-  "Add a line to the end of the Notes field of the BBDB record 
+  "Add a line to the end of the Notes field of the BBDB record
 corresponding to the sender of this message."
   (interactive
    (list (if bbdb-readonly-p
@@ -184,24 +209,31 @@
 (defun tm-bbdb/pop-up-bbdb-buffer (&optional offer-to-create)
   "Make the *BBDB* buffer be displayed along with the MIME preview window(s),
 displaying the record corresponding to the sender of the current message."
-  (bbdb-pop-up-bbdb-buffer
-   (function
-    (lambda (w)
-      (let ((b (current-buffer)))
-        (set-buffer (window-buffer w))
-        (prog1 (eq major-mode 'mime/viewer-mode)
-          (set-buffer b))))))
-  (let ((bbdb-gag-messages t)
-        (bbdb-use-pop-up nil)
-        (bbdb-electric-p nil))
-    (let ((record (tm-bbdb/update-record offer-to-create))
-          (bbdb-elided-display (bbdb-pop-up-elided-display))
-          (b (current-buffer)))
-      (bbdb-display-records (if record (list record) nil))
-      (or record
-          (delete-windows-on (get-buffer "*BBDB*")))
-      (set-buffer b)
-      record)))
+  (let ((framepop (eq temp-buffer-show-function 'framepop-display-buffer)))
+    (or framepop
+        (bbdb-pop-up-bbdb-buffer
+         (function
+          (lambda (w)
+            (let ((b (current-buffer)))
+              (set-buffer (window-buffer w))
+              (prog1 (eq major-mode 'mime/viewer-mode)
+                (set-buffer b)))))))
+    (let ((bbdb-gag-messages t)
+          (bbdb-use-pop-up nil)
+          (bbdb-electric-p nil))
+      (let ((record (tm-bbdb/update-record offer-to-create))
+            (bbdb-elided-display (bbdb-pop-up-elided-display))
+            (b (current-buffer)))
+        (if framepop
+            (if record
+                (bbdb-display-records (list record))
+              (framepop-banish))
+          (bbdb-display-records (if record (list record) nil))
+          (if (and (null record)
+                   tm-bbdb/delete-empty-window)
+              (delete-windows-on (get-buffer "*BBDB*"))))
+        (set-buffer b)
+        record))))
 
 (defun tm-bbdb/define-keys ()
   (let ((mime/viewer-mode-map (current-local-map)))
@@ -225,9 +257,9 @@
 (defun signature/set-bbdb-sigtype (sigtype addr)
   "Add sigtype information to BBDB."
   (let* ((bbdb-notice-hook nil)
-         (record (bbdb-annotate-message-sender 
+         (record (bbdb-annotate-message-sender
                   addr t
-                  (bbdb-invoke-hook-for-value 
+                  (bbdb-invoke-hook-for-value
                    bbdb/mail-auto-create-p)
                   t)))
     (if record
@@ -241,7 +273,7 @@
          (addr (and to
                     (car (cdr (mail-extract-address-components to)))))
          (sigtype (signature/get-bbdb-sigtype addr))
-         return  
+         return
          )
     (if addr
         (if verbose
--- a/lisp/tm/tm-def.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-def.el	Mon Aug 13 09:04:33 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: tm-def.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $
+;; Version: $Id: tm-def.el,v 1.1.1.2 1996/12/21 20:50:42 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia, definition
 
 ;; This file is part of tm (Tools for MIME).
@@ -180,14 +180,21 @@
 ;;;
 
 (defconst base64-token-regexp "[A-Za-z0-9+/=]")
+(defconst base64-token-padding-regexp "[A-Za-z0-9+/=]")
 
 (defconst mime/B-encoded-text-regexp
-  (concat "\\("
+  (concat "\\(\\("
 	  base64-token-regexp
 	  base64-token-regexp
 	  base64-token-regexp
 	  base64-token-regexp
-	  "\\)+"))
+	  "\\)*"
+	  base64-token-regexp
+	  base64-token-regexp
+	  base64-token-padding-regexp
+	  base64-token-padding-regexp
+          "\\)"))
+
 (defconst mime/B-encoding-and-encoded-text-regexp
   (concat "\\(B\\)\\?" mime/B-encoded-text-regexp))
 
--- a/lisp/tm/tm-edit.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-edit.el	Mon Aug 13 09:04:33 2007 +0200
@@ -6,7 +6,7 @@
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1994/08/21 renamed from mime.el
-;; Version: $Revision: 1.1.1.1 $
+;; Version: $Revision: 1.1.1.2 $
 ;; Keywords: mail, news, MIME, multimedia, multilingual
 
 ;; This file is part of tm (Tools for MIME).
@@ -29,19 +29,19 @@
 ;;; Commentary:
 
 ;; This is an Emacs minor mode for editing Internet multimedia
-;; messages formatted in MIME (RFC 1521 and RFC 1522). All messages in
-;; this mode are composed in the tagged MIME format, that are
-;; described in the following examples. The messages composed in the
-;; tagged MIME format are automatically translated into a MIME
-;; compliant message when exiting the mode.
+;; messages formatted in MIME (RFC 2045, 2046, 2047, 2048 and 2049).
+;; All messages in this mode are composed in the tagged MIME format,
+;; that are described in the following examples.  The messages
+;; composed in the tagged MIME format are automatically translated
+;; into a MIME compliant message when exiting the mode.
 
 ;; Mule (a multilingual extension to Emacs 18 and 19) has a capability
 ;; of handling multilingual text in limited ISO-2022 manner that is
 ;; based on early experiences in Japanese Internet community and
-;; resulted in RFC 1468 (ISO-2022-JP charset for MIME). In order to
+;; resulted in RFC 1468 (ISO-2022-JP charset for MIME).  In order to
 ;; enable multilingual capability in single text message in MIME,
 ;; charset of multilingual text written in Mule is declared as either
-;; `ISO-2022-JP-2' [RFC 1554] or `ISO-2022-INT-1'. Mule is required
+;; `ISO-2022-JP-2' [RFC 1554] or `ISO-2022-INT-1'.  Mule is required
 ;; for reading the such messages.
 
 ;; This MIME composer can work with Mail mode, mh-e letter Mode, and
@@ -96,7 +96,7 @@
 ;; This is also a plain text.  But, it is explicitly specified as is.
 ;;
 ;;--[[text/plain; charset=ISO-2022-JP]]
-;; $B$3$l$O(B charset $B$r(B ISO-2022-JP $B$K;XDj$7$?F|K\8l$N(B plain $B/home/mrb/e/w/editor/lisp/tm/SCCS/s.tm-edit.el-%9%H$G$9(B.
+;; $B$3$l$O(B charset $B$r(B ISO-2022-JP $B$K;XDj$7$?F|K\8l$N(B plain $B%F%-%9%H$G$9(B.
 ;;
 ;;--[[text/richtext]]
 ;; <center>This is a richtext.</center>
@@ -110,7 +110,6 @@
 (require 'sendmail)
 (require 'mail-utils)
 (require 'mel)
-(require 'tl-822)
 (require 'tl-list)
 (require 'tm-view)
 (require 'tm-ew-e)
@@ -121,7 +120,7 @@
 ;;;
 
 (defconst mime-editor/RCS-ID
-  "$Id: tm-edit.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $")
+  "$Id: tm-edit.el,v 1.1.1.2 1996/12/21 20:50:44 steve Exp $")
 
 (defconst mime-editor/version (get-version-string mime-editor/RCS-ID))
 
@@ -731,7 +730,7 @@
 	This is also a plain text.  But, it is explicitly specified as
 	is.
 	--[[text/plain; charset=ISO-2022-JP]]
-	$B$3$l$O(B charset $B$r(B ISO-2022-JP $B$K;XDj$7$?F|K\8l$N(B plain $B/home/mrb/e/w/editor/lisp/tm/SCCS/s.tm-edit.el-%9(B
+	$B$3$l$O(B charset $B$r(B ISO-2022-JP $B$K;XDj$7$?F|K\8l$N(B plain $B%F%-%9(B
 	$B%H$G$9(B.
 	--[[text/richtext]]
 	<center>This is a richtext.</center>
@@ -2479,18 +2478,27 @@
 	     (t
 	      (let* (charset
 		     (pstr
-		      (mapconcat (function
-				  (lambda (attr)
-				    (if (string-equal (car attr)
-						      "charset")
-					(progn
-					  (setq charset (cdr attr))
-					  "")
-				      (concat ";" (car attr)
-					      "=" (cdr attr))
-				      )
-				    ))
-				 params ""))
+		      (let ((bytes (+ 14 (length ctype))))
+			(mapconcat (function
+				    (lambda (attr)
+				      (if (string-equal (car attr) "charset")
+					  (progn
+					    (setq charset (cdr attr))
+					    "")
+					(let* ((str
+						(concat (car attr)
+							"=" (cdr attr))
+						)
+					       (bs (length str))
+					       )
+					  (setq bytes (+ bytes bs 2))
+					  (if (< bytes 76)
+					      (concat "; " str)
+					    (setq bytes (+ bs 1))
+					    (concat ";\n " str)
+					    )
+					  ))))
+				   params "")))
 		     encoding
 		     encoded)
 		(save-excursion
--- a/lisp/tm/tm-ew-d.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-ew-d.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,4 +1,4 @@
-;;; tm-ew-d.el --- RFC 1522 based MIME encoded-word decoder for GNU Emacs
+;;; tm-ew-d.el --- RFC 2047 based encoded-word decoder for GNU Emacs
 
 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
@@ -9,8 +9,8 @@
 ;; Original: 1992/07/20 ENAMI Tsugutomo's `mime.el'.
 ;;	Renamed: 1993/06/03 to tiny-mime.el.
 ;;	Renamed: 1995/10/03 from tiny-mime.el. (split off encoder)
-;; Version: $Revision: 1.1.1.1 $
-;; Keywords: mail, news, MIME, RFC 1522, multilingual, encoded-word
+;; Version: $Revision: 1.1.1.2 $
+;; Keywords: encoded-word, MIME, multilingual, header, mail, news
 
 ;; This file is part of tm (Tools for MIME).
 
@@ -41,7 +41,7 @@
 ;;;
 
 (defconst tm-ew-d/RCS-ID
-  "$Id: tm-ew-d.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $")
+  "$Id: tm-ew-d.el,v 1.1.1.2 1996/12/21 20:50:42 steve Exp $")
 (defconst mime/eword-decoder-version (get-version-string tm-ew-d/RCS-ID))
 
 
@@ -122,9 +122,7 @@
 	  (mime/unfolding)
 	)
       (goto-char (point-min))
-      (while (re-search-forward
-	      (concat (regexp-quote "?=") "\\s +" (regexp-quote "=?"))
-	      nil t)
+      (while (re-search-forward "\\?=\\(\n*\\s +\\)+=\\?" nil t)
 	(replace-match "?==?")
 	)
       (goto-char (point-min))
@@ -157,14 +155,15 @@
   (let (field beg end)
     (while (re-search-forward std11-field-head-regexp nil t)
       (setq beg (match-beginning 0)
-	    end (std11-field-end))
+            end (std11-field-end))
       (setq field (buffer-substring beg end))
       (if (string-match mime/encoded-word-regexp field)
-	  (save-restriction
-	    (narrow-to-region (goto-char beg) end)
-	    (while (re-search-forward "\n[ \t]+" nil t)
-	      (replace-match " ")
-	      )
+          (save-restriction
+            (narrow-to-region (goto-char beg) end)
+            (while (re-search-forward "\n\\([ \t]\\)" nil t)
+              (replace-match
+               (match-string 1))
+              )
 	    (goto-char (point-max))
 	    ))
       )))
@@ -193,7 +192,9 @@
 		(text
 		 (substring word (match-beginning 3) (match-end 3))
 		 ))
-	    (mime/decode-encoded-text charset encoding text must-unfold)
+            (condition-case err
+                (mime/decode-encoded-text charset encoding text must-unfold)
+              (error nil))
 	    ))
       word))
 
@@ -215,11 +216,13 @@
   (let ((cs (mime-charset-to-coding-system charset)))
     (if cs
 	(let ((dest
-	       (cond ((string-equal "B" encoding)
-		      (base64-decode-string string))
-		     ((string-equal "Q" encoding)
-		      (q-encoding-decode-string string))
-		     (t (message "unknown encoding %s" encoding)
+               (cond ((and (string-equal "B" encoding)
+                           (string-match mime/B-encoded-text-regexp string))
+                      (base64-decode-string string))
+                     ((and (string-equal "Q" encoding)
+                           (string-match mime/Q-encoded-text-regexp string))
+                      (q-encoding-decode-string string))
+		     (t (message "Invalid encoded-word %s" encoding)
 			nil))))
 	  (if dest
 	      (progn
--- a/lisp/tm/tm-ew-e.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-ew-e.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,10 +1,10 @@
-;;; tm-ew-e.el --- RFC 1522 based MIME encoded-word encoder for GNU Emacs
+;;; tm-ew-e.el --- RFC 2047 based encoded-word encoder for GNU Emacs
 
 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Revision: 1.1.1.1 $
-;; Keywords: mail, news, MIME, RFC 1522, multilingual, encoded-word
+;; Version: $Revision: 1.1.1.2 $
+;; Keywords: encoded-word, MIME, multilingual, header, mail, news
 
 ;; This file is part of tm (Tools for MIME).
 
@@ -35,7 +35,7 @@
 ;;;
 
 (defconst tm-ew-e/RCS-ID
-  "$Id: tm-ew-e.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $")
+  "$Id: tm-ew-e.el,v 1.1.1.2 1996/12/21 20:50:44 steve Exp $")
 (defconst mime-eword/encoder-version (get-version-string tm-ew-e/RCS-ID))
 
 
@@ -90,11 +90,15 @@
     (iso-8859-9		. "Q")
     (iso-2022-jp	. "B")
     (iso-2022-kr	. "B")
+    (gb2312		. "B")
+    (cn-gb		. "B")
+    (cn-gb-2312		. "B")
     (euc-kr		. "B")
     (iso-2022-jp-2	. "B")
     (iso-2022-int-1	. "B")
     ))
 
+
 ;;; @ encoded-text encoder
 ;;;
 
--- a/lisp/tm/tm-mh-e.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-mh-e.el	Mon Aug 13 09:04:33 2007 +0200
@@ -6,7 +6,7 @@
 ;;         OKABE Yasuo <okabe@kudpc.kyoto-u.ac.jp>
 ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1993/11/21 (obsolete mh-e-mime.el)
-;; Version: $Revision: 1.1.1.1 $
+;; Version: $Revision: 1.1.1.2 $
 ;; Keywords: mail, MH, MIME, multimedia, encoded-word, multilingual
 
 ;; This file is part of tm (Tools for MIME).
@@ -48,7 +48,7 @@
 ;;;
 
 (defconst tm-mh-e/RCS-ID
-  "$Id: tm-mh-e.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $")
+  "$Id: tm-mh-e.el,v 1.1.1.2 1996/12/21 20:50:46 steve Exp $")
 
 (defconst tm-mh-e/version (get-version-string tm-mh-e/RCS-ID))
 
@@ -214,16 +214,6 @@
     (mh-header-display)
     ))
 
-(defun tm-mh-e/scroll-up-msg (&optional arg)
-  (interactive)
-  (mh-page-msg (or arg 1))
-  )
-
-(defun tm-mh-e/scroll-down-msg (&optional arg)
-  (interactive)
-  (mh-page-msg (- (or arg 1)))
-  )
-
 (defun tm-mh-e/burst-multipart/digest ()
   "Burst apart the current message, which should be a multipart/digest.
 The message is replaced by its table of contents and the letters from the
@@ -291,7 +281,7 @@
     (goto-char (point-max))
     (setq mh-show-buffer buf)
     (apply (function mh-send)
-	   (std11-field-bodies '("To" "cc" "Subject") ""))
+	   (std11-field-bodies '("From" "cc" "Subject") ""))
     (setq mh-sent-from-folder buf)
     (setq mh-sent-from-msg 1)
     (let ((last (point)))
@@ -340,8 +330,6 @@
 (define-key mh-folder-mode-map "." (function tm-mh-e/show))
 (define-key mh-folder-mode-map "," (function tm-mh-e/header-display))
 (define-key mh-folder-mode-map "\e," (function tm-mh-e/raw-display))
-(define-key mh-folder-mode-map "\r" (function tm-mh-e/scroll-up-msg))
-(define-key mh-folder-mode-map "\e\r" (function tm-mh-e/scroll-down-msg))
 (define-key mh-folder-mode-map "\C-c\C-b"
   (function tm-mh-e/burst-multipart/digest))
 
--- a/lisp/tm/tm-parse.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-parse.el	Mon Aug 13 09:04:33 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1994,1995,1996 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: tm-parse.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $
+;; Version: $Id: tm-parse.el,v 1.1.1.2 1996/12/21 20:50:42 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia
 
 ;; This file is part of tm (Tools for MIME).
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'tl-822)
+(require 'std11)
 (require 'tl-misc)
 (require 'tm-def)
 
@@ -33,6 +33,16 @@
 ;;; @ field parser
 ;;;
 
+(defconst rfc822/quoted-pair-regexp "\\\\.")
+(defconst rfc822/qtext-regexp
+  (concat "[^" (char-list-to-string std11-non-qtext-char-list) "]"))
+(defconst rfc822/quoted-string-regexp
+  (concat "\""
+	  (regexp-*
+	   (regexp-or rfc822/qtext-regexp rfc822/quoted-pair-regexp)
+	   )
+	  "\""))
+
 (defconst mime/content-parameter-value-regexp
   (concat "\\("
 	  rfc822/quoted-string-regexp
--- a/lisp/tm/tm-play.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-play.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1995/9/26 (separated from tm-view.el)
-;; Version: $Id: tm-play.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $
+;; Version: $Id: tm-play.el,v 1.1.1.2 1996/12/21 20:50:43 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia
 
 ;; This file is part of tm (Tools for MIME).
@@ -28,19 +28,6 @@
 
 (require 'tm-view)
 
-(defvar mime-viewer/external-progs "/usr/local/share/tm"
-  "*Directory containing tm external methods.")
-
-(add-to-list 'exec-path mime-viewer/external-progs)
-
-(let ((paths (parse-colon-path (getenv "PATH"))))
-  (or (member mime-viewer/external-progs paths)
-      (setenv "PATH"
-	      (mapconcat (function identity)
-			 (append paths (list mime-viewer/external-progs))
-			 path-separator))
-      ))
-
   
 ;;; @ content decoder
 ;;;
--- a/lisp/tm/tm-rmail.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-rmail.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1,30 +1,30 @@
-;;;
-;;; Copyright (C) 1995 Free Software Foundation, Inc.
-;;; Copyright (C) 1994 .. 1996 MORIOKA Tomohiko
-;;;
-;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;;; modified by KOBAYASHI Shuhei <shuhei-k@jaist.ac.jp>
-;;; Created: 1994/8/30
-;;; Version:
-;;;	$Revision: 1.1.1.1 $
-;;; Keywords: mail, MIME, multimedia, multilingual, encoded-word
-;;;
-;;; This file is part of tm (Tools for MIME).
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 2, or
-;;; (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with This program.  If not, write to the Free Software
-;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-;;;
+;;; tm-rmail.el --- MIME extension for RMAIL
+
+;; Copyright (C) 1994,1995,1996 Free Software Foundation, Inc.
+
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; modified by KOBAYASHI Shuhei <shuhei-k@jaist.ac.jp>
+;; Created: 1994/8/30
+;; Version: $Revision: 1.1.1.2 $
+;; Keywords: mail, MIME, multimedia, multilingual, encoded-word
+
+;; This file is not part of tm (Tools for MIME).
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
 ;;; Code:
 
 (require 'tl-list)
@@ -40,7 +40,7 @@
 ;;;
 
 (defconst tm-rmail/RCS-ID
-  "$Id: tm-rmail.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $")
+  "$Id: tm-rmail.el,v 1.1.1.2 1996/12/21 20:50:48 steve Exp $")
 (defconst tm-rmail/version (get-version-string tm-rmail/RCS-ID))
 
 (defvar tm-rmail/decode-all nil)
@@ -120,6 +120,8 @@
 
 (add-hook 'rmail-show-message-hook 'tm-rmail/preview-message-if-you-need)
 
+(load "rmailsum")
+
 (cond ((fboundp 'rmail-summary-rmail-update)
        ;; for Emacs 19 or later
        (or (fboundp 'tm:rmail-summary-rmail-update)
@@ -361,7 +363,7 @@
 		   'mail-mode (function
 			       (lambda ()
 				 (interactive)
-				 (sendmail-send-it)
+				 (funcall send-mail-function)
 				 )))
 	)))
     )))
--- a/lisp/tm/tm-setup.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-setup.el	Mon Aug 13 09:04:33 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1994,1995,1996 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: tm-setup.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $
+;; Version: $Id: tm-setup.el,v 1.1.1.2 1996/12/21 20:50:45 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is part of tm (Tools for MIME).
@@ -85,12 +85,14 @@
 ;;; @ for RMAIL
 ;;;
 
-(call-after-loaded 'rmail
-		   (function
-		    (lambda ()
-		      (require 'tm-rmail)
-		      ))
-		   'rmail-mode-hook)
+(or running-xemacs-with-mule
+    (call-after-loaded 'rmail
+		       (function
+			(lambda ()
+			  (require 'tm-rmail)
+			  ))
+		       'rmail-mode-hook)
+    )
 
 
 ;;; @ for mh-e
--- a/lisp/tm/tm-view.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-view.el	Mon Aug 13 09:04:33 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1994/7/13 (1994/8/31 obsolete tm-body.el)
-;; Version: $Revision: 1.1.1.1 $
+;; Version: $Revision: 1.1.1.2 $
 ;; Keywords: mail, news, MIME, multimedia
 
 ;; This file is part of tm (Tools for MIME).
@@ -42,7 +42,7 @@
 ;;;
 
 (defconst mime-viewer/RCS-ID
-  "$Id: tm-view.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $")
+  "$Id: tm-view.el,v 1.1.1.2 1996/12/21 20:50:43 steve Exp $")
 
 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
 (defconst mime/viewer-version mime-viewer/version)
@@ -380,6 +380,9 @@
 
 (defvar mime-viewer/following-method-alist nil)
 
+(defvar mime-viewer/following-required-fields-list
+  '("From"))
+
 
 ;;; @@ X-Face
 ;;;
@@ -981,6 +984,24 @@
 		      rcnum (cdr rcnum))
 		)
 	      )
+	    (let ((rest mime-viewer/following-required-fields-list))
+	      (while rest
+		(let ((field-name (car rest)))
+		  (or (std11-field-body field-name)
+		      (insert
+		       (format
+			(concat field-name
+				": "
+				(save-excursion
+				  (set-buffer the-buf)
+				  (set-buffer mime::preview/mother-buffer)
+				  (set-buffer mime::preview/article-buffer)
+				  (std11-field-body field-name)
+				  )
+				"\n")))
+		      ))
+		(setq rest (cdr rest))
+		))
 	    (mime/decode-message-header)
 	    )
 	  (funcall (cdr (assq mode mime-viewer/following-method-alist))
@@ -1025,7 +1046,7 @@
 	 (i (- (length pcl) 1))
 	 beg)
     (catch 'tag
-      (while (>= i 0)
+      (while (> i 0)
 	(setq beg (mime::preview-content-info/point-min (nth i pcl)))
 	(if (> p beg)
 	    (throw 'tag (goto-char beg))
--- a/lisp/tm/tm-vm.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/tm/tm-vm.el	Mon Aug 13 09:04:33 2007 +0200
@@ -9,7 +9,7 @@
 ;;         Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: 1994/10/29
-;; Version: $Revision: 1.1.1.1 $
+;; Version: $Revision: 1.1.1.2 $
 ;; Keywords: mail, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is part of tm (Tools for MIME).
@@ -35,11 +35,16 @@
 
 ;;; Code:
 
+(eval-when-compile
+  (require 'tm-edit)
+  (require 'tm-mail)
+  (require 'vm)
+  (require 'vm-window))
+
 (require 'tm-view)
-(require 'vm)
 
 (defconst tm-vm/RCS-ID
-  "$Id: tm-vm.el,v 1.1.1.1 1996/12/18 22:43:38 steve Exp $")
+  "$Id: tm-vm.el,v 1.1.1.2 1996/12/21 20:50:47 steve Exp $")
 (defconst tm-vm/version (get-version-string tm-vm/RCS-ID))
 
 (define-key vm-mode-map "Z" 'tm-vm/view-message)
@@ -175,7 +180,7 @@
 (defun tm-vm/header-filter ()
   "Filter headers in current buffer (assumed to be a message-like buffer)
 according to vm-visible-headers and vm-invisible-header-regexp"
-  (beginning-of-buffer)
+  (goto-char (point-min))
   (let ((visible-headers vm-visible-headers))
     (if (or vm-use-lucid-highlighting
 	    vm-display-xfaces)
@@ -255,7 +260,7 @@
     (set-buffer mbuf)))
 
 (defun tm-vm/preview-current-message ()
-  "Preview current message if it has a MIME contents and 
+  "Preview current message if it has MIME contents and 
 tm-vm/automatic-mime-preview is non nil. Installed on 
 vm-visit-folder-hook and vm-select-message-hook."
   ;; assumed current buffer is folder buffer.
@@ -313,12 +318,14 @@
   (if mime::preview/article-buffer
       (set-buffer mime::preview/article-buffer)
     (vm-select-folder-buffer))
-  (if mime::article/preview-buffer
+  (if (and mime::article/preview-buffer
+	   (get-buffer mime::article/preview-buffer))
       (save-excursion
 	(set-buffer mime::article/preview-buffer)
 	(goto-char (point-min))
 	(widen)))
   (if (or (and mime::article/preview-buffer
+	       (get-buffer mime::article/preview-buffer)
 	       (vm-get-visible-buffer-window mime::article/preview-buffer))
 	  (vm-get-visible-buffer-window (current-buffer)))
       (progn
@@ -378,33 +385,32 @@
              (was-invisible (and (null mwin) (null pwin)))
              )
         ;; now current buffer is folder buffer.
-        (tm-vm/save-window-excursion
-         (if (or mp-changed was-invisible)
-             (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward)
-                         (list this-command 'reading-message)))
-         (tm-vm/display-preview-buffer)
-         (setq mwin (vm-get-buffer-window mbuf)
-               pwin (and pbuf (vm-get-buffer-window pbuf)))
-         (cond
-          ((or mp-changed was-invisible)
-           nil
-           )
-          ((null pbuf)
-           ;; preview buffer is killed.
-           (tm-vm/preview-current-message)
-           (vm-update-summary-and-mode-line))
-          ((eq (tm-vm/system-state) 'previewing)
-           (tm-vm/show-current-message))
-          (t
-           (select-window pwin)
-           (set-buffer pbuf)
-           (if (pos-visible-in-window-p (point-max) pwin)
-               (tm-vm/next-message)
-             ;; not end of message. scroll preview buffer only.
-             (scroll-up)
-             (tm-vm/howl-if-eom)
-             (set-buffer mbuf))
-           ))))
+	(if (or mp-changed was-invisible)
+	    (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward)
+			(list this-command 'reading-message)))
+	(tm-vm/display-preview-buffer)
+	(setq mwin (vm-get-buffer-window mbuf)
+	      pwin (and pbuf (vm-get-buffer-window pbuf)))
+	(cond
+	 ((or mp-changed was-invisible)
+	  nil)
+	 ((null pbuf)
+	  ;; preview buffer is killed.
+	  (tm-vm/preview-current-message)
+	  (vm-update-summary-and-mode-line))
+	 ((eq (tm-vm/system-state) 'previewing)
+	  (tm-vm/show-current-message))
+	 (t
+	  (tm-vm/save-window-excursion
+	   (select-window pwin)
+	   (set-buffer pbuf)
+	   (if (pos-visible-in-window-p (point-max) pwin)
+	       (tm-vm/next-message)
+	     ;; not end of message. scroll preview buffer only.
+	     (scroll-up)
+	     (tm-vm/howl-if-eom)
+	     (set-buffer mbuf))
+	   ))))
       )))
 
 ;;; based on vm-scroll-backward [vm-page.el]
@@ -425,29 +431,29 @@
         (if (or mp-changed was-invisible)
             (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward)
                         (list this-command 'reading-message)))
-        (tm-vm/save-window-excursion
-         (tm-vm/display-preview-buffer)
-         (setq mwin (vm-get-buffer-window mbuf)
-               pwin (and pbuf (vm-get-buffer-window pbuf)))
-         (cond
-          (was-invisible
-           nil
-           )
-          ((null pbuf)
-           ;; preview buffer is killed.
-           (tm-vm/preview-current-message)
-           (vm-update-summary-and-mode-line))
-          ((eq (tm-vm/system-state) 'previewing)
-           (tm-vm/show-current-message))
-          (t
-           (select-window pwin)
-           (set-buffer pbuf)
-           (if (pos-visible-in-window-p (point-min) pwin)
-               nil
-             ;; scroll preview buffer only.
-             (scroll-down)
-             (set-buffer mbuf))
-           ))))
+	(tm-vm/display-preview-buffer)
+	(setq mwin (vm-get-buffer-window mbuf)
+	      pwin (and pbuf (vm-get-buffer-window pbuf)))
+	(cond
+	 (was-invisible
+	  nil
+	  )
+	 ((null pbuf)
+	  ;; preview buffer is killed.
+	  (tm-vm/preview-current-message)
+	  (vm-update-summary-and-mode-line))
+	 ((eq (tm-vm/system-state) 'previewing)
+	  (tm-vm/show-current-message))
+	 (t
+	  (tm-vm/save-window-excursion
+	   (select-window pwin)
+	   (set-buffer pbuf)
+	   (if (pos-visible-in-window-p (point-min) pwin)
+	       nil
+	     ;; scroll preview buffer only.
+	     (scroll-down)
+	     (set-buffer mbuf))
+	   ))))
       )))
 
 ;;; based on vm-beginning-of-message [vm-page.el]
@@ -558,19 +564,6 @@
         (kill-buffer mime::article/preview-buffer)))
   (vm-quit-no-change))
 
-(substitute-key-definition 'vm-scroll-forward
-                           'tm-vm/scroll-forward vm-mode-map)
-(substitute-key-definition 'vm-scroll-backward
-                           'tm-vm/scroll-backward vm-mode-map)
-(substitute-key-definition 'vm-beginning-of-message
-                           'tm-vm/beginning-of-message vm-mode-map)
-(substitute-key-definition 'vm-end-of-message
-                           'tm-vm/end-of-message vm-mode-map)
-(substitute-key-definition 'vm-quit
-                           'tm-vm/quit vm-mode-map)
-(substitute-key-definition 'vm-quit-no-change
-                           'tm-vm/quit-no-change vm-mode-map)
-
 ;;; based on vm-next-message [vm-motion.el]                        
 (defun tm-vm/next-message ()
   (set-buffer mime::preview/article-buffer)
@@ -687,7 +680,8 @@
             (tm-vm/sync-preview-buffer)
             (setq pbuf (and mime::article/preview-buffer
                             (get-buffer mime::article/preview-buffer)))
-            (if pbuf
+            (if (and pbuf
+		     (not (eq this-command 'tm-vm/forward-message)))
                 (if running-xemacs
                     (let ((tmp (generate-new-buffer "tm-vm/tmp")))
                       (set-buffer pbuf)
@@ -965,6 +959,8 @@
   (interactive)
   (if (not (equal vm-forwarding-digest-type "rfc1521"))
       (vm-forward-message)
+    (if mime::preview/article-buffer
+	(set-buffer mime::preview/article-buffer))
     (vm-follow-summary-cursor)
     (vm-select-folder-buffer)
     (vm-check-for-killed-summary)
@@ -1067,7 +1063,7 @@
                'mail-mode (function
                            (lambda ()
                              (interactive)
-                             (sendmail-send-it)
+                             (funcall send-mail-function)
                              )))
     (if (and (string-match "XEmacs\\|Lucid" emacs-version)
              tm-vm/use-xemacs-popup-menu)
@@ -1111,16 +1107,23 @@
 ;;; @ for ps-print (Suggestted by Anders Stenman <stenman@isy.liu.se>)
 ;;;
 
-(require 'ps-print)
+(defvar tm-vm/use-ps-print (not (featurep 'mule))
+  "*Use Postscript printing (ps-print) to print MIME messages.")
 
-(add-hook 'vm-mode-hook 'tm-vm/ps-print-setup)
-(add-hook 'mime-viewer/define-keymap-hook 'tm-vm/ps-print-setup)
-(fset 'vm-toolbar-print-command 'tm-vm/print-message)
+(if tm-vm/use-ps-print
+    (progn
+      (autoload 'ps-print-buffer-with-faces "ps-print" "Postscript Print" t)
+      (add-hook 'vm-mode-hook 'tm-vm/ps-print-setup)
+      (add-hook 'mime-viewer/define-keymap-hook 'tm-vm/ps-print-setup)
+      (fset 'vm-toolbar-print-command 'tm-vm/print-message)))
 
 (defun tm-vm/ps-print-setup ()
   "Set things up for printing MIME messages with ps-print. Set binding to 
 the [Print Screen] key."
-  (local-set-key (ps-prsc) 'tm-vm/print-message)
+  (local-set-key (if running-xemacs
+		     'f22
+		   [f22]) 
+		 'tm-vm/print-message)
   (setq ps-header-lines 3)
   (setq ps-left-header
         (list 'ps-article-subject 'ps-article-author 'buffer-name)))
@@ -1142,6 +1145,35 @@
           (ps-print-buffer-with-faces))
       (vm-print-message))))
 
+
+;;; @ Substitute VM bindings and menus
+;;;
+
+(substitute-key-definition 'vm-scroll-forward
+                           'tm-vm/scroll-forward vm-mode-map)
+(substitute-key-definition 'vm-scroll-backward
+                           'tm-vm/scroll-backward vm-mode-map)
+(substitute-key-definition 'vm-beginning-of-message
+                           'tm-vm/beginning-of-message vm-mode-map)
+(substitute-key-definition 'vm-end-of-message
+                           'tm-vm/end-of-message vm-mode-map)
+(substitute-key-definition 'vm-forward-message
+			   'tm-vm/forward-message vm-mode-map)
+(substitute-key-definition 'vm-quit
+                           'tm-vm/quit vm-mode-map)
+(substitute-key-definition 'vm-quit-no-change
+                           'tm-vm/quit-no-change vm-mode-map)
+
+;; The following function should be modified and called on vm-menu-setup-hook
+;; but VM 5.96 does not run that hook on XEmacs
+(require 'vm-menu)
+(if running-xemacs
+    (condition-case nil
+	(aset (car (find-menu-item vm-menu-dispose-menu '("Forward")))
+	      1
+	      'tm-vm/forward-message)
+      (t nil)))
+
 ;;; @ end
 ;;;
 
--- a/lisp/utils/bench.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/utils/bench.el	Mon Aug 13 09:04:33 2007 +0200
@@ -71,6 +71,7 @@
     (bench-mark-10 . "Garbage Collection Large Size List")
     (bench-mark-11 . "Make Several Small Size List")
     (bench-mark-12 . "Garbage Collection Small Size List")
+    (bench-mark-13 . "Append to buffer")
 ))
 
 (defconst bench-enabled-profiling nil
@@ -188,6 +189,18 @@
   (garbage-collect)
 )
 
+;-----------------------------------------------------------------------------
+(defun bench-mark-13 ()
+  (unwind-protect
+      (let ((a 100000))
+        (set-buffer (get-buffer-create "*tmp*"))
+        (erase-buffer)
+        (while (> a 0)
+          (insert "0123456789\n")
+          (setq a (1- a))))
+    (kill-buffer "*tmp*")))
+
+
 ;=============================================================================
 (defun bench-init ()
   "Initialize profiling for bench marking package."
--- a/lisp/utils/mail-extr.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/utils/mail-extr.el	Mon Aug 13 09:04:33 2007 +0200
@@ -1172,7 +1172,8 @@
 
       (setq %-pos (nreverse %-pos))
       ;; RFC 1034 doesn't approve of this, oh well:
-      (downcase-region (or (car %-pos) @-pos (point-max)) (point-max))
+      ;; Neither do we, sb/lmi
+      ;; (downcase-region (or (car %-pos) @-pos (point-max)) (point-max))
       (cond (%-pos			; implies @-pos valid
 	     (setq temp %-pos)
 	     (catch 'truncated
--- a/lisp/version.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/version.el	Mon Aug 13 09:04:33 2007 +0200
@@ -25,7 +25,7 @@
 (defconst emacs-version "20.0"
   "Version numbers of this version of Emacs.")
 
-(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta31)")))
+(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta32)")))
 
 (defconst emacs-major-version
   (progn (or (string-match "^[0-9]+" emacs-version)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/vm/vm.el	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,4 @@
+(require 'vm-startup)
+(require 'vm-vars)
+(require 'vm-version)
+(require 'vm-autoload)
--- a/lisp/x11/x-init.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/x11/x-init.el	Mon Aug 13 09:04:33 2007 +0200
@@ -153,10 +153,18 @@
     (if (featurep 'mule)
         (init-mule-x-win))
     ;; these are only ever called if zmacs-regions is true.
-    (add-hook 'zmacs-deactivate-region-hook 'x-disown-selection)
-    (add-hook 'zmacs-activate-region-hook   'x-activate-region-as-selection)
-    (add-hook 'zmacs-update-region-hook     'x-activate-region-as-selection)
-
+    (add-hook 'zmacs-deactivate-region-hook 
+	      (lambda () 
+		(if (console-on-window-system-p) 
+		    (x-disown-selection))))
+    (add-hook 'zmacs-activate-region-hook
+	      (lambda () 
+		(if (console-on-window-system-p) 
+		    (x-activate-region-as-selection))))
+    (add-hook 'zmacs-update-region-hook
+	      (lambda ()
+		(if (console-on-window-system-p)
+		    (x-activate-region-as-selection))))
     ;; Motif-ish bindings
     ;; The following two were generally unliked.
     ;;(define-key global-map '(shift delete)   'x-kill-primary-selection)
--- a/lisp/x11/x-iso8859-1.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/x11/x-iso8859-1.el	Mon Aug 13 09:04:33 2007 +0200
@@ -30,7 +30,7 @@
 
 ;; It puts the same property on the keypad keys, so that (read-char) will
 ;; think that they are the same as the digit characters.  However, those
-;; keys are bound to one-character keyboard macros, so that `kp_9' will, by
+;; keys are bound to one-character keyboard macros, so that `kp-9' will, by
 ;; default, do the same thing that `9' does, in whatever the current mode is.
 
 ;; The standard case and syntax tables are set in prim/iso8859-1.el, since
@@ -255,3 +255,5 @@
  )
 
 (provide 'x-iso8859-1)
+
+;;; x-iso8859-1.el ends here
--- a/lisp/x11/x-menubar.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/x11/x-menubar.el	Mon Aug 13 09:04:33 2007 +0200
@@ -544,11 +544,13 @@
       ["XEmacs FAQ (local)"	xemacs-local-faq	t]
       ["XEmacs Tutorial"	help-with-tutorial	t]
       ["XEmacs News"		view-emacs-news		t]
-      ["Sample"
-       (find-file (expand-file-name "sample.emacs" data-directory))
+      ["Sample"			(find-file
+				 (expand-file-name "sample.emacs"
+						   data-directory))
        t ".emacs"]
-      ["Sample"
-       (find-file (expand-file-name "sample.Xdefaults" data-directory))
+      ["Sample"			(find-file
+				 (expand-file-name "sample.Xdefaults"
+						   data-directory))
        t ".Xdefaults"]
       "-----"
       ["Info (Detailed Docs)"	info			t]
@@ -728,7 +730,9 @@
 
 (defvar buffers-menu-submenus-for-groups-p nil
   "*If true, the buffers menu will contain one submenu per group of buffers,
-if a grouping function is specified in `buffers-menu-grouping-function'.")
+if a grouping function is specified in `buffers-menu-grouping-function'.
+If this is an integer, do not build submenus if the number of buffers
+is not larger than this value.")
 
 (defvar buffers-menu-switch-to-buffer-function 'switch-to-buffer
   "*The function to call to select a buffer from the buffers menu.
@@ -848,43 +852,43 @@
 (defsubst build-buffers-menu-internal (buffers)
   (let (name line)
     (mapcar
-     (lambda (buffer)
-       (if (eq buffer t)
-	   "---"
-	 (setq line (funcall buffers-menu-format-buffer-line-function
-			     buffer))
-	 (if complex-buffers-menu-p
-	     (delq nil
-		   (list line
-			 (vector "Switch to Buffer"
-				 (list buffers-menu-switch-to-buffer-function
-				       (setq name (buffer-name buffer)))
-				 t)
-			 (if (eq buffers-menu-switch-to-buffer-function
-				 'switch-to-buffer)
-			     (vector "Switch to Buffer, Other Frame"
-				     (list 'switch-to-buffer-other-frame
-					   (setq name (buffer-name buffer)))
-				     t)
-			   nil)
-			 (if (and (buffer-modified-p buffer)
-				  (buffer-file-name buffer))
-			     (vector "Save Buffer"
-				     (list 'buffer-menu-save-buffer name) t)
-			   ["Save Buffer" nil nil]
-			   )
-			 (vector "Save As..."
-				 (list 'buffer-menu-write-file name) t)
-			 (vector "Delete Buffer" (list 'kill-buffer name)
-				 t)))
-	   ;; ### We don't want buffer names to be translated,
-	   ;; ### so we put the buffer name in the suffix.
-	   ;; ### Also, avoid losing with non-ASCII buffer names.
-	   ;; ### We still lose, however, if complex-buffers-menu-p. --mrb
-	   (vector ""
-		   (list buffers-menu-switch-to-buffer-function
-			 (buffer-name buffer))
-		   t line))))
+     #'(lambda (buffer)
+	 (if (eq buffer t)
+	     "---"
+	   (setq line (funcall buffers-menu-format-buffer-line-function
+			       buffer))
+	   (if complex-buffers-menu-p
+	       (delq nil
+		     (list line
+			   (vector "Switch to Buffer"
+				   (list buffers-menu-switch-to-buffer-function
+					 (setq name (buffer-name buffer)))
+				   t)
+			   (if (eq buffers-menu-switch-to-buffer-function
+				   'switch-to-buffer)
+			       (vector "Switch to Buffer, Other Frame"
+				       (list 'switch-to-buffer-other-frame
+					     (setq name (buffer-name buffer)))
+				       t)
+			     nil)
+			   (if (and (buffer-modified-p buffer)
+				    (buffer-file-name buffer))
+			       (vector "Save Buffer"
+				       (list 'buffer-menu-save-buffer name) t)
+			     ["Save Buffer" nil nil]
+			     )
+			   (vector "Save As..."
+				   (list 'buffer-menu-write-file name) t)
+			   (vector "Delete Buffer" (list 'kill-buffer name)
+				   t)))
+	     ;; ### We don't want buffer names to be translated,
+	     ;; ### so we put the buffer name in the suffix.
+	     ;; ### Also, avoid losing with non-ASCII buffer names.
+	     ;; ### We still lose, however, if complex-buffers-menu-p. --mrb
+	     (vector ""
+		     (list buffers-menu-switch-to-buffer-function
+			   (buffer-name buffer))
+		     t line))))
      buffers)))
 
 (defun buffers-menu-filter (menu)
@@ -898,12 +902,16 @@
     (and (integerp buffers-menu-max-size)
 	 (> buffers-menu-max-size 1)
 	 (> (length buffers) buffers-menu-max-size)
-	 ;; shorten list of buffers
+	 ;; shorten list of buffers (not with submenus!)
+	 (not (and buffers-menu-grouping-function
+		   buffers-menu-submenus-for-groups-p))
 	 (setcdr (nthcdr buffers-menu-max-size buffers) nil))
     (if buffers-menu-sort-function
 	(setq buffers (sort buffers buffers-menu-sort-function)))
     (if (and buffers-menu-grouping-function
-	     buffers-menu-submenus-for-groups-p)
+	     buffers-menu-submenus-for-groups-p
+	     (or (not (integerp buffers-menu-submenus-for-groups-p))
+		 (> (length buffers) buffers-menu-submenus-for-groups-p)))
 	(let (groups groupnames current-group)
 	  (mapl
 	   #'(lambda (sublist)
@@ -1090,7 +1098,9 @@
 					(face-property ',face ',property)
 					',(save-options-specifier-spec-list
 					   face property))))
-			      built-in-face-specifiers)))
+			      (delq 'display-table
+				    (copy-sequence
+				     built-in-face-specifiers)))))
 		   (face-list))))
 
      ;; Mule-specific:
--- a/lisp/x11/x-win-sun.el	Mon Aug 13 09:03:47 2007 +0200
+++ b/lisp/x11/x-win-sun.el	Mon Aug 13 09:04:33 2007 +0200
@@ -36,7 +36,7 @@
 ;;   I use this shell script:
 ;;
 ;;   for i in 0 1 2 3 4 5 6 7 8 9 Add Subtract Multiply Divide Decimal ; do
-;;     echo "keysym KP_$i = KP_$i"
+;;     echo "keysym KP-$i = KP-$i"
 ;;   done
 ;;
 ;;   Clearly, as a good X11 citizen, we can't do this.
@@ -48,8 +48,8 @@
 ;;   .emacs files like (global-set-key [(f35)] 'foo) continue to work
 ;;
 ;; - Use keyboard macros to provide indirection for keybindings.
-;;   If we do (global-set-key [(f35)] [(kp_3)]), then the user's keybindings
-;;   work whether he uses `f35' or `kp_3'.
+;;   If we do (global-set-key [(f35)] [(kp-3)]), then the user's keybindings
+;;   work whether he uses `f35' or `kp-3'.
 ;;   This is also compatible with FSF Emacs and other X11 apps.
 ;;   Although this has the disadvantage that these remappings
 ;;   only work with the global key map, we use this as the default.
@@ -87,11 +87,11 @@
  ;; up is ok
  ;; left is ok
  ;; right is ok
- ;; kp_add is ok
+ ;; kp-add is ok
  ;; down is ok
  ;; insert is ok
  ;; delete is ok
- ;; kp_enter is ok
+ ;; kp-enter is ok
  (append
   ;; Sun Function keys
   (cond ((x-keysym-on-keyboard-p "F21")
@@ -117,39 +117,39 @@
        '((f21 . pause)
          (f22 . prsc)
          (f23 . scroll)
-         (f25 . kp_divide)
-         (f26 . kp_multiply)
-         (f31 . kp_5))
+         (f25 . kp-divide)
+         (f26 . kp-multiply)
+         (f31 . kp-5))
        
-       ;; Map f33 and r13 to end or kp_end
+       ;; Map f33 and r13 to end or kp-end
        (cond
         ((not (x-keysym-on-keyboard-p "End"))
          '((f33 . end)    (r13 . end)))
         ((not (x-keysym-on-keyboard-p "KP_End"))
-         '((f33 . kp_end) (r13 . kp_end))))
+         '((f33 . kp-end) (r13 . kp-end))))
   
        (if (x-keysym-on-keyboard-p "F36")
            '((f36 . stop) (f37 . again)) ; MIT Type 5 name
          '((f11 . stop) (f12 . again)))  ; Sun name or MIT Type 4 name
     
-       ;; Type 4 keyboards have a real kp_subtract  and a f24 labelled `='
+       ;; Type 4 keyboards have a real kp-subtract  and a f24 labelled `='
        ;; Type 5 keyboards have no key labelled `=' and a f24 labelled `-'
        (if (x-keysym-on-keyboard-p "F24")
            (if (x-keysym-on-keyboard-p "KP_Subtract")
-               '((f24 . kp_equal))
-             '((f24 . kp_subtract))))
+               '((f24 . kp-equal))
+             '((f24 . kp-subtract))))
   
-       ;; Map f27 to home or kp_home, as appropriate
+       ;; Map f27 to home or kp-home, as appropriate
        (cond ((not (x-keysym-on-keyboard-p "Home"))    '((f27 . home)))
-             ((not (x-keysym-on-keyboard-p "KP_Home")) '((f27 . kp_home))))
+             ((not (x-keysym-on-keyboard-p "KP_Home")) '((f27 . kp-home))))
 
-       ;; Map f29 to prior or kp_prior, as appropriate
+       ;; Map f29 to prior or kp-prior, as appropriate
        (cond ((not (x-keysym-on-keyboard-p "Prior"))     '((f29 . prior)))
-             ((not (x-keysym-on-keyboard-p "KP_Prior"))  '((f29 . kp_prior))))
+             ((not (x-keysym-on-keyboard-p "KP_Prior"))  '((f29 . kp-prior))))
 
-       ;; Map f35 to next or kp_next, as appropriate
+       ;; Map f35 to next or kp-next, as appropriate
        (cond ((not (x-keysym-on-keyboard-p "Next"))    '((f35 . next)))
-             ((not (x-keysym-on-keyboard-p "KP_Next")) '((f35 . kp_next))))
+             ((not (x-keysym-on-keyboard-p "KP_Next")) '((f35 . kp-next))))
        ))
 
   (cond ((x-keysym-on-keyboard-p "apRead") ; SunOS 4.1.1
@@ -159,15 +159,15 @@
 
   ;; !@#$ SunOS 4 with SunOS5 X server
   (if (string-match "sunos4.1" system-configuration)
-      '((unknown_keysym_0xFF9A . kp_prior)
-        (unknown_keysym_0xFF9B . kp_next)
-        (unknown_keysym_0xFF95 . kp_home)
-        (unknown_keysym_0xFF9C . kp_end)
-        (unknown_keysym_0xFF96 . kp_left)
-        (unknown_keysym_0xFF97 . kp_up)
-        (unknown_keysym_0xFF98 . kp_right)
-        (unknown_keysym_0xFF99 . kp_down)
-        (unknown_keysym_0xFF9E . kp_insert)))
+      '((unknown_keysym_0xFF9A . kp-prior)
+        (unknown_keysym_0xFF9B . kp-next)
+        (unknown_keysym_0xFF95 . kp-home)
+        (unknown_keysym_0xFF9C . kp-end)
+        (unknown_keysym_0xFF96 . kp-left)
+        (unknown_keysym_0xFF97 . kp-up)
+        (unknown_keysym_0xFF98 . kp-right)
+        (unknown_keysym_0xFF99 . kp-down)
+        (unknown_keysym_0xFF9E . kp-insert)))
   ))
 
 (fmakunbound 'x11-remap-keysyms-using-function-key-map)
@@ -198,7 +198,7 @@
 (defun sun-x11-keyboard-translate ()
   "Remap Sun's X11 keyboard.
 Keys with names like `f35' are remapped, at a low level,
-to more mnemonic ones,like `kp_3'."
+to more mnemonic ones,like `kp-3'."
   (interactive)
   
   (keyboard-translate
@@ -226,24 +226,24 @@
    'f22 'prsc
    'f23 'scroll
    ;; num_lock is ok
-   ;;'f24 'kp_equal)			; type4 only!
-   'f25 'kp_divide			;
-   'f26 'kp_multiply			;
-   'f24 'kp_subtract			; type5 only!
-   'f27 'kp_7				;
+   ;;'f24 'kp-equal)			; type4 only!
+   'f25 'kp-divide			;
+   'f26 'kp-multiply			;
+   'f24 'kp-subtract			; type5 only!
+   'f27 'kp-7				;
    ;; up is ok
-   'f29 'kp_9
+   'f29 'kp-9
    ;; left is ok
-   'f31 'kp_5
+   'f31 'kp-5
    ;; right is ok
-   ;; kp_add is ok
-   'f33 'kp_1				; the Sun name
+   ;; kp-add is ok
+   'f33 'kp-1				; the Sun name
    'r13 'end				; the MIT name
    ;; down is ok
-   'f35 'kp_3
+   'f35 'kp-3
    ;; insert is ok
    ;; delete is ok
-   ;; kp_enter is ok
+   ;; kp-enter is ok
    'SunF36 'f11				; Type 5 keyboards
    'SunF37 'f12				; Used to be Stop & Again
    ))
--- a/man/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/man/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,11 @@
+Wed Dec 18 20:21:06 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* Makefile (realclean): Don't delete itself `make distclean'
+
+	* lispref/numbers.texi (Predicates on Numbers): wholenump->natnump.
+
+	* Makefile: New File.
+
 Tue Dec 10 18:35:21 1996  Rod Whitby  <rwhitby@asc.sps.mot.com>
 
 	* vhdl-mode.texi: New file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/Makefile	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,88 @@
+#  Makefile for man subdirectory in XEmacs
+#   Copyright (C) 1995 Board of Trustees, University of Illinois
+#   Copyright (C) 1994, 1995 Sun Microsystems.
+
+# This file is part of XEmacs.
+
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Avoid trouble on systems where the "SHELL" variable might be
+# inherited from the environment.
+SHELL = /bin/sh
+
+.SUFFIXES: .info .texi .dvi
+
+# Subdirectories to make recursively.
+SUBDIR = xemacs lispref new-users-guide internals
+
+../info/%.info : %.texi
+	makeinfo -o $@ $<
+
+# hyperbole and oo-browser manuals broken - do not TeX properly
+srcs = ange-ftp cc-mode cl dired ediff external-widget forms gnus \
+       ilisp info ispell mailcrypt message mh-e \
+       pcl-cvs psgml psgml-api rmail standards supercite term \
+       termcap texinfo viper vm w3 xemacs-faq
+
+info = $(srcs:%=../info/%.info)
+dvi  = $(srcs:%=%.dvi)
+
+all  : info
+info : $(info)
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+
+xemacs: FORCE
+	cd $@ && $(MAKE) $(MFLAGS)
+lispref: FORCE
+	cd $@ && $(MAKE) $(MFLAGS)
+new-users-guide: FORCE
+	cd $@ && $(MAKE) $(MFLAGS)
+internals: FORCE
+	cd $@ && $(MAKE) $(MFLAGS)
+tm: FORCE
+	cd $@ && $(MAKE) $(MFLAGS)
+FORCE :
+
+PERL = perl
+TEXI2DVI = texi2dvi
+
+gnus.dvi : gnus.texi
+	$(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' gnus.texi > gnus.tmptexi
+	$(TEXI2DVI) gnus.tmptexi
+	rm -f gnus.tmptexi
+
+texinfo.dvi: texinfo.texi
+	$(TEXI2DVI) $<
+.texi.dvi:
+	$(TEXI2DVI) $<
+
+dvi : $(dvi) FORCE
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+
+mostlyclean:
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+	rm -f *.toc *.aux *.log \
+	      *.cp *.cps *.fn *.fns *.ky *.kys *.pg *.pgs *.vr *.vrs *.tp *.tps
+clean: mostlyclean
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+	rm -f *.o core *.dvi
+distclean: clean
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+realclean: distclean
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+extraclean: distclean
+	for d in $(SUBDIR) ; do (cd $${d} && $(MAKE) $(MFLAGS) $@) ; done
+	-rm -f *~ \#*
--- a/man/lispref/numbers.texi	Mon Aug 13 09:03:47 2007 +0200
+++ b/man/lispref/numbers.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -198,7 +198,7 @@
 
 @defun natnump object
 @cindex natural numbers
-The @code{wholenump} predicate (whose name comes from the phrase
+The @code{natnump} predicate (whose name comes from the phrase
 ``natural-number-p'') tests to see whether its argument is a nonnegative
 integer, and returns @code{t} if so, @code{nil} otherwise.  0 is
 considered non-negative.
@@ -223,7 +223,7 @@
 of the objects.
 
   At present, each integer value has a unique Lisp object in XEmacs Lisp.
-Therefore, @code{eq} is equivalent @code{=} where integers are
+Therefore, @code{eq} is equivalent to @code{=} where integers are
 concerned.  It is sometimes convenient to use @code{eq} for comparing an
 unknown value with an integer, because @code{eq} does not report an
 error if the unknown value is not a number---it accepts arguments of any
@@ -395,6 +395,10 @@
 (setq foo (1+ foo))
      @result{} 5
 @end example
+
+Now that the @code{cl} package is always available from lisp code, a
+more convenient and natural way to increment a variable is
+@w{@code{(incf foo)}}.
 @end defun
 
 @defun 1- number-or-marker
--- a/man/tm/Makefile	Mon Aug 13 09:03:47 2007 +0200
+++ b/man/tm/Makefile	Mon Aug 13 09:04:33 2007 +0200
@@ -17,23 +17,22 @@
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-NAMES = tm_en gnus-mime_en tm-mh-e_en
-INFOS = $(NAMES:%=../../info/%.info)
-DVIS  = $(NAMES:%=%.dvi)
+#### This makefile is currently broken!
+#### makeinfo doesn't work with these .texi files!
+NAMES = tm tm-edit tm-view gnus-mime tm-mh-e
+NAMES_EN = $(NAMES:%=%-en)
+NAMES_JA = $(NAMES:%=%-ja)
+NAMES_ALL = $(NAMES_EN) $(NAMES_JA)
+INFOS = $(NAMES_ALL:%=../../info/%.info)
+DVIS  = $(NAMES_ALL:%=%.dvi)
 
 TEXI2DVI = texi2dvi
 
 # List of all the texinfo files in the manual:
 
-srcs = tm-edit-en.texi   tm-ew-d=en.texi    tm-ew=en.texi      tm-util=en.texi \
-       tm-view-a=en.texi tm-view-cb=en.texi tm-view-ch=en.texi tm-view-cs=en.texi \
-       tm-view-m=en.texi tm-view-p=en.texi  tm-view=en.texi    tm-en.texi
-
 all : info
 info : $(INFOS)
 
-../../info/tm_en.info : $(srcs)
-
 ../../info/%.info : %.texi
 	makeinfo -o $@ $<
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/gnus-mime-en.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,339 @@
+<!doctype sinfo system>
+<!-- $Id: gnus-mime-en.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>gnus-mime 0.10 reference manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/21
+
+<toc>
+</head>
+
+<body>
+    
+<abstract>
+<p>
+This file documents gnus-mime, a MIME extension for Gnus.
+</abstract>
+
+    
+<h1> What is gnus-mime?
+<node> Introduction
+<p>
+<concept>gnus-mime</concept> is a <dref file="tm-en">MIME</dref>
+extender for <a file="gnus">Gnus</a> using <a file="tm-en"
+node="tm-kernel">tm</a>.
+
+<memo title="Notice">
+<p>
+gnus-mime is for only Gnus.  Please use <a
+file="tm-gnus_en">tm-gnus</a> for GNUS.
+</memo>
+
+<p>
+gnus-mime supports automatic MIME preview in <code>"*Article*"</code>
+buffer using <a file="tm-view-en">tm-view</a>.  In particular, with
+XEmacs, it decodes images as same as text.
+<p>
+In addition, gnus-mime supports multilingual/internationalization
+feature for mule such as <a file="tm-en" node="mule">MULE</a>,
+XEmacs/mule and mule merged Emacs.  It supports code-conversion by
+MIME charset or depended default MIME charset of newsgroups.
+<p>
+For RFC 1522, original Gnus supports only Q-encoded <dref
+file="tm-en">iso-8859-1</dref> <dref file="tm-en">encoded-word</dref>.
+So gnus-mime supports more MIME charsets, such as <dref
+file="tm-en">iso-8859-2</dref>, <dref file="tm-en">iso-8859-3</dref>,
+..., <dref file="tm-en">iso-2022-jp</dref>, <dref
+file="tm-en">euc-kr</dref>, <dref file="tm-en">iso-2022-kr</dref>,
+gb2312, <dref file="tm-en">hz-gb-2312</dref>, <dref
+file="tm-en">cn-big5</dref>, and B-encoding.  In addition, original
+Gnus does not support unfolding or space elimination rule of RFC
+1522.  gnus-mime is more rightful.
+
+
+<h1> Inline display for MIME message
+<node> Automatic MIME Preview
+<p>
+<concept>automatic MIME preview</concept> feature is available for
+gnus-mime.  In automatic MIME preview mode, when reading an article in
+summary mode, gnus-mime displays preview buffer processed by tm-view
+instead of raw article buffer. <cf file="tm-view-en">
+<p>
+Therefore if an article is encoded by <dref file="tm-en">Base64</dref>
+or <dref file="tm-en">Quoted-Printable</dref>, a decoded article is
+displayed.  Or rich text article, such as <dref
+file="tm-en">text/enriched</dref> format, is automatic formated.  Of
+course, <dref file="tm-en">multipart</dref> article is dealt with
+correctly.
+<p>
+In addition, in <concept>XEmacs</concept>, images are displayed in
+preview buffer as same as text.
+<p>
+Different from using metamail, speaker does not roar just then read an
+article includes audio content, video player does not play just then
+read an article includes video content, it does not do anonymous <dref
+file="tm-en">ftp</dref> or send mail when read an article includes
+external-message.  These contents are played when you do decoding
+command in preview buffer.
+<p>
+However if you use a slow machine, or are just really impatient, you
+can stop automatic MIME preview.
+
+
+<h2> How to process MIME in Article Buffer
+<node> MIME processing
+<p>
+When <code>gnus-show-mime</code> is not <code>nil</code> and an
+article has Mime-Version field in its message header, namely it is a
+MIME message, Gnus calls <code>gnus-show-mime-method</code> to process
+MIME.
+<p>
+When <code>gnus-strict-mime</code> is <code>nil</code> and
+<code>gnus-show-mime</code> is not <code>nil</code>, Gnus calls
+<code>gnus-show-mime-method</code> even if an message does not have
+Mime-Version field in its message header.
+<p>
+Gnus 5.2 or later calls <code>gnus-show-mime-method</code> when
+<code>gnus-strict-mime</code> is not <code>nil</code> and an article
+does not have Mime-Version field.  Notice that old Gnus does not have
+it, so it may be better to set <code>gnus-strict-mime</code> to
+<code>nil</code>.
+
+
+<defvar name="gnus-show-mime">
+<p>
+If it is not <code>nil</code>, Gnus do automatic MIME preview.
+Default value is <code>t</code>.
+<p>
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.
+
+<cf file="gnus" node="Using MIME">
+</defvar>
+
+<defvar name="gnus-show-mime-method">
+<p>
+Gnus calls function bound by it to process MIME.  Default value is
+<code>gnus-article-preview-mime-message</code>.
+<p>
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.
+
+<cf file="gnus" node="Using MIME">
+</defvar>
+
+<defvar name="gnus-decode-encoded-word-method">
+<p>
+Gnus calls function bound by it to decode encoded-words.  Default
+value is <code>gnus-article-decode-encoded-word</code>.
+<p>
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.
+<p>
+In addition, it is not available at Gnus 5.0.* or Gnus 5.1.
+</defvar>
+
+<memo title="Notice">
+<p>
+gnus-mime uses some variables of Gnus and defines different default
+values by <code>defvar</code>.  For example, gnus-mime's default value
+of <code>gnus-show-mime</code> is <code>t</code> instead of
+<code>nil</code>.  Or its default value of
+<code>gnus-show-mime-method</code> is
+<code>gnus-article-preview-mime-message</code> instead of
+<code>metamail-buffer</code>.
+<cf file="gnus" node="Using MIME">
+<p>
+gnus-mime uses <code>defvar</code> instead of <code>setq</code>,
+because of respect user's setting before gnus-mime is loaded, such as
+using <file>~/.emacs</file>.  But it has a problem.  If gnus is loaded
+before gnus-mime is loaded, features of gnus-mime is not available in
+default even if gnus-mime is loaded.  Therefore there is serious
+problem to load gnus before gnus-mime is loaded.  In other words,
+setting in <file>~/.gnus</file>, such as to load
+<file>gnus-mime</file> or <file>mime-setup</file>, is not good way.
+If you want such way, please do setting for
+<code>gnus-show-mime</code> and <code>gnus-show-mime-method</code>.
+</memo>
+
+
+<h2> Mechanism of Automatic MIME preview
+<node> Two buffers for an article
+<p>
+Gnus 5.2 or later has two buffers for an article,
+<code>gnus-original-article-buffer</code> (<code>" *Original
+Article*"</code>) and <code>gnus-article-buffer</code>
+(<code>"*Article*"</code>).  The former is called <concept>raw article
+buffer</concept>, the latter is called <concept>preview
+buffer</concept>.
+<p>
+Content of raw article buffer is non-processed ``raw message''.  In
+particular, for emacs variants includes <dref file="tm-en">mule</dref>
+features, message is not code-converted in it.
+<p>
+Content of preview buffer is MIME processed message to display for
+user.  In particular, for emacs variants includes mule features,
+non-ASCII message is code-converted in it by MIME charset or default
+<dref file="tm-en">MIME charset</dref> for selected newsgroup.
+<p>
+Gnus 5.0.* and Gnus 5.1 don't have distinction between raw article
+buffer and preview buffer.  So gnus-mime emulate raw article buffer.
+It is unnatural, so it may be better to use Gnus 5.2 or later, which
+are designed for tm-view.
+<p>
+<cf file="tm-view-en" node="Two buffers for an article">
+
+
+<h1> Internationalization
+<node> mule
+<p>
+For emacs variants includes mule feature, such as <dref
+file="tm-en">MULE</dref>, XEmacs/mule and Emacs/mule(*1), gnus-mime
+supports code-conversion by <dref file="tm-en">MIME charset</dref> or
+<code>default-mime-charset</code> of selected newsgroup.
+
+<memo>
+(*1) It means next generation of Emacs includes mule features.  Now
+(October 1996), HANDA Ken'ichi and RMS are developing it.
+</memo>
+
+<p>
+Detail of code conversion is following:
+
+<ol>
+<li>If a newsgroup is selected, MIME charset for the newsgroup is
+searched from <code>gnus-newsgroup-default-charset-alist</code>.  If
+it is found, it is set to buffer local variable
+<code>default-mime-charset</code> of Summary Buffer.  If not found,
+global value of <code>default-mime-charset</code> is used.
+</li>
+<li>Non-ASCII characters in Summary Buffer are code-converted by
+<code>default-mime-charset</code> in Summary Buffer.
+</li>
+<li><dref file="tm-en">encoded-word</dref> are code-converted by their
+specified <dref file="tm-en">MIME charset</dref>.
+</li>
+<li>Code-conversion of articles are following:
+
+<ol>
+<li>If a part of a MIME message has charset parameter of <dref
+file="tm-en">Content-Type field</dref>, it is code-converted by the
+MIME charset.
+</li>
+<li>When there are no specified MIME charset, such as message header
+or non-MIME message, they are code-converted by
+<code>default-mime-charset</code> in Summary Buffer.
+</ol>
+</ol>
+
+
+<defvar name="gnus-newsgroup-default-charset-alist">
+<p>
+Association-list regexp for newsgroup vs. symbol for default MIME
+charset.
+<p>
+Default setting are following:
+
+<dl>
+<dt>alt.chinese.*
+<dd>
+<dref file="tm-en">hz-gb-2312</dref>
+</dd>
+<dt>alt.chinese.text.big5, hk.*, hkstar.*, tw.*
+<dd>
+<dref file="tm-en">cn-big5</dref>
+</dd>
+<dt>fj.*
+<dd>
+<dref file="tm-en">iso-2022-jp-2</dref>
+</dd>
+<dt>han.*
+<dd>
+<dref file="tm-en">euc-kr</dref>
+</dd>
+<dt>relcom.*
+<dd><dref file="tm-en">koi8-r</dref>
+</dl>
+<p>
+If there is no MIME charsets for a newsgroup,
+<code>default-mime-charset</code> is used as default MIME charset.
+</defvar>
+
+<defun name="gnus-set-newsgroup-default-charset">
+<args>newsgroup charset
+<p>
+Set default MIME <var>charset</var> of <var>newsgroup</var> to
+<code>gnus-newsgroup-default-charset-alist</code>.
+<p>
+<var>newsgroup</var> is string of newsgroup name or category, for
+<code>"gnu.emacs.gnus"</code>, <code>"gnu.emacs"</code>,
+<code>"gnu"</code>.
+<p>
+<var>charset</var> is symbol of MIME charset, for example
+<code>iso-8859-1</code>, <code>iso-2022-jp</code>.
+</defun>
+
+
+<h1> Composing MIME messages
+<node> MIME-Edit
+<p>
+If using <dref file="tm-en">mime-setup</dref>, you can edit MIME
+message in message-mode using <a file="tm-edit-en">tm-edit</a>.
+
+<memo title="Notice">
+<p>
+Default setting of mime-setup avoids automatic inserting signature
+when sending a message.
+
+<cf file="tm-en" node="mime-setup">
+</memo>
+
+<p>
+gnus-mime does not have implementation for <kbd>C-c C-x C-m</kbd>
+(<code>mime-editor/insert-mail</code>).  Because gnus-mime does not
+know which mail-reader should be used.  In addition, <kbd>C-c C-x
+C-y</kbd> (<code>mime-editor/insert-message</code>) is enough to
+insert mail (namely to select a mail group and select a message to
+insert, then it is available to insert the mail message).
+<p>
+However you can use <kbd>C-c C-x C-m</kbd> to specify an
+implementation of <code>message-mode</code> to
+<code>mime-editor/mail-inserter-alist</code>.
+
+
+<h2> Example: same as <kbd>C-c C-x C-m</kbd>
+<p>
+<lisp>
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function message-mime-insert-article))
+</lisp>
+
+
+<h2> Example: including from MH folder
+<p>
+<lisp>
+(autoload 'tm-mh-e/insert-mail "tm-mh-e")
+
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function tm-mh-e/insert-mail))
+</lisp>
+
+
+<h1> Concept Index
+<node> Concept Index
+<p>
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+<p>
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+<p>
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/gnus-mime-en.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,357 @@
+\input texinfo.tex
+@setfilename gnus-mime-en.info
+@settitle{gnus-mime 0.10 reference manual (English Version)}
+@titlepage
+@title gnus-mime 0.10 reference manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/21
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top gnus-mime 0.10 reference manual (English Version)
+
+@ifinfo
+
+This file documents gnus-mime, a MIME extension for Gnus.
+@end ifinfo
+
+@menu
+* Introduction::                What is gnus-mime?
+* Automatic MIME Preview::      Inline display for MIME message
+* mule::                        Internationalization
+* MIME-Edit::                   Composing MIME messages
+* Concept Index::               
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Introduction, Automatic MIME Preview, Top, Top
+@chapter What is gnus-mime?
+
+@cindex{gnus-mime}@strong{gnus-mime} is a MIME (@ref{(tm-en)MIME})
+extender for Gnus (@ref{(gnus)}) using tm (@ref{(tm-en)tm-kernel}).
+
+@noindent
+@strong{[Notice]}
+@quotation
+
+gnus-mime is for only Gnus.  Please use tm-gnus (@ref{(tm-gnus_en)}) for
+GNUS.
+@end quotation
+
+
+gnus-mime supports automatic MIME preview in @code{"*Article*"} buffer
+using tm-view (@ref{(tm-view-en)}).  In particular, with XEmacs, it
+decodes images as same as text.@refill
+
+In addition, gnus-mime supports multilingual/internationalization
+feature for mule such as MULE (@ref{(tm-en)mule}), XEmacs/mule and mule
+merged Emacs.  It supports code-conversion by MIME charset or depended
+default MIME charset of newsgroups.@refill
+
+For RFC 1522, original Gnus supports only Q-encoded iso-8859-1
+(@ref{(tm-en)iso-8859-1}) encoded-word (@ref{(tm-en)encoded-word}).  So
+gnus-mime supports more MIME charsets, such as iso-8859-2
+(@ref{(tm-en)iso-8859-2}), iso-8859-3 (@ref{(tm-en)iso-8859-3}), ...,
+iso-2022-jp (@ref{(tm-en)iso-2022-jp}), euc-kr (@ref{(tm-en)euc-kr}),
+iso-2022-kr (@ref{(tm-en)iso-2022-kr}), gb2312, hz-gb-2312
+(@ref{(tm-en)hz-gb-2312}), cn-big5 (@ref{(tm-en)cn-big5}), and
+B-encoding.  In addition, original Gnus does not support unfolding or
+space elimination rule of RFC 1522.  gnus-mime is more rightful.
+
+
+@node Automatic MIME Preview, mule, Introduction, Top
+@chapter Inline display for MIME message
+
+@cindex{automatic MIME preview}@strong{automatic MIME preview} feature
+is available for gnus-mime.  In automatic MIME preview mode, when
+reading an article in summary mode, gnus-mime displays preview buffer
+processed by tm-view instead of raw article
+buffer. (cf. @ref{(tm-view-en)}) @refill
+
+Therefore if an article is encoded by Base64 (@ref{(tm-en)Base64}) or
+Quoted-Printable (@ref{(tm-en)Quoted-Printable}), a decoded article is
+displayed.  Or rich text article, such as text/enriched
+(@ref{(tm-en)text/enriched}) format, is automatic formated.  Of course,
+multipart (@ref{(tm-en)multipart}) article is dealt with
+correctly.@refill
+
+In addition, in @cindex{XEmacs}@strong{XEmacs}, images are displayed in
+preview buffer as same as text.@refill
+
+Different from using metamail, speaker does not roar just then read an
+article includes audio content, video player does not play just then
+read an article includes video content, it does not do anonymous ftp
+(@ref{(tm-en)ftp}) or send mail when read an article includes
+external-message.  These contents are played when you do decoding
+command in preview buffer.@refill
+
+However if you use a slow machine, or are just really impatient, you
+can stop automatic MIME preview.
+
+
+@menu
+* MIME processing::             How to process MIME in Article Buffer
+* Two buffers for an article::  Mechanism of Automatic MIME preview
+@end menu
+
+@node MIME processing, Two buffers for an article, Automatic MIME Preview, Automatic MIME Preview
+@section How to process MIME in Article Buffer
+
+When @code{gnus-show-mime} is not @code{nil} and an article has
+Mime-Version field in its message header, namely it is a MIME message,
+Gnus calls @code{gnus-show-mime-method} to process MIME.@refill
+
+When @code{gnus-strict-mime} is @code{nil} and @code{gnus-show-mime} is
+not @code{nil}, Gnus calls @code{gnus-show-mime-method} even if an
+message does not have Mime-Version field in its message header.@refill
+
+Gnus 5.2 or later calls @code{gnus-show-mime-method} when
+@code{gnus-strict-mime} is not @code{nil} and an article
+does not have Mime-Version field.  Notice that old Gnus does not have
+it, so it may be better to set @code{gnus-strict-mime} to
+@code{nil}.
+
+
+@defvar gnus-show-mime
+
+If it is not @code{nil}, Gnus do automatic MIME preview.  Default value
+is @code{t}.@refill
+
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.
+
+(cf. @ref{(gnus)Using MIME})
+@end defvar
+
+
+@defvar gnus-show-mime-method
+
+Gnus calls function bound by it to process MIME.  Default value is
+@code{gnus-article-preview-mime-message}.@refill
+
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.
+
+(cf. @ref{(gnus)Using MIME})
+@end defvar
+
+
+@defvar gnus-decode-encoded-word-method
+
+Gnus calls function bound by it to decode encoded-words.  Default value
+is @code{gnus-article-decode-encoded-word}.@refill
+
+It is a variable of Gnus, so if gnus is loaded before gnus-mime is
+loaded, default value is not guaranteed.@refill
+
+In addition, it is not available at Gnus 5.0.* or Gnus 5.1.
+@end defvar
+
+
+@noindent
+@strong{[Notice]}
+@quotation
+
+gnus-mime uses some variables of Gnus and defines different default
+values by @code{defvar}.  For example, gnus-mime's default value of
+@code{gnus-show-mime} is @code{t} instead of @code{nil}.  Or its default
+value of @code{gnus-show-mime-method} is
+@code{gnus-article-preview-mime-message} instead of
+@code{metamail-buffer}.  (cf. @ref{(gnus)Using MIME}) @refill
+
+gnus-mime uses @code{defvar} instead of @code{setq}, because of respect
+user's setting before gnus-mime is loaded, such as using
+@file{~/.emacs}.  But it has a problem.  If gnus is loaded before
+gnus-mime is loaded, features of gnus-mime is not available in default
+even if gnus-mime is loaded.  Therefore there is serious problem to load
+gnus before gnus-mime is loaded.  In other words, setting in
+@file{~/.gnus}, such as to load @file{gnus-mime} or @file{mime-setup},
+is not good way.  If you want such way, please do setting for
+@code{gnus-show-mime} and @code{gnus-show-mime-method}.
+@end quotation
+
+
+
+@node Two buffers for an article,  , MIME processing, Automatic MIME Preview
+@section Mechanism of Automatic MIME preview
+
+Gnus 5.2 or later has two buffers for an article,
+@code{gnus-original-article-buffer} (@code{" *Original Article*"}) and
+@code{gnus-article-buffer} (@code{"*Article*"}).  The former is called
+@cindex{raw article buffer}@strong{raw article buffer}, the latter is
+called @cindex{preview buffer}@strong{preview buffer}.@refill
+
+Content of raw article buffer is non-processed ``raw message''.  In
+particular, for emacs variants includes mule (@ref{(tm-en)mule})
+features, message is not code-converted in it.@refill
+
+Content of preview buffer is MIME processed message to display for user.
+In particular, for emacs variants includes mule features, non-ASCII
+message is code-converted in it by MIME charset or default MIME charset
+(@ref{(tm-en)MIME charset}) for selected newsgroup.@refill
+
+Gnus 5.0.* and Gnus 5.1 don't have distinction between raw article
+buffer and preview buffer.  So gnus-mime emulate raw article buffer.  It
+is unnatural, so it may be better to use Gnus 5.2 or later, which are
+designed for tm-view.@refill
+
+(cf. @ref{(tm-view-en)Two buffers for an article})
+
+
+
+@node mule, MIME-Edit, Automatic MIME Preview, Top
+@chapter Internationalization
+
+For emacs variants includes mule feature, such as MULE
+(@ref{(tm-en)MULE}), XEmacs/mule and Emacs/mule(*1), gnus-mime supports
+code-conversion by MIME charset (@ref{(tm-en)MIME charset}) or
+@code{default-mime-charset} of selected newsgroup.
+
+@noindent
+@strong{[Memo]}
+@quotation
+(*1) It means next generation of Emacs includes mule features.  Now
+(October 1996), HANDA Ken'ichi and RMS are developing it.
+@end quotation
+
+
+Detail of code conversion is following:
+
+@enumerate
+@item
+If a newsgroup is selected, MIME charset for the newsgroup is
+searched from @code{gnus-newsgroup-default-charset-alist}.  If
+it is found, it is set to buffer local variable
+@code{default-mime-charset} of Summary Buffer.  If not found,
+global value of @code{default-mime-charset} is used.
+@item
+Non-ASCII characters in Summary Buffer are code-converted by
+@code{default-mime-charset} in Summary Buffer.
+@item
+encoded-word (@ref{(tm-en)encoded-word}) are code-converted by their
+specified MIME charset (@ref{(tm-en)MIME charset}).
+@item
+Code-conversion of articles are following:
+
+@enumerate
+@item
+If a part of a MIME message has charset parameter of Content-Type field
+(@ref{(tm-en)Content-Type field}), it is code-converted by the MIME
+charset.
+@item
+When there are no specified MIME charset, such as message header
+or non-MIME message, they are code-converted by
+@code{default-mime-charset} in Summary Buffer.
+@end enumerate
+@end enumerate
+
+
+
+@defvar gnus-newsgroup-default-charset-alist
+
+Association-list regexp for newsgroup vs. symbol for default MIME
+charset.@refill
+
+Default setting are following:
+
+@table @samp
+@item alt.chinese.*
+hz-gb-2312 (@ref{(tm-en)hz-gb-2312})@refill
+
+@item alt.chinese.text.big5, hk.*, hkstar.*, tw.*
+cn-big5 (@ref{(tm-en)cn-big5})@refill
+
+@item fj.*
+iso-2022-jp-2 (@ref{(tm-en)iso-2022-jp-2})@refill
+
+@item han.*
+euc-kr (@ref{(tm-en)euc-kr})@refill
+
+@item relcom.*
+koi8-r (@ref{(tm-en)koi8-r})@refill
+
+@end table
+
+If there is no MIME charsets for a newsgroup,
+@code{default-mime-charset} is used as default MIME charset.
+@end defvar
+
+
+@defun gnus-set-newsgroup-default-charsetnewsgroup charset
+
+Set default MIME @var{charset} of @var{newsgroup} to
+@code{gnus-newsgroup-default-charset-alist}.@refill
+
+@var{newsgroup} is string of newsgroup name or category, for
+@code{"gnu.emacs.gnus"}, @code{"gnu.emacs"}, @code{"gnu"}.@refill
+
+@var{charset} is symbol of MIME charset, for example @code{iso-8859-1},
+@code{iso-2022-jp}.
+@end defun
+
+
+
+@node MIME-Edit, Concept Index, mule, Top
+@chapter Composing MIME messages
+
+If using mime-setup (@ref{(tm-en)mime-setup}), you can edit MIME message
+in message-mode using tm-edit (@ref{(tm-edit-en)}).
+
+@noindent
+@strong{[Notice]}
+@quotation
+
+Default setting of mime-setup avoids automatic inserting signature
+when sending a message.
+
+(cf. @ref{(tm-en)mime-setup})
+@end quotation
+
+
+gnus-mime does not have implementation for @kbd{C-c C-x C-m}
+(@code{mime-editor/insert-mail}).  Because gnus-mime does not know which
+mail-reader should be used.  In addition, @kbd{C-c C-x C-y}
+(@code{mime-editor/insert-message}) is enough to insert mail (namely to
+select a mail group and select a message to insert, then it is available
+to insert the mail message).@refill
+
+However you can use @kbd{C-c C-x C-m} to specify an
+implementation of @code{message-mode} to
+@code{mime-editor/mail-inserter-alist}.
+
+
+@section Example: same as @kbd{C-c C-x C-m}
+
+@lisp
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function message-mime-insert-article))
+@end lisp
+
+
+
+@section Example: including from MH folder
+
+@lisp
+(autoload 'tm-mh-e/insert-mail "tm-mh-e")
+
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function tm-mh-e/insert-mail))
+@end lisp
+
+
+
+@node Concept Index, Function Index, MIME-Edit, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/gnus-mime-ja.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,330 @@
+<!doctype sinfo system>
+<!-- $Id: gnus-mime-ja.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>gnus-mime 0.10 $B@bL@=q!JF|K\8lHG!K(B
+<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/21
+
+<toc>
+</head>
+
+<body>
+    
+<abstract>
+<p>
+This file documents gnus-mime, a MIME extension for Gnus.
+<p>
+tm $B$r;H$C$F(B Gnus $B$N(B MIME $B5!G=$r6/2=$9$k$?$a$N(B package $B$G$"$k(B 
+`gnus-mime' $B$K$D$$$F@bL@$7$^$9!#(B
+</abstract>
+
+    
+<h1> gnus-mime $B$C$F2?!)(B
+<node> Introduction
+<p>
+<concept>gnus-mime</concept> $B$O(B <a file="tm-ja"
+node="tm-kernel">tm</a> $B$r;H$C$F(B <a file="gnus">Gnus</a> $B$N(B <dref
+file="tm-ja">MIME</dref> $B5!G=$r6/2=$9$k$?$a$N(B package $B$G$9!#(B
+
+<memo title="$BCm0U(B">
+<p>
+gnus-mime $B$O(B Gnus $B@lMQ$G$9!#(BGNUS $B$K$O(B <a file="tm-gnus_ja">tm-gnus</a> 
+$B$r;H$$$^$9!#(B
+</memo>
+
+<p>
+gnus-mime $B$r;H$&$H(B <a file="tm-view-ja"> tm-view</a> $B$rMQ$$$F(B 
+<code>"*Article*"</code> buffer $B$G(B MIME preview $B$r9T$&$3$H$,$G$-$^$9!#(B
+$BFC$K!"(BXEmacs $B$G$O!"(Btext $B$HF1MM$K!"3($b(B inline $BI=<($r$9$k$3$H$,$G$-$^$9!#(B
+<p>
+$B$^$?!"(B<a file="tm-ja" node="mule"> MULE</a>, XEmacs/mule, mule $BE}9gHG(B 
+Emacs $B$G$OB?8@8l!&9q:]2=5!G=$,(B support $B$5$l!"(BMIME message $B$KBP$9$k(B 
+charset $B$N(B support, $BHs(B MIME message $B$KBP$9$k(B Newsgroup $BKh$N(B 
+default-mime-charset $B$N;XDj$r9T$&$3$H$,$G$-$^$9!#(B
+<p>
+$B$^$?!"(Boriginal $B$N(B Gnus $B$G$O(B <dref file="tm-ja">iso-8859-1</dref> $B$N(B Q
+encoding $B$N(B <dref file="tm-ja">encoded-word</dref> $B$N(B decode $B$7$+(B 
+support $B$5$l$^$;$s$,!"(Bgnus-mime $B$G$O!"(B<dref
+file="tm-ja">iso-8859-2</dref>, <dref file="tm-ja">iso-8859-3</dref>,
+..., <dref file="tm-ja">iso-2022-jp</dref>, <dref
+file="tm-ja">euc-kr</dref>, <dref file="tm-ja">iso-2022-kr</dref>,
+<dref file="tm-ja">hz-gb-2312</dref>, <dref
+file="tm-ja">cn-big5</dref> $B$J$I!"(Bmule $B$GMxMQ2DG=$J$5$^$6$^$J(B charset 
+$B$N(B B $B$J$i$S$K(B Q encoding $B$N(B encoded-word $B$r07$&$3$H$,$G$-$^$9!#$^$?!"(B
+Gnus $B$h$j$b(B RFC 1522 $B$KCi<B$K=hM}$7$F$$$^$9!#(B
+
+
+<h1> MIME message $B$N(B inline $BI=<((B
+<node> Automatic MIME Preview
+<p>
+gnus-mime $B$G$O(B <concept>automatic MIME preview</concept> $B5!G=$rMxMQ$9(B
+$B$k$3$H$,$G$-$^$9!#$3$N5!G=$r;H$&$H(B Summary mode $B$G5-;v$rFI$`;~!"DL>oI=(B
+$B<($5$l$k(B Article buffer $B$NBe$o$j$K(B tm-view $B$G=hM}$5$l$?(B preview buffer 
+$B$rI=<($7$^$9!#(B<cf file="tm-view-ja">
+<p>
+$B$3$N$?$a!"(B<dref file="tm-ja">Base64</dref> $B$d(B <dref
+file="tm-ja">Quoted-Printable</dref> $B$G(B encode $B$5$l$?5-;v$r(B decode $B$7(B
+$B$FI=<($9$k$3$H$,$G$-$^$9!#$"$k$$$O!"(B<dref
+file="tm-ja">text/enriched</dref> $B7A<0$N$h$&$J=qBN$dAHHG$K4X$9$k>pJs$r(B
+$B;}$C$?5-;v$r@07A$7$FI=<($G$-$^$9!#EvA3$N$3$H$J$,$i!"(B<dref
+file="tm-ja">multipart</dref> $B$N5-;v$b@5$7$/=hM}$G$-$^$9!#(B
+<p>
+$B$^$?!"(B<concept>XEmacs</concept> $B$G$O(B text $B$HF1MM$K3($b(B preview buffer 
+$BFb$GI=<($9$k$3$H$,$G$-$^$9!#(B
+<p>
+metamail $B$r;H$C$?>l9g$H0[$J$j!"2;$NF~$C$?5-;v$rFI$s$@$H$?$s!"$$$-$J$j!"(B
+$B2;$,LD$j=P$7$?$j!"(Bvideo $B$NF~$C$?5-;v$rFI$`$?$S$K(B video $B$,:F@8$5$l$?$j!"(B
+anonymous <dref file="tm-ja">ftp</dref> $B$d(B mail-server $B$rMxMQ$7$?(B 
+external-message $B$NF~$C$?5-;v$rFI$`$?$S$K(B anonymous ftp $B$r<B9T$7$?$j!"(B
+mail $B$rAw$C$?$j$9$k$3$H$,KI$2$^$9!#$3$&$7$?(B content $B$O(B preview buffer 
+$B$NCf$KF~$C$F:F@8(B command $B$r<B9T$7$?;~$N$_:F@8$5$l$^$9!#(B
+<p>
+$B$7$+$7$J$,$i!"CY$$(B machine $B$r;H$C$F$$$F!"(BMIME $B=hM}$N(B overhead $B$,5$$K$J(B
+$B$k>l9g!"(Bautomatic MIME preview $B$rM^;_$9$k$3$H$,$G$-$^$9!#(B
+
+
+<h2> MIME $B=hM}$N;EAH$_(B
+<node> MIME processing
+<p>
+<code>gnus-show-mime</code> $B$,(B <code>nil</code> $B$G$J$/!"$+$D!"(Barticle 
+$B$,(B Mime-Version field $B$r;}$C$F$$$k>l9g!"B($A!"$=$N(B article $B$,(B MIME
+message $B$N>l9g!"(B<code>gnus-show-mime-method</code> $B$,8F$P$l$F(B MIME $B=h(B
+$BM}$,9T$J$o$l$^$9!#(B
+<p>
+<code>gnus-strict-mime</code> $B$,(B <code>nil</code> $B$N>l9g!"(B
+<code>gnus-show-mime</code> $B$,(B <code>nil</code> $B$G$J$1$l$P>o$K(B 
+<code>gnus-show-mime-method</code> $B$,8F$P$l$F(B MIME $B=hM}$,9T$J$o$l$^$9!#(B
+<p>
+Gnus 5.2 $B0J9_$G$O!"(B<code>gnus-strict-mime</code> $B$,(B <code>nil</code> 
+$B$G$J$/!"$+$D!"(Barticle $B$K(B Mime-Version field $B$,$J$$>l9g!"(B
+<code>gnus-show-mime-method</code> $B$,8F$P$l$kBe$o$j$K(B 
+<code>gnus-decode-encoded-word-method</code> $B$,8F$P$l$^$9!#$G$b!"8E$$(B 
+Gnus $B$G$OM-8z$G$O$J$$$N$G!"$3$N>l9g!"(B<code>gnus-strict-mime</code> $B$O(B 
+<code>nil</code> $B$K$7$F$*$$$?J}$,NI$$$G$7$g$&!#(B
+
+
+<defvar name="gnus-show-mime">
+<p>
+$B$3$NJQ?t$,(B <code>nil</code> $B$G$J$$$H$-!"(Bautomatic MIME preview $B$,9T$J(B
+$B$o$l$^$9!#4{DjCM$O(B <code>t</code> $B$G$9!#(B
+<p>
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B 
+load $B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B
+
+<cf file="gnus" node="Using MIME">
+</defvar>
+
+<defvar name="gnus-show-mime-method">
+<p>
+MIME $B=hM}$r9T$J$&;~$K!"$3$NJQ?t$KB+G{$5$l$?4X?t$,8F$P$l$^$9!#4{DjCM$O(B 
+<code>gnus-article-preview-mime-message</code> $B$G$9!#(B
+<p>
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B 
+load $B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B
+
+<cf file="gnus" node="Using MIME">
+</defvar>
+
+<defvar name="gnus-decode-encoded-word-method">
+<p>
+<code>gnus-show-mime</code> $B$H(B <code>gnus-strict-mime</code> $B$,$H$b$K(B 
+<code>nil</code> $B$G$J$$>l9g$K!"(BMime-Version field $B$,$J$$(B article $B$KBP(B
+$B$7$F$3$NJQ?t$KB+G{$5$l$?4X?t$,8F$P$l$^$9!#4{DjCM$O!"(B
+<code>gnus-article-decode-encoded-word</code> $B$G$9!#(B
+<p>
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B 
+load $B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B
+<p>
+$B$^$?!"(BGnus 5.0.* $B$*$h$S(B Gnus 5.1 $B$G$OL58z$G$9!#(B
+</defvar>
+
+<memo title="$BCm0U(B">
+<p>
+gnus-mime $B$O(B Gnus $B$NJQ?t$rMQ$$!"$3$l$r(B gnus-mime $B$N=i4|CM$G(B
+<code>defvar</code> $B$7$F$$$^$9!#Nc$($P!"(B<code>gnus-show-mime</code> $B$O(B 
+<code>nil</code>$B$G$O$J$/(B <code>t</code> $B$G!"(B
+<code>gnus-show-mime-method</code> $B$O(B <code>metamail-buffer</code> $B$G(B
+$B$O$J$/(B<code>gnus-article-preview-mime-message</code> $B$G(B 
+<code>defvar</code> $B$7$F$$$^$9!#(B<cf file="gnus" node="Using MIME">
+<p>
+<code>setq</code> $B$G$O$J$/(B <code>defvar</code> $B$rMQ$$$F$$$k$N$O(B 
+gnus-mime $B$,(B load$B$5$l$kA0$K(B <file>~/.emacs</file> $BEy$G(B user $B$,9T$C$?@_(B
+$BDj$rB:=E$9$k$?$a$G$9$,!"$3$N$3$H$OF1;~$K!"$b$7(B gnus-mime $B$,(B load $B$5$l(B
+$B$kA0$K(B gnus $B$,(B load $B$5$l$l$P(B gnus-mime $B$N5!G=$OI8=`$G$OF/$+$J$$$3$H$r(B
+$B0UL#$7$F$$$^$9!#$h$C$F!"(B<file>~/.gnus</file> $BEy$G(B gnus-mime $B$d(B 
+mime-setup $B$r(B load $B$9$k$3$H$K$OLdBj$,$"$j$^$9!#$I$&$7$F$b$=$&$7$?$$>l(B
+$B9g$O!"(B<code>gnus-show-mime</code> $B$d(B<code>gnus-show-mime-method</code> 
+$B$N@_Dj$r9T$C$F$/$@$5$$!#(B
+</memo>
+
+
+<h2> Automatic MIME preview $B$N;EAH$_(B
+<node> Two buffers for an article
+<p>
+Gnus 5.2 $B0J9_$G$O(B Gnus $B$O#1$D$N(B article $B$KBP$7$F(B 
+<code>gnus-original-article-buffer</code> (<code>" *Original
+Article*"</code>) $B$H(B<code>gnus-article-buffer</code>
+(<code>"*Article*"</code>) $B$H$$$&#2$D$N(B buffer $B$r;}$C$F$$$^$9!#$3$3$G(B
+$B$OA0<T$r(B <concept>raw article buffer</concept>, $B8e<T$r(B 
+<concept>preview buffer</concept> $B$H8F$V$3$H$K$7$^$9!#(B
+<p>
+raw article buffer $B$K$O2?$b=hM}$r$5$l$F$$$J$$!X@8$N(B article$B!Y$,F~$C$F(B
+$B$$$^$9!#FC$K!"(B<dref file="tm-ja">mule</dref> $B$G$O(B code $BJQ49$r9T$J$o$J(B
+$B$$>uBV$N5-;v$,F~$j$^$9!#(B
+<p>
+preview buffer $B$O(B raw article buffer $B$r85$K(B MIME $B=hM}$r9T$J$C$F@07A$5(B
+$B$l$?5-;v$,F~$j$^$9!#FC$K!"(Bmule $B$N>l9g!"$3$NCf$G!"(Bcharset $B$b$7$/$O(B 
+newsgroup $BKh$K;XDj$5$l$?J8;z(B code $B$G$N(B code $BJQ49$,9T$J$o$l$^$9!#(B
+<p>
+Gnus 5.0.* $B$*$h$S(B Gnus 5.1 $B$G$O(B raw article buffer $B$H(B preview buffer 
+$B$N6hJL$O$"$j$^$;$s$,(B gnus-mime $B$,L5M}LpM}(B raw article buffer $B$r:n$j=P(B
+$B$7$F$$$^$9!#$h$C$F!"FC$KM}M3$,$J$1$l$P(B Gnus 5.2 $B0J9_$r;H$o$l$k$3$H$r$*(B
+$B4+$a$7$^$9!#(B
+<p>
+<cf file="tm-view-ja" node="Two buffers for an article">
+
+
+<h1> $B9q:]2=(B
+<node> mule
+<p>
+<a file="tm-ja" node="mule">MULE</a>, XEmacs/mule, $B$*$h$S!"(Bmule $BE}9gHG(B 
+Emacs (*1) $B$J$I$N(B mule $B5!G=$r;}$C$?(B emacs $B$G$O(B <dref file="tm-ja">MIME
+charset</dref> $B$*$h$S!"Hs(B MIME message/part $B$KBP$9$k(B newsgroup $BKh$K;X(B
+$BDj$5$l$?(B <code>default-mime-charset</code> $B$G$N(B code $BJQ49$,9T$o$l$^$9!#(B
+
+<memo>
+(*1) 1996 $BG/(B 10 $B7n8=:_!"H>ED(B $B7u0l(B $B;a$H(B RMS $B;a$,3+H/Cf$N(B Emacs $B$G!"(BMULE
+$B$N5!G=$N$&$A!"B?8@8l2=$H9q:]2=$K4X$9$k5!G=$,(B merge $B$5$l$?$b$N$r;X$7$F(B
+$B$$$^$9!#(B
+</memo>
+
+<p>
+$B6qBNE*$K$O!"(Bcode $BJQ49$O<!$N$h$&$K9T$o$l$^$9!'(B
+
+<ol>
+<li>
+$B$"$k(B newsgroup $B$rA*Br$9$k$H!"$=$N(B newsgroup $B$KBP1~$9$k(B default $B$N(B MIME
+charset $B$r(B <code>gnus-newsgroup-default-charset-alist</code> $B$+$iA\$7!"(B
+$B$b$7!"8+IU$+$l$P!"(BSummary Buffer $B$N(B buffer local $BJQ?t(B
+<code>default-mime-charset</code> $B$K$=$l$r@_Dj$9$k!#$b$7!"$J$1$l$P!"(B
+<code>default-mime-charset</code> $B$NBg0hCM$,MQ$$$i$l$k!#(B
+<p>
+<li>
+Summary Buffer $BCf$NHs(B ASCII $BJ8;z$O(B <code>default-mime-charset</code> 
+$B$N(B Summary Buffer $B>e$G$NCM$G(B code $BJQ49$5$l$k!#(B
+<p>
+<li>
+<dref file="tm-ja">encoded-word</dref> $B$N>l9g!"@k8@$5$l$?(B <dref
+file="tm-ja">MIME charset</dref> $B$G(B code $BJQ49$r9T$&!#(B
+<p>
+<li>
+article $B$N(B code $BJQ49$O!'(B
+
+<ol>
+<li>
+$B$b$7!"$"$k(B MIME message $B$N$"$k(B part $B$,(B <dref file="tm-ja">Content-Type
+field</dref> $B$K(B charset parameter $B$r;}$C$F$$$l$P!"$=$N(B MIME charset $B$r(B
+$BMQ$$$F(B code $BJQ49$r9T$&!#(B
+<p>
+<li>
+message header $B$dHs(B MIME message $B$J$I!"(Bcharset $B$,@k8@$5$l$F$$$J$$>l9g!"(B
+Summary Buffer $B>e$N(B <code>default-mime-charset</code> $B$NCM$G(B code $BJQ49(B
+$B$5$l$k!#(B
+</ol>
+</ol>
+
+<defvar name="gnus-newsgroup-default-charset-alist">
+<p>
+newsgroup $B$KBP1~$9$k@55,I=8=$H(B default MIME charset $B$rI=$9(B symbol $B$NBP(B
+$B$+$i$J$kO"A[(B list.
+<p>
+$B4{DjCM$G$O!"(Balt.chinese.* $B$G$O(B <dref file="tm-ja">hz-gb-2312</dref>,
+alt.chinese.text.big5, hk.*, hkstar.*, tw.* $B$G$O(B <dref
+file="tm-ja">cn-big5</dref>, fj.* $B$G$O(B <dref
+file="tm-ja">iso-2022-jp-2</dref>, han.* $B$G$O(B <dref
+file="tm-ja">euc-kr</dref>, relcom.* $B$G$O(B <dref
+file="tm-ja">koi8-r</dref> $B$,;XDj$5$l$F$$$^$9!#(B
+<p>
+$B$"$k(B newsgroup $B$KBP1~$9$k(B MIME charset $B$,B8:_$7$J$$>l9g$O(B
+<code>default-mime-charset</code> $B$,MQ$$$i$l$^$9!#(B
+</defvar>
+
+<defun name="gnus-set-newsgroup-default-charset">
+<args>newsgroup charset
+<p>
+<var>newsgroup</var> $B$KBP$9$k(B default MIME charset $B$r(B 
+<var>charset</var> $B$K@_Dj$9$k!#(B
+<p>
+<var>newsgroup</var> $B$O(B newsgroup $BL>$+$=$N0lIt$+$i$J$kJ8;zNs!#!JNc!'(B
+<code>"gnu.emacs.gnus"</code>, <code>"gnu.emacs"</code>,
+<code>"gnu"</code>$B!K(B
+<p>
+<var>charset</var> $B$O(B MIME charset $B$rI=$9(B symbol. $B!JNc!'(B
+<code>iso-8859-1</code>, <code>iso-2022-jp</code>$B!K(B
+</defun>
+
+
+<h1> MIME message $B$N:n@.(B
+<node> MIME-Edit
+<p>
+<dref file="tm-ja">mime-setup</dref> $B$r;H$C$F$$$k>l9g!"(B<a
+file="tm-edit-ja">tm-edit</a> $B$rMQ$$$?(B MIME message $B$N:n@.$r9T$&$3$H$,(B
+$B$G$-$^$9!#(B
+
+<memo title="$BCm0U(B">
+<p>
+mime-setup $B$NI8=`@_Dj$G$O(B signature $B$N<+F0A^F~$,M^@)$5$l$^$9!#(B
+
+<cf file="tm-ja" node="mime-setup">
+</memo>
+
+<p>
+<kbd>C-c C-x C-m</kbd> (<code>mime-editor/insert-mail</code>) $B$KBP$9$k(B
+$B<BAu$OI8=`$G$OM?$($i$l$^$;$s!#$3$l$O!"(BGnus $B$HAH$_9g$o$;$k$Y$-(B mail
+reader $B$r$I$&$9$l$PNI$$$+$,H=$i$J$$$+$i$G$9!#$^$?!"BgDq$N>l9g!"(B
+<kbd>C-c C-x C-y</kbd> (<code>mime-editor/insert-message</code>) $B$G;v(B
+$BB-$j$k!JB($A!"A^F~$7$?$$(Bmessage $B$rA*Br$7$F$=$N(B 
+<code>"*Article*"</code> buffer $B$rI=<($9$l$P$=$N(Bmessage $B$r(B <kbd>C-c
+C-x C-y</kbd> $B$GA^F~$9$k$3$H$,$G$-$^$9!K$+$i$G$9!#(B
+<p>
+$B$7$+$7$J$,$i!"(B<code>mime-editor/mail-inserter-alist</code> $B$N(B
+<code>message-mode</code> $B$NCM$K@_Dj$7$?$$<BAu$r;XDj$9$k$3$H$G(B 
+<kbd>C-c C-x C-m</kbd> $B$rMxMQ$9$k$3$H$,$G$-$^$9!#(B
+
+
+<h2> $BNc!'(B<kbd>C-c C-x C-m</kbd> $B$HF1$8F0:n$r$5$;$k>l9g(B
+<p>
+<lisp>
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function message-mime-insert-article))
+</lisp>
+
+
+<h2> $BNc!'(BMH $B$N(B folder $B$+$i<h$j9~$`>l9g(B
+<p>
+<lisp>
+(autoload 'tm-mh-e/insert-mail "tm-mh-e")
+
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function tm-mh-e/insert-mail))
+</lisp>
+
+
+<h1> $B35G0:w0z(B
+<node> Concept Index
+<p>
+<cindex>
+
+
+<h1> $B4X?t:w0z(B
+<node> Function Index
+<p>
+<findex>
+
+
+<h1> $BJQ?t:w0z(B
+<node> Variable Index
+<p>
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/gnus-mime-ja.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,350 @@
+\input texinfo.tex
+@setfilename gnus-mime-ja.info
+@settitle{gnus-mime 0.10 $B@bL@=q!JF|K\8lHG!K(B}
+@titlepage
+@title gnus-mime 0.10 $B@bL@=q!JF|K\8lHG!K(B
+@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
+@subtitle 1996/10/21
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top gnus-mime 0.10 $B@bL@=q!JF|K\8lHG!K(B
+
+@ifinfo
+
+This file documents gnus-mime, a MIME extension for Gnus.@refill
+
+tm $B$r;H$C$F(B Gnus $B$N(B MIME $B5!G=$r6/2=$9$k$?$a$N(B package $B$G$"$k(B `gnus-mime' 
+$B$K$D$$$F@bL@$7$^$9!#(B
+@end ifinfo
+
+@menu
+* Introduction::                gnus-mime $B$C$F2?!)(B
+* Automatic MIME Preview::      MIME message $B$N(B inline $BI=<((B
+* mule::                        $B9q:]2=(B
+* MIME-Edit::                   MIME message $B$N:n@.(B
+* Concept Index::               $B35G0:w0z(B
+* Function Index::              $B4X?t:w0z(B
+* Variable Index::              $BJQ?t:w0z(B
+@end menu
+
+@node Introduction, Automatic MIME Preview, Top, Top
+@chapter gnus-mime $B$C$F2?!)(B
+
+@cindex{gnus-mime}@strong{gnus-mime} $B$O(B tm (@ref{(tm-ja)tm-kernel}) $B$r;H$C(B
+$B$F(B Gnus (@ref{(gnus)}) $B$N(B MIME (@ref{(tm-ja)MIME}) $B5!G=$r6/2=$9$k$?$a$N(B 
+package $B$G$9!#(B
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+gnus-mime $B$O(B Gnus $B@lMQ$G$9!#(BGNUS $B$K$O(B tm-gnus (@ref{(tm-gnus_ja)}) $B$r;H(B
+$B$$$^$9!#(B
+@end quotation
+
+
+gnus-mime $B$r;H$&$H(B tm-view (@ref{(tm-view-ja)}) $B$rMQ$$$F(B 
+@code{"*Article*"} buffer $B$G(B MIME preview $B$r9T$&$3$H$,$G$-$^$9!#FC$K!"(B
+XEmacs $B$G$O!"(Btext $B$HF1MM$K!"3($b(B inline $BI=<($r$9$k$3$H$,$G$-$^$9!#(B
+
+$B$^$?!"(BMULE (@ref{(tm-ja)mule}), XEmacs/mule, mule $BE}9gHG(B Emacs $B$G$OB?8@(B
+$B8l!&9q:]2=5!G=$,(B support $B$5$l!"(BMIME message $B$KBP$9$k(B charset $B$N(B support, 
+$BHs(B MIME message $B$KBP$9$k(B Newsgroup $BKh$N(B default-mime-charset $B$N;XDj$r9T(B
+$B$&$3$H$,$G$-$^$9!#(B@refill
+
+$B$^$?!"(Boriginal $B$N(B Gnus $B$G$O(B iso-8859-1 (@ref{(tm-ja)iso-8859-1}) $B$N(B Q
+encoding $B$N(B encoded-word (@ref{(tm-ja)encoded-word}) $B$N(B decode $B$7$+(B 
+support $B$5$l$^$;$s$,!"(Bgnus-mime $B$G$O!"(Biso-8859-2
+(@ref{(tm-ja)iso-8859-2}), iso-8859-3 (@ref{(tm-ja)iso-8859-3}), ...,
+iso-2022-jp (@ref{(tm-ja)iso-2022-jp}), euc-kr (@ref{(tm-ja)euc-kr}),
+iso-2022-kr (@ref{(tm-ja)iso-2022-kr}), hz-gb-2312
+(@ref{(tm-ja)hz-gb-2312}), cn-big5 (@ref{(tm-ja)cn-big5}) $B$J$I!"(Bmule $B$G(B
+$BMxMQ2DG=$J$5$^$6$^$J(B charset $B$N(B B $B$J$i$S$K(B Q encoding $B$N(B encoded-word $B$r(B
+$B07$&$3$H$,$G$-$^$9!#$^$?!"(BGnus $B$h$j$b(B RFC 1522 $B$KCi<B$K=hM}$7$F$$$^$9!#(B
+
+
+@node Automatic MIME Preview, mule, Introduction, Top
+@chapter MIME message $B$N(B inline $BI=<((B
+
+gnus-mime $B$G$O(B @cindex{automatic MIME preview}@strong{automatic MIME
+preview} $B5!G=$rMxMQ$9$k$3$H$,$G$-$^$9!#$3$N5!G=$r;H$&$H(B Summary mode $B$G(B
+$B5-;v$rFI$`;~!"DL>oI=<($5$l$k(B Article buffer $B$NBe$o$j$K(B tm-view $B$G=hM}$5(B
+$B$l$?(B preview buffer $B$rI=<($7$^$9!#(B(cf. @ref{(tm-view-ja)}) @refill
+
+$B$3$N$?$a!"(BBase64 (@ref{(tm-ja)Base64}) $B$d(B Quoted-Printable
+(@ref{(tm-ja)Quoted-Printable}) $B$G(B encode $B$5$l$?5-;v$r(B decode $B$7$FI=<($9(B
+$B$k$3$H$,$G$-$^$9!#$"$k$$$O!"(Btext/enriched (@ref{(tm-ja)text/enriched}) 
+$B7A<0$N$h$&$J=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?5-;v$r@07A$7$FI=<($G$-$^$9!#Ev(B
+$BA3$N$3$H$J$,$i!"(Bmultipart (@ref{(tm-ja)multipart}) $B$N5-;v$b@5$7$/=hM}$G(B
+$B$-$^$9!#(B@refill
+
+$B$^$?!"(B@cindex{XEmacs}@strong{XEmacs} $B$G$O(B text $B$HF1MM$K3($b(B preview
+buffer $BFb$GI=<($9$k$3$H$,$G$-$^$9!#(B@refill
+
+metamail $B$r;H$C$?>l9g$H0[$J$j!"2;$NF~$C$?5-;v$rFI$s$@$H$?$s!"$$$-$J$j!"(B
+$B2;$,LD$j=P$7$?$j!"(Bvideo $B$NF~$C$?5-;v$rFI$`$?$S$K(B video $B$,:F@8$5$l$?$j!"(B
+anonymous ftp (@ref{(tm-ja)ftp}) $B$d(B mail-server $B$rMxMQ$7$?(B 
+external-message $B$NF~$C$?5-;v$rFI$`$?$S$K(B anonymous ftp $B$r<B9T$7$?$j!"(B
+mail $B$rAw$C$?$j$9$k$3$H$,KI$2$^$9!#$3$&$7$?(B content $B$O(B preview buffer $B$N(B
+$BCf$KF~$C$F:F@8(B command $B$r<B9T$7$?;~$N$_:F@8$5$l$^$9!#(B@refill
+
+$B$7$+$7$J$,$i!"CY$$(B machine $B$r;H$C$F$$$F!"(BMIME $B=hM}$N(B overhead $B$,5$$K$J(B
+$B$k>l9g!"(Bautomatic MIME preview $B$rM^;_$9$k$3$H$,$G$-$^$9!#(B
+
+
+@menu
+* MIME processing::             MIME $B=hM}$N;EAH$_(B
+* Two buffers for an article::  Automatic MIME preview $B$N;EAH$_(B
+@end menu
+
+@node MIME processing, Two buffers for an article, Automatic MIME Preview, Automatic MIME Preview
+@section MIME $B=hM}$N;EAH$_(B
+
+@code{gnus-show-mime} $B$,(B @code{nil} $B$G$J$/!"$+$D!"(Barticle $B$,(B 
+Mime-Version field $B$r;}$C$F$$$k>l9g!"B($A!"$=$N(B article $B$,(B MIME message 
+$B$N>l9g!"(B@code{gnus-show-mime-method} $B$,8F$P$l$F(B MIME $B=hM}$,9T$J$o$l$^$9!#(B
+@refill
+
+@code{gnus-strict-mime} $B$,(B @code{nil} $B$N>l9g!"(B@code{gnus-show-mime} $B$,(B 
+@code{nil} $B$G$J$1$l$P>o$K(B @code{gnus-show-mime-method} $B$,8F$P$l$F(B MIME 
+$B=hM}$,9T$J$o$l$^$9!#(B@refill
+
+Gnus 5.2 $B0J9_$G$O!"(B@code{gnus-strict-mime} $B$,(B @code{nil} 
+$B$G$J$/!"$+$D!"(Barticle $B$K(B Mime-Version field $B$,$J$$>l9g!"(B
+@code{gnus-show-mime-method} $B$,8F$P$l$kBe$o$j$K(B 
+@code{gnus-decode-encoded-word-method} $B$,8F$P$l$^$9!#$G$b!"8E$$(B 
+Gnus $B$G$OM-8z$G$O$J$$$N$G!"$3$N>l9g!"(B@code{gnus-strict-mime} $B$O(B 
+@code{nil} $B$K$7$F$*$$$?J}$,NI$$$G$7$g$&!#(B
+
+
+@defvar gnus-show-mime
+
+$B$3$NJQ?t$,(B @code{nil} $B$G$J$$$H$-!"(Bautomatic MIME preview $B$,9T$J$o$l$^$9!#(B
+$B4{DjCM$O(B @code{t} $B$G$9!#(B@refill
+
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B 
+load $B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B
+
+(cf. @ref{(gnus)Using MIME})
+@end defvar
+
+
+@defvar gnus-show-mime-method
+
+MIME $B=hM}$r9T$J$&;~$K!"$3$NJQ?t$KB+G{$5$l$?4X?t$,8F$P$l$^$9!#4{DjCM$O(B 
+@code{gnus-article-preview-mime-message} $B$G$9!#(B@refill
+
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B 
+load $B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B
+
+(cf. @ref{(gnus)Using MIME})
+@end defvar
+
+
+@defvar gnus-decode-encoded-word-method
+
+@code{gnus-show-mime} $B$H(B @code{gnus-strict-mime} $B$,$H$b$K(B @code{nil} $B$G(B
+$B$J$$>l9g$K!"(BMime-Version field $B$,$J$$(B article $B$KBP$7$F$3$NJQ?t$KB+G{$5$l(B
+$B$?4X?t$,8F$P$l$^$9!#4{DjCM$O!"(B@code{gnus-article-decode-encoded-word} $B$G(B
+$B$9!#(B@refill
+
+$B$3$NJQ?t$O(B Gnus $B$NJQ?t$J$N$G!"(Bgnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B load 
+$B$5$l$?>l9g!"4{DjCM$OJ]>Z$5$l$^$;$s!#(B@refill
+
+$B$^$?!"(BGnus 5.0.* $B$*$h$S(B Gnus 5.1 $B$G$OL58z$G$9!#(B
+@end defvar
+
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+gnus-mime $B$O(B Gnus $B$NJQ?t$rMQ$$!"$3$l$r(B gnus-mime $B$N=i4|CM$G(B@code{defvar} 
+$B$7$F$$$^$9!#Nc$($P!"(B@code{gnus-show-mime} $B$O(B @code{nil}$B$G$O$J$/(B @code{t} 
+$B$G!"(B@code{gnus-show-mime-method} $B$O(B @code{metamail-buffer} $B$G$O$J$/(B
+@code{gnus-article-preview-mime-message} $B$G(B @code{defvar} $B$7$F$$$^$9!#(B
+(cf. @ref{(gnus)Using MIME}) @refill
+
+@code{setq} $B$G$O$J$/(B @code{defvar} $B$rMQ$$$F$$$k$N$O(B gnus-mime $B$,(B load$B$5(B
+$B$l$kA0$K(B @file{~/.emacs} $BEy$G(B user $B$,9T$C$?@_Dj$rB:=E$9$k$?$a$G$9$,!"$3(B
+$B$N$3$H$OF1;~$K!"$b$7(B gnus-mime $B$,(B load $B$5$l$kA0$K(B gnus $B$,(B load $B$5$l$l$P(B 
+gnus-mime $B$N5!G=$OI8=`$G$OF/$+$J$$$3$H$r0UL#$7$F$$$^$9!#$h$C$F!"(B
+@file{~/.gnus} $BEy$G(B gnus-mime $B$d(B mime-setup $B$r(B load $B$9$k$3$H$K$OLdBj$,$"(B
+$B$j$^$9!#$I$&$7$F$b$=$&$7$?$$>l9g$O!"(B@code{gnus-show-mime} $B$d(B
+@code{gnus-show-mime-method} $B$N@_Dj$r9T$C$F$/$@$5$$!#(B
+@end quotation
+
+
+
+@node Two buffers for an article,  , MIME processing, Automatic MIME Preview
+@section Automatic MIME preview $B$N;EAH$_(B
+
+Gnus 5.2 $B0J9_$G$O(B Gnus $B$O#1$D$N(B article $B$KBP$7$F(B 
+@code{gnus-original-article-buffer} (@code{" *Original Article*"}) $B$H(B
+@code{gnus-article-buffer} (@code{"*Article*"}) $B$H$$$&#2$D$N(B buffer $B$r;}$C(B
+$B$F$$$^$9!#$3$3$G$OA0<T$r(B @cindex{raw article buffer}@strong{raw article
+buffer}, $B8e<T$r(B @cindex{preview buffer}@strong{preview buffer} $B$H8F$V$3(B
+$B$H$K$7$^$9!#(B@refill
+
+raw article buffer $B$K$O2?$b=hM}$r$5$l$F$$$J$$!X@8$N(B article$B!Y$,F~$C$F$$(B
+$B$^$9!#FC$K!"(Bmule (@ref{(tm-ja)mule}) $B$G$O(B code $BJQ49$r9T$J$o$J$$>uBV$N5-(B
+$B;v$,F~$j$^$9!#(B@refill
+
+preview buffer $B$O(B raw article buffer $B$r85$K(B MIME $B=hM}$r9T$J$C$F@07A$5$l(B
+$B$?5-;v$,F~$j$^$9!#FC$K!"(Bmule $B$N>l9g!"$3$NCf$G!"(Bcharset $B$b$7$/$O(B 
+newsgroup $BKh$K;XDj$5$l$?J8;z(B code $B$G$N(B code $BJQ49$,9T$J$o$l$^$9!#(B@refill
+
+Gnus 5.0.* $B$*$h$S(B Gnus 5.1 $B$G$O(B raw article buffer $B$H(B preview buffer $B$N(B
+$B6hJL$O$"$j$^$;$s$,(B gnus-mime $B$,L5M}LpM}(B raw article buffer $B$r:n$j=P$7$F(B
+$B$$$^$9!#$h$C$F!"FC$KM}M3$,$J$1$l$P(B Gnus 5.2 $B0J9_$r;H$o$l$k$3$H$r$*4+$a$7(B
+$B$^$9!#(B@refill
+
+(cf. @ref{(tm-view-ja)Two buffers for an article})
+
+
+
+@node mule, MIME-Edit, Automatic MIME Preview, Top
+@chapter $B9q:]2=(B
+
+MULE (@ref{(tm-ja)mule}), XEmacs/mule, $B$*$h$S!"(Bmule $BE}9gHG(B Emacs (*1) $B$J(B
+$B$I$N(B mule $B5!G=$r;}$C$?(B emacs $B$G$O(B MIME charset (@ref{(tm-ja)MIME
+charset}) $B$*$h$S!"Hs(B MIME message/part $B$KBP$9$k(B newsgroup $BKh$K;XDj$5$l$?(B 
+@code{default-mime-charset} $B$G$N(B code $BJQ49$,9T$o$l$^$9!#(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+(*1) 1996 $BG/(B 10 $B7n8=:_!"H>ED(B $B7u0l(B $B;a$H(B RMS $B;a$,3+H/Cf$N(B Emacs $B$G!"(BMULE
+$B$N5!G=$N$&$A!"B?8@8l2=$H9q:]2=$K4X$9$k5!G=$,(B merge $B$5$l$?$b$N$r;X$7$F(B
+$B$$$^$9!#(B
+@end quotation
+
+
+$B6qBNE*$K$O!"(Bcode $BJQ49$O<!$N$h$&$K9T$o$l$^$9!'(B
+
+@enumerate
+@item
+$B$"$k(B newsgroup $B$rA*Br$9$k$H!"$=$N(B newsgroup $B$KBP1~$9$k(B default $B$N(B MIME
+charset $B$r(B @code{gnus-newsgroup-default-charset-alist} $B$+$iA\$7!"(B
+$B$b$7!"8+IU$+$l$P!"(BSummary Buffer $B$N(B buffer local $BJQ?t(B
+@code{default-mime-charset} $B$K$=$l$r@_Dj$9$k!#$b$7!"$J$1$l$P!"(B
+@code{default-mime-charset} $B$NBg0hCM$,MQ$$$i$l$k!#(B
+
+@item
+Summary Buffer $BCf$NHs(B ASCII $BJ8;z$O(B @code{default-mime-charset} 
+$B$N(B Summary Buffer $B>e$G$NCM$G(B code $BJQ49$5$l$k!#(B
+
+@item
+encoded-word (@ref{(tm-ja)encoded-word}) $B$N>l9g!"@k8@$5$l$?(B MIME charset
+(@ref{(tm-ja)MIME charset}) $B$G(B code $BJQ49$r9T$&!#(B
+
+@item
+article $B$N(B code $BJQ49$O!'(B
+
+@enumerate
+@item
+$B$b$7!"$"$k(B MIME message $B$N$"$k(B part $B$,(B Content-Type field
+(@ref{(tm-ja)Content-Type field}) $B$K(B charset parameter $B$r;}$C$F$$$l$P!"(B
+$B$=$N(B MIME charset $B$rMQ$$$F(B code $BJQ49$r9T$&!#(B
+
+@item
+message header $B$dHs(B MIME message $B$J$I!"(Bcharset $B$,@k8@$5$l$F$$$J$$>l9g!"(B
+Summary Buffer $B>e$N(B @code{default-mime-charset} $B$NCM$G(B code $BJQ49(B
+$B$5$l$k!#(B
+@end enumerate
+@end enumerate
+
+
+@defvar gnus-newsgroup-default-charset-alist
+
+newsgroup $B$KBP1~$9$k@55,I=8=$H(B default MIME charset $B$rI=$9(B symbol $B$NBP$+(B
+$B$i$J$kO"A[(B list.@refill
+
+$B4{DjCM$G$O!"(Balt.chinese.* $B$G$O(B hz-gb-2312 (@ref{(tm-ja)hz-gb-2312}),
+alt.chinese.text.big5, hk.*, hkstar.*, tw.* $B$G$O(B cn-big5
+(@ref{(tm-ja)cn-big5}), fj.* $B$G$O(B iso-2022-jp-2
+(@ref{(tm-ja)iso-2022-jp-2}), han.* $B$G$O(B euc-kr (@ref{(tm-ja)euc-kr}),
+relcom.* $B$G$O(B koi8-r (@ref{(tm-ja)koi8-r}) $B$,;XDj$5$l$F$$$^$9!#(B@refill
+
+$B$"$k(B newsgroup $B$KBP1~$9$k(B MIME charset $B$,B8:_$7$J$$>l9g$O(B
+@code{default-mime-charset} $B$,MQ$$$i$l$^$9!#(B
+@end defvar
+
+
+@defun gnus-set-newsgroup-default-charsetnewsgroup charset
+
+@var{newsgroup} $B$KBP$9$k(B default MIME charset $B$r(B @var{charset} $B$K@_Dj$9(B
+$B$k!#(B@refill
+
+@var{newsgroup} $B$O(B newsgroup $BL>$+$=$N0lIt$+$i$J$kJ8;zNs!#!JNc!'(B
+@code{"gnu.emacs.gnus"}, @code{"gnu.emacs"}, @code{"gnu"}$B!K(B@refill
+
+@var{charset} $B$O(B MIME charset $B$rI=$9(B symbol. $B!JNc!'(B@code{iso-8859-1},
+@code{iso-2022-jp}$B!K(B
+@end defun
+
+
+
+@node MIME-Edit, Concept Index, mule, Top
+@chapter MIME message $B$N:n@.(B
+
+mime-setup (@ref{(tm-ja)mime-setup}) $B$r;H$C$F$$$k>l9g!"(Btm-edit
+(@ref{(tm-edit-ja)}) $B$rMQ$$$?(B MIME message $B$N:n@.$r9T$&$3$H$,$G$-$^$9!#(B
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+mime-setup $B$NI8=`@_Dj$G$O(B signature $B$N<+F0A^F~$,M^@)$5$l$^$9!#(B
+
+(cf. @ref{(tm-ja)mime-setup})
+@end quotation
+
+
+@kbd{C-c C-x C-m} (@code{mime-editor/insert-mail}) $B$KBP$9$k<BAu$OI8=`$G(B
+$B$OM?$($i$l$^$;$s!#$3$l$O!"(BGnus $B$HAH$_9g$o$;$k$Y$-(B mail reader $B$r$I$&$9$l(B
+$B$PNI$$$+$,H=$i$J$$$+$i$G$9!#$^$?!"BgDq$N>l9g!"(B@kbd{C-c C-x C-y}
+(@code{mime-editor/insert-message}) $B$G;vB-$j$k!JB($A!"A^F~$7$?$$(Bmessage 
+$B$rA*Br$7$F$=$N(B @code{"*Article*"} buffer $B$rI=<($9$l$P$=$N(Bmessage $B$r(B 
+@kbd{C-c C-x C-y} $B$GA^F~$9$k$3$H$,$G$-$^$9!K$+$i$G$9!#(B@refill
+
+$B$7$+$7$J$,$i!"(B@code{mime-editor/mail-inserter-alist} $B$N(B
+@code{message-mode} $B$NCM$K@_Dj$7$?$$<BAu$r;XDj$9$k$3$H$G(B 
+@kbd{C-c C-x C-m} $B$rMxMQ$9$k$3$H$,$G$-$^$9!#(B
+
+
+@section $BNc!'(B@kbd{C-c C-x C-m} $B$HF1$8F0:n$r$5$;$k>l9g(B
+
+@lisp
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function message-mime-insert-article))
+@end lisp
+
+
+
+@section $BNc!'(BMH $B$N(B folder $B$+$i<h$j9~$`>l9g(B
+
+@lisp
+(autoload 'tm-mh-e/insert-mail "tm-mh-e")
+
+(set-alist 'mime-editor/mail-inserter-alist
+	   'message-mode (function tm-mh-e/insert-mail))
+@end lisp
+
+
+
+@node Concept Index, Function Index, MIME-Edit, Top
+@chapter $B35G0:w0z(B
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter $B4X?t:w0z(B
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter $BJQ?t:w0z(B
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-edit-en.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,448 @@
+<!doctype sinfo system>
+<!-- $Id: tm-edit-en.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-edit 7.90 Reference Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-edit, a MIME composer for GNU Emacs.
+</abstract>
+
+
+<h1> What is tm-edit?
+<node> Introduction
+<p>
+<concept>tm-edit</concept> is a general MIME composer for GNU Emacs.
+<p>
+tm-edit is based on mime.el by UMEDA Masanobu
+<mail>umerin@mse.kyutech.ac.jp</mail>, who is famous as the author of
+GNUS.  tm-edit expands following points from <file>mime.el</file>:
+
+<ul>
+<li>
+based on RFC 1521/1522
+<li>
+<a file="tm-en" node="Content-Disposition">Content-Disposition
+field</a> (RFC 1806) supports
+<li>
+nested <a file="tm-en" node="multipart">multi-part message</a>
+<li>
+<dref>PGP</dref> (PGP/MIME (RFC 2015) based on security multipart (RFC
+1847) and application/pgp based on traditional PGP)
+<li>
+strength automatic specification for parameter of file type
+</ul>
+
+<p>
+In <dref file="tm-en">tm-MUA</dref>, you can edit MIME message easily
+to use tm-edit.
+
+
+<h1> mime/editor-mode
+<node> mime/editor-mode
+<p>
+<concept>mime/editor-mode</concept> is a minor mode to compose MIME
+message.  In this mode, <concept>tag</concept> represents various
+kinds of data, you can edit <a file="tm-en" node="multipart">multi
+part</a> message.
+<p>
+There are 2 kinds of tags:
+
+<ul>
+<li> single-part tag
+<li> multi-part tag
+</ul>
+<p>
+single-part tag represents single part, this form is following:
+
+<verb>
+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+</verb>
+<p>
+TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
+<dref file="tm-en">Content-Type field</dref>.  TYPE/SUBTYPE is
+required, PARAMETERS is optional.
+<p>
+ENCODING indicates Content-Transfer-Encoding field.  It is optional
+too.
+<p>
+OPTIONAL-FIELDS is to represent another fields except Content-Type
+field and Content-Transfer-Encoding field.
+<p>
+multi-part tags represent <a file="tm-en" node="multipart">multi
+part</a>.  They consist of a pair of <concept>multi-part beginning
+tag</concept> and <concept>multi-part ending tag</concept>.
+<p>
+multi-part beginning tag's form is following:
+<p>
+<verb>
+        --<<TYPE>>-{
+</verb>
+<p>
+multi-part ending tag's form is following:
+<p>
+<verb>
+        --}-<<TYPE>>
+</verb>
+<p>
+A region from multi-part beginning tag to multi-part ending tag is
+called as <concept>enclosure</concept>.
+
+
+<h1> single-part operations
+<node> single-part operations
+<p>
+Operations to make single-part are following:
+
+<kl>
+<kt>C-c C-x C-t
+<kd>
+Insert single-part tag indicates text part.
+</kd>
+<kt>C-c C-x C-i
+<kd>
+Insert file as a MIME attachment.
+</kd>
+<kt>C-c C-x C-e
+<kd>
+Insert external part.
+</kd>
+<kt>C-c C-x C-v
+<kd>
+Record audio input until <kbd>C-g</kbd> is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
+</kd>
+<kt>C-c C-x C-y
+<kd>
+Insert current (mail or news) message. (It is MUA depended.)
+</kd>
+<kt>C-c C-x C-m
+<kd>
+Insert mail message. (It is MUA depended.)
+</kd>
+<dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
+<dd>
+Insert signature.
+</dd>
+<kt>C-c C-x C-k
+<kd>
+Insert <dref>PGP</dref> public key. (It requires Mailcrypt package.)
+</kd>
+<kt>C-c C-x t
+<kd>
+Insert any single-part tag.
+</kd>
+</kl>
+
+
+<h1> enclosure operation
+<node> enclosure operation
+<p>
+Operations to make enclosure are following:
+
+<kl>
+<kt>C-c C-x a
+<kd>
+Enclose specified region as multipart/alternative.
+</kd>
+<kt>C-c C-x p
+<kd>
+Enclose specified region as multipart/parallel.
+</kd>
+<kt>C-c C-x m
+<kd>
+Enclose specified region as multipart/mixed.
+</kd>
+<kt>C-c C-x d
+<kd>
+Enclose specified region as multipart/digest.
+</kd>
+<kt>C-c C-x s
+<kd>
+Digital-sign to specified region. <cf node="PGP">
+</kd>
+<kt>C-c C-x e
+<kd>
+Encrypt to specified region. <cf node="PGP">
+<kt>C-c C-x q
+<kd>
+avoid to encode tags in specified region.  In other words, tags is
+interpreted as such string.  (In current version, it may be
+incomplete.  Maybe PGP-signature does not work for this enclosure.)
+</kl>
+
+
+<h1> other operations of mime/editor-mode
+<node> other operations of mime/editor-mode
+<p>
+There are another operations in mime/editor-mode.
+
+<kl>
+<kt>C-c C-c
+<kd>
+Send current editing message.
+</kd>
+<kt>C-c C-x C-p
+<kd>
+Preview current editing message. (<ref file="tm-view-en"
+node="mime/viewer-mode">)
+</kd>
+<kt>C-c C-x C-z
+<kd>
+Exit mime/editor-mode. (<key>M-x mime/edit-again</key> is available to
+reedit.)
+</kd>
+<kt>C-c C-x ?
+<kd>
+Display help message.
+</kd>
+<kt>C-c C-x /
+<kd>
+Set current editing message to enable automatic splitting or not.
+Form of automatic split messages is message/partial.
+</kd>
+<kt>C-c C-x 7
+<kd>
+Set <dref file="tm-en">7bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x 8
+<kd>
+Set <dref file="tm-en">8bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x v
+<kd>
+Set current editing message to digital-sign or not. <cf node="PGP">
+</kd>
+<kt>C-c C-x h
+<kd>
+Set current editing message to encrypt or not. <cf node="PGP">
+</kl>
+
+
+<h1> transfer level
+<node> transfer level
+<p>
+Contents inserted in a message are represented by <dref
+file="tm-en">7bit</dref>, <dref file="tm-en">8bit</dref> or <dref
+file="tm-en">binary</dref>.
+<p>
+If a message is translated by 7bit-through <dref
+file="tm-en">MTA</dref>, there is no need to encode 7bit data, but
+8bit and binary data must be encoded to 7bit data.
+<p>
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.
+<p>
+<memo>
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64.  But I don't know EBCDIC. (^_^;
+<p>
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;
+<p>
+Maybe there are binary-through MTA, but I think it is not major.
+</memo>
+<p>
+<concept>transfer level</concept> represents how range data is
+available.  tm-edit has a variable
+<code>mime-editor/transfer-level</code> to represent transfer level.
+
+
+<defvar name="mime-editor/transfer-level">
+<p>
+transfer level.
+<p>
+If transfer level of a data is over it, a data is encoded to 7bit.
+<p>
+Currently, 7 or 8 is available.  Default value is 7.
+<p>
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9.  But it will not be implemented.
+</defvar>
+
+
+<memo>
+transfer level is only for body, not for <a node="header">header</a>.
+RFC 1521 extends <dref file="tm-en">RFC 822</dref> to use 8bit data in
+body, but it requires to use <dref file="tm-en">us-ascii</dref> in
+header.
+</memo>
+
+
+<h1> Using non-ASCII characters in header
+<node> header
+<p>
+<dref file="tm-en">RFC 1522</dref> defines representation of non-ASCII
+characters in header.
+<p>
+It is a format called as <a file="tm-en"
+node="encoded-word"><concept>encoded-word</concept></a>, it is
+available to represent every non-ASCII characters by <dref
+file="tm-en">7bit</dref> to declare <dref file="tm-en">MIME
+charset</dref>.
+
+
+<h2> If you can not allow encoded-word
+<node> evil setting in header
+<p>
+It is wrong to use ``raw'' non-ASCII characters in header not to use
+encoded-word.  Because there are various kinds of <a file="tm-en"
+node="Coded character set">coded character set</a> in the Internet, so
+we can not distinguish them if <dref file="tm-en">MIME charset</dref>
+is not declared.
+<p>
+For example, we can not distinguish <dref
+file="tm-en">iso-8859-1</dref> and <dref
+file="tm-en">iso-8859-2</dref> if MIME charset is not declared.
+<p>
+However you can not permit to use encoded-word, please set to
+following variables:
+
+
+<defvar name="mime/field-encoding-method-alist">
+<p>
+Association-list to specify field encoding method.  Its key is
+field-name, value is encoding method.
+<p>
+field-name allows string or <code>t</code> meaning any fields.
+<p>
+Encoding method allows following: <code>nil</code> means
+no-conversion, <code>mime</code> means to convert as encoded-word,
+symbol represent MIME charset means to convert as the coded character
+set instead of to convert as encoded-word.
+<p>
+field-name is searched from string.  If it is not found,
+<code>t</code> is used.
+<p>
+Default value of <code>mime/field-encoding-method-alist</code> is
+following:
+
+<lisp>
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t            . mime)
+ ))
+</lisp>
+</defvar>
+
+<p>
+In addition, if you want to specify by coded character set instead of
+field, please use <code>mime-eword/charset-encoding-alist</code>.
+<cf node="API about header">
+
+
+<h2> Functions and variables about header
+<node> API about header
+<p>
+<define type="Command" name="mime/encode-message-header">
+<opts> code-conversion
+<p>
+It translate non-ASCII characters in message header of current buffer
+into network representation, such as encoded-words.
+<p>
+If <var>code-conversion</var> is non-<code>nil</code>, field not
+encoded by encoded-word is converted by
+<code>mime/field-encoding-method-alist</code>.
+</define>
+
+<defun name="mime/encode-field">
+<args> string
+<p>
+It encodes <var>string</var> into encoded-words as a field.
+<p>
+Long lines are folded.
+</defun>
+
+<defun name="mime-eword/encode-string">
+<args> string <opts> column mode
+<p>
+It encodes <var>string</var> into encoded-words.
+<p>
+Long lines are folded.
+<p>
+<var>column</var> specifies start column.  If it is omitted, 0 is
+used.
+<p>
+<var>mode</var> specifies where <var>string</var> is in.  Available
+values are <code>text</code>, <code>comment</code>,
+<code>phrase</code>.  If it is omitted, <code>phrase</code> is used.
+</defun>
+
+<defvar name="mime-eword/charset-encoding-alist">
+<p>
+Association-list of symbol represent MIME charset vs. nil,
+<code>"B"</code> or <code>"Q"</code>.
+<p>
+<code>nil</code> means not to encode as encoded-word.  
+<code>"B"</code> means to use B-encoding.
+<code>"Q"</code> means to use Q-encoding.
+</defvar>
+
+
+<h1> PGP
+<node> PGP
+<p>
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on <a file="tm-en"
+node="PGP/MIME"><concept>PGP/MIME</concept></a> (RFC 2015) or <a
+file="tm-en" node="PGP-kazu"><concept>PGP-kazu</concept></a>
+(draft-kazu-pgp-mime-00.txt).
+<p>
+This feature requires pgp command and <a file="mailcrypt">Mailcrypt
+package</a>.
+<p>
+If you want to use this feature, please set <code>pgp-elkins</code> or
+<code>pgp-kazu</code> to variable
+<code>mimed-editor/signing-type</code> and variable
+<code>mime-editor/encrypting-type</code>.
+<p>
+If <code>pgp-elkins</code> is specified, PGP/MIME is used.  If
+<code>pgp-kazu</code> is specified, PGP-kazu is used.
+
+
+<defvar name="mime-editor/signing-type">
+<p>
+Format of PGP signature.
+<p>
+It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
+<p>
+Default value is <code>nil</code>.
+</defvar>
+
+<defvar name="mime-editor/encrypting-type">
+<p>
+Format of PGP encryption.
+<p>
+It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
+<p>
+Default value is <code>nil</code>.
+</defvar>
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
--- a/man/tm/tm-edit-en.texi	Mon Aug 13 09:03:47 2007 +0200
+++ b/man/tm/tm-edit-en.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -1,47 +1,78 @@
-@c $Id: tm-edit-en.texi,v 1.1.1.1 1996/12/18 22:43:52 steve Exp $
+\input texinfo.tex
+@setfilename tm-edit-en.info
+@settitle{tm-edit 7.90 Reference Manual (English Version)}
+@titlepage
+@title tm-edit 7.90 Reference Manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-edit 7.90 Reference Manual (English Version)
+
+@ifinfo
+
+This file documents tm-edit, a MIME composer for GNU Emacs.
+@end ifinfo
 
-@node tm-edit, encoded-word, tm-view, Top
-@comment  node-name,  next,  previous,  up
-@chapter tm-edit
-@cindex tm-edit
+@menu
+* Introduction::                What is tm-edit?
+* mime/editor-mode::            
+* single-part operations::      
+* enclosure operation::         
+* other operations of mime/editor-mode::  
+* transfer level::              
+* header::                      Using non-ASCII characters in header
+* PGP::                         
+* Concept Index::               
+* Function Index::              
+* Variable Index::              
+@end menu
 
-tm-edit is a general MIME viewer for GNU Emacs.
+@node Introduction, mime/editor-mode, Top, Top
+@chapter What is tm-edit?
+
+@cindex{tm-edit}@strong{tm-edit} is a general MIME composer for GNU
+Emacs.@refill
 
 tm-edit is based on mime.el by UMEDA Masanobu
-<umerin@@mse.kyutech.ac.jp>, who is famous as the author of GNUS.
-tm-edit expands following points from mime.el:
+<umerin@@mse.kyutech.ac.jp>, who is famous as the author of
+GNUS.  tm-edit expands following points from @file{mime.el}:
 
 @itemize @bullet
-@item based on RFC 1521/1522
-@item Content-Disposition field (RFC 1806) supports
-@item multi-part in multi-part
-@item PGP
-@item strength automatic specification for parameter of file type
+@item
+based on RFC 1521/1522
+@item
+Content-Disposition field (@ref{(tm-en)Content-Disposition}) (RFC 1806)
+supports
+@item
+nested multi-part message (@ref{(tm-en)multipart})
+@item
+PGP (@ref{PGP}) (PGP/MIME (RFC 2015) based on security multipart (RFC
+1847) and application/pgp based on traditional PGP)
+@item
+strength automatic specification for parameter of file type
 @end itemize
 
 
-@menu
-* mime/editor-mode::
-* single-part operations::
-* enclosure operation::
-* other operations of mime/editor-mode::
-@end menu
+In tm-MUA (@ref{(tm-en)tm-MUA}), you can edit MIME message easily to use
+tm-edit.
 
 
-@node mime/editor-mode, single-part operations, tm-edit, tm-edit
-@comment  node-name,  next,  previous,  up
-@section mime/editor-mode
-@cindex mime/editor-mode
+@node mime/editor-mode, single-part operations, Introduction, Top
+@chapter mime/editor-mode
 
-@emph{mime/editor-mode} is a minor mode to compose MIME message.
-In this mode, @emph{tag} represents various kinds of data, you can
-edit multi-part message.
+@cindex{mime/editor-mode}@strong{mime/editor-mode} is a minor mode to
+compose MIME message.  In this mode, @cindex{tag}@strong{tag} represents
+various kinds of data, you can edit multi part (@ref{(tm-en)multipart})
+message.@refill
 
-There are 2 kinds of @emph{tag}s:
+There are 2 kinds of tags:
 
 @itemize @bullet
-@item single-part tag
-@item multi-part tag
+@item
+ single-part tag
+@item
+ multi-part tag
 @end itemize
 
 single-part tag represents single part, this form is following:
@@ -52,36 +83,38 @@
 @end example
 
 TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
-Content-Type field. TYPE/SUBTYPE is required, PARAMETERS is optional.
+Content-Type field (@ref{(tm-en)Content-Type field}).  TYPE/SUBTYPE is
+required, PARAMETERS is optional.@refill
 
-ENCODING indicates Content-Transfer-Encoding field. It is optional too.
+ENCODING indicates Content-Transfer-Encoding field.  It is optional
+too.@refill
 
-OPTIONAL-FIELDS is to represent another fields except Content-Type
-field and Content-Transfer-Encoding field.
+OPTIONAL-FIELDS is to represent another fields except Content-Type field
+and Content-Transfer-Encoding field.@refill
 
-multi-part tags represent multi part. They consist of a pair of 
-@emph{multi-part beginning tag} and @emph{multi-part ending tag}.
+multi-part tags represent multi part (@ref{(tm-en)multipart}).  They
+consist of a pair of @cindex{multi-part beginning tag}@strong{multi-part
+beginning tag} and @cindex{multi-part ending tag}@strong{multi-part
+ending tag}.@refill
 
-@emph{multi-part beginning tag}'s form is following:
+multi-part beginning tag's form is following:@refill
 
 @example
         --<<TYPE>>-@{
 @end example
 
-@emph{multi-part ending tag}'s form is following:
+multi-part ending tag's form is following:@refill
 
 @example
         --@}-<<TYPE>>
 @end example
 
 A region from multi-part beginning tag to multi-part ending tag is
-called as @emph{enclosure}.
+called as @cindex{enclosure}@strong{enclosure}.
 
 
-@node single-part operations, enclosure operation, mime/editor-mode, tm-edit
-@comment  node-name,  next,  previous,  up
-@section single-part operations
-@cindex single-part
+@node single-part operations, enclosure operation, mime/editor-mode, Top
+@chapter single-part operations
 
 Operations to make single-part are following:
 
@@ -96,8 +129,8 @@
 Insert external part.
 
 @item @key{C-c C-x C-v}
-Record audio input until @key{C-g} is pressed, and insert as a audio
-part. (It requires /dev/audio in default.)
+Record audio input until @kbd{C-g} is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
 
 @item @key{C-c C-x C-y}
 Insert current (mail or news) message. (It is MUA depended.)
@@ -105,22 +138,21 @@
 @item @key{C-c C-x C-m}
 Insert mail message. (It is MUA depended.)
 
-@item @key{C-c C-x C-w, C-c C-x C-s}
+@item @key{C-c C-x C-w}, @key{C-c C-x C-s}
 Insert signature.
 
 @item @key{C-c C-x C-k}
-Insert PGP public key. (It requires Mailcrypt package.)
+Insert PGP (@ref{PGP}) public key. (It requires Mailcrypt package.)
 
 @item @key{C-c C-x t}
-Insert any  single-part tag.
+Insert any single-part tag.
+
 @end table
 
 
-@node enclosure operation, other operations of mime/editor-mode, single-part operations, tm-edit
-@comment  node-name,  next,  previous,  up
-@section enclosure operations
-@cindex multi-part
-@cindex enclosure
+
+@node enclosure operation, other operations of mime/editor-mode, single-part operations, Top
+@chapter enclosure operation
 
 Operations to make enclosure are following:
 
@@ -138,28 +170,22 @@
 Enclose specified region as multipart/digest.
 
 @item @key{C-c C-x s}
-Digital-sign to specified region. (*1)
+Digital-sign to specified region. (cf. @ref{PGP})
 
 @item @key{C-c C-x e}
-Encrypt to specified region. (*1)
+Encrypt to specified region. (cf. @ref{PGP})
+
+@item @key{C-c C-x q}
+avoid to encode tags in specified region.  In other words, tags is
+interpreted as such string.  (In current version, it may be
+incomplete.  Maybe PGP-signature does not work for this enclosure.)
+
 @end table
 
-@b{[Notice]}
-@enumerate
-@item
-It requires Mailcrypt package and pgp package. In addition, please set
-symbol @code{pgp-elkins} or @code{pgp-kazu} to
-variable @code{mime-editor/signing-type} and
-@code{mime-editor/encrypting-type}.
-
-@code{pgp-elkins} indicates draft-elkins-pem-pgp-02.txt,
-@code{pgp-kazu} indicates draft-kazu-pgp-mime-00.txt.
-@end enumerate
 
 
-@node other operations of mime/editor-mode,  , enclosure operation, tm-edit
-@comment  node-name,  next,  previous,  up
-@section Another operation in mime/editor-mode.
+@node other operations of mime/editor-mode, transfer level, enclosure operation, Top
+@chapter other operations of mime/editor-mode
 
 There are another operations in mime/editor-mode.
 
@@ -168,7 +194,7 @@
 Send current editing message.
 
 @item @key{C-c C-x C-p}
-Preview current editing message.
+Preview current editing message. (@ref{(tm-view-en)mime/viewer-mode})
 
 @item @key{C-c C-x C-z}
 Exit mime/editor-mode. (@key{M-x mime/edit-again} is available to
@@ -177,25 +203,249 @@
 @item @key{C-c C-x ?}
 Display help message.
 
-@item @key{M-x mime-editor/set-split}
+@item @key{C-c C-x /}
 Set current editing message to enable automatic splitting or not.
 Form of automatic split messages is message/partial.
 
-@item @key{M-x mime-editor/set-sign}
-Set current editing message to digital-sign or not. (*1)
+@item @key{C-c C-x 7}
+Set 7bit (@ref{(tm-en)7bit}) to transfer level (@ref{transfer level}).
+
+@item @key{C-c C-x 8}
+Set 8bit (@ref{(tm-en)8bit}) to transfer level (@ref{transfer level}).
 
-@item @key{M-x mime-editor/set-encrypt}
-Set current editing message to encrypt or not. (*1)
+@item @key{C-c C-x v}
+Set current editing message to digital-sign or not. (cf. @ref{PGP})
+
+@item @key{C-c C-x h}
+Set current editing message to encrypt or not. (cf. @ref{PGP})
+
 @end table
 
-@b{[Notice]}
-@enumerate
-@item
-It requires Mailcrypt package and pgp package. In addition, please set
-symbol @code{pgp-elkins} or @code{pgp-kazu} to
-variable @code{mime-editor/signing-type} and
-@code{mime-editor/encrypting-type}.
+
+
+@node transfer level, header, other operations of mime/editor-mode, Top
+@chapter transfer level
+
+Contents inserted in a message are represented by 7bit
+(@ref{(tm-en)7bit}), 8bit (@ref{(tm-en)8bit}) or binary
+(@ref{(tm-en)binary}).@refill
+
+If a message is translated by 7bit-through MTA (@ref{(tm-en)MTA}), there
+is no need to encode 7bit data, but 8bit and binary data must be encoded
+to 7bit data.@refill
+
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64.  But I don't know EBCDIC. (^_^;
+
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;@refill
+
+Maybe there are binary-through MTA, but I think it is not major.
+@end quotation
+
+@cindex{transfer level}@strong{transfer level} represents how range data is
+available.  tm-edit has a variable
+@code{mime-editor/transfer-level} to represent transfer level.
+
+
+@defvar mime-editor/transfer-level
+
+transfer level.@refill
+
+If transfer level of a data is over it, a data is encoded to
+7bit.@refill
+
+Currently, 7 or 8 is available.  Default value is 7.@refill
+
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9.  But it will not be implemented.
+@end defvar
+
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+transfer level is only for body, not for header (@ref{header}).  RFC
+1521 extends RFC 822 (@ref{(tm-en)RFC 822}) to use 8bit data in body,
+but it requires to use us-ascii (@ref{(tm-en)us-ascii}) in header.
+@end quotation
+
+
+
+@node header, PGP, transfer level, Top
+@chapter Using non-ASCII characters in header
+
+RFC 1522 (@ref{(tm-en)RFC 1522}) defines representation of non-ASCII
+characters in header.@refill
+
+It is a format called as @cindex{encoded-word}@strong{encoded-word}
+(@ref{(tm-en)encoded-word}), it is available to represent every
+non-ASCII characters by 7bit (@ref{(tm-en)7bit}) to declare MIME charset
+(@ref{(tm-en)MIME charset}).
+
+
+@menu
+* evil setting in header::      If you can not allow encoded-word
+* API about header::            Functions and variables about header
+@end menu
+
+@node evil setting in header, API about header, header, header
+@section If you can not allow encoded-word
+
+It is wrong to use ``raw'' non-ASCII characters in header not to use
+encoded-word.  Because there are various kinds of coded character set
+(@ref{(tm-en)Coded character set}) in the Internet, so we can not
+distinguish them if MIME charset (@ref{(tm-en)MIME charset}) is not
+declared.@refill
+
+For example, we can not distinguish iso-8859-1 (@ref{(tm-en)iso-8859-1})
+and iso-8859-2 (@ref{(tm-en)iso-8859-2}) if MIME charset is not
+declared.@refill
+
+However you can not permit to use encoded-word, please set to
+following variables:
+
+
+@defvar mime/field-encoding-method-alist
+
+Association-list to specify field encoding method.  Its key is
+field-name, value is encoding method.@refill
+
+field-name allows string or @code{t} meaning any fields.@refill
+
+Encoding method allows following: @code{nil} means no-conversion,
+@code{mime} means to convert as encoded-word, symbol represent MIME
+charset means to convert as the coded character set instead of to
+convert as encoded-word.@refill
+
+field-name is searched from string.  If it is not found, @code{t} is
+used.@refill
+
+Default value of @code{mime/field-encoding-method-alist} is
+following:
 
-@code{pgp-elkins} indicates draft-elkins-pem-pgp-02.txt,
-@code{pgp-kazu} indicates draft-kazu-pgp-mime-00.txt.
-@end enumerate
+@lisp
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t            . mime)
+ ))
+@end lisp
+@end defvar
+
+
+In addition, if you want to specify by coded character set instead of
+field, please use @code{mime-eword/charset-encoding-alist}.
+(cf. @ref{API about header})
+
+
+
+@node API about header,  , evil setting in header, header
+@section Functions and variables about header
+
+@deffn{Command} mime/encode-message-header &optional  code-conversion
+
+It translate non-ASCII characters in message header of current buffer
+into network representation, such as encoded-words.@refill
+
+If @var{code-conversion} is non-@code{nil}, field not encoded by
+encoded-word is converted by @code{mime/field-encoding-method-alist}.
+@end deffn
+
+
+@defun mime/encode-field string
+
+It encodes @var{string} into encoded-words as a field.@refill
+
+Long lines are folded.
+@end defun
+
+
+@defun mime-eword/encode-string string  &optional  column mode
+
+It encodes @var{string} into encoded-words.@refill
+
+Long lines are folded.@refill
+
+@var{column} specifies start column.  If it is omitted, 0 is
+used.@refill
+
+@var{mode} specifies where @var{string} is in.  Available values are
+@code{text}, @code{comment}, @code{phrase}.  If it is omitted,
+@code{phrase} is used.
+@end defun
+
+
+@defvar mime-eword/charset-encoding-alist
+
+Association-list of symbol represent MIME charset vs. nil, @code{"B"} or
+@code{"Q"}.@refill
+
+@code{nil} means not to encode as encoded-word.  @code{"B"} means to use
+B-encoding.  @code{"Q"} means to use Q-encoding.
+@end defvar
+
+
+
+@node PGP, Concept Index, header, Top
+@chapter PGP
+
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on @cindex{PGP/MIME}@strong{PGP/MIME}
+(@ref{(tm-en)PGP/MIME}) (RFC 2015) or @cindex{PGP-kazu}@strong{PGP-kazu}
+(@ref{(tm-en)PGP-kazu}) (draft-kazu-pgp-mime-00.txt).@refill
+
+This feature requires pgp command and Mailcrypt package
+(@ref{(mailcrypt)}).@refill
+
+If you want to use this feature, please set @code{pgp-elkins} or
+@code{pgp-kazu} to variable @code{mimed-editor/signing-type} and
+variable @code{mime-editor/encrypting-type}.@refill
+
+If @code{pgp-elkins} is specified, PGP/MIME is used.  If
+@code{pgp-kazu} is specified, PGP-kazu is used.
+
+
+@defvar mime-editor/signing-type
+
+Format of PGP signature.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+@defvar mime-editor/encrypting-type
+
+Format of PGP encryption.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+
+@node Concept Index, Function Index, PGP, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-edit-ja.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,467 @@
+<!doctype sinfo system>
+<!-- $Id: tm-edit-ja.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-edit 7.90 $B@bL@=q!JF|K\8lHG!K(B
+<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-edit, a MIME composer for GNU Emacs.
+<p>
+GNU Emacs $BMQ$N(B MIME composer $B$G$"$k(B `tm-edit' $B$K$D$$$F@bL@$7$^$9!#(B
+</abstract>
+
+
+<h1> What is tm-edit?
+<node> Introduction
+<p>
+<concept>tm-edit</concept> $B$O(B GNU Emacs $B$GF0:n$9$kHFMQE*$J(B MIME
+composer $B$G$9!#(B
+<p>
+tm-edit $B$O(B GNUS $B$N:n<T$H$7$F$bM-L>$J(B $BG_ED(B $B@/?.(B
+<mail>umerin@mse.kyutech.ac.jp</mail> $B$5$s$,=q$+$l$?(B 
+<file>mime.el</file> $B$r4p$K(B
+
+<ul>
+<li>
+RFC 1521/1522 $B2=(B
+<li>
+<a file="tm-ja" node="Content-Disposition">Content-Disposition
+field</a> (RFC 1806) $B$NMxMQ(B
+<li>
+$BF~$l;R$K$J$C$?(B <a file="tm-ja" node="multipart">multi-part message</a>
+<li>
+<dref>PGP</dref>
+<li>
+file type $B$K$*$1$k(B parameter $B$N<+F0;XDj$N6/2=(B
+</ul>
+
+<noindent>
+$B$J$I$N2~NI$r9T$$$^$7$?!#(B
+<p>
+<dref file="tm-ja">tm-MUA</dref> $B$G$O(B tm-edit $B$r;H$&$3$H$K$h$j!"MF0W$K(B 
+MIME message $B$r:n@.$G$-$^$9!#(B
+
+
+<h1> mime/editor-mode
+<node> mime/editor-mode
+<p>
+<concept>mime/editor-mode</concept> $B$O(B MIME message $B$r:n@.$9$k$?$a$N(B 
+minor mode $B$G$9!#$3$N(B mode $B$G$O(B <concept>tag</concept> $B$r;H$C$F$5$^$6(B
+$B$^$J<oN`$N(B data $B$rI=8=$7!"(B<a file="tm-ja" node="multipart">$BJ#?t$NItJ,(B
+$B$+$i$J$k(B message</a> $B$rJT=8$9$k$3$H$r2DG=$K$7$F$$$^$9!#(B
+<p>
+tag $B$K$O(B
+
+<ul>
+<li> single-part tag
+<li> multi-part tag
+</ul>
+
+<noindent>
+$B$N#2$D$,$"$j$^$9!#(B
+<p>
+single-part tag $B$O(B single part $B$rI=8=$9$k$?$a$N(B tag $B$G!"(B
+<p>
+<verb>
+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+</verb>
+<p>
+<noindent>
+$B$H$$$&$h$&$J7A$r$7$F$$$^$9!#(B
+<p>
+TYPE/SUBTYPE $B$*$h$S(B PARAMETERS $B$O(B <dref file="tm-ja">Content-Type
+field</dref> $B$N(B type/subtype $B$*$h$S(B parameters $B$rI=$7$^$9!#(B
+TYPE/SUBTYPE $B$OI,?\$G$"$j!"(BPARAMETERS $B$O>JN,2D$G$9!#(B
+<p>
+ENCODING $B$O(B Content-Transfer-Encoding field $B$rI=$7$^$9!#$3$l$b>JN,2D$G(B
+$B$9!#(B
+<p>
+OPTIONAL-FIELDS $B$O(B Content-Type, Content-Transfer-Encoding $B0J30$N(B 
+field $B$r=q$/$?$a$NItJ,$G!">JN,2D$G$9!#(B
+<p>
+multi-part tag $B$O(B <a file="tm-ja" node="multipart">multi part</a> $B$rI=(B
+$B8=$9$k$?$a$N(B tag $B$G!"(B
+<p>
+<verb>
+        --<<TYPE>>-@{
+</verb>
+<p>
+<noindent>
+$B$H$$$&7A$N(B <concept>multi-part $B3+;O(B tag</concept> $B$H8F$P$l$k(B multi
+part $B$N3+;O$r<($9(B tag $B$H(B
+<p>
+<verb>
+        --@}-<<TYPE>>
+</verb>
+<p>
+<noindent>
+$B$H$$$&7A$N(B <concept>multi-part $B=*N;(B tag</concept> $B$H8F$P$l$k(B multi
+part $B$N=*N;$r<($9(B tag $B$,$"$j$^$9!#(B
+<p>
+$B$^$?!"(Bmulti-part $B3+;O(B tag $B$H(B multi-part $B=*N;(B tag $B$G0O$^$l$?ItJ,$r(B 
+<concept>enclosure</concept> $B$H8F$S$^$9!#(B
+
+
+<h1> single-part $B$KBP$9$kA`:n(B
+<node> single-part operations
+<p>
+single-part $B$r:n$k$?$a$NA`:n$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B
+
+<kl>
+<kt>C-c C-x C-t
+<kd>
+text part $B$rI=$9(B single-part tag $B$rA^F~$7$^$9!#(B
+</kd>
+<kt>C-c C-x C-i
+<kd>
+file $B$r(B MIME part $B$H$7$FE:IU$7$^$9!#(B
+</kd>
+<kt>C-c C-x C-e
+<kd>
+external part $B$rA^F~$7$^$9!#(B
+</kd>
+<kt>C-c C-x C-v
+<kd>
+<kbd>C-g</kbd> $B$,2!$5$l$k$^$GO?2;$r9T$$!"2;@<(B part $B$rA^F~$7$^$9!#!J;H(B
+$BMQ$G$-$J$$>l9g$,$"$j$^$9!K(B
+</kd>
+<kt>C-c C-x C-y
+<kd>
+$B8=:_I=<(Cf$N(B (mail or news) message $B$rA^F~$7$^$9!#!J<B:]$NF0:n$O;HMQ$7(B
+$B$F$$$k(B MUA $B$K0MB8$7$^$9!K(B
+</kd>
+<kt>C-c C-x C-m
+<kd>
+mail message $B$rA^F~$7$^$9!#(B
+</kd>
+<dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
+<dd>
+signature $B$rA^F~$7$^$9!#(B
+</dd>
+<kt>C-c C-x C-k
+<kd>
+<dref>PGP</dref> $B$N8x3+80$rA^F~$7$^$9!#(B
+</kd>
+<kt>C-c C-x t
+<kd>
+$BG$0U$N(B single-part tag $B$rA^F~$7$^$9!#(B
+</kl>
+
+
+<h1> enclosure $B$KBP$9$kA`:n(B
+<node> enclosure operation
+<p>
+enclosure $B$r:n$k$?$a$NA`:n$H$7$F$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B
+
+<kl>
+<kt>C-c C-x a
+<kd>
+$B;XDj$7$?(B region $B$r(B multipart/alternative $B$H$7$F0O$_$^$9!#(B
+</kd>
+<kt>C-c C-x p
+<kd>
+$B;XDj$7$?(B region $B$r(B multipart/parallel $B$H$7$F0O$_$^$9!#(B
+</kd>
+<kt>C-c C-x m
+<kd>
+$B;XDj$7$?(B region $B$r(B multipart/mixed $B$H$7$F0O$_$^$9!#(B
+</kd>
+<kt>C-c C-x d
+<kd>
+$B;XDj$7$?(B region $B$r(B multipart/digest $B$H$7$F0O$_$^$9!#(B
+</kd>
+<kt>C-c C-x s
+<kd>
+$B;XDj$7$?(B region $B$KEE;R=pL>$r9T$$$^$9!#(B(<ref node="PGP">)
+</kd>
+<kt>C-c C-x e
+<kd>
+$B;XDj$7$?(B region $B$r0E9f2=$7$^$9!#(B(<ref node="PGP">)
+<kt>C-c C-x q
+<kd>
+$B;XDj$7$?(B region $BFb$N(B tag $B$rL58z$K$7!"$=$N(B tag $B$rJ8;zNs$H$7$FMxMQ$G$-$k(B
+$B$h$&$K$7$^$9!#!J8=:_$NHG$G$O$&$^$/F/$+$J$$$3$H$,$"$j$^$9!#$^$?!"EE;R=p(B
+$BL>$H$NJ;MQ$K4X$7$F$bIT40A4$G$9!K(B
+</kl>
+
+
+<h1> mime/editor-mode $B$K$*$1$k$=$NB>$NA`:n(B
+<node> other operations of mime/editor-mode
+<p>
+mime/editor-mode $B$K$*$1$k$=$NB>$NA`:n$r@bL@$7$^$9!#(B
+
+<kl>
+<kt>C-c C-c
+<kd>
+$BJT=8Cf$N(B message $B$rAw?.$7$^$9!#(B
+</kd>
+<kt>C-c C-x C-p
+<kd>
+$BJT=8Cf$N(B message $B$r(B preview $B$7$^$9!#(B(<ref file="tm-view-ja"
+node="mime/viewer-mode">)
+</kd>
+<kt>C-c C-x C-z
+<kd>
+$BJT=8Cf$N(B message $B$rAw?.$9$k$3$H$J$/!"(Bmime/editor-mode $B$r=*N;$7$^$9!#(B
+</kd>
+<kt>C-c C-x ?
+<kd>
+help message $B$rI=<($7$^$9!#(B
+</kd>
+<kt>C-c C-x /
+<kd>
+$BBg$-$J(B message $B$rAw?.$9$k>l9g$K(B message/partial $B7A<0$K<+F0J,3d2DG=$H$9(B
+$B$k$+$I$&$+$r7h$a$^$9!#(B
+</kd>
+<kt>C-c C-x 7
+<kd>
+<dref>transfer level</dref> $B$r(B <dref file="tm-ja">7bit</dref> $B$K$7$^$9!#(B
+</kd>
+<kt>C-c C-x 8
+<kd>
+<dref>transfer level</dref> $B$r(B <dref file="tm-ja">8bit</dref> $B$K$7$^$9!#(B
+</kd>
+<kt>C-c C-x v
+<kd>
+message $BA4BN$rEE;R=pL>$9$k$+$I$&$+$r7h$a$^$9!#(B(<ref node="PGP">)
+</kd>
+<kt>C-c C-x h
+<kd>
+message $BA4BN$r0E9f2=$9$k$+$I$&$+$r7h$a$^$9!#(B(<ref node="PGP">)
+<kt>C-c C-x ?
+<kd>
+help message $B$rI=<($7$^$9!#(B
+</kl>
+
+
+<h1> transfer level
+<node> transfer level
+<p>
+message $B$KA^F~$9$k(B data $B$O(B <dref file="tm-ja">7bit</dref> $B$J$$$7(B <dref
+file="tm-ja">8bit</dref> $B$b$7$/$O(B <dref file="tm-ja">binary</dref> $B$G(B
+$BI=8=$9$k$3$H$,$G$-$^$9!#(B
+<p>
+$B$h$C$F!"(B7bit $B$7$+DL$5$J$$(B <dref file="tm-ja">MTA</dref> $B$r7PM3$9$k>l9g!"(B
+7bit $B$N(B data $B$O$=$N$^$^$GAw$l$^$9$,!"(B8bit $B$d(B binary $B$N(B data $B$O(B 7bit $B$K(B
+$BJQ49$7$J$1$l$P$J$j$^$;$s!#(B
+<p>
+$BF1MM$K!"(B8bit $B$7$+DL$5$J$$(B MTA $B$r7PM3$9$k>l9g!"(B7bit $B$d(B 8bit $B$N(B data $B$O(B
+$B$=$N$^$^$GAw$l$^$9$,!"(Bbinary $B$N(B data $B$O(B 7bit $B$+(B 8bit $B$KJQ49$7$J$1$l$P(B
+$B$J$j$^$;$s!#(B
+<p>
+<memo>
+EBCDIC $B$7$+DL$5$J$$(B MTA $B$r7PM3$9$k>l9g!"(B7bit $B$N(B data $B$b(B base64 $BEy$GJQ(B
+$B49$7$J$$$HAw$l$^$;$s$,!";d$O(B EBCDIC $B$N$3$H$^$G$OCN$j$^$;$s!#(B(^_^;
+<p>
+$BF1MM$K!"@)8fJ8;z$rDL$5$J$$(B MTA $B$N$3$H$d(B code $BJQ49$r9T$J$&(B MTA $B$b>C$($F(B
+$B$J$/$J$C$FM_$7$$$G$9!#(B(^_^;
+<p>
+binary $B$bDL$9(B MTA $B$bB8:_$9$k$s$G$7$g$&$,!":#$N$H$3$m$"$^$j0lHLE*$H$O$$(B
+$B$($J$$$G$7$g$&!#(B
+</memo>
+<p>
+<concept>transfer level</concept> $B$H$$$&$N$O$I$NHO0O$N(B data $B$^$GAw$l$k(B
+$B$+$H$$$&$3$H$rI=$9$b$N$G$9!#(Btm-edit $B$O(B 
+<code>mime-editor/transfer-level</code> $B$H$$$&JQ?t$r;}$C$F$*$j!"$3$l$G(B 
+transfer level $B$rI=8=$7$^$9!#(B
+
+
+<defvar name="mime-editor/transfer-level">
+<p>
+transfer level $B$rI=$9!#(B
+<p>
+$B$"$k(B data $B$N(B transfer level $B$,$3$NCM$r1[$($k>l9g!"(B7bit data $B$X$NJQ49$,(B
+$B9T$o$l$k!#(B
+<p>
+$B8=:_$N$H$3$m!"(B7 $B$+(B 8 $B$,M-8z$G$"$k!#4{DjCM$O(B 7 $B$G$"$k!#(B
+<p>
+EBCDIC $B$r(B 5, ASCII printable $B$N$_$r(B 6, binary $B$r(B 9 $B$H$9$k$3$H$r7W2h$7(B
+$B$F$$$k$,!"<BAu$NM=Dj$O$J$$!#(B
+</defvar>
+
+
+<memo>
+transfer level $B$O(B <a node="header">message header</a> $B$K$O4X78$7$J$$!#(B
+RFC 1521 $B$O(B body $B$K$*$$$F!"(B8bit $B$N(B data $B$r;H$($k$h$&$K(B <dref
+file="tm-ja">RFC 822</dref> $B$r3HD%$7$F$$$k$,!"(Bmessage header $B$G$O(B 
+<dref file="tm-ja">us-ascii</dref> $B$N$_$rMQ$$$k$3$H$r5a$a$F$$$k!#(B
+</memo>
+
+
+<h1> header $B$G$NHs(B ASCII $BJ8;z$N;HMQ(B<node> header
+<p>
+<dref file="tm-ja">RFC 1522</dref> $B$G$O(B header $B$GHs(B ASCII $BJ8;z$rI=8=$9(B
+$B$k$?$a$NJ}K!$rDj5A$7$F$$$^$9!#(B
+<p>
+$B$3$l$O(B <a file="tm-ja"
+node="encoded-word"><concept>encoded-word</concept></a> $B$H8F$P$l$k7?<0(B
+$B$G!"(B<dref file="tm-ja">MIME charset</dref> $B$r@k8@$7!"$+$D!"(B<dref
+file="tm-ja">7bit</dref> $B$GI=8=$9$k$3$H$r2DG=$K$7$F$$$^$9!#(B
+
+
+<h2> $B$I$&$7$F$b(B encoded-word $B$r;H$$$?$/$J$$>l9g(B
+<node> evil setting in header
+<p>
+$B$H$3$m$G!"(Bheader $B$G(B encoded-word $B$rMQ$$$:$K@8$GHs(B ASCII $BJ8;zNs$rF~$l$k(B
+$B$N$O4V0c$C$F$$$^$9!#$J$<$J$i!"(BInternet $B$G$O$5$^$6$^$J(B<a file="tm-ja"
+node="Coded character set">$BId9f2=J8;z=89g(B</a>$B$,;H$o$l$F$*$j!"(B<dref
+file="tm-ja">MIME charset</dref> $B$rL@<(E*$K@k8@$7$J$1$l$P$=$l$i$r@53N(B
+$B$K6hJL$9$k$3$H$O$G$-$J$$$+$i$G$9!#(B
+<p>
+$BNc$($P!"(BMIME charset $B$r@k8@$7$J$1$l$P(B <dref
+file="tm-ja">iso-8859-1</dref> $B$H(B <dref file="tm-ja">iso-8859-2</dref> 
+$B$O8+J,$1$,IU$+$J$$$G$7$g$&!#(B
+<p>
+$B$7$+$7$J$,$i!"$I$&$7$F$b(B encoded-word $B$r;H$$$?$/$J$$>l9g$K$O0J2<$NJQ?t(B
+$B$r@_Dj$7$F$/$@$5$$!#(B
+
+
+<defvar name="mime/field-encoding-method-alist">
+<p>
+field $BL>$HId9f2=K!$rI=$9(B symbol $B$NBP$+$i$J$kO"A[(B list.
+<p>
+field $BL>$OJ8;zNs!"$b$7$/$O!"G$0U$NJ8;zNs$rI=$9(B <code>t</code> $B$G$"$k!#(B
+<p>
+$BId9f2=K!$O!"(B<code>nil</code> $B$J$i$PL5JQ49!"(B<code>mime</code> $B$J$i$P(B
+encoded-word, MIME charset $B$rI=$9(B symbol $B$J$i$P$=$NId9f2=J8;z=89g$X(B
+encoded-word $B$rMQ$$$:$KJQ49$9$k$3$H$rI=$9!#(B
+<p>
+field $BL>$OJ8;zNs$+$i8!:w$5$l!";XDj$7$?J8;zNs$,8+IU$+$i$J$1$l$P(B
+<code>t</code> $B$rMQ$$$k!#(B
+<p>
+$B4{DjCM$O(B
+
+<lisp>
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t            . mime)
+ ))
+</lisp>
+
+<noindent>
+$B$G$"$k!#B($A!"(BX-Nsubject field $B$O@8$N(B <dref
+file="tm-ja">iso-2022-jp-2</dref>, Newsgroup $B$OL5JQ49!"$=$l0J30$N(B 
+field $B$O(B encoded-word $B$KJQ49$5$l$k!#(B
+</defvar>
+
+<p>
+$B$^$?!"(Bfield $BKh$G$O$J$/!"Id9f2=J8;z=89gKh$K;XDj$7$?$$>l9g$O!"JQ?t(B 
+<code>mime-eword/charset-encoding-alist</code> $B$rMQ$$$F$/$@$5$$!#(B
+(<ref node="API about header">)
+
+
+<h2> header $B$K4X$9$k4X?t!&JQ?t(B
+<node> API about header
+<p>
+<define type="Command" name="mime/encode-message-header">
+<opts> code-conversion
+<p>
+Current buffer $B$N(B message header $B$KB8:_$9$kHs(B ASCII $BJ8;z$r(B
+network $BI=8=$KJQ49$7$^$9!#(B
+<p>
+optional $B0z?t$N(B <var>code-conversion</var> $B$KHs(B-nil $B$,;XDj$5$l$?>l9g!"(B
+encoded-word $B$K$7$J$$(B field $B$r(B
+<code>mime/field-encoding-method-alist</code> $B$K=>$C$F!"(Bcode $BJQ49$7$^(B
+$B$9!#(B
+</define>
+
+<defun name="mime/encode-field">
+<args> string
+<p>
+<var>string</var> $B$r(B field $B$H$7$F(B encoded-word $B$KJQ49$7$^$9!#(B
+<p>
+$BD9$$9T$O(B RFC 822 $B$K=>$C$F@^JV$5$l$^$9!#(B
+</defun>
+
+<defun name="mime-eword/encode-string">
+<args> string <opts> column mode
+<p>
+<var>string</var> $B$r(B encoded-word $B$KJQ49$7$^$9!#(B
+<p>
+$BD9$$9T$O(B RFC 822 $B$K=>$C$F@^JV$5$l$^$9!#(B
+<p>
+<var>column</var> $B$O$3$NJ8;zNs$,2?7eL\$+$i;O$^$C$F$$$k$+$r;XDj$7$^$9!#(B
+$B4{DjCM$O(B 0 $B$G$9!#(B
+<p>
+<var>mode</var> $B$O$3$NJ8;zNs$,$I$&$$$&ItJ,$G;H$o$l$F$$$k$+$r<($7$^$9!#(B
+$B;XDj$G$-$kCM$H$7$F$O(B <code>text</code>, <code>comment</code>,
+<code>phrase</code> $B$,$"$j$^$9!#4{DjCM$O(B <code>phrase</code> $B$G$9!#(B
+</defun>
+
+<defvar name="mime-eword/charset-encoding-alist">
+<p>
+MIME charset $B$rI=$9(B symbol $B$H(B nil, $B$b$7$/$O!"(B<code>"B"</code> $B$+(B
+<code>"Q"</code> $B$NJ8;zNs$NBP$+$i$J$kO"A[(B list.
+<p>
+<code>nil</code> $B$O$=$N(B MIME charset $B$r(B encoded-word $B$K$7$J$$$3$H$rI=(B
+$B$7!"(B<code>"B"</code> $B$O$=$N(B MIME charset $B$r(B B $BJ}<0$N(B encoded-word $B$K$9(B
+$B$k$3$H$rI=$7!"(B<code>"Q"</code> $B$O$=$N(B MIME charset $B$r(B Q $BJ}<0$N(B 
+encoded-word $B$K$9$k$3$H$rI=$9!#(B
+</defvar>
+
+
+<h1> PGP
+<node> PGP
+<p>
+tm-edit $B$G$O(B <a file="tm-ja"
+node="PGP/MIME"><concept>PGP/MIME</concept></a> (RFC 2015) $B$*$h$S(B <a
+file="tm-ja" node="PGP-kazu"><concept>PGP-kazu</concept></a>
+(draft-kazu-pgp-mime-00.txt) $B$K$h$k0E9f2=!&EE;R=pL>!&8x3+80$NA^F~5!G=(B
+$B$rMxMQ$9$k$3$H$,$G$-$^$9!#(B
+<p>
+$BC"$7!"$3$N5!G=$rMxMQ$9$k$K$O(B <a file="mailcrypt">Mailcrypt package</a> 
+$B$H(B pgp command $B$,I,MW$G$9!#(B
+<p>
+$B$^$?!"JQ?t(B <code>mimed-editor/signing-type</code> $B$HJQ?t(B 
+<code>mime-editor/encrypting-type</code> $B$K(B <code>pgp-elkins</code> $B$+(B 
+<code>pgp-kazu</code> $B$rBeF~$7$F$/$@$5$$!#(B
+<p>
+<code>pgp-elkins</code> $B$r;XDj$7$?>l9g(B PGP/MIME $B$,;H$o$l!"(B
+<code>pgp-kazu</code> $B$r;XDj$7$?>l9g(B PGP-kazu $B$,;H$o$l$^$9!#(B
+
+
+<defvar name="mimed-editor/signing-type">
+<p>
+PGP $B$G$NEE;R=qL>$N7A<0$r;XDj$7$^$9!#(B
+<p>
+<code>pgp-elkins</code> $B$+(B <code>pgp-kazu</code> $B$r;XDj$7$F$/$@$5$$!#(B
+<p>
+$B4{DjCM$O(B <code>nil</code> $B$G$9!#(B
+</defvar>
+
+<defvar name="mime-editor/encrypting-type">
+<p>
+PGP $B$G$N0E9f2=$N7A<0$r;XDj$7$^$9!#(B
+<p>
+<code>pgp-elkins</code> $B$+(B <code>pgp-kazu</code> $B$r;XDj$7$F$/$@$5$$!#(B
+<p>
+$B4{DjCM$O(B <code>nil</code> $B$G$9!#(B
+</defvar>
+
+
+<h1> $B35G0:w0z(B
+<node> Concept Index
+
+<cindex>
+
+
+<h1> $B4X?t:w0z(B
+<node> Function Index
+
+<findex>
+
+
+<h1> $BJQ?t:w0z(B
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-edit-ja.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,473 @@
+\input texinfo.tex
+@setfilename tm-edit-ja.info
+@settitle{tm-edit 7.90 $B@bL@=q!JF|K\8lHG!K(B}
+@titlepage
+@title tm-edit 7.90 $B@bL@=q!JF|K\8lHG!K(B
+@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-edit 7.90 $B@bL@=q!JF|K\8lHG!K(B
+
+@ifinfo
+
+This file documents tm-edit, a MIME composer for GNU Emacs.@refill
+
+GNU Emacs $BMQ$N(B MIME composer $B$G$"$k(B `tm-edit' $B$K$D$$$F@bL@$7$^$9!#(B
+@end ifinfo
+
+@menu
+* Introduction::                What is tm-edit?
+* mime/editor-mode::            
+* single-part operations::      single-part $B$KBP$9$kA`:n(B
+* enclosure operation::         enclosure $B$KBP$9$kA`:n(B
+* other operations of mime/editor-mode::  mime/editor-mode $B$K$*$1$k$=$NB>$NA`:n(B
+* transfer level::              
+* header::                      header $B$G$NHs(B ASCII $BJ8;z$N;HMQ(B
+* PGP::                         
+* Concept Index::               $B35G0:w0z(B
+* Function Index::              $B4X?t:w0z(B
+* Variable Index::              $BJQ?t:w0z(B
+@end menu
+
+@node Introduction, mime/editor-mode, Top, Top
+@chapter What is tm-edit?
+
+@cindex{tm-edit}@strong{tm-edit} $B$O(B GNU Emacs $B$GF0:n$9$kHFMQE*$J(B MIME
+composer $B$G$9!#(B@refill
+
+tm-edit $B$O(B GNUS $B$N:n<T$H$7$F$bM-L>$J(B $BG_ED(B $B@/?.(B
+<umerin@@mse.kyutech.ac.jp> $B$5$s$,=q$+$l$?(B 
+@file{mime.el} $B$r4p$K(B
+
+@itemize @bullet
+@item
+RFC 1521/1522 $B2=(B
+@item
+Content-Disposition field (@ref{(tm-ja)Content-Disposition}) (RFC 1806) 
+$B$NMxMQ(B
+@item
+$BF~$l;R$K$J$C$?(B multi-part message (@ref{(tm-ja)multipart})
+@item
+PGP (@ref{PGP})
+@item
+file type $B$K$*$1$k(B parameter $B$N<+F0;XDj$N6/2=(B
+@end itemize
+
+@noindent
+$B$J$I$N2~NI$r9T$$$^$7$?!#(B
+
+tm-MUA (@ref{(tm-ja)tm-MUA}) $B$G$O(B tm-edit $B$r;H$&$3$H$K$h$j!"MF0W$K(B MIME
+message $B$r:n@.$G$-$^$9!#(B
+
+
+@node mime/editor-mode, single-part operations, Introduction, Top
+@chapter mime/editor-mode
+
+@cindex{mime/editor-mode}@strong{mime/editor-mode} $B$O(B MIME message $B$r:n(B
+$B@.$9$k$?$a$N(B minor mode $B$G$9!#$3$N(B mode $B$G$O(B @cindex{tag}@strong{tag} $B$r(B
+$B;H$C$F$5$^$6$^$J<oN`$N(B data $B$rI=8=$7!"J#?t$NItJ,$+$i$J$k(B message
+(@ref{(tm-ja)multipart}) $B$rJT=8$9$k$3$H$r2DG=$K$7$F$$$^$9!#(B@refill
+
+tag $B$K$O(B
+
+@itemize @bullet
+@item
+ single-part tag
+@item
+ multi-part tag
+@end itemize
+
+@noindent
+$B$N#2$D$,$"$j$^$9!#(B
+
+single-part tag $B$O(B single part $B$rI=8=$9$k$?$a$N(B tag $B$G!"(B@refill
+
+@example
+        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+        OPTIONAL-FIELDS]
+@end example
+
+@noindent
+$B$H$$$&$h$&$J7A$r$7$F$$$^$9!#(B
+
+TYPE/SUBTYPE $B$*$h$S(B PARAMETERS $B$O(B Content-Type field
+(@ref{(tm-ja)Content-Type field}) $B$N(B type/subtype $B$*$h$S(B parameters $B$rI=(B
+$B$7$^$9!#(BTYPE/SUBTYPE $B$OI,?\$G$"$j!"(BPARAMETERS $B$O>JN,2D$G$9!#(B@refill
+
+ENCODING $B$O(B Content-Transfer-Encoding field $B$rI=$7$^$9!#$3$l$b>JN,2D$G$9!#(B
+@refill
+
+OPTIONAL-FIELDS $B$O(B Content-Type, Content-Transfer-Encoding $B0J30$N(B field 
+$B$r=q$/$?$a$NItJ,$G!">JN,2D$G$9!#(B@refill
+
+multi-part tag $B$O(B multi part (@ref{(tm-ja)multipart}) $B$rI=8=$9$k$?$a$N(B 
+tag $B$G!"(B@refill
+
+@example
+        --<<TYPE>>-@@@{
+@end example
+
+@noindent
+$B$H$$$&7A$N(B @cindex{multi-part $B3+;O(B tag}@strong{multi-part $B3+;O(B tag} $B$H8F$P$l$k(B multi
+part $B$N3+;O$r<($9(B tag $B$H(B
+
+@example
+        --@@@}-<<TYPE>>
+@end example
+
+@noindent
+$B$H$$$&7A$N(B @cindex{multi-part $B=*N;(B tag}@strong{multi-part $B=*N;(B tag} $B$H8F$P$l$k(B multi
+part $B$N=*N;$r<($9(B tag $B$,$"$j$^$9!#(B
+
+$B$^$?!"(Bmulti-part $B3+;O(B tag $B$H(B multi-part $B=*N;(B tag $B$G0O$^$l$?ItJ,$r(B 
+@cindex{enclosure}@strong{enclosure} $B$H8F$S$^$9!#(B
+
+
+@node single-part operations, enclosure operation, mime/editor-mode, Top
+@chapter single-part $B$KBP$9$kA`:n(B
+
+single-part $B$r:n$k$?$a$NA`:n$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B
+
+@table @kbd
+@item @key{C-c C-x C-t}
+text part $B$rI=$9(B single-part tag $B$rA^F~$7$^$9!#(B
+
+@item @key{C-c C-x C-i}
+file $B$r(B MIME part $B$H$7$FE:IU$7$^$9!#(B
+
+@item @key{C-c C-x C-e}
+external part $B$rA^F~$7$^$9!#(B
+
+@item @key{C-c C-x C-v}
+@kbd{C-g} $B$,2!$5$l$k$^$GO?2;$r9T$$!"2;@<(B part $B$rA^F~$7$^$9!#!J;H(B
+$BMQ$G$-$J$$>l9g$,$"$j$^$9!K(B
+
+@item @key{C-c C-x C-y}
+$B8=:_I=<(Cf$N(B (mail or news) message $B$rA^F~$7$^$9!#!J<B:]$NF0:n$O;HMQ$7(B
+$B$F$$$k(B MUA $B$K0MB8$7$^$9!K(B
+
+@item @key{C-c C-x C-m}
+mail message $B$rA^F~$7$^$9!#(B
+
+@item @key{C-c C-x C-w}, @key{C-c C-x C-s}
+signature $B$rA^F~$7$^$9!#(B
+
+@item @key{C-c C-x C-k}
+PGP (@ref{PGP}) $B$N8x3+80$rA^F~$7$^$9!#(B
+
+@item @key{C-c C-x t}
+$BG$0U$N(B single-part tag $B$rA^F~$7$^$9!#(B
+
+@end table
+
+
+
+@node enclosure operation, other operations of mime/editor-mode, single-part operations, Top
+@chapter enclosure $B$KBP$9$kA`:n(B
+
+enclosure $B$r:n$k$?$a$NA`:n$H$7$F$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B
+
+@table @kbd
+@item @key{C-c C-x a}
+$B;XDj$7$?(B region $B$r(B multipart/alternative $B$H$7$F0O$_$^$9!#(B
+
+@item @key{C-c C-x p}
+$B;XDj$7$?(B region $B$r(B multipart/parallel $B$H$7$F0O$_$^$9!#(B
+
+@item @key{C-c C-x m}
+$B;XDj$7$?(B region $B$r(B multipart/mixed $B$H$7$F0O$_$^$9!#(B
+
+@item @key{C-c C-x d}
+$B;XDj$7$?(B region $B$r(B multipart/digest $B$H$7$F0O$_$^$9!#(B
+
+@item @key{C-c C-x s}
+$B;XDj$7$?(B region $B$KEE;R=pL>$r9T$$$^$9!#(B(@ref{PGP})
+
+@item @key{C-c C-x e}
+$B;XDj$7$?(B region $B$r0E9f2=$7$^$9!#(B(@ref{PGP})
+
+@item @key{C-c C-x q}
+$B;XDj$7$?(B region $BFb$N(B tag $B$rL58z$K$7!"$=$N(B tag $B$rJ8;zNs$H$7$FMxMQ$G$-$k(B
+$B$h$&$K$7$^$9!#!J8=:_$NHG$G$O$&$^$/F/$+$J$$$3$H$,$"$j$^$9!#$^$?!"EE;R=p(B
+$BL>$H$NJ;MQ$K4X$7$F$bIT40A4$G$9!K(B
+
+@end table
+
+
+
+@node other operations of mime/editor-mode, transfer level, enclosure operation, Top
+@chapter mime/editor-mode $B$K$*$1$k$=$NB>$NA`:n(B
+
+mime/editor-mode $B$K$*$1$k$=$NB>$NA`:n$r@bL@$7$^$9!#(B
+
+@table @kbd
+@item @key{C-c C-c}
+$BJT=8Cf$N(B message $B$rAw?.$7$^$9!#(B
+
+@item @key{C-c C-x C-p}
+$BJT=8Cf$N(B message $B$r(B preview $B$7$^$9!#(B(@ref{(tm-view-ja)mime/viewer-mode})
+
+@item @key{C-c C-x C-z}
+$BJT=8Cf$N(B message $B$rAw?.$9$k$3$H$J$/!"(Bmime/editor-mode $B$r=*N;$7$^$9!#(B
+
+@item @key{C-c C-x ?}
+help message $B$rI=<($7$^$9!#(B
+
+@item @key{C-c C-x /}
+$BBg$-$J(B message $B$rAw?.$9$k>l9g$K(B message/partial $B7A<0$K<+F0J,3d2DG=$H$9(B
+$B$k$+$I$&$+$r7h$a$^$9!#(B
+
+@item @key{C-c C-x 7}
+transfer level (@ref{transfer level}) $B$r(B 7bit (@ref{(tm-ja)7bit}) $B$K$7$^(B
+$B$9!#(B
+
+@item @key{C-c C-x 8}
+transfer level (@ref{transfer level}) $B$r(B 8bit (@ref{(tm-ja)8bit}) $B$K$7$^(B
+$B$9!#(B
+
+@item @key{C-c C-x v}
+message $BA4BN$rEE;R=pL>$9$k$+$I$&$+$r7h$a$^$9!#(B(@ref{PGP})
+
+@item @key{C-c C-x h}
+message $BA4BN$r0E9f2=$9$k$+$I$&$+$r7h$a$^$9!#(B(@ref{PGP})
+
+@item @key{C-c C-x ?}
+help message $B$rI=<($7$^$9!#(B
+
+@end table
+
+
+
+@node transfer level, header, other operations of mime/editor-mode, Top
+@chapter transfer level
+
+message $B$KA^F~$9$k(B data $B$O(B 7bit (@ref{(tm-ja)7bit}) $B$J$$$7(B 8bit
+(@ref{(tm-ja)8bit}) $B$b$7$/$O(B binary (@ref{(tm-ja)binary}) $B$GI=8=$9$k$3$H(B
+$B$,$G$-$^$9!#(B@refill
+
+$B$h$C$F!"(B7bit $B$7$+DL$5$J$$(B MTA (@ref{(tm-ja)MTA}) $B$r7PM3$9$k>l9g!"(B7bit $B$N(B 
+data $B$O$=$N$^$^$GAw$l$^$9$,!"(B8bit $B$d(B binary $B$N(B data $B$O(B 7bit $B$KJQ49$7$J$1(B
+$B$l$P$J$j$^$;$s!#(B@refill
+
+$BF1MM$K!"(B8bit $B$7$+DL$5$J$$(B MTA $B$r7PM3$9$k>l9g!"(B7bit $B$d(B 8bit $B$N(B data $B$O$=(B
+$B$N$^$^$GAw$l$^$9$,!"(Bbinary $B$N(B data $B$O(B 7bit $B$+(B 8bit $B$KJQ49$7$J$1$l$P$J$j(B
+$B$^$;$s!#(B@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+EBCDIC $B$7$+DL$5$J$$(B MTA $B$r7PM3$9$k>l9g!"(B7bit $B$N(B data $B$b(B base64 $BEy$GJQ(B
+$B49$7$J$$$HAw$l$^$;$s$,!";d$O(B EBCDIC $B$N$3$H$^$G$OCN$j$^$;$s!#(B(^_^;
+
+$BF1MM$K!"@)8fJ8;z$rDL$5$J$$(B MTA $B$N$3$H$d(B code $BJQ49$r9T$J$&(B MTA $B$b>C$($F$J(B
+$B$/$J$C$FM_$7$$$G$9!#(B(^_^;@refill
+
+binary $B$bDL$9(B MTA $B$bB8:_$9$k$s$G$7$g$&$,!":#$N$H$3$m$"$^$j0lHLE*$H$O$$$((B
+$B$J$$$G$7$g$&!#(B
+@end quotation
+
+@cindex{transfer level}@strong{transfer level} $B$H$$$&$N$O$I$NHO0O$N(B data $B$^$GAw$l$k(B
+$B$+$H$$$&$3$H$rI=$9$b$N$G$9!#(Btm-edit $B$O(B 
+@code{mime-editor/transfer-level} $B$H$$$&JQ?t$r;}$C$F$*$j!"$3$l$G(B 
+transfer level $B$rI=8=$7$^$9!#(B
+
+
+@defvar mime-editor/transfer-level
+
+transfer level $B$rI=$9!#(B@refill
+
+$B$"$k(B data $B$N(B transfer level $B$,$3$NCM$r1[$($k>l9g!"(B7bit data $B$X$NJQ49$,9T(B
+$B$o$l$k!#(B@refill
+
+$B8=:_$N$H$3$m!"(B7 $B$+(B 8 $B$,M-8z$G$"$k!#4{DjCM$O(B 7 $B$G$"$k!#(B@refill
+
+EBCDIC $B$r(B 5, ASCII printable $B$N$_$r(B 6, binary $B$r(B 9 $B$H$9$k$3$H$r7W2h$7$F(B
+$B$$$k$,!"<BAu$NM=Dj$O$J$$!#(B
+@end defvar
+
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+transfer level $B$O(B message header (@ref{header}) $B$K$O4X78$7$J$$!#(BRFC 1521 
+$B$O(B body $B$K$*$$$F!"(B8bit $B$N(B data $B$r;H$($k$h$&$K(B RFC 822 (@ref{(tm-ja)RFC
+822}) $B$r3HD%$7$F$$$k$,!"(Bmessage header $B$G$O(B us-ascii
+(@ref{(tm-ja)us-ascii}) $B$N$_$rMQ$$$k$3$H$r5a$a$F$$$k!#(B
+@end quotation
+
+
+
+@node header, PGP, transfer level, Top
+@chapter header $B$G$NHs(B ASCII $BJ8;z$N;HMQ(B
+
+RFC 1522 (@ref{(tm-ja)RFC 1522}) $B$G$O(B header $B$GHs(B ASCII $BJ8;z$rI=8=$9$k$?(B
+$B$a$NJ}K!$rDj5A$7$F$$$^$9!#(B@refill
+
+$B$3$l$O(B @cindex{encoded-word}@strong{encoded-word}
+(@ref{(tm-ja)encoded-word}) $B$H8F$P$l$k7?<0$G!"(BMIME charset
+(@ref{(tm-ja)MIME charset}) $B$r@k8@$7!"$+$D!"(B7bit (@ref{(tm-ja)7bit}) $B$G(B
+$BI=8=$9$k$3$H$r2DG=$K$7$F$$$^$9!#(B
+
+
+@menu
+* evil setting in header::      $B$I$&$7$F$b(B encoded-word $B$r;H$$$?$/$J$$>l9g(B
+* API about header::            header $B$K4X$9$k4X?t!&JQ?t(B
+@end menu
+
+@node evil setting in header, API about header, header, header
+@section $B$I$&$7$F$b(B encoded-word $B$r;H$$$?$/$J$$>l9g(B
+
+$B$H$3$m$G!"(Bheader $B$G(B encoded-word $B$rMQ$$$:$K@8$GHs(B ASCII $BJ8;zNs$rF~$l$k$N(B
+$B$O4V0c$C$F$$$^$9!#$J$<$J$i!"(BInternet $B$G$O$5$^$6$^$JId9f2=J8;z=89g(B
+(@ref{(tm-ja)Coded character set})$B$,;H$o$l$F$*$j!"(BMIME charset
+(@ref{(tm-ja)MIME charset}) $B$rL@<(E*$K@k8@$7$J$1$l$P$=$l$i$r@53N$K6hJL$9(B
+$B$k$3$H$O$G$-$J$$$+$i$G$9!#(B@refill
+
+$BNc$($P!"(BMIME charset $B$r@k8@$7$J$1$l$P(B iso-8859-1
+(@ref{(tm-ja)iso-8859-1}) $B$H(B iso-8859-2 (@ref{(tm-ja)iso-8859-2}) $B$O8+J,(B
+$B$1$,IU$+$J$$$G$7$g$&!#(B@refill
+
+$B$7$+$7$J$,$i!"$I$&$7$F$b(B encoded-word $B$r;H$$$?$/$J$$>l9g$K$O0J2<$NJQ?t(B
+$B$r@_Dj$7$F$/$@$5$$!#(B
+
+
+@defvar mime/field-encoding-method-alist
+
+field $BL>$HId9f2=K!$rI=$9(B symbol $B$NBP$+$i$J$kO"A[(B list.@refill
+
+field $BL>$OJ8;zNs!"$b$7$/$O!"G$0U$NJ8;zNs$rI=$9(B @code{t} $B$G$"$k!#(B@refill
+
+$BId9f2=K!$O!"(B@code{nil} $B$J$i$PL5JQ49!"(B@code{mime} $B$J$i$P(Bencoded-word,
+MIME charset $B$rI=$9(B symbol $B$J$i$P$=$NId9f2=J8;z=89g$X(Bencoded-word $B$rMQ$$(B
+$B$:$KJQ49$9$k$3$H$rI=$9!#(B@refill
+
+field $BL>$OJ8;zNs$+$i8!:w$5$l!";XDj$7$?J8;zNs$,8+IU$+$i$J$1$l$P(B@code{t} 
+$B$rMQ$$$k!#(B@refill
+
+$B4{DjCM$O(B
+
+@lisp
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t            . mime)
+ ))
+@end lisp
+
+@noindent
+$B$G$"$k!#B($A!"(BX-Nsubject field $B$O@8$N(B iso-2022-jp-2
+(@ref{(tm-ja)iso-2022-jp-2}), Newsgroup $B$OL5JQ49!"$=$l0J30$N(B field $B$O(B 
+encoded-word $B$KJQ49$5$l$k!#(B
+@end defvar
+
+
+$B$^$?!"(Bfield $BKh$G$O$J$/!"Id9f2=J8;z=89gKh$K;XDj$7$?$$>l9g$O!"JQ?t(B 
+@code{mime-eword/charset-encoding-alist} $B$rMQ$$$F$/$@$5$$!#(B
+(@ref{API about header})
+
+
+@node API about header,  , evil setting in header, header
+@section header $B$K4X$9$k4X?t!&JQ?t(B
+
+@deffn{Command} mime/encode-message-header &optional  code-conversion
+
+Current buffer $B$N(B message header $B$KB8:_$9$kHs(B ASCII $BJ8;z$r(Bnetwork $BI=8=$K(B
+$BJQ49$7$^$9!#(B@refill
+
+optional $B0z?t$N(B @var{code-conversion} $B$KHs(B-nil $B$,;XDj$5$l$?>l9g!"(B
+encoded-word $B$K$7$J$$(B field $B$r(B@code{mime/field-encoding-method-alist} $B$K(B
+$B=>$C$F!"(Bcode $BJQ49$7$^$9!#(B
+@end deffn
+
+
+@defun mime/encode-field string
+
+@var{string} $B$r(B field $B$H$7$F(B encoded-word $B$KJQ49$7$^$9!#(B@refill
+
+$BD9$$9T$O(B RFC 822 $B$K=>$C$F@^JV$5$l$^$9!#(B
+@end defun
+
+
+@defun mime-eword/encode-string string  &optional  column mode
+
+@var{string} $B$r(B encoded-word $B$KJQ49$7$^$9!#(B@refill
+
+$BD9$$9T$O(B RFC 822 $B$K=>$C$F@^JV$5$l$^$9!#(B@refill
+
+@var{column} $B$O$3$NJ8;zNs$,2?7eL\$+$i;O$^$C$F$$$k$+$r;XDj$7$^$9!#4{DjCM(B
+$B$O(B 0 $B$G$9!#(B@refill
+
+@var{mode} $B$O$3$NJ8;zNs$,$I$&$$$&ItJ,$G;H$o$l$F$$$k$+$r<($7$^$9!#;XDj$G(B
+$B$-$kCM$H$7$F$O(B @code{text}, @code{comment}, @code{phrase} $B$,$"$j$^$9!#4{(B
+$BDjCM$O(B @code{phrase} $B$G$9!#(B
+@end defun
+
+
+@defvar mime-eword/charset-encoding-alist
+
+MIME charset $B$rI=$9(B symbol $B$H(B nil, $B$b$7$/$O!"(B@code{"B"} $B$+(B@code{"Q"} $B$N(B
+$BJ8;zNs$NBP$+$i$J$kO"A[(B list.@refill
+
+@code{nil} $B$O$=$N(B MIME charset $B$r(B encoded-word $B$K$7$J$$$3$H$rI=$7!"(B
+@code{"B"} $B$O$=$N(B MIME charset $B$r(B B $BJ}<0$N(B encoded-word $B$K$9$k$3$H$rI=$7!"(B
+@code{"Q"} $B$O$=$N(B MIME charset $B$r(B Q $BJ}<0$N(B encoded-word $B$K$9$k$3$H$rI=$9!#(B
+@end defvar
+
+
+
+@node PGP, Concept Index, header, Top
+@chapter PGP
+
+tm-edit $B$G$O(B @cindex{PGP/MIME}@strong{PGP/MIME} (@ref{(tm-ja)PGP/MIME})
+(RFC 2015) $B$*$h$S(B @cindex{PGP-kazu}@strong{PGP-kazu}
+(@ref{(tm-ja)PGP-kazu}) (draft-kazu-pgp-mime-00.txt) $B$K$h$k0E9f2=!&EE;R(B
+$B=pL>!&8x3+80$NA^F~5!G=$rMxMQ$9$k$3$H$,$G$-$^$9!#(B@refill
+
+$BC"$7!"$3$N5!G=$rMxMQ$9$k$K$O(B Mailcrypt package (@ref{(mailcrypt)}) $B$H(B 
+pgp command $B$,I,MW$G$9!#(B@refill
+
+$B$^$?!"JQ?t(B @code{mimed-editor/signing-type} $B$HJQ?t(B 
+@code{mime-editor/encrypting-type} $B$K(B @code{pgp-elkins} $B$+(B 
+@code{pgp-kazu} $B$rBeF~$7$F$/$@$5$$!#(B@refill
+
+@code{pgp-elkins} $B$r;XDj$7$?>l9g(B PGP/MIME $B$,;H$o$l!"(B
+@code{pgp-kazu} $B$r;XDj$7$?>l9g(B PGP-kazu $B$,;H$o$l$^$9!#(B
+
+
+@defvar mimed-editor/signing-type
+
+PGP $B$G$NEE;R=qL>$N7A<0$r;XDj$7$^$9!#(B@refill
+
+@code{pgp-elkins} $B$+(B @code{pgp-kazu} $B$r;XDj$7$F$/$@$5$$!#(B@refill
+
+$B4{DjCM$O(B @code{nil} $B$G$9!#(B
+@end defvar
+
+
+@defvar mime-editor/encrypting-type
+
+PGP $B$G$N0E9f2=$N7A<0$r;XDj$7$^$9!#(B@refill
+
+@code{pgp-elkins} $B$+(B @code{pgp-kazu} $B$r;XDj$7$F$/$@$5$$!#(B@refill
+
+$B4{DjCM$O(B @code{nil} $B$G$9!#(B
+@end defvar
+
+
+
+@node Concept Index, Function Index, PGP, Top
+@chapter $B35G0:w0z(B
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter $B4X?t:w0z(B
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter $BJQ?t:w0z(B
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-en.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,1582 @@
+<!doctype sinfo system>
+<!-- $Id: tm-en.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm 7.90 Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/15
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm, a MIME package for GNU Emacs.
+</abstract>
+
+<h1> What is tm?
+<node> Introduction
+<p>
+The tm package is a set of modules to enjoy MIME on GNU Emacs.  Using
+tm, you can
+
+<ul>
+<li> playback or view the MIME messages using tm-view
+<li> compose MIME message using tm-edit
+<li> use the enhanced MIME features with mh-e, GNUS, Gnus, RMAIL and VM
+</ul>
+
+<noindent>
+and more.
+<p>
+Please read following about each topics:
+
+<ul>
+<li><a file="gnus-mime-en">tm-MUA for Gnus</a>
+<li><a file="tm-gnus-en">tm-MUA for GNUS</a>
+<li><a file="tm-mh-e-en">tm-MUA for mh-e</a>
+<li><a file="tm-view-en">mime/viewer-mode</a>
+<li><a file="tm-edit-en">mime/editor-mode</a>
+</ul>
+
+
+<h2> Glossary
+<node> Glossary
+
+<h3> 7bit
+<node> 7bit
+<p>
+<concept>7bit</concept> means any integer between 0 .. 127.
+<p>
+Any data represented by 7bit integers is called <concept>7bit
+data</concept>.
+<p>
+Textual string consisted of Control characters between 0 .. 31 and
+127, and space represented by 32, and graphic characters between 33
+.. 236 are called <concept>7bit (textual) string</concept>.
+<p>
+Traditional Internet <a node="MTA">MTA</a> can translate 7bit data, so
+it is no need to translate by <a
+node="Quoted-Printable">Quoted-Printable</a> or <a
+node="Base64">Base64</a> for 7bit data.
+<p>
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data.  <dref>RFC 821</dref> and <dref>RFC
+2045</dref> require lines in 7bit data must be less than 998 bytes.
+So if a ``7bit data'' has a line more than 999 bytes, it is regarded
+as <dref>binary</dref>.  For example, Postscript file should be
+encoded by Quoted-Printable.
+
+
+<h3> 8bit
+<node> 8bit
+<p>
+<concept>8bit</concept> means any integer between 0 .. 255.
+<p>
+Any data represented by 8bit integers is called <concept>8bit
+data</concept>.
+<p>
+Textual string consisted of Control characters between 0 .. 31, 127,
+and 128 .. 159, and space represented by 32, and graphic characters
+between 33 .. 236 and 160 .. 255 are called <concept>8bit (textual)
+string</concept>.
+<p>
+For example, <dref>iso-8859-1</dref> or <dref>euc-kr</dref> are
+coded-character-set represented by 8bit textual string.
+<p>
+Traditional Internet <a node="MTA">MTA</a> can translate only
+<dref>7bit</dref> data, so if a 8bit data will be translated such MTA,
+it must be encoded by <dref>Quoted-Printable</dref> or
+<dref>Base64</dref>.
+<p>
+However 8bit MTA are increasing today.
+<p>
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data.  <dref>RFC 2045</dref> require lines in 8bit
+data must be less than 998 bytes.  So if a ``8bit data'' has a line
+more than 999 bytes, it is regarded as <dref>binary</dref>, so it must
+be encoded by Base64 or Quoted-Printable.
+
+
+<h3> 94-character set
+<node> 94-character set
+<p>
+<concept>94-character set</concept> is a kind of 1 byte <dref>graphic
+character set</dref>, each characters are in positions 02/01 (33) to
+07/14 (126) or 10/01 (161) to 15/14 (254).  (ex. <dref>ASCII</dref>,
+JIS X0201-Latin)
+
+
+<h3> 96-character set
+<node> 96-character set
+<p>
+<concept>96-character set</concept> is a kind of 1 byte <dref>graphic
+character set</dref>, each characters are in positions 02/00 (32) to
+07/15 (126) or 10/00 (160) to 15/15 (255). (ex. ISO 8859)
+
+
+<h3> 94x94-character set
+<node> 94x94-character set
+<p>
+<concept>94x94-character set</concept> is a kind of 2 byte
+<dref>graphic character set</dref>, each bytes are in positions 02/01
+(33) to 07/14 (126) or 10/01 (161) to 15/14 (254).  (ex. <dref>JIS
+X0208</dref>, <dref>GB 2312</dref>)
+
+
+<h3> ASCII
+<node> ASCII
+<p>
+$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B <dref>94-character set</dref>.
+A-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(B<a node="ISO
+646">ISO 646</a> $B$N0l$D!#(B
+
+<standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
+	      American Standard Code for Information Interchange"
+	      number="ANSI X3.4" year="1986">
+
+
+<h3> Base64
+<node> Base64
+<p>
+<concept>Base64</concept> is a transfer encoding method of
+<dref>MIME</dref> defined in <dref>RFC 2045</dref>.
+<p>
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters.  Encoded characters represent integer
+0 .. 63 or <concept>pad</concept>.  Base64 data must be 4 * n bytes,
+so pad is used to adjust size.
+<p>
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC.  So it is safe even if it is
+translated by non-Internet gateways.
+
+
+<h3> binary
+<node> binary
+<p>
+$BG$0U$N(B byte $BNs$r(B <concept>binary</concept> $B$H8F$V$3$H$K$7$^$9!#(B
+<p>
+<a node="8bit">8bit</a> $B$H0[$J$k$N$O(B data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G(B
+$B$9!#(B
+<p>
+$B$^$?!"9T$N9=B$$,$"$C$F$b!"(B999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b(B binary
+$B$H8F$V$3$H$K$7$^$9!#(B
+<p>
+$B$A$J$_$K!"(B<a node="7bit">7bit</a> $B$d(B 8bit $B$GI=8=$G$-$k(B data $B$O(B binary 
+$B$G$bI=8=$G$-$^$9!#$h$C$F!"(B<concept>binary data</concept> $B$H8@$C$?>l9g!"(B
+$BG$0U$N(B data $B$r;X$9$3$H$,$"$j$^$9!#(B
+
+
+<h3> Graphic Character Set
+<node> graphic character set
+<p>
+<dref>Coded character set</dref> for graphic characters.
+
+
+<h3> cn-gb, gb2312
+<node> cn-gb
+<p>
+$BCf9qBgN&$G$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F(B <dref>ASCII</dref> $B$K(B <dref>GB
+2312</dref> $B$r(B <dref>8bit</dref> $B$G(B<a node="Code extension">$BId9f(B
+$B3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> cn-big5, big5
+<node> cn-big5
+<p>
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+<a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ISO 2022</dref> $B$K4p$+$J$$(B <dref>8bit</dref> $B$N(B
+<dref>coded character set</dref>$B$G(B de-fact standard $B$G(B
+$B$"$k!#(B<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+cf. <report abbrev="BIG5" author="Institute for Information Industry"
+	      title-en="Chinese Coded Character Set in Computer"
+	      date="March 1984">
+<p>
+<a node="CNS">CNS 11643-1986</a> $B$HBP1~4X78$,$"$k!#(B
+
+
+<h3> CNS 11643-1992
+<node> CNS
+<p>
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+<a node="Character set">$BJ8;z=89g(B</a>$B!#BfOQ$NI8=`!#8=:_!"(B<a node="94x94
+character set">94$B!_(B94</a> $B$NLL$,Bh#1LL$+$iBh#7LL$^$G$"$k!#(B
+<p>
+<dref>ISO 2022</dref> $B$G$N=*C<J8;z$O!"Bh#1LL$,(B `G', $BBh#2LL$,(B 
+`H', $BBh#3LL$,(B `I', $BBh#4LL$,(B `J', $BBh#5LL$,(B `K', $BBh#6LL$,(B `L', $BBh#7LL$,(B 
+`M' $B$G$"$k!#(B
+
+<standard abbrev="CNS 11643-1992" title-en="Standard Interchange Code
+	      for Generally-Used Chinese Characters" number="CNS
+	      11643" year="1992">
+
+
+<h3> Coded character set, Character code
+<node> coded character set
+<p>
+A set of unambiguous rules that establishes a character set and the
+one-to-one relationship between the characters of the set and their
+bit combinations.
+
+
+<h3> Code extension
+<node> code extension
+<p>
+The techniques for the encoding of characters that are not included in
+the character set of a given code. (ex. <dref>ISO 2022</dref>)
+
+
+<h3> Content-Disposition field
+<node> Content-Disposition
+<p>
+Content $B$NI=<($N;EJ}$d(B file $BL>$rI=8=$9$k$?$a$N(B field. <a
+node="MIME">MIME</a> $B$N3HD%$N#1$D!#(B
+<p>
+<rfc number="1806" type="Experimental" author="E R. Troost and
+	      S. Dorner" title="Communicating Presentation Information
+	      in Internet Messages: The Content-Disposition Header"
+	      date="June 1995">
+
+
+<h3> media type
+<node> media type
+<p>
+<concept>media type</concept> specifies the nature of the data in the
+body of <dref>MIME</dref> <dref>entity</dref>.  It consists of
+<concept>type</> and <concept>subtype</concept>.  It is defined in
+<dref>RFC 2046</dref>.
+<p>
+Currently there are following types:
+
+<ul>
+<li><concept>text</concept>
+</li>
+<li><concept>image</concept>
+</li>
+<li><concept>audio</concept>
+</li>
+<li><concept>video</concept>
+</li>
+<li><concept>application</concept>
+</li>
+<li><a node="multipart"><concept>multipart</concept></a>
+</li>
+<li><concept>message</concept>
+</ul>
+
+<p>
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, <dref>multipart/mixed</dref>,
+<dref>text/plain</dref>, video/mpeg...
+<p>
+You can refer registered media types at <a
+href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
+TYPES</a>.
+<p>
+In addition, you can use private type or subtype using
+<concept>x-token</concept>, which as the prefix `x-'.  However you can
+not use them in public.
+<p>
+<cf node="Content-Type field">
+
+
+<h3> Content-Type field
+<node> Content-Type field
+<p>
+Header field to represent information about body, such as <dref>media
+type</dref>, <dref>MIME charset</dref>.  It is defined in <dref>RFC
+2045</dref>.
+
+<memo>
+<p>
+Historically, Content-Type field was proposed in RFC 1049.  In it,
+Content-Type did not distinguish type and subtype.  However MIME
+parser may be able to accept RFC 1049 based Content-Type as unknown
+type.
+</memo>
+
+<p>
+Content-Type field is defined as following:
+
+<quote>
+``Content-Type'' ``:'' <concept>type</concept> ``/''
+<concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
+</quote>
+
+<p>
+For example:
+
+<quote>
+<verb>
+Content-Type: image/jpeg
+</verb>
+</quote>
+
+<quote>
+<verb>
+Content-Type: text/plain; charset=iso-2022-jp
+</verb>
+</quote>
+
+<memo>
+<p>
+A part does not have content-type field is regarded as
+
+<quote>
+<verb>
+Content-Type: text/plain; charset=us-ascii
+</verb>
+</quote>
+
+<noindent>
+<cf node="us-ascii">
+
+And a part has unknown type/subtype is regarded as
+
+<quote>
+<verb>
+Content-Type: application/octet-stream
+</verb>
+</quote>
+
+</memo>
+
+
+<h3> Emacs
+<node> Emacs
+<p>
+$B$3$3$G$O(B `Emacs' $B$G(B FSF $B$,G[I[$7$F$$$k(B GNU Emacs $B$r;X$7!"(B`emacs' $B$G(B
+GNU Emacs $B$NJQ<o$NAm>N$H$9$k!#(B
+
+
+<h3> encoded-word
+<node> encoded-word
+<p>
+Representation non <dref>ASCII</dref> characters in header.  It
+is defined in <concept>RFC 2047</concept>.
+<p>
+<rfc number="2047" type="Standards Track" author="K. Moore"
+	      title="MIME (Multipurpose Internet Mail Extensions) Part
+	      Three: Message Header Extensions for Non-ASCII Text"
+	      date="November 1996" obsolete="1521,1522,1590">
+
+
+<h3> encapsulation
+<node> encapsulation
+<p>
+<a node="RFC 822">Internet mail</a> $B$rB>$N5-;v$K$^$k$4$HF~$l$kJ}K!!#(B
+<p>
+$BNc$($P!"5-;v$rE>Aw$7$?$j$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="message/rfc822">
+
+
+<h3> euc-kr
+<node> euc-kr
+<p>
+$B4Z9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F(B <dref>ASCII</dref> $B$K(B
+<a node="KS C5601">KS C5601</a> $B$r(B <dref>8bit</dref> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1557">RFC 1557</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+cf. <standard abbrev="euc-kr" org="Korea Industrial Standards
+	      Association" title-en="Hangul Unix Environment"
+	      number="KS C 5861" year="1992">
+
+
+<h3> FTP <node> FTP
+<p>
+Internet $B$G(B file $B$rE>Aw$9$k$?$a$N(B protocol $B$N#1$D!#(BRFC 959 $B$GDj5A$5$l(B
+$B$F$$$k!#(B
+<p>
+<rfc name="FTP" number="959" type="STD 9" author="Postel, J. and
+	      J. Reynolds" title="File Transfer Protocol"
+	      date="October 1985">
+
+
+<h3> GB 2312-1980
+<node> GB 2312
+<p>
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=$9$?$a$N(B 
+<dref>94x94-character set</dref>$B!#Cf9q$N9q2HI8=`!#(B<a node="ISO
+2022">ISO 2022</a> $B$G$N=*C<J8;z$O(B `A'.
+<p>
+$B$3$l$O(B GB $B$K$*$1$k4pK\=8$G$"$k!#(B
+
+<standard abbrev="GB 2312"
+	      title-cn="$B?.B)8r49MQ4A;zJTb{;zId=8(B -- $B4pK\=8(B"
+	      title-en="Code of Chinese Graphic Character Set for
+	      Information Interchange - Primary Set" number="GB 2312"
+	      year="1980">
+
+
+<h3> GB 8565.2-1988
+<node> GB 8565.2
+<p>
+$BCf9q8l$N$?$a$NJd=u(B<a node="Character set">$BJ8;z=89g(B</a>$B!#Cf9q$N9q2HI8=`!#(B
+<a node="GB 2312">GB 2312</a> $B$N6u$-ItJ,$KJd=<$9$k$h$&$KDj5A$5$l$?$i$7(B
+$B$$!#(B
+
+<standard abbrev="GB 8565.2" title-en="Information Processing - Coded
+	      Character Sets for Text Communication - Part 2: Graphic
+	      Characters used with Primary Set" number="GB 8565.2"
+	      year="1988">
+
+
+<h3> hz-gb2312
+<node> hz-gb2312
+<p>
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ASCII</dref> $B$K(B <a node="GB 2312">GB 2312</a> $B$r(B 7bit $B$G(B
+<a node="Code extension">$BId9f3HD%(B</a>$B$7$?$b$N$r(B ASCII printable $B$K$J$k(B
+$B$h$&$K9)IW$7$F$$$k!#(B
+<p>
+RFC 1842, 1843 $B$GDj5A$5$l$F$$$k!#(B
+
+<rfc number="1842" type="Informational" author="Y. Wei, Y. Zhang,
+	      J. Li, J. Ding and Y. Jiang" title="ASCII Printable
+	      Characters-Based Chinese Character Encoding for Internet
+	      Messages" date="August 1995">
+<rfc number="1843" type="Informational" author="F. Lee" title="HZ - A
+	      Data Format for Exchanging Files of Arbitrarily Mixed
+	      Chinese and ASCII characters" date="August 1995">
+
+
+<h3> ISO 2022
+<node> ISO 2022
+<p>
+<a node="Code extension">$BId9f3HD%(B</a>$B$N$?$a$N9q:]I8=`!#(B
+<p>
+$B$3$l$rMQ$$$FJ#?t$N(B<a node="Character set">$BJ8;z=89g(B</a>$B$rAH9g$;$F(B <a
+node="7bit">7bit</a> $B$J$$$7(B <dref>8bit</dref> $B$N(B <a node="Coded
+character set">$BId9f2=J8;z=89g(B</a> $B$r:n$k$3$H$,$G$-$k!#(B
+
+<standard abbrev="ISO 2022" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing:
+	      ISO 7-bit and 8-bit coded character sets: Code extension
+	      techniques" number="ISO/IEC 2022" year="1994">
+
+
+<h3> iso-2022-cn
+<node> iso-2022-cn
+<p>
+$BCf9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F(B <dref>ASCII</dref> $B$K(B 
+<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1, plain
+2</a> $B$r(B <a node="7bit">7bit</a> $B$G(B<a node="Code extension">$BId9f3HD%(B
+</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> iso-2022-cn-ext
+<node> iso-2022-cn-ext
+<p>
+$BCf9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F(B <dref>ASCII</dref> $B$K(B 
+<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1
+.. 7</a>, <a node="ISO-IR-165">ISO-IR-165</a> $BEy$r(B <a
+node="7bit">7bit</a> $B$G(B<a node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<memo>
+MULE 2.3 $B$*$h$S!"8=:_$N(B XEmacs/mule $B$G$O@5$7$/07$&$3$H$O$G$-$J$$!#(B
+<p>
+Emacs/mule $B$G$OMxMQ2DG=$G$"$k!#(B
+</memo>
+
+
+<h3> iso-2022-jp
+<node> iso-2022-jp
+<p>
+$BF|K\8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N0l$D!#(B
+<p>
+$B8E$$(B <dref>ISO 2022</dref> $B$K4p$$$F(B <a
+node="ASCII">ASCII</a>, JIS X0201-Latin, <a node="JIS C6226-1978">JIS
+X0208-1978</a>, <a node="JIS X0208">JIS X0208-1983</a> $B$r@Z$jBX$($k(B <a
+node="7bit">7bit</a> $BJ8;zId9f!#(B
+<p>
+RFC 1468 $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<memo>
+JIS X0208-1996? $B$G$O(B <dref>ISO 2022</dref> $B$HFHN)$KDj5A$5$l(B
+$B$kM=Dj!#(B
+</memo>
+
+<rfc name="iso-2022-jp" number="1468" author="Murai J., M. Crispin,
+	      and E. van der Poel" title="Japanese Character Encoding
+	      for Internet Messages" date="June 1993">
+
+
+<h3> iso-2022-jp-2
+<node> iso-2022-jp-2
+<p>
+A <dref>MIME charset</dref>, which is a multilingual extension of
+<dref>iso-2022-jp</dref>.
+<p>
+It is defined in RFC 1554.
+
+<rfc name="iso-2022-jp-2" number="1554" type="Informational"
+	      author="Ohta M. and Handa K." title="ISO-2022-JP-2:
+	      Multilingual Extension of ISO-2022-JP" date="December
+	      1993">
+
+
+<h3> iso-2022-kr
+<node> iso-2022-kr
+<p>
+A <a node="MIME charset">MIME charset</a> for Korean language (Hangul
+script).
+<p>
+It is based on <dref>ISO 2022</dref> <dref>code extension</dref>
+technique to extends <dref>ASCII</dref> to use <dref>KS C5601</dref>
+as <dref>7bit</dref> text.
+<p>
+It is defined in <dref>RFC 1557</dref>.
+
+
+<h3> ISO 646
+<node> ISO 646
+<p>
+$B3F9q$G6&DL$K;H$($k:G>.8BEY$N(B<a node="Character set">$BJ8;z=89g(B</a>$B$rDj$a(B
+$B$?$b$N!#(B<a node="94 character set">94 $BJ8;z=89g(B</a>$B$N#1$D!#(BISO 646 IRV
+$B!J9q:]4p=`HG!K$r85$K4v$D$+$NJ8;z$O3F9q$G0c$&J8;z$r3dEv$k$3$H$r5v$7$F$$(B
+$B$F!"4v$D$+$NJQ<o$,B8:_$9$k!#(B<dref>ASCII</dref> $B$d(B JIS
+X0201-Latin $B$O$=$N0l<o!#(B
+
+<standard abbrev="ISO 646" org="International Organization for
+	      Standardization (ISO)" title-en="Information technology:
+	      ISO 7-bit coded character set for information
+	      interchange" number="ISO/IEC 646" year="1991">
+
+
+<h3> ISO 8859-1
+<node> ISO 8859-1
+<p>
+<standard abbrev="ISO 8859-1" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 1: Latin Alphabet No.1" number="ISO 8859-1"
+	      year="1987">
+
+
+<h3> iso-8859-1
+<node> iso-8859-1
+<p>
+<concept>iso-8859-1</concept> is a <dref>MIME charset</dref> for
+west-European languages written by Latin script.
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F!"(B<dref>ASCII</dref> $B$K(B 
+<a node="ISO 8859-1">ISO 8859-1</a> $B$r(B <dref>8bit</dref> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+It is defined in <dref>RFC 2046</dref>.
+
+
+<h3> ISO 8859-2
+<node> ISO 8859-2
+<p>
+<standard abbrev="ISO 8859-2" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 2: Latin alphabet No.2" number="ISO 8859-2"
+	      year="1987">
+
+
+<h3> iso-8859-2
+<node> iso-8859-2
+<p>
+<concept>iso-8859-2</concept> is a <dref>MIME charset</dref> for
+east-European languages written by Latin script.
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F!"(B<dref>ASCII</dref> $B$K(B 
+<a node="ISO 8859-2">ISO 8859-2</a> $B$r(B <dref>8bit</dref> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+It is defined in <dref>RFC 2046</dref>.
+
+
+<h3> ISO 8859-3
+<node> ISO 8859-3
+<p>
+<standard abbrev="ISO 8859-3" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 3: Latin alphabet No.3"
+		number="ISO 8859-3" year="1988">
+
+
+<h3> ISO 8859-4
+<node> ISO 8859-4
+<p>
+<standard abbrev="ISO 8859-4" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 4: Latin alphabet No.4"
+		number="ISO 8859-4" year="1988">
+
+
+<h3> ISO 8859-5
+<node> ISO 8859-5
+<p>
+<standard abbrev="ISO 8859-5" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 5: Latin/Cyrillic alphabet" number="ISO 8859-5"
+	      year="1988">
+
+
+<h3> iso-8859-5
+<node> iso-8859-5
+<p>
+<concept>iso-8859-5</concept> is a <dref>MIME charset</dref> for
+Cyrillic script.
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F!"(B<dref>ASCII</dref> $B$K(B 
+<a node="ISO 8859-5">ISO 8859-5</a> $B$r(B <dref>8bit</dref> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+It is defined in <dref>RFC 2046</dref>.
+
+
+<h3> ISO 8859-6
+<node> ISO 8859-6
+<p>
+<standard abbrev="ISO 8859-6" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 6: Latin/Arabic alphabet"
+		number="ISO 8859-6" year="1987">
+
+
+<h3> ISO 8859-7
+<node> ISO 8859-7
+<p>
+<standard abbrev="ISO 8859-7" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 7: Latin/Greek alphabet" number="ISO 8859-7"
+	      year="1987">
+
+
+<h3> iso-8859-7
+<node> iso-8859-7
+<p>
+<concept>iso-8859-7</concept> is a <dref>MIME charset</dref> for
+Greek script.
+<p>
+<dref>ISO 2022</dref> $B$K4p$$$F!"(B<dref>ASCII</dref> $B$K(B 
+<a node="ISO 8859-7">ISO 8859-7</a> $B$r(B <dref>8bit</dref> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+It is defined in RFC 1947.
+
+<rfc name="iso-8859-7" number="1947" type="Informational"
+	      author="D. Spinellis" title="Greek Character Encoding
+	      for Electronic Mail Messages" date="May 1996">
+
+
+<h3> ISO 8859-8
+<node> ISO 8859-8
+<p>
+<standard abbrev="ISO 8859-8" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 8: Latin/Hebrew alphabet"
+		number="ISO 8859-8" year="1988">
+
+
+<h3> ISO 8859-9
+<node> ISO 8859-9
+<p>
+<standard abbrev="ISO 8859-9" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 9: Latin alphabet No.5"
+		number="ISO 8859-9" year="1990">
+
+
+<h3> ISO-IR-165, CCITT Extended GB <node> ISO-IR-165
+<p>
+CCITT $B$,EPO?$7$?!"Cf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=(B
+$B8=$9$k$?$a$N(B <dref>94x94-character set</dref>$B!#(B
+<p>
+<a node="GB 2312">GB 2312</a> $B$H(B <a node="GB 8865.2">GB 8565 $BI=#2(B</a> 
+$B$K(B 150 $BJ8;z$[$I$rDI2C$7$?$b$N$i$7$$!#(B
+<p>
+<dref>ISO 2022</dref> $B$G$N=*C<J8;z$O(B `E' $B$G$"$k!#(B
+
+
+<h3> JIS X0201
+<node> JIS X0201
+<p>
+<a node="ISO 646">ISO 646</a> $B$NJQ<o$N#1$D$G$"$k(B Latin $BJ8;z=89g$H(B 1
+byte $B$N%+%?%+%JJ8;z=89g$+$i$J$k!#(B
+<p>
+$B85$O(B <concept>JIS C6220-1976</concept> $B$H8@$C$?$,(B <concept>JIS
+X0201</concept> $B$KHV9f$,JQ99$5$l$?!#(B
+
+<standard abbrev="JIS X0201-1976" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)" title-ja="$B>pJs8r49MQId9f(B"
+	      title-en="Code for Information Interchange" number="JIS
+	      X 0201-1976">
+
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=P$kM=Dj!#(B
+
+<standard abbrev="JIS X0201-1996?" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)"
+	      title-ja="$B#7%S%C%H5Z$S#8%S%C%H$N>pJs8r49MQId9f2=J8;z=89g(B"
+	      title-en="7-bit and 8-bit coded character sets for
+	      information interchange" number="JIS X 0201" year="1996?
+	      draft">
+
+
+<h3> JIS C6226-1978
+<node> JIS C6226
+<p>
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B <dref>94x94-character set</dref>$B!#F|K\$N9q(B
+$B2HI8=`!#(BJIS X0208-1978 $B$H$b$$$&!#(B
+<p>
+<cf node="JIS X0208">
+
+
+<h3> JIS X0208
+<node> JIS X0208
+<p>
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B <dref>94x94-character set</dref>$B!#F|K\$N9q(B
+$B2HI8=`!#(B1978 $BG/HG!"(B1983 $BG/HG!"(B1990 $BG/HG$,$"$k$,!"(BInternet $B$G$O(B 1983 $BG/(B
+$BHG$,$b$C$H$bNI$/;H$o$l$F$$$k!#(B
+<p>
+JIS X0208 $B$O5-9f!"?t;z!"%m!<%^;z!"$R$i$,$J!"%+%?%+%J!"%.%j%7%cJ8;z!"%-(B
+$B%j%kJ8;z!"7S@~AG!"Bh#1?e=`!"Bh#2?e=`$N4A;z$,4^$^$l$k!#C"$7!"(B1983 $BG/HG(B
+$B$N0lIt$N5-9f$H7S@~AG$O(B 1978 $BG/HG$K$O$J$$!#$^$?!"0lIt$N4A;z$N;z7A$,(B 
+1983 $BG/HG$G$OJQ99$5$l!"$^$?!"Bh#1?e=`$HBh#2?e=`$,F~$lBX$o$C$F$$$?$j$9(B
+$B$k!#$3$N$?$a!"(B1978 $BG/HG$H(B 1983 $BG/HG$O0[$J$kJ8;z=89g$H$7$F07$o$l$k!#(B
+<p>
+1990 $BG/$N2~Dj$G$O(B 1983 $BG/HG$KBP$9$kDI2C$,9T$o$l$?!#$3$N$?$a!"(B1990 $BG/HG(B
+$B$r;X<($9$k>l9g$OA0$K99?7%7!<%1%s%9$rMQ$$$k!#(B
+
+<standard abbrev="JIS X0208-1978" org="$BF|K\5,3J6(2q(B (Japanese Standards
+	      Association)" title-ja="$B>pJs8r49MQ4A;zId9f7O(B"
+	      title-en="Code of the Japanese graphic character set for
+	      information interchange" number="JIS C6226" year="1978">
+<standard abbrev="JIS X0208-1983,1990" org="$BF|K\5,3J6(2q(B (Japanese Standards
+	      Association)" title-ja="$B>pJs8r49MQ4A;zId9f7O(B"
+	      title-en="Code of the Japanese graphic character set for
+	      information interchange" number="JIS X0208" year="1983,1990">
+
+<p>
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=PHG$5$l$kM=Dj!#!J;z7A$NJQ99$O9T$o$l$J$$$N$GJ8(B
+$B;z=89g$H$7$F$O(B 1990 $BG/HG$HF10l$G$"$k!K(B
+
+<standard abbrev="JIS X0208-1996?" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)" title-ja="$B#7%S%C%H5Z$S#8%S%C%H$N(B
+	      $B#2%P%$%H>pJs8r49MQId9f2=4A;z=89g(B" title-en="7-bit and
+	      8-bit double byte coded Kanji sets for information
+	      interchange" number="JIS X 0208" year="1996? draft">
+
+
+<h3> JIS X0212-1990
+<node> JIS X0212
+<p>
+<a node="JIS X0208">JIS X0208</a> $B$K$J$+$C$?J8;z$r=8$a$?(B 
+<dref>94x94-character set</dref>$B!#!VJd=u4A;z!W$H$b8F$P$l$k!#F|K\$N9q2H(B
+$BI8=`!#(B<dref>ISO 2022</dref> $B$G$N=*C<J8;z$O(B `D'.
+
+
+<h3> koi8-r
+<node> koi8-r
+<p>
+A <dref>MIME charset</dref> for Cyrillic script for Russian or other
+languages.
+<p>
+It is a 1 byte <dref>8bit</dref> <dref>coded character set</dref>, not
+based on <dref>ISO 2022</dref>.  It is a de-fact standard.
+<p>
+It is defined in RFC 1489.
+<p>
+<rfc number="1489" author="A. Chernov" title="Registration of a
+	      Cyrillic Character Set" date="July 1993">
+
+
+<h3> KS C5601-1987
+<node> KS C5601
+<p>
+A <dref>94x94-character set</dref> for Korean language (Hangul
+script).  Korean Standard.  Final byte of <dref>ISO 2022</dref> is
+`C'.
+
+<standard abbrev="KS C5601" org="Korea Industrial Standards
+	      Association" title-en="Code for Information Interchange
+	      (Hangul and Hanja)" number="KS C 5601" year="1987">
+
+
+<h3> message
+<node> message
+<p>
+$B$3$3$G$O(B <dref>RFC 822</dref> $B$GDj5A$5$l$k(B mail $B$H(B <dref>RFC
+1036</dref> $B$GDj5A$5$l$k(B news $B5-;v$NAm>N$H$7$FMQ$$$k!#(B
+
+
+<h3> message/rfc822
+<node> message/rfc822
+<p>
+<concept>message/rfc822</concept> indicates that the body contains an
+encapsulated message, with the syntax of an <dref>RFC 822</dref>
+message.  It is the replacement of traditional <dref>RFC 934</dref>
+encapsulation.  It is defined in <dref>RFC 2046</dref>.
+
+
+<h3> method
+<node> method
+<p>
+tm $B$GFCDj$N<oN`$N(B data $B$r:F@8$7$?$H$-<B:]$K$=$N=hM}$r9T$J$&(B
+program. Emacs Lisp $B$G=q$+$l$?(B <concept>internal method</concept> $B$H(B C 
+$B$d(B script $B8@8l$J$I$G=q$+$l$?(B <concept>external method</concept> $B$,$"$k!#(B
+<p>
+<cf file="tm-view-en" node="method">
+
+
+<h3> MIME
+<node> MIME
+<p>
+MIME stands for <concept>Multipurpose Internet Mail
+Extensions</concept>, it is an extension for <dref>RFC 822</dref>.
+<p>
+According to RFC 2045:
+<p>
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text.  This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow for
+<p>
+<ol>
+<li>textual message bodies in character sets other than US-ASCII,
+</li>
+<li>an extensible set of different formats for non-textual message
+bodies,
+</li>
+<li>multi-part message bodies, and
+</li>
+<li>textual header information in character sets other than US-ASCII.
+</ol>
+
+<p>
+It is defined in <dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
+node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref> and <dref>RFC
+2049</dref>.
+
+
+<h3> MIME charset
+<node> MIME charset
+<p>
+<dref>Coded character set</dref> used in <dref>Content-Type
+field</dref> or charset parameter of <a
+node="encoded-word">encoded-word</a>.
+<p>
+It is defined in <dref>RFC 2045</dref>.
+<p>
+<dref>iso-2022-jp</dref> $B$d(B <a node="euc-kr">euc-kr</a> $B$O$=$N#1$D!#(B
+$B!J$3$3$G$O!"(BMIME charset $B$O(B<a node="Character set">$BJ8;z=89g(B</a>$B$H6hJL(B
+$B$7$F>.J8;z$G=q$$$F$$$k!K(B
+
+
+<h3> MTA
+<node> MTA
+<p>
+<concept>Message Transfer Agent</concept> $B$NN,$G!"(Bsendmail $B$J$I$N(B mail 
+$BG[Aw(B program $B$H(B news server $B$NAm>N!#(B
+<p>
+<cf node="MUA">
+
+
+<h3> MUA
+<node> MUA
+<p>
+<concept>Message User Agent</concept> $B$NN,$G!"(Bmail reader $B$H(B news
+reader $B$NAm>N!#(B
+<p>
+<cf node="MTA">
+
+
+<h3> MULE
+<node> MULE
+<p>
+$BH>ED(B $B7u0l;a$i$,:n$C$?!"B?8@8l$5$l$?(B <a node="Emacs">Emacs</a>.
+<p>
+[MULE] Nishikimi M., Handa K. and Tomura S., ``Mule: MULtilingual
+Enhancement to GNU Emacs'', Proc. of INET'93, August, 1993.
+<p>
+$B8=:_!"(BMULE $B$N5!G=$r(B Emacs $B$K(B merge $B$9$k:n6H$,9T$o$l$F$*$j!"(B<a
+href="ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz"> alpha $BHG(B
+</a> $B$,B8:_$9$k!#(B
+<p>
+$B$=$NB>!"(BXEmacs $B$K(B merge $B$7$?$b$N$bB8:_$9$k!#(B
+<p>
+$B$3$N$?$a!"8=:_$G$OB?8@8l(B Emacs $B$O!"85!9$N(B MULE $B$r4^$a$F#3<oN`$"$k$3$H(B
+$B$K$J$k!#(B
+<p>
+$B$=$3$G!"$3$3$G$O!"B?8@8l(B Emacs $B$NAm>N$r(B <concept>mule</concept>, $B85!9(B
+$B$N(B MULE $B$r(B <concept>MULE</concept>, mule $B5!G=$r(B merge $B$7$?(B Emacs $B$r(B
+<concept>Emacs/mule</concept>, mule $B5!G=$r(B merge $B$7$?(B XEmacs $B$r(B 
+<concept>XEmacs/mule</concept> $B$H8F$V$3$H$K$9$k!#(B
+
+
+<h3> Multipart
+<node> multipart
+<p>
+<concept>multipart</concept> means <dref>media type</dref> to insert
+multiple <dref>entities</dref> in a single body.  Or it also indicates
+a message consists of multiple entities.
+<p>
+There are following subtypes registered in <dref>RFC 2046</dref>:
+
+<ul>
+<li><dref>multipart/mixed</dref>
+<li><dref>multipart/alternative</dref>
+<li><dref>multipart/digest</dref>
+<li><dref>multipart/parallel</dref>
+</ul>
+
+<noindent>
+and registered in <a node="Security multipart">RFC 1847</a>:
+
+<ul>
+<li><dref>multipart/signed</dref>
+<li><dref>multipart/encrypted</dref>
+</ul>
+
+
+<h3> multipart/alternative
+<node> multipart/alternative
+<p>
+<concept>multipart/digest</concept> is one of <dref>multipart</dref>
+media types.  This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different.  In
+particular, each of the body parts is an ``alternative'' version of
+the same information.
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/digest
+<node> multipart/digest
+<p>
+<concept>multipart/digest</concept> is one of <dref>multipart</dref>
+media types.  This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different.  In
+particular, in a digest, the default Content-Type value for a body
+part is changed from <dref>text/plain</dref> to
+<dref>message/rfc822</dref>.
+<p>
+This is the replacement of traditional <dref>RFC 1153</dref> based
+<dref>encapsulation</dref>.
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/encrypted
+<node> multipart/encrypted
+<p>
+RFC 1847 $B$GDj5A$5$l$?(B <dref>Security multipart</dref> $B$N#1$D$G!"0E9f2=(B
+$B$5$l$?(B message $B$rI=8=$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="PGP/MIME">
+
+
+<h3> multipart/mixed
+<node> multipart/mixed
+<p>
+Primary and default subtype of <dref>multipart</dref>, it is used when
+the body parts are independent and need to be bundled in a particular
+order.
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/parallel
+<node> multipart/parallel
+<p>
+<concept>multipart/parallel</concept> is a subtype of
+<dref>multipart</dref>.  This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different.  In
+particular, in a parallel entity, the order of body parts is not
+significant.
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/signed
+<node> multipart/signed
+<p>
+RFC 1847 $B$GDj5A$5$l$?(B <dref>Security multipart</dref> $B$N#1$D$G!"EE;R=p(B
+$BL>$rI=8=$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="PGP/MIME">
+
+
+<h3> PGP
+<node> PGP
+<p>
+Phil Zimmermann $B;a$,:n@.$7$?8x3+800E9f=hM}7O$N#1$D!#(B
+<dref>message</dref> $B$N0E9f2=$dEE;R=pL>$r9T$&$3$H$,$G$-$k!#(BPretty Good
+Privacy $B$NN,!#(B
+<p>
+$BEAE}E*$J(B PGP $B$G$O(B <dref>encapsulation</dref> $B$K(B <dref>RFC 934</dref>$B$K(B
+$B=`$8$?J}K!$rMQ$$$k!#$3$l$O(B <dref>MIME</dref> $B$HL7=b$9$k$N$G(B 
+<dref>PGP/MIME</dref> $B$,Ds0F$5$l$F$$$k!#0lJ}!"(BMIME $B$K$*$$$F(B PGP $B$N(B
+encapsulation $B$rMQ$$$kJ}K!(B <cf node="PGP-kazu"> $B$bMxMQ$5$l$F$-$?!#$7$+(B
+$B$7!":#8e$O(B PGP/MIME $B$KE}0l$7$F$$$/J}$,K>$^$7$$!#(B
+<p>
+<rfc name="PGP" number="1991" type="Informational" author="D. Atkins,
+	      W. Stallings and P. Zimmermann" title="PGP Message
+	      Exchange Formats" date="August 1996">
+
+
+
+<h3> PGP-kazu
+<node> PGP-kazu
+<p>
+$B;3K\(B $BOBI'(B $B;a$,Ds0F$7$?(B <a node="MIME">MIME</a> $B$G(B <a
+node="PGP">PGP</a> $B$rMxMQ$9$k$?$a$NJ}K!$r$3$3$G$O(B 
+<concept>PGP-kazu</concept> $B$H8F$V$3$H$K$9$k!#(B
+<p>
+PGP-kazu $B$O(B <concept>application/pgp</concept> $B$H$$$&(B 
+<dref>content-type</dref> $B$rDj5A$9$k!#(B
+<p>
+application/pgp $B$N(B part $B$G$O(B PGP $B$N(B <dref>encapsulation</dref> $B$,MQ$$(B
+$B$i$l$k!#(BPGP $B$N(B encapsulation <cf node="RFC 934"> $B$H(B MIME $B$N(B 
+encapsulation $B$OL7=b$9$k$N$G!"(BPGP $B$N(B encapsulation $B$r2r$+$J$$8B$j!"Cf(B
+$B$K4^$^$l$?(B MIME message $B$rFI$`$3$H$,$G$-$J$/$J$k!#B($A!"(BPGP-kazu $B$KBP(B
+$B1~$7$F$$$J$$(B MIME $B$KBP1~$7$?(B <dref>MUA</dref> $B$O$=$N(B part $B$,FI$a$J$/$J(B
+$B$k!#$=$NBe$o$j!"(BMIME $B$KBP1~$7$F$$$J$$(B PGP $BBP1~$N(B <dref>MUA</dref> $B$G$b(B 
+message $B$rFI$`$3$H$,$G$-$k!#(B
+<p>
+PGP-kazu $B$G$O(B MUA $B$O(B PGP $B$N$H(B MIME $B$N$H$$$&#2$D$N(B encapsulation $B$rCN$i(B
+$B$J$1$l$P$J$i$J$$!#$^$?!"(Bapplication/pgp part $B$r(B parse $B$9$k$?$a$K$O!"$^(B
+$B$:!"(Bpgp $B$N=hM}$r9T$o$J$1$l$P$J$i$J$$$N$G!"(Bparse $B=hM}$,J#;($K$J$k!#(B
+<p>
+$B$^$?!"(BInternet $B$G$O:#8e(B <dref>PGP/MIME</dref> $B$NJ}8~$GI8=`2=$7$F$$$3$&(B
+$B$H$$$&$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP-kazu $B$OMQ$$$J$$$N$,K>(B
+$B$^$7$$!#(B
+<p>
+[draft-kazu-pgp-mime-00.txt] Yamamoto K., ``PGP MIME Integration'',
+October, 1995
+
+
+<h3> PGP/MIME
+<node> PGP/MIME
+<p>
+Michael Elkins $B;a$,Ds0F$7$?(B <a node="MIME">MIME</a> $B$G(B <a
+node="PGP">PGP</a> $B$rMxMQ$9$k$?$a$NJ}K!!#(B
+<p>
+<a node="Security multipart">RFC 1847</a> $B$K4p$-!"(BMIME $B$N(B multipart $B$K(B
+$B$h$k(B <dref>encapsulation</dref> $B$r9T$&!#$3$N$?$a!"(BMIME $B$N<+A3$J3HD%$K(B
+$B$J$C$F$$$k!#$7$+$7!"EAE}E*$J(B PGP$B$H$N8_49@-$,<:$o$l$F$$$k!#(B
+<p>
+PGP/MIME $B$G$O(B <dref>PGP-kazu</dref> $B$H0[$J$j!"(BMIME $B$N(B encapsulation $B$N(B
+$B$_$rMQ$$$k!#$^$?!"$3$N$?$a!"(BPGP $B$N=hM}$r9T$&A0$K(B message $B$N(B parse $B$r9T(B
+$B$&$3$H$,$G$-$k!#(B
+<p>
+Internet $B$G$O:#8e(B <dref>PGP/MIME</dref> $B$NJ}8~$GI8=`2=$7$F$$$3$&$H$$$&(B
+$B$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP $B$rMQ$$$k>l9g$O(B PGP/MIME$B$rMQ(B
+$B$$$k$N$,K>$^$7$$!#(B
+
+<rfc name="PGP/MIME" number="2015" type="Standards Track"
+	      author="M. Elkins" title="MIME Security with Pretty Good
+	      Privacy (PGP)" date="October 1996">
+
+
+<h3> Quoted-Printable
+<node> Quoted-Printable
+<p>
+<concept>Quoted-Printable</concept> is a transfer encoding method of
+<dref>MIME</dref> defined in <dref>RFC 2045</dref>.
+<p>
+If the data being encoded are mostly US-ASCII text, the encoded form
+of the data remains largely recognizable by humans.
+<p>
+<cf node="Base64">
+
+
+<h3> RFC 821
+<node> RFC 821
+<p>
+<concept>SMTP</concept> $B$H8F$P$l$k(B Internet mail $B$NG[AwK!$NI8=`$rDj$a(B
+$B$F$$$k(B RFC.
+
+<rfc name="SMTP" number="821" type="STD 10" author="J. Postel"
+	      title="Simple Mail Transfer Protocol" date="August
+	      1982">
+
+
+<h3> RFC 822
+<node> RFC 822
+<p>
+Internet mail $B$N<g$K(B <concept>message header</concept> $B$K4X$9$k7A<0$K(B
+$B4X$9$kI8=`$rDj$a$F$$$k(B RFC.
+
+<memo>
+<p>
+news message $B$b$3$l$K=`$8$F$$$k$N$G!"(B<concept>Internet mail</concept> 
+$B$H=q$/$h$j$b!"(B<concept>Internet message</concept> $B$H=q$$$?J}$,NI$$$+$b(B
+$B$7$l$J$$!#(B
+</memo>
+
+<rfc number="822" type="STD 11" author="D. Crocker" title="Standard
+	      for the Format of ARPA Internet Text Messages"
+	      date="August 1982">
+
+
+<h3> RFC 934
+<node> RFC 934
+<p>
+<a node="RFC 822">Internet mail</a> $B$N(B <a node="encapsulation">
+<concept>encapsulation</concept></a> $B$NJ}K!$rDj$a$?(B RFC.
+<p>
+<dref>MIME</dref> $B$HL7=b$9$k$N$G!"8=:_$G$O(B <dref>message/rfc822</dref> 
+$B$rMQ$$$k$Y$-$G$"$k!#(B
+
+
+<rfc number="934" author="Marshall T. Rose and Einar A. Stefferud"
+	      title="Proposed Standard for Message Encapsulation"
+	      date="January 1985">
+
+
+<h3> RFC 1036
+<node> RFC 1036
+<p>
+USENET $B$G$N(B message $B$N7A<0$rDj$a$?(B RFC. <a node="RFC 822">RFC 822</a>
+$B$N(B subset $B$K$J$C$F$$$k!#(BInternet $B$NI8=`$G$O$J$$$,!"(BUSENET $B0J30$N(B 
+netnews $B$G$b$3$l$K=`$8$F$$$k$b$N$,B?$$!#(B
+
+<rfc name="USENET" number="1036" author="M. Horton and R. Adams"
+	      title="Standard for Interchange of USENET Messages"
+	      date="December 1987" obsolete="850">
+
+
+<h3> RFC 1153
+<node> RFC 1153
+<p>
+$BJ#?t$N(B <a node="RFC 822">Internet mail</a> $B$r(B <a node="encapsulation">
+<concept>encapsulation</concept></a> $B$9$k$?$a$NJ}K!$rDj$a$?(B 
+RFC. <dref>RFC 934</dref> $B$rMQ$$$k!#(B
+<p>
+<dref>MIME</dref> $B$HL7=b$9$k$N$G!"8=:_$G$O(B <dref>message/rfc822</dref> 
+$B$rMQ$$$?(B <dref>multipart</dref> $B$rMQ$$$k$Y$-$G$"$k!#(B
+<p>
+<cf node="multipart/digest">
+
+<rfc number="1153" author="F. Wancho" title="Digest Message Format"
+	      date="April 1990">
+
+
+<h3> RFC 1557
+<node> RFC 1557
+<p>
+<dref>euc-kr</dref> $B$H(B <dref>iso-2022-kr</dref> $B$H$$$&4Z9q8l$N$?$a$N(B 
+<a node="MIME charset">MIME charset</a> $B$rDj5A$7$F$$$k(B RFC.
+
+<rfc number="1557" type="Informational" author="U. Choi, K. Chon and
+	      H. Park" title="Korean Character Encoding for Internet
+	      Messages" date="December 1993">
+
+
+<h3> RFC 1922
+<node> RFC 1922
+<p>
+<dref>iso-2022-cn</dref>, <dref>iso-2022-cn-ext</dref>,
+<dref>cn-gb</dref>, <dref>cn-big5</dref> $B$H$$$C$?Cf9q8l$N$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$rDj5A$7$F$$$k(B RFC.
+<p>
+$B$3$l$K2C$($F!"(B<concept>charset-edition</concept> $B$H(B 
+<concept>charset-extension</concept> $B$H$$$&(B <dref>Content-Type
+field</dref> $B$N(B parameter $B$rDj5A$7$F$$$k!#(B
+
+<rfc number="1922" type="Informational" author="Zhu, HF., Hu, DY.,
+	      Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M."
+	      title="Chinese Character Encoding for Internet Messages"
+	      date="March 1996">
+
+
+<h3> RFC 2045
+<node> RFC 2045
+<p>
+<rfc number="2045" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part One: Format of Internet Message
+	      Bodies" date="November 1996" obsolete="1521, 1522,
+	      1590">
+
+
+<h3> RFC 2046
+<node> RFC 2046
+<p>
+<rfc number="2046" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+                 Extensions (MIME) Part Two: Media Types"
+                 date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2048
+<node> RFC 2048
+<p>
+<rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
+	      and J. Postel" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part Four: Registration Procedures"
+	      date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2049
+<node> RFC 2049
+<p>
+<rfc number="2049" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part Five: Conformance Criteria and
+	      Examples" date="November 1996" obsolete="1521, 1522,
+	      1590">
+
+
+<h3> plain text
+<node> plain text
+<p>
+$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$(B <a node="Coded character set">$BJ8;zId(B
+$B9f(B</a>$B$N$_$GI=8=$5$l$k(B text $B>pJs!#(B<cf node="text/plain">
+
+
+<h3> Security multipart
+<node> Security multipart
+<p>
+<a node="MIME">MIME</a> $B$G0E9f$dEE;R=qL>$rMQ$$$k$?$a$N7A<0!#(B<a
+node="multipart/signed"><concept>multipart/signed</concept></a> $B$H(B <a
+node="multipart/encrypted"><concept>multipart/encrypted</concept></a> 
+$B$H$$$&(B multipart $B$rMQ$$$k!#(BMOSS $B$d(B <a node="PGP/MIME">PGP/MIME</a> $B$O(B
+$B$3$l$K4p$$$F$$$k!#(B
+
+<rfc name="Security multipart" number="1847" type="Standards Track"
+	      author="James Galvin, Gale Murphy, Steve Crocker and Ned
+	      Freed" title="Security Multiparts for MIME:
+	      Multipart/Signed and Multipart/Encrypted" date="October
+	      1995">
+
+
+<h3> text/enriched
+<node> text/enriched
+<p>
+RFC 1521 $B$GDj5A$5$l$?(B <concept>text/richtext</concept> $B$KBe$o$C$F!"=q(B
+$BBN$dAHHG$K4X$9$k>pJs$r;}$C$?(B text$B$rI=8=$9$k$?$a$N(B <dref>media
+type</dref>.
+
+<rfc name="text/enriched" number="1896" author="P. Resnick and
+	      A. Walker" title="The text/enriched MIME Content-type"
+	      date="February 1996" obsolete="1563">
+
+
+<h3> text/plain
+<node> text/plain
+<p>
+<concept>text/plain</concept> is a <dref>media type</dref> for
+<dref>plain text</dref>, defined in <dref>RFC 2046</dref>.
+<p>
+The default media type of ``text/plain; charset=us-ascii'' for
+Internet mail describes existing Internet practice.  That is, it is
+the type of body defined by <dref>RFC 822</dref>.
+<p>
+<cf node="MIME charset"><cf node="us-ascii">
+
+
+<h3> tm-kernel, tm
+<node> tm-kernel
+<p>
+Emacs $B$G(B <a node="MIME">MIME</a> $B$rMxMQ$9$k$?$a$N(B user interface $B$rDs(B
+$B6!$9$k(B library $B72!#(B`tools for MIME' $B$NN,!#(B
+
+<memo title="$B$I$&$G$bNI$$$3$H(B(^-^;">
+<p>
+<ul>
+  <li> tm $B$O(B ``tiny-mime'' $B$NN,$8$c$J$$$i$7$$$>(B (^-^;
+  <li> tm $B$O:n<T$N%$%K%7%c%k$8$c$J$$$i$7$$$>(B (^-^;
+  <li> ``Tools for MIME'' $B$NN,$H$$$&$N$O$3$8$D$1$i$7$$$>(B (^-^;
+</ul>
+</memo>
+
+
+<h3> tm-MUA
+<node> tm-MUA
+<p>
+<a node="tm-kernel">tm</a> $B$rMQ$$$?(B <a node="MUA">MUA</a> $B$b$7$/$O(B MUA 
+$B$KBP$9$k(B extender.
+<p>
+<concept>tm $BBg@9$j(B package</concept> $B$K$O(B
+
+<ul>
+<li><a file="mh-e">mh-e</a> $BMQ$N(B <concept>tm-mh-e</concept>
+<li>GNUS $BMQ$N(B <concept>tm-gnus</concept>
+<li>Gnus $BMQ$N(B <a file="gnus-mime-en"><concept>gnus-mime</concept></a>
+<li>VM $BMQ$N(B <concept>tm-vm</concept>
+<li>RMAIL $BMQ$N(B <concept>tm-rmail</concept>
+</ul>
+
+<noindent>
+$B$,4^$^$l$F$$$k!#(B
+<p>
+$BFHN)$7$?(B MUA $B$H$7$F$O(B <a file="cmail">cmail</a> $B$,(B tm $B$rMxMQ2DG=$G$"$k!#(B
+
+
+<h3> us-ascii
+<node> us-ascii
+<p>
+$B%"%a%j%+O"K.$J$I$G;H$o$l$k1Q8l$J$I$rI=8=$9$k$?$a$N(B <a node="MIME
+charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<dref>ASCII</dref> $B$N$_$+$i$J$j(B <dref>ISO 2022</dref> $B$K$h$k(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$O5v$5$l$J$$!#(B
+<p>
+Internet mail $B$K$*$1$kI8=`$N(B<a node="Coded character set">$BId9f2=J8;z=8(B
+$B9g(B</a>$B$G$"$j!"L@<(E*$K(B MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F(B 
+<concept>us-ascii</concept> $B$,;H$o$l$k!#(B
+<p>
+$B$^$?!"(B<a node="RFC 822">RFC 822</a> $B$K$*$1$k(B <concept>ASCII</concept> 
+$B$O(B us-ascii $B$r;X$9$b$N$H2r<a$9$Y$-$G$"$k!#(B
+
+
+<h1> Setting
+<node> Setting
+<p>
+In the tm package, two files, <file>mime-setup.el</file> and
+<file>tm-setup.el</file>, are provided to ease the setup.
+<p>
+The <file>mime-setup.el</file> is used for the whole MIME related
+setup including MIME encoding using <file>tm-edit.el</file>, while
+<file>tm-setup.el</file> is used to set up tm-MUA only.
+
+
+<h2> Normal setting
+<node> mime-setup
+<p>
+If you want normal setting, please use <concept>mime-setup</concept>.
+For example, please insert following into <file>~/.emacs</file>:
+
+<lisp>
+(load "mime-setup")
+</lisp>
+
+<p>
+As <file>mime-setup.el</file> loads <file>tm-setup.el</file>, you
+don't need to load <file>tm-setup.el</file> when you use
+<file>mime-setup.el</file> (Description of old version of Gnus FAQ is
+wrong!)
+
+
+<h3> signature
+<node> signature
+<p>
+You can set up the <concept>automatic signature selection
+tool</concept> using <file>mime-setup</file>. If you want to
+automatically select the signature file depending on how the message
+headers show, add lines like shown below to your .emacs (Refer to the
+reference manual of <file>signature.el</file> for more details).
+
+<lisp>
+(setq signature-file-alist
+      '((("Newsgroups" . "jokes")       . "~/.signature-jokes")
+        (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+        (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+        (("To" . "tea")                 . "~/.signature-jokes")
+        (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+        ))
+</lisp>
+
+
+<defvar name="mime-setup-use-signature">
+<p>
+If it is not <code>nil</code>, <file>mime-setup.el</file> sets up for
+<file>signature.el</file>.  Its default value is <code>t</code>.
+</defvar>
+
+
+<defvar name="mime-setup-signature-key-alist">
+<p>
+It defines key to bind signature inserting command for each
+major-mode.  Its default value is following:
+
+<lisp>
+	((mail-mode . "\C-c\C-w"))
+</lisp>
+
+<p>
+If you want to change, please rewrite it.  For example:
+
+<lisp>
+(set-alist 'mime-setup-signature-key-alist
+	   'news-reply-mode "\C-c\C-w")
+</lisp>
+
+</defvar>
+
+
+<defvar name="mime-setup-default-signature-key">
+<p>
+If key to bind signature inserting command for a major-mode is not
+found from <code>mime-setup-signature-key-alist</code>, its value is
+used as key.  Its default value is <code>"\C-c\C-s"</code>.
+</defvar>
+
+
+<h3> Notices for GNUS
+<node> Notice about GNUS
+<p>
+When <file>mime-setup.el</file> sets up for <file>signature.el</file>,
+it sets variable <code>gnus-signature-file</code> to <code>nil</code>.
+Therefore GNUS does not insert signature automatically when it is
+sending a message.  Reason of this setting is following:
+<p>
+GNUS inserts signature after <file>tm-edit.el</file> composed as MIME
+message.  Therefore signature inserted by GNUS is not processed as a
+valid MIME part.  In particular, for multipart message, signature
+places in outside of MIME part.  So MIME MUA might not display it.
+<p>
+Other notice is key bind.  In historical reason, key bind to insert
+signature is <kbd>C-c C-s</kbd> (like <a file="mh-e">mh-e</a>) instead
+of <kbd>C-c C-w</kbd>. If you change to GNUS's default, please set
+following:
+
+<lisp>
+(set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w")
+</lisp>
+
+
+<h2> Setting not to use tm-edit
+<node> tm-setup
+<p>
+<concept>tm-setup</concept> only sets up <a node="tm-MUA">tm-MUA</a>s.
+In other words, it is a setting to avoid to use tm-edit.  If you don't
+want to compose MIME message or want to use other MIME composer,
+please use it instead of <file>mime-setup.el</file>.
+<p>
+For example, please insert following into <file>~/.emacs</file>:
+
+<lisp>
+(load "tm-setup")
+</lisp>
+
+<p>
+
+<memo>
+<p>
+If you use <file>mime-setup.el</file>, you you don't need to load
+<file>tm-setup.el</file>.
+</memo>
+
+
+<h2> Setting for VM
+<node> setting for VM
+<p>
+If you use <concept>vm</concept>, please insert following in
+<file>~/.vm</file>:
+
+<lisp>
+(require 'tm-vm)
+</lisp>
+
+
+<memo title="Notice">
+<p>
+If you use <concept>BBDB</concept>, please insert <code>(require
+'tm-vm)</code> <bf>after</bf> <code>(bbdb-insinuate-vm)</code>.
+</memo>
+
+
+<h2> Setting up without loading provided setup files
+<node> manual setting
+<p>
+You may find the valuable hints in <file>mime-setup.el</file> or
+<file>tm-setup.el</file> if you want to set up MIME environment
+without loading the tm-provided setup files.
+
+<memo>
+<p>
+Current tm provides some convenient features to expect tm-edit, and
+they can not use if <file>mime-setup.el</file> is not used.  If you
+want to set up original setting to use tm-edit, please declare
+following setting:
+
+<lisp>
+(provide 'mime-setup)
+</lisp>
+
+</memo>
+
+
+<h1> How to report bug and about mailing list of tm
+<node> Bug report
+<p>
+If you write bug-reports and/or suggestions for improvement, please
+send them to the tm Mailing List:
+
+<ul>
+<li> Japanese <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail>
+<li> English <mail>bug-tm-en@chamonix.jaist.ac.jp</mail>
+</ul>
+
+<p>
+Notice that, we does not welcome bug reports about too old version.
+Bugs in old version might be fixed.  So please try latest version at
+first.
+<p>
+You should write <concept>good bug report</concept>.  If you write
+only ``tm does not work'', we can not find such situations.  At least,
+you should write name, type, variants and version of OS, emacs, tm and
+MUA, and setting.  In addition, if error occurs, to send backtrace is
+very important. <cf file="emacs" node="Bugs">
+<p>
+Bug may not appear only your environment, but also in a lot of
+environment (otherwise it might not bug).  Therefor if you send mail
+to author directly, we must write a lot of mails.  So please send mail
+to address for tm bugs instead of author.
+<p>
+Via the tm ML, you can report tm bugs, obtain the latest release of
+tm, and discuss future enhancements to tm.  To join the tm ML, send
+e-mail to:
+
+<ul>
+<li> Japanese <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail>
+<li> English  <mail>tm-en-admin@chamonix.jaist.ac.jp</mail>
+</ul>
+
+<noindent>
+Since the user registration is done manually, please write the mail
+body in human-recognizable language (^_^).
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
--- a/man/tm/tm-en.texi	Mon Aug 13 09:03:47 2007 +0200
+++ b/man/tm/tm-en.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -58,79 +58,30 @@
 
 
 @menu
-* What is MIME?::               
-* How is MIME?::                
 * Glossary::                    
 @end menu
 
-@node What is MIME?, How is MIME?, Introduction, Introduction
-@section What is MIME?
-
-@cindex{MIME}@strong{MIME} stands for @cindex{Multipurpose Internet Mail
-Extensions}@strong{Multipurpose Internet Mail Extensions}, it is a
-proposed internet standard for including content and headers other than
-(ASCII) plain text in messages.@refill
-
-Current MIME standard consists of RFC 1521 and RFC 1522.  RFC 1521
-describes multipurpose content in message bodies, while RFC 1522
-describes multilingual characters in headers.
-
-
-@node How is MIME?, Glossary, What is MIME?, Introduction
-@section How is MIME?
-
-In multipurpose message side, MIME can represent various contents such
-as images, sounds, videos, ... as against traditional Internet mail/news
-message can represent only (us-ascii (@ref{us-ascii})) plain
-text.@refill
-
-Interestingly, MIME can send ``procedure'', such as ftp (@ref{FTP}), ftp
-mail, file extraction, applying patch, ...@refill
-
-# Of course, it has security problem.@refill
-
-These various kinds of contents are defined by media types written in
-@cindex{Content-Type}@strong{Content-Type} (@ref{Content-Type field})
-field.  Namely MIME message has information about content in header.  So
-if reader defines processes for each content-type (@ref{content-type}),
-he/she can display image, or play video or sound, or get file by ftp, or
-extract file, ... only read the message.@refill
-
-In addition, MIME message can represent message includes plural parts,
-called @cindex{Multipart}@strong{Multipart} (@ref{multipart}) message.
-So it is possible to include picture and sound in one message.@refill
-
-MIME seems have philosophy of ``declaration''.  In other words, MIME is
-a message description language to represent various kinds of things uses
-us-ascii (@ref{us-ascii}) as its ``alphabet''.  Encoded-word defined in
-RFC 1522 (@ref{encoded-word}) is same.@refill
-
-In addition, MUA displays only what it can understand and ignore what
-can not understand.  So content is saved from non-supported MUA and
-MUA is saved from unknown data.
-
-
-@node Glossary,  , How is MIME?, Introduction
+@node Glossary,  , Introduction, Introduction
 @section Glossary
 
 
 @menu
 * 7bit::                        
 * 8bit::                        
-* 94 character set::            94 $BJ8;z=89g(B
-* 96 character set::            96 $BJ8;z=89g(B
-* 94x94 character set::         94$B!_(B94 $BJ8;z=89g(B
+* 94-character set::            
+* 96-character set::            
+* 94x94-character set::         
 * ASCII::                       
 * Base64::                      
 * binary::                      
-* Character Set::               Character Set$B!JJ8;z=89g!K(B
+* graphic character set::       Graphic Character Set
 * cn-gb::                       cn-gb, gb2312
 * cn-big5::                     cn-big5, big5
 * CNS::                         CNS 11643-1992
-* Coded character set::         Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
-* Code extension::              Code extension$B!JId9f3HD%!K(B
+* coded character set::         Coded character set, Character code
+* code extension::              Code extension
 * Content-Disposition::         Content-Disposition field
-* content-type::                
+* media type::                  
 * Content-Type field::          
 * Emacs::                       
 * encoded-word::                
@@ -191,9 +142,12 @@
 * RFC 934::                     
 * RFC 1036::                    
 * RFC 1153::                    
-* RFC 1521::                    RFC 1521 
 * RFC 1557::                    
 * RFC 1922::                    
+* RFC 2045::                    
+* RFC 2046::                    
+* RFC 2048::                    
+* RFC 2049::                    
 * plain text::                  
 * Security multipart::          
 * text/enriched::               
@@ -206,93 +160,91 @@
 @node 7bit, 8bit, Glossary, Glossary
 @subsection 7bit
 
-$B$3$3$G$O(B 0 $B$+$i(B 127 $B$N@0?t$r;X$7$^$9!#(B@refill
-
-0 $B$+$i(B 127 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``7bit $B$N(B data'' $B$H8F$S(B
-$B$^$9!#(B@refill
-
-$B$^$?!"(B0 $B$+$i(B 31 $B$*$h$S(B 127 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=8=$5$l$k6uGr$H(B 
-33 $B$+$i(B 126 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r(B ``7bit $B$NJ8;zNs(B'' 
-$B$H8F$S$^$9!J$3$l$O(B ISO 2022 (@ref{ISO 2022}) $B$N!V(B7 $BC10L7O!W$HF1MM$G$9!K!#(B
-
-$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit $B$N(B data $B$rE>Aw$G$-$k$N$G!"(B
-7bit $B$N(B data $B$O(B Quoted-Printable (@ref{Quoted-Printable}) $B$d(B Base64
-(@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^$9!#(B@refill
-
-$B$7$+$7!"(B7bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T(B
-$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i(B
-$B$G$9!#$A$J$_$K!"(BRFC 821 (@ref{RFC 821}) $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998
-byte $B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-(B
-$B$N$"$k(B data, $BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B 
-encode$B$9$kI,MQ$,$"$j$^$9!#(B
-
-
-@node 8bit, 94 character set, 7bit, Glossary
+@cindex{7bit}@strong{7bit} means any integer between 0 .. 127.@refill
+
+Any data represented by 7bit integers is called @cindex{7bit
+data}@strong{7bit data}.@refill
+
+Textual string consisted of Control characters between 0 .. 31 and 127,
+and space represented by 32, and graphic characters between 33 .. 236
+are called @cindex{7bit (textual) string}@strong{7bit (textual)
+string}.@refill
+
+Traditional Internet MTA (@ref{MTA}) can translate 7bit data, so it is
+no need to translate by Quoted-Printable (@ref{Quoted-Printable}) or
+Base64 (@ref{Base64}) for 7bit data.@refill
+
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data.  RFC 821 (@ref{RFC 821}) and RFC 2045 (@ref{RFC
+2045}) require lines in 7bit data must be less than 998 bytes.  So if a
+``7bit data'' has a line more than 999 bytes, it is regarded as binary
+(@ref{binary}).  For example, Postscript file should be encoded by
+Quoted-Printable.
+
+
+@node 8bit, 94-character set, 7bit, Glossary
 @subsection 8bit
 
-$B$3$3$G$O(B 0 $B$+$i(B 255 $B$N@0?t$r;X$7$^$9!#(B@refill
-
-0 $B$+$i(B 255 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``8bit $B$N(B data'' $B$H8F$S(B
-$B$^$9!#(B@refill
-
-$B$^$?!"(B0 $B$+$i(B 31, 127 $B$*$h$S(B 128 $B$+$i(B 159 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=(B
-$B8=$5$l$k6uGr$H(B 33 $B$+$i(B 126 $B$H(B 160 $B$+$i(B 255 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$k(B
-$BJ8;zNs$N$3$H$r(B ``8bit $B$NJ8;zNs(B'' $B$H8F$S$^$9!J$3$l$O(B ISO 2022 (@ref{ISO
-2022}) $B$N!V(B8 $BC10L7O!W$HF1MM$G$9!K!#(B@refill
-
-iso-8859-1 (@ref{iso-8859-1}) $B$d(B euc-kr (@ref{euc-kr}) $B$H$$$C$?Id9f2=J8(B
-$B;z=89g$O(B 8bit $B$NJ8;zNs$G$9!#(B@refill
-
-$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit (@ref{7bit}) $B$N(B data $B$7$+E>(B
-$BAw$G$-$J$$$N$G!"$=$&$7$?(B MTA $B$r7PM3$9$k>l9g!"(BQuoted-Printable
-(@ref{Quoted-Printable}) $B$d(B Base64 (@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/(B
-$B$F$O$J$j$^$;$s!#(B@refill
-
-$B$7$+$7!":G6a$G$O(B 8bit $B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k(B MTA $B$bEP>l$7$F(B
-$B$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#(B@refill
-
-$B$7$+$7!"(B8bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T(B
-$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i(B
-$B$G$9!#$A$J$_$K!"(BRFC 821 $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998 byte $B0JFb$G$"$k$3$H(B
-$B$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k(B data, $BNc$($P!"(B
-Postscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B encode$B$9$kI,MQ$,$"$j$^$9!#(B
-@refill
-
-$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,(B 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k(B
-data $B$O(B @cindex{binary}@strong{binary} (@ref{binary}) $B$H8F$V$3$H$K$7$^$9!#(B
-
-$B$A$J$_$K!"(B7bit $B$GI=8=$G$-$k(B data $B$O(B 8bit $B$G$bI=8=$G$-$^$9!#$h$C$F!"(B
-``8bit'' $B$H8@$C$?>l9g!"#19T$,(B 998 byte $B0J2<$NG$0U$N(B data $B$r;X$9$3$H$,(B
-$B$"$j$^$9!#(B
-
-
-@node 94 character set, 96 character set, 8bit, Glossary
-@subsection 94 $BJ8;z=89g(B
-
-33 $B$+$i(B 126 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(B
-ASCII (@ref{ASCII}) $B$d(B JIS X0201-Latin $B$O$=$N0l<o!#(B
-
-
-@node 96 character set, 94x94 character set, 94 character set, Glossary
-@subsection 96 $BJ8;z=89g(B
-
-32 $B$+$i(B 127 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(BISO
-8859 $B%7%j!<%:$O$=$N0l<o!#(B
-
-
-@node 94x94 character set, ASCII, 96 character set, Glossary
-@subsection 94$B!_(B94 $BJ8;z=89g(B
-
-33 $B$+$i(B 126 $B$NHO0O$N(B 2 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(BJIS
-X0208 (@ref{JIS X0208}) $B$d(B GB 2312 (@ref{GB 2312}) $B$O$=$N0l<o!#(B
-
-
-@node ASCII, Base64, 94x94 character set, Glossary
+@cindex{8bit}@strong{8bit} means any integer between 0 .. 255.@refill
+
+Any data represented by 8bit integers is called @cindex{8bit
+data}@strong{8bit data}.@refill
+
+Textual string consisted of Control characters between 0 .. 31, 127, and
+128 .. 159, and space represented by 32, and graphic characters between
+33 .. 236 and 160 .. 255 are called @cindex{8bit (textual)
+string}@strong{8bit (textual) string}.@refill
+
+For example, iso-8859-1 (@ref{iso-8859-1}) or euc-kr (@ref{euc-kr}) are
+coded-character-set represented by 8bit textual string.@refill
+
+Traditional Internet MTA (@ref{MTA}) can translate only 7bit
+(@ref{7bit}) data, so if a 8bit data will be translated such MTA, it
+must be encoded by Quoted-Printable (@ref{Quoted-Printable}) or Base64
+(@ref{Base64}).@refill
+
+However 8bit MTA are increasing today.@refill
+
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data.  RFC 2045 (@ref{RFC 2045}) require lines in
+8bit data must be less than 998 bytes.  So if a ``8bit data'' has a line
+more than 999 bytes, it is regarded as binary (@ref{binary}), so it must
+be encoded by Base64 or Quoted-Printable.
+
+
+@node 94-character set, 96-character set, 8bit, Glossary
+@subsection 94-character set
+
+@cindex{94-character set}@strong{94-character set} is a kind of 1 byte
+graphic character set (@ref{graphic character set}), each characters are
+in positions 02/01 (33) to 07/14 (126) or 10/01 (161) to 15/14 (254).
+(ex. ASCII (@ref{ASCII}), JIS X0201-Latin)
+
+
+@node 96-character set, 94x94-character set, 94-character set, Glossary
+@subsection 96-character set
+
+@cindex{96-character set}@strong{96-character set} is a kind of 1 byte
+graphic character set (@ref{graphic character set}), each characters are
+in positions 02/00 (32) to 07/15 (126) or 10/00 (160) to 15/15
+(255). (ex. ISO 8859)
+
+
+@node 94x94-character set, ASCII, 96-character set, Glossary
+@subsection 94x94-character set
+
+@cindex{94x94-character set}@strong{94x94-character set} is a kind of 2
+byte graphic character set (@ref{graphic character set}), each bytes are
+in positions 02/01 (33) to 07/14 (126) or 10/01 (161) to 15/14 (254).
+(ex. JIS X0208 (@ref{JIS X0208}), GB 2312 (@ref{GB 2312}))
+
+
+@node ASCII, Base64, 94x94-character set, Glossary
 @subsection ASCII
 
-$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B 94 $BJ8;z=89g(B(@ref{94 character
-set})$B!#(BA-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646
-(@ref{ISO 646}) $B$N0l$D!#(B
+$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B 94-character set
+(@ref{94-character set}).  A-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+(B
+$B$i$J$k!#(BISO 646 (@ref{ISO 646}) $B$N0l$D!#(B
 
 @cindex{ASCII}@cindex{ANSI X3.4:1986}
 @noindent
@@ -307,19 +259,20 @@
 @node Base64, binary, ASCII, Glossary
 @subsection Base64
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B 
-binary data (@ref{binary}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
-
-$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B ASCII
-(@ref{ASCII}) 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B 
-@cindex{pad}@strong{pad} $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B@refill
-
-$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B
-Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B
-$B$l$F$$$k!#(B
-
-
-@node binary, Character Set, Base64, Glossary
+@cindex{Base64}@strong{Base64} is a transfer encoding method of MIME
+(@ref{MIME}) defined in RFC 2045 (@ref{RFC 2045}).@refill
+
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters.  Encoded characters represent integer 0
+.. 63 or @cindex{pad}@strong{pad}.  Base64 data must be 4 * n bytes, so
+pad is used to adjust size.@refill
+
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC.  So it is safe even if it is
+translated by non-Internet gateways.
+
+
+@node binary, graphic character set, Base64, Glossary
 @subsection binary
 
 $BG$0U$N(B byte $BNs$r(B @cindex{binary}@strong{binary} $B$H8F$V$3$H$K$7$^$9!#(B
@@ -335,15 +288,13 @@
 $BG$0U$N(B data $B$r;X$9$3$H$,$"$j$^$9!#(B
 
 
-@node Character Set, cn-gb, binary, Glossary
-@subsection Character Set$B!JJ8;z=89g!K(B
-
-$BId9f2=J8;z=89g(B(@ref{Coded character set})$B!#C"$7!"$3$3$G$O(B $BId9f3HD%(B
-(@ref{Code extension}) $B$5$l$F$J$$J8;z=89g$H$$$&%K%e%"%s%9$r9~(B
-$B$a$F$$$k!#(B
-
-
-@node cn-gb, cn-big5, Character Set, Glossary
+@node graphic character set, cn-gb, binary, Glossary
+@subsection Graphic Character Set
+
+Coded character set (@ref{Coded character set}) for graphic characters.
+
+
+@node cn-gb, cn-big5, graphic character set, Glossary
 @subsection cn-gb, gb2312
 
 $BCf9qBgN&$G$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B MIME
@@ -362,8 +313,8 @@
 $BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
 MIME charset (@ref{MIME charset}) $B$N#1$D!#(B@refill
 
-ISO 2022 (@ref{ISO 2022}) $B$K4p$+$J$$(B 8bit (@ref{8bit}) $B$NId9f2=J8;z=89g(B
-(@ref{Coded character set})$B$G(B de-fact standard $B$G$"$k!#(BRFC 1922
+ISO 2022 (@ref{ISO 2022}) $B$K4p$+$J$$(B 8bit (@ref{8bit}) $B$N(Bcoded character
+set (@ref{coded character set})$B$G(B de-fact standard $B$G$"$k!#(BRFC 1922
 (@ref{RFC 1922}) $B$GDj5A$5$l$F$$$k!#(B@refill
 
 cf. @cindex{BIG5}
@@ -377,7 +328,7 @@
 CNS 11643-1986 (@ref{CNS}) $B$HBP1~4X78$,$"$k!#(B
 
 
-@node CNS, Coded character set, cn-big5, Glossary
+@node CNS, coded character set, cn-big5, Glossary
 @subsection CNS 11643-1992
 
 $BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
@@ -398,20 +349,22 @@
 
 
 
-@node Coded character set, Code extension, CNS, Glossary
-@subsection Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
-
-$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B
-
-
-@node Code extension, Content-Disposition, Coded character set, Glossary
-@subsection Code extension$B!JId9f3HD%!K(B
-
-$BM?$($i$l$?J8;z=89g(B(@ref{Character set})$B$K4^$^$l$F$$$J$$J8;z$NId9f2=$N$?(B
-$B$a$KMQ$$$k<jK!!#(BISO 2022 (@ref{ISO 2022}) $B$O$=$N#1$D!#(B
-
-
-@node Content-Disposition, content-type, Code extension, Glossary
+@node coded character set, code extension, CNS, Glossary
+@subsection Coded character set, Character code
+
+A set of unambiguous rules that establishes a character set and the
+one-to-one relationship between the characters of the set and their
+bit combinations.
+
+
+@node code extension, Content-Disposition, coded character set, Glossary
+@subsection Code extension
+
+The techniques for the encoding of characters that are not included in
+the character set of a given code. (ex. ISO 2022 (@ref{ISO 2022}))
+
+
+@node Content-Disposition, media type, code extension, Glossary
 @subsection Content-Disposition field
 
 Content $B$NI=<($N;EJ}$d(B file $BL>$rI=8=$9$k$?$a$N(B field. MIME (@ref{MIME}) 
@@ -428,60 +381,63 @@
 
 
 
-@node content-type, Content-Type field, Content-Disposition, Glossary
-@subsection content-type
-
-MIME (@ref{MIME}) $B$K$*$1$k(B part (@ref{part}) $B$N<oN`!#(B
-@cindex{type}@strong{type} $B$H(B @cindex{subtype}@strong{subtype} $B$+$i$J$k!#(B
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k!#(B@refill
-
-type $B$OI8=`$G$O(B @cindex{application}@strong{application},
-@cindex{audio}@strong{audio}, @cindex{image}@strong{image},
-@cindex{message}@strong{message}, @cindex{multipart}@strong{multipart}
-(@ref{multipart}), @cindex{text}@strong{text},
-@cindex{video}@strong{video} $B$,Dj5A$5$l!"$=$l$>$l$K$O(B 
-application/octet-stream, audio/basic, image/jpeg, multipart/mixed
-(@ref{multipart/mixed}), text/plain (@ref{text/plain}), video/mpeg $B$J$I(B
-$B$N$5$^$6$^$J(B subtype $B$,Dj5A$5$l$F$$$k!#(B
-
-@noindent
-@strong{[$BCm0U(B]}
-@quotation
-
-$B$3$3$G$O!"(Btext/plain $B$J$I$N(B type/subtype $B$NAH$r$7$P$7$P(B 
-@cindex{content-type/subtype}@strong{content-type/subtype} $B$H=q$/!#(B
-@end quotation
-
-
-content-type $B$O!"(BRFC 1521 $B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G(B
-$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O(B MEDIA TYPES
-(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) $B$G;2>H$G$-$k!#(B
-
-$B$^$?!"(Btype $B$b$7$/$O(B subtype $B$K!"A0$K(B `x-' $B$rIU$1$?(B 
-@cindex{x-token}@strong{x-token} $B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b(B
-$B$N$r;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J(B 
-content-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3(B
-$B$H!#(B@refill
+@node media type, Content-Type field, Content-Disposition, Glossary
+@subsection media type
+
+@cindex{media type}@strong{media type} specifies the nature of the data
+in the body of MIME (@ref{MIME}) entity (@ref{entity}).  It consists of
+@cindex{type}@strong{type} and @cindex{subtype}@strong{subtype}.  It is
+defined in RFC 2046 (@ref{RFC 2046}).@refill
+
+Currently there are following types:
+
+@itemize @bullet
+@item
+@cindex{text}@strong{text}
+@item
+@cindex{image}@strong{image}
+@item
+@cindex{audio}@strong{audio}
+@item
+@cindex{video}@strong{video}
+@item
+@cindex{application}@strong{application}
+@item
+@cindex{multipart}@strong{multipart} (@ref{multipart})
+@item
+@cindex{message}@strong{message}
+@end itemize
+
+
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, multipart/mixed (@ref{multipart/mixed}),
+text/plain (@ref{text/plain}), video/mpeg...@refill
+
+You can refer registered media types at MEDIA TYPES
+(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types).@refill
+
+In addition, you can use private type or subtype using
+@cindex{x-token}@strong{x-token}, which as the prefix `x-'.  However you
+can not use them in public.@refill
 
 (cf. @ref{Content-Type field})
 
 
 
-@node Content-Type field, Emacs, content-type, Glossary
+@node Content-Type field, Emacs, media type, Glossary
 @subsection Content-Type field
 
-Header field to represent information about part, such as content-type
-(@ref{content-type}), MIME charset (@ref{MIME charset}).  It is defined
-in RFC 1521 (@ref{RFC 1521}).
+Header field to represent information about body, such as media type
+(@ref{media type}), MIME charset (@ref{MIME charset}).  It is defined in
+RFC 2045 (@ref{RFC 2045}).
 
 @noindent
 @strong{[Memo]}
 @quotation
 
 Historically, Content-Type field was proposed in RFC 1049.  In it,
-Content-Type did not distinguish type and subtype.  However RFC 1521
-parser may be able to accept RFC 1049 based Content-Type as unknown
-type.
+Content-Type did not distinguish type and subtype.  However MIME parser
+may be able to accept RFC 1049 based Content-Type as unknown type.
 @end quotation
 
 
@@ -548,15 +504,15 @@
 @subsection encoded-word
 
 Representation non ASCII (@ref{ASCII}) characters in header.  It is
-defined in @cindex{RFC 1522}@strong{RFC 1522}.@refill
-
-@cindex{Standards Track}@cindex{RFC 1522}
+defined in @cindex{RFC 2047}@strong{RFC 2047}.@refill
+
+@cindex{Standards Track}@cindex{RFC 2047}
 @noindent
-[RFC 1522]
+[RFC 2047]
 @quotation
-K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Two:
-Message Header Extensions for Non-ASCII Text'', September 1993,
-Standards Track.
+K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Three:
+Message Header Extensions for Non-ASCII Text'', November 1996, Standards
+Track (obsolete RFC 1521,1522,1590).
 @end quotation
 
 
@@ -612,9 +568,9 @@
 @node GB 2312, GB 8565.2, FTP, Glossary
 @subsection GB 2312-1980
 
-$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=$9$?$a$N(B 94$B!_(B94 $BJ8;z(B
-$B=89g(B(@ref{94x94 character set})$B!#Cf9q$N9q2HI8=`!#(BISO 2022 (@ref{ISO
-2022}) $B$G$N=*C<J8;z$O(B `A'.@refill
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=$9$?$a$N(B 
+94x94-character set (@ref{94x94-character set})$B!#Cf9q$N9q2HI8=`!#(BISO
+2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `A'.@refill
 
 $B$3$l$O(B GB $B$K$*$1$k4pK\=8$G$"$k!#(B
 
@@ -760,10 +716,10 @@
 @node iso-2022-jp-2, iso-2022-kr, iso-2022-jp, Glossary
 @subsection iso-2022-jp-2
 
-iso-2022-jp (@ref{iso-2022-jp}) $B$r3HD%$7$?(B MIME charset (@ref{MIME
-charset}) $B$N0l$D!#(B@refill
-
-RFC 1554 $B$GDj5A$5$l$F$$$k!#(B
+A MIME charset (@ref{MIME charset}), which is a multilingual extension
+of iso-2022-jp (@ref{iso-2022-jp}).@refill
+
+It is defined in RFC 1554.
 
 @cindex{iso-2022-jp-2}@cindex{Informational}@cindex{RFC 1554}
 @noindent
@@ -778,13 +734,14 @@
 @node iso-2022-kr, ISO 646, iso-2022-jp-2, Glossary
 @subsection iso-2022-kr
 
-$B4Z9q8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
-
-ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(B KS C5601
-(@ref{KS C5601}) $B$r(B 7bit (@ref{7bit}) $B$GId9f3HD%(B (@ref{Code extension})
-$B$7$F$$$k!#(B@refill
-
-RFC 1557 (@ref{RFC 1557}) $B$GDj5A$5$l$F$$$k!#(B
+A MIME charset (@ref{MIME charset}) for Korean language (Hangul
+script).@refill
+
+It is based on ISO 2022 (@ref{ISO 2022}) code extension (@ref{code
+extension}) technique to extends ASCII (@ref{ASCII}) to use KS C5601
+(@ref{KS C5601}) as 7bit (@ref{7bit}) text.@refill
+
+It is defined in RFC 1557 (@ref{RFC 1557}).
 
 
 @node ISO 646, ISO 8859-1, iso-2022-kr, Glossary
@@ -809,9 +766,6 @@
 @node ISO 8859-1, iso-8859-1, ISO 646, Glossary
 @subsection ISO 8859-1
 
-$B@>2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96
-character set})$B!#(B
-
 @cindex{ISO 8859-1}@cindex{ISO 8859-1:1987}
 @noindent
 [ISO 8859-1]
@@ -826,21 +780,19 @@
 @node iso-8859-1, ISO 8859-2, ISO 8859-1, Glossary
 @subsection iso-8859-1
 
-$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+@cindex{iso-8859-1}@strong{iso-8859-1} is a MIME charset (@ref{MIME
+charset}) for west-European languages written by Latin script.@refill
 
 ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-1
 (@ref{ISO 8859-1}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
 extension})$B$7$F$$$k!#(B@refill
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k!#(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
 
 
 @node ISO 8859-2, iso-8859-2, iso-8859-1, Glossary
 @subsection ISO 8859-2
 
-$BEl2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96
-character set})$B!#(B
-
 @cindex{ISO 8859-2}@cindex{ISO 8859-2:1987}
 @noindent
 [ISO 8859-2]
@@ -855,13 +807,14 @@
 @node iso-8859-2, ISO 8859-3, ISO 8859-2, Glossary
 @subsection iso-8859-2
 
-$BEl2$=t8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+@cindex{iso-8859-2}@strong{iso-8859-2} is a MIME charset (@ref{MIME
+charset}) for east-European languages written by Latin script.@refill
 
 ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-2
 (@ref{ISO 8859-2}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
 extension})$B$7$F$$$k!#(B@refill
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k!#(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
 
 
 @node ISO 8859-3, ISO 8859-4, iso-8859-2, Glossary
@@ -895,8 +848,6 @@
 @node ISO 8859-5, iso-8859-5, ISO 8859-4, Glossary
 @subsection ISO 8859-5
 
-$B%-%j%kJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96 character set})$B!#(B
-
 @cindex{ISO 8859-5}@cindex{ISO 8859-5:1988}
 @noindent
 [ISO 8859-5]
@@ -911,13 +862,14 @@
 @node iso-8859-5, ISO 8859-6, ISO 8859-5, Glossary
 @subsection iso-8859-5
 
-$B%-%j%kJ8;z$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+@cindex{iso-8859-5}@strong{iso-8859-5} is a MIME charset (@ref{MIME
+charset}) for Cyrillic script.@refill
 
 ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-5
 (@ref{ISO 8859-5}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
 extension})$B$7$F$$$k!#(B@refill
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k!#(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
 
 
 @node ISO 8859-6, ISO 8859-7, iso-8859-5, Glossary
@@ -937,8 +889,6 @@
 @node ISO 8859-7, iso-8859-7, ISO 8859-6, Glossary
 @subsection ISO 8859-7
 
-$B%.%j%7%"J8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96 character set})$B!#(B
-
 @cindex{ISO 8859-7}@cindex{ISO 8859-7:1987}
 @noindent
 [ISO 8859-7]
@@ -953,13 +903,14 @@
 @node iso-8859-7, ISO 8859-8, ISO 8859-7, Glossary
 @subsection iso-8859-7
 
-$B%.%j%7%"8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+@cindex{iso-8859-7}@strong{iso-8859-7} is a MIME charset (@ref{MIME
+charset}) for Greek script.@refill
 
 ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-7
 (@ref{ISO 8859-7}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
 extension})$B$7$F$$$k!#(B@refill
 
-RFC 1947 $B$GDj5A$5$l$F$$$k!#(B
+It is defined in RFC 1947.
 
 @cindex{iso-8859-7}@cindex{Informational}@cindex{RFC 1947}
 @noindent
@@ -1003,7 +954,7 @@
 @subsection ISO-IR-165, CCITT Extended GB 
 
 CCITT $B$,EPO?$7$?!"Cf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=(B
-$B$9$k$?$a$N(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B@refill
+$B$9$k$?$a$N(B 94x94-character set (@ref{94x94-character set})$B!#(B@refill
 
 GB 2312 (@ref{GB 2312}) $B$H(B GB 8565 $BI=#2(B (@ref{GB 8865.2}) $B$K(B 150 $BJ8;z$[(B
 $B$I$rDI2C$7$?$b$N$i$7$$!#(B@refill
@@ -1036,7 +987,7 @@
 @noindent
 [JIS X0201-1996?]
 @quotation
-$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#70C%H5Z$S#80C%H$N>p(B
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#7%S%C%H5Z$S#8%S%C%H$N>p(B
 $BJs8r49MQId9f2=J8;z=89g!Y(B, ``7-bit and 8-bit coded character sets for
 information interchange'', JIS X 0201:1996?  draft.
 @end quotation
@@ -1046,8 +997,8 @@
 @node JIS C6226, JIS X0208, JIS X0201, Glossary
 @subsection JIS C6226-1978
 
-$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B
-$BF|K\$N9q2HI8=`!#(BJIS X0208-1978 $B$H$b$$$&!#(B@refill
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94x94-character set (@ref{94x94-character
+set})$B!#F|K\$N9q2HI8=`!#(BJIS X0208-1978 $B$H$b$$$&!#(B@refill
 
 (cf. @ref{JIS X0208})
 
@@ -1056,9 +1007,9 @@
 @node JIS X0208, JIS X0212, JIS C6226, Glossary
 @subsection JIS X0208
 
-$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B
-$BF|K\$N9q2HI8=`!#(B1978 $BG/HG!"(B1983 $BG/HG!"(B1990 $BG/HG$,$"$k$,!"(BInternet $B$G$O(B 
-1983 $BG/HG$,$b$C$H$bNI$/;H$o$l$F$$$k!#(B@refill
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94x94-character set (@ref{94x94-character
+set})$B!#F|K\$N9q2HI8=`!#(B1978 $BG/HG!"(B1983 $BG/HG!"(B1990 $BG/HG$,$"$k$,!"(BInternet 
+$B$G$O(B 1983 $BG/HG$,$b$C$H$bNI$/;H$o$l$F$$$k!#(B@refill
 
 JIS X0208 $B$O5-9f!"?t;z!"%m!<%^;z!"$R$i$,$J!"%+%?%+%J!"%.%j%7%cJ8;z!"%-%j(B
 $B%kJ8;z!"7S@~AG!"Bh#1?e=`!"Bh#2?e=`$N4A;z$,4^$^$l$k!#C"$7!"(B1983 $BG/HG$N0l(B
@@ -1095,8 +1046,8 @@
 @noindent
 [JIS X0208-1996?]
 @quotation
-$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#70C%H5Z$S#80C%H$N(B 
-$B#2/set/ipe/ps6/WorkSpaces/xemacs-20.0-working/editor/man/tm/SCCS/s.tm-en.texi$%H>pJs8r49MQId9f2=4A;z=89g!Y(B, ``7-bit and 8-bit double byte coded
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#7%S%C%H5Z$S#8%S%C%H$N(B 
+$B#2%P%$%H>pJs8r49MQId9f2=4A;z=89g!Y(B, ``7-bit and 8-bit double byte coded
 Kanji sets for information interchange'', JIS X 0208:1996? draft.
 @end quotation
 
@@ -1105,21 +1056,22 @@
 @node JIS X0212, koi8-r, JIS X0208, Glossary
 @subsection JIS X0212-1990
 
-JIS X0208 (@ref{JIS X0208}) $B$K$J$+$C$?J8;z$r=8$a$?(B 94$B!_(B94 $BJ8;z=89g(B
-(@ref{94x94 character set})$B!#!VJd=u4A;z!W$H$b8F$P$l$k!#F|K\$N9q2HI8=`!#(B
+JIS X0208 (@ref{JIS X0208}) $B$K$J$+$C$?J8;z$r=8$a$?(B 94x94-character set
+(@ref{94x94-character set})$B!#!VJd=u4A;z!W$H$b8F$P$l$k!#F|K\$N9q2HI8=`!#(B
 ISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `D'.
 
 
 @node koi8-r, KS C5601, JIS X0212, Glossary
 @subsection koi8-r
 
-$B%m%7%d8lEy$GMQ$$$i$l$k%-%j%kJ8;z$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME
-charset}) $B$N#1$D!#(B@refill
-
-ISO 2022 (@ref{ISO 2022}) $B$K4p$+$J$$(B 8bit (@ref{8bit}) $B$NId9f2=J8;z=89g(B
-(@ref{Coded character set})$B$G(B de-fact standard $B$G$"$k!#(B
-
-RFC 1489 $B$GDj5A$5$l$F$$$k!#(B@refill
+A MIME charset (@ref{MIME charset}) for Cyrillic script for Russian or
+other languages.@refill
+
+It is a 1 byte 8bit (@ref{8bit}) coded character set (@ref{coded
+character set}), not based on ISO 2022 (@ref{ISO 2022}).  It is a
+de-fact standard.@refill
+
+It is defined in RFC 1489.@refill
 
 @cindex{RFC 1489}
 @noindent
@@ -1133,8 +1085,9 @@
 @node KS C5601, message, koi8-r, Glossary
 @subsection KS C5601-1987
 
-$B4Z9q8l$rI=$9$?$a$N(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#4Z9q$N9q(B
-$B2HI8=`!#(BISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `C'.
+A 94x94-character set (@ref{94x94-character set}) for Korean language
+(Hangul script).  Korean Standard.  Final byte of ISO 2022 (@ref{ISO
+2022}) is `C'.
 
 @cindex{KS C5601}@cindex{KS C 5601:1987}
 @noindent
@@ -1156,9 +1109,11 @@
 @node message/rfc822, method, message, Glossary
 @subsection message/rfc822
 
-$BEAE}E*$J(B RFC 934 (@ref{RFC 934}) $B$KBe$o$j!"(BRFC 822 (@ref{RFC 822}) $B$GDj(B
-$B5A$5$l$k(B mail $B$rI=$9(B MIME $B$N7A<0!#(BRFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F(B
-$B$$$k!#(B
+@cindex{message/rfc822}@strong{message/rfc822} indicates that the body
+contains an encapsulated message, with the syntax of an RFC 822
+(@ref{RFC 822}) message.  It is the replacement of traditional RFC 934
+(@ref{RFC 934}) encapsulation.  It is defined in RFC 2046 (@ref{RFC
+2046}).
 
 
 @node method, MIME, message/rfc822, Glossary
@@ -1176,26 +1131,45 @@
 @node MIME, MIME charset, method, Glossary
 @subsection MIME
 
-@cindex{Multipurpose Internet Mail Extensions}@strong{Multipurpose
-Internet Mail Extensions} $B$NN,$G!"(BInternet $B$N(B mail $B$d(B news $B$G(B us-ascii
-plain text (@ref{us-ascii}) $B0J30$NJ8;z$r;H$&$?$a$N(B RFC 822 (@ref{RFC
-822}) $B$KBP$9$k3HD%!#(B@refill
-
-RFC 1521 (@ref{RFC 1521}) $B$H(B RFC 1522 (@ref{encoded-word}) $B$GDj5A$5$l$F(B
-$B$$$k!#(B@refill
-
-(cf. @ref{What is MIME?})
-
+MIME stands for @cindex{Multipurpose Internet Mail
+Extensions}@strong{Multipurpose Internet Mail Extensions}, it is an
+extension for RFC 822 (@ref{RFC 822}).@refill
+
+According to RFC 2045:@refill
+
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text.  This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow
+for@refill
+
+@enumerate
+@item
+textual message bodies in character sets other than US-ASCII,
+@item
+an extensible set of different formats for non-textual message
+bodies,
+@item
+multi-part message bodies, and
+@item
+textual header information in character sets other than US-ASCII.
+@end enumerate
+
+
+It is defined in RFC 2045 (@ref{RFC 2045}), RFC 2046 (@ref{RFC 2046}),
+RFC 2047 (@ref{encoded-word}), RFC 2048 (@ref{RFC 2048}) and RFC 2049
+(@ref{RFC 2049}).
 
 
 @node MIME charset, MTA, MIME, Glossary
 @subsection MIME charset
 
-Content-Type field (@ref{Content-Type field}) $B$d(B encoded-word
-(@ref{encoded-word}) $B$N(B charset parameter $B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8(B
-$B;z=89g(B (@ref{Coded character set})$B!#(B@refill
-
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k!#(B@refill
+Coded character set (@ref{Coded character set}) used in Content-Type
+field (@ref{Content-Type field}) or charset parameter of encoded-word
+(@ref{encoded-word}).@refill
+
+It is defined in RFC 2045 (@ref{RFC 2045}).@refill
 
 iso-2022-jp (@ref{iso-2022-jp}) $B$d(B euc-kr (@ref{euc-kr}) $B$O$=$N#1$D!#(B
 $B!J$3$3$G$O!"(BMIME charset $B$OJ8;z=89g(B (@ref{Character set})$B$H6hJL$7$F>.J8(B
@@ -1247,12 +1221,11 @@
 @node multipart, multipart/alternative, MULE, Glossary
 @subsection Multipart
 
-$B#1$D$N(B message (@ref{message}) $B$KJ#?t$N(B part $B$rF~$l$k$?$a$N(B MIME
-(@ref{MIME}) $B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N(B part $B$+$i$J$k(B message $B$r;X(B
-$B$9!#(B(cf. @ref{content-type}) @refill
-
-$B8=:_!"Dj5A$5$l$F$$$k(B @cindex{multipart}@strong{multipart} $B$H$7$F$O!"(BRFC
-1521 (@ref{RFC 1521}) $B$GDj5A$5$l$?(B
+@cindex{multipart}@strong{multipart} means media type (@ref{media type})
+to insert multiple entities (@ref{entities}) in a single body.  Or it
+also indicates a message consists of multiple entities.@refill
+
+There are following subtypes registered in RFC 2046 (@ref{RFC 2046}):
 
 @itemize @bullet
 @item
@@ -1266,7 +1239,7 @@
 @end itemize
 
 @noindent
-$B$N$[$+(B RFC 1847 (@ref{Security multipart}) $B$GDj5A$5$l$?(B
+and registered in RFC 1847 (@ref{Security multipart}):
 
 @itemize @bullet
 @item
@@ -1275,33 +1248,35 @@
 multipart/encrypted (@ref{multipart/encrypted})
 @end itemize
 
-@noindent
-$B$J$I$,$"$k!#(B
 
 
 @node multipart/alternative, multipart/digest, multipart, Glossary
 @subsection multipart/alternative
 
-multipart (@ref{multipart}) $B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h(B
-$B$H$9$k>l9g$KMQ$$$k!#(B@refill
-
-(cf. @ref{RFC 1521})
+@cindex{multipart/digest}@strong{multipart/digest} is one of multipart
+(@ref{multipart}) media types.  This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different.  In particular, each of the body parts is an ``alternative''
+version of the same information.@refill
+
+(cf. @ref{RFC 2046})
 
 
 
 @node multipart/digest, multipart/encrypted, multipart/alternative, Glossary
 @subsection multipart/digest
 
-multipart (@ref{multipart}) $B$N#1$D$G!"4^$^$l$k(B part $B$N(B default $B$N(B
-content-type (@ref{content-type}) $B$,(B multipart/mixed
-(@ref{multipart/mixed}) $B$J$I$N>l9g(B text/plain (@ref{text/plain}) $B$G$"$k(B
-$B$N$KBP$7!"(B@cindex{multipart/digest}@strong{multipart/digest}$B$G$O(B 
-message/rfc822 (@ref{message/rfc822}) $B$,MQ$$$i$l$kE@$,0[$J$k!#(B@refill
-
-$B$3$l$OEAE}E*$J(B RFC 1153 (@ref{RFC 1153}) $B$K4p$E$/(B encapsulation
-(@ref{encapsulation}) $B$KBe$o$k$b$N$G$"$k!#(B@refill
-
-(cf. @ref{RFC 1521})
+@cindex{multipart/digest}@strong{multipart/digest} is one of multipart
+(@ref{multipart}) media types.  This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different.  In particular, in a digest, the default Content-Type value
+for a body part is changed from text/plain (@ref{text/plain}) to
+message/rfc822 (@ref{message/rfc822}).@refill
+
+This is the replacement of traditional RFC 1153 (@ref{RFC 1153}) based
+encapsulation (@ref{encapsulation}).@refill
+
+(cf. @ref{RFC 2046})
 
 
 
@@ -1318,20 +1293,24 @@
 @node multipart/mixed, multipart/parallel, multipart/encrypted, Glossary
 @subsection multipart/mixed
 
-multipart (@ref{multipart}) $B$N<gMW$J(B subtype $B$G!"J#?t$N(B part $B$r=g=xIU$1(B
-$B$FJB$Y$k>l9g$KMQ$$$k!#(B@refill
-
-(cf. @ref{RFC 1521})
+Primary and default subtype of multipart (@ref{multipart}), it is used
+when the body parts are independent and need to be bundled in a
+particular order.@refill
+
+(cf. @ref{RFC 2046})
 
 
 
 @node multipart/parallel, multipart/signed, multipart/mixed, Glossary
 @subsection multipart/parallel
 
-multipart (@ref{multipart}) $B$N#1$D$G!"J#?t$N(B part $B$r=g=xIU$1$:$K4^$a$k>l(B
-$B9g$KMQ$$$k!#(B@refill
-
-(cf. @ref{RFC 1521})
+@cindex{multipart/parallel}@strong{multipart/parallel} is a subtype of
+multipart (@ref{multipart}).  This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different.  In particular, in a parallel entity, the order of body parts
+is not significant.@refill
+
+(cf. @ref{RFC 2046})
 
 
 
@@ -1430,16 +1409,15 @@
 @node Quoted-Printable, RFC 821, PGP/MIME, Glossary
 @subsection Quoted-Printable
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B 
-binary data (@ref{binary}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
-
-`=' $B$d@)8fJ8;z$d(B 128 $B0J>e$NJ8;z$J$I$O(B `=AF' $B$N$h$&$K(B `=' $B$N8e$KB3$/(B 16 
-$B?J?t$GI=8=$9$k!#$3$N$?$a!"(BASCII (@ref{ASCII}) $BJ8;zCf?4$N(B data $B$G$O(B 
-Base64 (@ref{Base64}) $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#(B@refill
-
-$B$7$+$7$J$,$i!"(BEBCDIC $B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"(BEBCDIC $B$rMxMQ$7(B
-$B$F$$$k(B network $B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"(BBase64 $B$KHf$Y$F0BA4@-$O(B
-$BDc$$!#(B
+@cindex{Quoted-Printable}@strong{Quoted-Printable} is a transfer
+encoding method of MIME (@ref{MIME}) defined in RFC 2045 (@ref{RFC
+2045}).@refill
+
+If the data being encoded are mostly US-ASCII text, the encoded form of
+the data remains largely recognizable by humans.@refill
+
+(cf. @ref{Base64})
+
 
 
 @node RFC 821, RFC 822, Quoted-Printable, Glossary
@@ -1521,7 +1499,7 @@
 
 
 
-@node RFC 1153, RFC 1521, RFC 1036, Glossary
+@node RFC 1153, RFC 1557, RFC 1036, Glossary
 @subsection RFC 1153
 
 $BJ#?t$N(B Internet mail (@ref{RFC 822}) $B$r(B 
@@ -1544,26 +1522,7 @@
 
 
 
-@node RFC 1521, RFC 1557, RFC 1153, Glossary
-@subsection RFC 1521 
-
-MIME (@ref{MIME}) $B$rDj5A$7$F$$$k(B RFC $B$N#1$D!#(B
-
-@cindex{Standards Track}@cindex{RFC 1521}
-@noindent
-[RFC 1521]
-@quotation
-N. Borenstein and N. Freed, ``MIME (Multipurpose Internet Mail
-Extensions) Part One: Mechanisms for Specifying and Describing the
-Format of Internet Message Bodies'', September 1993, Standards Track
-(obsolete RFC 1341).
-@end quotation
-
-
-(RFC 1522 (@ref{encoded-word}))
-
-
-@node RFC 1557, RFC 1922, RFC 1521, Glossary
+@node RFC 1557, RFC 1922, RFC 1153, Glossary
 @subsection RFC 1557
 
 euc-kr (@ref{euc-kr}) $B$H(B iso-2022-kr (@ref{iso-2022-kr}) $B$H$$$&4Z9q8l$N(B
@@ -1579,7 +1538,7 @@
 
 
 
-@node RFC 1922, plain text, RFC 1557, Glossary
+@node RFC 1922, RFC 2045, RFC 1557, Glossary
 @subsection RFC 1922
 
 iso-2022-cn (@ref{iso-2022-cn}), iso-2022-cn-ext
@@ -1602,7 +1561,63 @@
 
 
 
-@node plain text, Security multipart, RFC 1922, Glossary
+@node RFC 2045, RFC 2046, RFC 1922, Glossary
+@subsection RFC 2045
+
+@cindex{Standards Track}@cindex{RFC 2045}
+@noindent
+[RFC 2045]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part One: Format of Internet Message Bodies'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2046, RFC 2048, RFC 2045, Glossary
+@subsection RFC 2046
+
+@cindex{Standards Track}@cindex{RFC 2046}
+@noindent
+[RFC 2046]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Two: Media Types'', November 1996, Standards Track (obsolete
+RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2048, RFC 2049, RFC 2046, Glossary
+@subsection RFC 2048
+
+@cindex{Standards Track}@cindex{RFC 2048}
+@noindent
+[RFC 2048]
+@quotation
+N. Freed, J. Klensin and J. Postel, ``Multipurpose Internet Mail
+Extensions (MIME) Part Four: Registration Procedures'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2049, plain text, RFC 2048, Glossary
+@subsection RFC 2049
+
+@cindex{Standards Track}@cindex{RFC 2049}
+@noindent
+[RFC 2049]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Five: Conformance Criteria and Examples'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node plain text, Security multipart, RFC 2049, Glossary
 @subsection plain text
 
 $B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$(B $BJ8;zId9f(B(@ref{Coded character set})$B$N$_(B
@@ -1634,9 +1649,9 @@
 @node text/enriched, text/plain, Security multipart, Glossary
 @subsection text/enriched
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$?(B 
-@cindex{text/richtext}@strong{text/richtext} $B$KBe$o$C$F!"=qBN$dAHHG$K4X(B
-$B$9$k>pJs$r;}$C$?(B text$B$rI=8=$9$k$?$a$N(B content-type (@ref{content-type}).
+RFC 1521 $B$GDj5A$5$l$?(B @cindex{text/richtext}@strong{text/richtext} $B$KBe(B
+$B$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?(B text$B$rI=8=$9$k$?$a$N(B media type
+(@ref{media type}).
 
 @cindex{text/enriched}@cindex{RFC 1896}
 @noindent
@@ -1651,13 +1666,16 @@
 @node text/plain, tm-kernel, text/enriched, Glossary
 @subsection text/plain
 
-RFC 1521 (@ref{RFC 1521}) $B$GDj5A$5$l$?!"(Bplain text (@ref{plain text}) $B$r(B
-$BI=8=$9$k$?$a$N(B content-type (@ref{content-type}).@refill
-
-$BHs(B MIME message $B$J$I$N(B content-type $B$,Dj5A$5$l$J$$(B part $B$O(B MIME charset
-(@ref{MIME charset}) $B$,(B us-ascii (@ref{us-ascii}) $B$G$"$k(B 
-@cindex{text/plain}@strong{text/plain} $B$N(B part $B$G$"$k$H8+Pv$5$l$k$3$H$K(B
-$B$J$C$F$$$k!#(B
+@cindex{text/plain}@strong{text/plain} is a media type (@ref{media
+type}) for plain text (@ref{plain text}), defined in RFC 2046 (@ref{RFC
+2046}).@refill
+
+The default media type of ``text/plain; charset=us-ascii'' for Internet
+mail describes existing Internet practice.  That is, it is the type of
+body defined by RFC 822 (@ref{RFC 822}).@refill
+
+(cf. @ref{MIME charset}) (cf. @ref{us-ascii})
+
 
 
 @node tm-kernel, tm-MUA, text/plain, Glossary
@@ -1958,9 +1976,9 @@
 
 @itemize @bullet
 @item
- $BF|K\8l(B <tm-ja-admin@@chamonix.jaist.ac.jp>
+ Japanese <tm-ja-admin@@chamonix.jaist.ac.jp>
 @item
- $B1Q8l(B <tm-en-admin@@chamonix.jaist.ac.jp>
+ English  <tm-en-admin@@chamonix.jaist.ac.jp>
 @end itemize
 
 @noindent
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-ja.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,1628 @@
+<!doctype sinfo system>
+<!-- $Id: tm-ja.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm 7.90 Manual$B!JF|K\8lHG!K(B
+<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/15
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm, a MIME package for GNU Emacs.
+<p>
+GNU Emacs $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$"$k(B `tm' $B$K$D$$$F@bL@$7$^(B
+$B$9!#(B
+</abstract>
+
+<h1> tm $B$C$F2?!)(B
+<node> Introduction
+<p>
+tm $B$O(B GNU Emacs $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$9!#(Btm $B$r;H$&$H!"(B
+
+<ul>
+<li> tm-view $B$K$h$k(B MIME message $B$N1\Mw!&:F@8(B 
+<li> tm-edit $B$K$h$k(B MIME message $B$N:n@.(B
+<li> mh-e, GNUS, Gnus, RMAIL, VM $B$G$N(B MIME $B5!G=$N6/2=(B
+</ul>
+
+<noindent>
+$B$H$$$&$h$&$J$3$H$,9T$J$($^$9!#(B
+<p>
+$B8DJL$N9`L\$K$D$$$F$O0J2<$r8f;2>H2<$5$$!'(B
+
+<ul>
+<li><a file="gnus-mime-ja">tm-MUA for Gnus</a>
+<li><a file="tm-gnus-ja">tm-MUA for GNUS</a>
+<li><a file="tm-mh-e-ja">tm-MUA for mh-e</a>
+<li><a file="tm-view-ja">mime/viewer-mode</a>
+<li><a file="tm-edit-ja">mime/editor-mode</a>
+</ul>
+
+
+<h2> $BMQ8l(B
+<node> Glossary
+<p>
+tm $B$G;H$o$l$F$$$kMQ8l$K$D$$$F2r@b$7$^$9!#(B
+
+<h3> 7bit
+<node> 7bit
+<p>
+$B$3$3$G$O(B 0 $B$+$i(B 127 $B$N@0?t$r;X$7$^$9!#(B
+<p>
+0 $B$+$i(B 127 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``7bit $B$N(B data'' $B$H8F(B
+$B$S$^$9!#(B
+<p>
+$B$^$?!"(B0 $B$+$i(B 31 $B$*$h$S(B 127 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=8=$5$l$k6uGr(B
+$B$H(B 33 $B$+$i(B 126 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r(B ``7bit $B$NJ8(B
+$B;zNs(B'' $B$H8F$S$^$9!J$3$l$O(B <a node="ISO 2022">ISO 2022</a> $B$N!V(B7 $BC10L7O!W(B
+$B$HF1MM$G$9!K!#(B
+<p>
+$BEAE}E*$J(B Internet $B$N(B <a node="MTA">MTA</a> $B$O(B 7bit $B$N(B data $B$rE>Aw$G$-(B
+$B$k$N$G!"(B7bit $B$N(B data $B$O(B <a
+node="Quoted-Printable">Quoted-Printable</a> $B$d(B <a
+node="Base64">Base64</a> $B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^(B
+$B$9!#(B
+<p>
+$B$7$+$7!"(B7bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#1(B
+$B9T$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$(B
+$B$+$i$G$9!#$A$J$_$K!"(B<a node="RFC 821">RFC 821</a> $B$O#19T$O2~9TJ8;z$r=|(B
+$B$$$F(B 998 byte $B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^(B
+$B$l$k2DG=@-$N$"$k(B data, $BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B 
+Quoted-Printable $BEy$G(B encode$B$9$kI,MQ$,$"$j$^$9!#(B
+
+
+<h3> 8bit
+<node> 8bit
+<p>
+$B$3$3$G$O(B 0 $B$+$i(B 255 $B$N@0?t$r;X$7$^$9!#(B
+<p>
+0 $B$+$i(B 255 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``8bit $B$N(B data'' $B$H8F(B
+$B$S$^$9!#(B
+<p>
+$B$^$?!"(B0 $B$+$i(B 31, 127 $B$*$h$S(B 128 $B$+$i(B 159 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$G(B
+$BI=8=$5$l$k6uGr$H(B 33 $B$+$i(B 126 $B$H(B 160 $B$+$i(B 255 $B$GI=8=$5$l$k?^7AJ8;z$+$i(B
+$B$J$kJ8;zNs$N$3$H$r(B ``8bit $B$NJ8;zNs(B'' $B$H8F$S$^$9!J$3$l$O(B <a node="ISO
+2022">ISO 2022</a> $B$N!V(B8 $BC10L7O!W$HF1MM$G$9!K!#(B
+<p>
+<a node="iso-8859-1">iso-8859-1</a> $B$d(B <a node="euc-kr">euc-kr</a> $B$H(B
+$B$$$C$?Id9f2=J8;z=89g$O(B 8bit $B$NJ8;zNs$G$9!#(B
+<p>
+$BEAE}E*$J(B Internet $B$N(B <a node="MTA">MTA</a> $B$O(B <a node="7bit">7bit</a> 
+$B$N(B data $B$7$+E>Aw$G$-$J$$$N$G!"$=$&$7$?(B MTA $B$r7PM3$9$k>l9g!"(B<a
+node="Quoted-Printable">Quoted-Printable</a> $B$d(B <a
+node="Base64">Base64</a> $B$H$$$C$?JQ49$r9T$o$J$/$F$O$J$j$^$;$s!#(B
+<p>
+$B$7$+$7!":G6a$G$O(B 8bit $B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k(B MTA $B$bEP>l$7(B
+$B$F$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#(B
+<p>
+$B$7$+$7!"(B8bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#1(B
+$B9T$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$(B
+$B$+$i$G$9!#$A$J$_$K!"(BRFC 821 $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998 byte $B0JFb$G$"(B
+$B$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k(B data, 
+$BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B encode$B$9$kI,MQ(B
+$B$,$"$j$^$9!#(B
+<p>
+$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,(B 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k(B
+data $B$O(B <a node="binary"><concept>binary</concept></a> $B$H8F$V$3$H$K$7(B
+$B$^$9!#(B
+<p>
+$B$A$J$_$K!"(B7bit $B$GI=8=$G$-$k(B data $B$O(B 8bit $B$G$bI=8=$G$-$^$9!#$h$C$F!"(B
+``8bit'' $B$H8@$C$?>l9g!"#19T$,(B 998 byte $B0J2<$NG$0U$N(B data $B$r;X$9$3$H$,(B
+$B$"$j$^$9!#(B
+
+
+<h3> 94 $BJ8;z=89g(B
+<node> 94 character set
+<p>
+33 $B$+$i(B 126 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B <a node="Character set">$BJ8;z=89g(B
+</a>$B!#(B<a node="ASCII">ASCII</a> $B$d(B JIS X0201-Latin $B$O$=$N0l<o!#(B
+
+
+<h3> 96 $BJ8;z=89g(B
+<node> 96 character set
+<p>
+32 $B$+$i(B 127 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B <a node="Character set">$BJ8;z=89g(B
+</a>$B!#(BISO 8859 $B%7%j!<%:$O$=$N0l<o!#(B
+
+
+<h3> 94$B!_(B94 $BJ8;z=89g(B
+<node> 94x94 character set
+<p>
+33 $B$+$i(B 126 $B$NHO0O$N(B 2 byte $B$+$i$J$k(B <a node="Character set">$BJ8;z=89g(B
+</a>$B!#(B<a node="JIS X0208">JIS X0208</a> $B$d(B <a node="GB 2312">GB
+2312</a> $B$O$=$N0l<o!#(B
+
+
+<h3> ASCII
+<node> ASCII
+<p>
+$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B <a node="94 character set">94 
+$BJ8;z=89g(B</a>$B!#(BA-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(B<a
+node="ISO 646">ISO 646</a> $B$N0l$D!#(B
+
+<standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
+	      American Standard Code for Information Interchange"
+	      number="ANSI X3.4" year="1986">
+
+
+<h3> Base64
+<node> Base64
+<p>
+<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B <a
+node="binary">binary data</a> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B
+<p>
+$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B 
+<dref>ASCII</dref> 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B 
+<concept>pad</concept> $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B
+<p>
+$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B
+Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B
+$B$l$F$$$k!#(B
+
+
+<h3> binary
+<node> binary
+<p>
+$BG$0U$N(B byte $BNs$r(B <concept>binary</concept> $B$H8F$V$3$H$K$7$^$9!#(B
+<p>
+<a node="8bit">8bit</a> $B$H0[$J$k$N$O(B data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G(B
+$B$9!#(B
+<p>
+$B$^$?!"9T$N9=B$$,$"$C$F$b!"(B999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b(B binary
+$B$H8F$V$3$H$K$7$^$9!#(B
+<p>
+$B$A$J$_$K!"(B<a node="7bit">7bit</a> $B$d(B 8bit $B$GI=8=$G$-$k(B data $B$O(B binary 
+$B$G$bI=8=$G$-$^$9!#$h$C$F!"(B<concept>binary data</concept> $B$H8@$C$?>l9g!"(B
+$BG$0U$N(B data $B$r;X$9$3$H$,$"$j$^$9!#(B
+
+
+<h3> Character Set$B!JJ8;z=89g!K(B
+<node> Character Set
+<p>
+<a node="Coded character set">$BId9f2=J8;z=89g(B</a>$B!#C"$7!"$3$3$G$O(B <a
+node="Code extension">$BId9f3HD%(B</a> $B$5$l$F$J$$J8;z=89g$H$$$&%K%e%"%s%9(B
+$B$r9~$a$F$$$k!#(B
+
+
+<h3> cn-gb, gb2312
+<node> cn-gb
+<p>
+$BCf9qBgN&$G$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a node="ASCII">ASCII</a> $B$K(B 
+<a node="GB 2312">GB 2312</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> cn-big5, big5
+<node> cn-big5
+<p>
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+<a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$+$J$$(B <a node="8bit">8bit</a> $B$N(B
+<a node="Coded character set">$BId9f2=J8;z=89g(B</a>$B$G(B de-fact standard $B$G(B
+$B$"$k!#(B<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+cf. <report abbrev="BIG5" author="Institute for Information Industry"
+	      title-en="Chinese Coded Character Set in Computer"
+	      date="March 1984">
+<p>
+<a node="CNS">CNS 11643-1986</a> $B$HBP1~4X78$,$"$k!#(B
+
+
+<h3> CNS 11643-1992
+<node> CNS
+<p>
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+<a node="Character set">$BJ8;z=89g(B</a>$B!#BfOQ$NI8=`!#8=:_!"(B<a node="94x94
+character set">94$B!_(B94</a> $B$NLL$,Bh#1LL$+$iBh#7LL$^$G$"$k!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$G$N=*C<J8;z$O!"Bh#1LL$,(B `G', $BBh#2LL$,(B 
+`H', $BBh#3LL$,(B `I', $BBh#4LL$,(B `J', $BBh#5LL$,(B `K', $BBh#6LL$,(B `L', $BBh#7LL$,(B 
+`M' $B$G$"$k!#(B
+
+<standard abbrev="CNS 11643-1992" title-en="Standard Interchange Code
+	      for Generally-Used Chinese Characters" number="CNS
+	      11643" year="1992">
+
+
+<h3> Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
+<node> Coded character set
+<p>
+$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B
+
+
+<h3> Code extension$B!JId9f3HD%!K(B
+<node> Code extension
+<p>
+$BM?$($i$l$?(B<a node="Character set">$BJ8;z=89g(B</a>$B$K4^$^$l$F$$$J$$J8;z$NId(B
+$B9f2=$N$?$a$KMQ$$$k<jK!!#(B<a node="ISO 2022">ISO 2022</a> $B$O$=$N#1$D!#(B
+
+
+<h3> Content-Disposition field
+<node> Content-Disposition
+<p>
+Content $B$NI=<($N;EJ}$d(B file $BL>$rI=8=$9$k$?$a$N(B field. <a
+node="MIME">MIME</a> $B$N3HD%$N#1$D!#(B
+<p>
+<rfc number="1806" type="Experimental" author="E R. Troost and
+	      S. Dorner" title="Communicating Presentation Information
+	      in Internet Messages: The Content-Disposition Header"
+	      date="June 1995">
+
+
+<h3> media type
+<node> media type
+<p>
+<dref>MIME</dref> $B$K$*$1$k(B <dref>entity</dref> $B$N<oN`!#(B
+<concept>type</> $B$H(B <concept>subtype</concept> $B$+$i$J$k!#(B<dref>RFC
+2046</dref> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+type $B$OI8=`$G$O(B
+
+<ul>
+<li><concept>text</concept>
+</li>
+<li><concept>image</concept>
+</li>
+<li><concept>audio</concept>
+</li>
+<li><concept>video</concept>
+</li>
+<li><concept>application</concept>
+</li>
+<li><a node="multipart"><concept>multipart</concept></a>
+</li>
+<li><concept>message</concept>
+</ul>
+
+<noindent>
+$B$,Dj5A$5$l!"$=$l$>$l$K$O(B application/octet-stream, audio/basic,
+image/jpeg, <dref>multipart/mixed</dref>, <dref>text/plain</dref>,
+video/mpeg $B$J$I$N$5$^$6$^$J(B subtype $B$,Dj5A$5$l$F$$$k!#(B
+
+<memo title="$BCm0U(B">
+<p>
+$B$3$3$G$O!"(Btext/plain $B$J$I$N(B type/subtype $B$NAH$r$7$P$7$P(B 
+<concept>content-type/subtype</concept> $B$H=q$/!#(B
+</memo>
+
+<p>
+media type $B$O!"(BRFC 2046 $B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G(B
+$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O(B <a
+href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
+TYPES</a> $B$G;2>H$G$-$k!#(B
+<p>
+$B$^$?!"(Btype $B$b$7$/$O(B subtype $B$K!"A0$K(B `x-' $B$rIU$1$?(B 
+<concept>x-token</concept> $B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b$N$r(B
+$B;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J(B 
+content-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k(B
+$B$3$H!#(B
+<p>
+<cf node="Content-Type field">
+
+
+<h3> Content-Type field
+<node> Content-Type field
+<p>
+<dref>media type</dref> $B$d(B <dref>MIME charset</dref> $B$J$I$N(B part $B$K4X(B
+$B$9$k>pJs$rI=8=$9$k$?$a$N(B field. <dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+<memo>
+<p>
+$BNr;KE*$K$O(B RFC 1049 $B$G(B Content-Type field $B$,Ds0F$5$l$F$$$k!#C"$7!"$3$3(B
+$B$G$O(B type $B$H(B subtype $B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O(B MIME parser $B$O(B 
+RFC 1049 $B$K4p$E$/(B message $B$rL$CN$N(B content-type $B$r;}$C$?(B message $B$H$7(B
+$B$F(B parse $B$G$-$k$@$m$&!#(B
+</memo>
+
+<p>
+Content-Type field $B$O(B
+
+<quote>
+``Content-Type'' ``:'' <concept>type</concept> ``/''
+<concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
+</quote>
+
+<noindent>
+$B$HDj5A$5$l$k!#(B
+<p>
+$BNc$($P!"(B
+
+<quote>
+<verb>
+Content-Type: image/jpeg
+</verb>
+</quote>
+
+<noindent>
+$B$d(B
+
+<quote>
+<verb>
+Content-Type: text/plain; charset=iso-2022-jp
+</verb>
+</quote>
+
+<noindent>
+$B$J$I$N$h$&$K=q$+$l$k!#(B
+
+<memo>
+<p>
+content-type $B$N$J$$(B part $B$O(B
+
+<quote>
+<verb>
+Content-Type: text/plain; charset=us-ascii
+</verb>
+</quote>
+
+<noindent>
+$B$H$7$F2r<a$5$l$k!#(B<cf node="us-ascii">
+</memo>
+
+
+<h3> Emacs
+<node> Emacs
+<p>
+$B$3$3$G$O(B `Emacs' $B$G(B FSF $B$,G[I[$7$F$$$k(B GNU Emacs $B$r;X$7!"(B`emacs' $B$G(B
+GNU Emacs $B$NJQ<o$NAm>N$H$9$k!#(B
+
+
+<h3> encoded-word
+<node> encoded-word
+<p>
+header $B$K$*$1$kHs(B <a node="ASCII">ASCII</a> $BJ8;z$NI=8=!#(B<concept>RFC
+2047</concept> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<rfc number="2047" type="Standards Track" author="K. Moore"
+	      title="MIME (Multipurpose Internet Mail Extensions) Part
+	      Three: Message Header Extensions for Non-ASCII Text"
+	      date="November 1996" obsolete="1521,1522,1590">
+
+
+<h3> encapsulation
+<node> encapsulation
+<p>
+<a node="RFC 822">Internet mail</a> $B$rB>$N5-;v$K$^$k$4$HF~$l$kJ}K!!#(B
+<p>
+$BNc$($P!"5-;v$rE>Aw$7$?$j$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="message/rfc822">
+
+
+<h3> euc-kr
+<node> euc-kr
+<p>
+$B4Z9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a node="ASCII">ASCII</a> $B$K(B
+<a node="KS C5601">KS C5601</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1557">RFC 1557</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+cf. <standard abbrev="euc-kr" org="Korea Industrial Standards
+	      Association" title-en="Hangul Unix Environment"
+	      number="KS C 5861" year="1992">
+
+
+<h3> FTP <node> FTP
+<p>
+Internet $B$G(B file $B$rE>Aw$9$k$?$a$N(B protocol $B$N#1$D!#(BRFC 959 $B$GDj5A$5$l(B
+$B$F$$$k!#(B
+<p>
+<rfc name="FTP" number="959" type="STD 9" author="Postel, J. and
+	      J. Reynolds" title="File Transfer Protocol"
+	      date="October 1985">
+
+
+<h3> GB 2312-1980
+<node> GB 2312
+<p>
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=$9$?$a$N(B <a
+node="94x94 character set">94$B!_(B94 $BJ8;z=89g(B</a>$B!#Cf9q$N9q2HI8=`!#(B<a
+node="ISO 2022">ISO 2022</a> $B$G$N=*C<J8;z$O(B `A'.
+<p>
+$B$3$l$O(B GB $B$K$*$1$k4pK\=8$G$"$k!#(B
+
+<standard abbrev="GB 2312"
+	      title-cn="$B?.B)8r49MQ4A;zJTb{;zId=8(B -- $B4pK\=8(B"
+	      title-en="Code of Chinese Graphic Character Set for
+	      Information Interchange - Primary Set" number="GB 2312"
+	      year="1980">
+
+
+<h3> GB 8565.2-1988
+<node> GB 8565.2
+<p>
+$BCf9q8l$N$?$a$NJd=u(B<a node="Character set">$BJ8;z=89g(B</a>$B!#Cf9q$N9q2HI8=`!#(B
+<a node="GB 2312">GB 2312</a> $B$N6u$-ItJ,$KJd=<$9$k$h$&$KDj5A$5$l$?$i$7(B
+$B$$!#(B
+
+<standard abbrev="GB 8565.2" title-en="Information Processing - Coded
+	      Character Sets for Text Communication - Part 2: Graphic
+	      Characters used with Primary Set" number="GB 8565.2"
+	      year="1988">
+
+
+<h3> hz-gb2312
+<node> hz-gb2312
+<p>
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ASCII">ASCII</a> $B$K(B <a node="GB 2312">GB 2312</a> $B$r(B 7bit $B$G(B
+<a node="Code extension">$BId9f3HD%(B</a>$B$7$?$b$N$r(B ASCII printable $B$K$J$k(B
+$B$h$&$K9)IW$7$F$$$k!#(B
+<p>
+RFC 1842, 1843 $B$GDj5A$5$l$F$$$k!#(B
+
+<rfc number="1842" type="Informational" author="Y. Wei, Y. Zhang,
+	      J. Li, J. Ding and Y. Jiang" title="ASCII Printable
+	      Characters-Based Chinese Character Encoding for Internet
+	      Messages" date="August 1995">
+<rfc number="1843" type="Informational" author="F. Lee" title="HZ - A
+	      Data Format for Exchanging Files of Arbitrarily Mixed
+	      Chinese and ASCII characters" date="August 1995">
+
+
+<h3> ISO 2022
+<node> ISO 2022
+<p>
+<a node="Code extension">$BId9f3HD%(B</a>$B$N$?$a$N9q:]I8=`!#(B
+<p>
+$B$3$l$rMQ$$$FJ#?t$N(B<a node="Character set">$BJ8;z=89g(B</a>$B$rAH9g$;$F(B <a
+node="7bit">7bit</a> $B$J$$$7(B <a node="8bit">8bit</a> $B$N(B <a node="Coded
+character set">$BId9f2=J8;z=89g(B</a> $B$r:n$k$3$H$,$G$-$k!#(B
+
+<standard abbrev="ISO 2022" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing:
+	      ISO 7-bit and 8-bit coded character sets: Code extension
+	      techniques" number="ISO/IEC 2022" year="1994">
+
+
+<h3> iso-2022-cn
+<node> iso-2022-cn
+<p>
+$BCf9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a node="ASCII">ASCII</a> $B$K(B 
+<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1, plain
+2</a> $B$r(B <a node="7bit">7bit</a> $B$G(B<a node="Code extension">$BId9f3HD%(B
+</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> iso-2022-cn-ext
+<node> iso-2022-cn-ext
+<p>
+$BCf9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a node="ASCII">ASCII</a> $B$K(B 
+<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1
+.. 7</a>, <a node="ISO-IR-165">ISO-IR-165</a> $BEy$r(B <a
+node="7bit">7bit</a> $B$G(B<a node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1922">RFC 1922</a> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<memo>
+MULE 2.3 $B$*$h$S!"8=:_$N(B XEmacs/mule $B$G$O@5$7$/07$&$3$H$O$G$-$J$$!#(B
+<p>
+Emacs/mule $B$G$OMxMQ2DG=$G$"$k!#(B
+</memo>
+
+
+<h3> iso-2022-jp
+<node> iso-2022-jp
+<p>
+$BF|K\8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N0l$D!#(B
+<p>
+$B8E$$(B <a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a
+node="ASCII">ASCII</a>, JIS X0201-Latin, <a node="JIS C6226-1978">JIS
+X0208-1978</a>, <a node="JIS X0208">JIS X0208-1983</a> $B$r@Z$jBX$($k(B <a
+node="7bit">7bit</a> $BJ8;zId9f!#(B
+<p>
+RFC 1468 $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<memo>
+JIS X0208-1996? $B$G$O(B <a node="ISO 2022">ISO 2022</a> $B$HFHN)$KDj5A$5$l(B
+$B$kM=Dj!#(B
+</memo>
+
+<rfc name="iso-2022-jp" number="1468" author="Murai J., M. Crispin,
+	      and E. van der Poel" title="Japanese Character Encoding
+	      for Internet Messages" date="June 1993">
+
+
+<h3> iso-2022-jp-2
+<node> iso-2022-jp-2
+<p>
+<a node="iso-2022-jp">iso-2022-jp</a> $B$r3HD%$7$?(B <a node="MIME
+charset">MIME charset</a> $B$N0l$D!#(B
+<p>
+RFC 1554 $B$GDj5A$5$l$F$$$k!#(B
+
+<rfc name="iso-2022-jp-2" number="1554" type="Informational"
+	      author="Ohta M. and Handa K." title="ISO-2022-JP-2:
+	      Multilingual Extension of ISO-2022-JP" date="December
+	      1993">
+
+
+<h3> iso-2022-kr
+<node> iso-2022-kr
+<p>
+$B4Z9q8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F(B <a node="ASCII">ASCII</a> $B$K(B 
+<a node="KS C5601">KS C5601</a> $B$r(B <a node="7bit">7bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<a node="RFC 1557">RFC 1557</a> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> ISO 646
+<node> ISO 646
+<p>
+$B3F9q$G6&DL$K;H$($k:G>.8BEY$N(B<a node="Character set">$BJ8;z=89g(B</a>$B$rDj$a(B
+$B$?$b$N!#(B<a node="94 character set">94 $BJ8;z=89g(B</a>$B$N#1$D!#(BISO 646 IRV
+$B!J9q:]4p=`HG!K$r85$K4v$D$+$NJ8;z$O3F9q$G0c$&J8;z$r3dEv$k$3$H$r5v$7$F$$(B
+$B$F!"4v$D$+$NJQ<o$,B8:_$9$k!#(B<a node="ASCII">ASCII</a> $B$d(B JIS
+X0201-Latin $B$O$=$N0l<o!#(B
+
+<standard abbrev="ISO 646" org="International Organization for
+	      Standardization (ISO)" title-en="Information technology:
+	      ISO 7-bit coded character set for information
+	      interchange" number="ISO/IEC 646" year="1991">
+
+
+<h3> ISO 8859-1
+<node> ISO 8859-1
+<p>
+$B@>2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B <a node="96
+character set">96 $BJ8;z=89g(B</a>$B!#(B
+
+<standard abbrev="ISO 8859-1" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 1: Latin Alphabet No.1" number="ISO 8859-1"
+	      year="1987">
+
+
+<h3> iso-8859-1
+<node> iso-8859-1
+<p>
+$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N(B <dref>MIME charset</dref> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F!"(B<a node="ASCII">ASCII</a> $B$K(B 
+<a node="ISO 8859-1">ISO 8859-1</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> ISO 8859-2
+<node> ISO 8859-2
+<p>
+$BEl2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B <a node="96
+character set">96 $BJ8;z=89g(B</a>$B!#(B
+
+<standard abbrev="ISO 8859-2" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 2: Latin alphabet No.2" number="ISO 8859-2"
+	      year="1987">
+
+
+<h3> iso-8859-2
+<node> iso-8859-2
+<p>
+$BEl2$=t8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N#1(B
+$B$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F!"(B<a node="ASCII">ASCII</a> $B$K(B 
+<a node="ISO 8859-2">ISO 8859-2</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> ISO 8859-3
+<node> ISO 8859-3
+<p>
+<standard abbrev="ISO 8859-3" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 3: Latin alphabet No.3"
+		number="ISO 8859-3" year="1988">
+
+
+<h3> ISO 8859-4
+<node> ISO 8859-4
+<p>
+<standard abbrev="ISO 8859-4" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 4: Latin alphabet No.4"
+		number="ISO 8859-4" year="1988">
+
+
+<h3> ISO 8859-5
+<node> ISO 8859-5
+<p>
+$B%-%j%kJ8;z$d5-9f$+$i$J$k(B <a node="96 character set">96 $BJ8;z=89g(B</a>$B!#(B
+
+<standard abbrev="ISO 8859-5" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 5: Latin/Cyrillic alphabet" number="ISO 8859-5"
+	      year="1988">
+
+
+<h3> iso-8859-5
+<node> iso-8859-5
+<p>
+$B%-%j%kJ8;z$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N(B
+$B#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F!"(B<a node="ASCII">ASCII</a> $B$K(B 
+<a node="ISO 8859-5">ISO 8859-5</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> ISO 8859-6
+<node> ISO 8859-6
+<p>
+<standard abbrev="ISO 8859-6" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 6: Latin/Arabic alphabet"
+		number="ISO 8859-6" year="1987">
+
+
+<h3> ISO 8859-7
+<node> ISO 8859-7
+<p>
+$B%.%j%7%"J8;z$d5-9f$+$i$J$k(B <a node="96 character set">96 $BJ8;z=89g(B</a>$B!#(B
+
+<standard abbrev="ISO 8859-7" org="International Organization for
+	      Standardization (ISO)" title-en="Information Processing
+	      -- 8-bit Single-Byte Coded Graphic Character Sets --
+	      Part 7: Latin/Greek alphabet" number="ISO 8859-7"
+	      year="1987">
+
+
+<h3> iso-8859-7
+<node> iso-8859-7
+<p>
+$B%.%j%7%"8l$rI=8=$9$k$?$a$N(B <a node="MIME charset">MIME charset</a> $B$N(B
+$B#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$$$F!"(B<a node="ASCII">ASCII</a> $B$K(B 
+<a node="ISO 8859-7">ISO 8859-7</a> $B$r(B <a node="8bit">8bit</a> $B$G(B<a
+node="Code extension">$BId9f3HD%(B</a>$B$7$F$$$k!#(B
+<p>
+RFC 1947 $B$GDj5A$5$l$F$$$k!#(B
+
+<rfc name="iso-8859-7" number="1947" type="Informational"
+	      author="D. Spinellis" title="Greek Character Encoding
+	      for Electronic Mail Messages" date="May 1996">
+
+
+<h3> ISO 8859-8
+<node> ISO 8859-8
+<p>
+<standard abbrev="ISO 8859-8" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 8: Latin/Hebrew alphabet"
+		number="ISO 8859-8" year="1988">
+
+
+<h3> ISO 8859-9
+<node> ISO 8859-9
+<p>
+<standard abbrev="ISO 8859-9" org="International Organization for
+		Standardization (ISO)" title-en="Information
+		Processing -- 8-bit Single-Byte Coded Graphic
+		Character Sets -- Part 9: Latin alphabet No.5"
+		number="ISO 8859-9" year="1990">
+
+
+<h3> ISO-IR-165, CCITT Extended GB <node> ISO-IR-165
+<p>
+CCITT $B$,EPO?$7$?!"Cf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=(B
+$B8=$9$k$?$a$N(B <a node="94x94 character set">94$B!_(B94 $BJ8;z=89g(B</a>$B!#(B
+<p>
+<a node="GB 2312">GB 2312</a> $B$H(B <a node="GB 8865.2">GB 8565 $BI=#2(B</a> 
+$B$K(B 150 $BJ8;z$[$I$rDI2C$7$?$b$N$i$7$$!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$G$N=*C<J8;z$O(B `E' $B$G$"$k!#(B
+
+
+<h3> JIS X0201
+<node> JIS X0201
+<p>
+<a node="ISO 646">ISO 646</a> $B$NJQ<o$N#1$D$G$"$k(B Latin $BJ8;z=89g$H(B 1
+byte $B$N%+%?%+%JJ8;z=89g$+$i$J$k!#(B
+<p>
+$B85$O(B <concept>JIS C6220-1976</concept> $B$H8@$C$?$,(B <concept>JIS
+X0201</concept> $B$KHV9f$,JQ99$5$l$?!#(B
+
+<standard abbrev="JIS X0201-1976" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)" title-ja="$B>pJs8r49MQId9f(B"
+	      title-en="Code for Information Interchange" number="JIS
+	      X 0201-1976">
+
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=P$kM=Dj!#(B
+
+<standard abbrev="JIS X0201-1996?" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)"
+	      title-ja="$B#7%S%C%H5Z$S#8%S%C%H$N>pJs8r49MQId9f2=J8;z=89g(B"
+	      title-en="7-bit and 8-bit coded character sets for
+	      information interchange" number="JIS X 0201" year="1996?
+	      draft">
+
+
+<h3> JIS C6226-1978
+<node> JIS C6226
+<p>
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B <a node="94x94 character set">94$B!_(B94 $BJ8;z=8(B
+$B9g(B</a>$B!#F|K\$N9q2HI8=`!#(BJIS X0208-1978 $B$H$b$$$&!#(B
+<p>
+<cf node="JIS X0208">
+
+
+<h3> JIS X0208
+<node> JIS X0208
+<p>
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B <a node="94x94 character set">94$B!_(B94 $BJ8;z=8(B
+$B9g(B</a>$B!#F|K\$N9q2HI8=`!#(B1978 $BG/HG!"(B1983 $BG/HG!"(B1990 $BG/HG$,$"$k$,!"(B
+Internet $B$G$O(B 1983 $BG/HG$,$b$C$H$bNI$/;H$o$l$F$$$k!#(B
+<p>
+JIS X0208 $B$O5-9f!"?t;z!"%m!<%^;z!"$R$i$,$J!"%+%?%+%J!"%.%j%7%cJ8;z!"%-(B
+$B%j%kJ8;z!"7S@~AG!"Bh#1?e=`!"Bh#2?e=`$N4A;z$,4^$^$l$k!#C"$7!"(B1983 $BG/HG(B
+$B$N0lIt$N5-9f$H7S@~AG$O(B 1978 $BG/HG$K$O$J$$!#$^$?!"0lIt$N4A;z$N;z7A$,(B 
+1983 $BG/HG$G$OJQ99$5$l!"$^$?!"Bh#1?e=`$HBh#2?e=`$,F~$lBX$o$C$F$$$?$j$9(B
+$B$k!#$3$N$?$a!"(B1978 $BG/HG$H(B 1983 $BG/HG$O0[$J$kJ8;z=89g$H$7$F07$o$l$k!#(B
+<p>
+1990 $BG/$N2~Dj$G$O(B 1983 $BG/HG$KBP$9$kDI2C$,9T$o$l$?!#$3$N$?$a!"(B1990 $BG/HG(B
+$B$r;X<($9$k>l9g$OA0$K99?7%7!<%1%s%9$rMQ$$$k!#(B
+
+<standard abbrev="JIS X0208-1978" org="$BF|K\5,3J6(2q(B (Japanese Standards
+	      Association)" title-ja="$B>pJs8r49MQ4A;zId9f7O(B"
+	      title-en="Code of the Japanese graphic character set for
+	      information interchange" number="JIS C6226" year="1978">
+<standard abbrev="JIS X0208-1983,1990" org="$BF|K\5,3J6(2q(B (Japanese Standards
+	      Association)" title-ja="$B>pJs8r49MQ4A;zId9f7O(B"
+	      title-en="Code of the Japanese graphic character set for
+	      information interchange" number="JIS X0208" year="1983,1990">
+
+<p>
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=PHG$5$l$kM=Dj!#!J;z7A$NJQ99$O9T$o$l$J$$$N$GJ8(B
+$B;z=89g$H$7$F$O(B 1990 $BG/HG$HF10l$G$"$k!K(B
+
+<standard abbrev="JIS X0208-1996?" org="$BF|K\5,3J6(2q(B (Japanese
+	      Standards Association)" title-ja="$B#7%S%C%H5Z$S#8%S%C%H$N(B
+	      $B#2%P%$%H>pJs8r49MQId9f2=4A;z=89g(B" title-en="7-bit and
+	      8-bit double byte coded Kanji sets for information
+	      interchange" number="JIS X 0208" year="1996? draft">
+
+
+<h3> JIS X0212-1990
+<node> JIS X0212
+<p>
+<a node="JIS X0208">JIS X0208</a> $B$K$J$+$C$?J8;z$r=8$a$?(B <a
+node="94x94 character set">94$B!_(B94 $BJ8;z=89g(B</a>$B!#!VJd=u4A;z!W$H$b8F$P$l(B
+$B$k!#F|K\$N9q2HI8=`!#(B<a node="ISO 2022">ISO 2022</a> $B$G$N=*C<J8;z$O(B 
+`D'.
+
+
+<h3> koi8-r
+<node> koi8-r
+<p>
+$B%m%7%d8lEy$GMQ$$$i$l$k%-%j%kJ8;z$rI=8=$9$k$?$a$N(B <a node="MIME
+charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ISO 2022">ISO 2022</a> $B$K4p$+$J$$(B <a node="8bit">8bit</a> $B$N(B
+<a node="Coded character set">$BId9f2=J8;z=89g(B</a>$B$G(B de-fact standard $B$G(B
+$B$"$k!#(B
+<p>
+RFC 1489 $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<rfc number="1489" author="A. Chernov" title="Registration of a
+	      Cyrillic Character Set" date="July 1993">
+
+
+<h3> KS C5601-1987
+<node> KS C5601
+<p>
+$B4Z9q8l$rI=$9$?$a$N(B <a node="94x94 character set">94$B!_(B94 $BJ8;z=89g(B</a>$B!#(B
+$B4Z9q$N9q2HI8=`!#(B<a node="ISO 2022">ISO 2022</a> $B$G$N=*C<J8;z$O(B `C'.
+
+<standard abbrev="KS C5601" org="Korea Industrial Standards
+	      Association" title-en="Code for Information Interchange
+	      (Hangul and Hanja)" number="KS C 5601" year="1987">
+
+
+<h3> message
+<node> message
+<p>
+$B$3$3$G$O(B <dref>RFC 822</dref> $B$GDj5A$5$l$k(B mail $B$H(B <dref>RFC
+1036</dref> $B$GDj5A$5$l$k(B news $B5-;v$NAm>N$H$7$FMQ$$$k!#(B
+
+
+<h3> message/rfc822
+<node> message/rfc822
+<p>
+$BEAE}E*$J(B <dref>RFC 934</dref> $B$KBe$o$j!"(B<dref>RFC 822</dref> $B$GDj5A$5(B
+$B$l$k(B mail $B$rI=$9(B MIME $B$N7A<0!#(B<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> method
+<node> method
+<p>
+tm $B$GFCDj$N<oN`$N(B data $B$r:F@8$7$?$H$-<B:]$K$=$N=hM}$r9T$J$&(B
+program. Emacs Lisp $B$G=q$+$l$?(B <concept>internal method</concept> $B$H(B C 
+$B$d(B script $B8@8l$J$I$G=q$+$l$?(B <concept>external method</concept> $B$,$"$k!#(B
+<p>
+<cf file="tm-view-ja" node="method">
+
+
+<h3> MIME
+<node> MIME
+<p>
+<concept>Multipurpose Internet Mail Extensions</concept> $B$NN,$G!"(B
+Internet $B$N(B mail $B$d(B news $B$G(B <a node="us-ascii">us-ascii plain text</a> 
+$B0J30$NJ8;z$r;H$&$?$a$N(B <dref>RFC 822</dref> $B$KBP$9$k3HD%!#(B
+<p>
+RFC 2045 $B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'(B
+<p>
+STD 11, RFC 822 $B$O!"(BUS-ASCII message header $B$K4X$7$FHs>o$K>\:Y$K5,Dj$7(B
+$B$?(B message $BI=8=(B protocol $B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K(B flat $B$J(B 
+US-ASCII text $B$N$_$KN1$^$j!"(Bmessage $B$NFbMF$d(B message body $B$K4X$9$k5,Dj(B
+$B$O$J$5$l$F$$$J$$!#(BMultipurpose Internet Mail Extensions, $B$"$k$$$O(B MIME 
+$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K(B message $B$N(B
+$B7A<0$r:FDj5A$7$?!'(B
+
+<ol>
+<li>$BJ8=q(B message body $B$K$*$1$k(B US-ASCII $B0J30$NJ8;z=89g(B
+</li>
+<li>$BHsJ8=q(B message body
+</li>
+<li>$BJ#?t$NItJ,$+$i$J$k(B message body
+</li>
+<li>US-ASCII $B0J30$NJ8;z=89g$+$i$J$kJ8=q(B header $B>pJs(B
+</ol>
+
+<p>
+<dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
+node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref>, <dref>RFC
+2049</dref> $B$GDj5A$5$l$F$$$k!#(B
+
+
+<h3> MIME charset
+<node> MIME charset
+<p>
+<dref>Content-Type field</dref> $B$d(B <a
+node="encoded-word">encoded-word</a> $B$N(B charset parameter $B$GMQ$$$i$l$k(B
+$BEPO?$5$l$?(B<a node="Coded character set">$BId9f2=J8;z=89g(B</a>$B!#(B
+<p>
+<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k!#(B
+<p>
+<a node="iso-2022-jp">iso-2022-jp</a> $B$d(B <a node="euc-kr">euc-kr</a> 
+$B$O$=$N#1$D!#!J$3$3$G$O!"(BMIME charset $B$O(B<a node="Character set">$BJ8;z=8(B
+$B9g(B</a>$B$H6hJL$7$F>.J8;z$G=q$$$F$$$k!K(B
+
+
+<h3> MTA
+<node> MTA
+<p>
+<concept>Message Transfer Agent</concept> $B$NN,$G!"(Bsendmail $B$J$I$N(B mail 
+$BG[Aw(B program $B$H(B news server $B$NAm>N!#(B
+<p>
+<cf node="MUA">
+
+
+<h3> MUA
+<node> MUA
+<p>
+<concept>Message User Agent</concept> $B$NN,$G!"(Bmail reader $B$H(B news
+reader $B$NAm>N!#(B
+<p>
+<cf node="MTA">
+
+
+<h3> MULE
+<node> MULE
+<p>
+$BH>ED(B $B7u0l;a$i$,:n$C$?!"B?8@8l$5$l$?(B <a node="Emacs">Emacs</a>.
+<p>
+[MULE] Nishikimi M., Handa K. and Tomura S., ``Mule: MULtilingual
+Enhancement to GNU Emacs'', Proc. of INET'93, August, 1993.
+<p>
+$B8=:_!"(BMULE $B$N5!G=$r(B Emacs $B$K(B merge $B$9$k:n6H$,9T$o$l$F$*$j!"(B<a
+href="ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz"> alpha $BHG(B
+</a> $B$,B8:_$9$k!#(B
+<p>
+$B$=$NB>!"(BXEmacs $B$K(B merge $B$7$?$b$N$bB8:_$9$k!#(B
+<p>
+$B$3$N$?$a!"8=:_$G$OB?8@8l(B Emacs $B$O!"85!9$N(B MULE $B$r4^$a$F#3<oN`$"$k$3$H(B
+$B$K$J$k!#(B
+<p>
+$B$=$3$G!"$3$3$G$O!"B?8@8l(B Emacs $B$NAm>N$r(B <concept>mule</concept>, $B85!9(B
+$B$N(B MULE $B$r(B <concept>MULE</concept>, mule $B5!G=$r(B merge $B$7$?(B Emacs $B$r(B
+<concept>Emacs/mule</concept>, mule $B5!G=$r(B merge $B$7$?(B XEmacs $B$r(B 
+<concept>XEmacs/mule</concept> $B$H8F$V$3$H$K$9$k!#(B
+
+
+<h3> Multipart
+<node> multipart
+<p>
+$B#1$D$N(B <dref>message</dref> $B$KJ#?t$N(B <dref>entity</dref> $B$rF~$l$k$?$a(B
+$B$N(B <dref>MIME</dref> $B$K$*$1$k(B <dref>media type</dref> $B$N#1$D!"$b$7$/$O!"(B
+$BJ#?t$N(B entity $B$+$i$J$k(B message $B$r;X$9!#(B
+<p>
+$B8=:_!"Dj5A$5$l$F$$$k(B <concept>multipart</concept> $B$H$7$F$O!"(B<dref>RFC
+2046</dref> $B$GDj5A$5$l$?(B
+
+<ul>
+<li><dref>multipart/mixed</dref>
+<li><dref>multipart/alternative</dref>
+<li><dref>multipart/digest</dref>
+<li><dref>multipart/parallel</dref>
+</ul>
+
+<noindent>
+$B$N$[$+(B <a node="Security multipart">RFC 1847</a> $B$GDj5A$5$l$?(B
+
+<ul>
+<li><dref>multipart/signed</dref>
+<li><dref>multipart/encrypted</dref>
+</ul>
+
+<noindent>
+$B$J$I$,$"$k!#(B
+
+
+<h3> multipart/alternative
+<node> multipart/alternative
+<p>
+<dref>multipart</dref> $B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h$H(B
+$B$9$k>l9g$KMQ$$$k!#(B
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/digest
+<node> multipart/digest
+<p>
+<dref>multipart</dref> $B$N#1$D$G!"4^$^$l$k(B <dref>entity</dref> $B$N(B 
+default $B$N(B<dref>media type</dref> $B$,(B <dref>multipart/mixed</dref> $B$J$I(B
+$B$N>l9g(B <dref>text/plain</dref> $B$G$"$k$N$KBP$7!"(B
+<concept>multipart/digest</concept>$B$G$O(B <dref>message/rfc822</dref> $B$,(B
+$BMQ$$$i$l$kE@$,0[$J$k!#(B
+<p>
+$B$3$l$OEAE}E*$J(B <dref>RFC 1153</dref> $B$K4p$E$/(B 
+<dref>encapsulation</dref> $B$KBe$o$k$b$N$G$"$k!#(B
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/encrypted
+<node> multipart/encrypted
+<p>
+RFC 1847 $B$GDj5A$5$l$?(B <dref>Security multipart</dref> $B$N#1$D$G!"0E9f2=(B
+$B$5$l$?(B message $B$rI=8=$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="PGP/MIME">
+
+
+<h3> multipart/mixed
+<node> multipart/mixed
+<p>
+<dref>multipart</dref> $B$N<gMW$J(B subtype $B$G!"J#?t$N(B part $B$r=g=xIU$1$FJB(B
+$B$Y$k>l9g$KMQ$$$k!#(B
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/parallel
+<node> multipart/parallel
+<p>
+<dref>multipart</dref> $B$N#1$D$G!"J#?t$N(B part $B$r=g=xIU$1$:$K4^$a$k>l9g(B
+$B$KMQ$$$k!#(B
+<p>
+<cf node="RFC 2046">
+
+
+<h3> multipart/signed
+<node> multipart/signed
+<p>
+RFC 1847 $B$GDj5A$5$l$?(B <dref>Security multipart</dref> $B$N#1$D$G!"EE;R=p(B
+$BL>$rI=8=$9$k$N$KMQ$$$k!#(B
+<p>
+<cf node="PGP/MIME">
+
+
+<h3> PGP
+<node> PGP
+<p>
+Phil Zimmermann $B;a$,:n@.$7$?8x3+800E9f=hM}7O$N#1$D!#(B
+<dref>message</dref> $B$N0E9f2=$dEE;R=pL>$r9T$&$3$H$,$G$-$k!#(BPretty Good
+Privacy $B$NN,!#(B
+<p>
+$BEAE}E*$J(B PGP $B$G$O(B <dref>encapsulation</dref> $B$K(B <dref>RFC 934</dref>$B$K(B
+$B=`$8$?J}K!$rMQ$$$k!#$3$l$O(B <dref>MIME</dref> $B$HL7=b$9$k$N$G(B 
+<dref>PGP/MIME</dref> $B$,Ds0F$5$l$F$$$k!#0lJ}!"(BMIME $B$K$*$$$F(B PGP $B$N(B
+encapsulation $B$rMQ$$$kJ}K!(B <cf node="PGP-kazu"> $B$bMxMQ$5$l$F$-$?!#$7$+(B
+$B$7!":#8e$O(B PGP/MIME $B$KE}0l$7$F$$$/J}$,K>$^$7$$!#(B
+<p>
+<rfc name="PGP" number="1991" type="Informational" author="D. Atkins,
+	      W. Stallings and P. Zimmermann" title="PGP Message
+	      Exchange Formats" date="August 1996">
+
+
+
+<h3> PGP-kazu
+<node> PGP-kazu
+<p>
+$B;3K\(B $BOBI'(B $B;a$,Ds0F$7$?(B <a node="MIME">MIME</a> $B$G(B <a
+node="PGP">PGP</a> $B$rMxMQ$9$k$?$a$NJ}K!$r$3$3$G$O(B 
+<concept>PGP-kazu</concept> $B$H8F$V$3$H$K$9$k!#(B
+<p>
+PGP-kazu $B$O(B <concept>application/pgp</concept> $B$H$$$&(B 
+<dref>content-type</dref> $B$rDj5A$9$k!#(B
+<p>
+application/pgp $B$N(B part $B$G$O(B PGP $B$N(B <dref>encapsulation</dref> $B$,MQ$$(B
+$B$i$l$k!#(BPGP $B$N(B encapsulation <cf node="RFC 934"> $B$H(B MIME $B$N(B 
+encapsulation $B$OL7=b$9$k$N$G!"(BPGP $B$N(B encapsulation $B$r2r$+$J$$8B$j!"Cf(B
+$B$K4^$^$l$?(B MIME message $B$rFI$`$3$H$,$G$-$J$/$J$k!#B($A!"(BPGP-kazu $B$KBP(B
+$B1~$7$F$$$J$$(B MIME $B$KBP1~$7$?(B <dref>MUA</dref> $B$O$=$N(B part $B$,FI$a$J$/$J(B
+$B$k!#$=$NBe$o$j!"(BMIME $B$KBP1~$7$F$$$J$$(B PGP $BBP1~$N(B <dref>MUA</dref> $B$G$b(B 
+message $B$rFI$`$3$H$,$G$-$k!#(B
+<p>
+PGP-kazu $B$G$O(B MUA $B$O(B PGP $B$N$H(B MIME $B$N$H$$$&#2$D$N(B encapsulation $B$rCN$i(B
+$B$J$1$l$P$J$i$J$$!#$^$?!"(Bapplication/pgp part $B$r(B parse $B$9$k$?$a$K$O!"$^(B
+$B$:!"(Bpgp $B$N=hM}$r9T$o$J$1$l$P$J$i$J$$$N$G!"(Bparse $B=hM}$,J#;($K$J$k!#(B
+<p>
+$B$^$?!"(BInternet $B$G$O:#8e(B <dref>PGP/MIME</dref> $B$NJ}8~$GI8=`2=$7$F$$$3$&(B
+$B$H$$$&$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP-kazu $B$OMQ$$$J$$$N$,K>(B
+$B$^$7$$!#(B
+<p>
+[draft-kazu-pgp-mime-00.txt] Yamamoto K., ``PGP MIME Integration'',
+October, 1995
+
+
+<h3> PGP/MIME
+<node> PGP/MIME
+<p>
+Michael Elkins $B;a$,Ds0F$7$?(B <a node="MIME">MIME</a> $B$G(B <a
+node="PGP">PGP</a> $B$rMxMQ$9$k$?$a$NJ}K!!#(B
+<p>
+<a node="Security multipart">RFC 1847</a> $B$K4p$-!"(BMIME $B$N(B multipart $B$K(B
+$B$h$k(B <dref>encapsulation</dref> $B$r9T$&!#$3$N$?$a!"(BMIME $B$N<+A3$J3HD%$K(B
+$B$J$C$F$$$k!#$7$+$7!"EAE}E*$J(B PGP$B$H$N8_49@-$,<:$o$l$F$$$k!#(B
+<p>
+PGP/MIME $B$G$O(B <dref>PGP-kazu</dref> $B$H0[$J$j!"(BMIME $B$N(B encapsulation $B$N(B
+$B$_$rMQ$$$k!#$^$?!"$3$N$?$a!"(BPGP $B$N=hM}$r9T$&A0$K(B message $B$N(B parse $B$r9T(B
+$B$&$3$H$,$G$-$k!#(B
+<p>
+Internet $B$G$O:#8e(B <dref>PGP/MIME</dref> $B$NJ}8~$GI8=`2=$7$F$$$3$&$H$$$&(B
+$B$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP $B$rMQ$$$k>l9g$O(B PGP/MIME$B$rMQ(B
+$B$$$k$N$,K>$^$7$$!#(B
+
+<rfc name="PGP/MIME" number="2015" type="Standards Track"
+	      author="M. Elkins" title="MIME Security with Pretty Good
+	      Privacy (PGP)" date="October 1996">
+
+
+<h3> Quoted-Printable
+<node> Quoted-Printable
+<p>
+<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B 
+<dref>binary data</dref> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B
+<p>
+`=' $B$d@)8fJ8;z$d(B 128 $B0J>e$NJ8;z$J$I$O(B `=AF' $B$N$h$&$K(B `=' $B$N8e$KB3$/(B 16 
+$B?J?t$GI=8=$9$k!#$3$N$?$a!"(B<dref>ASCII</dref> $BJ8;zCf?4$N(B data $B$G$O(B 
+<dref>Base64</dref> $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#(B
+<p>
+$B$7$+$7$J$,$i!"(BEBCDIC $B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"(BEBCDIC $B$rMxMQ$7(B
+$B$F$$$k(B network $B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"(BBase64 $B$KHf$Y$F0BA4@-$O(B
+$BDc$$!#(B
+
+
+<h3> RFC 821
+<node> RFC 821
+<p>
+<concept>SMTP</concept> $B$H8F$P$l$k(B Internet mail $B$NG[AwK!$NI8=`$rDj$a(B
+$B$F$$$k(B RFC.
+
+<rfc name="SMTP" number="821" type="STD 10" author="J. Postel"
+	      title="Simple Mail Transfer Protocol" date="August
+	      1982">
+
+
+<h3> RFC 822
+<node> RFC 822
+<p>
+Internet mail $B$N<g$K(B <concept>message header</concept> $B$K4X$9$k7A<0$K(B
+$B4X$9$kI8=`$rDj$a$F$$$k(B RFC.
+
+<memo>
+<p>
+news message $B$b$3$l$K=`$8$F$$$k$N$G!"(B<concept>Internet mail</concept> 
+$B$H=q$/$h$j$b!"(B<concept>Internet message</concept> $B$H=q$$$?J}$,NI$$$+$b(B
+$B$7$l$J$$!#(B
+</memo>
+
+<rfc number="822" type="STD 11" author="D. Crocker" title="Standard
+	      for the Format of ARPA Internet Text Messages"
+	      date="August 1982">
+
+
+<h3> RFC 934
+<node> RFC 934
+<p>
+<a node="RFC 822">Internet mail</a> $B$N(B <a node="encapsulation">
+<concept>encapsulation</concept></a> $B$NJ}K!$rDj$a$?(B RFC.
+<p>
+<dref>MIME</dref> $B$HL7=b$9$k$N$G!"8=:_$G$O(B <dref>message/rfc822</dref> 
+$B$rMQ$$$k$Y$-$G$"$k!#(B
+
+
+<rfc number="934" author="Marshall T. Rose and Einar A. Stefferud"
+	      title="Proposed Standard for Message Encapsulation"
+	      date="January 1985">
+
+
+<h3> RFC 1036
+<node> RFC 1036
+<p>
+USENET $B$G$N(B message $B$N7A<0$rDj$a$?(B RFC. <a node="RFC 822">RFC 822</a>
+$B$N(B subset $B$K$J$C$F$$$k!#(BInternet $B$NI8=`$G$O$J$$$,!"(BUSENET $B0J30$N(B 
+netnews $B$G$b$3$l$K=`$8$F$$$k$b$N$,B?$$!#(B
+
+<rfc name="USENET" number="1036" author="M. Horton and R. Adams"
+	      title="Standard for Interchange of USENET Messages"
+	      date="December 1987" obsolete="850">
+
+
+<h3> RFC 1153
+<node> RFC 1153
+<p>
+$BJ#?t$N(B <a node="RFC 822">Internet mail</a> $B$r(B <a node="encapsulation">
+<concept>encapsulation</concept></a> $B$9$k$?$a$NJ}K!$rDj$a$?(B 
+RFC. <dref>RFC 934</dref> $B$rMQ$$$k!#(B
+<p>
+<dref>MIME</dref> $B$HL7=b$9$k$N$G!"8=:_$G$O(B <dref>message/rfc822</dref> 
+$B$rMQ$$$?(B <dref>multipart</dref> $B$rMQ$$$k$Y$-$G$"$k!#(B
+<p>
+<cf node="multipart/digest">
+
+<rfc number="1153" author="F. Wancho" title="Digest Message Format"
+	      date="April 1990">
+
+
+<h3> RFC 1557
+<node> RFC 1557
+<p>
+<dref>euc-kr</dref> $B$H(B <dref>iso-2022-kr</dref> $B$H$$$&4Z9q8l$N$?$a$N(B 
+<a node="MIME charset">MIME charset</a> $B$rDj5A$7$F$$$k(B RFC.
+
+<rfc number="1557" type="Informational" author="U. Choi, K. Chon and
+	      H. Park" title="Korean Character Encoding for Internet
+	      Messages" date="December 1993">
+
+
+<h3> RFC 1922
+<node> RFC 1922
+<p>
+<dref>iso-2022-cn</dref>, <dref>iso-2022-cn-ext</dref>,
+<dref>cn-gb</dref>, <dref>cn-big5</dref> $B$H$$$C$?Cf9q8l$N$?$a$N(B <a
+node="MIME charset">MIME charset</a> $B$rDj5A$7$F$$$k(B RFC.
+<p>
+$B$3$l$K2C$($F!"(B<concept>charset-edition</concept> $B$H(B 
+<concept>charset-extension</concept> $B$H$$$&(B <dref>Content-Type
+field</dref> $B$N(B parameter $B$rDj5A$7$F$$$k!#(B
+
+<rfc number="1922" type="Informational" author="Zhu, HF., Hu, DY.,
+	      Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M."
+	      title="Chinese Character Encoding for Internet Messages"
+	      date="March 1996">
+
+
+<h3> RFC 2045
+<node> RFC 2045
+<p>
+<rfc number="2045" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part One: Format of Internet Message
+	      Bodies" date="November 1996" obsolete="1521, 1522,
+	      1590">
+
+
+<h3> RFC 2046
+<node> RFC 2046
+<p>
+<rfc number="2046" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+                 Extensions (MIME) Part Two: Media Types"
+                 date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2048
+<node> RFC 2048
+<p>
+<rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
+	      and J. Postel" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part Four: Registration Procedures"
+	      date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2049
+<node> RFC 2049
+<p>
+<rfc number="2049" type="Standards Track" author="N. Freed and
+	      N. Borenstein" title="Multipurpose Internet Mail
+	      Extensions (MIME) Part Five: Conformance Criteria and
+	      Examples" date="November 1996" obsolete="1521, 1522,
+	      1590">
+
+
+<h3> plain text
+<node> plain text
+<p>
+$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$(B <a node="Coded character set">$BJ8;zId(B
+$B9f(B</a>$B$N$_$GI=8=$5$l$k(B text $B>pJs!#(B<cf node="text/plain">
+
+
+<h3> Security multipart
+<node> Security multipart
+<p>
+<a node="MIME">MIME</a> $B$G0E9f$dEE;R=qL>$rMQ$$$k$?$a$N7A<0!#(B<a
+node="multipart/signed"><concept>multipart/signed</concept></a> $B$H(B <a
+node="multipart/encrypted"><concept>multipart/encrypted</concept></a> 
+$B$H$$$&(B multipart $B$rMQ$$$k!#(BMOSS $B$d(B <a node="PGP/MIME">PGP/MIME</a> $B$O(B
+$B$3$l$K4p$$$F$$$k!#(B
+
+<rfc name="Security multipart" number="1847" type="Standards Track"
+	      author="James Galvin, Gale Murphy, Steve Crocker and Ned
+	      Freed" title="Security Multiparts for MIME:
+	      Multipart/Signed and Multipart/Encrypted" date="October
+	      1995">
+
+
+<h3> text/enriched
+<node> text/enriched
+<p>
+RFC 1521 $B$GDj5A$5$l$?(B <concept>text/richtext</concept> $B$KBe$o$C$F!"=q(B
+$BBN$dAHHG$K4X$9$k>pJs$r;}$C$?(B text$B$rI=8=$9$k$?$a$N(B <dref>media
+type</dref>.
+
+<rfc name="text/enriched" number="1896" author="P. Resnick and
+	      A. Walker" title="The text/enriched MIME Content-type"
+	      date="February 1996" obsolete="1563">
+
+
+<h3> text/plain
+<node> text/plain
+<p>
+<dref>RFC 2046</dref> $B$GDj5A$5$l$?!"(B<dref>plain text</dref> $B$rI=8=$9$k(B
+$B$?$a$N(B <dref>media type</dref>.
+<p>
+$BHs(B MIME message $B$J$I$N(B content-type $B$,Dj5A$5$l$J$$(B part $B$O(B <dref>MIME
+charset</dref> $B$,(B <dref>us-ascii</dref> $B$G$"$k(B 
+<concept>text/plain</concept> $B$N(B part $B$G$"$k$H8+Pv$5$l$k$3$H$K$J$C$F$$(B
+$B$k!#(B
+
+
+<h3> tm-kernel, tm
+<node> tm-kernel
+<p>
+Emacs $B$G(B <a node="MIME">MIME</a> $B$rMxMQ$9$k$?$a$N(B user interface $B$rDs(B
+$B6!$9$k(B library $B72!#(B`tools for MIME' $B$NN,!#(B
+
+<memo title="$B$I$&$G$bNI$$$3$H(B(^-^;">
+<p>
+<ul>
+  <li> tm $B$O(B ``tiny-mime'' $B$NN,$8$c$J$$$i$7$$$>(B (^-^;
+  <li> tm $B$O:n<T$N%$%K%7%c%k$8$c$J$$$i$7$$$>(B (^-^;
+  <li> ``Tools for MIME'' $B$NN,$H$$$&$N$O$3$8$D$1$i$7$$$>(B (^-^;
+</ul>
+</memo>
+
+
+<h3> tm-MUA
+<node> tm-MUA
+<p>
+<a node="tm-kernel">tm</a> $B$rMQ$$$?(B <a node="MUA">MUA</a> $B$b$7$/$O(B MUA 
+$B$KBP$9$k(B extender.
+<p>
+<concept>tm $BBg@9$j(B package</concept> $B$K$O(B
+
+<ul>
+<li><a file="mh-e">mh-e</a> $BMQ$N(B <concept>tm-mh-e</concept>
+<li>GNUS $BMQ$N(B <concept>tm-gnus</concept>
+<li>Gnus $BMQ$N(B <a file="gnus-mime-ja"><concept>gnus-mime</concept></a>
+<li>VM $BMQ$N(B <concept>tm-vm</concept>
+<li>RMAIL $BMQ$N(B <concept>tm-rmail</concept>
+</ul>
+
+<noindent>
+$B$,4^$^$l$F$$$k!#(B
+<p>
+$BFHN)$7$?(B MUA $B$H$7$F$O(B <a file="cmail">cmail</a> $B$,(B tm $B$rMxMQ2DG=$G$"$k!#(B
+
+
+<h3> us-ascii
+<node> us-ascii
+<p>
+$B%"%a%j%+O"K.$J$I$G;H$o$l$k1Q8l$J$I$rI=8=$9$k$?$a$N(B <a node="MIME
+charset">MIME charset</a> $B$N#1$D!#(B
+<p>
+<a node="ASCII">ASCII</a> $B$N$_$+$i$J$j(B <a node="ISO 2022">ISO 2022</a> 
+$B$K$h$k(B<a node="Code extension">$BId9f3HD%(B</a>$B$O5v$5$l$J$$!#(B
+<p>
+Internet mail $B$K$*$1$kI8=`$N(B<a node="Coded character set">$BId9f2=J8;z=8(B
+$B9g(B</a>$B$G$"$j!"L@<(E*$K(B MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F(B 
+<concept>us-ascii</concept> $B$,;H$o$l$k!#(B
+<p>
+$B$^$?!"(B<a node="RFC 822">RFC 822</a> $B$K$*$1$k(B <concept>ASCII</concept> 
+$B$O(B us-ascii $B$r;X$9$b$N$H2r<a$9$Y$-$G$"$k!#(B
+
+
+<h1> $B@_Dj(B
+<node> Setting
+<p>
+$B$3$N(B package $B$K$O(B <file>mime-setup.el</file> $B$H(B 
+<file>tm-setup.el</file> $B$H$$$&4J0W@_Dj(B file $B$,ImB0$7$F$$$^$9!#(B
+
+<p>
+<file>mime-setup.el</file> $B$G$O(B <file>tm-edit.el</file> $B$r;H$C$?(B MIME
+message $B$N:n@.$b4^$a$?(B MIME $BA4HL$N@_Dj$r9T$J$$!"(B
+<file>tm-setup.el</file> $B$G$O(B tm-MUA $B$K4X$9$k(BMIME message $B$N1\Mw$N@_Dj(B
+$B$N$_$r9T$J$$$^$9!#(B
+
+
+<h2> $BI8=`E*$J@_Dj(B
+<node> mime-setup
+<p>
+tm $B$N0lHLE*$J@_Dj$r9T$$$?$$>l9g$O!"(B<concept>mime-setup</concept> $B$H$$(B
+$B$&I8=`@_Dj(B file $B$r;H$C$F$/$@$5$$!#Nc$($P!"(B<file>~/.emacs</file> $BEy$G!"(B
+<p>
+<lisp>
+(load "mime-setup")
+</lisp>
+<p>
+<noindent>
+$B$H$9$k$@$1$G(B OK $B$G$9!#(B
+
+<p>
+<file>mime-setup.el</file> $B$O(B <file>tm-setup.el</file> $B$r8F$s$G$$$k$N(B
+$B$G!"(B<file>tm-setup.el</file> $B$r(B load $B$9$kI,MW$O$"$j$^$;$s!#!J2a5n$N(B 
+Gnus FAQ $B$N5-=R$O4V0c$C$F$$$^$9!*!K(B
+
+
+<h3> signature.el
+<node> signature
+<p>
+tm $B$K$O(B <concept>signature</concept> $B$H$$$&(B signature $B$N<+F0@ZBX$((B 
+tool $B$,ImB0$7$F$*$j!"(B<file>mime-setup.el</file> $B$O$3$N@_Dj$b9T$J$$$^$9!#(B
+message header $B$N(B field $B$K9g$o$;$F(B signature $B$N<+F0@ZBX$r9T$J$$$?$$>l(B
+$B9g$O(B <file>~/.emacs</file> $B$K0J2<$N$h$&$J$b$N$rF~$l$F2<$5$$!#!J>\$7$/(B
+$B$O(B signature.el $B$N@bL@=q$r;2>H$7$F2<$5$$!K(B
+
+<lisp>
+(setq signature-file-alist
+      '((("Newsgroups" . "jokes")       . "~/.signature-jokes")
+        (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+        (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+        (("To" . "tea")                 . "~/.signature-jokes")
+        (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+        ))
+</lisp>
+
+
+<defvar name="mime-setup-use-signature">
+<p>
+$B$3$NJQ?t$,(B <code>nil</code> $B0J30$N;~!"(B<file>signature.el</file> $B$r;H$$(B
+$B$^$9!#4{DjCM$O(B <code>t</code> $B$G$9!#(B
+</defvar>
+
+
+<defvar name="mime-setup-signature-key-alist">
+<p>
+$B3F(B major-mode $B$K$*$$$F(B signature $BA^F~L?Na$r@_Dj$9$Y$-(B key $B$r;XDj$7$^$9!#(B
+$B4{DjCM$O(B
+
+<lisp>
+	((mail-mode . "\C-c\C-w"))
+</lisp>
+
+$B$G$9!#(B
+
+<p>
+$B$3$l$rJQ99$7$?$$>l9g$O!"4X?t(B set-alist $B$J$I$r;H$C$F$3$NJQ?t$r=q$-49$((B
+$B$F2<$5$$!#(B
+
+<lisp>
+(set-alist 'mime-setup-signature-key-alist
+	   'news-reply-mode "\C-c\C-w")
+</lisp>
+
+</defvar>
+
+<defvar name="mime-setup-default-signature-key">
+<p>
+$B$"$k(B major-mode $B$K$*$$$F(B signature $BA^F~L?Na$r@_Dj$9$Y$-(B key $B$,8+$D$+$i(B
+$B$J$$>l9g!"$3$NJQ?t$K@_Dj$5$l$?(B key $B$,MQ$$$i$l$^$9!#4{DjCM$O!"(B
+<code>"\C-c\C-s"</code> $B$G$9!#(B
+</defvar>
+
+
+<h3> GNUS $B$N>l9g$NCm0U(B
+<node> Notice about GNUS
+<p>
+<file>signature.el</file> $B$r;H$&>l9g!"(B<file>mime-setup.el</file> $B$OJQ(B
+$B?t(B <code>gnus-signature-file</code> $B$r(B <code>nil</code> $B$K@_Dj$7$^$9!#(B
+$B$h$C$F!"Aw?.;~$K<+F0E*$K(B <code>signature</code> $B$,IU$/5!G=$OM^@)$5$l$^(B
+$B$9!#$3$N$h$&$J$3$H$r$7$F$$$k$N$O0J2<$NM}M3$+$i$G$9!#(B
+
+<p>
+GNUS $B$,(B signature $B$rIU$1$k$N$O(B <code>tm-edit.el</code> $B$K$h$C$F(B MIME
+message $B$,:n@.$5$l$?8e$G$9!#$h$C$F!"(BGNUS $B$,IU$1$?(B signature $B$O(B MIME
+message $B$H$7$F@5$7$/=hM}$5$l$F$$$^$;$s!#Nc$($P(B multipart message $B$N>l(B
+$B9g!"(BMIME message $B$N30$NHs(B MIME part $B$KIU$-$^$9!#$h$C$F!"(BMIME $BBP1~(B MUA 
+$B$G8+$?>l9g!"(Bsignature $B$OI=<($5$l$J$$$+$bCN$l$^$;$s!#(B
+
+<p>
+$B$b$&0l$D$NCm0U$OI8=`@_Dj$G$O(B signature $B$rA^F~$9$k(B key $B$O(B <kbd>C-c
+C-w</kbd> $B$G$O$J$/(B <a file="mh-e">mh-e</a> $B$HF1$8(B <kbd>C-c C-s</kbd> 
+$B$K3d$jEv$F$i$l$F$$$k$3$H$G$9!#$3$l$O(B
+
+<lisp>
+(set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w")
+</lisp>
+
+<noindent>
+$B$K$h$C$F(B GNUS $B$NI8=`$KLa$9$3$H$,$G$-$^$9!#(B
+
+
+<h2> tm-edit $B$r;H$o$J$$@_Dj(B
+<node> tm-setup
+
+<p>
+<concept>tm-setup</concept> $B$O(B <a node="tm-MUA">tm-MUA</a> $B$N@_Dj$N$_(B
+$B$r9T$J$&(B module $B$G$9!#$3$N@_Dj(B file $B$G$O(B <a
+file="tm-edit-ja">tm-edit</a> $B$r;H$C$?(B MIME message $B$N:n@.$K4X$9$k@_Dj(B
+$B$O9T$o$l$:!"(BMIME message $B$N1\Mw$K4X$9$k@_Dj$N$_$,9T$o$l$^$9!#(BMIME
+message $B$rFI$_$?$$$,<+J,$G$O:n@.$7$J$$$H$+!"(Btm-edit $B0J30$N(B MIME
+composer $B$r;H$$$?$$>l9g$K$O(B mime-setup.el $B$NBe$o$j$K$3$N@_Dj(B file $B$r;H$C(B
+$B$F$/$@$5$$!#(B
+
+<p>
+$BNc$($P!"(B<file>~/.emacs</file> $BEy$K(B
+
+<lisp>
+(load "tm-setup")
+</lisp>
+
+<noindent>
+$B$rF~$l$l$P(B OK $B$G$9!#(B
+
+<p>
+
+<memo>
+<p>
+<file>mime-setup.el</file> $B$r(B load $B$7$F$$$k>l9g!"$3$l$rM[$K(B load $B$9$k(B
+$BI,MW$O$"$j$^$;$s!#(B
+</memo>
+
+
+<h2> VM $B$r;H$&>l9g$N@_Dj(B
+<node> setting for VM
+
+<p>
+<concept>vm</concept> $B$r;H$&>l9g$O(B <file>~/.vm</file> $B$K(B
+
+<lisp>
+(require 'tm-vm)
+</lisp>
+
+<noindent>
+$B$rF~$l$F2<$5$$!#(B
+
+
+<memo title="$BCm0U(B">
+<p>
+<concept>BBDB</concept> $B$r;H$&>l9g$O(B <code>(bbdb-insinuate-vm)</code> 
+$B$N(B <bf>$B8e(B</bf> $B$K(B <code>(require 'tm-vm)</code> $B$rF~$l$F$/$@$5$$!#(B
+</memo>
+
+
+<h2> $B@_Dj(B file $B$r;H$o$J$$>l9g(B
+<node> manual setting
+
+<p>
+<file>mime-setup.el</file> $B$d(B <file>tm-setup.el</file> $B$r;29M$K$7$F2<(B
+$B$5$$!#(B
+
+
+<memo>
+<p>
+$B8=:_$N(B tm $B$G$O(B tm-edit $B$N;HMQ$r2>Dj$7$?4v$D$+$NJXMx$J5!G=$,B8:_$7!"$3(B
+$B$l$i$N5!G=$O(B <file>mime-setup.el</file> $B$r;H$o$J$$$HMxMQ$G$-$^$;$s!#$b(B
+$B$7!"(Btm-edit $B$r;H$&FH<+$N@_Dj$r9T$&>l9g$O!"(B
+
+<lisp>
+(provide 'mime-setup)
+</lisp>
+
+<noindent>
+$B$H$$$&@k8@$r9T$C$F$/$@$5$$!#(B
+</memo>
+
+
+<h1> bug $BJs9p$N;EJ}(B
+<node> Bug report
+<p>
+tm $B$N%P%0$r8+$D$1$?$i!"0J2<$N(B address $B$K(B mail $B$rAw$C$F$/$@$5$$!'(B
+
+<ul>
+<li> $BF|K\8l(B <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail>
+<li> $B1Q8l(B <mail>bug-tm-en@chamonix.jaist.ac.jp</mail>
+</ul>
+
+<p>
+$BC"$7!"$"$^$j$K$b8E$$HG$K4X$9$kJs9p$O4?7^$5$l$^$;$s!#8E$$HG$N(B bug $B$O!"(B
+$B?7$7$$HG$G$O<#$C$F$$$k$+$b$7$l$^$;$s!#$^$:!":G?7HG$G3NG'$7$F$_$^$7$g$&!#(B
+<p>
+$B$=$l$+$i!"E,@Z$JJs9p$r$7$^$7$g$&!#C1$K!V$&$^$/F0$+$J$$!W$H8@$o$l$F$b$I(B
+$B$&$$$&>u67$J$N$+$O$5$C$Q$jH=$j$^$;$s!#:GDc8B!"(BOS, emacs, tm, $B;H$C$F$$(B
+$B$k(B MUA $B$N<oN`$*$h$SHG!"@_Dj$r=q$/I,MW$,$"$j$^$9!#$^$?!"(Berror $B$,5/$C$F(B
+$B$$$k>l9g$O(B backtrace $B$rAw$k$3$H$b=EMW$G$9!#(B<cf file="emacs"
+node="Bugs">
+<p>
+$B$^$?!"(Bbug $B$OBgDqJ#?t$N?M$,Ax6x$9$k$b$N$G$9!J$=$&$G$J$1$l$P!"(Bbug $B$G$O$J(B
+$B$$2DG=@-$,$"$j$^$9!K!#$@$+$i!":n<T$KD>@\(B mail $B$rAw$k$H:n<T$OF1$8(B mail
+$B$r2?DL$b=q$/1)L\$K$J$j$^$9!#$@$+$i!"I,$:(B bug $BJs9p$O>e5-$N(B address $B$KAw$C(B
+$B$F$/$@$5$$!#(B
+
+<p>
+tm ML $B$G$O(B tm $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"(Btm $B$N2~NI$K4X$9$k5DO@$r(B
+$B9T$J$C$F$$$^$9!#(Btm ML $B$K;22C$7$?$$J}$O(B
+
+<ul>
+<li> $BF|K\8l(B <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail>
+<li> $B1Q8l(B <mail>tm-en-admin@chamonix.jaist.ac.jp</mail>
+</ul>
+
+<noindent>
+$B$^$G(B mail $B$rAw$C$F2<$5$$!#EPO?$O<jF0$G$9$N$G!"$G$-$l$P!"<+A38@8l$G=q$$(B
+$B$F2<$5$$!#(B(^_^)
+
+
+<h1> $B35G0:w0z(B
+<node> Concept Index
+
+<cindex>
+
+
+<h1> $BJQ?t:w0z(B
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-ja.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,2016 @@
+\input texinfo.tex
+@setfilename tm-ja.info
+@settitle{tm 7.90 Manual$B!JF|K\8lHG!K(B}
+@titlepage
+@title tm 7.90 Manual$B!JF|K\8lHG!K(B
+@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
+@subtitle 1996/10/15
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm 7.90 Manual$B!JF|K\8lHG!K(B
+
+@ifinfo
+
+This file documents tm, a MIME package for GNU Emacs.@refill
+
+GNU Emacs $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$"$k(B `tm' $B$K$D$$$F@bL@$7$^$9!#(B
+@end ifinfo
+
+@menu
+* Introduction::                tm $B$C$F2?!)(B
+* Setting::                     $B@_Dj(B
+* Bug report::                  bug $BJs9p$N;EJ}(B
+* Concept Index::               $B35G0:w0z(B
+* Variable Index::              $BJQ?t:w0z(B
+@end menu
+
+@node Introduction, Setting, Top, Top
+@chapter tm $B$C$F2?!)(B
+
+tm $B$O(B GNU Emacs $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$9!#(Btm $B$r;H$&$H!"(B
+
+@itemize @bullet
+@item
+ tm-view $B$K$h$k(B MIME message $B$N1\Mw!&:F@8(B 
+@item
+ tm-edit $B$K$h$k(B MIME message $B$N:n@.(B
+@item
+ mh-e, GNUS, Gnus, RMAIL, VM $B$G$N(B MIME $B5!G=$N6/2=(B
+@end itemize
+
+@noindent
+$B$H$$$&$h$&$J$3$H$,9T$J$($^$9!#(B
+
+$B8DJL$N9`L\$K$D$$$F$O0J2<$r8f;2>H2<$5$$!'(B
+
+@itemize @bullet
+@item
+tm-MUA for Gnus (@ref{(gnus-mime-ja)})
+@item
+tm-MUA for GNUS (@ref{(tm-gnus-ja)})
+@item
+tm-MUA for mh-e (@ref{(tm-mh-e-ja)})
+@item
+mime/viewer-mode (@ref{(tm-view-ja)})
+@item
+mime/editor-mode (@ref{(tm-edit-ja)})
+@end itemize
+
+
+
+@menu
+* Glossary::                    $BMQ8l(B
+@end menu
+
+@node Glossary,  , Introduction, Introduction
+@section $BMQ8l(B
+
+tm $B$G;H$o$l$F$$$kMQ8l$K$D$$$F2r@b$7$^$9!#(B
+
+@menu
+* 7bit::                        
+* 8bit::                        
+* 94 character set::            94 $BJ8;z=89g(B
+* 96 character set::            96 $BJ8;z=89g(B
+* 94x94 character set::         94$B!_(B94 $BJ8;z=89g(B
+* ASCII::                       
+* Base64::                      
+* binary::                      
+* Character Set::               Character Set$B!JJ8;z=89g!K(B
+* cn-gb::                       cn-gb, gb2312
+* cn-big5::                     cn-big5, big5
+* CNS::                         CNS 11643-1992
+* Coded character set::         Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
+* Code extension::              Code extension$B!JId9f3HD%!K(B
+* Content-Disposition::         Content-Disposition field
+* media type::                  
+* Content-Type field::          
+* Emacs::                       
+* encoded-word::                
+* encapsulation::               
+* euc-kr::                      
+* FTP::                         FTP 
+* GB 2312::                     GB 2312-1980
+* GB 8565.2::                   GB 8565.2-1988
+* hz-gb2312::                   
+* ISO 2022::                    
+* iso-2022-cn::                 
+* iso-2022-cn-ext::             
+* iso-2022-jp::                 
+* iso-2022-jp-2::               
+* iso-2022-kr::                 
+* ISO 646::                     
+* ISO 8859-1::                  
+* iso-8859-1::                  
+* ISO 8859-2::                  
+* iso-8859-2::                  
+* ISO 8859-3::                  
+* ISO 8859-4::                  
+* ISO 8859-5::                  
+* iso-8859-5::                  
+* ISO 8859-6::                  
+* ISO 8859-7::                  
+* iso-8859-7::                  
+* ISO 8859-8::                  
+* ISO 8859-9::                  
+* ISO-IR-165::                  ISO-IR-165, CCITT Extended GB 
+* JIS X0201::                   
+* JIS C6226::                   JIS C6226-1978
+* JIS X0208::                   
+* JIS X0212::                   JIS X0212-1990
+* koi8-r::                      
+* KS C5601::                    KS C5601-1987
+* message::                     
+* message/rfc822::              
+* method::                      
+* MIME::                        
+* MIME charset::                
+* MTA::                         
+* MUA::                         
+* MULE::                        
+* multipart::                   Multipart
+* multipart/alternative::       
+* multipart/digest::            
+* multipart/encrypted::         
+* multipart/mixed::             
+* multipart/parallel::          
+* multipart/signed::            
+* PGP::                         
+* PGP-kazu::                    
+* PGP/MIME::                    
+* Quoted-Printable::            
+* RFC 821::                     
+* RFC 822::                     
+* RFC 934::                     
+* RFC 1036::                    
+* RFC 1153::                    
+* RFC 1557::                    
+* RFC 1922::                    
+* RFC 2045::                    
+* RFC 2046::                    
+* RFC 2048::                    
+* RFC 2049::                    
+* plain text::                  
+* Security multipart::          
+* text/enriched::               
+* text/plain::                  
+* tm-kernel::                   tm-kernel, tm
+* tm-MUA::                      
+* us-ascii::                    
+@end menu
+
+@node 7bit, 8bit, Glossary, Glossary
+@subsection 7bit
+
+$B$3$3$G$O(B 0 $B$+$i(B 127 $B$N@0?t$r;X$7$^$9!#(B@refill
+
+0 $B$+$i(B 127 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``7bit $B$N(B data'' $B$H8F$S(B
+$B$^$9!#(B@refill
+
+$B$^$?!"(B0 $B$+$i(B 31 $B$*$h$S(B 127 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=8=$5$l$k6uGr$H(B 
+33 $B$+$i(B 126 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r(B ``7bit $B$NJ8;zNs(B'' 
+$B$H8F$S$^$9!J$3$l$O(B ISO 2022 (@ref{ISO 2022}) $B$N!V(B7 $BC10L7O!W$HF1MM$G$9!K!#(B
+
+$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit $B$N(B data $B$rE>Aw$G$-$k$N$G!"(B
+7bit $B$N(B data $B$O(B Quoted-Printable (@ref{Quoted-Printable}) $B$d(B Base64
+(@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^$9!#(B@refill
+
+$B$7$+$7!"(B7bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T(B
+$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i(B
+$B$G$9!#$A$J$_$K!"(BRFC 821 (@ref{RFC 821}) $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998
+byte $B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-(B
+$B$N$"$k(B data, $BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B 
+encode$B$9$kI,MQ$,$"$j$^$9!#(B
+
+
+@node 8bit, 94 character set, 7bit, Glossary
+@subsection 8bit
+
+$B$3$3$G$O(B 0 $B$+$i(B 255 $B$N@0?t$r;X$7$^$9!#(B@refill
+
+0 $B$+$i(B 255 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``8bit $B$N(B data'' $B$H8F$S(B
+$B$^$9!#(B@refill
+
+$B$^$?!"(B0 $B$+$i(B 31, 127 $B$*$h$S(B 128 $B$+$i(B 159 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=(B
+$B8=$5$l$k6uGr$H(B 33 $B$+$i(B 126 $B$H(B 160 $B$+$i(B 255 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$k(B
+$BJ8;zNs$N$3$H$r(B ``8bit $B$NJ8;zNs(B'' $B$H8F$S$^$9!J$3$l$O(B ISO 2022 (@ref{ISO
+2022}) $B$N!V(B8 $BC10L7O!W$HF1MM$G$9!K!#(B@refill
+
+iso-8859-1 (@ref{iso-8859-1}) $B$d(B euc-kr (@ref{euc-kr}) $B$H$$$C$?Id9f2=J8(B
+$B;z=89g$O(B 8bit $B$NJ8;zNs$G$9!#(B@refill
+
+$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit (@ref{7bit}) $B$N(B data $B$7$+E>(B
+$BAw$G$-$J$$$N$G!"$=$&$7$?(B MTA $B$r7PM3$9$k>l9g!"(BQuoted-Printable
+(@ref{Quoted-Printable}) $B$d(B Base64 (@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/(B
+$B$F$O$J$j$^$;$s!#(B@refill
+
+$B$7$+$7!":G6a$G$O(B 8bit $B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k(B MTA $B$bEP>l$7$F(B
+$B$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#(B@refill
+
+$B$7$+$7!"(B8bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T(B
+$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i(B
+$B$G$9!#$A$J$_$K!"(BRFC 821 $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998 byte $B0JFb$G$"$k$3$H(B
+$B$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k(B data, $BNc$($P!"(B
+Postscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B encode$B$9$kI,MQ$,$"$j$^$9!#(B
+@refill
+
+$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,(B 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k(B
+data $B$O(B @cindex{binary}@strong{binary} (@ref{binary}) $B$H8F$V$3$H$K$7$^$9!#(B
+
+$B$A$J$_$K!"(B7bit $B$GI=8=$G$-$k(B data $B$O(B 8bit $B$G$bI=8=$G$-$^$9!#$h$C$F!"(B
+``8bit'' $B$H8@$C$?>l9g!"#19T$,(B 998 byte $B0J2<$NG$0U$N(B data $B$r;X$9$3$H$,(B
+$B$"$j$^$9!#(B
+
+
+@node 94 character set, 96 character set, 8bit, Glossary
+@subsection 94 $BJ8;z=89g(B
+
+33 $B$+$i(B 126 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(B
+ASCII (@ref{ASCII}) $B$d(B JIS X0201-Latin $B$O$=$N0l<o!#(B
+
+
+@node 96 character set, 94x94 character set, 94 character set, Glossary
+@subsection 96 $BJ8;z=89g(B
+
+32 $B$+$i(B 127 $B$NHO0O$N(B 1 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(BISO
+8859 $B%7%j!<%:$O$=$N0l<o!#(B
+
+
+@node 94x94 character set, ASCII, 96 character set, Glossary
+@subsection 94$B!_(B94 $BJ8;z=89g(B
+
+33 $B$+$i(B 126 $B$NHO0O$N(B 2 byte $B$+$i$J$k(B $BJ8;z=89g(B(@ref{Character set})$B!#(BJIS
+X0208 (@ref{JIS X0208}) $B$d(B GB 2312 (@ref{GB 2312}) $B$O$=$N0l<o!#(B
+
+
+@node ASCII, Base64, 94x94 character set, Glossary
+@subsection ASCII
+
+$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B 94 $BJ8;z=89g(B(@ref{94 character
+set})$B!#(BA-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646
+(@ref{ISO 646}) $B$N0l$D!#(B
+
+@cindex{ASCII}@cindex{ANSI X3.4:1986}
+@noindent
+[ASCII]
+@quotation
+``Coded Character Set -- 7-Bit American Standard Code for Information
+Interchange'', ANSI X3.4:1986.
+@end quotation
+
+
+
+@node Base64, binary, ASCII, Glossary
+@subsection Base64
+
+RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B 
+binary data (@ref{binary}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
+
+$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B ASCII
+(@ref{ASCII}) 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B 
+@cindex{pad}@strong{pad} $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B@refill
+
+$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B
+Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B
+$B$l$F$$$k!#(B
+
+
+@node binary, Character Set, Base64, Glossary
+@subsection binary
+
+$BG$0U$N(B byte $BNs$r(B @cindex{binary}@strong{binary} $B$H8F$V$3$H$K$7$^$9!#(B
+@refill
+
+8bit (@ref{8bit}) $B$H0[$J$k$N$O(B data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G$9!#(B
+
+$B$^$?!"9T$N9=B$$,$"$C$F$b!"(B999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b(B binary$B$H8F(B
+$B$V$3$H$K$7$^$9!#(B@refill
+
+$B$A$J$_$K!"(B7bit (@ref{7bit}) $B$d(B 8bit $B$GI=8=$G$-$k(B data $B$O(B binary $B$G$bI=8=(B
+$B$G$-$^$9!#$h$C$F!"(B@cindex{binary data}@strong{binary data} $B$H8@$C$?>l9g!"(B
+$BG$0U$N(B data $B$r;X$9$3$H$,$"$j$^$9!#(B
+
+
+@node Character Set, cn-gb, binary, Glossary
+@subsection Character Set$B!JJ8;z=89g!K(B
+
+$BId9f2=J8;z=89g(B(@ref{Coded character set})$B!#C"$7!"$3$3$G$O(B $BId9f3HD%(B
+(@ref{Code extension}) $B$5$l$F$J$$J8;z=89g$H$$$&%K%e%"%s%9$r9~(B
+$B$a$F$$$k!#(B
+
+
+@node cn-gb, cn-big5, Character Set, Glossary
+@subsection cn-gb, gb2312
+
+$BCf9qBgN&$G$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B MIME
+charset (@ref{MIME charset}) $B$N#1$D!#(B@refill
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(B GB 2312
+(@ref{GB 2312}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code extension})$B$7(B
+$B$F$$$k!#(B@refill
+
+RFC 1922 (@ref{RFC 1922}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node cn-big5, CNS, cn-gb, Glossary
+@subsection cn-big5, big5
+
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+MIME charset (@ref{MIME charset}) $B$N#1$D!#(B@refill
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$+$J$$(B 8bit (@ref{8bit}) $B$NId9f2=J8;z=89g(B
+(@ref{Coded character set})$B$G(B de-fact standard $B$G$"$k!#(BRFC 1922
+(@ref{RFC 1922}) $B$GDj5A$5$l$F$$$k!#(B@refill
+
+cf. @cindex{BIG5}
+@noindent
+[BIG5]
+@quotation
+Institute for Information Industry, ``Chinese Coded Character Set in
+Computer'', March 1984.
+@end quotation
+
+CNS 11643-1986 (@ref{CNS}) $B$HBP1~4X78$,$"$k!#(B
+
+
+@node CNS, Coded character set, cn-big5, Glossary
+@subsection CNS 11643-1992
+
+$BBfOQ$d9a9A$GMQ$$$i$l$F$$$k<g$KHKBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B 
+$BJ8;z=89g(B(@ref{Character set})$B!#BfOQ$NI8=`!#8=:_!"(B94$B!_(B94 (@ref{94x94
+character set}) $B$NLL$,Bh#1LL$+$iBh#7LL$^$G$"$k!#(B@refill
+
+ISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O!"Bh#1LL$,(B `G', $BBh#2LL$,(B `H', $BBh(B
+$B#3LL$,(B `I', $BBh#4LL$,(B `J', $BBh#5LL$,(B `K', $BBh#6LL$,(B `L', $BBh#7LL$,(B `M' $B$G$"(B
+$B$k!#(B
+
+@cindex{CNS 11643-1992}@cindex{CNS        11643:1992}
+@noindent
+[CNS 11643-1992]
+@quotation
+``Standard Interchange Code for Generally-Used Chinese Characters'', CNS
+11643:1992.
+@end quotation
+
+
+
+@node Coded character set, Code extension, CNS, Glossary
+@subsection Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
+
+$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B
+
+
+@node Code extension, Content-Disposition, Coded character set, Glossary
+@subsection Code extension$B!JId9f3HD%!K(B
+
+$BM?$($i$l$?J8;z=89g(B(@ref{Character set})$B$K4^$^$l$F$$$J$$J8;z$NId9f2=$N$?(B
+$B$a$KMQ$$$k<jK!!#(BISO 2022 (@ref{ISO 2022}) $B$O$=$N#1$D!#(B
+
+
+@node Content-Disposition, media type, Code extension, Glossary
+@subsection Content-Disposition field
+
+Content $B$NI=<($N;EJ}$d(B file $BL>$rI=8=$9$k$?$a$N(B field. MIME (@ref{MIME}) 
+$B$N3HD%$N#1$D!#(B@refill
+
+@cindex{Experimental}@cindex{RFC 1806}
+@noindent
+[RFC 1806]
+@quotation
+E R. Troost and S. Dorner, ``Communicating Presentation Information in
+Internet Messages: The Content-Disposition Header'', June 1995,
+Experimental.
+@end quotation
+
+
+
+@node media type, Content-Type field, Content-Disposition, Glossary
+@subsection media type
+
+MIME (@ref{MIME}) $B$K$*$1$k(B entity (@ref{entity}) $B$N<oN`!#(B
+@cindex{type}@strong{type} $B$H(B @cindex{subtype}@strong{subtype} $B$+$i$J$k!#(B
+RFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F$$$k!#(B@refill
+
+type $B$OI8=`$G$O(B
+
+@itemize @bullet
+@item
+@cindex{text}@strong{text}
+@item
+@cindex{image}@strong{image}
+@item
+@cindex{audio}@strong{audio}
+@item
+@cindex{video}@strong{video}
+@item
+@cindex{application}@strong{application}
+@item
+@cindex{multipart}@strong{multipart} (@ref{multipart})
+@item
+@cindex{message}@strong{message}
+@end itemize
+
+@noindent
+$B$,Dj5A$5$l!"$=$l$>$l$K$O(B application/octet-stream, audio/basic,
+image/jpeg, multipart/mixed (@ref{multipart/mixed}), text/plain
+(@ref{text/plain}), video/mpeg $B$J$I$N$5$^$6$^$J(B subtype $B$,Dj5A$5$l$F$$$k!#(B
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+$B$3$3$G$O!"(Btext/plain $B$J$I$N(B type/subtype $B$NAH$r$7$P$7$P(B 
+@cindex{content-type/subtype}@strong{content-type/subtype} $B$H=q$/!#(B
+@end quotation
+
+
+media type $B$O!"(BRFC 2046 $B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G$-(B
+$B$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O(B MEDIA TYPES
+(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) $B$G;2>H$G$-$k!#(B
+
+$B$^$?!"(Btype $B$b$7$/$O(B subtype $B$K!"A0$K(B `x-' $B$rIU$1$?(B 
+@cindex{x-token}@strong{x-token} $B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b(B
+$B$N$r;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J(B 
+content-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3(B
+$B$H!#(B@refill
+
+(cf. @ref{Content-Type field})
+
+
+
+@node Content-Type field, Emacs, media type, Glossary
+@subsection Content-Type field
+
+media type (@ref{media type}) $B$d(B MIME charset (@ref{MIME charset}) $B$J$I(B
+$B$N(B part $B$K4X$9$k>pJs$rI=8=$9$k$?$a$N(B field. RFC 2045 (@ref{RFC 2045}) $B$G(B
+$BDj5A$5$l$F$$$k!#(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+$BNr;KE*$K$O(B RFC 1049 $B$G(B Content-Type field $B$,Ds0F$5$l$F$$$k!#C"$7!"$3$3$G(B
+$B$O(B type $B$H(B subtype $B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O(B MIME parser $B$O(B RFC
+1049 $B$K4p$E$/(B message $B$rL$CN$N(B content-type $B$r;}$C$?(B message $B$H$7$F(B 
+parse $B$G$-$k$@$m$&!#(B
+@end quotation
+
+
+Content-Type field $B$O(B
+
+@quotation
+``Content-Type'' ``:'' @cindex{type}@strong{type} ``/''
+@cindex{subtype}@strong{subtype} *( ``;'' @cindex{parameter}@strong{parameter} )
+@end quotation
+
+@noindent
+$B$HDj5A$5$l$k!#(B
+
+$BNc$($P!"(B
+
+@quotation
+@example
+Content-Type: image/jpeg
+@end example
+@end quotation
+
+@noindent
+$B$d(B
+
+@quotation
+@example
+Content-Type: text/plain; charset=iso-2022-jp
+@end example
+@end quotation
+
+@noindent
+$B$J$I$N$h$&$K=q$+$l$k!#(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+content-type $B$N$J$$(B part $B$O(B
+
+@quotation
+@example
+Content-Type: text/plain; charset=us-ascii
+@end example
+@end quotation
+
+@noindent
+$B$H$7$F2r<a$5$l$k!#(B(cf. @ref{us-ascii})
+@end quotation
+
+
+
+@node Emacs, encoded-word, Content-Type field, Glossary
+@subsection Emacs
+
+$B$3$3$G$O(B `Emacs' $B$G(B FSF $B$,G[I[$7$F$$$k(B GNU Emacs $B$r;X$7!"(B`emacs' $B$G(B
+GNU Emacs $B$NJQ<o$NAm>N$H$9$k!#(B
+
+
+@node encoded-word, encapsulation, Emacs, Glossary
+@subsection encoded-word
+
+header $B$K$*$1$kHs(B ASCII (@ref{ASCII}) $BJ8;z$NI=8=!#(B@cindex{RFC
+2047}@strong{RFC 2047} $B$GDj5A$5$l$F$$$k!#(B@refill
+
+@cindex{Standards Track}@cindex{RFC 2047}
+@noindent
+[RFC 2047]
+@quotation
+K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Three:
+Message Header Extensions for Non-ASCII Text'', November 1996, Standards
+Track (obsolete RFC 1521,1522,1590).
+@end quotation
+
+
+
+@node encapsulation, euc-kr, encoded-word, Glossary
+@subsection encapsulation
+
+Internet mail (@ref{RFC 822}) $B$rB>$N5-;v$K$^$k$4$HF~$l$kJ}K!!#(B@refill
+
+$BNc$($P!"5-;v$rE>Aw$7$?$j$9$k$N$KMQ$$$k!#(B@refill
+
+(cf. @ref{message/rfc822})
+
+
+
+@node euc-kr, FTP, encapsulation, Glossary
+@subsection euc-kr
+
+$B4Z9q8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(BKS C5601
+(@ref{KS C5601}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code extension})
+$B$7$F$$$k!#(B@refill
+
+RFC 1557 (@ref{RFC 1557}) $B$GDj5A$5$l$F$$$k!#(B@refill
+
+cf. @cindex{euc-kr}@cindex{KS C 5861:1992}
+@noindent
+[euc-kr]
+@quotation
+Korea Industrial Standards Association, ``Hangul Unix Environment'', KS
+C 5861:1992.
+@end quotation
+
+
+
+@node FTP, GB 2312, euc-kr, Glossary
+@subsection FTP 
+
+Internet $B$G(B file $B$rE>Aw$9$k$?$a$N(B protocol $B$N#1$D!#(BRFC 959 $B$GDj5A$5$l$F(B
+$B$$$k!#(B@refill
+
+@cindex{FTP}@cindex{STD 9}@cindex{RFC 959}
+@noindent
+[FTP: RFC 959]
+@quotation
+Postel, J. and J. Reynolds, ``File Transfer Protocol'', October 1985,
+STD 9.
+@end quotation
+
+
+
+@node GB 2312, GB 8565.2, FTP, Glossary
+@subsection GB 2312-1980
+
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=$9$?$a$N(B 94$B!_(B94 $BJ8;z(B
+$B=89g(B(@ref{94x94 character set})$B!#Cf9q$N9q2HI8=`!#(BISO 2022 (@ref{ISO
+2022}) $B$G$N=*C<J8;z$O(B `A'.@refill
+
+$B$3$l$O(B GB $B$K$*$1$k4pK\=8$G$"$k!#(B
+
+@cindex{GB 2312}@cindex{GB 2312:1980}
+@noindent
+[GB 2312]
+@quotation
+$B!X?.B)8r49MQ4A;zJTb{;zId=8(B -- $B4pK\=8!Y(B, ``Code of Chinese Graphic
+Character Set for Information Interchange - Primary Set'', GB 2312:1980.
+@end quotation
+
+
+
+@node GB 8565.2, hz-gb2312, GB 2312, Glossary
+@subsection GB 8565.2-1988
+
+$BCf9q8l$N$?$a$NJd=uJ8;z=89g(B(@ref{Character set})$B!#Cf9q$N9q2HI8=`!#(BGB 2312
+(@ref{GB 2312}) $B$N6u$-ItJ,$KJd=<$9$k$h$&$KDj5A$5$l$?$i$7$$!#(B
+
+@cindex{GB 8565.2}@cindex{GB 8565.2:1988}
+@noindent
+[GB 8565.2]
+@quotation
+``Information Processing - Coded Character Sets for Text Communication -
+Part 2: Graphic Characters used with Primary Set'', GB 8565.2:1988.
+@end quotation
+
+
+
+@node hz-gb2312, ISO 2022, GB 8565.2, Glossary
+@subsection hz-gb2312
+
+$BCf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=$9$k$?$a$N(B MIME
+charset (@ref{MIME charset}) $B$N#1$D!#(B@refill
+
+ASCII (@ref{ASCII}) $B$K(B GB 2312 (@ref{GB 2312}) $B$r(B 7bit $B$GId9f3HD%(B
+(@ref{Code extension})$B$7$?$b$N$r(B ASCII printable $B$K$J$k$h$&$K9)IW$7$F$$(B
+$B$k!#(B@refill
+
+RFC 1842, 1843 $B$GDj5A$5$l$F$$$k!#(B
+
+@cindex{Informational}@cindex{RFC 1842}
+@noindent
+[RFC 1842]
+@quotation
+Y. Wei, Y. Zhang, J. Li, J. Ding and Y. Jiang, ``ASCII Printable
+Characters-Based Chinese Character Encoding for Internet Messages'',
+August 1995, Informational.
+@end quotation
+
+@cindex{Informational}@cindex{RFC 1843}
+@noindent
+[RFC 1843]
+@quotation
+F. Lee, ``HZ - A Data Format for Exchanging Files of Arbitrarily Mixed
+Chinese and ASCII characters'', August 1995, Informational.
+@end quotation
+
+
+
+@node ISO 2022, iso-2022-cn, hz-gb2312, Glossary
+@subsection ISO 2022
+
+$BId9f3HD%(B(@ref{Code extension})$B$N$?$a$N9q:]I8=`!#(B@refill
+
+$B$3$l$rMQ$$$FJ#?t$NJ8;z=89g(B(@ref{Character set})$B$rAH9g$;$F(B 7bit
+(@ref{7bit}) $B$J$$$7(B 8bit (@ref{8bit}) $B$N(B $BId9f2=J8;z=89g(B(@ref{Coded
+character set}) $B$r:n$k$3$H$,$G$-$k!#(B
+
+@cindex{ISO 2022}@cindex{ISO/IEC 2022:1994}
+@noindent
+[ISO 2022]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing: ISO 7-bit and 8-bit coded character sets: Code extension
+techniques'', ISO/IEC 2022:1994.
+@end quotation
+
+
+
+@node iso-2022-cn, iso-2022-cn-ext, ISO 2022, Glossary
+@subsection iso-2022-cn
+
+$BCf9q8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(B GB 2312
+(@ref{GB 2312}), CNS 11643 plain 1, plain 2 (@ref{CNS}) $B$r(B 7bit
+(@ref{7bit}) $B$GId9f3HD%(B (@ref{Code extension})$B$7$F$$$k!#(B@refill
+
+RFC 1922 (@ref{RFC 1922}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node iso-2022-cn-ext, iso-2022-jp, iso-2022-cn, Glossary
+@subsection iso-2022-cn-ext
+
+$BCf9q8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(B GB 2312
+(@ref{GB 2312}), CNS 11643 plain 1 .. 7 (@ref{CNS}), ISO-IR-165
+(@ref{ISO-IR-165}) $BEy$r(B 7bit (@ref{7bit}) $B$GId9f3HD%(B (@ref{Code
+extension})$B$7$F$$$k!#(B@refill
+
+RFC 1922 (@ref{RFC 1922}) $B$GDj5A$5$l$F$$$k!#(B@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+MULE 2.3 $B$*$h$S!"8=:_$N(B XEmacs/mule $B$G$O@5$7$/07$&$3$H$O$G$-$J$$!#(B
+
+Emacs/mule $B$G$OMxMQ2DG=$G$"$k!#(B
+@end quotation
+
+
+
+@node iso-2022-jp, iso-2022-jp-2, iso-2022-cn-ext, Glossary
+@subsection iso-2022-jp
+
+$BF|K\8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N0l$D!#(B
+
+$B8E$$(B ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}), JIS
+X0201-Latin, JIS X0208-1978 (@ref{JIS C6226-1978}), JIS X0208-1983
+(@ref{JIS X0208}) $B$r@Z$jBX$($k(B 7bit (@ref{7bit}) $BJ8;zId9f!#(B@refill
+
+RFC 1468 $B$GDj5A$5$l$F$$$k!#(B@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+JIS X0208-1996? $B$G$O(B ISO 2022 (@ref{ISO 2022}) $B$HFHN)$KDj5A$5$l$kM=Dj!#(B
+@end quotation
+
+
+@cindex{iso-2022-jp}@cindex{RFC 1468}
+@noindent
+[iso-2022-jp: RFC 1468]
+@quotation
+Murai J., M. Crispin, and E. van der Poel, ``Japanese Character Encoding
+for Internet Messages'', June 1993.
+@end quotation
+
+
+
+@node iso-2022-jp-2, iso-2022-kr, iso-2022-jp, Glossary
+@subsection iso-2022-jp-2
+
+iso-2022-jp (@ref{iso-2022-jp}) $B$r3HD%$7$?(B MIME charset (@ref{MIME
+charset}) $B$N0l$D!#(B@refill
+
+RFC 1554 $B$GDj5A$5$l$F$$$k!#(B
+
+@cindex{iso-2022-jp-2}@cindex{Informational}@cindex{RFC 1554}
+@noindent
+[iso-2022-jp-2: RFC 1554]
+@quotation
+Ohta M. and Handa K., ``ISO-2022-JP-2: Multilingual Extension of
+ISO-2022-JP'', December 1993, Informational.
+@end quotation
+
+
+
+@node iso-2022-kr, ISO 646, iso-2022-jp-2, Glossary
+@subsection iso-2022-kr
+
+$B4Z9q8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F(B ASCII (@ref{ASCII}) $B$K(B KS C5601
+(@ref{KS C5601}) $B$r(B 7bit (@ref{7bit}) $B$GId9f3HD%(B (@ref{Code extension})
+$B$7$F$$$k!#(B@refill
+
+RFC 1557 (@ref{RFC 1557}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node ISO 646, ISO 8859-1, iso-2022-kr, Glossary
+@subsection ISO 646
+
+$B3F9q$G6&DL$K;H$($k:G>.8BEY$NJ8;z=89g(B(@ref{Character set})$B$rDj$a$?$b$N!#(B
+94 $BJ8;z=89g(B (@ref{94 character set})$B$N#1$D!#(BISO 646 IRV$B!J9q:]4p=`HG!K$r(B
+$B85$K4v$D$+$NJ8;z$O3F9q$G0c$&J8;z$r3dEv$k$3$H$r5v$7$F$$$F!"4v$D$+$NJQ<o$,(B
+$BB8:_$9$k!#(BASCII (@ref{ASCII}) $B$d(B JIS X0201-Latin $B$O$=$N0l<o!#(B
+
+@cindex{ISO 646}@cindex{ISO/IEC 646:1991}
+@noindent
+[ISO 646]
+@quotation
+International Organization for Standardization (ISO), ``Information
+technology: ISO 7-bit coded character set for information interchange'',
+ISO/IEC 646:1991.
+@end quotation
+
+
+
+@node ISO 8859-1, iso-8859-1, ISO 646, Glossary
+@subsection ISO 8859-1
+
+$B@>2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96
+character set})$B!#(B
+
+@cindex{ISO 8859-1}@cindex{ISO 8859-1:1987}
+@noindent
+[ISO 8859-1]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 1:
+Latin Alphabet No.1'', ISO 8859-1:1987.
+@end quotation
+
+
+
+@node iso-8859-1, ISO 8859-2, ISO 8859-1, Glossary
+@subsection iso-8859-1
+
+$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-1
+(@ref{ISO 8859-1}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
+extension})$B$7$F$$$k!#(B@refill
+
+RFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node ISO 8859-2, iso-8859-2, iso-8859-1, Glossary
+@subsection ISO 8859-2
+
+$BEl2$=t8l$GMQ$$$i$l$k3HD%(B Latin $BJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96
+character set})$B!#(B
+
+@cindex{ISO 8859-2}@cindex{ISO 8859-2:1987}
+@noindent
+[ISO 8859-2]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 2:
+Latin alphabet No.2'', ISO 8859-2:1987.
+@end quotation
+
+
+
+@node iso-8859-2, ISO 8859-3, ISO 8859-2, Glossary
+@subsection iso-8859-2
+
+$BEl2$=t8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-2
+(@ref{ISO 8859-2}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
+extension})$B$7$F$$$k!#(B@refill
+
+RFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node ISO 8859-3, ISO 8859-4, iso-8859-2, Glossary
+@subsection ISO 8859-3
+
+@cindex{ISO 8859-3}@cindex{ISO 8859-3:1988}
+@noindent
+[ISO 8859-3]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 3:
+Latin alphabet No.3'', ISO 8859-3:1988.
+@end quotation
+
+
+
+@node ISO 8859-4, ISO 8859-5, ISO 8859-3, Glossary
+@subsection ISO 8859-4
+
+@cindex{ISO 8859-4}@cindex{ISO 8859-4:1988}
+@noindent
+[ISO 8859-4]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 4:
+Latin alphabet No.4'', ISO 8859-4:1988.
+@end quotation
+
+
+
+@node ISO 8859-5, iso-8859-5, ISO 8859-4, Glossary
+@subsection ISO 8859-5
+
+$B%-%j%kJ8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96 character set})$B!#(B
+
+@cindex{ISO 8859-5}@cindex{ISO 8859-5:1988}
+@noindent
+[ISO 8859-5]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 5:
+Latin/Cyrillic alphabet'', ISO 8859-5:1988.
+@end quotation
+
+
+
+@node iso-8859-5, ISO 8859-6, ISO 8859-5, Glossary
+@subsection iso-8859-5
+
+$B%-%j%kJ8;z$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-5
+(@ref{ISO 8859-5}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
+extension})$B$7$F$$$k!#(B@refill
+
+RFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node ISO 8859-6, ISO 8859-7, iso-8859-5, Glossary
+@subsection ISO 8859-6
+
+@cindex{ISO 8859-6}@cindex{ISO 8859-6:1987}
+@noindent
+[ISO 8859-6]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 6:
+Latin/Arabic alphabet'', ISO 8859-6:1987.
+@end quotation
+
+
+
+@node ISO 8859-7, iso-8859-7, ISO 8859-6, Glossary
+@subsection ISO 8859-7
+
+$B%.%j%7%"J8;z$d5-9f$+$i$J$k(B 96 $BJ8;z=89g(B(@ref{96 character set})$B!#(B
+
+@cindex{ISO 8859-7}@cindex{ISO 8859-7:1987}
+@noindent
+[ISO 8859-7]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 7:
+Latin/Greek alphabet'', ISO 8859-7:1987.
+@end quotation
+
+
+
+@node iso-8859-7, ISO 8859-8, ISO 8859-7, Glossary
+@subsection iso-8859-7
+
+$B%.%j%7%"8l$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME charset}) $B$N#1$D!#(B
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$$$F!"(BASCII (@ref{ASCII}) $B$K(B ISO 8859-7
+(@ref{ISO 8859-7}) $B$r(B 8bit (@ref{8bit}) $B$GId9f3HD%(B (@ref{Code
+extension})$B$7$F$$$k!#(B@refill
+
+RFC 1947 $B$GDj5A$5$l$F$$$k!#(B
+
+@cindex{iso-8859-7}@cindex{Informational}@cindex{RFC 1947}
+@noindent
+[iso-8859-7: RFC 1947]
+@quotation
+D. Spinellis, ``Greek Character Encoding for Electronic Mail Messages'',
+May 1996, Informational.
+@end quotation
+
+
+
+@node ISO 8859-8, ISO 8859-9, iso-8859-7, Glossary
+@subsection ISO 8859-8
+
+@cindex{ISO 8859-8}@cindex{ISO 8859-8:1988}
+@noindent
+[ISO 8859-8]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 8:
+Latin/Hebrew alphabet'', ISO 8859-8:1988.
+@end quotation
+
+
+
+@node ISO 8859-9, ISO-IR-165, ISO 8859-8, Glossary
+@subsection ISO 8859-9
+
+@cindex{ISO 8859-9}@cindex{ISO 8859-9:1990}
+@noindent
+[ISO 8859-9]
+@quotation
+International Organization for Standardization (ISO), ``Information
+Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 9:
+Latin alphabet No.5'', ISO 8859-9:1990.
+@end quotation
+
+
+
+@node ISO-IR-165, JIS X0201, ISO 8859-9, Glossary
+@subsection ISO-IR-165, CCITT Extended GB 
+
+CCITT $B$,EPO?$7$?!"Cf9qBgN&$GMQ$$$i$l$F$$$k4JBN;z$GI=5-$5$l$kCf9q8l$rI=8=(B
+$B$9$k$?$a$N(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B@refill
+
+GB 2312 (@ref{GB 2312}) $B$H(B GB 8565 $BI=#2(B (@ref{GB 8865.2}) $B$K(B 150 $BJ8;z$[(B
+$B$I$rDI2C$7$?$b$N$i$7$$!#(B@refill
+
+ISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `E' $B$G$"$k!#(B
+
+
+@node JIS X0201, JIS C6226, ISO-IR-165, Glossary
+@subsection JIS X0201
+
+ISO 646 (@ref{ISO 646}) $B$NJQ<o$N#1$D$G$"$k(B Latin $BJ8;z=89g$H(B 1 byte $B$N%+(B
+$B%?%+%JJ8;z=89g$+$i$J$k!#(B@refill
+
+$B85$O(B @cindex{JIS C6220-1976}@strong{JIS C6220-1976} $B$H8@$C$?$,(B @cindex{JIS
+X0201}@strong{JIS
+X0201} $B$KHV9f$,JQ99$5$l$?!#(B
+
+@cindex{JIS X0201-1976}@cindex{JIS        X 0201-1976:}
+@noindent
+[JIS X0201-1976]
+@quotation
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X>pJs8r49MQId9f!Y(B, ``Code
+for Information Interchange'', JIS X 0201-1976:.
+@end quotation
+
+
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=P$kM=Dj!#(B
+
+@cindex{JIS X0201-1996?}@cindex{JIS X 0201:1996?        draft}
+@noindent
+[JIS X0201-1996?]
+@quotation
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#7%S%C%H5Z$S#8%S%C%H$N>p(B
+$BJs8r49MQId9f2=J8;z=89g!Y(B, ``7-bit and 8-bit coded character sets for
+information interchange'', JIS X 0201:1996?  draft.
+@end quotation
+
+
+
+@node JIS C6226, JIS X0208, JIS X0201, Glossary
+@subsection JIS C6226-1978
+
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B
+$BF|K\$N9q2HI8=`!#(BJIS X0208-1978 $B$H$b$$$&!#(B@refill
+
+(cf. @ref{JIS X0208})
+
+
+
+@node JIS X0208, JIS X0212, JIS C6226, Glossary
+@subsection JIS X0208
+
+$BF|K\8l$rI=$9$?$a$K:n$i$l$?(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#(B
+$BF|K\$N9q2HI8=`!#(B1978 $BG/HG!"(B1983 $BG/HG!"(B1990 $BG/HG$,$"$k$,!"(BInternet $B$G$O(B 
+1983 $BG/HG$,$b$C$H$bNI$/;H$o$l$F$$$k!#(B@refill
+
+JIS X0208 $B$O5-9f!"?t;z!"%m!<%^;z!"$R$i$,$J!"%+%?%+%J!"%.%j%7%cJ8;z!"%-%j(B
+$B%kJ8;z!"7S@~AG!"Bh#1?e=`!"Bh#2?e=`$N4A;z$,4^$^$l$k!#C"$7!"(B1983 $BG/HG$N0l(B
+$BIt$N5-9f$H7S@~AG$O(B 1978 $BG/HG$K$O$J$$!#$^$?!"0lIt$N4A;z$N;z7A$,(B 1983 $BG/HG(B
+$B$G$OJQ99$5$l!"$^$?!"Bh#1?e=`$HBh#2?e=`$,F~$lBX$o$C$F$$$?$j$9$k!#$3$N$?$a!"(B
+1978 $BG/HG$H(B 1983 $BG/HG$O0[$J$kJ8;z=89g$H$7$F07$o$l$k!#(B@refill
+
+1990 $BG/$N2~Dj$G$O(B 1983 $BG/HG$KBP$9$kDI2C$,9T$o$l$?!#$3$N$?$a!"(B1990 $BG/HG(B
+$B$r;X<($9$k>l9g$OA0$K99?7%7!<%1%s%9$rMQ$$$k!#(B
+
+@cindex{JIS X0208-1978}@cindex{JIS C6226:1978}
+@noindent
+[JIS X0208-1978]
+@quotation
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X>pJs8r49MQ4A;zId9f7O!Y(B,
+``Code of the Japanese graphic character set for information
+interchange'', JIS C6226:1978.
+@end quotation
+
+@cindex{JIS X0208-1983,1990}@cindex{JIS X0208:1983,1990}
+@noindent
+[JIS X0208-1983,1990]
+@quotation
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X>pJs8r49MQ4A;zId9f7O!Y(B,
+``Code of the Japanese graphic character set for information
+interchange'', JIS X0208:1983,1990.
+@end quotation
+
+
+$B$^$?!"(B1996 $BG/$K2~DjHG$,=PHG$5$l$kM=Dj!#!J;z7A$NJQ99$O9T$o$l$J$$$N$GJ8(B
+$B;z=89g$H$7$F$O(B 1990 $BG/HG$HF10l$G$"$k!K(B
+
+@cindex{JIS X0208-1996?}@cindex{JIS X 0208:1996? draft}
+@noindent
+[JIS X0208-1996?]
+@quotation
+$BF|K\5,3J6(2q(B (Japanese Standards Association),$B!X#7%S%C%H5Z$S#8%S%C%H$N(B 
+$B#2%P%$%H>pJs8r49MQId9f2=4A;z=89g!Y(B, ``7-bit and 8-bit double byte coded
+Kanji sets for information interchange'', JIS X 0208:1996? draft.
+@end quotation
+
+
+
+@node JIS X0212, koi8-r, JIS X0208, Glossary
+@subsection JIS X0212-1990
+
+JIS X0208 (@ref{JIS X0208}) $B$K$J$+$C$?J8;z$r=8$a$?(B 94$B!_(B94 $BJ8;z=89g(B
+(@ref{94x94 character set})$B!#!VJd=u4A;z!W$H$b8F$P$l$k!#F|K\$N9q2HI8=`!#(B
+ISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `D'.
+
+
+@node koi8-r, KS C5601, JIS X0212, Glossary
+@subsection koi8-r
+
+$B%m%7%d8lEy$GMQ$$$i$l$k%-%j%kJ8;z$rI=8=$9$k$?$a$N(B MIME charset (@ref{MIME
+charset}) $B$N#1$D!#(B@refill
+
+ISO 2022 (@ref{ISO 2022}) $B$K4p$+$J$$(B 8bit (@ref{8bit}) $B$NId9f2=J8;z=89g(B
+(@ref{Coded character set})$B$G(B de-fact standard $B$G$"$k!#(B
+
+RFC 1489 $B$GDj5A$5$l$F$$$k!#(B@refill
+
+@cindex{RFC 1489}
+@noindent
+[RFC 1489]
+@quotation
+A. Chernov, ``Registration of a Cyrillic Character Set'', July 1993.
+@end quotation
+
+
+
+@node KS C5601, message, koi8-r, Glossary
+@subsection KS C5601-1987
+
+$B4Z9q8l$rI=$9$?$a$N(B 94$B!_(B94 $BJ8;z=89g(B(@ref{94x94 character set})$B!#4Z9q$N9q(B
+$B2HI8=`!#(BISO 2022 (@ref{ISO 2022}) $B$G$N=*C<J8;z$O(B `C'.
+
+@cindex{KS C5601}@cindex{KS C 5601:1987}
+@noindent
+[KS C5601]
+@quotation
+Korea Industrial Standards Association, ``Code for Information
+Interchange (Hangul and Hanja)'', KS C 5601:1987.
+@end quotation
+
+
+
+@node message, message/rfc822, KS C5601, Glossary
+@subsection message
+
+$B$3$3$G$O(B RFC 822 (@ref{RFC 822}) $B$GDj5A$5$l$k(B mail $B$H(B RFC 1036 (@ref{RFC
+1036}) $B$GDj5A$5$l$k(B news $B5-;v$NAm>N$H$7$FMQ$$$k!#(B
+
+
+@node message/rfc822, method, message, Glossary
+@subsection message/rfc822
+
+$BEAE}E*$J(B RFC 934 (@ref{RFC 934}) $B$KBe$o$j!"(BRFC 822 (@ref{RFC 822}) $B$GDj(B
+$B5A$5$l$k(B mail $B$rI=$9(B MIME $B$N7A<0!#(BRFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F(B
+$B$$$k!#(B
+
+
+@node method, MIME, message/rfc822, Glossary
+@subsection method
+
+tm $B$GFCDj$N<oN`$N(B data $B$r:F@8$7$?$H$-<B:]$K$=$N=hM}$r9T$J$&(B
+program. Emacs Lisp $B$G=q$+$l$?(B @cindex{internal method}@strong{internal
+method} $B$H(B C $B$d(B script $B8@8l$J$I$G=q$+$l$?(B @cindex{external
+method}@strong{external method} $B$,$"$k!#(B@refill
+
+(cf. @ref{(tm-view-ja)method})
+
+
+
+@node MIME, MIME charset, method, Glossary
+@subsection MIME
+
+@cindex{Multipurpose Internet Mail Extensions}@strong{Multipurpose
+Internet Mail Extensions} $B$NN,$G!"(BInternet $B$N(B mail $B$d(B news $B$G(B us-ascii
+plain text (@ref{us-ascii}) $B0J30$NJ8;z$r;H$&$?$a$N(B RFC 822 (@ref{RFC
+822}) $B$KBP$9$k3HD%!#(B@refill
+
+RFC 2045 $B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'(B@refill
+
+STD 11, RFC 822 $B$O!"(BUS-ASCII message header $B$K4X$7$FHs>o$K>\:Y$K5,Dj$7(B
+$B$?(B message $BI=8=(B protocol $B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K(B flat $B$J(B 
+US-ASCII text $B$N$_$KN1$^$j!"(Bmessage $B$NFbMF$d(B message body $B$K4X$9$k5,Dj(B
+$B$O$J$5$l$F$$$J$$!#(BMultipurpose Internet Mail Extensions, $B$"$k$$$O(B MIME 
+$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K(B message $B$N(B
+$B7A<0$r:FDj5A$7$?!'(B
+
+@enumerate
+@item
+$BJ8=q(B message body $B$K$*$1$k(B US-ASCII $B0J30$NJ8;z=89g(B
+@item
+$BHsJ8=q(B message body
+@item
+$BJ#?t$NItJ,$+$i$J$k(B message body
+@item
+US-ASCII $B0J30$NJ8;z=89g$+$i$J$kJ8=q(B header $B>pJs(B
+@end enumerate
+
+
+RFC 2045 (@ref{RFC 2045}), RFC 2046 (@ref{RFC 2046}), RFC 2047
+(@ref{encoded-word}), RFC 2048 (@ref{RFC 2048}), RFC 2049 (@ref{RFC
+2049}) $B$GDj5A$5$l$F$$$k!#(B
+
+
+@node MIME charset, MTA, MIME, Glossary
+@subsection MIME charset
+
+Content-Type field (@ref{Content-Type field}) $B$d(B encoded-word
+(@ref{encoded-word}) $B$N(B charset parameter $B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8(B
+$B;z=89g(B (@ref{Coded character set})$B!#(B@refill
+
+RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k!#(B@refill
+
+iso-2022-jp (@ref{iso-2022-jp}) $B$d(B euc-kr (@ref{euc-kr}) $B$O$=$N#1$D!#(B
+$B!J$3$3$G$O!"(BMIME charset $B$OJ8;z=89g(B (@ref{Character set})$B$H6hJL$7$F>.J8(B
+$B;z$G=q$$$F$$$k!K(B
+
+
+@node MTA, MUA, MIME charset, Glossary
+@subsection MTA
+
+@cindex{Message Transfer Agent}@strong{Message Transfer Agent} $B$NN,$G!"(B
+sendmail $B$J$I$N(B mail $BG[Aw(B program $B$H(B news server $B$NAm>N!#(B@refill
+
+(cf. @ref{MUA})
+
+
+
+@node MUA, MULE, MTA, Glossary
+@subsection MUA
+
+@cindex{Message User Agent}@strong{Message User Agent} $B$NN,$G!"(Bmail
+reader $B$H(B news reader $B$NAm>N!#(B@refill
+
+(cf. @ref{MTA})
+
+
+
+@node MULE, multipart, MUA, Glossary
+@subsection MULE
+
+$BH>ED(B $B7u0l;a$i$,:n$C$?!"B?8@8l$5$l$?(B Emacs (@ref{Emacs}).@refill
+
+[MULE] Nishikimi M., Handa K. and Tomura S., ``Mule: MULtilingual
+Enhancement to GNU Emacs'', Proc. of INET'93, August, 1993.@refill
+
+$B8=:_!"(BMULE $B$N5!G=$r(B Emacs $B$K(B merge $B$9$k:n6H$,9T$o$l$F$*$j!"(Balpha $BHG(B
+(ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz) $B$,B8:_$9$k!#(B
+
+$B$=$NB>!"(BXEmacs $B$K(B merge $B$7$?$b$N$bB8:_$9$k!#(B@refill
+
+$B$3$N$?$a!"8=:_$G$OB?8@8l(B Emacs $B$O!"85!9$N(B MULE $B$r4^$a$F#3<oN`$"$k$3$H$K(B
+$B$J$k!#(B@refill
+
+$B$=$3$G!"$3$3$G$O!"B?8@8l(B Emacs $B$NAm>N$r(B @cindex{mule}@strong{mule}, $B85!9(B
+$B$N(B MULE $B$r(B @cindex{MULE}@strong{MULE}, mule $B5!G=$r(B merge $B$7$?(B Emacs $B$r(B
+@cindex{Emacs/mule}@strong{Emacs/mule}, mule $B5!G=$r(B merge $B$7$?(B XEmacs $B$r(B 
+@cindex{XEmacs/mule}@strong{XEmacs/mule} $B$H8F$V$3$H$K$9$k!#(B
+
+
+@node multipart, multipart/alternative, MULE, Glossary
+@subsection Multipart
+
+$B#1$D$N(B message (@ref{message}) $B$KJ#?t$N(B entity (@ref{entity}) $B$rF~$l$k$?(B
+$B$a$N(B MIME (@ref{MIME}) $B$K$*$1$k(B media type (@ref{media type}) $B$N#1$D!"$b(B
+$B$7$/$O!"J#?t$N(B entity $B$+$i$J$k(B message $B$r;X$9!#(B@refill
+
+$B8=:_!"Dj5A$5$l$F$$$k(B @cindex{multipart}@strong{multipart} $B$H$7$F$O!"(BRFC
+2046 (@ref{RFC 2046}) $B$GDj5A$5$l$?(B
+
+@itemize @bullet
+@item
+multipart/mixed (@ref{multipart/mixed})
+@item
+multipart/alternative (@ref{multipart/alternative})
+@item
+multipart/digest (@ref{multipart/digest})
+@item
+multipart/parallel (@ref{multipart/parallel})
+@end itemize
+
+@noindent
+$B$N$[$+(B RFC 1847 (@ref{Security multipart}) $B$GDj5A$5$l$?(B
+
+@itemize @bullet
+@item
+multipart/signed (@ref{multipart/signed})
+@item
+multipart/encrypted (@ref{multipart/encrypted})
+@end itemize
+
+@noindent
+$B$J$I$,$"$k!#(B
+
+
+@node multipart/alternative, multipart/digest, multipart, Glossary
+@subsection multipart/alternative
+
+multipart (@ref{multipart}) $B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h(B
+$B$H$9$k>l9g$KMQ$$$k!#(B@refill
+
+(cf. @ref{RFC 2046})
+
+
+
+@node multipart/digest, multipart/encrypted, multipart/alternative, Glossary
+@subsection multipart/digest
+
+multipart (@ref{multipart}) $B$N#1$D$G!"4^$^$l$k(B entity (@ref{entity}) $B$N(B 
+default $B$N(Bmedia type (@ref{media type}) $B$,(B multipart/mixed
+(@ref{multipart/mixed}) $B$J$I$N>l9g(B text/plain (@ref{text/plain}) $B$G$"$k(B
+$B$N$KBP$7!"(B@cindex{multipart/digest}@strong{multipart/digest}$B$G$O(B 
+message/rfc822 (@ref{message/rfc822}) $B$,MQ$$$i$l$kE@$,0[$J$k!#(B@refill
+
+$B$3$l$OEAE}E*$J(B RFC 1153 (@ref{RFC 1153}) $B$K4p$E$/(B encapsulation
+(@ref{encapsulation}) $B$KBe$o$k$b$N$G$"$k!#(B@refill
+
+(cf. @ref{RFC 2046})
+
+
+
+@node multipart/encrypted, multipart/mixed, multipart/digest, Glossary
+@subsection multipart/encrypted
+
+RFC 1847 $B$GDj5A$5$l$?(B Security multipart (@ref{Security multipart}) $B$N#1(B
+$B$D$G!"0E9f2=$5$l$?(B message $B$rI=8=$9$k$N$KMQ$$$k!#(B@refill
+
+(cf. @ref{PGP/MIME})
+
+
+
+@node multipart/mixed, multipart/parallel, multipart/encrypted, Glossary
+@subsection multipart/mixed
+
+multipart (@ref{multipart}) $B$N<gMW$J(B subtype $B$G!"J#?t$N(B part $B$r=g=xIU$1(B
+$B$FJB$Y$k>l9g$KMQ$$$k!#(B@refill
+
+(cf. @ref{RFC 2046})
+
+
+
+@node multipart/parallel, multipart/signed, multipart/mixed, Glossary
+@subsection multipart/parallel
+
+multipart (@ref{multipart}) $B$N#1$D$G!"J#?t$N(B part $B$r=g=xIU$1$:$K4^$a$k>l(B
+$B9g$KMQ$$$k!#(B@refill
+
+(cf. @ref{RFC 2046})
+
+
+
+@node multipart/signed, PGP, multipart/parallel, Glossary
+@subsection multipart/signed
+
+RFC 1847 $B$GDj5A$5$l$?(B Security multipart (@ref{Security multipart}) $B$N#1(B
+$B$D$G!"EE;R=pL>$rI=8=$9$k$N$KMQ$$$k!#(B@refill
+
+(cf. @ref{PGP/MIME})
+
+
+
+@node PGP, PGP-kazu, multipart/signed, Glossary
+@subsection PGP
+
+Phil Zimmermann $B;a$,:n@.$7$?8x3+800E9f=hM}7O$N#1$D!#(Bmessage
+(@ref{message}) $B$N0E9f2=$dEE;R=pL>$r9T$&$3$H$,$G$-$k!#(BPretty Good
+Privacy $B$NN,!#(B@refill
+
+$BEAE}E*$J(B PGP $B$G$O(B encapsulation (@ref{encapsulation}) $B$K(B RFC 934
+(@ref{RFC 934})$B$K=`$8$?J}K!$rMQ$$$k!#$3$l$O(B MIME (@ref{MIME}) $B$HL7=b$9$k(B
+$B$N$G(B PGP/MIME (@ref{PGP/MIME}) $B$,Ds0F$5$l$F$$$k!#0lJ}!"(BMIME $B$K$*$$$F(B PGP 
+$B$N(Bencapsulation $B$rMQ$$$kJ}K!(B (cf. @ref{PGP-kazu})
+ $B$bMxMQ$5$l$F$-$?!#$7$+$7!":#8e$O(B PGP/MIME $B$KE}0l$7$F$$$/J}$,K>$^$7$$!#(B
+@refill
+
+@cindex{PGP}@cindex{Informational}@cindex{RFC 1991}
+@noindent
+[PGP: RFC 1991]
+@quotation
+D. Atkins, W. Stallings and P. Zimmermann, ``PGP Message Exchange
+Formats'', August 1996, Informational.
+@end quotation
+
+
+
+
+@node PGP-kazu, PGP/MIME, PGP, Glossary
+@subsection PGP-kazu
+
+$B;3K\(B $BOBI'(B $B;a$,Ds0F$7$?(B MIME (@ref{MIME}) $B$G(B PGP (@ref{PGP}) $B$rMxMQ$9$k$?(B
+$B$a$NJ}K!$r$3$3$G$O(B @cindex{PGP-kazu}@strong{PGP-kazu} $B$H8F$V$3$H$K$9$k!#(B
+
+PGP-kazu $B$O(B @cindex{application/pgp}@strong{application/pgp} $B$H$$$&(B 
+content-type (@ref{content-type}) $B$rDj5A$9$k!#(B@refill
+
+application/pgp $B$N(B part $B$G$O(B PGP $B$N(B encapsulation (@ref{encapsulation}) 
+$B$,MQ$$$i$l$k!#(BPGP $B$N(B encapsulation (cf. @ref{RFC 934})
+ $B$H(B MIME $B$N(B encapsulation $B$OL7=b$9$k$N$G!"(BPGP $B$N(B encapsulation $B$r2r$+$J(B
+$B$$8B$j!"Cf$K4^$^$l$?(B MIME message $B$rFI$`$3$H$,$G$-$J$/$J$k!#B($A!"(B
+PGP-kazu $B$KBP1~$7$F$$$J$$(B MIME $B$KBP1~$7$?(B MUA (@ref{MUA}) $B$O$=$N(B part $B$,(B
+$BFI$a$J$/$J$k!#$=$NBe$o$j!"(BMIME $B$KBP1~$7$F$$$J$$(B PGP $BBP1~$N(B MUA
+(@ref{MUA}) $B$G$b(B message $B$rFI$`$3$H$,$G$-$k!#(B@refill
+
+PGP-kazu $B$G$O(B MUA $B$O(B PGP $B$N$H(B MIME $B$N$H$$$&#2$D$N(B encapsulation $B$rCN$i$J(B
+$B$1$l$P$J$i$J$$!#$^$?!"(Bapplication/pgp part $B$r(B parse $B$9$k$?$a$K$O!"$^$:!"(B
+pgp $B$N=hM}$r9T$o$J$1$l$P$J$i$J$$$N$G!"(Bparse $B=hM}$,J#;($K$J$k!#(B@refill
+
+$B$^$?!"(BInternet $B$G$O:#8e(B PGP/MIME (@ref{PGP/MIME}) $B$NJ}8~$GI8=`2=$7$F$$$3(B
+$B$&$H$$$&$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP-kazu $B$OMQ$$$J$$$N$,K>(B
+$B$^$7$$!#(B@refill
+
+[draft-kazu-pgp-mime-00.txt] Yamamoto K., ``PGP MIME Integration'',
+October, 1995
+
+
+@node PGP/MIME, Quoted-Printable, PGP-kazu, Glossary
+@subsection PGP/MIME
+
+Michael Elkins $B;a$,Ds0F$7$?(B MIME (@ref{MIME}) $B$G(B PGP (@ref{PGP}) $B$rMxMQ(B
+$B$9$k$?$a$NJ}K!!#(B@refill
+
+RFC 1847 (@ref{Security multipart}) $B$K4p$-!"(BMIME $B$N(B multipart $B$K$h$k(B 
+encapsulation (@ref{encapsulation}) $B$r9T$&!#$3$N$?$a!"(BMIME $B$N<+A3$J3HD%(B
+$B$K$J$C$F$$$k!#$7$+$7!"EAE}E*$J(B PGP$B$H$N8_49@-$,<:$o$l$F$$$k!#(B@refill
+
+PGP/MIME $B$G$O(B PGP-kazu (@ref{PGP-kazu}) $B$H0[$J$j!"(BMIME $B$N(B encapsulation 
+$B$N$_$rMQ$$$k!#$^$?!"$3$N$?$a!"(BPGP $B$N=hM}$r9T$&A0$K(B message $B$N(B parse $B$r9T(B
+$B$&$3$H$,$G$-$k!#(B@refill
+
+Internet $B$G$O:#8e(B PGP/MIME (@ref{PGP/MIME}) $B$NJ}8~$GI8=`2=$7$F$$$3$&$H$$(B
+$B$&$3$H$G9g0U$,<h$l$F$$$k!#$h$C$F!":#8e$O(B PGP $B$rMQ$$$k>l9g$O(B PGP/MIME$B$rMQ(B
+$B$$$k$N$,K>$^$7$$!#(B
+
+@cindex{PGP/MIME}@cindex{Standards Track}@cindex{RFC 2015}
+@noindent
+[PGP/MIME: RFC 2015]
+@quotation
+M. Elkins, ``MIME Security with Pretty Good Privacy (PGP)'', October
+1996, Standards Track.
+@end quotation
+
+
+
+@node Quoted-Printable, RFC 821, PGP/MIME, Glossary
+@subsection Quoted-Printable
+
+RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B 
+binary data (@ref{binary data}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
+
+`=' $B$d@)8fJ8;z$d(B 128 $B0J>e$NJ8;z$J$I$O(B `=AF' $B$N$h$&$K(B `=' $B$N8e$KB3$/(B 16 
+$B?J?t$GI=8=$9$k!#$3$N$?$a!"(BASCII (@ref{ASCII}) $BJ8;zCf?4$N(B data $B$G$O(B 
+Base64 (@ref{Base64}) $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#(B@refill
+
+$B$7$+$7$J$,$i!"(BEBCDIC $B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"(BEBCDIC $B$rMxMQ$7(B
+$B$F$$$k(B network $B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"(BBase64 $B$KHf$Y$F0BA4@-$O(B
+$BDc$$!#(B
+
+
+@node RFC 821, RFC 822, Quoted-Printable, Glossary
+@subsection RFC 821
+
+@cindex{SMTP}@strong{SMTP} $B$H8F$P$l$k(B Internet mail $B$NG[AwK!$NI8=`$rDj$a(B
+$B$F$$$k(B RFC.
+
+@cindex{SMTP}@cindex{STD 10}@cindex{RFC 821}
+@noindent
+[SMTP: RFC 821]
+@quotation
+J. Postel, ``Simple Mail Transfer Protocol'', August 1982, STD 10.
+@end quotation
+
+
+
+@node RFC 822, RFC 934, RFC 821, Glossary
+@subsection RFC 822
+
+Internet mail $B$N<g$K(B @cindex{message header}@strong{message header} $B$K4X$9$k7A<0$K(B
+$B4X$9$kI8=`$rDj$a$F$$$k(B RFC.
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+news message $B$b$3$l$K=`$8$F$$$k$N$G!"(B@cindex{Internet
+mail}@strong{Internet mail} $B$H=q$/$h$j$b!"(B@cindex{Internet
+message}@strong{Internet message} $B$H=q$$$?J}$,NI$$$+$b$7$l$J$$!#(B
+@end quotation
+
+
+@cindex{STD 11}@cindex{RFC 822}
+@noindent
+[RFC 822]
+@quotation
+D. Crocker, ``Standard for the Format of ARPA Internet Text Messages'',
+August 1982, STD 11.
+@end quotation
+
+
+
+@node RFC 934, RFC 1036, RFC 822, Glossary
+@subsection RFC 934
+
+Internet mail (@ref{RFC 822}) $B$N(B 
+@cindex{encapsulation}@strong{encapsulation} (@ref{encapsulation}) $B$NJ}(B
+$BK!$rDj$a$?(B RFC.@refill
+
+MIME (@ref{MIME}) $B$HL7=b$9$k$N$G!"8=:_$G$O(B message/rfc822
+(@ref{message/rfc822}) $B$rMQ$$$k$Y$-$G$"$k!#(B
+
+
+@cindex{RFC 934}
+@noindent
+[RFC 934]
+@quotation
+Marshall T. Rose and Einar A. Stefferud, ``Proposed Standard for Message
+Encapsulation'', January 1985.
+@end quotation
+
+
+
+@node RFC 1036, RFC 1153, RFC 934, Glossary
+@subsection RFC 1036
+
+USENET $B$G$N(B message $B$N7A<0$rDj$a$?(B RFC. RFC 822 (@ref{RFC 822})$B$N(B subset 
+$B$K$J$C$F$$$k!#(BInternet $B$NI8=`$G$O$J$$$,!"(BUSENET $B0J30$N(B netnews $B$G$b$3$l(B
+$B$K=`$8$F$$$k$b$N$,B?$$!#(B
+
+@cindex{USENET}@cindex{RFC 1036}
+@noindent
+[USENET: RFC 1036]
+@quotation
+M. Horton and R. Adams, ``Standard for Interchange of USENET Messages'',
+December 1987, (obsolete RFC 850).
+@end quotation
+
+
+
+@node RFC 1153, RFC 1557, RFC 1036, Glossary
+@subsection RFC 1153
+
+$BJ#?t$N(B Internet mail (@ref{RFC 822}) $B$r(B 
+@cindex{encapsulation}@strong{encapsulation} (@ref{encapsulation}) $B$9$k(B
+$B$?$a$NJ}K!$rDj$a$?(B RFC. RFC 934 (@ref{RFC 934}) $B$rMQ$$$k!#(B@refill
+
+MIME (@ref{MIME}) $B$HL7=b$9$k$N$G!"8=:_$G$O(B message/rfc822
+(@ref{message/rfc822}) $B$rMQ$$$?(B multipart (@ref{multipart}) $B$rMQ$$$k$Y$-(B
+$B$G$"$k!#(B@refill
+
+(cf. @ref{multipart/digest})
+
+
+@cindex{RFC 1153}
+@noindent
+[RFC 1153]
+@quotation
+F. Wancho, ``Digest Message Format'', April 1990.
+@end quotation
+
+
+
+@node RFC 1557, RFC 1922, RFC 1153, Glossary
+@subsection RFC 1557
+
+euc-kr (@ref{euc-kr}) $B$H(B iso-2022-kr (@ref{iso-2022-kr}) $B$H$$$&4Z9q8l$N(B
+$B$?$a$N(B MIME charset (@ref{MIME charset}) $B$rDj5A$7$F$$$k(B RFC.
+
+@cindex{Informational}@cindex{RFC 1557}
+@noindent
+[RFC 1557]
+@quotation
+U. Choi, K. Chon and H. Park, ``Korean Character Encoding for Internet
+Messages'', December 1993, Informational.
+@end quotation
+
+
+
+@node RFC 1922, RFC 2045, RFC 1557, Glossary
+@subsection RFC 1922
+
+iso-2022-cn (@ref{iso-2022-cn}), iso-2022-cn-ext
+(@ref{iso-2022-cn-ext}), cn-gb (@ref{cn-gb}), cn-big5 (@ref{cn-big5}) $B$H(B
+$B$$$C$?Cf9q8l$N$?$a$N(B MIME charset (@ref{MIME charset}) $B$rDj5A$7$F$$$k(B 
+RFC.@refill
+
+$B$3$l$K2C$($F!"(B@cindex{charset-edition}@strong{charset-edition} $B$H(B 
+@cindex{charset-extension}@strong{charset-extension} $B$H$$$&(B Content-Type
+field (@ref{Content-Type field}) $B$N(B parameter $B$rDj5A$7$F$$$k!#(B
+
+@cindex{Informational}@cindex{RFC 1922}
+@noindent
+[RFC 1922]
+@quotation
+Zhu, HF., Hu, DY., Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M.,
+``Chinese Character Encoding for Internet Messages'', March 1996,
+Informational.
+@end quotation
+
+
+
+@node RFC 2045, RFC 2046, RFC 1922, Glossary
+@subsection RFC 2045
+
+@cindex{Standards Track}@cindex{RFC 2045}
+@noindent
+[RFC 2045]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part One: Format of Internet Message Bodies'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2046, RFC 2048, RFC 2045, Glossary
+@subsection RFC 2046
+
+@cindex{Standards Track}@cindex{RFC 2046}
+@noindent
+[RFC 2046]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Two: Media Types'', November 1996, Standards Track (obsolete
+RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2048, RFC 2049, RFC 2046, Glossary
+@subsection RFC 2048
+
+@cindex{Standards Track}@cindex{RFC 2048}
+@noindent
+[RFC 2048]
+@quotation
+N. Freed, J. Klensin and J. Postel, ``Multipurpose Internet Mail
+Extensions (MIME) Part Four: Registration Procedures'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2049, plain text, RFC 2048, Glossary
+@subsection RFC 2049
+
+@cindex{Standards Track}@cindex{RFC 2049}
+@noindent
+[RFC 2049]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Five: Conformance Criteria and Examples'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node plain text, Security multipart, RFC 2049, Glossary
+@subsection plain text
+
+$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$(B $BJ8;zId9f(B(@ref{Coded character set})$B$N$_(B
+$B$GI=8=$5$l$k(B text $B>pJs!#(B(cf. @ref{text/plain})
+
+
+
+@node Security multipart, text/enriched, plain text, Glossary
+@subsection Security multipart
+
+MIME (@ref{MIME}) $B$G0E9f$dEE;R=qL>$rMQ$$$k$?$a$N7A<0!#(B
+@cindex{multipart/signed}@strong{multipart/signed}
+(@ref{multipart/signed}) $B$H(B 
+@cindex{multipart/encrypted}@strong{multipart/encrypted}
+(@ref{multipart/encrypted}) $B$H$$$&(B multipart $B$rMQ$$$k!#(BMOSS $B$d(B PGP/MIME
+(@ref{PGP/MIME}) $B$O$3$l$K4p$$$F$$$k!#(B
+
+@cindex{Security multipart}@cindex{Standards Track}@cindex{RFC 1847}
+@noindent
+[Security multipart: RFC 1847]
+@quotation
+James Galvin, Gale Murphy, Steve Crocker and Ned Freed, ``Security
+Multiparts for MIME: Multipart/Signed and Multipart/Encrypted'', October
+1995, Standards Track.
+@end quotation
+
+
+
+@node text/enriched, text/plain, Security multipart, Glossary
+@subsection text/enriched
+
+RFC 1521 $B$GDj5A$5$l$?(B @cindex{text/richtext}@strong{text/richtext} $B$KBe(B
+$B$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?(B text$B$rI=8=$9$k$?$a$N(B media type
+(@ref{media type}).
+
+@cindex{text/enriched}@cindex{RFC 1896}
+@noindent
+[text/enriched: RFC 1896]
+@quotation
+P. Resnick and A. Walker, ``The text/enriched MIME Content-type'',
+February 1996, (obsolete RFC 1563).
+@end quotation
+
+
+
+@node text/plain, tm-kernel, text/enriched, Glossary
+@subsection text/plain
+
+RFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$?!"(Bplain text (@ref{plain text}) $B$r(B
+$BI=8=$9$k$?$a$N(B media type (@ref{media type}).@refill
+
+$BHs(B MIME message $B$J$I$N(B content-type $B$,Dj5A$5$l$J$$(B part $B$O(B MIME charset
+(@ref{MIME charset}) $B$,(B us-ascii (@ref{us-ascii}) $B$G$"$k(B 
+@cindex{text/plain}@strong{text/plain} $B$N(B part $B$G$"$k$H8+Pv$5$l$k$3$H$K(B
+$B$J$C$F$$$k!#(B
+
+
+@node tm-kernel, tm-MUA, text/plain, Glossary
+@subsection tm-kernel, tm
+
+Emacs $B$G(B MIME (@ref{MIME}) $B$rMxMQ$9$k$?$a$N(B user interface $B$rDs6!$9$k(B 
+library $B72!#(B`tools for MIME' $B$NN,!#(B
+
+@noindent
+@strong{[$B$I$&$G$bNI$$$3$H(B(^-^;]}
+@quotation
+
+@itemize @bullet
+@item
+ tm $B$O(B ``tiny-mime'' $B$NN,$8$c$J$$$i$7$$$>(B (^-^;
+  
+@item
+ tm $B$O:n<T$N%$%K%7%c%k$8$c$J$$$i$7$$$>(B (^-^;
+  
+@item
+ ``Tools for MIME'' $B$NN,$H$$$&$N$O$3$8$D$1$i$7$$$>(B (^-^;
+@end itemize
+@end quotation
+
+
+
+@node tm-MUA, us-ascii, tm-kernel, Glossary
+@subsection tm-MUA
+
+tm (@ref{tm-kernel}) $B$rMQ$$$?(B MUA (@ref{MUA}) $B$b$7$/$O(B MUA $B$KBP$9$k(B 
+extender.@refill
+
+@cindex{tm $BBg@9$j(B package}@strong{tm $BBg@9$j(B package} $B$K$O(B
+
+@itemize @bullet
+@item
+mh-e (@ref{(mh-e)}) $BMQ$N(B @cindex{tm-mh-e}@strong{tm-mh-e}
+@item
+GNUS $BMQ$N(B @cindex{tm-gnus}@strong{tm-gnus}
+@item
+Gnus $BMQ$N(B @cindex{gnus-mime}@strong{gnus-mime} (@ref{(gnus-mime-ja)})
+@item
+VM $BMQ$N(B @cindex{tm-vm}@strong{tm-vm}
+@item
+RMAIL $BMQ$N(B @cindex{tm-rmail}@strong{tm-rmail}
+@end itemize
+
+@noindent
+$B$,4^$^$l$F$$$k!#(B
+
+$BFHN)$7$?(B MUA $B$H$7$F$O(B cmail (@ref{(cmail)}) $B$,(B tm $B$rMxMQ2DG=$G$"$k!#(B
+
+
+@node us-ascii,  , tm-MUA, Glossary
+@subsection us-ascii
+
+$B%"%a%j%+O"K.$J$I$G;H$o$l$k1Q8l$J$I$rI=8=$9$k$?$a$N(B MIME charset
+(@ref{MIME charset}) $B$N#1$D!#(B@refill
+
+ASCII (@ref{ASCII}) $B$N$_$+$i$J$j(B ISO 2022 (@ref{ISO 2022}) $B$K$h$kId9f3H(B
+$BD%(B (@ref{Code extension})$B$O5v$5$l$J$$!#(B@refill
+
+Internet mail $B$K$*$1$kI8=`$NId9f2=J8;z=89g(B(@ref{Coded character set})$B$G(B
+$B$"$j!"L@<(E*$K(B MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F(B 
+@cindex{us-ascii}@strong{us-ascii} $B$,;H$o$l$k!#(B@refill
+
+$B$^$?!"(BRFC 822 (@ref{RFC 822}) $B$K$*$1$k(B @cindex{ASCII}@strong{ASCII} $B$O(B 
+us-ascii $B$r;X$9$b$N$H2r<a$9$Y$-$G$"$k!#(B
+
+
+@node Setting, Bug report, Introduction, Top
+@chapter $B@_Dj(B
+
+$B$3$N(B package $B$K$O(B @file{mime-setup.el} $B$H(B 
+@file{tm-setup.el} $B$H$$$&4J0W@_Dj(B file $B$,ImB0$7$F$$$^$9!#(B
+
+@file{mime-setup.el} $B$G$O(B @file{tm-edit.el} $B$r;H$C$?(B MIME
+message $B$N:n@.$b4^$a$?(B MIME $BA4HL$N@_Dj$r9T$J$$!"(B
+@file{tm-setup.el} $B$G$O(B tm-MUA $B$K4X$9$k(BMIME message $B$N1\Mw$N@_Dj(B
+$B$N$_$r9T$J$$$^$9!#(B
+
+
+@menu
+* mime-setup::                  $BI8=`E*$J@_Dj(B
+* tm-setup::                    tm-edit $B$r;H$o$J$$@_Dj(B
+* setting for VM::              VM $B$r;H$&>l9g$N@_Dj(B
+* manual setting::              $B@_Dj(B file $B$r;H$o$J$$>l9g(B
+@end menu
+
+@node mime-setup, tm-setup, Setting, Setting
+@section $BI8=`E*$J@_Dj(B
+
+tm $B$N0lHLE*$J@_Dj$r9T$$$?$$>l9g$O!"(B
+@cindex{mime-setup}@strong{mime-setup} $B$H$$$&I8=`@_Dj(B file $B$r;H$C$F$/$@(B
+$B$5$$!#Nc$($P!"(B@file{~/.emacs} $BEy$G!"(B@refill
+
+@lisp
+(load "mime-setup")
+@end lisp
+
+@noindent
+$B$H$9$k$@$1$G(B OK $B$G$9!#(B
+
+@file{mime-setup.el} $B$O(B @file{tm-setup.el} $B$r8F$s$G$$$k$N(B
+$B$G!"(B@file{tm-setup.el} $B$r(B load $B$9$kI,MW$O$"$j$^$;$s!#!J2a5n$N(B 
+Gnus FAQ $B$N5-=R$O4V0c$C$F$$$^$9!*!K(B
+
+
+@menu
+* signature::                   signature.el
+* Notice about GNUS::           GNUS $B$N>l9g$NCm0U(B
+@end menu
+
+@node signature, Notice about GNUS, mime-setup, mime-setup
+@subsection signature.el
+
+tm $B$K$O(B @cindex{signature}@strong{signature} $B$H$$$&(B signature $B$N<+F0@ZBX$((B 
+tool $B$,ImB0$7$F$*$j!"(B@file{mime-setup.el} $B$O$3$N@_Dj$b9T$J$$$^$9!#(B
+message header $B$N(B field $B$K9g$o$;$F(B signature $B$N<+F0@ZBX$r9T$J$$$?$$>l(B
+$B9g$O(B @file{~/.emacs} $B$K0J2<$N$h$&$J$b$N$rF~$l$F2<$5$$!#!J>\$7$/(B
+$B$O(B signature.el $B$N@bL@=q$r;2>H$7$F2<$5$$!K(B
+
+@lisp
+(setq signature-file-alist
+      '((("Newsgroups" . "jokes")       . "~/.signature-jokes")
+        (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
+        (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
+        (("To" . "tea")                 . "~/.signature-jokes")
+        (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
+        ))
+@end lisp
+
+
+
+@defvar mime-setup-use-signature
+
+$B$3$NJQ?t$,(B @code{nil} $B0J30$N;~!"(B@file{signature.el} $B$r;H$$$^$9!#4{DjCM$O(B 
+@code{t} $B$G$9!#(B
+@end defvar
+
+
+
+@defvar mime-setup-signature-key-alist
+
+$B3F(B major-mode $B$K$*$$$F(B signature $BA^F~L?Na$r@_Dj$9$Y$-(B key $B$r;XDj$7$^$9!#(B
+$B4{DjCM$O(B
+
+@lisp
+	((mail-mode . "\C-c\C-w"))
+@end lisp
+
+
+$B$G$9!#(B
+
+$B$3$l$rJQ99$7$?$$>l9g$O!"4X?t(B set-alist $B$J$I$r;H$C$F$3$NJQ?t$r=q$-49$((B
+$B$F2<$5$$!#(B
+
+@lisp
+(set-alist 'mime-setup-signature-key-alist
+	   'news-reply-mode "\C-c\C-w")
+@end lisp
+
+@end defvar
+
+
+@defvar mime-setup-default-signature-key
+
+$B$"$k(B major-mode $B$K$*$$$F(B signature $BA^F~L?Na$r@_Dj$9$Y$-(B key $B$,8+$D$+$i$J(B
+$B$$>l9g!"$3$NJQ?t$K@_Dj$5$l$?(B key $B$,MQ$$$i$l$^$9!#4{DjCM$O!"(B
+@code{"\C-c\C-s"} $B$G$9!#(B
+@end defvar
+
+
+
+@node Notice about GNUS,  , signature, mime-setup
+@subsection GNUS $B$N>l9g$NCm0U(B
+
+@file{signature.el} $B$r;H$&>l9g!"(B@file{mime-setup.el} $B$OJQ(B
+$B?t(B @code{gnus-signature-file} $B$r(B @code{nil} $B$K@_Dj$7$^$9!#(B
+$B$h$C$F!"Aw?.;~$K<+F0E*$K(B @code{signature} $B$,IU$/5!G=$OM^@)$5$l$^(B
+$B$9!#$3$N$h$&$J$3$H$r$7$F$$$k$N$O0J2<$NM}M3$+$i$G$9!#(B
+
+GNUS $B$,(B signature $B$rIU$1$k$N$O(B @code{tm-edit.el} $B$K$h$C$F(B MIME
+message $B$,:n@.$5$l$?8e$G$9!#$h$C$F!"(BGNUS $B$,IU$1$?(B signature $B$O(B MIME
+message $B$H$7$F@5$7$/=hM}$5$l$F$$$^$;$s!#Nc$($P(B multipart message $B$N>l(B
+$B9g!"(BMIME message $B$N30$NHs(B MIME part $B$KIU$-$^$9!#$h$C$F!"(BMIME $BBP1~(B MUA 
+$B$G8+$?>l9g!"(Bsignature $B$OI=<($5$l$J$$$+$bCN$l$^$;$s!#(B
+
+$B$b$&0l$D$NCm0U$OI8=`@_Dj$G$O(B signature $B$rA^F~$9$k(B key $B$O(B @kbd{C-c C-w} 
+$B$G$O$J$/(B mh-e (@ref{(mh-e)}) $B$HF1$8(B @kbd{C-c C-s} $B$K3d$jEv$F$i$l$F$$$k$3(B
+$B$H$G$9!#$3$l$O(B
+
+@lisp
+(set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w")
+@end lisp
+
+@noindent
+$B$K$h$C$F(B GNUS $B$NI8=`$KLa$9$3$H$,$G$-$^$9!#(B
+
+
+@node tm-setup, setting for VM, mime-setup, Setting
+@section tm-edit $B$r;H$o$J$$@_Dj(B
+
+
+@cindex{tm-setup}@strong{tm-setup} $B$O(B tm-MUA (@ref{tm-MUA}) $B$N@_Dj$N$_$r(B
+$B9T$J$&(B module $B$G$9!#$3$N@_Dj(B file $B$G$O(B tm-edit (@ref{(tm-edit-ja)}) $B$r;H$C(B
+$B$?(B MIME message $B$N:n@.$K4X$9$k@_Dj$O9T$o$l$:!"(BMIME message $B$N1\Mw$K4X$9(B
+$B$k@_Dj$N$_$,9T$o$l$^$9!#(BMIME message $B$rFI$_$?$$$,<+J,$G$O:n@.$7$J$$$H$+!"(B
+tm-edit $B0J30$N(B MIME composer $B$r;H$$$?$$>l9g$K$O(B mime-setup.el $B$NBe$o$j$K(B
+$B$3$N@_Dj(B file $B$r;H$C$F$/$@$5$$!#(B@refill
+
+$BNc$($P!"(B@file{~/.emacs} $BEy$K(B
+
+@lisp
+(load "tm-setup")
+@end lisp
+
+@noindent
+$B$rF~$l$l$P(B OK $B$G$9!#(B
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+@file{mime-setup.el} $B$r(B load $B$7$F$$$k>l9g!"$3$l$rM[$K(B load $B$9$kI,MW$O$"(B
+$B$j$^$;$s!#(B
+@end quotation
+
+
+
+@node setting for VM, manual setting, tm-setup, Setting
+@section VM $B$r;H$&>l9g$N@_Dj(B
+
+
+@cindex{vm}@strong{vm} $B$r;H$&>l9g$O(B @file{~/.vm} $B$K(B
+
+@lisp
+(require 'tm-vm)
+@end lisp
+
+@noindent
+$B$rF~$l$F2<$5$$!#(B
+
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+@cindex{BBDB}@strong{BBDB} $B$r;H$&>l9g$O(B @code{(bbdb-insinuate-vm)} $B$N(B 
+@strong{$B8e(B} $B$K(B @code{(require 'tm-vm)} $B$rF~$l$F$/$@$5$$!#(B
+@end quotation
+
+
+
+@node manual setting,  , setting for VM, Setting
+@section $B@_Dj(B file $B$r;H$o$J$$>l9g(B
+
+
+@file{mime-setup.el} $B$d(B @file{tm-setup.el} $B$r;29M$K$7$F2<(B
+$B$5$$!#(B
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+
+$B8=:_$N(B tm $B$G$O(B tm-edit $B$N;HMQ$r2>Dj$7$?4v$D$+$NJXMx$J5!G=$,B8:_$7!"$3(B
+$B$l$i$N5!G=$O(B @file{mime-setup.el} $B$r;H$o$J$$$HMxMQ$G$-$^$;$s!#$b(B
+$B$7!"(Btm-edit $B$r;H$&FH<+$N@_Dj$r9T$&>l9g$O!"(B
+
+@lisp
+(provide 'mime-setup)
+@end lisp
+
+@noindent
+$B$H$$$&@k8@$r9T$C$F$/$@$5$$!#(B
+@end quotation
+
+
+
+@node Bug report, Concept Index, Setting, Top
+@chapter bug $BJs9p$N;EJ}(B
+
+tm $B$N%P%0$r8+$D$1$?$i!"0J2<$N(B address $B$K(B mail $B$rAw$C$F$/$@$5$$!'(B
+
+@itemize @bullet
+@item
+ $BF|K\8l(B <bug-tm-ja@@chamonix.jaist.ac.jp>
+@item
+ $B1Q8l(B <bug-tm-en@@chamonix.jaist.ac.jp>
+@end itemize
+
+
+$BC"$7!"$"$^$j$K$b8E$$HG$K4X$9$kJs9p$O4?7^$5$l$^$;$s!#8E$$HG$N(B bug $B$O!"?7(B
+$B$7$$HG$G$O<#$C$F$$$k$+$b$7$l$^$;$s!#$^$:!":G?7HG$G3NG'$7$F$_$^$7$g$&!#(B
+@refill
+
+$B$=$l$+$i!"E,@Z$JJs9p$r$7$^$7$g$&!#C1$K!V$&$^$/F0$+$J$$!W$H8@$o$l$F$b$I$&(B
+$B$$$&>u67$J$N$+$O$5$C$Q$jH=$j$^$;$s!#:GDc8B!"(BOS, emacs, tm, $B;H$C$F$$$k(B 
+MUA $B$N<oN`$*$h$SHG!"@_Dj$r=q$/I,MW$,$"$j$^$9!#$^$?!"(Berror $B$,5/$C$F$$$k>l(B
+$B9g$O(B backtrace $B$rAw$k$3$H$b=EMW$G$9!#(B(cf. @ref{(emacs)Bugs}) @refill
+
+$B$^$?!"(Bbug $B$OBgDqJ#?t$N?M$,Ax6x$9$k$b$N$G$9!J$=$&$G$J$1$l$P!"(Bbug $B$G$O$J(B
+$B$$2DG=@-$,$"$j$^$9!K!#$@$+$i!":n<T$KD>@\(B mail $B$rAw$k$H:n<T$OF1$8(B mail
+$B$r2?DL$b=q$/1)L\$K$J$j$^$9!#$@$+$i!"I,$:(B bug $BJs9p$O>e5-$N(B address $B$KAw$C(B
+$B$F$/$@$5$$!#(B
+
+tm ML $B$G$O(B tm $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"(Btm $B$N2~NI$K4X$9$k5DO@$r(B
+$B9T$J$C$F$$$^$9!#(Btm ML $B$K;22C$7$?$$J}$O(B
+
+@itemize @bullet
+@item
+ $BF|K\8l(B <tm-ja-admin@@chamonix.jaist.ac.jp>
+@item
+ $B1Q8l(B <tm-en-admin@@chamonix.jaist.ac.jp>
+@end itemize
+
+@noindent
+$B$^$G(B mail $B$rAw$C$F2<$5$$!#EPO?$O<jF0$G$9$N$G!"$G$-$l$P!"<+A38@8l$G=q$$(B
+$B$F2<$5$$!#(B(^_^)
+
+
+@node Concept Index, Variable Index, Bug report, Top
+@chapter $B35G0:w0z(B
+
+@printindex cp
+
+@node Variable Index,  , Concept Index, Top
+@chapter $BJQ?t:w0z(B
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-mh-e-en.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,200 @@
+<!doctype sinfo system>
+<!-- $Id: tm-mh-e-en.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-mh-e 7.71 Reference Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/15
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-mh-e, a MIME extension for GNUS.
+</abstract>
+
+
+<h1> What is tm-mh-e?
+<node> Introduction
+<p>
+<concept>tm-mh-e</concept> is a <a file="mh-e">mh-e</a> extender to
+use <dref file="tm-en">MIME</dref> feature using <a file="tm-en"
+node="tm-kernel">tm</a>.
+<p>
+tm-mh-e extends following features:
+
+<ul>
+<li>automatic MIME preview using <a file="tm-view-en">tm-view</a>
+<li>composing MIME message using <a file="tm-edit-en">tm-edit</a>
+</ul>
+
+
+<h1> Extension for MH-Folder mode
+<node> mh-folder-mode
+<p>
+<kl>
+<kt>M-t
+<kd>
+Toggle whether to do automatic MIME preview or not.
+</kd>
+<kt>v
+<kd>Enter <code>mime/viewer-mode</code> to view a message.
+</kd>
+<kt>.
+<kd>
+Display current message.
+</kd>
+<kt>,
+<kd>
+Display current message with showing all fields.
+</kd>
+<kt>M-,
+<kd>
+Display current ``raw'' message.
+</kl>
+
+<p>
+<dref file="tm-view-en">mime/viewer-mode</dref> is a major-mode to
+view and navigate MIME message.  In this mode, you can move in a
+message or play a content, interactively.
+
+
+<h1> Inline display for MIME message
+<node> Automatic MIME Preview
+<p>
+<concept>automatic MIME preview</concept> feature is available in
+tm-mh-e.  In automatic MIME preview mode, when reading an article in
+<a file="mh-e" node="Reading Mail">
+MH-Folder mode</a>, tm-mh-e displays preview buffer processed by <a
+file="tm-view-en">tm-view</a> instead of raw show buffer.
+<p>
+Therefore if an article is encoded by <dref file="tm-en">Base64</dref>
+or <dref file="tm-en">Quoted-Printable</dref>, a decoded article is
+displayed.  Or rich text article, such as <dref
+file="tm-en">text/enriched</dref> format, is automatic formated.  Of
+course, <dref file="tm-en">multipart</dref> article is dealt with
+correctly.
+<p>
+In addition, in <concept>XEmacs</concept>, images are displayed in
+preview buffer as same as text.
+<p>
+Different from using metamail, speaker does not roar just then read an
+article includes audio content, video player does not play just then
+read an article includes video content, it does not do anonymous <dref
+file="tm-en">ftp</dref> or send mail when read an article includes
+external-message.  These contents are played when you do decoding
+command in preview buffer.
+<p>
+However if you use a slow machine, or are just really impatient, you
+can stop automatic MIME preview.
+
+
+<defvar name="tm-mh-e/automatic-mime-preview">
+<p>
+If it is not <code>nil</code>, tm-mh-e is in automatic MIME preview
+mode.
+</defvar>
+
+
+<h1> Internationalization
+<node> mule
+<p>
+For emacs variants includes mule feature, such as <dref
+file="tm-en">MULE</dref>, XEmacs/mule and Emacs/mule(*1), tm-mh-e
+supports code-conversion by <dref file="tm-en">MIME charset</dref>.
+
+<memo>
+(*1) It means next generation of Emacs includes mule features.  Now
+(October 1996), HANDA Ken'ichi and RMS are developing it.
+</memo>
+
+<p>
+Detail of code conversion is following:
+
+<ol>
+<li>If a part of a MIME message has charset parameter of <dref
+file="tm-en">Content-Type field</dref>, it is code-converted by the
+MIME charset.
+</li>
+<li><dref file="tm-en">encoded-word</dref> are code-converted by their
+specified <dref file="tm-en">MIME charset</dref>.
+</li>
+<li>When there are no specified MIME charset, such as message header
+or non-MIME message, they are code-converted by
+<code>default-mime-charset</code> in Summary Buffer.
+</ol>
+
+
+<h2> Don't use MIME charset
+<node> evil environment
+<p>
+If <dref file="tm-en">MTA</dref> convert character encoding of
+messages from network code to local code, such as EUC or Shift_JIS,
+MIME charset does not work, so tm-mh-e can not display correct
+message.  It is quite evil environment.  It does not break only MIME
+charset, but also electric signature by PGP.
+<p>
+If you can manage your environment, you should fix it.  Otherwise you
+should persuade the administration.
+<p>
+Unfortunately you are in such environment and you can not it,
+following descriptions may be available.
+
+
+<h3> for non-MIME message or non-charset
+<p>
+For non-MIME message, please set the character encoding to variable
+<code>default-mime-charset</code>.  For example, if you use Japanese EUC:
+
+<lisp>
+(setq default-mime-charset 'euc-japan)
+</lisp>
+
+
+<h3> To disable MIME charset
+<p>
+If for a text part specified <dref file="tm-en">MIME charset</dref>,
+one way is to set variable
+<code>mime-charset-coding-system-alist</code> to specify the
+coding-system corresponding the primary MIME charset.  For example, to
+specify <code>*sjis*</code> or <code>*euc-japan*</code> as
+<code>iso-2022-jp</code>.  However it breaks texts encoded by Base64
+or Quoted-Printable.
+<p>
+So it is better to redefine function
+<code>tm-mh-e/decode-charset-buffer</code>.  For example, if your MTA
+converts iso-2022-jp to Japanese EUC, following definition may work:
+
+<lisp>
+(defun tm-mh-e/decode-charset-buffer (charset &amp;optional encoding)
+  (decode-mime-charset-region (point-min)(point-max) 'euc-japan)
+  )
+</lisp>
+
+
+<h1> Composing MIME message
+<node> MIME-Edit
+<p>
+If using <dref file="tm-en">mime-setup</dref>, you can edit MIME
+message in <a file="mh-e" node="Draft Editing">MH-Letter mode</a>
+using <a file="tm-edit-en">tm-edit</a>.
+<p>
+In addition, <kbd>f</kbd> is used for <dref
+file="tm-en">message/rfc822</dref> style forwarding instead of <dref
+file="tm-en">RFC 934</dref> style forwarding.
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-mh-e-en.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,215 @@
+\input texinfo.tex
+@setfilename tm-mh-e-en.info
+@settitle{tm-mh-e 7.71 Reference Manual (English Version)}
+@titlepage
+@title tm-mh-e 7.71 Reference Manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/15
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-mh-e 7.71 Reference Manual (English Version)
+
+@ifinfo
+
+This file documents tm-mh-e, a MIME extension for GNUS.
+@end ifinfo
+
+@menu
+* Introduction::                What is tm-mh-e?
+* mh-folder-mode::              Extension for MH-Folder mode
+* Automatic MIME Preview::      Inline display for MIME message
+* mule::                        Internationalization
+* MIME-Edit::                   Composing MIME message
+* Concept Index::               
+* Variable Index::              
+@end menu
+
+@node Introduction, mh-folder-mode, Top, Top
+@chapter What is tm-mh-e?
+
+@cindex{tm-mh-e}@strong{tm-mh-e} is a mh-e (@ref{(mh-e)}) extender to
+use MIME (@ref{(tm-en)MIME}) feature using tm
+(@ref{(tm-en)tm-kernel}).@refill
+
+tm-mh-e extends following features:
+
+@itemize @bullet
+@item
+automatic MIME preview using tm-view (@ref{(tm-view-en)})
+@item
+composing MIME message using tm-edit (@ref{(tm-edit-en)})
+@end itemize
+
+
+
+@node mh-folder-mode, Automatic MIME Preview, Introduction, Top
+@chapter Extension for MH-Folder mode
+
+@table @kbd
+@item @key{M-t}
+Toggle whether to do automatic MIME preview or not.
+
+@item @key{v}
+Enter @code{mime/viewer-mode} to view a message.
+
+@item @key{.}
+Display current message.
+
+@item @key{,}
+Display current message with showing all fields.
+
+@item @key{M-,}
+Display current ``raw'' message.
+
+@end table
+
+
+mime/viewer-mode (@ref{(tm-view-en)mime/viewer-mode}) is a major-mode to
+view and navigate MIME message.  In this mode, you can move in a message
+or play a content, interactively.
+
+
+@node Automatic MIME Preview, mule, mh-folder-mode, Top
+@chapter Inline display for MIME message
+
+@cindex{automatic MIME preview}@strong{automatic MIME preview} feature
+is available in tm-mh-e.  In automatic MIME preview mode, when reading
+an article in MH-Folder mode (@ref{(mh-e)Reading Mail}), tm-mh-e
+displays preview buffer processed by tm-view (@ref{(tm-view-en)})
+instead of raw show buffer.@refill
+
+Therefore if an article is encoded by Base64 (@ref{(tm-en)Base64}) or
+Quoted-Printable (@ref{(tm-en)Quoted-Printable}), a decoded article is
+displayed.  Or rich text article, such as text/enriched
+(@ref{(tm-en)text/enriched}) format, is automatic formated.  Of course,
+multipart (@ref{(tm-en)multipart}) article is dealt with
+correctly.@refill
+
+In addition, in @cindex{XEmacs}@strong{XEmacs}, images are displayed in
+preview buffer as same as text.@refill
+
+Different from using metamail, speaker does not roar just then read an
+article includes audio content, video player does not play just then
+read an article includes video content, it does not do anonymous ftp
+(@ref{(tm-en)ftp}) or send mail when read an article includes
+external-message.  These contents are played when you do decoding
+command in preview buffer.@refill
+
+However if you use a slow machine, or are just really impatient, you
+can stop automatic MIME preview.
+
+
+@defvar tm-mh-e/automatic-mime-preview
+
+If it is not @code{nil}, tm-mh-e is in automatic MIME preview mode.
+@end defvar
+
+
+
+@node mule, MIME-Edit, Automatic MIME Preview, Top
+@chapter Internationalization
+
+For emacs variants includes mule feature, such as MULE
+(@ref{(tm-en)MULE}), XEmacs/mule and Emacs/mule(*1), tm-mh-e supports
+code-conversion by MIME charset (@ref{(tm-en)MIME charset}).
+
+@noindent
+@strong{[Memo]}
+@quotation
+(*1) It means next generation of Emacs includes mule features.  Now
+(October 1996), HANDA Ken'ichi and RMS are developing it.
+@end quotation
+
+
+Detail of code conversion is following:
+
+@enumerate
+@item
+If a part of a MIME message has charset parameter of Content-Type field
+(@ref{(tm-en)Content-Type field}), it is code-converted by the MIME
+charset.
+@item
+encoded-word (@ref{(tm-en)encoded-word}) are code-converted by their
+specified MIME charset (@ref{(tm-en)MIME charset}).
+@item
+When there are no specified MIME charset, such as message header
+or non-MIME message, they are code-converted by
+@code{default-mime-charset} in Summary Buffer.
+@end enumerate
+
+
+
+@menu
+* evil environment::            Don't use MIME charset
+@end menu
+
+@node evil environment,  , mule, mule
+@section Don't use MIME charset
+
+If MTA (@ref{(tm-en)MTA}) convert character encoding of messages from
+network code to local code, such as EUC or Shift_JIS, MIME charset does
+not work, so tm-mh-e can not display correct message.  It is quite evil
+environment.  It does not break only MIME charset, but also electric
+signature by PGP.@refill
+
+If you can manage your environment, you should fix it.  Otherwise you
+should persuade the administration.@refill
+
+Unfortunately you are in such environment and you can not it,
+following descriptions may be available.
+
+
+@subsection for non-MIME message or non-charset
+
+For non-MIME message, please set the character encoding to variable
+@code{default-mime-charset}.  For example, if you use Japanese EUC:
+
+@lisp
+(setq default-mime-charset 'euc-japan)
+@end lisp
+
+
+
+@subsection To disable MIME charset
+
+If for a text part specified MIME charset (@ref{(tm-en)MIME charset}),
+one way is to set variable @code{mime-charset-coding-system-alist} to
+specify the coding-system corresponding the primary MIME charset.  For
+example, to specify @code{*sjis*} or @code{*euc-japan*} as
+@code{iso-2022-jp}.  However it breaks texts encoded by Base64 or
+Quoted-Printable.@refill
+
+So it is better to redefine function
+@code{tm-mh-e/decode-charset-buffer}.  For example, if your MTA
+converts iso-2022-jp to Japanese EUC, following definition may work:
+
+@lisp
+(defun tm-mh-e/decode-charset-buffer (charset &optional encoding)
+  (decode-mime-charset-region (point-min)(point-max) 'euc-japan)
+  )
+@end lisp
+
+
+
+@node MIME-Edit, Concept Index, mule, Top
+@chapter Composing MIME message
+
+If using mime-setup (@ref{(tm-en)mime-setup}), you can edit MIME message
+in MH-Letter mode (@ref{(mh-e)Draft Editing}) using tm-edit
+(@ref{(tm-edit-en)}).@refill
+
+In addition, @kbd{f} is used for message/rfc822
+(@ref{(tm-en)message/rfc822}) style forwarding instead of RFC 934
+(@ref{(tm-en)RFC 934}) style forwarding.
+
+
+@node Concept Index, Variable Index, MIME-Edit, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Variable Index,  , Concept Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-mh-e-ja.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,213 @@
+<!doctype sinfo system>
+<!-- $Id: tm-mh-e-ja.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-mh-e 7.71 $B@bL@=q!JF|K\8lHG!K(B
+<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/15
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-mh-e, a MIME extension for GNUS.
+<p>
+mh-e $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$"$k(B `tm-mh-e' $B$K$D$$$F@bL@$7$^(B
+$B$9!#(B
+</abstract>
+
+
+<h1> tm-mh-e $B$C$F2?!)(B
+<node> Introduction
+<p>
+<concept>tm-mh-e</concept> $B$O(B <a file="tm-ja" node="tm-kernel">tm</a> 
+$B$r;H$C$F(B <a file="mh-e">mh-e</a> $B$N(B <dref file="tm-ja">MIME</dref> $B5!(B
+$BG=$r6/2=$9$k$?$a$N(B package $B$G$9!#(B
+<p>
+tm-mh-e $B$K$h$C$F6/2=$5$l$k5!G=$O<!$NDL$j$G$9!'(B
+
+<ul>
+<li><a file="tm-view-ja">tm-view</a> $B$r;H$C$?(B automatic MIME preview
+<li><a file="tm-edit-ja">tm-edit</a> $B$r;H$C$?(B MIME message $B$N:n@.(B
+</ul>
+
+
+<h1> MH-Folder mode $B$K3HD%$5$l$k5!G=(B
+<node> mh-folder-mode
+<p>
+<kl>
+<kt>M-t
+<kd>
+automatic MIME preview $B$r9T$J$&$+$I$&$+$N(B toggle
+</kd>
+<kt>v
+<kd><code>mime/viewer-mode</code> $B$KF~$j!"(BMIME message $B$rA`:n$9$k(B
+</kd>
+<kt>.
+<kd>
+message $B$rI=<($9$k(B
+</kd>
+<kt>,
+<kd>
+$BA4$F$N(B field $B$rI=<($7$?>uBV$G!"(Bmessage $B$rI=<($9$k(B
+</kd>
+<kt>M-,
+<kd>
+automatic MIME preview $B$r9T$&A0$N@8$N(B message $B$rI=<($9$k(B
+</kl>
+
+<p>
+<dref file="tm-view-ja">mime/viewer-mode</dref> $B$O(B MIME message $B$r1\Mw(B
+$B$9$k$?$a$N(B mode $B$G!"(Bmessage $B$NCf$r0\F0$7$?$j!"BPOCE*$K(B message $B$NCf$N(B
+$B3F(B content $B$r:F@8$7$?$j$9$k$3$H$,$G$-$^$9!#(B
+
+
+<h1> MIME message $B$N(B inline $BI=<((B
+<node> Automatic MIME Preview
+<p>
+tm-mh-e $B$G$O(B <concept>automatic MIME preview</concept> $B5!G=$rMxMQ$9$k(B
+$B$3$H$,$G$-$^$9!#$3$N5!G=$r;H$&$H(B <a file="mh-e" node="Reading Mail">
+MH-Folder mode</a> $B$G5-;v$rFI$`;~!"DL>oI=<($5$l$k(B show buffer $B$NBe$o$j(B
+$B$K(B <a file="tm-view-ja">tm-view</a> $B$G=hM}$5$l$?(B preview buffer $B$rI=<((B
+$B$7$^$9!#(B
+<p>
+<p>
+$B$3$N$?$a!"(B<dref file="tm-ja">Quoted-Printable</dref> $B$d(B <dref
+file="tm-ja">Base64</dref> $B$G(B encode $B$5$l$?5-;v$r(B decode $B$7$FI=<($9$k(B
+$B$3$H$,$G$-$^$9!#$"$k$$$O!"(B<dref file="tm-ja">text/enriched</dref> $B7A<0(B
+$B$N$h$&$J=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?5-;v$r@07A$7$FI=<($G$-$^$9!#EvA3(B
+$B$N$3$H$J$,$i!"(B<dref file="tm-ja">multipart</dref> $B$N5-;v$b@5$7$/=hM}$G(B
+$B$-$^$9!#(B
+<p>
+$B$^$?!"(B<concept>XEmacs</concept> $B$G$O(B text $B$HF1MM$K3($b(B preview buffer 
+$BFb$GI=<($9$k$3$H$,$G$-$^$9!#(B
+<p>
+metamail $B$r;H$C$?>l9g$H0[$J$j!"2;$NF~$C$?5-;v$rFI$s$@$H$?$s!"$$$-$J$j!"(B
+$B2;$,LD$j=P$7$?$j!"(Bvideo $B$NF~$C$?5-;v$rFI$`$?$S$K(B video $B$,:F@8$5$l$?$j!"(B
+anonymous <dref file="tm-ja">ftp</dref> $B$d(B mail-server $B$rMxMQ$7$?(B 
+external-message $B$NF~$C$?5-;v$rFI$`$?$S$K(B anonymous ftp $B$r<B9T$7$?$j!"(B
+mail $B$rAw$C$?$j$9$k$3$H$,KI$2$^$9!#$3$&$7$?(B content $B$O(B preview buffer 
+$B$NCf$KF~$C$F:F@8(B command $B$r<B9T$7$?;~$N$_:F@8$5$l$^$9!#(B
+<p>
+$B$7$+$7$J$,$i!"CY$$(B machine $B$r;H$C$F$$$F!"(BMIME $B=hM}$N(B overhead $B$,5$$K$J(B
+$B$k>l9g!"(Bautomatic MIME preview $B$rM^;_$9$k$3$H$,$G$-$^$9!#(B
+
+
+<defvar name="tm-mh-e/automatic-mime-preview">
+<p>
+<code>nil</code> $B$G$J$$>l9g!"(Bautomatic MIME preview $B$r9T$$$^$9!#(B
+</defvar>
+
+
+<h1> $B9q:]2=(B
+<node> mule
+<p>
+<a file="tm-ja" node="mule">MULE</a>, XEmacs/mule, $B$*$h$S!"(Bmule $BE}9gHG(B 
+Emacs (*1) $B$J$I$N(B mule $B5!G=$r;}$C$?(B emacs $B$G$O(B <dref file="tm-ja">MIME
+charset</dref> $B$*$h$S!"Hs(B MIME message/part $B$KBP$9$k(B newsgroup $BKh$K;X(B
+$BDj$5$l$?(B <code>default-mime-charset</code> $B$G$N(B code $BJQ49$,9T$o$l$^$9!#(B
+
+<memo>
+(*1) 1996 $BG/(B 10 $B7n8=:_!"H>ED(B $B7u0l(B $B;a$H(B RMS $B;a$,3+H/Cf$N(B Emacs $B$G!"(BMULE
+$B$N5!G=$N$&$A!"B?8@8l2=$H9q:]2=$K4X$9$k5!G=$,(B merge $B$5$l$?$b$N$r;X$7$F(B
+$B$$$^$9!#(B
+</memo>
+
+<p>
+$B6qBNE*$K$O!"(Bcode $BJQ49$O<!$N$h$&$K9T$o$l$^$9!'(B
+
+<ol>
+<li>
+$B$b$7!"$"$k(B MIME message $B$N$"$k(B part $B$,(B <dref file="tm-ja">Content-Type
+field</dref> $B$K(B charset parameter $B$r;}$C$F$$$l$P!"$=$N(B MIME charset $B$r(B
+$BMQ$$$F(B code $BJQ49$r9T$&!#(B
+<p>
+<li>
+message header $B$dHs(B MIME message $B$J$I!"(Bcharset $B$,@k8@$5$l$F$$$J$$>l9g!"(B
+Summary Buffer $B>e$N(B <code>default-mime-charset</code> $B$NCM$G(B code $BJQ49(B
+$B$5$l$k!#(B
+</ol>
+
+
+<h2> MTA $B$G(B code $BJQ49$r9T$C$F$$$k>l9g(B
+<node> evil environment
+<p>
+<dref file="tm-ja">MTA</dref> $B$G(B EUC $B$d(B Shift_JIS $B$J$I$K(B code $BJQ49$7$F(B
+$B$$$k>l9g!"(Btm-mh-e $B$N(B default $B$N@_Dj$G$OJ8;z2=$1$7$^$9!#$O$C$-$j8@$C$F!"(B
+$B$3$&$7$?$3$H$r9T$J$&$3$H$O$"$^$j4+$a$i$l$?$3$H$G$O$J$$$G$9!#(BMIME$B$N(B 
+charset $B@k8@$,$*$+$7$/$J$k$[$+$K!"EE;R=qL>$,$*$+$7$/$J$k$J$I!"$5$^$6$^(B
+$B$JJ@32$,$"$j$^$9!#(B
+<p>
+$B$h$C$F!"$b$7!"$"$J$?$,4IM}<T$G$3$&$$$&@_Dj$r$7$F$$$k$N$G$"$l$PB(9o$d$a(B
+$B$^$7$g$&!#$^$?!"$I$&$7$F$b$=$&$$$&$3$H$r$7$?$$$N$J$i(B user $B$,(B MTA $B$G$N(B 
+code $BJQ49$r$d$a$i$l$k$h$&$JJ}K!$K$7$^$7$g$&!#$^$?!"$"$J$?$,4IM}<T$G$J(B
+$B$$$J$i4IM}<T$r@bF@$7$^$7$g$&!#$^$?!"6H<T$,$=$&$$$&@_Dj$r$7$J$$$h$&$KCm(B
+$BJ8$7$^$7$g$&!#J9$/$H$3$m$K$h$k$H!"$=$&$$$&@_Dj$r$9$k8+<1$N$J$$(B WS
+maker $B$,$"$k$=$&$G$9$,!"(BSE $B$K$$$C$F$=$&$$$&@_Dj$r$5$;$J$$$h$&$K$7$^$7$g(B
+$B$&!#$^$?!"$I$&$7$F$bJ9$+$J$$$J$i$=$&$$$&6H<T$H$O1o$r@Z$j$^$7$g$&!#(B
+<p>
+$B$7$+$7!"$"$J$?$,IT9,$K$7$F$I$&$7$F$b$3$&$$$&4D6-$G;H$o$6$k$rF@$J$$$N$G(B
+$B$"$l$P!"0J2<$N5-=R$r;29M$K$7$F$/$@$5$$!#(B
+
+
+<h3> $BHs(B MIME message $B$^$?$O(B charset $B$,B8:_$7$J$$>l9g$N$_$NBP:v(B
+<p>
+$BHs(B MIME message $B$N>l9g!"JQ?t(B default-mime-charset $B$KJ8;z(B code $B$r@_Dj$9(B
+$B$l$P(B OK $B$G$9!#Nc$($P!"F|K\8l(B EUC $B$N>l9g$O(B
+
+<lisp>
+(setq default-mime-charset 'euc-japan)
+</lisp>
+
+<noindent>
+$B$H$7$F2<$5$$!#(B
+
+
+<h3> MIME charset $B$,B8:_$9$k>l9g$b4^$a$?BP:v(B
+<p>
+<dref file="tm-ja">MIME charset</dref> $B$,B8:_$9$k>l9g!"JQ?t(B 
+<code>mime-charset-coding-system-alist</code> $B$K(B 
+<code>iso-2022-jp</code> $B$KBP1~$9$k(B coding-system $B$r(B 
+<code>*sjis*</code> $B$d(B <code>*euc-japan*</code> $BEy$NJQ49$5$l$?(B code $B$K(B
+$BJQ$($k$H$$$&$N$,#1$D$NJ}K!$G$9!#C"$7!"$3$N>l9g!"(Bencode $B$5$l$F85$NJ8;z(B 
+code $B$,J]B8$5$l$F$$$k>l9g$KJ8;z2=$1$9$k$3$H$K$J$j$^$9!#(B
+<p>
+$B$3$N$3$H$r9MN8$9$k$H!"4X?t(B <code>tm-mh-e/decode-charset-buffer</code> 
+$B$r:FDj5A$9$k$N$,NI$$$H$$$($^$9!#$*$=$i$/!"(Biso-2022-jp $B0J30$NJ8;z(B code 
+$B$OJ]B8$5$l$J$$$G$7$g$&$+$i!"Nc$($PF|K\8l(B EUC $B$KJQ49$5$l$F$$$k>l9g!"0J(B
+$B2<$N$h$&$JDj5A$G==J,$G$7$g$&!#(B
+
+<lisp>
+(defun tm-mh-e/decode-charset-buffer (charset &amp;optional encoding)
+  (decode-mime-charset-region (point-min)(point-max) 'euc-japan)
+  )
+</lisp>
+
+
+<h1> MIME message $B$N:n@.(B
+<node> MIME-Edit
+<p>
+<dref file="tm-ja">mime-setup</dref> $B$r;H$C$F$$$k>l9g!"(B<a file="mh-e"
+node="Draft Editing">MH-Letter mode</a> $B$K$*$$$F!"(B<a
+file="tm-edit-ja">tm-edit</a> $B$rMQ$$$?(B MIME message $B$N:n@.$r9T$&$3$H$,(B
+$B$G$-$^$9!#(B
+<p>
+$B$^$?!"(BMH-Folder mode $B$G(B <kbd>f</kbd> $B$r2!$9$H!"(B<dref file="tm-ja">RFC
+934</dref> $B$K$h$k(B forward $B$NBe$j$K(B <dref
+file="tm-ja">message/rfc822</dref> $B7A<0$K$h$k(B forward $B$,9T$($^$9!#(B
+
+
+<h1> $B35G0:w0z(B
+<node> Concept Index
+
+<cindex>
+
+
+<h1> $BJQ?t:w0z(B
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-mh-e-ja.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,223 @@
+\input texinfo.tex
+@setfilename tm-mh-e-ja.info
+@settitle{tm-mh-e 7.71 $B@bL@=q!JF|K\8lHG!K(B}
+@titlepage
+@title tm-mh-e 7.71 $B@bL@=q!JF|K\8lHG!K(B
+@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
+@subtitle 1996/10/15
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-mh-e 7.71 $B@bL@=q!JF|K\8lHG!K(B
+
+@ifinfo
+
+This file documents tm-mh-e, a MIME extension for GNUS.@refill
+
+mh-e $B$G(B MIME $B$r3Z$7$`$?$a$N(B package $B$G$"$k(B `tm-mh-e' $B$K$D$$$F@bL@$7$^$9!#(B
+@end ifinfo
+
+@menu
+* Introduction::                tm-mh-e $B$C$F2?!)(B
+* mh-folder-mode::              MH-Folder mode $B$K3HD%$5$l$k5!G=(B
+* Automatic MIME Preview::      MIME message $B$N(B inline $BI=<((B
+* mule::                        $B9q:]2=(B
+* MIME-Edit::                   MIME message $B$N:n@.(B
+* Concept Index::               $B35G0:w0z(B
+* Variable Index::              $BJQ?t:w0z(B
+@end menu
+
+@node Introduction, mh-folder-mode, Top, Top
+@chapter tm-mh-e $B$C$F2?!)(B
+
+@cindex{tm-mh-e}@strong{tm-mh-e} $B$O(B tm (@ref{(tm-ja)tm-kernel}) $B$r;H$C$F(B 
+mh-e (@ref{(mh-e)}) $B$N(B MIME (@ref{(tm-ja)MIME}) $B5!G=$r6/2=$9$k$?$a$N(B 
+package $B$G$9!#(B@refill
+
+tm-mh-e $B$K$h$C$F6/2=$5$l$k5!G=$O<!$NDL$j$G$9!'(B
+
+@itemize @bullet
+@item
+tm-view (@ref{(tm-view-ja)}) $B$r;H$C$?(B automatic MIME preview
+@item
+tm-edit (@ref{(tm-edit-ja)}) $B$r;H$C$?(B MIME message $B$N:n@.(B
+@end itemize
+
+
+
+@node mh-folder-mode, Automatic MIME Preview, Introduction, Top
+@chapter MH-Folder mode $B$K3HD%$5$l$k5!G=(B
+
+@table @kbd
+@item @key{M-t}
+automatic MIME preview $B$r9T$J$&$+$I$&$+$N(B toggle
+
+@item @key{v}
+@code{mime/viewer-mode} $B$KF~$j!"(BMIME message $B$rA`:n$9$k(B
+
+@item @key{.}
+message $B$rI=<($9$k(B
+
+@item @key{,}
+$BA4$F$N(B field $B$rI=<($7$?>uBV$G!"(Bmessage $B$rI=<($9$k(B
+
+@item @key{M-,}
+automatic MIME preview $B$r9T$&A0$N@8$N(B message $B$rI=<($9$k(B
+
+@end table
+
+
+mime/viewer-mode (@ref{(tm-view-ja)mime/viewer-mode}) $B$O(B MIME message $B$r(B
+$B1\Mw$9$k$?$a$N(B mode $B$G!"(Bmessage $B$NCf$r0\F0$7$?$j!"BPOCE*$K(B message $B$NCf(B
+$B$N3F(B content $B$r:F@8$7$?$j$9$k$3$H$,$G$-$^$9!#(B
+
+
+@node Automatic MIME Preview, mule, mh-folder-mode, Top
+@chapter MIME message $B$N(B inline $BI=<((B
+
+tm-mh-e $B$G$O(B @cindex{automatic MIME preview}@strong{automatic MIME
+preview} $B5!G=$rMxMQ$9$k$3$H$,$G$-$^$9!#$3$N5!G=$r;H$&$H(B MH-Folder mode
+(@ref{(mh-e)Reading Mail}) $B$G5-;v$rFI$`;~!"DL>oI=<($5$l$k(B show buffer $B$N(B
+$BBe$o$j$K(B tm-view (@ref{(tm-view-ja)}) $B$G=hM}$5$l$?(B preview buffer $B$rI=<((B
+$B$7$^$9!#(B@refill
+
+
+$B$3$N$?$a!"(BQuoted-Printable (@ref{(tm-ja)Quoted-Printable}) $B$d(B Base64
+(@ref{(tm-ja)Base64}) $B$G(B encode $B$5$l$?5-;v$r(B decode $B$7$FI=<($9$k$3$H$,$G(B
+$B$-$^$9!#$"$k$$$O!"(Btext/enriched (@ref{(tm-ja)text/enriched}) $B7A<0$N$h$&(B
+$B$J=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?5-;v$r@07A$7$FI=<($G$-$^$9!#EvA3$N$3$H$J(B
+$B$,$i!"(Bmultipart (@ref{(tm-ja)multipart}) $B$N5-;v$b@5$7$/=hM}$G$-$^$9!#(B
+
+$B$^$?!"(B@cindex{XEmacs}@strong{XEmacs} $B$G$O(B text $B$HF1MM$K3($b(B preview
+buffer $BFb$GI=<($9$k$3$H$,$G$-$^$9!#(B@refill
+
+metamail $B$r;H$C$?>l9g$H0[$J$j!"2;$NF~$C$?5-;v$rFI$s$@$H$?$s!"$$$-$J$j!"(B
+$B2;$,LD$j=P$7$?$j!"(Bvideo $B$NF~$C$?5-;v$rFI$`$?$S$K(B video $B$,:F@8$5$l$?$j!"(B
+anonymous ftp (@ref{(tm-ja)ftp}) $B$d(B mail-server $B$rMxMQ$7$?(B 
+external-message $B$NF~$C$?5-;v$rFI$`$?$S$K(B anonymous ftp $B$r<B9T$7$?$j!"(B
+mail $B$rAw$C$?$j$9$k$3$H$,KI$2$^$9!#$3$&$7$?(B content $B$O(B preview buffer $B$N(B
+$BCf$KF~$C$F:F@8(B command $B$r<B9T$7$?;~$N$_:F@8$5$l$^$9!#(B@refill
+
+$B$7$+$7$J$,$i!"CY$$(B machine $B$r;H$C$F$$$F!"(BMIME $B=hM}$N(B overhead $B$,5$$K$J(B
+$B$k>l9g!"(Bautomatic MIME preview $B$rM^;_$9$k$3$H$,$G$-$^$9!#(B
+
+
+@defvar tm-mh-e/automatic-mime-preview
+
+@code{nil} $B$G$J$$>l9g!"(Bautomatic MIME preview $B$r9T$$$^$9!#(B
+@end defvar
+
+
+
+@node mule, MIME-Edit, Automatic MIME Preview, Top
+@chapter $B9q:]2=(B
+
+MULE (@ref{(tm-ja)mule}), XEmacs/mule, $B$*$h$S!"(Bmule $BE}9gHG(B Emacs (*1) $B$J(B
+$B$I$N(B mule $B5!G=$r;}$C$?(B emacs $B$G$O(B MIME charset (@ref{(tm-ja)MIME
+charset}) $B$*$h$S!"Hs(B MIME message/part $B$KBP$9$k(B newsgroup $BKh$K;XDj$5$l$?(B 
+@code{default-mime-charset} $B$G$N(B code $BJQ49$,9T$o$l$^$9!#(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+(*1) 1996 $BG/(B 10 $B7n8=:_!"H>ED(B $B7u0l(B $B;a$H(B RMS $B;a$,3+H/Cf$N(B Emacs $B$G!"(BMULE
+$B$N5!G=$N$&$A!"B?8@8l2=$H9q:]2=$K4X$9$k5!G=$,(B merge $B$5$l$?$b$N$r;X$7$F(B
+$B$$$^$9!#(B
+@end quotation
+
+
+$B6qBNE*$K$O!"(Bcode $BJQ49$O<!$N$h$&$K9T$o$l$^$9!'(B
+
+@enumerate
+@item
+$B$b$7!"$"$k(B MIME message $B$N$"$k(B part $B$,(B Content-Type field
+(@ref{(tm-ja)Content-Type field}) $B$K(B charset parameter $B$r;}$C$F$$$l$P!"(B
+$B$=$N(B MIME charset $B$rMQ$$$F(B code $BJQ49$r9T$&!#(B
+
+@item
+message header $B$dHs(B MIME message $B$J$I!"(Bcharset $B$,@k8@$5$l$F$$$J$$>l9g!"(B
+Summary Buffer $B>e$N(B @code{default-mime-charset} $B$NCM$G(B code $BJQ49(B
+$B$5$l$k!#(B
+@end enumerate
+
+
+
+@menu
+* evil environment::            MTA $B$G(B code $BJQ49$r9T$C$F$$$k>l9g(B
+@end menu
+
+@node evil environment,  , mule, mule
+@section MTA $B$G(B code $BJQ49$r9T$C$F$$$k>l9g(B
+
+MTA (@ref{(tm-ja)MTA}) $B$G(B EUC $B$d(B Shift_JIS $B$J$I$K(B code $BJQ49$7$F$$$k>l9g!"(B
+tm-mh-e $B$N(B default $B$N@_Dj$G$OJ8;z2=$1$7$^$9!#$O$C$-$j8@$C$F!"$3$&$7$?$3(B
+$B$H$r9T$J$&$3$H$O$"$^$j4+$a$i$l$?$3$H$G$O$J$$$G$9!#(BMIME$B$N(B charset $B@k8@$,(B
+$B$*$+$7$/$J$k$[$+$K!"EE;R=qL>$,$*$+$7$/$J$k$J$I!"$5$^$6$^$JJ@32$,$"$j$^$9!#(B
+
+$B$h$C$F!"$b$7!"$"$J$?$,4IM}<T$G$3$&$$$&@_Dj$r$7$F$$$k$N$G$"$l$PB(9o$d$a$^(B
+$B$7$g$&!#$^$?!"$I$&$7$F$b$=$&$$$&$3$H$r$7$?$$$N$J$i(B user $B$,(B MTA $B$G$N(B code 
+$BJQ49$r$d$a$i$l$k$h$&$JJ}K!$K$7$^$7$g$&!#$^$?!"$"$J$?$,4IM}<T$G$J$$$J$i4I(B
+$BM}<T$r@bF@$7$^$7$g$&!#$^$?!"6H<T$,$=$&$$$&@_Dj$r$7$J$$$h$&$KCmJ8$7$^$7$g(B
+$B$&!#J9$/$H$3$m$K$h$k$H!"$=$&$$$&@_Dj$r$9$k8+<1$N$J$$(B WS maker $B$,$"$k$=$&(B
+$B$G$9$,!"(BSE $B$K$$$C$F$=$&$$$&@_Dj$r$5$;$J$$$h$&$K$7$^$7$g$&!#$^$?!"$I$&$7(B
+$B$F$bJ9$+$J$$$J$i$=$&$$$&6H<T$H$O1o$r@Z$j$^$7$g$&!#(B@refill
+
+$B$7$+$7!"$"$J$?$,IT9,$K$7$F$I$&$7$F$b$3$&$$$&4D6-$G;H$o$6$k$rF@$J$$$N$G(B
+$B$"$l$P!"0J2<$N5-=R$r;29M$K$7$F$/$@$5$$!#(B
+
+
+@subsection $BHs(B MIME message $B$^$?$O(B charset $B$,B8:_$7$J$$>l9g$N$_$NBP:v(B
+
+$BHs(B MIME message $B$N>l9g!"JQ?t(B default-mime-charset $B$KJ8;z(B code $B$r@_Dj$9(B
+$B$l$P(B OK $B$G$9!#Nc$($P!"F|K\8l(B EUC $B$N>l9g$O(B
+
+@lisp
+(setq default-mime-charset 'euc-japan)
+@end lisp
+
+@noindent
+$B$H$7$F2<$5$$!#(B
+
+
+@subsection MIME charset $B$,B8:_$9$k>l9g$b4^$a$?BP:v(B
+
+MIME charset (@ref{(tm-ja)MIME charset}) $B$,B8:_$9$k>l9g!"JQ?t(B 
+@code{mime-charset-coding-system-alist} $B$K(B @code{iso-2022-jp} $B$KBP1~$9$k(B 
+coding-system $B$r(B @code{*sjis*} $B$d(B @code{*euc-japan*} $BEy$NJQ49$5$l$?(B code 
+$B$KJQ$($k$H$$$&$N$,#1$D$NJ}K!$G$9!#C"$7!"$3$N>l9g!"(Bencode $B$5$l$F85$NJ8;z(B 
+code $B$,J]B8$5$l$F$$$k>l9g$KJ8;z2=$1$9$k$3$H$K$J$j$^$9!#(B@refill
+
+$B$3$N$3$H$r9MN8$9$k$H!"4X?t(B @code{tm-mh-e/decode-charset-buffer} 
+$B$r:FDj5A$9$k$N$,NI$$$H$$$($^$9!#$*$=$i$/!"(Biso-2022-jp $B0J30$NJ8;z(B code 
+$B$OJ]B8$5$l$J$$$G$7$g$&$+$i!"Nc$($PF|K\8l(B EUC $B$KJQ49$5$l$F$$$k>l9g!"0J(B
+$B2<$N$h$&$JDj5A$G==J,$G$7$g$&!#(B
+
+@lisp
+(defun tm-mh-e/decode-charset-buffer (charset &optional encoding)
+  (decode-mime-charset-region (point-min)(point-max) 'euc-japan)
+  )
+@end lisp
+
+
+
+@node MIME-Edit, Concept Index, mule, Top
+@chapter MIME message $B$N:n@.(B
+
+mime-setup (@ref{(tm-ja)mime-setup}) $B$r;H$C$F$$$k>l9g!"(BMH-Letter mode
+(@ref{(mh-e)Draft Editing}) $B$K$*$$$F!"(Btm-edit (@ref{(tm-edit-ja)}) $B$rMQ(B
+$B$$$?(B MIME message $B$N:n@.$r9T$&$3$H$,$G$-$^$9!#(B@refill
+
+$B$^$?!"(BMH-Folder mode $B$G(B @kbd{f} $B$r2!$9$H!"(BRFC 934 (@ref{(tm-ja)RFC 934}) 
+$B$K$h$k(B forward $B$NBe$j$K(B message/rfc822 (@ref{(tm-ja)message/rfc822}) $B7A(B
+$B<0$K$h$k(B forward $B$,9T$($^$9!#(B
+
+
+@node Concept Index, Variable Index, MIME-Edit, Top
+@chapter $B35G0:w0z(B
+
+@printindex cp
+
+@node Variable Index,  , Concept Index, Top
+@chapter $BJQ?t:w0z(B
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-view-en.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,994 @@
+<!doctype sinfo system>
+<!-- $Id: tm-view-en.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-view 7.77 Reference Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+</abstract>
+
+
+<h1> What is tm-view?
+<node> Introduction
+<p>
+The tm-view is a general MIME viewer running on GNU Emacs.
+<p>
+tm-view provides the major-mode called <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code> </a> to read
+MIME message for MUA.  <a file="tm-en" node="MUA">MUA</a> implementer
+can use it to add MIME function.
+<p>
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each <dref
+file="tm-en">content-type</dref>s, they are called <a
+node="method"><concept>method</concept></a>.  tm-view calls some
+programs to display each contents and headers in preview buffer, they
+are called <a node="Two buffers for an
+article"><concept>filter</concept></a>.  Method and filters are
+tm-view application program.  They expand tm-view to treat various
+kinds of MIME types.
+
+
+<h1> Structure of display in mime/viewer-mode
+<node> MIME display
+<p>
+In <a node="mime/viewer-mode">mime/viewer-mode</a>, following are
+displayed for each parts:
+<p>
+<verb>
+	[content-button]
+	(content-header)
+	
+	(content-body)
+	(content-separator)
+</verb>
+<p>
+You can change design or stop to display if you specify for each
+conditions, such as content-types.
+<p>
+Example:
+
+<verb>
+From: morioka@jaist.ac.jp (MORIOKA Tomohiko)
+Subject: Re: Question
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  How to compose MIME message in MIME-Edit mode.
+
+  Press `C-c C-x ?' then help message will be displayed:
+
+C-c C-x C-t	insert a text message.
+C-c C-x TAB	insert a (binary) file.
+C-c C-x C-e	insert a reference to external body.
+C-c C-x C-v	insert a voice message.
+C-c C-x C-y	insert a mail or news message.
+C-c C-x RET	insert a mail message.
+C-c C-x C-s	insert a signature file at end.
+C-c C-x t	insert a new MIME tag.
+C-c C-x a	enclose as multipart/alternative.
+C-c C-x p	enclose as multipart/parallel.
+C-c C-x m	enclose as multipart/mixed.
+C-c C-x d	enclose as multipart/digest.
+C-c C-x s	enclose as PGP signed.
+C-c C-x e	enclose as PGP encrypted.
+C-c C-x C-k	insert PGP public key.
+C-c C-x C-p	preview editing MIME message.
+...
+
+So press `C-c C-x C-i' and specify file name you want to include.
+
+  MIME encoding for binary file is normally Base64.
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  In this way, it is finish a message attaching a picture.
+
+======================== A cup of Russian tea ========================
+============  * not by jam, not by marmalade, by honey *  ============
+============               MORIOKA Tomohiko               ============
+=============== Internet E-mail: <morioka@jaist.ac.jp> ===============
+</verb>
+
+
+<h2> content-button
+<node> content-button
+<p>
+content-subject displays abstract for the part.  It is placed in top
+of the part.
+<p>
+In default, it is displayed following design:
+
+<verb>
+        [1.3 test (text/plain)]
+</verb>
+
+<p>
+First number field represents position of a content in the part.  It
+is called <concept>content-number</concept>.  It can be considered as
+the chapter number in the message.
+<p>
+Second string part represents title.  It is created by following:
+
+<ol>
+<li>name paramater or x-name parameter in <dref
+file="tm-en">Content-Type field</dref>
+</li>
+<li><dref file="tm-en">Content-Description field</dref> or Subject
+field
+</li>
+<li> filename of uuencode
+</ol>
+
+<p>
+If they are not exists, space is displayed.
+<p>
+Third parenthesis part represents content-type/subtype of the part.
+If it is non-MIME part, <code>nil</code> is displayed.
+<p>
+Content-button is used like icon when <dref>content-header</dref> and
+<dref>content-body</dref> are hidden.  For example:
+
+<verb>
+        [2  (image/gif)]
+</verb>
+
+<noindent>
+if you press <kbd>v</kbd> key, GIF image is displayed.
+<p>
+If mouse operations are available, you can press content-button by
+mouse button-2 (center button of 3 button-mouse) to play, similarly to
+press <kbd>v</kbd> key. <cf node="mime/viewer-mode">
+<p>
+By the way, it is annoying to display content-button if content-header
+is displayed.  So tm-view provides a mechanism to specify conditions
+to display content-button.
+
+
+<defvar name="mime-viewer/content-button-ignored-ctype-list">
+<p>
+List of content-types.
+<p>
+If content-type of a part is a member of this list, its content-button
+is not displayed.
+</defvar>
+
+
+<h2> content-header
+<node> content-header
+<p>
+A content header displays the header portion of a part in the
+preview-buffer.  However it is annoying to display header for every
+parts, so tm-view provides a mechanism to specify its condition.
+<p>
+When the function <code>mime-viewer/header-visible-p</code> returns
+<code>t</code> for reversed-content-number of a part, content-header
+is displayed.
+<p>
+This judge function returns <code>t</code> when a part is root or
+content-type of its parent is a member of the variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>.
+<p>
+If you want to change this condition, please redefine it.  Notice that
+it refers variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>,
+however if you redefine function
+<code>mime-viewer/header-visible-p</code>, it may not work.  So if you
+want to redefine it, it should be refer variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>.
+<p>
+When content-header is displayed, content-header are formated by the
+program called by <concept>content-header-filter</concept>.
+Content-header-filter is searched from variable
+<code>mime-viewer/content-header-filter-alist</code>.  Its key is
+major-mode of the <a node="raw-article-buffer">raw-article-buffer</a>.
+If not found, function
+<code>mime-viewer/default-content-header-filter</code> is called.
+<p>
+
+<defvar name="mime-viewer/childrens-header-showing-Content-Type-list">
+<p>
+List of content-types.  If content-type of parent of a part is a
+member of this variable, its content-header is displayed.  Default
+value is <code>'("message/rfc822" "message/news")</code>.
+<p>
+This variable is referred by the function
+<code>mime-viewer/header-visible-p</code>.
+</defvar>
+
+
+<defun name="mime-viewer/header-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+Returns <code>t</code> if a part which reversed-content-number is
+<var>rcnum</var> in content-info <var>cinfo</var> is displayed.
+<p>
+If you know content-type, you can specify by <var>ctype</var>.
+</defun>
+
+
+<defvar name="mime-viewer/content-header-filter-alist">
+<p>
+Association-list whose key is major-mode of a raw-article-buffer,
+value is content-header-filter.
+</defvar>
+
+
+<defun name="mime-viewer/default-content-header-filter">
+<p>
+It is called when content-header-filter is not found in variable
+<code>mime-viewer/content-header-filter-alist</code>.
+<p>
+It refers <code>mime-viewer/ignored-field-regexp</code>.
+</defun>
+
+
+<defvar name="mime-viewer/ignored-field-list">
+<p>
+List of regular expression to represent invisible fields even if
+content-header is displayed.
+<p>
+Variable <code>mime-viewer/ignored-field-regexp</code> is created from
+it.
+<p>
+Please use function <code>tm:add-fields</code> or
+<code>tm:delete-fields</code> to set it.
+</defvar>
+
+
+<h2> content-body
+<node> content-body
+<p>
+<concept>content-body</concept> represents content of the part.
+<p>
+tm-view does not display raw content body.  For example, if a content
+has binary, it is hidden.  If a content has text/enriched, it is
+formated.  Namely content body is hidden or formated.
+<p>
+Function <code>mime-viewer/body-visible-p</code> is a judge function
+whether content-body of a content is displayed.  If it returns
+<code>nil</code>, content-body is hidden.  In default, it returns
+non-<code>nil</code> when content-type of a part is a member of
+variable <code>mime-viewer/default-showing-Content-Type-list</code>.
+<p>
+When content-body of a content is displayed, content-body is formated
+by <concept>content-filter</concept>.  Content-filter is searched from
+variable <code>mime-viewer/content-filter-alist</code>.  At this time,
+major-mode of the <dref>raw-article-buffer</dref> is used as the key.
+
+If it is not found, function
+<code>mime-viewer/default-content-filter</code> is called.
+
+
+<defvar name="mime-viewer/default-showing-Content-Type-list">
+<p>
+List of content-type.  If content-type of a part is a member of this
+variable, its body is displayed.
+</defvar>
+
+
+<defun name="mime-viewer/body-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+Return non-<code>nil</code>, if content-type of a part is displayed.
+<var>rcnum</var> is reversed-content-number of a part.
+<var>cinfo</var> is content-info of the message.  If you know
+content-type of a part, you can specify it as argument
+<var>ctype</var>.
+</defun>
+
+
+<defvar name="mime-viewer/content-filter-alist">
+<p>
+Association-list whose key is major-mode of a raw-article-buffer,
+value is content-filter.
+</defvar>
+
+
+<defun name="mime-viewer/default-content-filter">
+<args> rcnum cinfo ctype params subj
+<p>
+It is called when content-body of a part should be displayed and
+content-filter is not found in
+<code>mime-viewer/content-filter-alist</code>.
+<p>
+In default, it does nothing.
+</defun>
+
+
+<h2> content-separator
+<node> content-separator
+<p>
+<concept>content-separator</concept> is displayed to represent
+boundary of contents.
+<p>
+Content-separator is displayed by function
+<code>mime-viewer/default-content-separator</code>.  In default, it
+displays line-break when content-header and content-body are not
+displayed.
+<p>
+If you want to change this condition, please redefine this function.
+
+
+<defun name="mime-viewer/default-content-separator">
+<args> rcnum cinfo ctype params subj
+<p>
+Display content-separator.  <var>cnum</var> is content-number of a
+content.  <var>cinfo</var> is content-info of the message.
+<var>ctype</var> is content-type of a content.  <var>params</var> is
+Content-Type field parameters of a content.  <var>subj</var> is
+subject.
+<p>
+In default, it displays line-break when content-header and
+content-body are not displayed.
+</defun>
+
+
+<h1> Navigation in mime/viewer-mode
+<node> mime/viewer-mode
+<p>
+<code>mime/viewer-mode</code> has following functions:
+<p>
+<kl>
+<kt>u
+<kd>
+goes to the upper content (returns to the Summary mode if the cursor
+is sitting on the top content (*1))
+</kd>
+<kt>p
+<kd>
+goes to the previous content
+</kd>
+<kt>n
+<kd>
+goes to the next content
+</kd>
+<kt>SPC
+<kd>
+scrolls up
+</kd>
+<kt>M-SPC
+<kd>
+scrolls down
+</kd>
+<kt>DEL
+<kd>
+scrolls down
+</kd>
+<kt>RET
+<kd>
+goes to the next line
+</kd>
+<kt>M-RET
+<kd>
+goes to the previous line
+</kd>
+<kt>&lt;
+<kd>
+goes to the beginning of message
+</kd>
+<kt>&gt;
+<kd>
+goes to the end of message
+</kd>
+<kt>v
+<kd>
+playbacks a part (*2)
+</kd>
+<kt>e
+<kd>
+extracts a file from a part (*2)
+</kd>
+<kt>C-c C-p
+<kd>
+prints a part (*2)
+</kd>
+<kt>f
+<kd>
+displays X-Face in the message
+</kd>
+<kt>mouse-button-2
+<kd>
+drives mouse button in preview-buffer.
+<p>
+For content-button, it playbacks a part (*2)
+<p>
+For URL-button, it drives WWW browser
+</kd>
+</kl>
+<p>
+<memo title="Notice">
+<p>
+(*1) Not return to the Summary mode unless tm-view has been setup
+using tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.
+<p>
+(*2) Actual playback/extract/print will be performed by a method.
+</memo>
+
+
+<h1> Mechanism of decoding
+<node> method
+<p>
+In <code>mime/viewer-mode</code>, you can do play (<kbd>v</kbd>),
+extract (<kbd>e</kbd>), or print (<kbd>C-c C-p</kbd>) for each parts.
+These operations are called <concept>decoding operation(s) (for a
+part)</concept>.  And kind of decoding operations are called
+<concept>decoding-mode</concept>.
+<p>
+When decoding operation is driven, tm-view calls a procedure matched
+for the condition, such as <dref file="tm-en">content-type</dref> of
+the part or its environment.  This procedure is called
+<concept>method</concept>.
+<p>
+There are two kinds of methods.  One is Emacs Lisp function, called
+<concept>internal method</concept>.  Another one is external program,
+called <concept>external method</concept>.
+<p>
+Internal method operates in Emacs, so it can do carefully.
+<p>
+External method is called as asynchronous process, so Emacs does not
+wait while method is running.  So it is good for big data, such as
+audio, image or video.
+
+
+<h2> Setting decoding condition for parts
+<node> decoding-condition
+<p>
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+<code>mime/content-decoding-condition</code>.
+<p>
+Variable <code>mime/content-decoding-condition</code> is defined as a
+list with the following syntax:
+<p>
+<lisp>
+        (condition_1 condition_2 ...)
+</lisp>
+<p>
+Each condition are association-list with the following syntax:
+<p>
+<lisp>
+        ((field-type_1 . value_1)
+         (field-type_2 . value_2)
+         ...)
+</lisp>
+<p>
+For example, if you want to call the external method named tm-plain to
+decode every <dref file="tm-en">text/plain</dref> type parts, you can
+define the condition like:
+<p>
+<lisp>
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+</lisp>
+<p>
+This condition definition will match all parts whose <dref
+file="tm-en">content-type</dref> are text/plain.  Here is an another
+example:
+<p>
+<lisp>
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+         (mode . "play"))
+</lisp>
+<p>
+This will match the part whose type is text/plain and the mode is
+play.
+<p>
+Here is an another example:
+<p>
+<lisp>
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+         (mode . "play"))
+</lisp>
+<p>
+This will match all parts which have a mode of play.
+<p>
+The conditions defined in a variable
+<code>mime/content-decoding-condition</code> are examined from top to
+bottom.  The first matching condition becomes valid and the method
+specified in that condition definition will be executed.
+
+
+<h3> Format of method value
+<node> method value
+<p>
+You can specify the method field of the decoding-condition definition
+in two different ways,
+<p>
+<lisp>
+        (method . SYMBOL)
+</lisp>
+<p>
+<noindent>
+or
+<p>
+<lisp>
+        (method  STRING  FLAG  arg1  arg2  ...)
+</lisp>
+<p>
+<noindent>
+can be accepted.
+<p>
+When a symbol is specified in the method field, a function whose name
+is SYMBOL will be called as an internal method.
+<p>
+When a list is specified in the method field, it will be called as an
+external method.
+<p>
+The list below shows the meaning of the parameters when the external
+method is specified in the method field.
+<p>
+<dl>
+<dt>STRING
+<dd>name of an external method
+</dd>
+<dt>FLAG
+<dd>If <code>t</code>, both the content-header and the content-body
+are passed to an external method.
+<p>
+If <code>nil</code>, only the content-body is passed to an external
+method.
+</dd>
+<dt>ARGUMENTs
+<dd>list of arguments passed to an external method
+</dd>
+</dl>
+<p>
+An argument passed to an external method can be in one of the
+following formats:
+<p>
+<dl>
+<dt>STRING
+<dd>string itself
+</dd>
+<dt>'SYMBOL
+<dd>value gotten using SYMBOL as a key from decoding-condition
+</dd>
+<dt>'STRING
+<dd>value gotten using STRING as a key from decoding-condition
+</dd>
+</dl>
+<p>
+<code>'SYMBOL</code> can be one of the following:
+<p>
+<dl>
+<dt>'file
+<dd>name of a file holding the original content
+</dd>
+<dt>'type
+<dd>content-type/sub-type of Content-Type field
+</dd>
+<dt>'encoding
+<dd>field body of Content-Transfer-Encoding field
+</dd>
+<dt>'mode
+<dd>decoding-mode
+</dd>
+<dt>'name
+<dd>name of a file created by decode operation
+</dd>
+</dl>
+
+<p>
+<code>'STRING</code> is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+<h3> Example of decoding-condition
+<node> Example of decoding-condition
+<p>
+Following is an example of decoding-condition:
+
+<lisp>
+(defvar mime/content-decoding-condition
+  '(((type . "text/plain")
+     (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "text/x-latex")
+     (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "audio/basic")
+     (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/gif")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/jpeg")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-xbm")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-pic")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "video/mpeg")`
+     (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "application/octet-stream")
+     (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "message/partial")
+     (method . mime/decode-message/partial-region))
+    ((method "metamail" t
+             "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+    ))
+</lisp>
+
+<p>
+For example, if you want to use metamail to decode any contents,
+
+<lisp>
+(setq mime/content-decoding-condition
+      '(
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+       ))
+</lisp>
+
+<noindent>
+will work.
+<p>
+Variable <code>mime/content-decoding-condition</code> provides you of
+very flexible way to define the conditions of decoding.  It can be
+simple if you only need the a few decoding methods, while it can be
+very complicated if you want to use the separate decoding method for
+each type/mode combination.
+<p>
+Following function may be useful to set decoding-condition.  It is a
+function of <file>tl-atype.el</file>.
+
+
+<defun name="set-atype">
+<args> symbol alist
+<p>
+Add condition <var>alist</var> to <var>symbol</var>.
+
+<memo title="Example">
+<p>
+<lisp>
+(set-atype 'mime/content-decoding-condition
+	   '((type . "message/external-body")
+	     ("access-type" . "anon-ftp")
+	     (method . mime/decode-message/external-ftp)
+	     ))
+</lisp>
+</memo>
+</defun>
+
+
+<h2> Environment variables
+<node> environment variables
+<p>
+Standard methods of tm-view reference some environment variables.  You
+can specify them to customize.
+
+<vl>
+<dt>TM_TMP_DIR
+<dd>
+Directory for temporary files or extracted files.  If it is omitted,
+<file>/tmp/</file> is used.
+</dd>
+<dt>VIDEO_DITHER
+<dd>
+Dither for mpeg_play.  If it is omitted, `gray' is used.
+</dd>
+<dt>TM_WWW_BROWSER
+<dd>
+WWW browser name.  If it is omitted, `netscape' is used.
+</vl>
+
+
+<h1> raw-article-buffer and preview-buffer
+<node> Two buffers for an article
+<p>
+tm-view managements two buffers, one is for raw message called
+<concept>raw-article-buffer</concept>, another one is to preview for
+user called <concept>preview-buffer</concept>.  major-mode of
+raw-article-buffer is same as major-mode for article of original MUA,
+major-mode of preview-buffer is <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code></a>.
+<p>
+When called <code>mime/viewer-mode</code>, tm-view analyzes
+raw-article-buffer, and sets its result to the variable
+<code>mime::article/content-info</code>.
+<p>
+After that, tm-view create a preview-buffer corresponded to the
+raw-article-buffer.  As this time, tm-view modifies header and body of
+each parts of the message by specified conditions.  Filter program for
+header is called <a
+node="content-header"><concept>header-filter</concept></a>, filter
+program for body is called <a
+node="content-body"><concept>content-filter</concept></a>, and they
+are called <concept>filter</concept>.
+<p>
+When preview-buffer is made, buffer local variable of preview-buffer
+<code>mime::preview/content-list</code> is made to register structure
+of preview-buffer.  tm-view manages message by
+<code>mime::article/content-info</code> in raw-article-buffer and
+<code>mime::preview/content-list</code> in preview-buffer.
+<p>
+<memo title="Notice">
+In this document, I call ``content-type'' as content-type/subtype of
+Content-Type field.
+</memo>
+
+
+<h2> buffer local variables of raw-article-buffer
+<node> raw-article-buffer
+<p>
+<define type="Structure" name="mime::content-info">
+<args> rcnum point-min point-max type parameters encoding children
+<p>
+structure to represent MIME content in raw-article-buffer.  It is
+called by <concept>content-info</concept>.
+<p>
+Please use reference function
+<code>mime::content-info/SLOT-NAME</code> to reference slot of
+content-info.  Their argument is only content-info.
+<p>
+Following is a list of slots of the structure:
+
+<vl>
+<dt>rcnum<dd>``reversed content-number'' (list)
+</dd>
+<dt>point-min<dd>beginning point of region in raw-article-buffer
+</dd>
+<dt>point-max<dd>end point of region in raw-article-buffer
+</dd>
+<dt>type<dd>content-type/sub-type (string or nil)
+</dd>
+<dt>parameters<dd>parameter of Content-Type field (association list)
+</dd>
+<dt>encoding<dd>Content-Transfer-Encoding (string or nil)
+</dd>
+<dt>children<dd>parts included in this part (list of content-infos)
+</dd>
+</vl>
+<p>
+If a part includes other parts in its contents, such as multipart or
+message/rfc822, content-infos of other parts are included in
+<var>children</var>, so content-info become a tree.
+</define>
+
+<defvar name="mime::article/content-info">
+<p>
+result of MIME parsing of raw-article-buffer (content-info)
+</defvar>
+
+<defvar name="mime::article/preview-buffer">
+<p>
+preview-buffer corresponded by this buffer
+</defvar>
+
+<defun name="mime-article/point-content-number">
+<args> point <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-number corresponded by <var>point</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime-article/rcnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-info corresponded by reversed-content-number <var>rcnum</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime-article/cnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-info corresponded by content-number <var>rcnum</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime/flatten-content-info">
+<args> <opts> cinfo
+<p>
+It returns flatten list of content-info from content-info
+<var>cinfo</var> tree.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+
+<h2> Buffer local variables of preview-buffer
+<node> preview-buffer
+<p>
+<defvar name="mime::preview/mother-buffer">
+<p>
+Mother buffer of this preview-buffer.
+</defvar>
+
+<define type="Structure" name="mime::preview-content-info">
+<args> point-min point-max buffer content-info
+<p>
+structure to represent MIME content in preview-buffer.  It is called
+by <concept>preview-content-info</concept>.
+<p>
+Please use reference function
+<code>mime::preview-content-info/SLOT-NAME</code> to reference slot of
+preview-content-info.  Their argument is only preview-content-info.
+<p>
+Following is a list of slots of the structure:
+
+<vl>
+<dt>point-min<dd>beginning point of region in preview-buffer
+</dd>
+<dt> point-max<dd>end point of region in preview-buffer
+</dd>
+<dt>buffer<dd>raw-article-buffer corresponding a part
+</dd>
+<dt>content-info<dd>content-info corresponding a part
+</dd>
+</vl>
+</define>
+
+
+<defvar name="mime::preview/content-list">
+<p>
+List of preview-content-info to represent structure of this
+preview-buffer.
+</defvar>
+
+
+<defvar name="mime::preview/article-buffer">
+<p>
+raw-article-buffer corresponded by this preview-buffer.
+</defvar>
+
+
+<defvar name="mime::preview/original-major-mode">
+<p>
+major-mode of original buffer.
+</defvar>
+
+
+<defvar name="mime::preview/original-window-configuration">
+<p>
+window-configuration just before made this preview-buffer.
+</defvar>
+
+
+<defun name="mime-preview/point-pcinfo">
+<args> point <opts> pcl
+<p>
+In a region of preview-buffer managed by preview-content-info
+<var>pcl</var>, it returns preview-content-info corresponded by
+<var>point</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::preview/content-list</code> is used.
+</defun>
+
+
+<h1> Functions to decode MIME message
+<node> API
+<p>
+tm-view provides some available functions to decode and navigate MIME
+message to each <a file="tm-en" node="MUA">MUA</a>s.
+<p>
+There are 2 kinds of functions, one is for MIME preview, another one
+is to decode RFC 1522 <dref file="tm-en">encoded-word</dref>.
+
+
+<h2> Function to preview MIME message
+<node> API about MIME preview
+<p>
+
+<define type="Command" name="mime/viewer-mode">
+<opts> mother ctl encoding ibuf obuf mother-keymap
+<p>
+Parse <var>ibuf</var> as a MIME message, and create preview-buffer
+into <var>obuf</var> to display to user, then enter <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code></a>.
+<p>
+If <var>ibuf</var> is omitted, current buffer is used.
+<p>
+<var>mother</var> is used to specify original raw-article-buffer.  It
+may be useful when a raw-article-buffer is assembled from
+message/partial messages.
+<p>
+<var>ctl</var> is used to specify <dref file="tm-en">Content-Type
+field</dref> information.  Its format is output format of
+<code>mime/Content-Type</code>.  When <var>ctl</var> is specified,
+tm-view uses it instead of Content-Type field of the
+raw-article-buffer.
+<p>
+<var>encoding</var> is used to specify field-body of
+Content-Transfer-Encoding field.  When is is specified, tm-view uses
+it instead of Content-Type field of the raw-article-buffer.
+<p>
+If <var>mother-keymap</var> is specified, keymap of
+<code>mime/viewer-mode</code> includes it.
+</define>
+
+
+<h2> encoded-word decoder
+<node> encoded-word decoding
+<p>
+tm-view has functions to decode RFC 1522 <dref
+file="tm-en">encoded-word</dref>.
+
+
+<define type="Command" name="mime/decode-message-header">
+<p>
+It decodes encoded-words in message header of current buffer.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+</define>
+
+
+<define type="Command" name="mime-eword/decode-region">
+<args> start end <opts> unfolding must-unfold
+<p>
+It decodes encoded-words in region <var>start</var> to <var>end</var>.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+<p>
+If <var>unfolding</var> is non-nil, it unfolds folded fields.
+<p>
+If <var>must-fold</var> is non-nil and decoded result of an
+encoded-word has folding or raw CR or LF, it unfolds or delete raw CR
+or LF.
+</define>
+
+
+<defun name="mime-eword/decode-string">
+<args> string <opts> must-unfold
+<p>
+It decodes encoded-words in <var>string</var> and returns decoded
+string.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+<p>
+If <var>string</var> is folded, it unfolds <var>string</var> before
+decoding.
+<p>
+If <var>must-fold</var> is non-nil and decoded result of an
+encoded-word has folding or raw CR or LF, it unfolds or delete raw CR
+or LF.
+</defun>
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-view-en.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,1045 @@
+\input texinfo.tex
+@setfilename tm-view-en.info
+@settitle{tm-view 7.77 Reference Manual (English Version)}
+@titlepage
+@title tm-view 7.77 Reference Manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-view 7.77 Reference Manual (English Version)
+
+@ifinfo
+
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+@end ifinfo
+
+@menu
+* Introduction::                What is tm-view?
+* MIME display::                Structure of display in mime/viewer-mode
+* mime/viewer-mode::            Navigation in mime/viewer-mode
+* method::                      Mechanism of decoding
+* Two buffers for an article::  raw-article-buffer and preview-buffer
+* API::                         Functions to decode MIME message
+* Concept Index::               
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Introduction, MIME display, Top, Top
+@chapter What is tm-view?
+
+The tm-view is a general MIME viewer running on GNU Emacs.@refill
+
+tm-view provides the major-mode called @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}) to read MIME message for MUA.  MUA
+(@ref{(tm-en)MUA}) implementer can use it to add MIME function.@refill
+
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each content-type
+(@ref{(tm-en)content-type})s, they are called
+@cindex{method}@strong{method} (@ref{method}).  tm-view calls some
+programs to display each contents and headers in preview buffer, they
+are called @cindex{filter}@strong{filter} (@ref{Two buffers for an
+article}).  Method and filters are tm-view application program.  They
+expand tm-view to treat various kinds of MIME types.
+
+
+@node MIME display, mime/viewer-mode, Introduction, Top
+@chapter Structure of display in mime/viewer-mode
+
+In mime/viewer-mode (@ref{mime/viewer-mode}), following are displayed
+for each parts:@refill
+
+@example
+	[content-button]
+	(content-header)
+	
+	(content-body)
+	(content-separator)
+@end example
+
+You can change design or stop to display if you specify for each
+conditions, such as content-types.@refill
+
+Example:
+
+@example
+From: morioka@@jaist.ac.jp (MORIOKA Tomohiko)
+Subject: Re: Question
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  How to compose MIME message in MIME-Edit mode.
+
+  Press `C-c C-x ?' then help message will be displayed:
+
+C-c C-x C-t	insert a text message.
+C-c C-x TAB	insert a (binary) file.
+C-c C-x C-e	insert a reference to external body.
+C-c C-x C-v	insert a voice message.
+C-c C-x C-y	insert a mail or news message.
+C-c C-x RET	insert a mail message.
+C-c C-x C-s	insert a signature file at end.
+C-c C-x t	insert a new MIME tag.
+C-c C-x a	enclose as multipart/alternative.
+C-c C-x p	enclose as multipart/parallel.
+C-c C-x m	enclose as multipart/mixed.
+C-c C-x d	enclose as multipart/digest.
+C-c C-x s	enclose as PGP signed.
+C-c C-x e	enclose as PGP encrypted.
+C-c C-x C-k	insert PGP public key.
+C-c C-x C-p	preview editing MIME message.
+...
+
+So press `C-c C-x C-i' and specify file name you want to include.
+
+  MIME encoding for binary file is normally Base64.
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  In this way, it is finish a message attaching a picture.
+
+======================== A cup of Russian tea ========================
+============  * not by jam, not by marmalade, by honey *  ============
+============               MORIOKA Tomohiko               ============
+=============== Internet E-mail: <morioka@@jaist.ac.jp> ===============
+@end example
+
+
+
+@menu
+* content-button::              
+* content-header::              
+* content-body::                
+* content-separator::           
+@end menu
+
+@node content-button, content-header, MIME display, MIME display
+@section content-button
+
+content-subject displays abstract for the part.  It is placed in top of
+the part.@refill
+
+In default, it is displayed following design:
+
+@example
+        [1.3 test (text/plain)]
+@end example
+
+
+First number field represents position of a content in the part.  It is
+called @cindex{content-number}@strong{content-number}.  It can be
+considered as the chapter number in the message.@refill
+
+Second string part represents title.  It is created by following:
+
+@enumerate
+@item
+name paramater or x-name parameter in Content-Type field
+(@ref{(tm-en)Content-Type field})
+@item
+Content-Description field (@ref{(tm-en)Content-Description field}) or
+Subject field
+@item
+ filename of uuencode
+@end enumerate
+
+
+If they are not exists, space is displayed.@refill
+
+Third parenthesis part represents content-type/subtype of the part.  If
+it is non-MIME part, @code{nil} is displayed.@refill
+
+Content-button is used like icon when content-header
+(@ref{content-header}) and content-body (@ref{content-body}) are hidden.
+For example:
+
+@example
+        [2  (image/gif)]
+@end example
+
+@noindent
+if you press @kbd{v} key, GIF image is displayed.
+
+If mouse operations are available, you can press content-button by mouse
+button-2 (center button of 3 button-mouse) to play, similarly to press
+@kbd{v} key. (cf. @ref{mime/viewer-mode}) @refill
+
+By the way, it is annoying to display content-button if content-header
+is displayed.  So tm-view provides a mechanism to specify conditions
+to display content-button.
+
+
+@defvar mime-viewer/content-button-ignored-ctype-list
+
+List of content-types.@refill
+
+If content-type of a part is a member of this list, its content-button
+is not displayed.
+@end defvar
+
+
+
+@node content-header, content-body, content-button, MIME display
+@section content-header
+
+A content header displays the header portion of a part in the
+preview-buffer.  However it is annoying to display header for every
+parts, so tm-view provides a mechanism to specify its condition.@refill
+
+When the function @code{mime-viewer/header-visible-p} returns @code{t}
+for reversed-content-number of a part, content-header is
+displayed.@refill
+
+This judge function returns @code{t} when a part is root or content-type
+of its parent is a member of the variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
+
+If you want to change this condition, please redefine it.  Notice that
+it refers variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}, however
+if you redefine function @code{mime-viewer/header-visible-p}, it may not
+work.  So if you want to redefine it, it should be refer variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
+
+When content-header is displayed, content-header are formated by the
+program called by
+@cindex{content-header-filter}@strong{content-header-filter}.
+Content-header-filter is searched from variable
+@code{mime-viewer/content-header-filter-alist}.  Its key is major-mode
+of the raw-article-buffer (@ref{raw-article-buffer}).  If not found,
+function @code{mime-viewer/default-content-header-filter} is
+called.@refill
+
+
+@defvar mime-viewer/childrens-header-showing-Content-Type-list
+
+List of content-types.  If content-type of parent of a part is a member
+of this variable, its content-header is displayed.  Default value is
+@code{'("message/rfc822" "message/news")}.@refill
+
+This variable is referred by the function
+@code{mime-viewer/header-visible-p}.
+@end defvar
+
+
+
+@defun mime-viewer/header-visible-p rcnum cinfo  &optional  ctype
+
+Returns @code{t} if a part which reversed-content-number is @var{rcnum}
+in content-info @var{cinfo} is displayed.@refill
+
+If you know content-type, you can specify by @var{ctype}.
+@end defun
+
+
+
+@defvar mime-viewer/content-header-filter-alist
+
+Association-list whose key is major-mode of a raw-article-buffer, value
+is content-header-filter.
+@end defvar
+
+
+
+@defun mime-viewer/default-content-header-filter
+
+It is called when content-header-filter is not found in variable
+@code{mime-viewer/content-header-filter-alist}.@refill
+
+It refers @code{mime-viewer/ignored-field-regexp}.
+@end defun
+
+
+
+@defvar mime-viewer/ignored-field-list
+
+List of regular expression to represent invisible fields even if
+content-header is displayed.@refill
+
+Variable @code{mime-viewer/ignored-field-regexp} is created from
+it.@refill
+
+Please use function @code{tm:add-fields} or @code{tm:delete-fields} to
+set it.
+@end defvar
+
+
+
+@node content-body, content-separator, content-header, MIME display
+@section content-body
+
+@cindex{content-body}@strong{content-body} represents content of the
+part.@refill
+
+tm-view does not display raw content body.  For example, if a content
+has binary, it is hidden.  If a content has text/enriched, it is
+formated.  Namely content body is hidden or formated.@refill
+
+Function @code{mime-viewer/body-visible-p} is a judge function whether
+content-body of a content is displayed.  If it returns @code{nil},
+content-body is hidden.  In default, it returns non-@code{nil} when
+content-type of a part is a member of variable
+@code{mime-viewer/default-showing-Content-Type-list}.@refill
+
+When content-body of a content is displayed, content-body is formated by
+@cindex{content-filter}@strong{content-filter}.  Content-filter is
+searched from variable @code{mime-viewer/content-filter-alist}.  At this
+time, major-mode of the raw-article-buffer (@ref{raw-article-buffer}) is
+used as the key.
+
+If it is not found, function
+@code{mime-viewer/default-content-filter} is called.
+
+
+@defvar mime-viewer/default-showing-Content-Type-list
+
+List of content-type.  If content-type of a part is a member of this
+variable, its body is displayed.
+@end defvar
+
+
+
+@defun mime-viewer/body-visible-p rcnum cinfo  &optional  ctype
+
+Return non-@code{nil}, if content-type of a part is displayed.
+@var{rcnum} is reversed-content-number of a part.  @var{cinfo} is
+content-info of the message.  If you know content-type of a part, you
+can specify it as argument @var{ctype}.
+@end defun
+
+
+
+@defvar mime-viewer/content-filter-alist
+
+Association-list whose key is major-mode of a raw-article-buffer, value
+is content-filter.
+@end defvar
+
+
+
+@defun mime-viewer/default-content-filter rcnum cinfo ctype params subj
+
+It is called when content-body of a part should be displayed and
+content-filter is not found in
+@code{mime-viewer/content-filter-alist}.@refill
+
+In default, it does nothing.
+@end defun
+
+
+
+@node content-separator,  , content-body, MIME display
+@section content-separator
+
+@cindex{content-separator}@strong{content-separator} is displayed to
+represent boundary of contents.@refill
+
+Content-separator is displayed by function
+@code{mime-viewer/default-content-separator}.  In default, it displays
+line-break when content-header and content-body are not
+displayed.@refill
+
+If you want to change this condition, please redefine this function.
+
+
+@defun mime-viewer/default-content-separator rcnum cinfo ctype params subj
+
+Display content-separator.  @var{cnum} is content-number of a content.
+@var{cinfo} is content-info of the message.  @var{ctype} is content-type
+of a content.  @var{params} is Content-Type field parameters of a
+content.  @var{subj} is subject.@refill
+
+In default, it displays line-break when content-header and content-body
+are not displayed.
+@end defun
+
+
+
+@node mime/viewer-mode, method, MIME display, Top
+@chapter Navigation in mime/viewer-mode
+
+@code{mime/viewer-mode} has following functions:@refill
+
+@table @kbd
+@item @key{u}
+goes to the upper content (returns to the Summary mode if the cursor
+is sitting on the top content (*1))
+
+@item @key{p}
+goes to the previous content
+
+@item @key{n}
+goes to the next content
+
+@item @key{SPC}
+scrolls up
+
+@item @key{M-SPC}
+scrolls down
+
+@item @key{DEL}
+scrolls down
+
+@item @key{RET}
+goes to the next line
+
+@item @key{M-RET}
+goes to the previous line
+
+@item @key{<}
+goes to the beginning of message
+
+@item @key{>}
+goes to the end of message
+
+@item @key{v}
+playbacks a part (*2)
+
+@item @key{e}
+extracts a file from a part (*2)
+
+@item @key{C-c C-p}
+prints a part (*2)
+
+@item @key{f}
+displays X-Face in the message
+
+@item @key{mouse-button-2}
+drives mouse button in preview-buffer.
+
+For content-button, it playbacks a part (*2)@refill
+
+For URL-button, it drives WWW browser@refill
+
+@end table
+
+@noindent
+@strong{[Notice]}
+@quotation
+
+(*1) Not return to the Summary mode unless tm-view has been setup using
+tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.@refill
+
+(*2) Actual playback/extract/print will be performed by a method.
+@end quotation
+
+
+
+@node method, Two buffers for an article, mime/viewer-mode, Top
+@chapter Mechanism of decoding
+
+In @code{mime/viewer-mode}, you can do play (@kbd{v}), extract
+(@kbd{e}), or print (@kbd{C-c C-p}) for each parts.  These operations
+are called @cindex{decoding operation(s) (for a part)}@strong{decoding
+operation(s) (for a part)}.  And kind of decoding operations are called
+@cindex{decoding-mode}@strong{decoding-mode}.@refill
+
+When decoding operation is driven, tm-view calls a procedure matched for
+the condition, such as content-type (@ref{(tm-en)content-type}) of the
+part or its environment.  This procedure is called
+@cindex{method}@strong{method}.@refill
+
+There are two kinds of methods.  One is Emacs Lisp function, called
+@cindex{internal method}@strong{internal method}.  Another one is
+external program, called @cindex{external method}@strong{external
+method}.@refill
+
+Internal method operates in Emacs, so it can do carefully.@refill
+
+External method is called as asynchronous process, so Emacs does not
+wait while method is running.  So it is good for big data, such as
+audio, image or video.
+
+
+@menu
+* decoding-condition::          Setting decoding condition for parts
+* environment variables::       Environment variables
+@end menu
+
+@node decoding-condition, environment variables, method, method
+@section Setting decoding condition for parts
+
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+@code{mime/content-decoding-condition}.@refill
+
+Variable @code{mime/content-decoding-condition} is defined as a list
+with the following syntax:@refill
+
+@lisp
+        (condition_1 condition_2 ...)
+@end lisp
+
+Each condition are association-list with the following syntax:@refill
+
+@lisp
+        ((field-type_1 . value_1)
+         (field-type_2 . value_2)
+         ...)
+@end lisp
+
+For example, if you want to call the external method named tm-plain to
+decode every text/plain (@ref{(tm-en)text/plain}) type parts, you can
+define the condition like:@refill
+
+@lisp
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+@end lisp
+
+This condition definition will match all parts whose content-type
+(@ref{(tm-en)content-type}) are text/plain.  Here is an another
+example:@refill
+
+@lisp
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+         (mode . "play"))
+@end lisp
+
+This will match the part whose type is text/plain and the mode is
+play.@refill
+
+Here is an another example:@refill
+
+@lisp
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+         (mode . "play"))
+@end lisp
+
+This will match all parts which have a mode of play.@refill
+
+The conditions defined in a variable
+@code{mime/content-decoding-condition} are examined from top to
+bottom.  The first matching condition becomes valid and the method
+specified in that condition definition will be executed.
+
+
+@menu
+* method value::                Format of method value
+* Example of decoding-condition::  
+@end menu
+
+@node method value, Example of decoding-condition, decoding-condition, decoding-condition
+@subsection Format of method value
+
+You can specify the method field of the decoding-condition definition in
+two different ways,@refill
+
+@lisp
+        (method . SYMBOL)
+@end lisp
+
+@noindent
+or
+
+@lisp
+        (method  STRING  FLAG  arg1  arg2  ...)
+@end lisp
+
+@noindent
+can be accepted.
+
+When a symbol is specified in the method field, a function whose name is
+SYMBOL will be called as an internal method.@refill
+
+When a list is specified in the method field, it will be called as an
+external method.@refill
+
+The list below shows the meaning of the parameters when the external
+method is specified in the method field.@refill
+
+@table @samp
+@item STRING
+name of an external method
+
+@item FLAG
+If @code{t}, both the content-header and the content-body
+are passed to an external method.
+
+If @code{nil}, only the content-body is passed to an external
+method.@refill
+
+@item ARGUMENTs
+list of arguments passed to an external method
+
+@end table
+
+An argument passed to an external method can be in one of the following
+formats:@refill
+
+@table @samp
+@item STRING
+string itself
+
+@item 'SYMBOL
+value gotten using SYMBOL as a key from decoding-condition
+
+@item 'STRING
+value gotten using STRING as a key from decoding-condition
+
+@end table
+
+@code{'SYMBOL} can be one of the following:@refill
+
+@table @samp
+@item 'file
+name of a file holding the original content
+
+@item 'type
+content-type/sub-type of Content-Type field
+
+@item 'encoding
+field body of Content-Transfer-Encoding field
+
+@item 'mode
+decoding-mode
+
+@item 'name
+name of a file created by decode operation
+
+@end table
+
+
+@code{'STRING} is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+@node Example of decoding-condition,  , method value, decoding-condition
+@subsection Example of decoding-condition
+
+Following is an example of decoding-condition:
+
+@lisp
+(defvar mime/content-decoding-condition
+  '(((type . "text/plain")
+     (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "text/x-latex")
+     (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "audio/basic")
+     (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/gif")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/jpeg")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-xbm")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-pic")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "video/mpeg")`
+     (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "application/octet-stream")
+     (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "message/partial")
+     (method . mime/decode-message/partial-region))
+    ((method "metamail" t
+             "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+    ))
+@end lisp
+
+
+For example, if you want to use metamail to decode any contents,
+
+@lisp
+(setq mime/content-decoding-condition
+      '(
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+       ))
+@end lisp
+
+@noindent
+will work.
+
+Variable @code{mime/content-decoding-condition} provides you of very
+flexible way to define the conditions of decoding.  It can be simple if
+you only need the a few decoding methods, while it can be very
+complicated if you want to use the separate decoding method for each
+type/mode combination.@refill
+
+Following function may be useful to set decoding-condition.  It is a
+function of @file{tl-atype.el}.
+
+
+@defun set-atype symbol alist
+
+Add condition @var{alist} to @var{symbol}.
+
+@noindent
+@strong{[Example]}
+@quotation
+
+@lisp
+(set-atype 'mime/content-decoding-condition
+	   '((type . "message/external-body")
+	     ("access-type" . "anon-ftp")
+	     (method . mime/decode-message/external-ftp)
+	     ))
+@end lisp
+@end quotation
+@end defun
+
+
+
+@node environment variables,  , decoding-condition, method
+@section Environment variables
+
+Standard methods of tm-view reference some environment variables.  You
+can specify them to customize.
+
+@table @var
+@item TM_TMP_DIR
+Directory for temporary files or extracted files.  If it is omitted,
+@file{/tmp/} is used.
+
+@item VIDEO_DITHER
+Dither for mpeg_play.  If it is omitted, `gray' is used.
+
+@item TM_WWW_BROWSER
+WWW browser name.  If it is omitted, `netscape' is used.
+
+@end table
+
+
+
+@node Two buffers for an article, API, method, Top
+@chapter raw-article-buffer and preview-buffer
+
+tm-view managements two buffers, one is for raw message called
+@cindex{raw-article-buffer}@strong{raw-article-buffer}, another one is
+to preview for user called
+@cindex{preview-buffer}@strong{preview-buffer}.  major-mode of
+raw-article-buffer is same as major-mode for article of original MUA,
+major-mode of preview-buffer is @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}).@refill
+
+When called @code{mime/viewer-mode}, tm-view analyzes
+raw-article-buffer, and sets its result to the variable
+@code{mime::article/content-info}.@refill
+
+After that, tm-view create a preview-buffer corresponded to the
+raw-article-buffer.  As this time, tm-view modifies header and body of
+each parts of the message by specified conditions.  Filter program for
+header is called @cindex{header-filter}@strong{header-filter}
+(@ref{content-header}), filter program for body is called
+@cindex{content-filter}@strong{content-filter} (@ref{content-body}), and
+they are called @cindex{filter}@strong{filter}.@refill
+
+When preview-buffer is made, buffer local variable of preview-buffer
+@code{mime::preview/content-list} is made to register structure of
+preview-buffer.  tm-view manages message by
+@code{mime::article/content-info} in raw-article-buffer and
+@code{mime::preview/content-list} in preview-buffer.@refill
+
+@noindent
+@strong{[Notice]}
+@quotation
+In this document, I call ``content-type'' as content-type/subtype of
+Content-Type field.
+@end quotation
+
+
+
+@menu
+* raw-article-buffer::          buffer local variables of raw-article-buffer
+* preview-buffer::              Buffer local variables of preview-buffer
+@end menu
+
+@node raw-article-buffer, preview-buffer, Two buffers for an article, Two buffers for an article
+@section buffer local variables of raw-article-buffer
+
+@deffn{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
+
+structure to represent MIME content in raw-article-buffer.  It is called
+by @cindex{content-info}@strong{content-info}.@refill
+
+Please use reference function @code{mime::content-info/SLOT-NAME} to
+reference slot of content-info.  Their argument is only
+content-info.@refill
+
+Following is a list of slots of the structure:
+
+@table @var
+@item rcnum
+``reversed content-number'' (list)
+
+@item point-min
+beginning point of region in raw-article-buffer
+
+@item point-max
+end point of region in raw-article-buffer
+
+@item type
+content-type/sub-type (string or nil)
+
+@item parameters
+parameter of Content-Type field (association list)
+
+@item encoding
+Content-Transfer-Encoding (string or nil)
+
+@item children
+parts included in this part (list of content-infos)
+
+@end table
+
+If a part includes other parts in its contents, such as multipart or
+message/rfc822, content-infos of other parts are included in
+@var{children}, so content-info become a tree.
+@end deffn
+
+
+@defvar mime::article/content-info
+
+result of MIME parsing of raw-article-buffer (content-info)
+@end defvar
+
+
+@defvar mime::article/preview-buffer
+
+preview-buffer corresponded by this buffer
+@end defvar
+
+
+@defun mime-article/point-content-number point  &optional  cinfo
+
+In a region managed by content-info @var{cinfo}, it returns
+content-number corresponded by @var{point}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime-article/rcnum-to-cinfo rcnum  &optional  cinfo
+
+In a region managed by content-info @var{cinfo}, it returns content-info
+corresponded by reversed-content-number @var{rcnum}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime-article/cnum-to-cinfo rcnum  &optional  cinfo
+
+In a region managed by content-info @var{cinfo}, it returns content-info
+corresponded by content-number @var{rcnum}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime/flatten-content-info  &optional  cinfo
+
+It returns flatten list of content-info from content-info @var{cinfo}
+tree.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+
+@node preview-buffer,  , raw-article-buffer, Two buffers for an article
+@section Buffer local variables of preview-buffer
+
+@defvar mime::preview/mother-buffer
+
+Mother buffer of this preview-buffer.
+@end defvar
+
+
+@deffn{Structure} mime::preview-content-info point-min point-max buffer content-info
+
+structure to represent MIME content in preview-buffer.  It is called by
+@cindex{preview-content-info}@strong{preview-content-info}.@refill
+
+Please use reference function
+@code{mime::preview-content-info/SLOT-NAME} to reference slot of
+preview-content-info.  Their argument is only
+preview-content-info.@refill
+
+Following is a list of slots of the structure:
+
+@table @var
+@item point-min
+beginning point of region in preview-buffer
+
+@item  point-max
+end point of region in preview-buffer
+
+@item buffer
+raw-article-buffer corresponding a part
+
+@item content-info
+content-info corresponding a part
+
+@end table
+@end deffn
+
+
+
+@defvar mime::preview/content-list
+
+List of preview-content-info to represent structure of this
+preview-buffer.
+@end defvar
+
+
+
+@defvar mime::preview/article-buffer
+
+raw-article-buffer corresponded by this preview-buffer.
+@end defvar
+
+
+
+@defvar mime::preview/original-major-mode
+
+major-mode of original buffer.
+@end defvar
+
+
+
+@defvar mime::preview/original-window-configuration
+
+window-configuration just before made this preview-buffer.
+@end defvar
+
+
+
+@defun mime-preview/point-pcinfo point  &optional  pcl
+
+In a region of preview-buffer managed by preview-content-info @var{pcl},
+it returns preview-content-info corresponded by @var{point}.@refill
+
+If @var{cinfo} is omitted, @code{mime::preview/content-list} is used.
+@end defun
+
+
+
+@node API, Concept Index, Two buffers for an article, Top
+@chapter Functions to decode MIME message
+
+tm-view provides some available functions to decode and navigate MIME
+message to each MUA (@ref{(tm-en)MUA})s.@refill
+
+There are 2 kinds of functions, one is for MIME preview, another one is
+to decode RFC 1522 encoded-word (@ref{(tm-en)encoded-word}).
+
+
+@menu
+* API about MIME preview::      Function to preview MIME message
+* encoded-word decoding::       encoded-word decoder
+@end menu
+
+@node API about MIME preview, encoded-word decoding, API, API
+@section Function to preview MIME message
+
+
+@deffn{Command} mime/viewer-mode &optional  mother ctl encoding ibuf obuf mother-keymap
+
+Parse @var{ibuf} as a MIME message, and create preview-buffer into
+@var{obuf} to display to user, then enter @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}).@refill
+
+If @var{ibuf} is omitted, current buffer is used.@refill
+
+@var{mother} is used to specify original raw-article-buffer.  It may be
+useful when a raw-article-buffer is assembled from message/partial
+messages.@refill
+
+@var{ctl} is used to specify Content-Type field
+(@ref{(tm-en)Content-Type field}) information.  Its format is output
+format of @code{mime/Content-Type}.  When @var{ctl} is specified,
+tm-view uses it instead of Content-Type field of the
+raw-article-buffer.@refill
+
+@var{encoding} is used to specify field-body of
+Content-Transfer-Encoding field.  When is is specified, tm-view uses it
+instead of Content-Type field of the raw-article-buffer.@refill
+
+If @var{mother-keymap} is specified, keymap of @code{mime/viewer-mode}
+includes it.
+@end deffn
+
+
+
+@node encoded-word decoding,  , API about MIME preview, API
+@section encoded-word decoder
+
+tm-view has functions to decode RFC 1522 encoded-word
+(@ref{(tm-en)encoded-word}).
+
+
+@deffn{Command} mime/decode-message-header
+
+It decodes encoded-words in message header of current buffer.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.
+@end deffn
+
+
+
+@deffn{Command} mime-eword/decode-region start end  &optional  unfolding must-unfold
+
+It decodes encoded-words in region @var{start} to @var{end}.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
+
+If @var{unfolding} is non-nil, it unfolds folded fields.@refill
+
+If @var{must-fold} is non-nil and decoded result of an encoded-word has
+folding or raw CR or LF, it unfolds or delete raw CR or LF.
+@end deffn
+
+
+
+@defun mime-eword/decode-string string  &optional  must-unfold
+
+It decodes encoded-words in @var{string} and returns decoded
+string.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
+
+If @var{string} is folded, it unfolds @var{string} before
+decoding.@refill
+
+If @var{must-fold} is non-nil and decoded result of an encoded-word has
+folding or raw CR or LF, it unfolds or delete raw CR or LF.
+@end defun
+
+
+
+@node Concept Index, Function Index, API, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-view-ja.sgml	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,963 @@
+<!doctype sinfo system>
+<!-- $Id: tm-view-ja.sgml,v 1.1.1.1 1996/12/21 20:51:39 steve Exp $ -->
+<head>
+<title>tm-view 7.77 Reference Manual$B!JF|K\8lHG!K(B
+<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+<p>
+GNU Emacs $BMQ$N(B MIME Viewer $B$G$"$k(B `tm-view' $B$K$D$$$F@bL@$7$^$9!#(B
+</abstract>
+
+
+<h1> tm-view $B$C$F2?!)(B
+<node> Introduction
+<p>
+tm-view $B$O(B GNU Emacs $B$GF0:n$9$kHFMQE*$J(B MIME viewer $B$G$9!#(B
+<p>
+tm-view $B$O(B <a node="mime/viewer-mode"><code>mime/viewer-mode</code>
+</a> $B$H$$$&(B MIME message $B$r8+$k$?$a$N(B major-mode $B$r(B <a file="tm-ja"
+node="MUA">MUA</a> $B$KBP$7$FDs6!$7$^$9!#(BMUA $B$N@_7W<T$O$3$N(B mode $B$rMxMQ(B
+$B$9$k$3$H$G$=$N(B MUA $B$K(B MIME $B5!G=$rIU2C$9$k$3$H$,$G$-$^$9!#(B
+<p>
+tm-view $B$O(B MIME message $B$r1\Mw$9$k$?$a$N(B user interface $B$N3K$G$"$j!"$=(B
+$B$N>e$G3F(B <dref file="tm-ja">content-type</dref> $B$r07$&$?$a$N(B <a
+node="method"><concept>method</concept></a> $B$H8F$P$l$k%W%m%0%i%`$rF0:n(B
+$B$5$;$^$9!#$^$?!"(BMIME message $B$NI=<($N;EJ}$r7h$a$k(B <a node="Two buffers
+for an article"><concept>filter</concept></a> $B$H8F$P$l$k%W%m%0%i%`$r5/(B
+$BF0;~$K8F$S=P$7$^$9!#(Bmethod $B$H(B filter $B$r(B tm-view $B$KAH$_9~$`;v$K$h$C$F!"(B
+<code>mime/viewer-mode</code> $B$G$5$^$6$^$J(B MIME content-type $B$r07$&;v(B
+$B$,$G$-$^$9!#(B
+
+
+<h1> mime/viewer-mode $B$N2hLL9=@.(B
+<node> MIME display
+<p>
+<a node="mime/viewer-mode">mime/viewer-mode</a> $B$G$O3F(B part $B$KBP$7$F(B
+<p>
+<verb>
+	[content-button]
+	(content-header)
+	
+	(content-body)
+	(content-separator)
+</verb>
+<p>
+<noindent>
+$B$H$$$&>pJs$rI=<($7$^$9!#$3$l$i$O>r7o$K=>$C$F(B design $B$rJQ99$7$?$j!"I=<((B
+$B$rM^@)$9$k$3$H$,$G$-$^$9!#(B
+<p>
+$B0J2<$K!"I=<(Nc$r<($7$^$9!#(B
+
+
+<verb>
+From: morioka@jaist.ac.jp ($B<i2,(B $BCNI'(B / MORIOKA Tomohiko)
+Subject: Re: $B<ALd!)(B
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  MIME-Edit mode $B$K$*$1$k!"(BMIME message $B$N:n$jJ}!#(B
+
+  C-c C-x ? $B$r2!$9$H(B help $B$,=P$F$/$k!#(B
+
+C-c C-x C-t	insert a text message.
+C-c C-x TAB	insert a (binary) file.
+C-c C-x C-e	insert a reference to external body.
+C-c C-x C-v	insert a voice message.
+C-c C-x C-y	insert a mail or news message.
+C-c C-x RET	insert a mail message.
+C-c C-x C-s	insert a signature file at end.
+C-c C-x t	insert a new MIME tag.
+C-c C-x a	enclose as multipart/alternative.
+C-c C-x p	enclose as multipart/parallel.
+C-c C-x m	enclose as multipart/mixed.
+C-c C-x d	enclose as multipart/digest.
+C-c C-x s	enclose as PGP signed.
+C-c C-x e	enclose as PGP encrypted.
+C-c C-x C-k	insert PGP public key.
+C-c C-x C-p	preview editing MIME message.
+...
+
+$B$C$FLu$G!"(BC-c C-x C-i $B$r2!$7$F!"A^F~$7$?$$(B binary file $B$r;XDj$7$^$9!#(B
+
+  binary file $B$N(B MIME encoding $B$K$O!"IaDL!"(BBase64 $B$r;XDj$7$^$9!#(B
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  $B$3$s$JIw$K!"3(F~$j(B message $B$N$G$->e$,$j!#(B
+
+$B".".".".".".".".".".".(B $B%m%7%"%s!&%F%#!<$r0lGU!#(B $B".".".".".".".".".".".(B
+$B".".".".".(B  $B!y(B $B%8%c%`$G$O$J$/%^!<%^%l!<%I$G$b$J$/K*L*$G(B $B!y(B  $B".".".".".(B
+$B".".".".".(B         $B'.'0'2$$'0','!(B  $B'4'0'.'0'7'*','0(B         $B".".".".".(B
+$B".".".".".".".(B  Internet E-mail: <morioka@jaist.ac.jp>  $B".".".".".".".(B
+</verb>
+
+
+<h2> content-button
+<node> content-button
+<p>
+<concept>content-button</concept> $B$O(B part $B$N@hF,$K$"$C$F!"$=$N(B part $B$K(B
+$B4X$9$kBg$^$+$J>pJs$rI=<($9$kItJ,$G$9!#(B
+<p>
+$BI8=`$G$O(B
+
+<verb>
+        [1.3 test (text/plain)]
+</verb>
+
+<noindent>
+$B$N$h$&$J46$8$KI=<($5$l$^$9!#(B
+<p>
+$B:G=i$N?t;z$O(B message $BCf$N$3$N(B part $B$N0LCV$r@aHV9f$N$h$&$KI=$7$?$b$N$G!"(B
+<concept>content-number</concept> $B$H8F$S$^$9!#(B
+<p>
+$B#2HVL\$NJ8;zNs$OI=Bj$rI=$7$^$9!#$3$N>pJs$O!"(B
+
+<ol>
+<li><dref file="tm-ja">Content-Type field</dref> $B$N(B name paramater $B$b(B
+$B$7$/$O(B x-name parameter $B$K=q$+$l$?(B file $BL>(B
+</li>
+<li><dref file="tm-ja">Content-Description field</dref> $B$b$7$/$O(B 
+Subject field $B$K=q$+$l$?I=Bj(B
+</li>
+<li> uuencode $B$N>l9g$N(B file $BL>(B
+</ol>
+
+<noindent>
+$B$+$i:n$j$^$9!#$I$l$bB8:_$7$J$$>l9g$O6uGr$,I=<($5$l$^$9!#(B
+<p>
+$B#3HVL\$N3g8L$NCf$N>pJs$O$=$N(B part $B$N(B content-type/subtype $B$rI=$7$^$9!#(B
+$BHs(B MIME part $B$N>l9g!"(B<code>nil</code> $B$,I=<($5$l$^$9!#(B
+<p>
+$B$3$N(B content-button $B$O(B <a node="content-header">content-header</a>, <a
+node="content-body">content-body</a> $B$rI=<($7$J$$>l9g!"(Bicon $B$N$h$&$JLr(B
+$B3d$r2L$?$7$^$9!#Nc$($P!"(B
+
+<verb>
+        [2  (image/gif)]
+</verb>
+
+<noindent>
+$B$N>e$G(B <kbd>v</kbd> $B$r2!$;$P$3$3$KF~$C$F$$$k3($,I=<($5$l$^$9!#(B
+<p>
+$B$^$?!"(Bmouse $BA`:n$,2DG=$J>l9g!"(Bcontent-button $B$rBh#2%\%?%s!J(B3 button
+mouse $B$N>l9g!"Cf1{$N%\%?%s!K$G2!$;$P!"F1MM$K$=$N3($,I=<($5$l$^$9!#(B
+(<ref node="mime/viewer-mode">)
+<p>
+$B$H$3$m$G!"(Bcontent-button $B$rI=<($9$k$N$O]5F+$7$$>l9g$,$"$k$N$G!"(B
+content-button $B$NI=<($r>r7o$K$h$C$FM^@)$9$k$3$H$,$G$-$^$9!#(B
+
+
+<defvar name="mime-viewer/content-button-ignored-ctype-list">
+<p>
+content-button $B$rI=<($7$J$$(B content-type $B$rMWAG$H$9$k(B list. 
+</defvar>
+
+
+<h2> content-header
+<node> content-header
+<p>
+<concept>content-header</concept> $B$O$"$k(B part $B$N(B header $B$rI=<($9$kItJ,(B
+$B$G$9!#$7$+$7!"A4$F$N(B part $B$N(B content-header $B$rI=<($9$k$N$O]5F+$7$$$N$G!"(B
+$B0J2<$N$h$&$J(B mechanism $B$K$h$C$FI=<($9$k$+$7$J$$$+$r7h$a$F$$$^$9!#(B
+<p>
+$B$"$k(B part $B$N(B reversed-content-number $B$r4X?t(B 
+<code>mime-viewer/header-visible-p</code> $B$KM?$($?;~$NJV$jCM$,(B 
+<code>t</code> $B$K$J$k>l9g!"$=$N(B part $B$N(B content-header $B$,I=<($5$l$^$9!#(B
+<p>
+$B$3$NH=Dj4X?t$O!"0lHV>e$N(B part $B$G$J$/!"$=$N(B part $B$N?F$N(B <dref
+file="tm-ja">content-type</dref> $B$,JQ?t(B 
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code> $B$G(B
+$B;XDj$5$l$F$$$k>l9g$K(B <code>t</code> $B$rJV$7$^$9!#(B
+<p>
+$B$3$N>r7o$rJQ$($?$$>l9g$O!"$3$N4X?t$r:FDj5A$7$F2<$5$$!#C"$7!"I8=`$G$O!"(B
+$BJQ?t(B 
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code> $B$r(B
+$B;2>H$7$^$9$,!":FDj5A$7$?>l9g!"$3$NJQ?t$NM-8z@-$OJ]>Z$5$l$J$$$N$GCm0U$7(B
+$B$F2<$5$$!#(B
+<p>
+content-header $B$,I=<($5$l$k>l9g!"(Bcontent-header $B$O(B 
+<concept>content-header-filter</concept> $B$H8F$P$l$k(B program $B$K$h$C$F@0(B
+$B7A$5$l$^$9!#(Bcontent-header-filter $B$O(B <a
+node="raw-article-buffer">raw-article-buffer</a> $B$N(B major-mode $B$r(B key 
+$B$H$7$FJQ?t(B <code>mime-viewer/content-header-filter-alist</code> $B$+$iC5(B
+$B$5$l$^$9!#$b$7!"(Bcontent-header-filter $B$,8+$D$+$i$J$+$C$?>l9g!"4X?t(B
+<code>mime-viewer/default-content-header-filter</code> $B$,8F$P$l$^$9!#(B
+<p>
+
+<defvar name="mime-viewer/childrens-header-showing-Content-Type-list">
+<p>
+$B$"$k(B part $B$N;R$KEv$?$k(B content $B$N(B content-header $B$rI=<($9$Y$-(B 
+Content-Type $B$r<}$a$?(B list. $B4{DjCM$O(B <code>"message/rfc822"</code> $B$G(B
+$B$"$k!#(B
+<p>
+$B$3$NJQ?t$O4X?t(B <code>mime-viewer/header-visible-p</code> $B$K$h$C$F;2>H(B
+$B$5$l$k!#(B
+</defvar>
+
+
+<defun name="mime-viewer/header-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+content-info <var>cinfo</var> $BCf$N(B reversed-content-number $B$,(B 
+<var>rcnum</var> $B$G$"$k(B part $B$N(B header $B$,I=<($5$l$k>l9g!"(B
+<code>t</code> $B$rJV$9!#$=$N(B part $B$N(B content-type $B$,$"$i$+$8$a$o$+$C$F(B
+$B$$$k>l9g!"(B<var>ctype</var> $B$K0z?t$H$7$FEO$9$3$H$,$G$-$k!#(B
+</defun>
+
+
+<defvar name="mime-viewer/content-header-filter-alist">
+<p>
+raw-article-buffer $B$N(B major-mode $B$r(B key $B$H$7$?O"A[%j%9%H$G!"CMIt$K$O(B 
+content-header-filter $B$,F~$C$F$$$k!#(B
+</defvar>
+
+
+<defun name="mime-viewer/default-content-header-filter">
+<p>
+$B$"$k(B part $B$N(B content-header $B$rI=<($9$Y$-;~!"JQ?t(B 
+<code>mime-viewer/content-header-filter-alist</code> $B$NCf$K(B 
+content-header-filter $B$,8+$D$+$i$J$+$C$?>l9g$K8F$S=P$5$l$k!#(B
+<p>
+$BJQ?t(B <code>mime-viewer/ignored-field-regexp</code> $B$r;2>H$9$k!#(B
+</defun>
+
+
+<defvar name="mime-viewer/ignored-field-list">
+<p>
+content-header $B$rI=<($9$k;~$K!"I=<($7$J$$(B field $B$r;XDj$9$k!#(B
+<p>
+$B@55,I=8=$N(B list $B$K$J$C$F$*$j!"$3$NCM$r85$KJQ?t(B 
+<code>mime-viewer/ignored-field-regexp</code> $B$,:n$i$l$k!#(B
+<p>
+$B$3$NJQ?t$OD>@\A`:n$;$:!"4X?t(B <code>tm:add-fields</code> $B$d(B 
+<code>tm:delete-fields</code> $B$r;H$C$FA`:n$9$k!#(B
+</defvar>
+
+
+<h2> content-body
+<node> content-body
+<p>
+<concept>content-body</concept> $B$O(B part $B$NFbMF$rI=<($9$kItJ,$G$9!#(B
+<p>
+$BA4$F$N(B part $B$NFbMF$rI=<($G$-$k$H$O8B$i$J$$$7!"$^$?!"I=<($7$?$/$J$$(B 
+part $B$bB8:_$9$k$N$G!"0J2<$N$h$&$JJ}K!$GI=<($9$k$+$7$J$$$+$r7h$a$F$$$^(B
+$B$9!#(B
+<p>
+$B$"$k(B part $B$N(B content-body $B$rI=<($9$k$+$I$&$+$O!"4X?t(B 
+<code>mime-viewer/body-visible-p</code> $B$,(B <code>t</code> $B$K$J$k$+$I$&(B
+$B$+$G7h$^$j$^$9!#I8=`$G$O!"$"$k(B part $B$N(B content-type $B$,JQ?t(B 
+<code>mime-viewer/default-showing-Content-Type-list</code> $B$K@_Dj$5$l(B
+$B$F$$$k;~$KI=<($5$l$^$9!#(B
+<p>
+$B$"$k(B part $B$N(B content-body $B$,I=<($5$l$k;~!"(Bpreview buffer $B$K$O(B part $B$N(B
+$BFbMF$r(B <concept>content-filter</concept> $B$H8F$P$l$k(B program $B$K$h$C$F@0(B
+$B7A$5$l$?$b$N$,I=<($5$l$^$9!#8F$P$l$k(B content-filter $B$O(B <a
+node="raw-article-buffer">raw-article-buffer</a> $B$N(B major-mode $B$r(B key 
+$B$H$7$FJQ?t(B <code>mime-viewer/content-filter-alist</code> $B$+$iC5$5$l$^(B
+$B$9!#$b$7!"$3$NJQ?t$KEPO?$5$l$F$$$J$+$C$?>l9g!"4X?t(B 
+<code>mime-viewer/default-content-filter</code> $B$,8F$P$l$^$9!#(B
+
+
+<defvar name="mime-viewer/default-showing-Content-Type-list">
+<p>
+content-body $B$rI=<($9$Y$-(B content-type $B$rMWAG$H$9$k(B list.
+</defvar>
+
+
+<defun name="mime-viewer/body-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+reversed-content-number $B$,(B <var>rcnum</var> $B$G$"$k(B part $B$,I=<($5$l$k>l(B
+$B9g!"(B<code>t</code> $B$rJV$9!#$=$N(B part $B$N(B content-type $B$,$"$i$+$8$a$o$+$C(B
+$B$F$$$k>l9g!"(B<var>ctype</var> $B$K0z?t$H$7$FEO$9$3$H$,$G$-$k!#(B
+</defun>
+
+
+<defvar name="mime-viewer/content-filter-alist">
+<p>
+raw-article-buffer $B$N(B major-mode $B$r(B key $B$H$7$?O"A[%j%9%H$G!"CMIt$K$O(B 
+content-filter $B$,F~$C$F$$$k!#(B
+</defvar>
+
+
+<defun name="mime-viewer/default-content-filter">
+<args> rcnum cinfo ctype params subj
+<p>
+$B$"$k(B part $B$N(B content-body $B$rI=<($9$Y$-;~!"JQ?t(B 
+<code>mime-viewer/content-filter-alist</code> $B$NCf$K(B content-filter $B$,(B
+$B8+$D$+$i$J$+$C$?>l9g$K8F$S=P$5$l$k!#(B
+<p>
+$BI8=`$G$O2?$b$7$J$$!#(B
+</defun>
+
+
+
+<h2> content-separator
+<node> content-separator
+<p>
+<concept>content-separator</concept> $B$O(B part $B$N0lHV:G8e$K(B part $B4V$N6-(B
+$BL\$rL@$i$+$K$9$k$?$a$KI=<($5$l$^$9!#(B
+<p>
+content-separator $B$O4X?t(B 
+<code>mime-viewer/default-content-separator</code>$B$K$h$C$FI=<($5$l$^$9!#(B
+$BI8=`$G$O!"(Bcontent-header $B$b(B content-body $B$bI=<($5$l$J$$>l9g$N$_!"2~9T(B
+$B$rI=<($7$^$9!#(B
+<p>
+content-separator $B$N@_Dj$rJQ99$7$?$$>l9g$O!"$3$N4X?t$r:FDj5A$7$F2<$5$$!#(B
+<p>
+
+<defun name="mime-viewer/default-content-separator">
+<args> rcnum cinfo ctype params subj
+<p>
+content-number $B$,(B <var>cnum</var> $B$G$"$k(B part $B$N(B content-separator $B$r(B
+$BI=<($9$k!#I8=`$G$O!"(Bcontent-header $B$b(B content-body $B$bI=<($5$l$J$$>l9g(B
+$B$N$_!"2~9T$rI=<($9$k!#(B
+</defun>
+
+
+<h1> mime/viewer-mode $B$G$NA`:n(B
+<node> mime/viewer-mode
+<p>
+mime/viewer-mode $B$K$O0J2<$N5!G=$,$"$j$^$9!#(B
+<p>
+<kl>
+<kt>u
+<kd>
+$B>e$N(B part $B$KLa$k!J(Bmessage $B$N0lHV>e$N(B part $B$G$3$l$r9T$J$&$H(B Summary
+mode $B$KLa$k(B (*1)$B!K(B
+</kd>
+<kt>p<kd>$BA0$N(B part $B$K0\F0$9$k(B
+</kd>
+<kt>n<kd>$B<!$N(B part $B$K0\F0$9$k(B
+</kd>
+<kt>SPC<kd>scroll up $B$9$k(B
+</kd>
+<kt>M-SPC<kd>scroll down $B$9$k(B
+</kd>
+<kt>DEL<kd>scroll down $B$9$k(B
+</kd>
+<kt>RET<kd>$B<!$N9T$K0\F0$9$k(B
+</kd>
+<kt>M-RET<kd>$BA0$N9T$K0\F0$9$k(B
+</kd>
+<kt>M-RET<kd>$BA0$N9T$K0\F0$9$k(B
+</kd>
+<kt>&lt;<kd>message $B$N@hF,$K0\F0$9$k(B
+</kd>
+<kt>&gt;<kd>message $B$NKvHx$K0\F0$9$k(B
+</kd>
+<kt>v<kd>part $B$r:F@8$9$k(B (*2)
+</kd>
+<kt>e<kd>part $B$+$i(B file $B$r<h$j=P$9(B (*2)
+</kd>
+<kt>C-c C-p<kd>part $B$r0u:~$9$k(B (*2)
+</kd>
+<kt>f<kd>message $BCf$N(B X-Face $B$rI=<($9$k(B
+</kd>
+<kt>mouse-button-2
+<kd>
+preview-buffer $BCf$N(B mouse button $B$r5/F0$9$k(B
+<p>
+content-button $B$r2!$;$P!"$=$N(B part $B$,:F@8$5$l$k(B(*2)
+<p>
+URL-button $B$r2!$;$P!"$=$N(B WWW browser $B$,5/F0$5$l$k(B
+</kd>
+</kl>
+<p>
+<memo title="$BCm0U(B">
+<p>
+(*1) tm-MUA $B$G(B tm-view $B$N@_Dj$r$7$F$$$J$$>l9g!"(BSummary mode $B$K$OLa$j$^(B
+$B$;$s!#(B
+<p>
+(*2) $B<B:]$NF0:n$OBP1~$9$k(B method $B$K0M$j$^$9!#(B
+</memo>
+
+
+<h1> $B:F@8=hM}$N<B8=(B
+<node> method
+<p>
+<code>mime/viewer-mode</code> $B$G$O!"3F(B part $B$KBP$7$F!"(Bplay
+(<kbd>v</kbd>), extract (<kbd>e</kbd>), print (<kbd>C-c C-p</kbd>) $B$H(B
+$B$$$&A`:n$r9T$J$&$3$H$,$G$-$^$9!#$3$&$7$?A`:n$N$3$H$r!X!J(Bpart $B$KBP$9$k!K(B
+decode $BA`:n!Y$H8F$V$3$H$K$7$^$9!#$^$?!"(Bplay, extract, print $B$H$$$&(B 
+decode $BA`:n$N<oN`$N$3$H$r(B <concept>decoding-mode</concept> $B$H8F$V$3$H(B
+$B$K$7$^$9!#(B
+<p>
+decode $BA`:n$,9T$J$o$l$?;~!"$=$N(B part $B$N(B <dref
+file="tm-ja">content-type</dref> $B$J$I$N>r7o$d$=$N>l$N4D6-$K1~$8$F<B:](B
+$B$K$=$NA`:n$r<B9T$9$k<jB3$-$,8F$P$l$^$9!#$3$N<jB3$-$N$3$H$r(B 
+<concept>method</concept> $B$H8F$S$^$9!#(B
+<p>
+method $B$K$O!"(BEmacs Lisp $B$G=q$+$l$?(B <concept>$BFbIt(B method</concept> $B$H!"(B
+$B30It(B program $B$G<B8=$5$l$?(B <concept>$B30It(B method</concept> $B$,$"$j$^$9!#(B
+$BFbIt(B method $B$O(B Emacs $B$N5!G=$r;H$C$F$-$a:Y$+$$=hM}$r9T$J$&$3$H$,$G$-$^(B
+$B$9!#30It(B method $B$OHsF14|%W%m%;%98F$S=P$7$r;H$C$F<B8=$5$l$F$$$k$N$G!"<B(B
+$B9TCfBT$?$5$l$:$K$9$_$^$9!#$3$N$?$a!"@E;_2h$dF02h$J$I$N5pBg$J(B data $B$r:F(B
+$B@8$9$k$N$KNI$$$G$7$g$&!#(B
+
+
+<h2> part $B$N:F@8$K4X$9$k>r7o$N@_Dj(B
+<node> decoding-condition
+<p>
+tm-view $B$O(B decode $BA`:n$,9T$J$o$l$k$H!"JQ?t(B 
+<code>mime/content-decoding-condition</code> $B$+$i$=$N;~$N>r7o$K9gCW$7(B
+$B$?(B method $B$rA\$7=P$7$F!"$=$l$r8F$S=P$7$^$9!#(B
+<p>
+$BJQ?t(B <code>mime/content-decoding-condition</code> $B$O(B
+<p>
+<lisp>
+        ($B>r7o(B1 $B>r7o(B2 ...)
+</lisp>
+<p>
+<noindent>
+$B$H$$$&7A$r$7$?(B list $B$G!"3F>r7o$O(B
+<p>
+<lisp>
+        ((field-type_1 . value_1)
+         (field-type_2 . value_2)
+         ...)
+</lisp>
+<p>
+<noindent>
+$B$H$$$&7A$NO"A[(B list $B$K$J$C$F$$$^$9!#(B
+<p>
+$BNc$($P!"(B<dref file="tm-ja">text/plain</dref> $B$N;~!"(Btm-plain $B$r5/F0$9$k(B
+$B;~!"(B
+<p>
+<lisp>
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+</lisp>
+<p>
+<noindent>
+$B$H$$$&>r7o$r=q$-$^$9!#$3$N(B method $B$N(B value $BIt$N=q<0$K$D$$$F$O8e$G>\$7(B
+$B$/=R$Y$^$9!#(B
+<p>
+$B$3$N>r7o$O(B <dref file="tm-ja">content-type</dref> $B$,(B text/plain $B$G$"$k(B 
+part $B$J$iA4$F$N(B decoding-mode $B$GM-8z$G$9!#$7$+$7!"(B
+<p>
+<lisp>
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+         (mode . "play"))
+</lisp>
+<p>
+<noindent>
+$B$J$i!"(Bplay mode $B$N;~$7$+M-8z$K$J$j$^$;$s!#(B
+<p>
+$B5U$K!"(B
+<p>
+<lisp>
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+         (mode . "play"))
+</lisp>
+<p>
+<noindent>
+$B$J$i!"A4$F$N(B content-type $B$N(B play mode $B$GM-8z$K$J$j$^$9!#(B
+<p>
+$B$3$&$7$F3F>r7o$rA0$+$i8+$F9T$-!":G=i$KM-8z$K$J$C$?>r7o$,<B9T$5$l$^$9!#(B
+
+
+<h3> method $B$NCMIt$N=q<0(B
+<node> method value
+<p>
+decode-condition $B$N(B method field $B$O(B
+<p>
+<lisp>
+        (method . SYMBOL)
+</lisp>
+<p>
+<noindent>
+$B$+(B
+<p>
+<lisp>
+        (method  $BJ8;zNs(B  FLAG  $B0z?t(B1  $B0z?t(B2  ...)
+</lisp>
+<p>
+<noindent>
+$B$H$$$&7A$r$7$F$$$^$9!#(B
+<p>
+$BA0<T$OFbIt(B method $B$r;XDj$9$k$?$a$N7A<0$G!"(Bdecode $BA`:n$,9T$J$o$l$?;~!"(B
+SYMBOL $B$H$$$&4X?t$,4X?t8F$S=P$7$K$h$C$FFbIt(B method $B$H$7$F8F$S=P$5$l$^(B
+$B$9!#(B
+<p>
+$B8e<T$O30It(B method $B$r;XDj$9$k$?$a$N7A<0$G!"(Bdecode $BA`:n$,9T$J$o$l$?;~!"(B
+$BJ8;zNs$G;XDj$5$l$?30It(B program $B$,HsF14|%W%m%;%98F$S=P$7$K$h$C$F30It(B 
+method $B$H$7$F8F$S=P$5$l$^$9!#(B
+<p>
+$B30It(B method $B$r;XDj$9$k>l9g$N(B method field $B$N=q<0$O0J2<$NDL$j$G$9!#(B
+<p>
+<dl>
+<dt>$BJ8;zNs(B
+<dd>$B30It(B method $B$NL>A0(B
+</dd>
+<dt>FLAG
+<dd><code>t</code> $B$J$i(B content-header $B$b30It(B method $B$KEO$9!#(B
+<p>
+<code>nil</code> $B$J$i(B content-body $B$N$_$rEO$9!#(B
+</dd>
+<dt>$B0z?tNs(B
+<dd>$B30It(B method $B$N0z?t(B
+</dd>
+</dl>
+<p>
+$B$^$?!"30It(B method $B$N0z?t$O<!$N$h$&$J7A<0$G=q$-$^$9!#(B
+<p>
+<dl>
+<dt>$BJ8;zNs(B
+<dd>$B$=$NJ8;zNs$rEO$9(B
+</dd>
+<dt>'SYMBOL
+<dd>SYMBOL $B$r(B key $B$H$7$?(B decoding-condition $B$NCM$rEO$9(B
+</dd>
+<dt>'$BJ8;zNs(B
+<dd>$BJ8;zNs$r(B key $B$H$7$?(B decoding-condition $B$NCM$rEO$9(B
+</dd>
+</dl>
+<p>
+'SYMBOL $B$G;XDj$G$-$k$b$N$K$O!"(B
+<p>
+<dl>
+<dt>'file
+<dd>part $B$N>pJs$rEO$9$?$a$N(B file $BL>(B
+</dd>
+<dt>'type
+<dd>Content-Type field $B$N(B content-type/subtype
+</dd>
+<dt>'encoding
+<dd>Content-Transfer-Encoding field $B$N(B field body
+</dd>
+<dt>'mode
+<dd>decoding-mode
+</dd>
+<dt>'name
+<dd>file $B$KMn$9>l9g$N(B file $BL>(B
+</dd>
+</dl>
+
+<noindent>
+$B$J$I$,$"$j!"(B<code>'$BJ8;zNs(B</code> $B$G$O(B Content-Type field $B$N(B parameter 
+$B$NCM$,;XDj$G$-$^$9!#(B
+
+
+<h3> decoding-condition $B$NNc(B
+<node> Example of decoding-condition
+<p>
+$B0J2<$K(B decoding-condition $B$N@_DjNc$r<($7$^$9!#(B
+
+<lisp>
+(defvar mime/content-decoding-condition
+  '(((type . "text/plain")
+     (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "text/x-latex")
+     (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "audio/basic")
+     (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/gif")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/jpeg")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-xbm")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-pic")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "video/mpeg")`
+     (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "application/octet-stream")
+     (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "message/partial")
+     (method . mime/decode-message/partial-region))
+    ((method "metamail" t
+             "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+    ))
+</lisp>
+
+<p>
+$BNc$($P!"!VA4It(B metamail $B;H$&$s$d!W$H$$$&>l9g!"(B
+
+<lisp>
+(setq mime/content-decoding-condition
+      '(
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+       ))
+</lisp>
+
+<noindent>
+$B$H$9$l$P(B OK $B$G$9!#(B
+<p>
+$B9)IW$9$l$P!"$+$J$jJ#;($J>r7o$,=q$1$k$G$7$g$&!#(B
+<p>
+$B0J2<$K!"(Bdecoding-condition $B$r@_Dj$9$k$?$a$NM-MQ$J4X?t$r>R2p$7$^$9!#(B
+
+
+<defun name="set-atype">
+<args> symbol alist
+<p>
+<var>symbol</var> $B$K>r7o(B <var>alist</var> $B$rDI2C$7$^$9!#(B
+
+<memo title="$BNc(B">
+<p>
+<lisp>
+(set-atype 'mime/content-decoding-condition
+	   '((type . "message/external-body")
+	     ("access-type" . "anon-ftp")
+	     (method . mime/decode-message/external-ftp)
+	     ))
+</lisp>
+</memo>
+</defun>
+
+
+<h2> $B4D6-JQ?t(B
+<node> environment variables
+<p>
+$B0J2<$K(B tm-view $B$NI8=`(B method $B$,;2>H$9$k4D6-JQ?t$r<($7$^$9!#(B
+
+<vl>
+<dt>TM_TMP_DIR
+<dd>
+$B0l;~E*$K:n@.$5$l$k(B file $B$d(B file $B=PNO$9$k>l9g$N(B default $B$N=PNO@h$H$7$F(B
+$BMQ$$$i$l$k(B directory $B$r;XDj$9$k!#>JN,$5$l$?>l9g!"(B<file>/tmp/</file> $B$,(B
+$BMQ$$$i$l$k!#(B
+</dd>
+<dt>VIDEO_DITHER
+<dd>
+mpeg_play $B$G$N(B dither $B$N$+$1J}$r;XDj$9$k!#4{DjCM$O(B `gray'.
+</dd>
+<dt>TM_WWW_BROWSER
+<dd>
+WWW browser $B$r;XDj$9$k!#4{DjCM$O(B `netscape'.
+</vl>
+
+
+<h1> raw-article-buffer $B$H(B preview-buffer
+<node> Two buffers for an article
+<p>
+tm-view $B$O!"(BMIME $B=hM}$r9T$J$&A0$N@8$N(B message $B$,F~$C$F$$$k(B 
+<concept>raw-article-buffer</concept> $B$H$=$NFbMF$r(B user $B$K4J7i$KI=<($7!"(B
+user $B$,A`:n$9$k$?$a$N(B <concept>preview-buffer</concept> $B$H$$$&#2$D$N(B 
+buffer $B$r4IM}$7$^$9!#(Braw-article-buffer $B$N(B major-mode $B$O$b$H$b$H$N(B MUA 
+$B$N(B article $BI=<(MQ$N(B major-mode $B$G$"$j!"(Bpreview-buffer $B$N(B major-mode $B$O(B 
+<a node="mime/viewer-mode"><code>mime/viewer-mode</code></a> $B$H$J$j$^(B
+$B$9!#(B
+<p>
+<code>mime/viewer-mode</code> $B$r<B9T$9$k$H!"(Btm-view $B$O$^$:(B 
+raw-article-buffer $B$NFbMF$r2r@O$7!"$=$N(B message $B$N9=B$$r(B 
+raw-article-buffer $B$N(B buffer local $BJQ?t(B 
+<code>mime::article/content-info</code> $B$K5-O?$7$^$9!#(B
+<p>
+$B<!$K!"$3$N7k2L$r85$K(B raw-article-buffer $B$KBP1~$9$k(B preview-buffer $B$r:n(B
+$B$j$^$9!#$3$N:]!"(Bcontent-type $B$K1~$8$F!"(Bpart $BC10L$G(B header $B$d(B body $B$r2C(B
+$B9)$9$k$3$H$,$G$-$^$9!#$3$N(B header $B$r2C9)$9$k%W%m%0%i%`$r(B <a
+node="content-header"><concept>header-filter</concept></a>, body $B$r2C(B
+$B9)$9$k%W%m%0%i%`$r(B <a
+node="content-body"><concept>content-filter</concept></a> $B$H8F$S!"$3$l(B
+$B$i$rAm>N$7$F(B <concept>filter</concept> $B$H8F$S$^$9!#(B
+<p>
+preview-buffer $B$r:n@.$9$k;~$K!"(Bmessage $B$NI=<(>e$N9=B$$r5-O?$7$?(B 
+preview-buffer $B$N(B buffer local $BJQ?t(B 
+<code>mime::preview/content-list</code> $B$,:n$i$l$^$9!#(Btm-view $B$O(B 
+raw-article-buffer $B>e$N(B <code>mime::article/content-info</code> $B$H(B 
+preview-buffer $B>e$N(B <code>mime::preview/content-list</code> $B$rMQ$$$F(B 
+message $B$r4IM}$7$^$9!#(B
+<p>
+<memo title="$BCm0U(B">
+$B$3$N@bL@=q$G$O!"(BContent-Type field $B$N(B content-type/subtype $B$N$3$H$r>N(B
+$B$7$F(B ``content-type'' $B$H8F$S$^$9!#(B
+</memo>
+
+
+<h2> raw-article-buffer $B$N(B buffer local $BJQ?t(B
+<node> raw-article-buffer
+<p>
+<define type="Structure" name="mime::content-info">
+<args> rcnum point-min point-max type parameters encoding children
+<p>
+raw-article-buffer $B$K$*$1$k(B MIME part $B$K4X$9$k>pJs$r3JG<$9$k$?$a$N9=B$(B
+$BBN!#C1$K(B <concept>content-info</concept> $B$H$b8F$V!#(B
+<p>
+$B$3$N9=B$BN$r;2>H$9$k$K$O!"(B<code>mime::content-info/$B%9%m%C%HL>(B</code> 
+$B$H$$$&(B content-info $B$r0z?t$K$H$k4X?t$rMQ$$$k!#(B
+<p>
+$B$3$N9=B$BN$N%9%m%C%H$O0J2<$NDL$j$G$"$k!'(B
+
+<vl>
+<dt>rcnum<dd>``reversed content-number'' (list)
+</dd>
+<dt>point-min<dd>raw-article-buffer $B$K$*$1$k@hF,(B point
+</dd>
+<dt>point-max<dd>raw-article-buffer $B$K$*$1$kKvHx(B point
+</dd>
+<dt>type<dd>content-type/sub-type$B!JJ8;zNs!"$^$?$O!"(Bnil$B!K(B
+</dd>
+<dt>parameters<dd>Content-Type field $B$N(B parameter $B!JO"A[(B list$B!K(B
+</dd>
+<dt>encoding<dd>Content-Transfer-Encoding$B!JJ8;zNs!"$^$?$O!"(Bnil$B!K(B
+</dd>
+<dt>children<dd>$B$3$N(B part $B$K4^$^$l$k(B part$B!J(Bcontent-info $B$N(B list$B!K(B
+</dd>
+</vl>
+<p>
+$B$"$k(B part $B$,(B multipart $B$b$7$/$O(B message/rfc822 $B$J$I$NJL$N(B part $B$r4^$`(B
+$B$h$&$J(B part $B$G$"$C$?>l9g!"(B<var>children</var> $B$KJL$N(B part $B$N(B 
+content-info $B$,4^$^$l$k;v$K$h$C$F!"(Bcontent-info $B$OLZ9=B$$K$J$k!#(B
+</define>
+
+<defvar name="mime::article/content-info">
+<p>
+raw-article-buffer $B$r(B MIME message $B$H$7$F2r@O$7$?7k2L(B (content-info)
+</defvar>
+
+<defvar name="mime::article/preview-buffer">
+<p>
+raw-article-buffer $B$KBP1~$9$k(B preview-buffer.
+</defvar>
+
+<defun name="mime-article/point-content-number">
+<args> point <opts> cinfo
+<p>
+content-info <var>cinfo</var> $B$G4IM}$5$l$kNN0h$K$*$$$F!"(B
+<var>point</var> $B$KBP1~$9$k(B content-number $B$rJV$9!#(B
+<p>
+<var>cinfo</var> $B$,>JN,$5$l$?>l9g$O!"(B
+<code>mime::article/content-info</code>$B$,MQ$$$i$l$k!#(B
+</defun>
+
+<defun name="mime-article/rcnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+content-info <var>cinfo</var> $B$G4IM}$5$l$kNN0h$K$*$$$F!"(B
+reversed-content-number <var>rcnum</var> $B$KBP1~$9$k(B content-info $B$rJV(B
+$B$9!#(B
+<p>
+<var>cinfo</var> $B$,>JN,$5$l$?>l9g$O!"(B
+<code>mime::article/content-info</code> $B$,MQ$$$i$l$k!#(B
+</defun>
+
+<defun name="mime-article/cnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+content-info <var>cinfo</var> $B$G4IM}$5$l$kNN0h$K$*$$$F!"(Bcontent-number
+<var>rcnum</var> $B$KBP1~$9$k(B content-info $B$rJV$9!#(B
+<p>
+<var>cinfo</var> $B$,>JN,$5$l$?>l9g$O!"(B
+<code>mime::article/content-info</code> $B$,MQ$$$i$l$k!#(B
+</defun>
+
+<defun name="mime/flatten-content-info">
+<args> <opts> cinfo
+<p>
+content-info <var>cinfo</var> $BCf$KG<$a$i$l$?A4(B part $B$N(B content-info $B$N(B 
+list $B$rJV$9!#(B
+<p>
+<var>cinfo</var> $B$,>JN,$5$l$?>l9g$O!"(B
+<code>mime::article/content-info</code> $B$,MQ$$$i$l$k!#(B
+</defun>
+
+
+<h2> preview-buffer $B$N(B buffer local $BJQ?t(B
+<node> preview-buffer
+<p>
+<defvar name="mime::preview/mother-buffer">
+<p>
+$B$3$N(B preview-buffer $B$N?F$KAjEv$9$k(B buffer.
+</defvar>
+
+<define type="Structure" name="mime::preview-content-info">
+<args> point-min point-max buffer content-info
+<p>
+preview-buffer $B$K$*$1$k(B MIME content $B$K4X$9$k>pJs$r3JG<$9$k$?$a$N9=B$(B
+$BBN!#C1$K(B <concept>preview-content-info</concept> $B$H$b8F$V!#(B
+<p>
+$B$3$N9=B$BN$r;2>H$9$k$K$O!"(B<code>mime::content-info/$B%9%m%C%HL>(B</code> 
+$B$H$$$&(Bcontent-info $B$r0z?t$K$H$k4X?t$rMQ$$$k!#(B
+<p>
+$B$3$N9=B$BN$N%9%m%C%H$O0J2<$NDL$j$G$"$k!#(B
+
+<vl>
+<dt>point-min<dd>preview-buffer $B$K$*$1$k@hF,(B point
+</dd>
+<dt> point-max<dd>preview-buffer $B$K$*$1$kKvHx(B point
+</dd>
+<dt>buffer<dd>$B$3$N(B part $B$KBP1~$9$k(B raw-article-buffer
+</dd>
+<dt>content-info<dd>$B$3$N(B part $B$KBP1~$9$k(B content-info
+</dd>
+</vl>
+</define>
+
+<defvar name="mime::preview/content-list">
+<p>
+$B$3$N(B preview-buffer $B$N9=B$$r$"$i$o$9(B preview-content-info $B$N(B list.
+</defvar>
+<p>
+<defvar name="mime::preview/article-buffer">
+<p>
+$B$3$N(B preview-buffer $B$KBP1~$9$k(B raw-article-buffer.
+</defvar>
+
+<defvar name="mime::preview/original-major-mode">
+<p>
+$B$3$N(B preview-buffer $B$N$b$H$K$J$C$?(B buffer $B$N(B major-mode.
+</defvar>
+
+<defvar name="mime::preview/original-window-configuration">
+<p>
+<code>mime/viewer-mode</code> $B$r<B9T$7$F!"$3$N(B preview-buffer $B:n$kD>A0(B
+$B$N(B window-configuration.
+</defvar>
+
+<defun name="mime-preview/point-pcinfo">
+<args> point <opts> pcl
+<p>
+preview-content-info <var>pcl</var> $B$G4IM}$5$l$k(B preview-buffer $BCf$NNN(B
+$B0h$K$*$$$F!"(B<var>point</var> $B$KBP1~$9$k(B part $B$N(B preview-content-info 
+$B$rJV$9!#(B
+<p>
+<var>cinfo</var> $B$,>JN,$5$l$?>l9g$O!"(B
+<code>mime::preview/content-list</code> $B$,MQ$$$i$l$k!#(B
+</defun>
+
+
+<h1> MIME message $B$N(B decode $B$K4X$9$k4X?t(B
+<node> API
+<p>
+tm-view $B$NDs6!$9$k4X?t$r3F(B <a file="tm-ja" node="MUA">MUA</a> $B$KAH$_9~(B
+$B$`;v$K$h$C$F!"3F(B MUA $B$K(B MIME $B:F@85!G=$rIU2C$9$k;v$,$G$-$^$9!#(B
+<p>
+tm-view $B$,3F(B MUA $B$KDs6!$9$k4X?t$O!"(BMIME preview $B$r9T$&$?$a$N4X?t(B 
+<code>mime/viewer-mode</code> $B$H(B <dref
+file="tm-ja">encoded-word</dref> $B$r(B decode $B$9$k$?$a$N4X?t72$G$9!#(B
+
+
+<h2> MIME preview $B$K4X$9$k4X?t(B
+<node> API about MIME preview
+<p>
+
+<define type="Command" name="mime/viewer-mode">
+<opts> mother ctl encoding ibuf obuf mother-keymap
+<p>
+<var>ibuf</var> $B$r(B MIME message $B$H$7$F2r@O$7$F!"$=$NFbMF$r1\Mw$9$k$?$a(B
+$B$N(B preview-buffer $B$r(B <var>obuf</var> $B$K:n@.$7!"(B
+<a node="mime/viewer-mode">
+<code>mime/viewer-mode</code>
+</a>
+$B$KF~$j$^$9!#(B
+<p>
+<var>ibuf</var> $B$,>JN,$5$l$?>l9g!"(Bcurrent buffer $B$rMQ$$$^$9!#(B
+<p>
+<var>mother</var> $B$O!"2r@O$NBP>]$H$9$k(B raw-article-buffer $B$,(B 
+message/partial $B7A<0$NJ,3d$5$l$?(B message $B$r7k9g$7$F:n@.$7$?>l9g$J$I$K(B
+$B$*$1$k85$N(B buffer $B$r;XDj$9$k$?$a$K;H$$$^$9!#(B
+<p>
+<var>ctl</var> $B$O(B <dref file="tm-ja">Content-Type field</dref> $B$N(B 
+field-body $B$r(B <code>mime/Content-Type</code> $B$N=PNO@5<0$K$7$?$b$N$rF~(B
+$B$l$^$9!#$3$N0z?t$,$"$k>l9g!"(Braw-article-buffer $B$N(B Content-Type field 
+$B$h$j$b$3$N0z?t$rM%@h$7$^$9!#(B
+<p>
+<var>encoding</var> $B$O(B Content-Transfer-Encoding field $B$N(B field-body 
+$B$rF~$l$^$9!#$3$N0z?t$,$"$k>l9g!"(Braw-article-buffer $B$N(B 
+Content-Transfer-Encoding field $B$h$j$b$3$N0z?t$rM%@h$7$^$9!#(B
+<p>
+<var>mother-keymap</var> $B$,;XDj$5$l$?>l9g!"(B
+<code>mime/viewer-mode</code> $B$N(B keymap $B$O$3$N(B keymap $B$K2C$($?$b$N$H$J(B
+$B$j$^$9!#(B
+</define>
+
+
+<h2> encoded-word $B$NI|85(B
+<node> encoded-word decoding
+<p>
+tm-view $B$O(B RFC 1522 $B$G5,Dj$5$l$?(B <dref
+file="tm-ja">encoded-word</dref> $B$r(B decode $B$9$k$?$a$N4X?t$r;}$C$F$$$^(B
+$B$9!#(B
+<p>
+<memo>
+$B5l(B <file>tiny-mime.el</file> $B$K$"$C$?(B RFC 1522 encoded-word $B$r(B decode 
+$B$9$k$?$a$N4X?t72$O(B tm-view $B$K0z$-7Q$,$l$^$7$?!#(B
+</memo>
+
+
+<define type="Command" name="mime/decode-message-header">
+<p>
+current buffer $B$N(B message header $BCf$N(B encoded-word $B$r(B decode $B$7$^$9!#(B
+<p>
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B <a file="tm-ja" node="MIME
+charset">MIME charset</a> $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^;D$5$l$^$9!#(B
+</define>
+
+
+<define type="Command" name="mime-eword/decode-region">
+<args> start end <opts> unfolding must-unfold
+<p>
+<var>start</var> $B$H(B <var>end</var> $B$G0O$^$l$?NN0hCf$N(B encoded-word $B$r(B 
+decode $B$7$^$9!#(B
+<p>
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B <a file="tm-ja" node="MIME
+charset">MIME charset</a> $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^;D$5$l$^$9!#(B
+<p>
+<var>unfolding</var> $B$,(B non-nil $B$N>l9g!"@^$jJV$5$l$?(B field $B$r(B 
+unfolding $B$7$^$9!#(B
+<p>
+<var>must-fold</var> $B$,(B non-nil $B$N>l9g!"(Bencoded-word $B$N(B decode $B7k2L$K(B
+$B@^$jJV$7!"$b$7$/$O!"2~9T$,4^$^$l$F$$$k>l9g!"(Bunfold $B$7!"2~9T$r=|$-$^$9!#(B
+</define>
+
+
+<defun name="mime-eword/decode-string">
+<args> string <opts> must-unfold
+<p>
+<var>string</var> $BCf$N(B encoded-word $B$r(B decode $B$7$?J8;zNs$rJV$7$^$9!#(B
+<p>
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B <a file="tm-ja" node="MIME
+charset">MIME charset</a> $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^=PNO$5$l$^$9!#(B
+<p>
+<var>string</var> $B$,@^$jJV$5$l$F$$$k>l9g!"(Bencoded-word $B$r(B decode $B$9$k(B
+$BA0$K(B <var>string</var> $B$O(B unfold $B$5$l$^$9!#(B
+<p>
+<var>must-fold</var> $B$,(B non-nil $B$N>l9g!"(Bencoded-word $B$N(B decode $B7k2L$K(B
+$B@^$jJV$7!"$b$7$/$O!"2~9T$,4^$^$l$F$$$F$b!"$=$l$i$O(B unfold $B$5$lC1BN$N2~(B
+$B9TJ8;z$b<h$j=|$+$l$^$9!#(B
+</defun>
+
+
+<h1> $B35G0:w0z(B
+<node> Concept Index
+
+<cindex>
+
+
+<h1> $B4X?t:w0z(B
+<node> Function Index
+
+<findex>
+
+
+<h1> $BJQ?t:w0z(B
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/tm/tm-view-ja.texi	Mon Aug 13 09:04:33 2007 +0200
@@ -0,0 +1,1040 @@
+\input texinfo.tex
+@setfilename tm-view-ja.info
+@settitle{tm-view 7.77 Reference Manual$B!JF|K\8lHG!K(B}
+@titlepage
+@title tm-view 7.77 Reference Manual$B!JF|K\8lHG!K(B
+@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-view 7.77 Reference Manual$B!JF|K\8lHG!K(B
+
+@ifinfo
+
+This file documents tm-view, a MIME Viewer for GNU Emacs.@refill
+
+GNU Emacs $BMQ$N(B MIME Viewer $B$G$"$k(B `tm-view' $B$K$D$$$F@bL@$7$^$9!#(B
+@end ifinfo
+
+@menu
+* Introduction::                tm-view $B$C$F2?!)(B
+* MIME display::                mime/viewer-mode $B$N2hLL9=@.(B
+* mime/viewer-mode::            mime/viewer-mode $B$G$NA`:n(B
+* method::                      $B:F@8=hM}$N<B8=(B
+* Two buffers for an article::  raw-article-buffer $B$H(B preview-buffer
+* API::                         MIME message $B$N(B decode $B$K4X$9$k4X?t(B
+* Concept Index::               $B35G0:w0z(B
+* Function Index::              $B4X?t:w0z(B
+* Variable Index::              $BJQ?t:w0z(B
+@end menu
+
+@node Introduction, MIME display, Top, Top
+@chapter tm-view $B$C$F2?!)(B
+
+tm-view $B$O(B GNU Emacs $B$GF0:n$9$kHFMQE*$J(B MIME viewer $B$G$9!#(B@refill
+
+tm-view $B$O(B @code{mime/viewer-mode} (@ref{mime/viewer-mode}) $B$H$$$&(B MIME
+message $B$r8+$k$?$a$N(B major-mode $B$r(B MUA (@ref{(tm-ja)MUA}) $B$KBP$7$FDs6!$7(B
+$B$^$9!#(BMUA $B$N@_7W<T$O$3$N(B mode $B$rMxMQ$9$k$3$H$G$=$N(B MUA $B$K(B MIME $B5!G=$rIU(B
+$B2C$9$k$3$H$,$G$-$^$9!#(B@refill
+
+tm-view $B$O(B MIME message $B$r1\Mw$9$k$?$a$N(B user interface $B$N3K$G$"$j!"$=$N(B
+$B>e$G3F(B content-type (@ref{(tm-ja)content-type}) $B$r07$&$?$a$N(B 
+@cindex{method}@strong{method} (@ref{method}) $B$H8F$P$l$k%W%m%0%i%`$rF0:n(B
+$B$5$;$^$9!#$^$?!"(BMIME message $B$NI=<($N;EJ}$r7h$a$k(B 
+@cindex{filter}@strong{filter} (@ref{Two buffers for an article}) $B$H8F$P(B
+$B$l$k%W%m%0%i%`$r5/F0;~$K8F$S=P$7$^$9!#(Bmethod $B$H(B filter $B$r(B tm-view $B$KAH$_(B
+$B9~$`;v$K$h$C$F!"(B@code{mime/viewer-mode} $B$G$5$^$6$^$J(B MIME content-type 
+$B$r07$&;v$,$G$-$^$9!#(B
+
+
+@node MIME display, mime/viewer-mode, Introduction, Top
+@chapter mime/viewer-mode $B$N2hLL9=@.(B
+
+mime/viewer-mode (@ref{mime/viewer-mode}) $B$G$O3F(B part $B$KBP$7$F(B@refill
+
+@example
+	[content-button]
+	(content-header)
+	
+	(content-body)
+	(content-separator)
+@end example
+
+@noindent
+$B$H$$$&>pJs$rI=<($7$^$9!#$3$l$i$O>r7o$K=>$C$F(B design $B$rJQ99$7$?$j!"I=<((B
+$B$rM^@)$9$k$3$H$,$G$-$^$9!#(B
+
+$B0J2<$K!"I=<(Nc$r<($7$^$9!#(B
+
+
+@example
+From: morioka@@jaist.ac.jp ($B<i2,(B $BCNI'(B / MORIOKA Tomohiko)
+Subject: Re: $B<ALd!)(B
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+        Ishikawa, Japan
+
+[1  (text/plain)]
+  MIME-Edit mode $B$K$*$1$k!"(BMIME message $B$N:n$jJ}!#(B
+
+  C-c C-x ? $B$r2!$9$H(B help $B$,=P$F$/$k!#(B
+
+C-c C-x C-t	insert a text message.
+C-c C-x TAB	insert a (binary) file.
+C-c C-x C-e	insert a reference to external body.
+C-c C-x C-v	insert a voice message.
+C-c C-x C-y	insert a mail or news message.
+C-c C-x RET	insert a mail message.
+C-c C-x C-s	insert a signature file at end.
+C-c C-x t	insert a new MIME tag.
+C-c C-x a	enclose as multipart/alternative.
+C-c C-x p	enclose as multipart/parallel.
+C-c C-x m	enclose as multipart/mixed.
+C-c C-x d	enclose as multipart/digest.
+C-c C-x s	enclose as PGP signed.
+C-c C-x e	enclose as PGP encrypted.
+C-c C-x C-k	insert PGP public key.
+C-c C-x C-p	preview editing MIME message.
+...
+
+$B$C$FLu$G!"(BC-c C-x C-i $B$r2!$7$F!"A^F~$7$?$$(B binary file $B$r;XDj$7$^$9!#(B
+
+  binary file $B$N(B MIME encoding $B$K$O!"IaDL!"(BBase64 $B$r;XDj$7$^$9!#(B
+
+[2  (image/gif)]
+
+[3  (text/plain)]
+
+  $B$3$s$JIw$K!"3(F~$j(B message $B$N$G$->e$,$j!#(B
+
+$B".".".".".".".".".".".(B $B%m%7%"%s!&%F%#!<$r0lGU!#(B $B".".".".".".".".".".".(B
+$B".".".".".(B  $B!y(B $B%8%c%`$G$O$J$/%^!<%^%l!<%I$G$b$J$/K*L*$G(B $B!y(B  $B".".".".".(B
+$B".".".".".(B         $B'.'0'2$$'0','!(B  $B'4'0'.'0'7'*','0(B         $B".".".".".(B
+$B".".".".".".".(B  Internet E-mail: <morioka@@jaist.ac.jp>  $B".".".".".".".(B
+@end example
+
+
+
+@menu
+* content-button::              
+* content-header::              
+* content-body::                
+* content-separator::           
+@end menu
+
+@node content-button, content-header, MIME display, MIME display
+@section content-button
+
+@cindex{content-button}@strong{content-button} $B$O(B part $B$N@hF,$K$"$C$F!"(B
+$B$=$N(B part $B$K4X$9$kBg$^$+$J>pJs$rI=<($9$kItJ,$G$9!#(B@refill
+
+$BI8=`$G$O(B
+
+@example
+        [1.3 test (text/plain)]
+@end example
+
+@noindent
+$B$N$h$&$J46$8$KI=<($5$l$^$9!#(B
+
+$B:G=i$N?t;z$O(B message $BCf$N$3$N(B part $B$N0LCV$r@aHV9f$N$h$&$KI=$7$?$b$N$G!"(B
+@cindex{content-number}@strong{content-number} $B$H8F$S$^$9!#(B@refill
+
+$B#2HVL\$NJ8;zNs$OI=Bj$rI=$7$^$9!#$3$N>pJs$O!"(B
+
+@enumerate
+@item
+Content-Type field (@ref{(tm-ja)Content-Type field}) $B$N(B name paramater 
+$B$b$7$/$O(B x-name parameter $B$K=q$+$l$?(B file $BL>(B
+@item
+Content-Description field (@ref{(tm-ja)Content-Description field}) $B$b$7(B
+$B$/$O(B Subject field $B$K=q$+$l$?I=Bj(B
+@item
+ uuencode $B$N>l9g$N(B file $BL>(B
+@end enumerate
+
+@noindent
+$B$+$i:n$j$^$9!#$I$l$bB8:_$7$J$$>l9g$O6uGr$,I=<($5$l$^$9!#(B
+
+$B#3HVL\$N3g8L$NCf$N>pJs$O$=$N(B part $B$N(B content-type/subtype $B$rI=$7$^$9!#Hs(B 
+MIME part $B$N>l9g!"(B@code{nil} $B$,I=<($5$l$^$9!#(B@refill
+
+$B$3$N(B content-button $B$O(B content-header (@ref{content-header}),
+content-body (@ref{content-body}) $B$rI=<($7$J$$>l9g!"(Bicon $B$N$h$&$JLr3d$r(B
+$B2L$?$7$^$9!#Nc$($P!"(B
+
+@example
+        [2  (image/gif)]
+@end example
+
+@noindent
+$B$N>e$G(B @kbd{v} $B$r2!$;$P$3$3$KF~$C$F$$$k3($,I=<($5$l$^$9!#(B
+
+$B$^$?!"(Bmouse $BA`:n$,2DG=$J>l9g!"(Bcontent-button $B$rBh#2%\%?%s!J(B3 button
+mouse $B$N>l9g!"Cf1{$N%\%?%s!K$G2!$;$P!"F1MM$K$=$N3($,I=<($5$l$^$9!#(B
+(@ref{mime/viewer-mode})@refill
+
+$B$H$3$m$G!"(Bcontent-button $B$rI=<($9$k$N$O]5F+$7$$>l9g$,$"$k$N$G!"(B
+content-button $B$NI=<($r>r7o$K$h$C$FM^@)$9$k$3$H$,$G$-$^$9!#(B
+
+
+@defvar mime-viewer/content-button-ignored-ctype-list
+
+content-button $B$rI=<($7$J$$(B content-type $B$rMWAG$H$9$k(B list.
+@end defvar
+
+
+
+@node content-header, content-body, content-button, MIME display
+@section content-header
+
+@cindex{content-header}@strong{content-header} $B$O$"$k(B part $B$N(B header $B$r(B
+$BI=<($9$kItJ,$G$9!#$7$+$7!"A4$F$N(B part $B$N(B content-header $B$rI=<($9$k$N$O]5(B
+$BF+$7$$$N$G!"0J2<$N$h$&$J(B mechanism $B$K$h$C$FI=<($9$k$+$7$J$$$+$r7h$a$F$$(B
+$B$^$9!#(B@refill
+
+$B$"$k(B part $B$N(B reversed-content-number $B$r4X?t(B 
+@code{mime-viewer/header-visible-p} $B$KM?$($?;~$NJV$jCM$,(B @code{t} $B$K$J$k(B
+$B>l9g!"$=$N(B part $B$N(B content-header $B$,I=<($5$l$^$9!#(B@refill
+
+$B$3$NH=Dj4X?t$O!"0lHV>e$N(B part $B$G$J$/!"$=$N(B part $B$N?F$N(B content-type
+(@ref{(tm-ja)content-type}) $B$,JQ?t(B 
+@code{mime-viewer/childrens-header-showing-Content-Type-list} $B$G;XDj$5$l(B
+$B$F$$$k>l9g$K(B @code{t} $B$rJV$7$^$9!#(B@refill
+
+$B$3$N>r7o$rJQ$($?$$>l9g$O!"$3$N4X?t$r:FDj5A$7$F2<$5$$!#C"$7!"I8=`$G$O!"JQ(B
+$B?t(B @code{mime-viewer/childrens-header-showing-Content-Type-list} $B$r;2>H(B
+$B$7$^$9$,!":FDj5A$7$?>l9g!"$3$NJQ?t$NM-8z@-$OJ]>Z$5$l$J$$$N$GCm0U$7$F2<$5(B
+$B$$!#(B@refill
+
+content-header $B$,I=<($5$l$k>l9g!"(Bcontent-header $B$O(B 
+@cindex{content-header-filter}@strong{content-header-filter} $B$H8F$P$l$k(B 
+program $B$K$h$C$F@07A$5$l$^$9!#(Bcontent-header-filter $B$O(B 
+raw-article-buffer (@ref{raw-article-buffer}) $B$N(B major-mode $B$r(B key $B$H$7(B
+$B$FJQ?t(B @code{mime-viewer/content-header-filter-alist} $B$+$iC5$5$l$^$9!#$b(B
+$B$7!"(Bcontent-header-filter $B$,8+$D$+$i$J$+$C$?>l9g!"4X?t(B
+@code{mime-viewer/default-content-header-filter} $B$,8F$P$l$^$9!#(B@refill
+
+
+@defvar mime-viewer/childrens-header-showing-Content-Type-list
+
+$B$"$k(B part $B$N;R$KEv$?$k(B content $B$N(B content-header $B$rI=<($9$Y$-(B 
+Content-Type $B$r<}$a$?(B list. $B4{DjCM$O(B @code{"message/rfc822"} $B$G$"$k!#(B
+@refill
+
+$B$3$NJQ?t$O4X?t(B @code{mime-viewer/header-visible-p} $B$K$h$C$F;2>H$5$l$k!#(B
+@end defvar
+
+
+
+@defun mime-viewer/header-visible-p rcnum cinfo  &optional  ctype
+
+content-info @var{cinfo} $BCf$N(B reversed-content-number $B$,(B @var{rcnum} $B$G(B
+$B$"$k(B part $B$N(B header $B$,I=<($5$l$k>l9g!"(B@code{t} $B$rJV$9!#$=$N(B part $B$N(B 
+content-type $B$,$"$i$+$8$a$o$+$C$F$$$k>l9g!"(B@var{ctype} $B$K0z?t$H$7$FEO$9(B
+$B$3$H$,$G$-$k!#(B
+@end defun
+
+
+
+@defvar mime-viewer/content-header-filter-alist
+
+raw-article-buffer $B$N(B major-mode $B$r(B key $B$H$7$?O"A[%j%9%H$G!"CMIt$K$O(B 
+content-header-filter $B$,F~$C$F$$$k!#(B
+@end defvar
+
+
+
+@defun mime-viewer/default-content-header-filter
+
+$B$"$k(B part $B$N(B content-header $B$rI=<($9$Y$-;~!"JQ?t(B 
+@code{mime-viewer/content-header-filter-alist} $B$NCf$K(B 
+content-header-filter $B$,8+$D$+$i$J$+$C$?>l9g$K8F$S=P$5$l$k!#(B@refill
+
+$BJQ?t(B @code{mime-viewer/ignored-field-regexp} $B$r;2>H$9$k!#(B
+@end defun
+
+
+
+@defvar mime-viewer/ignored-field-list
+
+content-header $B$rI=<($9$k;~$K!"I=<($7$J$$(B field $B$r;XDj$9$k!#(B@refill
+
+$B@55,I=8=$N(B list $B$K$J$C$F$*$j!"$3$NCM$r85$KJQ?t(B 
+@code{mime-viewer/ignored-field-regexp} $B$,:n$i$l$k!#(B@refill
+
+$B$3$NJQ?t$OD>@\A`:n$;$:!"4X?t(B @code{tm:add-fields} $B$d(B 
+@code{tm:delete-fields} $B$r;H$C$FA`:n$9$k!#(B
+@end defvar
+
+
+
+@node content-body, content-separator, content-header, MIME display
+@section content-body
+
+@cindex{content-body}@strong{content-body} $B$O(B part $B$NFbMF$rI=<($9$kItJ,(B
+$B$G$9!#(B@refill
+
+$BA4$F$N(B part $B$NFbMF$rI=<($G$-$k$H$O8B$i$J$$$7!"$^$?!"I=<($7$?$/$J$$(B part 
+$B$bB8:_$9$k$N$G!"0J2<$N$h$&$JJ}K!$GI=<($9$k$+$7$J$$$+$r7h$a$F$$$^$9!#(B
+@refill
+
+$B$"$k(B part $B$N(B content-body $B$rI=<($9$k$+$I$&$+$O!"4X?t(B 
+@code{mime-viewer/body-visible-p} $B$,(B @code{t} $B$K$J$k$+$I$&$+$G7h$^$j$^$9!#(B
+$BI8=`$G$O!"$"$k(B part $B$N(B content-type $B$,JQ?t(B 
+@code{mime-viewer/default-showing-Content-Type-list} $B$K@_Dj$5$l$F$$$k;~(B
+$B$KI=<($5$l$^$9!#(B@refill
+
+$B$"$k(B part $B$N(B content-body $B$,I=<($5$l$k;~!"(Bpreview buffer $B$K$O(B part $B$NFb(B
+$BMF$r(B @cindex{content-filter}@strong{content-filter} $B$H8F$P$l$k(B program 
+$B$K$h$C$F@07A$5$l$?$b$N$,I=<($5$l$^$9!#8F$P$l$k(B content-filter $B$O(B 
+raw-article-buffer (@ref{raw-article-buffer}) $B$N(B major-mode $B$r(B key $B$H$7(B
+$B$FJQ?t(B @code{mime-viewer/content-filter-alist} $B$+$iC5$5$l$^$9!#$b$7!"$3(B
+$B$NJQ?t$KEPO?$5$l$F$$$J$+$C$?>l9g!"4X?t(B 
+@code{mime-viewer/default-content-filter} $B$,8F$P$l$^$9!#(B
+
+
+@defvar mime-viewer/default-showing-Content-Type-list
+
+content-body $B$rI=<($9$Y$-(B content-type $B$rMWAG$H$9$k(B list.
+@end defvar
+
+
+
+@defun mime-viewer/body-visible-p rcnum cinfo  &optional  ctype
+
+reversed-content-number $B$,(B @var{rcnum} $B$G$"$k(B part $B$,I=<($5$l$k>l9g!"(B
+@code{t} $B$rJV$9!#$=$N(B part $B$N(B content-type $B$,$"$i$+$8$a$o$+$C$F$$$k>l9g!"(B
+@var{ctype} $B$K0z?t$H$7$FEO$9$3$H$,$G$-$k!#(B
+@end defun
+
+
+
+@defvar mime-viewer/content-filter-alist
+
+raw-article-buffer $B$N(B major-mode $B$r(B key $B$H$7$?O"A[%j%9%H$G!"CMIt$K$O(B 
+content-filter $B$,F~$C$F$$$k!#(B
+@end defvar
+
+
+
+@defun mime-viewer/default-content-filter rcnum cinfo ctype params subj
+
+$B$"$k(B part $B$N(B content-body $B$rI=<($9$Y$-;~!"JQ?t(B 
+@code{mime-viewer/content-filter-alist} $B$NCf$K(B content-filter $B$,8+$D$+$i(B
+$B$J$+$C$?>l9g$K8F$S=P$5$l$k!#(B@refill
+
+$BI8=`$G$O2?$b$7$J$$!#(B
+@end defun
+
+
+
+
+@node content-separator,  , content-body, MIME display
+@section content-separator
+
+@cindex{content-separator}@strong{content-separator} $B$O(B part $B$N0lHV:G8e(B
+$B$K(B part $B4V$N6-L\$rL@$i$+$K$9$k$?$a$KI=<($5$l$^$9!#(B@refill
+
+content-separator $B$O4X?t(B @code{mime-viewer/default-content-separator}$B$K(B
+$B$h$C$FI=<($5$l$^$9!#I8=`$G$O!"(Bcontent-header $B$b(B content-body $B$bI=<($5$l(B
+$B$J$$>l9g$N$_!"2~9T$rI=<($7$^$9!#(B@refill
+
+content-separator $B$N@_Dj$rJQ99$7$?$$>l9g$O!"$3$N4X?t$r:FDj5A$7$F2<$5$$!#(B
+@refill
+
+
+@defun mime-viewer/default-content-separator rcnum cinfo ctype params subj
+
+content-number $B$,(B @var{cnum} $B$G$"$k(B part $B$N(B content-separator $B$rI=<($9$k!#(B
+$BI8=`$G$O!"(Bcontent-header $B$b(B content-body $B$bI=<($5$l$J$$>l9g$N$_!"2~9T$r(B
+$BI=<($9$k!#(B
+@end defun
+
+
+
+@node mime/viewer-mode, method, MIME display, Top
+@chapter mime/viewer-mode $B$G$NA`:n(B
+
+mime/viewer-mode $B$K$O0J2<$N5!G=$,$"$j$^$9!#(B@refill
+
+@table @kbd
+@item @key{u}
+$B>e$N(B part $B$KLa$k!J(Bmessage $B$N0lHV>e$N(B part $B$G$3$l$r9T$J$&$H(B Summary
+mode $B$KLa$k(B (*1)$B!K(B
+
+@item @key{p}
+$BA0$N(B part $B$K0\F0$9$k(B
+
+@item @key{n}
+$B<!$N(B part $B$K0\F0$9$k(B
+
+@item @key{SPC}
+scroll up $B$9$k(B
+
+@item @key{M-SPC}
+scroll down $B$9$k(B
+
+@item @key{DEL}
+scroll down $B$9$k(B
+
+@item @key{RET}
+$B<!$N9T$K0\F0$9$k(B
+
+@item @key{M-RET}
+$BA0$N9T$K0\F0$9$k(B
+
+@item @key{M-RET}
+$BA0$N9T$K0\F0$9$k(B
+
+@item @key{<}
+message $B$N@hF,$K0\F0$9$k(B
+
+@item @key{>}
+message $B$NKvHx$K0\F0$9$k(B
+
+@item @key{v}
+part $B$r:F@8$9$k(B (*2)
+
+@item @key{e}
+part $B$+$i(B file $B$r<h$j=P$9(B (*2)
+
+@item @key{C-c C-p}
+part $B$r0u:~$9$k(B (*2)
+
+@item @key{f}
+message $BCf$N(B X-Face $B$rI=<($9$k(B
+
+@item @key{mouse-button-2}
+preview-buffer $BCf$N(B mouse button $B$r5/F0$9$k(B
+
+content-button $B$r2!$;$P!"$=$N(B part $B$,:F@8$5$l$k(B(*2)@refill
+
+URL-button $B$r2!$;$P!"$=$N(B WWW browser $B$,5/F0$5$l$k(B@refill
+
+@end table
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+
+(*1) tm-MUA $B$G(B tm-view $B$N@_Dj$r$7$F$$$J$$>l9g!"(BSummary mode $B$K$OLa$j$^$;(B
+$B$s!#(B@refill
+
+(*2) $B<B:]$NF0:n$OBP1~$9$k(B method $B$K0M$j$^$9!#(B
+@end quotation
+
+
+
+@node method, Two buffers for an article, mime/viewer-mode, Top
+@chapter $B:F@8=hM}$N<B8=(B
+
+@code{mime/viewer-mode} $B$G$O!"3F(B part $B$KBP$7$F!"(Bplay (@kbd{v}), extract
+(@kbd{e}), print (@kbd{C-c C-p}) $B$H$$$&A`:n$r9T$J$&$3$H$,$G$-$^$9!#$3$&(B
+$B$7$?A`:n$N$3$H$r!X!J(Bpart $B$KBP$9$k!K(Bdecode $BA`:n!Y$H8F$V$3$H$K$7$^$9!#$^$?!"(B
+play, extract, print $B$H$$$&(B decode $BA`:n$N<oN`$N$3$H$r(B 
+@cindex{decoding-mode}@strong{decoding-mode} $B$H8F$V$3$H$K$7$^$9!#(B@refill
+
+decode $BA`:n$,9T$J$o$l$?;~!"$=$N(B part $B$N(B content-type
+(@ref{(tm-ja)content-type}) $B$J$I$N>r7o$d$=$N>l$N4D6-$K1~$8$F<B:]$K$=$NA`(B
+$B:n$r<B9T$9$k<jB3$-$,8F$P$l$^$9!#$3$N<jB3$-$N$3$H$r(B 
+@cindex{method}@strong{method} $B$H8F$S$^$9!#(B@refill
+
+method $B$K$O!"(BEmacs Lisp $B$G=q$+$l$?(B @cindex{$BFbIt(B method}@strong{$BFbIt(B method} $B$H!"(B
+$B30It(B program $B$G<B8=$5$l$?(B @cindex{$B30It(B method}@strong{$B30It(B method} $B$,$"$j$^$9!#(B
+$BFbIt(B method $B$O(B Emacs $B$N5!G=$r;H$C$F$-$a:Y$+$$=hM}$r9T$J$&$3$H$,$G$-$^(B
+$B$9!#30It(B method $B$OHsF14|%W%m%;%98F$S=P$7$r;H$C$F<B8=$5$l$F$$$k$N$G!"<B(B
+$B9TCfBT$?$5$l$:$K$9$_$^$9!#$3$N$?$a!"@E;_2h$dF02h$J$I$N5pBg$J(B data $B$r:F(B
+$B@8$9$k$N$KNI$$$G$7$g$&!#(B
+
+
+@menu
+* decoding-condition::          part $B$N:F@8$K4X$9$k>r7o$N@_Dj(B
+* environment variables::       $B4D6-JQ?t(B
+@end menu
+
+@node decoding-condition, environment variables, method, method
+@section part $B$N:F@8$K4X$9$k>r7o$N@_Dj(B
+
+tm-view $B$O(B decode $BA`:n$,9T$J$o$l$k$H!"JQ?t(B 
+@code{mime/content-decoding-condition} $B$+$i$=$N;~$N>r7o$K9gCW$7$?(B method 
+$B$rA\$7=P$7$F!"$=$l$r8F$S=P$7$^$9!#(B@refill
+
+$BJQ?t(B @code{mime/content-decoding-condition} $B$O(B@refill
+
+@lisp
+        ($B>r7o(B1 $B>r7o(B2 ...)
+@end lisp
+
+@noindent
+$B$H$$$&7A$r$7$?(B list $B$G!"3F>r7o$O(B
+
+@lisp
+        ((field-type_1 . value_1)
+         (field-type_2 . value_2)
+         ...)
+@end lisp
+
+@noindent
+$B$H$$$&7A$NO"A[(B list $B$K$J$C$F$$$^$9!#(B
+
+$BNc$($P!"(Btext/plain (@ref{(tm-ja)text/plain}) $B$N;~!"(Btm-plain $B$r5/F0$9$k;~!"(B
+
+@lisp
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+@end lisp
+
+@noindent
+$B$H$$$&>r7o$r=q$-$^$9!#$3$N(B method $B$N(B value $BIt$N=q<0$K$D$$$F$O8e$G>\$7(B
+$B$/=R$Y$^$9!#(B
+
+$B$3$N>r7o$O(B content-type (@ref{(tm-ja)content-type}) $B$,(B text/plain $B$G$"$k(B 
+part $B$J$iA4$F$N(B decoding-mode $B$GM-8z$G$9!#$7$+$7!"(B@refill
+
+@lisp
+        ((type . "text/plain")
+         (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+         (mode . "play"))
+@end lisp
+
+@noindent
+$B$J$i!"(Bplay mode $B$N;~$7$+M-8z$K$J$j$^$;$s!#(B
+
+$B5U$K!"(B@refill
+
+@lisp
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+         (mode . "play"))
+@end lisp
+
+@noindent
+$B$J$i!"A4$F$N(B content-type $B$N(B play mode $B$GM-8z$K$J$j$^$9!#(B
+
+$B$3$&$7$F3F>r7o$rA0$+$i8+$F9T$-!":G=i$KM-8z$K$J$C$?>r7o$,<B9T$5$l$^$9!#(B
+
+
+@menu
+* method value::                method $B$NCMIt$N=q<0(B
+* Example of decoding-condition::  decoding-condition $B$NNc(B
+@end menu
+
+@node method value, Example of decoding-condition, decoding-condition, decoding-condition
+@subsection method $B$NCMIt$N=q<0(B
+
+decode-condition $B$N(B method field $B$O(B@refill
+
+@lisp
+        (method . SYMBOL)
+@end lisp
+
+@noindent
+$B$+(B
+
+@lisp
+        (method  $BJ8;zNs(B  FLAG  $B0z?t(B1  $B0z?t(B2  ...)
+@end lisp
+
+@noindent
+$B$H$$$&7A$r$7$F$$$^$9!#(B
+
+$BA0<T$OFbIt(B method $B$r;XDj$9$k$?$a$N7A<0$G!"(Bdecode $BA`:n$,9T$J$o$l$?;~!"(B
+SYMBOL $B$H$$$&4X?t$,4X?t8F$S=P$7$K$h$C$FFbIt(B method $B$H$7$F8F$S=P$5$l$^$9!#(B
+@refill
+
+$B8e<T$O30It(B method $B$r;XDj$9$k$?$a$N7A<0$G!"(Bdecode $BA`:n$,9T$J$o$l$?;~!"J8(B
+$B;zNs$G;XDj$5$l$?30It(B program $B$,HsF14|%W%m%;%98F$S=P$7$K$h$C$F30It(B method 
+$B$H$7$F8F$S=P$5$l$^$9!#(B@refill
+
+$B30It(B method $B$r;XDj$9$k>l9g$N(B method field $B$N=q<0$O0J2<$NDL$j$G$9!#(B
+@refill
+
+@table @samp
+@item $BJ8;zNs(B
+$B30It(B method $B$NL>A0(B
+
+@item FLAG
+@code{t} $B$J$i(B content-header $B$b30It(B method $B$KEO$9!#(B
+
+@code{nil} $B$J$i(B content-body $B$N$_$rEO$9!#(B@refill
+
+@item $B0z?tNs(B
+$B30It(B method $B$N0z?t(B
+
+@end table
+
+$B$^$?!"30It(B method $B$N0z?t$O<!$N$h$&$J7A<0$G=q$-$^$9!#(B@refill
+
+@table @samp
+@item $BJ8;zNs(B
+$B$=$NJ8;zNs$rEO$9(B
+
+@item 'SYMBOL
+SYMBOL $B$r(B key $B$H$7$?(B decoding-condition $B$NCM$rEO$9(B
+
+@item '$BJ8;zNs(B
+$BJ8;zNs$r(B key $B$H$7$?(B decoding-condition $B$NCM$rEO$9(B
+
+@end table
+
+'SYMBOL $B$G;XDj$G$-$k$b$N$K$O!"(B@refill
+
+@table @samp
+@item 'file
+part $B$N>pJs$rEO$9$?$a$N(B file $BL>(B
+
+@item 'type
+Content-Type field $B$N(B content-type/subtype
+
+@item 'encoding
+Content-Transfer-Encoding field $B$N(B field body
+
+@item 'mode
+decoding-mode
+
+@item 'name
+file $B$KMn$9>l9g$N(B file $BL>(B
+
+@end table
+
+@noindent
+$B$J$I$,$"$j!"(B@code{'$BJ8;zNs(B} $B$G$O(B Content-Type field $B$N(B parameter 
+$B$NCM$,;XDj$G$-$^$9!#(B
+
+
+@node Example of decoding-condition,  , method value, decoding-condition
+@subsection decoding-condition $B$NNc(B
+
+$B0J2<$K(B decoding-condition $B$N@_DjNc$r<($7$^$9!#(B
+
+@lisp
+(defvar mime/content-decoding-condition
+  '(((type . "text/plain")
+     (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "text/x-latex")
+     (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "audio/basic")
+     (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/gif")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/jpeg")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-tiff")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-xbm")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "image/x-pic")
+     (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+    ((type . "video/mpeg")`
+     (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "application/octet-stream")
+     (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
+    ((type . "message/partial")
+     (method . mime/decode-message/partial-region))
+    ((method "metamail" t
+             "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+    ))
+@end lisp
+
+
+$BNc$($P!"!VA4It(B metamail $B;H$&$s$d!W$H$$$&>l9g!"(B
+
+@lisp
+(setq mime/content-decoding-condition
+      '(
+        ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+       ))
+@end lisp
+
+@noindent
+$B$H$9$l$P(B OK $B$G$9!#(B
+
+$B9)IW$9$l$P!"$+$J$jJ#;($J>r7o$,=q$1$k$G$7$g$&!#(B@refill
+
+$B0J2<$K!"(Bdecoding-condition $B$r@_Dj$9$k$?$a$NM-MQ$J4X?t$r>R2p$7$^$9!#(B
+
+
+@defun set-atype symbol alist
+
+@var{symbol} $B$K>r7o(B @var{alist} $B$rDI2C$7$^$9!#(B
+
+@noindent
+@strong{[$BNc(B]}
+@quotation
+
+@lisp
+(set-atype 'mime/content-decoding-condition
+	   '((type . "message/external-body")
+	     ("access-type" . "anon-ftp")
+	     (method . mime/decode-message/external-ftp)
+	     ))
+@end lisp
+@end quotation
+@end defun
+
+
+
+@node environment variables,  , decoding-condition, method
+@section $B4D6-JQ?t(B
+
+$B0J2<$K(B tm-view $B$NI8=`(B method $B$,;2>H$9$k4D6-JQ?t$r<($7$^$9!#(B
+
+@table @var
+@item TM_TMP_DIR
+$B0l;~E*$K:n@.$5$l$k(B file $B$d(B file $B=PNO$9$k>l9g$N(B default $B$N=PNO@h$H$7$F(B
+$BMQ$$$i$l$k(B directory $B$r;XDj$9$k!#>JN,$5$l$?>l9g!"(B@file{/tmp/} $B$,(B
+$BMQ$$$i$l$k!#(B
+
+@item VIDEO_DITHER
+mpeg_play $B$G$N(B dither $B$N$+$1J}$r;XDj$9$k!#4{DjCM$O(B `gray'.
+
+@item TM_WWW_BROWSER
+WWW browser $B$r;XDj$9$k!#4{DjCM$O(B `netscape'.
+
+@end table
+
+
+
+@node Two buffers for an article, API, method, Top
+@chapter raw-article-buffer $B$H(B preview-buffer
+
+tm-view $B$O!"(BMIME $B=hM}$r9T$J$&A0$N@8$N(B message $B$,F~$C$F$$$k(B 
+@cindex{raw-article-buffer}@strong{raw-article-buffer} $B$H$=$NFbMF$r(B user 
+$B$K4J7i$KI=<($7!"(Buser $B$,A`:n$9$k$?$a$N(B 
+@cindex{preview-buffer}@strong{preview-buffer} $B$H$$$&#2$D$N(B buffer $B$r4I(B
+$BM}$7$^$9!#(Braw-article-buffer $B$N(B major-mode $B$O$b$H$b$H$N(B MUA $B$N(B article 
+$BI=<(MQ$N(B major-mode $B$G$"$j!"(Bpreview-buffer $B$N(B major-mode $B$O(B 
+@code{mime/viewer-mode} (@ref{mime/viewer-mode}) $B$H$J$j$^$9!#(B@refill
+
+@code{mime/viewer-mode} $B$r<B9T$9$k$H!"(Btm-view $B$O$^$:(B raw-article-buffer 
+$B$NFbMF$r2r@O$7!"$=$N(B message $B$N9=B$$r(B raw-article-buffer $B$N(B buffer local 
+$BJQ?t(B @code{mime::article/content-info} $B$K5-O?$7$^$9!#(B@refill
+
+$B<!$K!"$3$N7k2L$r85$K(B raw-article-buffer $B$KBP1~$9$k(B preview-buffer $B$r:n$j(B
+$B$^$9!#$3$N:]!"(Bcontent-type $B$K1~$8$F!"(Bpart $BC10L$G(B header $B$d(B body $B$r2C9)$9(B
+$B$k$3$H$,$G$-$^$9!#$3$N(B header $B$r2C9)$9$k%W%m%0%i%`$r(B 
+@cindex{header-filter}@strong{header-filter} (@ref{content-header}),
+body $B$r2C9)$9$k%W%m%0%i%`$r(B 
+@cindex{content-filter}@strong{content-filter} (@ref{content-body}) $B$H8F(B
+$B$S!"$3$l$i$rAm>N$7$F(B @cindex{filter}@strong{filter} $B$H8F$S$^$9!#(B
+
+preview-buffer $B$r:n@.$9$k;~$K!"(Bmessage $B$NI=<(>e$N9=B$$r5-O?$7$?(B 
+preview-buffer $B$N(B buffer local $BJQ?t(B @code{mime::preview/content-list} $B$,(B
+$B:n$i$l$^$9!#(Btm-view $B$O(B raw-article-buffer $B>e$N(B 
+@code{mime::article/content-info} $B$H(B preview-buffer $B>e$N(B 
+@code{mime::preview/content-list} $B$rMQ$$$F(B message $B$r4IM}$7$^$9!#(B@refill
+
+@noindent
+@strong{[$BCm0U(B]}
+@quotation
+$B$3$N@bL@=q$G$O!"(BContent-Type field $B$N(B content-type/subtype $B$N$3$H$r>N(B
+$B$7$F(B ``content-type'' $B$H8F$S$^$9!#(B
+@end quotation
+
+
+
+@menu
+* raw-article-buffer::          raw-article-buffer $B$N(B buffer local $BJQ?t(B
+* preview-buffer::              preview-buffer $B$N(B buffer local $BJQ?t(B
+@end menu
+
+@node raw-article-buffer, preview-buffer, Two buffers for an article, Two buffers for an article
+@section raw-article-buffer $B$N(B buffer local $BJQ?t(B
+
+@deffn{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
+
+raw-article-buffer $B$K$*$1$k(B MIME part $B$K4X$9$k>pJs$r3JG<$9$k$?$a$N9=B$BN!#(B
+$BC1$K(B @cindex{content-info}@strong{content-info} $B$H$b8F$V!#(B@refill
+
+$B$3$N9=B$BN$r;2>H$9$k$K$O!"(B@code{mime::content-info/$B%9%m%C%HL>(B} $B$H$$$&(B 
+content-info $B$r0z?t$K$H$k4X?t$rMQ$$$k!#(B@refill
+
+$B$3$N9=B$BN$N%9%m%C%H$O0J2<$NDL$j$G$"$k!'(B
+
+@table @var
+@item rcnum
+``reversed content-number'' (list)
+
+@item point-min
+raw-article-buffer $B$K$*$1$k@hF,(B point
+
+@item point-max
+raw-article-buffer $B$K$*$1$kKvHx(B point
+
+@item type
+content-type/sub-type$B!JJ8;zNs!"$^$?$O!"(Bnil$B!K(B
+
+@item parameters
+Content-Type field $B$N(B parameter $B!JO"A[(B list$B!K(B
+
+@item encoding
+Content-Transfer-Encoding$B!JJ8;zNs!"$^$?$O!"(Bnil$B!K(B
+
+@item children
+$B$3$N(B part $B$K4^$^$l$k(B part$B!J(Bcontent-info $B$N(B list$B!K(B
+
+@end table
+
+$B$"$k(B part $B$,(B multipart $B$b$7$/$O(B message/rfc822 $B$J$I$NJL$N(B part $B$r4^$`$h(B
+$B$&$J(B part $B$G$"$C$?>l9g!"(B@var{children} $B$KJL$N(B part $B$N(B content-info $B$,4^(B
+$B$^$l$k;v$K$h$C$F!"(Bcontent-info $B$OLZ9=B$$K$J$k!#(B
+@end deffn
+
+
+@defvar mime::article/content-info
+
+raw-article-buffer $B$r(B MIME message $B$H$7$F2r@O$7$?7k2L(B (content-info)
+@end defvar
+
+
+@defvar mime::article/preview-buffer
+
+raw-article-buffer $B$KBP1~$9$k(B preview-buffer.
+@end defvar
+
+
+@defun mime-article/point-content-number point  &optional  cinfo
+
+content-info @var{cinfo} $B$G4IM}$5$l$kNN0h$K$*$$$F!"(B@var{point} $B$KBP1~$9(B
+$B$k(B content-number $B$rJV$9!#(B@refill
+
+@var{cinfo} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime::article/content-info}$B$,MQ$$(B
+$B$i$l$k!#(B
+@end defun
+
+
+@defun mime-article/rcnum-to-cinfo rcnum  &optional  cinfo
+
+content-info @var{cinfo} $B$G4IM}$5$l$kNN0h$K$*$$$F!"(B
+reversed-content-number @var{rcnum} $B$KBP1~$9$k(B content-info $B$rJV$9!#(B
+@refill
+
+@var{cinfo} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime::article/content-info} $B$,MQ$$(B
+$B$i$l$k!#(B
+@end defun
+
+
+@defun mime-article/cnum-to-cinfo rcnum  &optional  cinfo
+
+content-info @var{cinfo} $B$G4IM}$5$l$kNN0h$K$*$$$F!"(Bcontent-number
+@var{rcnum} $B$KBP1~$9$k(B content-info $B$rJV$9!#(B@refill
+
+@var{cinfo} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime::article/content-info} $B$,MQ$$(B
+$B$i$l$k!#(B
+@end defun
+
+
+@defun mime/flatten-content-info  &optional  cinfo
+
+content-info @var{cinfo} $BCf$KG<$a$i$l$?A4(B part $B$N(B content-info $B$N(B list 
+$B$rJV$9!#(B@refill
+
+@var{cinfo} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime::article/content-info} $B$,MQ$$(B
+$B$i$l$k!#(B
+@end defun
+
+
+
+@node preview-buffer,  , raw-article-buffer, Two buffers for an article
+@section preview-buffer $B$N(B buffer local $BJQ?t(B
+
+@defvar mime::preview/mother-buffer
+
+$B$3$N(B preview-buffer $B$N?F$KAjEv$9$k(B buffer.
+@end defvar
+
+
+@deffn{Structure} mime::preview-content-info point-min point-max buffer content-info
+
+preview-buffer $B$K$*$1$k(B MIME content $B$K4X$9$k>pJs$r3JG<$9$k$?$a$N9=B$BN!#(B
+$BC1$K(B @cindex{preview-content-info}@strong{preview-content-info} $B$H$b8F$V!#(B
+@refill
+
+$B$3$N9=B$BN$r;2>H$9$k$K$O!"(B@code{mime::content-info/$B%9%m%C%HL>(B} $B$H$$$&(B
+content-info $B$r0z?t$K$H$k4X?t$rMQ$$$k!#(B@refill
+
+$B$3$N9=B$BN$N%9%m%C%H$O0J2<$NDL$j$G$"$k!#(B
+
+@table @var
+@item point-min
+preview-buffer $B$K$*$1$k@hF,(B point
+
+@item  point-max
+preview-buffer $B$K$*$1$kKvHx(B point
+
+@item buffer
+$B$3$N(B part $B$KBP1~$9$k(B raw-article-buffer
+
+@item content-info
+$B$3$N(B part $B$KBP1~$9$k(B content-info
+
+@end table
+@end deffn
+
+
+@defvar mime::preview/content-list
+
+$B$3$N(B preview-buffer $B$N9=B$$r$"$i$o$9(B preview-content-info $B$N(B list.
+@end defvar
+
+@defvar mime::preview/article-buffer
+
+$B$3$N(B preview-buffer $B$KBP1~$9$k(B raw-article-buffer.
+@end defvar
+
+
+@defvar mime::preview/original-major-mode
+
+$B$3$N(B preview-buffer $B$N$b$H$K$J$C$?(B buffer $B$N(B major-mode.
+@end defvar
+
+
+@defvar mime::preview/original-window-configuration
+
+@code{mime/viewer-mode} $B$r<B9T$7$F!"$3$N(B preview-buffer $B:n$kD>A0$N(B 
+window-configuration.
+@end defvar
+
+
+@defun mime-preview/point-pcinfo point  &optional  pcl
+
+preview-content-info @var{pcl} $B$G4IM}$5$l$k(B preview-buffer $BCf$NNN0h$K$*(B
+$B$$$F!"(B@var{point} $B$KBP1~$9$k(B part $B$N(B preview-content-info $B$rJV$9!#(B
+@refill
+
+@var{cinfo} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime::preview/content-list} $B$,MQ$$(B
+$B$i$l$k!#(B
+@end defun
+
+
+
+@node API, Concept Index, Two buffers for an article, Top
+@chapter MIME message $B$N(B decode $B$K4X$9$k4X?t(B
+
+tm-view $B$NDs6!$9$k4X?t$r3F(B MUA (@ref{(tm-ja)MUA}) $B$KAH$_9~$`;v$K$h$C$F!"(B
+$B3F(B MUA $B$K(B MIME $B:F@85!G=$rIU2C$9$k;v$,$G$-$^$9!#(B@refill
+
+tm-view $B$,3F(B MUA $B$KDs6!$9$k4X?t$O!"(BMIME preview $B$r9T$&$?$a$N4X?t(B 
+@code{mime/viewer-mode} $B$H(B encoded-word (@ref{(tm-ja)encoded-word}) $B$r(B 
+decode $B$9$k$?$a$N4X?t72$G$9!#(B
+
+
+@menu
+* API about MIME preview::      MIME preview $B$K4X$9$k4X?t(B
+* encoded-word decoding::       encoded-word $B$NI|85(B
+@end menu
+
+@node API about MIME preview, encoded-word decoding, API, API
+@section MIME preview $B$K4X$9$k4X?t(B
+
+
+@deffn{Command} mime/viewer-mode &optional  mother ctl encoding ibuf obuf mother-keymap
+
+@var{ibuf} $B$r(B MIME message $B$H$7$F2r@O$7$F!"$=$NFbMF$r1\Mw$9$k$?$a$N(B 
+preview-buffer $B$r(B @var{obuf} $B$K:n@.$7!"(B@code{mime/viewer-mode}
+(@ref{mime/viewer-mode})$B$KF~$j$^$9!#(B@refill
+
+@var{ibuf} $B$,>JN,$5$l$?>l9g!"(Bcurrent buffer $B$rMQ$$$^$9!#(B@refill
+
+@var{mother} $B$O!"2r@O$NBP>]$H$9$k(B raw-article-buffer $B$,(B message/partial 
+$B7A<0$NJ,3d$5$l$?(B message $B$r7k9g$7$F:n@.$7$?>l9g$J$I$K$*$1$k85$N(B buffer 
+$B$r;XDj$9$k$?$a$K;H$$$^$9!#(B@refill
+
+@var{ctl} $B$O(B Content-Type field (@ref{(tm-ja)Content-Type field}) $B$N(B 
+field-body $B$r(B @code{mime/Content-Type} $B$N=PNO@5<0$K$7$?$b$N$rF~$l$^$9!#(B
+$B$3$N0z?t$,$"$k>l9g!"(Braw-article-buffer $B$N(B Content-Type field $B$h$j$b$3$N(B
+$B0z?t$rM%@h$7$^$9!#(B@refill
+
+@var{encoding} $B$O(B Content-Transfer-Encoding field $B$N(B field-body $B$rF~$l$^(B
+$B$9!#$3$N0z?t$,$"$k>l9g!"(Braw-article-buffer $B$N(B Content-Transfer-Encoding
+field $B$h$j$b$3$N0z?t$rM%@h$7$^$9!#(B@refill
+
+@var{mother-keymap} $B$,;XDj$5$l$?>l9g!"(B@code{mime/viewer-mode} $B$N(B keymap 
+$B$O$3$N(B keymap $B$K2C$($?$b$N$H$J$j$^$9!#(B
+@end deffn
+
+
+
+@node encoded-word decoding,  , API about MIME preview, API
+@section encoded-word $B$NI|85(B
+
+tm-view $B$O(B RFC 1522 $B$G5,Dj$5$l$?(B encoded-word
+(@ref{(tm-ja)encoded-word}) $B$r(B decode $B$9$k$?$a$N4X?t$r;}$C$F$$$^$9!#(B
+
+@noindent
+@strong{[Memo]}
+@quotation
+$B5l(B @file{tiny-mime.el} $B$K$"$C$?(B RFC 1522 encoded-word $B$r(B decode 
+$B$9$k$?$a$N4X?t72$O(B tm-view $B$K0z$-7Q$,$l$^$7$?!#(B
+@end quotation
+
+
+
+@deffn{Command} mime/decode-message-header
+
+current buffer $B$N(B message header $BCf$N(B encoded-word $B$r(B decode $B$7$^$9!#(B
+@refill
+
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B MIME charset
+(@ref{(tm-ja)MIME charset}) $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^;D$5$l$^$9!#(B
+@end deffn
+
+
+
+@deffn{Command} mime-eword/decode-region start end  &optional  unfolding must-unfold
+
+@var{start} $B$H(B @var{end} $B$G0O$^$l$?NN0hCf$N(B encoded-word $B$r(B decode $B$7$^(B
+$B$9!#(B@refill
+
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B MIME charset
+(@ref{(tm-ja)MIME charset}) $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^;D$5$l$^$9!#(B@refill
+
+@var{unfolding} $B$,(B non-nil $B$N>l9g!"@^$jJV$5$l$?(B field $B$r(B unfolding $B$7$^(B
+$B$9!#(B@refill
+
+@var{must-fold} $B$,(B non-nil $B$N>l9g!"(Bencoded-word $B$N(B decode $B7k2L$K@^$jJV$7!"(B
+$B$b$7$/$O!"2~9T$,4^$^$l$F$$$k>l9g!"(Bunfold $B$7!"2~9T$r=|$-$^$9!#(B
+@end deffn
+
+
+
+@defun mime-eword/decode-string string  &optional  must-unfold
+
+@var{string} $BCf$N(B encoded-word $B$r(B decode $B$7$?J8;zNs$rJV$7$^$9!#(B@refill
+
+$B2u$l$F$$$?$j!"IT@5$@$C$?$j!"(Bdecode $B$G$-$J$$(B MIME charset
+(@ref{(tm-ja)MIME charset}) $B$,MQ$$$i$l$F$$$k(B encoded-word $B$O(B decode $B$5$l(B
+$B$:$=$N$^$^=PNO$5$l$^$9!#(B@refill
+
+@var{string} $B$,@^$jJV$5$l$F$$$k>l9g!"(Bencoded-word $B$r(B decode $B$9$kA0$K(B 
+@var{string} $B$O(B unfold $B$5$l$^$9!#(B@refill
+
+@var{must-fold} $B$,(B non-nil $B$N>l9g!"(Bencoded-word $B$N(B decode $B7k2L$K@^$jJV$7!"(B
+$B$b$7$/$O!"2~9T$,4^$^$l$F$$$F$b!"$=$l$i$O(B unfold $B$5$lC1BN$N2~9TJ8;z$b<h$j(B
+$B=|$+$l$^$9!#(B
+@end defun
+
+
+
+@node Concept Index, Function Index, API, Top
+@chapter $B35G0:w0z(B
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter $B4X?t:w0z(B
+
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter $BJQ?t:w0z(B
+
+@printindex vr
+@bye
--- a/src/ChangeLog	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/ChangeLog	Mon Aug 13 09:04:33 2007 +0200
@@ -1,3 +1,119 @@
+Fri Dec 20 19:21:56 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* Makefile.in.in (lisp): Remove cc-mode as a dumped package.
+
+	* keymap.c (define_key_check_and_coerce_keysym): Make obsolete
+	binding of kp_.* not lose.
+
+	* bitmaps.h: Add left & right arrows to show extended lines.
+
+Fri Dec 20 15:32:53 1996  David Moore  <dmoore@UCSD.EDU>
+
+	* event-stream.c (event_stream_wakeup_pending_p): New function.
+	(Faccept_process_output): Fix timeout handling race conditions.
+	(Fsleep_for): Ditto.
+	(Fsit_for): Ditto.
+
+Thu Dec 19 22:25:26 1996  Steve Carney  <carney@gvc.dec.com>
+
+	* cmds.c (Fbeginning_of_line): Adjust for 64 bit machines.
+
+Thu Dec 19 00:44:10 1996  Bart Robinson  <lomew@cs.utah.edu>
+
+	* syssignal.h: The declaration of SIGTYPE shouldn't be protected
+	by HAVE_SIGPROCMASK.
+
+Wed Dec 18 20:40:21 1996  Martin Buchholz  <mrb@eng.sun.com>
+
+	* dgif_lib.c: Miscellaneous cleanup, including removing signed
+	bitfields.
+
+	* mule-charset.h: Change charset names.
+
+	* mule-coding.c (struct iso2022_decoder): Uniform unsigned bitfields.
+	Change charset names.
+
+	* mule-charset.c: Change charset names.
+
+	* mule-canna.c: Change charset names.
+
+	* EmacsShell-sub.c: Ansify and reformat.
+
+	* console-tty.h (struct tty_console): Uniform unsigned bitfields.
+
+	* glyphs-x.c: Ansify.
+
+	* specifier.c: Use lisp_fn_t.
+
+	* EmacsShell.c: Ansify.
+
+	* vm-limit.c: Ansify.
+
+	* emacsfns.h: Use lisp_fn_t.
+
+	* lstream.c (struct filedesc_stream): Unsigned int bitfields.
+
+	* xselect.c (hack_motif_clipboard_selection): Change charset name.
+	(Fx_store_cutbuffer_internal): Change charset name.
+
+	* ralloc.c: Ansify and clean up.
+
+	* frame.h (struct frame): Uniform unsigned bit fields.
+
+	* event-Xt.c: Documentation change.
+
+	* lisp.h: Introduce lisp_fn_t.
+	Remove SunPro C compiler warning message workaround.
+
+	* xmu.c: Ansify.
+
+	* doprnt.c (struct printf_spec): Use unsigned bitfields.
+
+	* fileio.c: various code formatting changes.
+
+	* eval.c: reorganize primitive funcalls.
+
+	* config.h.in (NeedFunctionPrototypes): Force slightly better type
+	checking in X header files.
+
+	* Makefile.in.in: #undef i386, move mime-setup.elc?.
+
+	* s/sunos4-0-shr.h: Documentation change.
+
+	* s/sol2.h (__EXTENSIONS__): Add.
+	Include <setjmp.h> under certain conditions.
+
+Mon Dec 16 19:13:10 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* lstream.c (Lstream_pseudo_close): Return status on error.
+	(Lstream_close): Ditto.  (Fixes disk full-no error on write bug).
+
+Sat Dec 14 16:54:52 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* glyphs-x.c (jpeg_instantiate): Use file I/O for JPEG loading
+	because the in-core code is broken.
+
+Fri Dec 13 16:43:45 1996  Steven L Baur  <steve@altair.xemacs.org>
+
+	* device-x.c (x_init_device): Don't make nonexistent X server the
+	default when running on a tty.
+
+	* event-Xt.c (x_to_emacs_keysym): Rename kp_.* keysyms to be kp-\1.
+
+	* redisplay-tty.c (keys): Rename kp_.* keynames to kp-\1.
+
+Fri Dec 13 14:48:42 1996  Michael Sperber  <sperber@informatik.uni-tuebingen.de>
+
+	* lread.c (Fload_internal): Change arity of call to
+	file-name-handlers.
+
+	* fileio.c (Finsert_file_contents_internal): Ditto.
+
+Thu Dec 12 16:55:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* cmds.c (Fpoint_at_eol, Fpoint_at_bol): New functions.
+	(Fend_of_line, Fbeginning_of_line): Use them.
+
 Tue Dec 10 11:17:32 1996  Shane Holder  <holder@mordor.rsn.hp.com>
 
 	* s/hpux9shxr4.h: hpux9shr.h -> hpux9-shr.h
--- a/src/EmacsShell-sub.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/EmacsShell-sub.c	Mon Aug 13 09:04:33 2007 +0200
@@ -260,9 +260,10 @@
 		 NULL);
 }
 
-static XtGeometryResult SuperClassRootGeometryManager (gw, request, reply)
-    Widget gw;
-    XtWidgetGeometry *request, *reply;
+static XtGeometryResult
+SuperClassRootGeometryManager (Widget gw,
+			       XtWidgetGeometry *request,
+			       XtWidgetGeometry *reply)
 {
   ShellWidgetClass swc = (ShellWidgetClass) SUPERCLASS_WIDGET_CLASS;
   ShellClassExtensionRec *scer;
@@ -286,9 +287,10 @@
   return (scer->root_geometry_manager)(gw, request, reply);
 }
 
-static XtGeometryResult RootGeometryManager (gw, request, reply)
-    Widget gw;
-    XtWidgetGeometry *request, *reply;
+static XtGeometryResult
+RootGeometryManager (Widget gw,
+		     XtWidgetGeometry *request,
+		     XtWidgetGeometry *reply)
 {
   EMACS_SHELL_WIDGET w = (EMACS_SHELL_WIDGET) gw;
   /* OK since this file is not dumped */
--- a/src/EmacsShell.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/EmacsShell.c	Mon Aug 13 09:04:33 2007 +0200
@@ -51,11 +51,7 @@
 
 /* junk stolen from IntrinsicI.h */
 
-extern void _XtAllocError(
-#if NeedFunctionPrototypes
-    String	/* alloc_type */
-#endif
-);
+extern void _XtAllocError( String /* alloc_type */);
 
 /* junk ungraciously copied from Shell.c */
 
--- a/src/Makefile.in.in	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 09:04:33 2007 +0200
@@ -30,6 +30,7 @@
 #undef unix
 #undef sgi
 #undef NeXT
+#undef i386
 
 #ifdef USE_GNU_MAKE
 /* For performance and consistency, no built-in rules */
@@ -1092,7 +1093,7 @@
 # define MULE_X11_LISP
 #endif
 #define MULE_TM_LISP \
-	${lispdir}tl/mime-setup.elc \
+	${lispdir}tm/mime-setup.elc \
 	${lispdir}tl/tl-misc.elc \
 	${lispdir}tl/tl-str.elc \
 	${lispdir}tl/tl-list.elc \
@@ -1261,7 +1262,7 @@
         ${lispdir}prim/paragraphs.elc ${lispdir}modes/lisp-mode.elc \
         ${lispdir}modes/text-mode.elc ${lispdir}prim/fill.elc \
         ${lispdir}prim/isearch-mode.elc ${lispdir}prim/misc.elc \
-	${lispdir}modes/cc-mode.elc ${lispdir}packages/vc-hooks.elc \
+	${lispdir}packages/vc-hooks.elc \
         ${lispdir}prim/replace.elc ${lispdir}prim/specifier.elc \
         ${lispdir}modes/auto-show.elc SUNPRO_LISP TTY_LISP \
         ${lispdir}bytecomp/bytecomp-runtime.elc FLOAT_LISP EPOCH_LISP \
--- a/src/bitmaps.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/bitmaps.h	Mon Aug 13 09:04:33 2007 +0200
@@ -96,11 +96,25 @@
 static unsigned char continuer_bits[] = {
    0x00, 0xbc, 0xfc, 0xe0, 0xe0, 0x72, 0x3e, 0x1e, 0x1e, 0x3e};
 
+#if 0
 /* Three dots indicating truncation */
 #define truncator_width 7
 #define truncator_height 8
 static unsigned char truncator_bits[] = {
    0x06, 0x06, 0x00, 0x18, 0x18, 0x00, 0x60, 0x60};
+#endif
+
+/* A Right pointing Arrow */
+#define truncator_width 6
+#define truncator_height 10
+static char truncator_bits[] = {
+ 0xc0,0xc4,0xc8,0xd0,0xff,0xd0,0xc8,0xc4,0xc0,0xc0};
+
+/* A Left pointing Arrow */
+#define hscroll_width 6
+#define hscroll_height 10
+static char hscroll_bits[] = {
+ 0xc0,0xc8,0xc4,0xc2,0xff,0xc2,0xc4,0xc8,0xc0,0xc0};
 
 #if 0
 #define rarrow_width 12
--- a/src/cmds.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/cmds.c	Mon Aug 13 09:04:33 2007 +0200
@@ -134,6 +134,31 @@
   return make_int (negp ? - shortage : shortage);
 }
 
+DEFUN ("point-at-bol", Fpoint_at_bol, 0, 2, 0, /*
+Return the character position of the first character on the current line.
+With argument N not nil or 1, move forward N - 1 lines first.
+If scan reaches end of buffer, return that position.
+This function does not move point.
+*/
+       (arg, buffer))
+{
+  struct buffer *b = decode_buffer (buffer, 1);
+  register int orig, end;
+
+  XSETBUFFER (buffer, b);
+  if (NILP (arg))
+    arg = make_int (1);
+  else
+    CHECK_INT (arg);
+
+  orig = BUF_PT(b);
+  Fforward_line (make_int (XINT (arg) - 1), buffer);
+  end = BUF_PT(b);
+  BUF_SET_PT(b, orig);
+
+  return make_int (end);
+}
+
 DEFUN ("beginning-of-line", Fbeginning_of_line, 0, 2, "_p", /*
 Move point to beginning of current line.
 With argument ARG not nil or 1, move forward ARG - 1 lines first.
@@ -144,21 +169,15 @@
 {
   struct buffer *b = decode_buffer (buffer, 1);
 
-  XSETBUFFER (buffer, b);
-  if (NILP (arg))
-    arg = make_int (1);
-  else
-    CHECK_INT (arg);
-
-  Fforward_line (make_int (XINT (arg) - 1), buffer);
+  BUF_SET_PT(b, XINT (Fpoint_at_bol(arg, buffer)));
   return Qnil;
 }
 
-DEFUN ("end-of-line", Fend_of_line, 0, 2, "_p", /*
-Move point to end of current line.
-With argument ARG not nil or 1, move forward ARG - 1 lines first.
-If scan reaches end of buffer, stop there without error.
-If BUFFER is nil, the current buffer is assumed.
+DEFUN ("point-at-eol", Fpoint_at_eol, 0, 2, 0, /*
+Return the character position of the last character on the current line.
+With argument N not nil or 1, move forward N - 1 lines first.
+If scan reaches end of buffer, return that position.
+This function does not move point.
 */
        (arg, buffer))
 {
@@ -171,8 +190,21 @@
   else
     CHECK_INT (arg);
 
-  BUF_SET_PT (buf, find_before_next_newline (buf, BUF_PT (buf), 0,
+  return make_int (find_before_next_newline (buf, BUF_PT (buf), 0,
 					     XINT (arg) - (XINT (arg) <= 0)));
+}
+
+DEFUN ("end-of-line", Fend_of_line, 0, 2, "_p", /*
+Move point to end of current line.
+With argument ARG not nil or 1, move forward ARG - 1 lines first.
+If scan reaches end of buffer, stop there without error.
+If BUFFER is nil, the current buffer is assumed.
+*/
+       (arg, buffer))
+{
+  struct buffer *b = decode_buffer (buffer, 1);
+
+  BUF_SET_PT(b, XINT (Fpoint_at_eol (arg, buffer)));
   return Qnil;
 }
 
@@ -417,6 +449,9 @@
   DEFSUBR (Fbeginning_of_line);
   DEFSUBR (Fend_of_line);
 
+  DEFSUBR (Fpoint_at_bol);
+  DEFSUBR (Fpoint_at_eol);
+
   DEFSUBR (Fdelete_char);
   DEFSUBR (Fdelete_backward_char);
 
--- a/src/config.h.in	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/config.h.in	Mon Aug 13 09:04:33 2007 +0200
@@ -51,6 +51,13 @@
 /* Do you have the X window system and want to use it? */
 #undef HAVE_X_WINDOWS
 
+/* Slightly better type checking in X header files */
+#ifdef HAVE_X_WINDOWS
+#ifndef NeedFunctionPrototypes
+#define NeedFunctionPrototypes 1
+#endif
+#endif
+
 /* Do you have the the NeXTstep window system? */
 #undef HAVE_NEXTSTEP
 
--- a/src/console-tty.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/console-tty.h	Mon Aug 13 09:04:33 2007 +0200
@@ -187,8 +187,8 @@
   struct emacs_tty old_tty;
   
   /* Is this TTY our controlling terminal? */
-  int controlling_terminal :1;
-  int is_stdio :1;
+  unsigned int controlling_terminal :1;
+  unsigned int is_stdio :1;
 };
 
 #define CONSOLE_TTY_DATA(c) CONSOLE_TYPE_DATA (c, tty)
--- a/src/console-x.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/console-x.h	Mon Aug 13 09:04:33 2007 +0200
@@ -271,7 +271,7 @@
   int desired_psheet_count;
   Lisp_Object current_psheet_buffer;
   Lisp_Object desired_psheet_buffer;
-#endif
+#endif /* ENERGIZE */
 
   /*************************** Miscellaneous **************************/
 
@@ -304,7 +304,7 @@
   /* 1 if the frame is completely visible on the display, 0 otherwise.
      if 0 the frame may have been iconified or may be totally
      or partially hidden by another X window */
-  int totally_visible_p :1;
+  unsigned int totally_visible_p :1;
 
   /* NB: Both of the following flags are derivable from the 'shell'
      field above, but it's easier if we also have them separately here. */
@@ -312,13 +312,13 @@
   /* Are we a top-level frame?  This means that our shell is a
      TopLevelShell, and we should do certain things to interact with
      the window manager. */
-  int top_level_frame_p :1;
+  unsigned int top_level_frame_p :1;
 
 #ifdef EXTERNAL_WIDGET
   /* Are we using somebody else's window for our shell window?  This
      means that our shell is an ExternalShell.  If this flag is set, then
      `top_level_frame_p' will never be set. */
-  int external_window_p :1;
+  unsigned int external_window_p :1;
 #endif /* EXTERNAL_WIDGET */
 };
 
--- a/src/device-x.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/device-x.c	Mon Aug 13 09:04:33 2007 +0200
@@ -224,9 +224,6 @@
 
   allocate_x_device_struct (d);
 
-  if (NILP (Vdefault_x_device))
-    Vdefault_x_device = device;
-
   make_argc_argv (Vx_initial_argv_list, &argc, &argv);
 
   if (STRINGP (Vx_emacs_application_class) &&
@@ -250,6 +247,9 @@
       signal_simple_error ("X server not responding\n", display);
     }
 
+  if (NILP (Vdefault_x_device))
+    Vdefault_x_device = device;
+
 #ifdef MULE
   {
     /* Read in locale-specific resources from
--- a/src/dgif_lib.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/dgif_lib.c	Mon Aug 13 09:04:33 2007 +0200
@@ -12,6 +12,18 @@
 *  3 Sep 90 - Version 1.1 by Gershon Elber (Support for Gif89, Unique names). *
 ******************************************************************************/
 
+#ifdef emacs
+#include <config.h>
+void *xmalloc (unsigned int size);
+void *xrealloc (void *ptr, unsigned int size);
+#ifdef ERROR_CHECK_MALLOC
+void *xfree_1 (void *);
+#define xfree xfree_1
+#else
+void *xfree (void *);
+#endif
+#endif /* emacs */
+
 #ifdef __MSDOS__
 #include <io.h>
 #include <alloc.h>
@@ -26,18 +38,6 @@
 #include <stdio.h>
 #include <string.h>
 
-#ifdef emacs
-#include <config.h>
-void *xmalloc (unsigned int size);
-void *xrealloc (void *ptr, unsigned int size);
-#ifdef ERROR_CHECK_MALLOC
-void *xfree_1 (void *);
-#define xfree xfree_1
-#else
-void *xfree (void *);
-#endif
-#endif
-
 #include "gif_lib.h"
 #ifndef emacs
 #include "gif_hash.h"
--- a/src/doprnt.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/doprnt.c	Mon Aug 13 09:04:33 2007 +0200
@@ -46,13 +46,13 @@
 		 is 2, etc.  This is to handle %##$x-type specs. */
   int minwidth;
   int precision;
-  int minus_flag:1;
-  int plus_flag:1;
-  int space_flag:1;
-  int number_flag:1;
-  int zero_flag:1;
-  int h_flag:1;
-  int l_flag:1;
+  unsigned int minus_flag:1;
+  unsigned int plus_flag:1;
+  unsigned int space_flag:1;
+  unsigned int number_flag:1;
+  unsigned int zero_flag:1;
+  unsigned int h_flag:1;
+  unsigned int l_flag:1;
   char converter; /* converter character or 0 for dummy marker
 		     indicating literal text at the end of the
 		     specification */
--- a/src/emacsfns.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/emacsfns.h	Mon Aug 13 09:04:33 2007 +0200
@@ -684,7 +684,7 @@
 				   Lisp_Object function,
 				   Lisp_Object object1,
 				   Lisp_Object object2);
-Lisp_Object call_with_suspended_errors (Lisp_Object (*fun)(),
+Lisp_Object call_with_suspended_errors (lisp_fn_t fun,
 					Lisp_Object retval,
 					Lisp_Object class,
 					Error_behavior errb,
--- a/src/eval.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/eval.c	Mon Aug 13 09:04:33 2007 +0200
@@ -218,7 +218,7 @@
 /* Used for error catching purposes by throw_or_bomb_out */
 static int throw_level;
 
-static Lisp_Object primitive_funcall (Lisp_Object (*fn) (), int nargs,
+static Lisp_Object primitive_funcall (lisp_fn_t fn, int nargs,
 				      Lisp_Object args[]);
 
 
@@ -2054,9 +2054,8 @@
 call_with_suspended_errors_1 (Lisp_Object opaque_arg)
 {
   Lisp_Object *kludgy_args = (Lisp_Object *) get_opaque_ptr (opaque_arg);
-  return (primitive_funcall
-	  ((Lisp_Object (*)()) get_opaque_ptr (kludgy_args[0]),
-	   XINT (kludgy_args[1]), kludgy_args + 2));
+  return (primitive_funcall ((lisp_fn_t) get_opaque_ptr (kludgy_args[0]),
+			     XINT (kludgy_args[1]), kludgy_args + 2));
 }
 
 static Lisp_Object
@@ -2089,7 +2088,7 @@
 */
 
 Lisp_Object
-call_with_suspended_errors (Lisp_Object (*fun)(), Lisp_Object retval,
+call_with_suspended_errors (lisp_fn_t fun, Lisp_Object retval,
 			    Lisp_Object class, Error_behavior errb,
 			    int nargs, ...)
 {
@@ -2981,7 +2980,8 @@
 	  backtrace.args = vals;
 	  backtrace.nargs = nargs;
 
-	  val = ((subr_function (subr)) (nargs, vals));
+	  val = ((Lisp_Object (*) (int, Lisp_Object *)) (subr_function (subr)))
+	    (nargs, vals);
 
           /* Have to duplicate this code because if the
            *  debugger is called it must be in a scope in
@@ -3154,7 +3154,8 @@
 
       if (max_args == MANY)
 	{
-	  val = ((subr_function (subr)) (nargs, args + 1));
+	  val = ((Lisp_Object (*) (int, Lisp_Object *)) (subr_function (subr)))
+	    (nargs, args + 1);
 	}
 
       else if (max_args > nargs)
@@ -3431,50 +3432,47 @@
 }
 
 
+/* Define proper types and argument lists simultaneously */
+#define PRIMITIVE_FUNCALL(n) ((Lisp_Object (*) (PRIMITIVE_FUNCALL_##n)
+#define PRIMITIVE_FUNCALL_0  void)) (fn)) (
+#define PRIMITIVE_FUNCALL_1  Lisp_Object)) (fn)) (args[0]
+#define PRIMITIVE_FUNCALL_2  Lisp_Object, PRIMITIVE_FUNCALL_1,  args[1]
+#define PRIMITIVE_FUNCALL_3  Lisp_Object, PRIMITIVE_FUNCALL_2,  args[2]
+#define PRIMITIVE_FUNCALL_4  Lisp_Object, PRIMITIVE_FUNCALL_3,  args[3]
+#define PRIMITIVE_FUNCALL_5  Lisp_Object, PRIMITIVE_FUNCALL_4,  args[4]
+#define PRIMITIVE_FUNCALL_6  Lisp_Object, PRIMITIVE_FUNCALL_5,  args[5]
+#define PRIMITIVE_FUNCALL_7  Lisp_Object, PRIMITIVE_FUNCALL_6,  args[6]
+#define PRIMITIVE_FUNCALL_8  Lisp_Object, PRIMITIVE_FUNCALL_7,  args[7]
+#define PRIMITIVE_FUNCALL_9  Lisp_Object, PRIMITIVE_FUNCALL_8,  args[8]
+#define PRIMITIVE_FUNCALL_10 Lisp_Object, PRIMITIVE_FUNCALL_9,  args[9]
+#define PRIMITIVE_FUNCALL_11 Lisp_Object, PRIMITIVE_FUNCALL_10, args[10]
+#define PRIMITIVE_FUNCALL_12 Lisp_Object, PRIMITIVE_FUNCALL_11, args[11]
+
 static Lisp_Object
-primitive_funcall (Lisp_Object (*fn) (), int nargs, Lisp_Object args[])
+primitive_funcall (lisp_fn_t fn, int nargs, Lisp_Object args[])
 {
   switch (nargs)
     {
-    case 0:
-      return ((*fn) ());
-    case 1:
-      return ((*fn) (args[0]));
-    case 2:
-      return ((*fn) (args[0], args[1]));
-    case 3:
-      return ((*fn) (args[0], args[1], args[2]));
-    case 4:
-      return ((*fn) (args[0], args[1], args[2], args[3]));
-    case 5:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4]));
-    case 6:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5]));
-    case 7:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6]));
-    case 8:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6], args[7]));
-    case 9:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6], args[7], args[8]));
-    case 10:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6], args[7], args[8], args[9]));
-    case 11:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6], args[7], args[8], args[9], args[10]));
-    case 12:
-      return ((*fn) (args[0], args[1], args[2], args[3], args[4], args[5],
-		     args[6], args[7], args[8], args[9], args[10], args[11]));
-    default:
-      /* Someone has created a subr that takes more arguments than
-	 is supported by this code.  We need to either rewrite the
-	 subr to use a different argument protocol, or add more
-	 cases to this switch.  */
-      abort ();
+    case 0:  return PRIMITIVE_FUNCALL(0);
+    case 1:  return PRIMITIVE_FUNCALL(1);
+    case 2:  return PRIMITIVE_FUNCALL(2);
+    case 3:  return PRIMITIVE_FUNCALL(3);
+    case 4:  return PRIMITIVE_FUNCALL(4);
+    case 5:  return PRIMITIVE_FUNCALL(5);
+    case 6:  return PRIMITIVE_FUNCALL(6);
+    case 7:  return PRIMITIVE_FUNCALL(7);
+    case 8:  return PRIMITIVE_FUNCALL(8);
+    case 9:  return PRIMITIVE_FUNCALL(9);
+    case 10: return PRIMITIVE_FUNCALL(10);
+    case 11: return PRIMITIVE_FUNCALL(11);
+    case 12: return PRIMITIVE_FUNCALL(12);
     }
+
+  /* Someone has created a subr that takes more arguments than is
+     supported by this code.  We need to either rewrite the subr to
+     use a different argument protocol, or add more cases to this
+     switch.  */
+  abort ();
   return Qnil;	/* suppress compiler warning */
 }
 
--- a/src/event-Xt.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/event-Xt.c	Mon Aug 13 09:04:33 2007 +0200
@@ -645,7 +645,7 @@
      event, bufptr, bufsiz, &keysym, &status);
 #endif /* XIM_XLIB */
  LOOKUPSTRING;
- check_status:
+ check_status: /* Come-From XBufferOverflow */
 
 #ifdef DEBUG_XEMACS
   if (x_debug_events > 0)
@@ -764,8 +764,13 @@
 	{
 	  char buf [255];
 	  char *s1, *s2;
-	  for (s1 = name, s2 = buf; *s1; s1++, s2++)
-	    *s2 = tolower (* (unsigned char *) s1);
+	  for (s1 = name, s2 = buf; *s1; s1++, s2++) {
+	    if (*s1 == '_') {
+	      *s2 = '-';
+	    } else {
+	      *s2 = tolower (* (unsigned char *) s1);
+	    }
+	  }
 	  *s2 = 0;
 	  return (KEYSYM (buf));
 	}
--- a/src/event-stream.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/event-stream.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1205,6 +1205,34 @@
     }
 }
 
+int
+event_stream_wakeup_pending_p (int id, int async_p)
+{
+  struct timeout *timeout;
+  Lisp_Object rest = Qnil;
+  Lisp_Object timeout_list;
+  int found = 0;
+
+
+  if (async_p)
+    timeout_list = pending_async_timeout_list;
+  else
+    timeout_list = pending_timeout_list;
+
+  /* Find the element on the list of pending ones, if it's still there. */
+  LIST_LOOP (rest, timeout_list)
+    {
+      timeout = (struct timeout *) XOPAQUE_DATA (XCAR (rest));
+      if (timeout->id == id)
+	{
+	  found = 1;
+	  break;
+	}
+    }
+
+  return found;
+}
+
 
 /**** Asynch. timeout functions (see also signal.c) ****/
 
@@ -2400,6 +2428,13 @@
 	    and really need the processes to be handled. */
 	 || (!EQ (result, Qt) && event_stream_event_pending_p (0)))
     {
+      /* If our timeout has arrived, we move along. */
+      if (!event_stream_wakeup_pending_p (timeout_id, 0))
+	{
+	  timeout_enabled = 0;
+	  process = Qnil;	/* We're  done. */
+	}
+
       QUIT;	/* next_event_internal() does not QUIT, so check for ^G
 		   before reading output from the process - this makes it
 		   less likely that the filter will actually be aborted.
@@ -2426,17 +2461,8 @@
 	    break;
 	  }
 	case timeout_event:
-	  {
-	    if (timeout_enabled &&
-                XEVENT (event)->event.timeout.id_number == timeout_id)
-	      {
-                timeout_enabled = 0;
-		process = Qnil; /* we're done */
-	      }
-	    else	/* a timeout that's not the one we're waiting for */
-              goto EXECUTE_INTERNAL;
-	    break;
-	  }
+	  /* We execute the event even if it's ours, and notice that it's
+	     happened above. */
 	case pointer_motion_event:
 	case magic_event:
           {
@@ -2480,6 +2506,10 @@
   event = Fmake_event ();
   while (1)
     {
+      /* If our timeout has arrived, we move along. */
+      if (!event_stream_wakeup_pending_p (id, 0))
+	goto DONE_LABEL;
+
       QUIT;	/* next_event_internal() does not QUIT, so check for ^G
 		   before reading output from the process - this makes it
 		   less likely that the filter will actually be aborted.
@@ -2493,12 +2523,8 @@
       switch (XEVENT_TYPE (event))
 	{
 	case timeout_event:
-	  {
-	    if (XEVENT (event)->event.timeout.id_number == id)
-	      goto DONE_LABEL;
-            else
-              goto EXECUTE_INTERNAL;
-	  }
+	  /* We execute the event even if it's ours, and notice that it's
+	     happened above. */
 	case pointer_motion_event:
 	case process_event:
 	case magic_event:
@@ -2582,8 +2608,8 @@
 	  redisplay ();
 	}
 
-      /* If we're no longer waiting for a timeout, bug out. */
-      if (! id)
+      /* If our timeout has arrived, we move along. */
+      if (!event_stream_wakeup_pending_p (id, 0))
 	{
 	  result = Qt;
 	  goto DONE_LABEL;
@@ -2614,15 +2640,9 @@
 	    break;
 	  }
 	case timeout_event:
-	  {
-	    if (XEVENT (event)->event.timeout.id_number != id)
-	      /* a timeout that wasn't the one we're waiting for */
-	      goto EXECUTE_INTERNAL;
-	    id = 0;	/* assert that we are no longer waiting for it. */
-	    result = Qt;
-	    goto DONE_LABEL;
-	  }
-      default:
+	  /* We execute the event even if it's ours, and notice that it's
+	     happened above. */
+	default:
 	  {
 	  EXECUTE_INTERNAL:
 	    execute_internal_event (event);
@@ -2633,7 +2653,7 @@
 
  DONE_LABEL:
   /* If our timeout has not been signalled yet, disable it. */
-  if (id)
+  if (NILP (result))
     event_stream_disable_wakeup (id, 0);
 
   /* Put back the event (if any) that made Fsit_for() exit before the
--- a/src/fileio.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/fileio.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1815,7 +1815,7 @@
 last-modified time as the old one.  (This works on only some systems.)
 A prefix arg makes KEEP-TIME non-nil.
 */
-       (filename, newname, ok_if_already_exists, keep_date))
+       (filename, newname, ok_if_already_exists, keep_time))
 {
   /* This function can GC */
   int ifd, ofd, n;
@@ -1843,7 +1843,7 @@
   {
     UNGCPRO;
     return call5 (handler, Qcopy_file, filename, newname,
-		  ok_if_already_exists, keep_date);
+		  ok_if_already_exists, keep_time);
   }
 
   /* When second argument is a directory, copy the file into it.
@@ -1944,7 +1944,7 @@
 
     if (input_file_statable_p)
     {
-      if (!NILP (keep_date))
+      if (!NILP (keep_time))
       {
         EMACS_TIME atime, mtime;
         EMACS_SET_SECS_USECS (atime, st.st_atime, 0);
@@ -2923,8 +2923,8 @@
   handler = Ffind_file_name_handler (filename, Qinsert_file_contents);
   if (!NILP (handler))
     {
-      val = call8 (handler, Qinsert_file_contents, filename,
-		   visit, beg, end, replace, codesys, used_codesys);
+      val = call6 (handler, Qinsert_file_contents, filename,
+		   visit, beg, end, replace);
       goto handled;
     }
 
--- a/src/frame.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/frame.h	Mon Aug 13 09:04:33 2007 +0200
@@ -169,7 +169,7 @@
   unsigned int mirror_dirty :1;
 
   /* flag indicating if any window on this frame is displaying a subwindow */
-  int subwindows_being_displayed :1;
+  unsigned int subwindows_being_displayed :1;
 };
 
 /* If this is non-nil, it is the frame that make-frame is currently
--- a/src/glyphs-x.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/glyphs-x.c	Mon Aug 13 09:04:33 2007 +0200
@@ -984,9 +984,11 @@
 }
 
 static int
-xbm_possible_dest_types ()
+xbm_possible_dest_types (void)
 {
-  return IMAGE_MONO_PIXMAP_MASK | IMAGE_COLOR_PIXMAP_MASK |
+  return
+    IMAGE_MONO_PIXMAP_MASK  |
+    IMAGE_COLOR_PIXMAP_MASK |
     IMAGE_POINTER_MASK;
 }
 
@@ -1050,6 +1052,9 @@
 #include "jpeglib.h"
 #include "jerror.h"
 
+/* The in-core jpeg code doesn't work, so I'm avoiding it for now.  -sb  */
+#define USE_TEMP_FILES_FOR_JPEG_IMAGES 1
+
 static void
 jpeg_validate (Lisp_Object instantiator)
 {
@@ -1063,7 +1068,7 @@
 }
 
 static int
-jpeg_possible_dest_types ()
+jpeg_possible_dest_types (void)
 {
   return IMAGE_COLOR_PIXMAP_MASK;
 }
@@ -1269,7 +1274,7 @@
   unwind.dpy = dpy;
   record_unwind_protect (jpeg_instantiate_unwind, make_opaque_ptr (&unwind));
 
-#ifdef USE_TEMP_FILES_FOR_IMAGES
+#ifdef USE_TEMP_FILES_FOR_JPEG_IMAGES
   /* Step 0: Write out to a temp file.
 
      The JPEG routines require you to read from a file unless
@@ -1325,7 +1330,7 @@
 
   /* Step 2: specify data source (eg, a file) */
 
-#ifdef USE_FILEIO_FOR_IMAGES
+#ifdef USE_TEMP_FILES_FOR_JPEG_IMAGES
   jpeg_stdio_src (&cinfo, unwind.instream);
 #else
   {
@@ -1544,7 +1549,7 @@
 }
 
 static int
-gif_possible_dest_types ()
+gif_possible_dest_types (void)
 {
   return IMAGE_COLOR_PIXMAP_MASK;
 }
@@ -1865,7 +1870,7 @@
 }
 
 static int
-png_possible_dest_types ()
+png_possible_dest_types (void)
 {
   return IMAGE_COLOR_PIXMAP_MASK;
 }
@@ -2460,9 +2465,11 @@
 }
 
 static int
-xpm_possible_dest_types ()
+xpm_possible_dest_types (void)
 {
-  return IMAGE_MONO_PIXMAP_MASK | IMAGE_COLOR_PIXMAP_MASK |
+  return
+    IMAGE_MONO_PIXMAP_MASK  |
+    IMAGE_COLOR_PIXMAP_MASK |
     IMAGE_POINTER_MASK;
 }
 
@@ -2948,9 +2955,11 @@
 }
 
 static int
-xface_possible_dest_types ()
+xface_possible_dest_types (void)
 {
-  return IMAGE_MONO_PIXMAP_MASK | IMAGE_COLOR_PIXMAP_MASK |
+  return
+    IMAGE_MONO_PIXMAP_MASK  |
+    IMAGE_COLOR_PIXMAP_MASK |
     IMAGE_POINTER_MASK;
 }
 
@@ -3124,10 +3133,13 @@
 }
 
 static int
-autodetect_possible_dest_types ()
+autodetect_possible_dest_types (void)
 {
-  return IMAGE_MONO_PIXMAP_MASK | IMAGE_COLOR_PIXMAP_MASK |
-    IMAGE_POINTER_MASK | IMAGE_TEXT_MASK;
+  return
+    IMAGE_MONO_PIXMAP_MASK  |
+    IMAGE_COLOR_PIXMAP_MASK |
+    IMAGE_POINTER_MASK      |
+    IMAGE_TEXT_MASK;
 }
 
 static void
@@ -3222,7 +3234,7 @@
 }
 
 static int
-font_possible_dest_types ()
+font_possible_dest_types (void)
 {
   return IMAGE_POINTER_MASK;
 }
@@ -3320,7 +3332,7 @@
 }
 
 static int
-cursor_font_possible_dest_types ()
+cursor_font_possible_dest_types (void)
 {
   return IMAGE_POINTER_MASK;
 }
@@ -3925,6 +3937,7 @@
   BUILD_GLYPH_INST (Vtruncation_glyph, truncator);
   BUILD_GLYPH_INST (Vcontinuation_glyph, continuer);
   BUILD_GLYPH_INST (Vxemacs_logo, xemacs);
+  BUILD_GLYPH_INST (Vhscroll_glyph, hscroll);
 
 #undef BUILD_GLYPH_INST
 }
--- a/src/glyphs.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/glyphs.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1048,7 +1048,7 @@
 {
   Error_behavior errb = decode_error_behavior_flag (no_error);
 
-  return call_with_suspended_errors (make_image_instance_1,
+  return call_with_suspended_errors ((lisp_fn_t) make_image_instance_1,
 				     Qnil, Qimage, errb,
 				     3, data, device, dest_types);
 }
@@ -1318,7 +1318,7 @@
  ****************************************************************************/
 
 static int
-nothing_possible_dest_types ()
+nothing_possible_dest_types (void)
 {
   return IMAGE_NOTHING_MASK;
 }
@@ -1360,7 +1360,7 @@
 }
 
 static int
-inherit_possible_dest_types ()
+inherit_possible_dest_types (void)
 {
   return IMAGE_MONO_PIXMAP_MASK;
 }
@@ -1386,7 +1386,7 @@
 }
 
 static int
-string_possible_dest_types ()
+string_possible_dest_types (void)
 {
   return IMAGE_TEXT_MASK;
 }
@@ -1422,7 +1422,7 @@
 }
 
 static int
-formatted_string_possible_dest_types ()
+formatted_string_possible_dest_types (void)
 {
   return IMAGE_TEXT_MASK;
 }
@@ -1730,12 +1730,11 @@
       Lisp_Object newinst;
       Lisp_Object contype = XCAR (rest);
 
-      newinst = call_with_suspended_errors (normalize_image_instantiator,
-					    Qnil, Qimage, ERROR_ME_NOT,
-					    3, instantiator, contype,
-					    make_int
-					    (XIMAGE_SPECIFIER_ALLOWED
-					     (specifier)));
+      newinst = call_with_suspended_errors
+	((lisp_fn_t) normalize_image_instantiator,
+	 Qnil, Qimage, ERROR_ME_NOT, 3, instantiator, contype,
+	 make_int (XIMAGE_SPECIFIER_ALLOWED (specifier)));
+      
       if (!NILP (newinst))
 	{
 	  Lisp_Object newtag;
--- a/src/keymap.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/keymap.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1320,7 +1320,15 @@
 	 otherwise have the same problem as above.  (Gag!)  We silently
 	 accept these as aliases for the "real" names.
 	 */
-      else if (EQ (*keysym, QLFD))
+      else if (!strncmp(name, "kp_", 3)) {
+	/* Likewise, the obsolete keysym binding of kp_.* should not lose. */
+	char temp[50];
+
+	strncpy(temp, name, sizeof (temp));
+	temp[sizeof (temp) - 1] = '\0';
+	temp[2] = '-';
+	*keysym = Fintern_soft(make_string(temp, strlen(temp)), Qnil);
+      } else if (EQ (*keysym, QLFD))
 	*keysym = QKlinefeed;
       else if (EQ (*keysym, QTAB))
 	*keysym = QKtab;
--- a/src/lisp.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/lisp.h	Mon Aug 13 09:04:33 2007 +0200
@@ -1056,6 +1056,8 @@
 
 /*********** subr ***********/
 
+typedef Lisp_Object (*lisp_fn_t) (Lisp_Object, ...);
+     
 struct Lisp_Subr
 {
   struct lrecord_header lheader;
@@ -1063,7 +1065,7 @@
   CONST char *prompt;
   CONST char *doc;
   CONST char *name;
-  Lisp_Object (*subr_fn) ();
+  lisp_fn_t subr_fn;
 };
 
 DECLARE_LRECORD (subr, struct Lisp_Subr);
@@ -1419,8 +1421,8 @@
 
 #define DEFUN(lname, Fname, minargs, maxargs, prompt, arglist)		\
   Lisp_Object Fname (DEFUN_ ## maxargs arglist) ; /* See below */	\
-  static struct Lisp_Subr S##Fname					\
-    = { {lrecord_subr}, minargs, maxargs, prompt, 0, lname, Fname }; \
+  static struct Lisp_Subr S##Fname = { {lrecord_subr},			\
+	minargs, maxargs, prompt, 0, lname, (lisp_fn_t) Fname };	\
   Lisp_Object Fname (DEFUN_##maxargs arglist)
 
 
@@ -1743,14 +1745,6 @@
 
 /* Another try to fix SunPro C compiler warnings */
 /* "end-of-loop code not reached" */
-#ifdef __SUNPRO_C
-#define RETURN__ if (1) return
-#else
-#define RETURN__ return
-#endif
-
-/* Another try to fix SunPro C compiler warnings */
-/* "end-of-loop code not reached" */
 /* "statement not reached */
 #ifdef __SUNPRO_C
 #define RETURN__ if (1) return
--- a/src/lread.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/lread.c	Mon Aug 13 09:04:33 2007 +0200
@@ -576,8 +576,8 @@
   /* If file name is magic, call the handler.  */
   handler = Ffind_file_name_handler (file, Qload);
   if (!NILP (handler))
-    RETURN_UNGCPRO (call7 (handler, Qload, file, no_error, nomessage,
-			   nosuffix, codesys, used_codesys));
+    RETURN_UNGCPRO (call5 (handler, Qload, file, no_error,
+			   nomessage, nosuffix));
 
   /* Do this after the handler to avoid
      the need to gcpro noerror, nomessage and nosuffix.
--- a/src/lstream.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/lstream.c	Mon Aug 13 09:04:33 2007 +0200
@@ -690,6 +690,8 @@
 static int
 Lstream_pseudo_close (Lstream *lstr)
 {
+  int rc;
+
   if (!lstr->flags & LSTREAM_FL_IS_OPEN)
     {
       Lisp_Object obj = Qnil;
@@ -699,18 +701,20 @@
     }
 
   /* don't check errors here -- best not to risk file descriptor loss */
-  Lstream_flush (lstr);
+  rc = Lstream_flush (lstr);
 
-  return 0;
+  return rc;
 }
 
 int
 Lstream_close (Lstream *lstr)
 {
+  int rc =0;
+
   if (lstr->flags & LSTREAM_FL_IS_OPEN)
     {
       /* don't return here on error, or file descriptor leak will result. */
-      Lstream_pseudo_close (lstr);
+      rc = Lstream_pseudo_close (lstr);
       if (lstr->imp->closer)
 	{
 	  if ((lstr->imp->closer) (lstr) < 0)
@@ -743,7 +747,7 @@
       lstr->unget_buffer = 0;
     }
 
-  return 0;
+  return rc;
 }
 
 int
@@ -888,11 +892,11 @@
   int current_pos;
   int end_pos;
   int chars_sans_newline;
-  int closing :1;
-  int allow_quit :1;
-  int blocked_ok :1;
-  int pty_flushing :1;
-  int blocking_error_p :1;
+  unsigned int closing :1;
+  unsigned int allow_quit :1;
+  unsigned int blocked_ok :1;
+  unsigned int pty_flushing :1;
+  unsigned int blocking_error_p :1;
 };
 
 #define FILEDESC_STREAM_DATA(stream) LSTREAM_TYPE_DATA (stream, filedesc)
--- a/src/mem-limits.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/mem-limits.h	Mon Aug 13 09:04:33 2007 +0200
@@ -112,7 +112,7 @@
 
 #ifdef NO_LIM_DATA
 static void
-get_lim_data ()
+get_lim_data (void)
 {
   lim_data = -1;
 }
@@ -121,7 +121,7 @@
 #ifdef USG
 
 static void
-get_lim_data ()
+get_lim_data (void)
 {
   extern long ulimit ();
     
@@ -145,7 +145,7 @@
 #ifdef WINDOWSNT
 
 static void
-get_lim_data ()
+get_lim_data (void)
 {
   extern unsigned long data_region_size;
   lim_data = data_region_size;
@@ -156,7 +156,7 @@
 
 #ifdef MSDOS
 void
-get_lim_data ()
+get_lim_data (void)
 {
   _go32_dpmi_meminfo info;
 
@@ -165,7 +165,7 @@
 }
 #else /* not MSDOS */
 static void
-get_lim_data ()
+get_lim_data (void)
 {
   lim_data = vlimit (LIM_DATA, -1);
 }
@@ -174,7 +174,7 @@
 #else /* BSD4_2 */
 
 static void
-get_lim_data ()
+get_lim_data (void)
 {
   struct rlimit XXrlimit;
 
--- a/src/mule-canna.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/mule-canna.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1515,7 +1515,7 @@
     {
       if ((unsigned char) ch == ISO_CODE_SS2)
 	{
-	  *mp++ = LEADING_BYTE_JAPANESE_JISX0201_KANA;
+	  *mp++ = LEADING_BYTE_KATAKANA_JISX0201;
 	  cp++;
 	}
       else if ((unsigned char) ch == ISO_CODE_SS3)
@@ -1545,7 +1545,7 @@
     {
       switch (ch)
 	{
-	case LEADING_BYTE_JAPANESE_JISX0201_KANA:
+	case LEADING_BYTE_KATAKANA_JISX0201:
 	  *cp++ = ISO_CODE_SS2;
 	  *cp++ = *mp++;
 	  break;
--- a/src/mule-charset.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/mule-charset.c	Mon Aug 13 09:04:33 2007 +0200
@@ -37,22 +37,22 @@
 
 Lisp_Object Vcharset_ascii;
 Lisp_Object Vcharset_control_1;
-Lisp_Object Vcharset_latin_1;
-Lisp_Object Vcharset_latin_2;
-Lisp_Object Vcharset_latin_3;
-Lisp_Object Vcharset_latin_4;
-Lisp_Object Vcharset_cyrillic;
-Lisp_Object Vcharset_arabic;
-Lisp_Object Vcharset_greek;
-Lisp_Object Vcharset_hebrew;
-Lisp_Object Vcharset_latin_5;
-Lisp_Object Vcharset_thai;
-Lisp_Object Vcharset_japanese_jisx0201_kana;
-Lisp_Object Vcharset_japanese_jisx0201_roman;
+Lisp_Object Vcharset_latin_iso8859_1;
+Lisp_Object Vcharset_latin_iso8859_2;
+Lisp_Object Vcharset_latin_iso8859_3;
+Lisp_Object Vcharset_latin_iso8859_4;
+Lisp_Object Vcharset_cyrillic_iso8859_5;
+Lisp_Object Vcharset_arabic_iso8859_6;
+Lisp_Object Vcharset_greek_iso8859_7;
+Lisp_Object Vcharset_hebrew_iso8859_8;
+Lisp_Object Vcharset_latin_iso8859_9;
+Lisp_Object Vcharset_thai_tis620;
+Lisp_Object Vcharset_katakana_jisx0201;
+Lisp_Object Vcharset_latin_jisx0201;
 Lisp_Object Vcharset_japanese_jisx0208_1978;
 Lisp_Object Vcharset_japanese_jisx0208;
 Lisp_Object Vcharset_japanese_jisx0212;
-Lisp_Object Vcharset_chinese_gb;
+Lisp_Object Vcharset_chinese_gb2312;
 Lisp_Object Vcharset_chinese_big5_1;
 Lisp_Object Vcharset_chinese_big5_2;
 Lisp_Object Vcharset_chinese_cns11643_1;
@@ -111,16 +111,27 @@
 Lisp_Object Qreverse_direction_charset;
 Lisp_Object Qccl_program;
 
-Lisp_Object Qascii, Qcontrol_1, Qlatin_1, Qlatin_2, Qlatin_3, Qlatin_4, Qlatin_5,
-  Qthai, Qarabic, Qhebrew, Qgreek, Qcyrillic,
+Lisp_Object Qascii, Qcontrol_1,
   
-  Qjapanese_jisx0201_kana,
-  Qjapanese_jisx0201_roman,
+  Qlatin_iso8859_1,
+  Qlatin_iso8859_2,
+  Qlatin_iso8859_3,
+  Qlatin_iso8859_4,
+  Qcyrillic_iso8859_5,
+  Qarabic_iso8859_6,
+  Qgreek_iso8859_7,
+  Qhebrew_iso8859_8,
+  Qlatin_iso8859_9,
+  
+  Qthai_tis620,
+  
+  Qkatakana_jisx0201, Qlatin_jisx0201,
   Qjapanese_jisx0208_1978,
   Qjapanese_jisx0208,
   Qjapanese_jisx0212,
   
-  Qchinese_gb, Qchinese_big5_1, Qchinese_big5_2,
+  Qchinese_gb2312,
+  Qchinese_big5_1, Qchinese_big5_2,
   Qchinese_cns11643_1, Qchinese_cns11643_2,
   
   Qkorean_ksc5601, Qcomposite;
@@ -1163,34 +1174,35 @@
   defsymbol (&Ql2r, "l2r");
   defsymbol (&Qr2l, "r2l");
 
-  /* Charsets */
-  defsymbol (&Qascii, "ascii");
-  defsymbol (&Qcontrol_1, "control-1");
-  defsymbol (&Qlatin_1, "latin-1");
-  defsymbol (&Qlatin_2, "latin-2");
-  defsymbol (&Qlatin_3, "latin-3");
-  defsymbol (&Qlatin_4, "latin-4");
-  defsymbol (&Qcyrillic, "cyrillic");
-  defsymbol (&Qarabic, "arabic");
-  defsymbol (&Qgreek, "greek");
-  defsymbol (&Qhebrew, "hebrew");
-  defsymbol (&Qlatin_5, "latin-5");
-  defsymbol (&Qthai, "thai");
+  /* Charsets, compatible with Emacs/Mule 19.33-delta
+     Naming convention is Script-Charset[-Edition] */
+  defsymbol (&Qascii,			"ascii");
+  defsymbol (&Qcontrol_1,		"control-1");
+  defsymbol (&Qlatin_iso8859_1,		"latin-iso8859-1");
+  defsymbol (&Qlatin_iso8859_2,		"latin-iso8859-2");
+  defsymbol (&Qlatin_iso8859_3,		"latin-iso8859-3");
+  defsymbol (&Qlatin_iso8859_4,		"latin-iso8859-4");
+  defsymbol (&Qcyrillic_iso8859_5, 	"cyrillic-iso8859-5");
+  defsymbol (&Qarabic_iso8859_6,	"arabic-iso8859-6");
+  defsymbol (&Qgreek_iso8859_7,		"greek-iso8859-7");
+  defsymbol (&Qhebrew_iso8859_8,	"hebrew-iso8859-8");
+  defsymbol (&Qlatin_iso8859_9,		"latin-iso8859-9");
+  defsymbol (&Qthai_tis620,		"thai-tis620");
   
-  defsymbol (&Qjapanese_jisx0201_kana,	"japanese-jisx0201-kana");
-  defsymbol (&Qjapanese_jisx0201_roman,	"japanese-jisx0201-roman");
+  defsymbol (&Qkatakana_jisx0201,	"katakana-jisx0201");
+  defsymbol (&Qlatin_jisx0201,		"latin-jisx0201");
   defsymbol (&Qjapanese_jisx0208_1978,	"japanese-jisx0208-1978");
   defsymbol (&Qjapanese_jisx0208, 	"japanese-jisx0208");
   defsymbol (&Qjapanese_jisx0212,	"japanese-jisx0212");
   
-  defsymbol (&Qchinese_gb, "chinese-gb");
-  defsymbol (&Qchinese_big5_1, "chinese-big5-1");
-  defsymbol (&Qchinese_big5_2, "chinese-big5-2");
-  defsymbol (&Qchinese_cns11643_1, "chinese-cns11643-1");
-  defsymbol (&Qchinese_cns11643_2, "chinese-cns11643-2");
+  defsymbol (&Qchinese_gb2312,		"chinese-gb2312");
+  defsymbol (&Qchinese_big5_1,		"chinese-big5-1");
+  defsymbol (&Qchinese_big5_2,		"chinese-big5-2");
+  defsymbol (&Qchinese_cns11643_1,	"chinese-cns11643-1");
+  defsymbol (&Qchinese_cns11643_2,	"chinese-cns11643-2");
   
-  defsymbol (&Qkorean_ksc5601, "korean-ksc5601");
-  defsymbol (&Qcomposite, "composite");
+  defsymbol (&Qkorean_ksc5601,		"korean-ksc5601");
+  defsymbol (&Qcomposite,		"composite");
 }
 
 void
@@ -1237,78 +1249,78 @@
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Control characters"),
 		  build_string (""));
-  Vcharset_latin_1 =
-    make_charset (Qlatin_1, LEADING_BYTE_LATIN_1, 2,
+  Vcharset_latin_iso8859_1 =
+    make_charset (Qlatin_iso8859_1, LEADING_BYTE_LATIN_ISO8859_1, 2,
 		  CHARSET_TYPE_96, 1, 1, 'A',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Latin-1"),
 		  build_string ("ISO8859-1"));
-  Vcharset_latin_2 =
-    make_charset (Qlatin_2, LEADING_BYTE_LATIN_2, 2,
+  Vcharset_latin_iso8859_2 =
+    make_charset (Qlatin_iso8859_2, LEADING_BYTE_LATIN_ISO8859_2, 2,
 		  CHARSET_TYPE_96, 1, 1, 'B',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Latin-2"),
 		  build_string ("ISO8859-2"));
-  Vcharset_latin_3 =
-    make_charset (Qlatin_3, LEADING_BYTE_LATIN_3, 2,
+  Vcharset_latin_iso8859_3 =
+    make_charset (Qlatin_iso8859_3, LEADING_BYTE_LATIN_ISO8859_3, 2,
 		  CHARSET_TYPE_96, 1, 1, 'C',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Latin-3"),
 		  build_string ("ISO8859-3"));
-  Vcharset_latin_4 =
-    make_charset (Qlatin_4, LEADING_BYTE_LATIN_4, 2,
+  Vcharset_latin_iso8859_4 =
+    make_charset (Qlatin_iso8859_4, LEADING_BYTE_LATIN_ISO8859_4, 2,
 		  CHARSET_TYPE_96, 1, 1, 'D',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Latin-4"),
 		  build_string ("ISO8859-4"));
-  Vcharset_cyrillic =
-    make_charset (Qcyrillic, LEADING_BYTE_CYRILLIC, 2,
+  Vcharset_cyrillic_iso8859_5 =
+    make_charset (Qcyrillic_iso8859_5, LEADING_BYTE_CYRILLIC_ISO8859_5, 2,
 		  CHARSET_TYPE_96, 1, 1, 'L',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Cyrillic"),
 		  build_string ("ISO8859-5"));
-  Vcharset_arabic =
-    make_charset (Qarabic, LEADING_BYTE_ARABIC, 2,
+  Vcharset_arabic_iso8859_6 =
+    make_charset (Qarabic_iso8859_6, LEADING_BYTE_ARABIC_ISO8859_6, 2,
 		  CHARSET_TYPE_96, 1, 1, 'G',
 		  CHARSET_RIGHT_TO_LEFT,
 		  build_string ("Arabic"),
 		  build_string ("ISO8859-6"));
-  Vcharset_greek =
-    make_charset (Qgreek, LEADING_BYTE_GREEK, 2,
+  Vcharset_greek_iso8859_7 =
+    make_charset (Qgreek_iso8859_7, LEADING_BYTE_GREEK_ISO8859_7, 2,
 		  CHARSET_TYPE_96, 1, 1, 'F',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Greek"),
 		  build_string ("ISO8859-7"));
-  Vcharset_hebrew =
-    make_charset (Qhebrew, LEADING_BYTE_HEBREW, 2,
+  Vcharset_hebrew_iso8859_8 =
+    make_charset (Qhebrew_iso8859_8, LEADING_BYTE_HEBREW_ISO8859_8, 2,
 		  CHARSET_TYPE_96, 1, 1, 'H',
 		  CHARSET_RIGHT_TO_LEFT,
 		  build_string ("Hebrew"),
 		  build_string ("ISO8859-8"));
-  Vcharset_latin_5 =
-    make_charset (Qlatin_5, LEADING_BYTE_LATIN_5, 2,
+  Vcharset_latin_iso8859_9 =
+    make_charset (Qlatin_iso8859_9, LEADING_BYTE_LATIN_ISO8859_9, 2,
 		  CHARSET_TYPE_96, 1, 1, 'M',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Latin-5"),
 		  build_string ("ISO8859-9"));
-  Vcharset_thai =
-    make_charset (Qthai, LEADING_BYTE_THAI, 2,
+  Vcharset_thai_tis620 =
+    make_charset (Qthai_tis620, LEADING_BYTE_THAI_TIS620, 2,
 		  CHARSET_TYPE_96, 1, 1, 'T',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Thai"),
 		  build_string ("TIS620"));
 
   /* Japanese */
-  Vcharset_japanese_jisx0201_kana =
-    make_charset (Qjapanese_jisx0201_kana,
-		  LEADING_BYTE_JAPANESE_JISX0201_KANA, 2,
+  Vcharset_katakana_jisx0201 =
+    make_charset (Qkatakana_jisx0201,
+		  LEADING_BYTE_KATAKANA_JISX0201, 2,
 		  CHARSET_TYPE_94, 1, 1, 'I',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Japanese Katakana"),
 		  build_string ("JISX0201.1976"));
-  Vcharset_japanese_jisx0201_roman =
-    make_charset (Qjapanese_jisx0201_roman,
-		  LEADING_BYTE_JAPANESE_JISX0201_ROMAN, 2,
+  Vcharset_latin_jisx0201 =
+    make_charset (Qlatin_jisx0201,
+		  LEADING_BYTE_LATIN_JISX0201, 2,
 		  CHARSET_TYPE_94, 1, 0, 'J',
 		  CHARSET_LEFT_TO_RIGHT,
 		  build_string ("Japanese Roman"),
@@ -1336,11 +1348,11 @@
 		  build_string ("JISX0212"));
 
   /* Chinese */
-  Vcharset_chinese_gb =
-    make_charset (Qchinese_gb, LEADING_BYTE_CHINESE_GB, 3,
+  Vcharset_chinese_gb2312 =
+    make_charset (Qchinese_gb2312, LEADING_BYTE_CHINESE_GB2312, 3,
 		  CHARSET_TYPE_94X94, 2, 0, 'A',
 		  CHARSET_LEFT_TO_RIGHT,
-		  build_string ("Chinese GB"),
+		  build_string ("Chinese GB2312"),
 		  build_string ("GB2312"));
 #define CHINESE_CNS_PLANE_RE(n) "CNS11643[.-]\\(.*[.-]\\)?" n "$"
   Vcharset_chinese_cns11643_1 =
--- a/src/mule-charset.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/mule-charset.h	Mon Aug 13 09:04:33 2007 +0200
@@ -137,32 +137,31 @@
 
    This encompasses the character sets:
    - Printing-ASCII,
-   - Japanese-JISX0201-Kana (half-width katakana, the right half of JISX0201).
+   - Katakana-JISX0201 (half-width katakana, the right half of JISX0201).
    - Japanese-JISX0208
    - Japanese-JISX0212
    It uses 8-bit bytes.
 
-   Note that Printing-ASCII and Japanese-JISX0201-Kana are 94-character
+   Note that Printing-ASCII and Katakana-JISX0201 are 94-character
    charsets, while Japanese-JISX0208 is a 94x94-character charset.
 
    The encoding is as follows:
 
-   Character set		Representation  (PC == position-code)
-   -------------		--------------
-   Printing-ASCII		PC-1
-   Japanese-JISX0208		PC-1 + 0x80 / PC-2 + 0x80
-   Japanese-JISX0201-Kana	0x8E / PC-1 + 0x80
+   Character set	Representation  (PC == position-code)
+   -------------	--------------
+   Printing-ASCII	PC1
+   Japanese-JISX0208	PC1 + 0x80 | PC2 + 0x80
+   Katakana-JISX0201	0x8E       | PC1 + 0x80
 
 
    B. JIS7
 
    This encompasses the character sets:
    - Printing-ASCII
-   - Japanese-JISX0201-Roman (the left half of JISX0201; this
-     character set is very similar to Printing-ASCII and is a
-     94-character charset)
+   - Latin-JISX0201 (the left half of JISX0201; this character set is
+     very similar to Printing-ASCII and is a 94-character charset)
    - Japanese-JISX0208
-   - Japanese-JISX0201-Kana.
+   - Katakana-JISX0201
    It uses 7-bit bytes.
 
    Unlike Japanese EUC, this is a "modal" encoding, which
@@ -173,18 +172,18 @@
 
    The encoding is as follows:
 
-   Character set		Representation
-   -------------		--------------
-   Printing-ASCII		PC-1
-   Japanese-JISX0201-Roman	PC-1
-   Japanese-JISX0201-Kana	PC-1
-   Japanese-JISX0208		PC-1 / PC-2
+   Character set	Representation
+   -------------	--------------
+   Printing-ASCII	PC1
+   Latin-JISX0201	PC1
+   Katakana-JISX0201	PC1
+   Japanese-JISX0208	PC1 | PC2
 
    Escape sequence	ASCII equivalent  Meaning
    ---------------	----------------  -------
    0x1B 0x28 0x42	ESC ( B		  invoke Printing-ASCII
-   0x1B 0x28 0x4A	ESC ( J		  invoke Japanese-JISX0201-Roman
-   0x1B 0x28 0x49	ESC ( I		  invoke Japanese-JISX0201-Kana
+   0x1B 0x28 0x4A	ESC ( J		  invoke Latin-JISX0201
+   0x1B 0x28 0x49	ESC ( I		  invoke Katakana-JISX0201
    0x1B 0x24 0x42	ESC $ B		  invoke Japanese-JISX0208
 
    Initially, Printing-ASCII is invoked.
@@ -333,26 +332,26 @@
 
 /** The following are for 1-byte characters in an official charset. **/
 
-#define LEADING_BYTE_LATIN_1		0x81 /* Right half of ISO 8859-1 */
-#define LEADING_BYTE_LATIN_2		0x82 /* Right half of ISO 8859-2 */
-#define LEADING_BYTE_LATIN_3		0x83 /* Right half of ISO 8859-3 */
-#define LEADING_BYTE_LATIN_4		0x84 /* Right half of ISO 8859-4 */
-#define LEADING_BYTE_THAI		0x85 /* TIS620-2533 */
-#define LEADING_BYTE_GREEK		0x86 /* Right half of ISO 8859-7 */
-#define LEADING_BYTE_ARABIC		0x87 /* Right half of ISO 8859-6 */
-#define LEADING_BYTE_HEBREW		0x88 /* Right half of ISO 8859-8 */
-#define LEADING_BYTE_JAPANESE_JISX0201_KANA  0x89 /* Right half of JIS X0201-1976 */
-#define LEADING_BYTE_JAPANESE_JISX0201_ROMAN 0x8A /* Left  half of JIS X0201-1976 */
-#define LEADING_BYTE_CYRILLIC		0x8C /* Right half of ISO 8859-5 */
-#define LEADING_BYTE_LATIN_5		0x8D /* Right half of ISO 8859-9 */
+#define LEADING_BYTE_LATIN_ISO8859_1	0x81 /* Right half of ISO 8859-1 */
+#define LEADING_BYTE_LATIN_ISO8859_2	0x82 /* Right half of ISO 8859-2 */
+#define LEADING_BYTE_LATIN_ISO8859_3	0x83 /* Right half of ISO 8859-3 */
+#define LEADING_BYTE_LATIN_ISO8859_4	0x84 /* Right half of ISO 8859-4 */
+#define LEADING_BYTE_THAI_TIS620	0x85 /* TIS620-2533 */
+#define LEADING_BYTE_GREEK_ISO8859_7	0x86 /* Right half of ISO 8859-7 */
+#define LEADING_BYTE_ARABIC_ISO8859_6	0x87 /* Right half of ISO 8859-6 */
+#define LEADING_BYTE_HEBREW_ISO8859_8	0x88 /* Right half of ISO 8859-8 */
+#define LEADING_BYTE_KATAKANA_JISX0201	0x89 /* Right half of JIS X0201-1976 */
+#define LEADING_BYTE_LATIN_JISX0201	0x8A /* Left  half of JIS X0201-1976 */
+#define LEADING_BYTE_CYRILLIC_ISO8859_5	0x8C /* Right half of ISO 8859-5 */
+#define LEADING_BYTE_LATIN_ISO8859_9	0x8D /* Right half of ISO 8859-9 */
 
-#define MIN_LEADING_BYTE_OFFICIAL_1	LEADING_BYTE_LATIN_1
-#define MAX_LEADING_BYTE_OFFICIAL_1	LEADING_BYTE_LATIN_5
+#define MIN_LEADING_BYTE_OFFICIAL_1	LEADING_BYTE_LATIN_ISO8859_1
+#define MAX_LEADING_BYTE_OFFICIAL_1	LEADING_BYTE_LATIN_ISO8859_9
 
 /** The following are for 2-byte characters in an official charset. **/
 
 #define LEADING_BYTE_JAPANESE_JISX0208_1978 0x90/* Japanese JIS X0208-1978 */
-#define LEADING_BYTE_CHINESE_GB		0x91	/* Chinese Hanzi GB2312-1980 */
+#define LEADING_BYTE_CHINESE_GB2312	0x91	/* Chinese Hanzi GB2312-1980 */
 #define LEADING_BYTE_JAPANESE_JISX0208	0x92	/* Japanese JIS X0208-1983 */
 #define LEADING_BYTE_KOREAN_KSC5601	0x93	/* Hangul KS C5601-1987 */
 #define LEADING_BYTE_JAPANESE_JISX0212	0x94	/* Japanese JIS X0212-1990 */
@@ -403,11 +402,10 @@
 /* Given a private leading byte, return the leading byte prefix stored
    in a string */
 
-#define PRIVATE_LEADING_BYTE_PREFIX(lb)				\
-  ((lb) < MIN_LEADING_BYTE_PRIVATE_2 ? PRE_LEADING_BYTE_PRIVATE_1	\
-   : PRE_LEADING_BYTE_PRIVATE_2)
-
-
+#define PRIVATE_LEADING_BYTE_PREFIX(lb)	\
+  ((lb) < MIN_LEADING_BYTE_PRIVATE_2 ?	\
+   PRE_LEADING_BYTE_PRIVATE_1 :		\
+   PRE_LEADING_BYTE_PRIVATE_2)
 
 
 /************************************************************************/
@@ -486,13 +484,13 @@
 #define CHECK_CHARSET(x) CHECK_RECORD (x, charset)
 #define CONCHECK_CHARSET(x) CONCHECK_RECORD (x, charset)
 
-#define CHARSET_TYPE_94  0	/* This charset includes 94    characters. */
-#define CHARSET_TYPE_96  1	/* This charset includes 96    characters. */
+#define CHARSET_TYPE_94    0	/* This charset includes 94    characters. */
+#define CHARSET_TYPE_96    1	/* This charset includes 96    characters. */
 #define CHARSET_TYPE_94X94 2	/* This charset includes 94x94 characters. */
 #define CHARSET_TYPE_96X96 3	/* This charset includes 96x96 characters. */
 
-#define CHARSET_LEFT_TO_RIGHT		0
-#define CHARSET_RIGHT_TO_LEFT		1
+#define CHARSET_LEFT_TO_RIGHT	0
+#define CHARSET_RIGHT_TO_LEFT	1
 
 #define CHARSET_NAME(cs)	 ((cs)->name)
 #define CHARSET_LEADING_BYTE(cs) ((cs)->leading_byte)
@@ -507,24 +505,21 @@
 #define CHARSET_CCL_PROGRAM(cs)  ((cs)->ccl_program)
 #define CHARSET_REVERSE_DIRECTION_CHARSET(cs) ((cs)->reverse_direction_charset)
 
-INLINE int CHARSET_DIMENSION (struct Lisp_Charset *cs);
 INLINE int
 CHARSET_DIMENSION (struct Lisp_Charset *cs)
 {
-  return (CHARSET_TYPE (cs) == CHARSET_TYPE_94 ||
-          CHARSET_TYPE (cs) == CHARSET_TYPE_96) ? 1 : 2;
+  /* Optimized using inside knowledge of CHARSET_TYPE values */
+  return (CHARSET_TYPE (cs) <= CHARSET_TYPE_96) ? 1 : 2;
 }
 
-INLINE int CHARSET_CHARS (struct Lisp_Charset *cs);
 INLINE int
 CHARSET_CHARS (struct Lisp_Charset *cs)
 {
-  return (CHARSET_TYPE (cs) == CHARSET_TYPE_94 ||
-          CHARSET_TYPE (cs) == CHARSET_TYPE_94X94) ? 94 : 96;
+  /* Optimized using inside knowledge of CHARSET_TYPE values */
+  return (CHARSET_TYPE (cs) & 0x1) ? 96 : 94;
 }
 
-#define CHARSET_PRIVATE_P(cs) \
-  LEADING_BYTE_PRIVATE_P (CHARSET_LEADING_BYTE (cs))
+#define CHARSET_PRIVATE_P(cs) LEADING_BYTE_PRIVATE_P (CHARSET_LEADING_BYTE (cs))
 
 #define XCHARSET_NAME(cs)	  CHARSET_NAME         (XCHARSET (cs))
 #define XCHARSET_REP_BYTES(cs)	  CHARSET_REP_BYTES    (XCHARSET (cs))
@@ -598,23 +593,23 @@
 
 extern Lisp_Object Vcharset_ascii;
 extern Lisp_Object Vcharset_control_1;
-extern Lisp_Object Vcharset_latin_1;
-extern Lisp_Object Vcharset_latin_2;
-extern Lisp_Object Vcharset_latin_3;
-extern Lisp_Object Vcharset_latin_4;
-extern Lisp_Object Vcharset_latin_5;
-extern Lisp_Object Vcharset_greek;
-extern Lisp_Object Vcharset_thai;
-extern Lisp_Object Vcharset_arabic;
-extern Lisp_Object Vcharset_hebrew;
-extern Lisp_Object Vcharset_cyrillic;
-extern Lisp_Object Vcharset_japanese_jisx0201_kana;
-extern Lisp_Object Vcharset_japanese_jisx0201_roman;
+extern Lisp_Object Vcharset_latin_iso8859_1;
+extern Lisp_Object Vcharset_latin_iso8859_2;
+extern Lisp_Object Vcharset_latin_iso8859_3;
+extern Lisp_Object Vcharset_latin_iso8859_4;
+extern Lisp_Object Vcharset_cyrillic_iso8859_5;
+extern Lisp_Object Vcharset_arabic_iso8859_6;
+extern Lisp_Object Vcharset_greek_iso8859_7;
+extern Lisp_Object Vcharset_hebrew_iso8859_8;
+extern Lisp_Object Vcharset_latin_iso8859_9;
+extern Lisp_Object Vcharset_thai_tis620;
+extern Lisp_Object Vcharset_katakana_jisx0201;
+extern Lisp_Object Vcharset_latin_jisx0201;
 extern Lisp_Object Vcharset_japanese_jisx0208_1978;
 extern Lisp_Object Vcharset_japanese_jisx0208;
 extern Lisp_Object Vcharset_japanese_jisx0212;
 extern Lisp_Object Vcharset_korean_ksc5601;
-extern Lisp_Object Vcharset_chinese_gb;
+extern Lisp_Object Vcharset_chinese_gb2312;
 extern Lisp_Object Vcharset_chinese_big5_1;
 extern Lisp_Object Vcharset_chinese_big5_2;
 extern Lisp_Object Vcharset_chinese_cns11643_1;
--- a/src/mule-coding.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/mule-coding.c	Mon Aug 13 09:04:33 2007 +0200
@@ -123,34 +123,34 @@
      sequence literally into the output stream, and later on
      insert the corresponding direction-restoring escape sequence
      literally also. */
-  int switched_dir_and_no_valid_charset_yet :1;
-  int invalid_switch_dir :1;
+  unsigned int switched_dir_and_no_valid_charset_yet :1;
+  unsigned int invalid_switch_dir :1;
 
   /* Tells the decoder to output the escape sequence literally
      even though it was valid.  Used in the games we play to
      avoid lossage when we encounter invalid designations. */
-  int output_literally :1;
+  unsigned int output_literally :1;
   /* We encountered a direction switch followed by an invalid
      designation.  We didn't output the direction switch
      literally because we didn't know about the invalid designation;
      but we have to do so now. */
-  int output_direction_sequence :1;
+  unsigned int output_direction_sequence :1;
 };
 
 Lisp_Object Fcopy_coding_system (Lisp_Object old_coding_system,
 				 Lisp_Object new_name);
 struct detection_state;
-static int detect_coding_shift_jis (struct detection_state *st,
-				    CONST unsigned char *src,
-				    unsigned int n);
-static void decode_coding_shift_jis (Lstream *decoding,
-				     CONST unsigned char *src,
-				     unsigned_char_dynarr *dst,
-				     unsigned int n);
-static void encode_coding_shift_jis (Lstream *encoding,
-				     CONST unsigned char *src,
-				     unsigned_char_dynarr *dst,
-				     unsigned int n);
+static int detect_coding_sjis (struct detection_state *st,
+			       CONST unsigned char *src,
+			       unsigned int n);
+static void decode_coding_sjis (Lstream *decoding,
+				CONST unsigned char *src,
+				unsigned_char_dynarr *dst,
+				unsigned int n);
+static void encode_coding_sjis (Lstream *encoding,
+				CONST unsigned char *src,
+				unsigned_char_dynarr *dst,
+				unsigned int n);
 static int detect_coding_big5 (struct detection_state *st,
 			       CONST unsigned char *src,
 			       unsigned int n);
@@ -1232,10 +1232,10 @@
       struct iso2022_decoder iso;
       unsigned int flags;
       int high_byte_count;
-      int saw_single_shift:1;
+      unsigned int saw_single_shift:1;
     }
   iso2022;
-  
+
   struct
     {
       int seen_anything;
@@ -1354,7 +1354,7 @@
   if (!mask_has_at_most_one_bit_p (st->iso2022.mask))
     st->iso2022.mask = detect_coding_iso2022 (st, src, n);
   if (!mask_has_at_most_one_bit_p (st->shift_jis.mask))
-    st->shift_jis.mask = detect_coding_shift_jis (st, src, n);
+    st->shift_jis.mask = detect_coding_sjis (st, src, n);
   if (!mask_has_at_most_one_bit_p (st->big5.mask))
     st->big5.mask = detect_coding_big5 (st, src, n);
 
@@ -1588,7 +1588,7 @@
     }						\
   else						\
     {						\
-      Dynarr_add (dst, LEADING_BYTE_LATIN_1);	\
+      Dynarr_add (dst, LEADING_BYTE_LATIN_ISO8859_1); \
       Dynarr_add (dst, c);			\
     }						\
 } while (0)
@@ -1602,14 +1602,12 @@
     }					\
 } while (0)
 
-#define DECODE_HANDLE_END_OF_CONVERSION(flags, ch, dst)\
-do {							\
-  DECODE_OUTPUT_PARTIAL_CHAR (ch);			\
-  if (flags & CODING_STATE_END)				\
-    {							\
-      if (flags & CODING_STATE_CR)			\
-	Dynarr_add (dst, '\r');				\
-    }							\
+#define DECODE_HANDLE_END_OF_CONVERSION(flags, ch, dst)	\
+do {					\
+  DECODE_OUTPUT_PARTIAL_CHAR (ch);	\
+  if ((flags & CODING_STATE_END) &&	\
+      (flags & CODING_STATE_CR))	\
+    Dynarr_add (dst, '\r');		\
 } while (0)
 
 #define DECODING_STREAM_DATA(stream) LSTREAM_TYPE_DATA (stream, decoding)
@@ -1950,7 +1948,7 @@
       decode_coding_no_conversion (decoding, src, dst, n);
       break;
     case CODESYS_SHIFT_JIS:
-      decode_coding_shift_jis (decoding, src, dst, n);
+      decode_coding_sjis (decoding, src, dst, n);
       break;
     case CODESYS_BIG5:
       decode_coding_big5 (decoding, src, dst, n);
@@ -1994,7 +1992,7 @@
 
   get_buffer_range_char (buf, start, end, &b, &e, 0);
   coding_system = Fget_coding_system (coding_system);
-  instream = make_lisp_buffer_input_stream (buf, b, e, 0);
+  instream  = make_lisp_buffer_input_stream  (buf, b, e, 0);
   outstream = make_lisp_buffer_output_stream (buf, b, 0);
   outstream = make_decoding_output_stream (XLSTREAM (outstream),
 					   coding_system);
@@ -2349,7 +2347,7 @@
       encode_coding_no_conversion (encoding, src, dst, n);
       break;
     case CODESYS_SHIFT_JIS:
-      encode_coding_shift_jis (encoding, src, dst, n);
+      encode_coding_sjis (encoding, src, dst, n);
       break;
     case CODESYS_BIG5:
       encode_coding_big5 (encoding, src, dst, n);
@@ -2382,7 +2380,7 @@
 
   get_buffer_range_char (buf, start, end, &b, &e, 0);
   coding_system = Fget_coding_system (coding_system);
-  instream = make_lisp_buffer_input_stream (buf, b, e, 0);
+  instream  = make_lisp_buffer_input_stream  (buf, b, e, 0);
   outstream = make_lisp_buffer_output_stream (buf, b, 0);
   outstream = make_decoding_output_stream (XLSTREAM (outstream),
 					   Fget_coding_system (Qbinary));
@@ -2396,7 +2394,6 @@
                      ------> [ENCODE AS SPECIFIED]
 		             ------> [DECODE AS BINARY]
 			             ------> [BUFFER]
-
    */
   while (1)
     {
@@ -2449,15 +2446,15 @@
 
 /* Is this the first byte of a Shift-JIS two-byte char? */
 
-#define BYTE_SHIFT_JIS_TWO_BYTE_1_P(c)					\
+#define BYTE_SJIS_TWO_BYTE_1_P(c) \
   (((c) >= 0x81 && (c) <= 0x9F) || ((c) >= 0xE0 && (c) <= 0xEF))
 
 /* Is this the second byte of a Shift-JIS two-byte char? */
 
-#define BYTE_SHIFT_JIS_TWO_BYTE_2_P(c)					\
+#define BYTE_SJIS_TWO_BYTE_2_P(c) \
   (((c) >= 0x40 && (c) <= 0x7E) || ((c) >= 0x80 && (c) <= 0xFC))
 
-#define BYTE_SHIFT_JIS_KATAKANA_P(c)					\
+#define BYTE_SJIS_KATAKANA_P(c)	\
   ((c) >= 0xA1 && (c) <= 0xDF)
 
 /* Code conversion macros.  These are macros because they are used in
@@ -2472,61 +2469,35 @@
 /* Convert shift-JIS code (sj1, sj2) into internal string
    representation (c1, c2). (The leading byte is assumed.) */
 
-#define DECODE_SHIFT_JIS(sj1, sj2, c1, c2) do	\
-{						\
-  int I1 = sj1, I2 = sj2;			\
-  if (I2 >= 0x9f)				\
-    {						\
-      if (I1 >= 0xe0)				\
-	c1 = (I1 << 1) - 0xe0;			\
-      else					\
-	c1 = (I1 << 1) - 0x60;			\
-      c2 = I2 + 2;				\
-    }						\
-  else						\
-    {						\
-      if (I1 >= 0xe0)				\
-	c1 = (I1 << 1) - 0xe1;			\
-      else					\
-	c1 = (I1 << 1) - 0x61;			\
-      if (I2 >= 0x7f)				\
-	c2 = I2 + 0x60;				\
-      else					\
-	c2 = I2 + 0x61;				\
-    }						\
+#define DECODE_SJIS(sj1, sj2, c1, c2)			\
+do {							\
+  int I1 = sj1, I2 = sj2;				\
+  if (I2 >= 0x9f)					\
+    c1 = (I1 << 1) - ((I1 >= 0xe0) ? 0xe0 : 0x60),	\
+    c2 = I2 + 2;					\
+  else							\
+    c1 = (I1 << 1) - ((I1 >= 0xe0) ? 0xe1 : 0x61),	\
+    c2 = I2 + ((I2 >= 0x7f) ? 0x60 : 0x61);		\
 } while (0)
 
 /* Convert the internal string representation of a Shift-JIS character
    (c1, c2) into Shift-JIS code (sj1, sj2).  The leading byte is
    assumed. */
 
-#define ENCODE_SHIFT_JIS(c1, c2, sj1, sj2) do	\
-{						\
-  int I1 = c1, I2 = sj2;			\
-  if (I1 & 1)					\
-    {						\
-      if (I1 < 0xdf)				\
-	sj1 = (I1 >> 1) + 0x31;			\
-      else					\
-	sj1 = (I1 >> 1) + 0x71;			\
-      if (I2 >= 0xe0)				\
-	sj2 = I2 - 0x60;			\
-      else					\
-	sj2 = I2 - 0x61;			\
-    }						\
-  else						\
-    {						\
-      if (I1 < 0xdf)				\
-	sj1 = (I1 >> 1) + 0x30;			\
-      else					\
-	sj1 = (I1 >> 1) + 0x70;			\
-      sj2 = I2 - 2;				\
-    }						\
+#define ENCODE_SJIS(c1, c2, sj1, sj2)			\
+do {							\
+  int I1 = c1, I2 = sj2;				\
+  if (I1 & 1)						\
+    sj1 = (I1 >> 1) + ((I1 < 0xdf) ? 0x31 : 0x71),	\
+    sj2 = I2 - ((I2 >= 0xe0) ? 0x60 : 0x61);		\
+  else							\
+    sj1 = (I1 >> 1) + ((I1 < 0xdf) ? 0x30 : 0x70),	\
+    sj2 = I2 - 2;					\
 } while (0)
 
 static int
-detect_coding_shift_jis (struct detection_state *st, CONST unsigned char *src,
-			 unsigned int n)
+detect_coding_sjis (struct detection_state *st, CONST unsigned char *src,
+		    unsigned int n)
 {
   int c;
 
@@ -2550,8 +2521,8 @@
 /* Convert Shift-JIS data to internal format. */
 
 static void
-decode_coding_shift_jis (Lstream *decoding, CONST unsigned char *src,
-			 unsigned_char_dynarr *dst, unsigned int n)
+decode_coding_sjis (Lstream *decoding, CONST unsigned char *src,
+		    unsigned_char_dynarr *dst, unsigned int n)
 {
   unsigned char c;
   unsigned int flags, ch;
@@ -2568,12 +2539,12 @@
       if (ch)
 	{
 	  /* Previous character was first byte of Shift-JIS Kanji char. */
-	  if (BYTE_SHIFT_JIS_TWO_BYTE_2_P (c))
+	  if (BYTE_SJIS_TWO_BYTE_2_P (c))
 	    {
 	      unsigned char e1, e2;
 
 	      Dynarr_add (dst, LEADING_BYTE_JAPANESE_JISX0208);
-	      DECODE_SHIFT_JIS (ch, c, e1, e2);
+	      DECODE_SJIS (ch, c, e1, e2);
 	      Dynarr_add (dst, e1);
 	      Dynarr_add (dst, e2);
 	    }
@@ -2587,11 +2558,11 @@
       else
 	{
 	  DECODE_HANDLE_EOL_TYPE (eol, c, flags, dst);
-	  if (BYTE_SHIFT_JIS_TWO_BYTE_1_P (c))
+	  if (BYTE_SJIS_TWO_BYTE_1_P (c))
 	    ch = c;
-	  else if (BYTE_SHIFT_JIS_KATAKANA_P (c))
+	  else if (BYTE_SJIS_KATAKANA_P (c))
 	    {
-	      Dynarr_add (dst, LEADING_BYTE_JAPANESE_JISX0201_KANA);
+	      Dynarr_add (dst, LEADING_BYTE_KATAKANA_JISX0201);
 	      Dynarr_add (dst, c);
 	    }
 	  else
@@ -2608,8 +2579,8 @@
 /* Convert internally-formatted data to Shift-JIS. */
 
 static void
-encode_coding_shift_jis (Lstream *encoding, CONST unsigned char *src,
-			 unsigned_char_dynarr *dst, unsigned int n)
+encode_coding_sjis (Lstream *encoding, CONST unsigned char *src,
+		    unsigned_char_dynarr *dst, unsigned int n)
 {
   unsigned char c;
   struct encoding_stream *str = ENCODING_STREAM_DATA (encoding);
@@ -2636,12 +2607,12 @@
 	  ch = 0;
 	}
       else if (BUFBYTE_LEADING_BYTE_P (c))
-	ch = (c == LEADING_BYTE_JAPANESE_JISX0201_KANA ||
+	ch = (c == LEADING_BYTE_KATAKANA_JISX0201 ||
 	      c == LEADING_BYTE_JAPANESE_JISX0208_1978 ||
 	      c == LEADING_BYTE_JAPANESE_JISX0208) ? c : 0;
       else if (ch)
 	{
-	  if (ch == LEADING_BYTE_JAPANESE_JISX0201_KANA)
+	  if (ch == LEADING_BYTE_KATAKANA_JISX0201)
 	    {
 	      Dynarr_add (dst, c);
 	      ch = 0;
@@ -2652,7 +2623,7 @@
 	  else
 	    {
 	      unsigned char j1, j2;
-	      ENCODE_SHIFT_JIS (ch, c, j1, j2);
+	      ENCODE_SJIS (ch, c, j1, j2);
 	      Dynarr_add (dst, j1);
 	      Dynarr_add (dst, j2);
 	      ch = 0;
@@ -2677,10 +2648,10 @@
   CHECK_INT (XCDR (code));
   s1 = XINT (XCAR (code));
   s2 = XINT (XCDR (code));
-  if (BYTE_SHIFT_JIS_TWO_BYTE_1_P (s1) &&
-      BYTE_SHIFT_JIS_TWO_BYTE_2_P (s2))
+  if (BYTE_SJIS_TWO_BYTE_1_P (s1) &&
+      BYTE_SJIS_TWO_BYTE_2_P (s2))
     {
-      DECODE_SHIFT_JIS (s1, s2, c1, c2);
+      DECODE_SJIS (s1, s2, c1, c2);
       return make_char (MAKE_CHAR (Vcharset_japanese_jisx0208,
 				   c1 & 0x7F, c2 & 0x7F));
     }
@@ -2701,7 +2672,7 @@
   BREAKUP_CHAR (XCHAR (ch), charset, c1, c2);
   if (EQ (charset, Vcharset_japanese_jisx0208))
     {
-      ENCODE_SHIFT_JIS (c1 | 0x80, c2 | 0x80, s1, s2);
+      ENCODE_SJIS (c1 | 0x80, c2 | 0x80, s1, s2);
       return Fcons (make_int (s1), make_int (s2));
     }
   else
@@ -3405,7 +3376,7 @@
 	{
 	  int jj;
 
-	  /* If we are in the thrall of in invalid designation,
+	  /* If we are in the thrall of an invalid designation,
 	   then stick the directionality sequence literally into the
 	   output stream so it ends up in the original text again. */
 	  for (jj = 0; jj < 4; jj++)
@@ -3563,7 +3534,7 @@
 }
 
 static int
-detect_coding_iso2022 (struct detection_state *st,  CONST unsigned char *src,
+detect_coding_iso2022 (struct detection_state *st, CONST unsigned char *src,
 		       unsigned int n)
 {
   int c;
@@ -4423,14 +4394,15 @@
       else if (BUFBYTE_LEADING_BYTE_P (c))
 	{
 	  assert (ch == 0);
-	  if (c == LEADING_BYTE_LATIN_1 || c == LEADING_BYTE_CONTROL_1)
+	  if (c == LEADING_BYTE_LATIN_ISO8859_1 ||
+	      c == LEADING_BYTE_CONTROL_1)
 	    ch = c;
 	  else
 	    Dynarr_add (dst, '~'); /* untranslatable character */
 	}
       else
 	{
-	  if (ch == LEADING_BYTE_LATIN_1)
+	  if (ch == LEADING_BYTE_LATIN_ISO8859_1)
 	    Dynarr_add (dst, c);
 	  else if (ch == LEADING_BYTE_CONTROL_1)
 	    {
@@ -4488,9 +4460,9 @@
       for (; ptr < end;)
         {
           Bufbyte c =
-            (BYTE_ASCII_P (*ptr))		? *ptr :
-            (*ptr == LEADING_BYTE_CONTROL_1)	? (*(ptr+1) - 0x20) :
-            (*ptr == LEADING_BYTE_LATIN_1)	? (*(ptr+1)) :
+            (BYTE_ASCII_P (*ptr))		   ? *ptr :
+            (*ptr == LEADING_BYTE_CONTROL_1)	   ? (*(ptr+1) - 0x20) :
+            (*ptr == LEADING_BYTE_LATIN_ISO8859_1) ? (*(ptr+1)) :
             '~';
 
           Dynarr_add (conversion_out_dynarr, (Extbyte) c);
--- a/src/ralloc.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/ralloc.c	Mon Aug 13 09:04:33 2007 +0200
@@ -914,9 +914,14 @@
    about the memory map.  Instead, we try to coalesce empty or
    unavailable blocks at any available opportunity.  */
 
-static void Addr_Block_initialize(); /* Initialization procedure for address picking scheme */
-static VM_ADDR New_Addr_Block( SIZE sz ); /* Get a suitable VM_ADDR via mmap */
-static void Free_Addr_Block( VM_ADDR addr, SIZE sz ); /* Free a VM_ADDR allocated via New_Addr_Block */
+/* Initialization procedure for address picking scheme */
+static void Addr_Block_initialize(void);
+
+/* Get a suitable VM_ADDR via mmap */
+static VM_ADDR New_Addr_Block( SIZE sz );
+
+/* Free a VM_ADDR allocated via New_Addr_Block */
+static void Free_Addr_Block( VM_ADDR addr, SIZE sz );
 
 #ifdef MMAP_GENERATE_ADDRESSES
 /* Implementation of the three calls for address picking when XEmacs is incharge */
@@ -1035,8 +1040,10 @@
 /* This is an alternate (simpler) implementation in cases where the
    address is picked by the kernel. */
 
-static void Addr_Block_initialize()
-{} /* Nothing. */
+static void Addr_Block_initialize(void)
+{
+  /* Nothing. */
+}
 
 static VM_ADDR New_Addr_Block( SIZE sz )
 {
--- a/src/redisplay-tty.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/redisplay-tty.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1329,34 +1329,34 @@
   {"kD", "delete"},	/* terminfo */
   {"kB", "backtab"},	/* terminfo */
   /*
-   * "kp_backtab", "kp_space", "kp_tab" --- no termcaps
+   * "kp-backtab", "kp-space", "kp-tab" --- no termcaps
    */
-  {"@8", "kp_enter"},	/* terminfo */
+  {"@8", "kp-enter"},	/* terminfo */
   /*
-   * "kp_f1", "kp_f2", "kp_f3" "kp_f4",
-   * "kp_multiply", "kp_add", "kp_separator",
-   * "kp_subtract", "kp_decimal", "kp_divide", "kp_0";
+   * "kp-f1", "kp-f2", "kp-f3" "kp-f4",
+   * "kp-multiply", "kp-add", "kp-separator",
+   * "kp-subtract", "kp-decimal", "kp-divide", "kp-0";
    * --- no termcaps for any of these.
    */
-  {"K4", "kp_1"},	/* terminfo */
+  {"K4", "kp-1"},	/* terminfo */
   /*
-   * "kp_2" --- no termcap
+   * "kp-2" --- no termcap
    */
-  {"K5", "kp_3"},	/* terminfo */
+  {"K5", "kp-3"},	/* terminfo */
   /*
-   * "kp_4" --- no termcap
+   * "kp-4" --- no termcap
    */
-  {"K2", "kp_5"},	/* terminfo */
+  {"K2", "kp-5"},	/* terminfo */
   /*
-   * "kp_6" --- no termcap
+   * "kp-6" --- no termcap
    */
-  {"K1", "kp_7"},	/* terminfo */
+  {"K1", "kp-7"},	/* terminfo */
   /*
-   * "kp_8" --- no termcap
+   * "kp-8" --- no termcap
    */
-  {"K3", "kp_9"},	/* terminfo */
+  {"K3", "kp-9"},	/* terminfo */
   /*
-   * "kp_equal" --- no termcap
+   * "kp-equal" --- no termcap
    */
   {"k1", "f1"},
   {"k2", "f2"},
--- a/src/s/sol2.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/s/sol2.h	Mon Aug 13 09:04:33 2007 +0200
@@ -1,5 +1,6 @@
 /* Synched up with: FSF 19.31. */
 
+#define __EXTENSIONS__
 #include "usg5-4-2.h"		/* XEmacs change from 5-4 to 5-4-2 */
 
 #define SOLARIS2
@@ -42,6 +43,16 @@
    there isn't a prototype for it other than in /usr/ucbinclude. */
 int gethostname (char *, int);
 
+/* Get non-ANSI functions from ANSI header files in cc -Xc mode.
+   Sun has promised to fix setjmp.h */
+#if __STDC__ == 1
+#ifndef __GNUC__
+#define _POSIX_C_SOURCE 1
+#include <setjmp.h>
+#undef _POSIX_C_SOURCE
+#endif /* __GNUC__ */
+#endif /* __STDC__ */
+
 /* XEmacs: Solaris include files miss this. */
 struct timeval;
 int utimes (char *file, struct timeval *tvp);
@@ -49,7 +60,7 @@
 /* XEmacs addition: to this to avoid having problems when we later
    define INT_MAX etc. */
 #include <limits.h>
-#endif
+#endif /* C_CODE */
 
 /* XEmacs change -- removed flags to force K & R compilation */
 
--- a/src/s/sunos4-0-shr.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/s/sunos4-0-shr.h	Mon Aug 13 09:04:33 2007 +0200
@@ -1,4 +1,4 @@
-/* Synched up with: FSF 19.31. (Split off from sunos4shr.h.) */
+/* Synched up with: FSF 19.31. (Split off from sunos4-shr.h.) */
 
 /* This file permits building Emacs with a shared libc on Sunos 4.
    To make this work, you must completely replace your C shared library
--- a/src/specifier.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/specifier.c	Mon Aug 13 09:04:33 2007 +0200
@@ -1048,10 +1048,10 @@
 	  struct gcpro gcpro1;
 
 	  GCPRO1 (opaque);
-	  retval = call_with_suspended_errors (call_validate_method,
-					       Qnil,
-					       Qspecifier, errb, 2,
-					       opaque, instantiator);
+	  retval = call_with_suspended_errors
+	    ((lisp_fn_t) call_validate_method,
+	     Qnil, Qspecifier, errb, 2, opaque, instantiator);
+	  
 	  free_opaque_ptr (opaque);
 	  UNGCPRO;
 	}
@@ -2151,10 +2151,10 @@
 	  struct gcpro gcpro1;
 
 	  GCPRO1 (opaque);
-	  retval = call_with_suspended_errors (call_validate_matchspec_method,
-					       Qnil,
-					       Qspecifier, errb, 2,
-					       opaque, matchspec);
+	  retval = call_with_suspended_errors
+	    ( (lisp_fn_t) call_validate_matchspec_method,
+	      Qnil, Qspecifier, errb, 2, opaque, matchspec);
+	  
 	  free_opaque_ptr (opaque);
 	  UNGCPRO;
 	}
@@ -2275,11 +2275,10 @@
 	  Lisp_Object val = XCDR (tagged_inst);
 
 	  if (HAS_SPECMETH_P (sp, instantiate))
-	    val = call_with_suspended_errors (RAW_SPECMETH (sp, instantiate),
-					      Qunbound, Qspecifier, errb,
-					      5, specifier, matchspec, domain,
-					      XCDR (tagged_inst),
-					      depth);
+	    val = call_with_suspended_errors
+	      ( (lisp_fn_t) RAW_SPECMETH (sp, instantiate),
+		Qunbound, Qspecifier, errb, 5, specifier,
+		matchspec, domain, XCDR (tagged_inst), depth);
 
 	  if (!UNBOUNDP (val))
 	    {
--- a/src/syssignal.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/syssignal.h	Mon Aug 13 09:04:33 2007 +0200
@@ -88,11 +88,12 @@
    the risk of someone forgetting this convention and calling
    signal() directly. */
 
+typedef SIGTYPE (*signal_handler_t) (int);
+
 #if defined (HAVE_SIGPROCMASK)
 
 /* The POSIX way (sigaction, sigprocmask, sigpending, sigsuspend) */
 
-typedef SIGTYPE (*signal_handler_t) (int);
 extern signal_handler_t sys_do_signal (int signal_number,
 				       signal_handler_t action);
 /* Provide our own version of signal(), that calls sigaction().  The
--- a/src/vm-limit.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/vm-limit.c	Mon Aug 13 09:04:33 2007 +0200
@@ -50,7 +50,7 @@
 /* Get more memory space, complaining if we're near the end. */
 
 static void
-check_memory_limits ()
+check_memory_limits (void)
 {
   extern POINTER (*__morecore) ();
 
--- a/src/window.h	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/window.h	Mon Aug 13 09:04:33 2007 +0200
@@ -274,12 +274,12 @@
 #endif
 
   /* Flag indicating whether a subwindow is currently being displayed. */
-  int subwindows_being_displayed :1;
+  unsigned int subwindows_being_displayed :1;
 
   /* Keep track of the truncation status in this window so we can
      detect when it has changed.  #### Magic variables would be a huge
      win here. */
-  int truncate_win :1;
+  unsigned int truncate_win :1;
 };
 
 #ifdef emacs  /* some things other than emacs want the structs */
--- a/src/xmu.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/xmu.c	Mon Aug 13 09:04:33 2007 +0200
@@ -174,7 +174,7 @@
  *	Table index for the hex values. Initialized once, first time.
  *	Used for translation value or delimiter significance lookup.
  */
-static void initHexTable()
+static void initHexTable (void)
 {
     /*
      * We build the table at run time for several reasons:
@@ -207,8 +207,7 @@
 /*
  *	read next hex value in the input stream, return -1 if EOF
  */
-static int NextInt (fstream)
-    FILE *fstream;
+static int NextInt (FILE *fstream)
 {
     int	ch;
     int	value = 0;
@@ -243,11 +242,12 @@
  * its arguments won't have been touched.  This routine should look as much
  * like the Xlib routine XReadBitmapfile as possible.
  */
-int XmuReadBitmapData (fstream, width, height, datap, x_hot, y_hot)
-    FILE *fstream;			/* handle on file  */
-    unsigned int *width, *height;	/* RETURNED */
-    unsigned char **datap;		/* RETURNED */
-    int *x_hot, *y_hot;			/* RETURNED */
+int XmuReadBitmapData (
+    FILE *fstream,			/* handle on file  */
+    unsigned int *width,		/* RETURNED */
+    unsigned int *height,		/* RETURNED */
+    unsigned char **datap,		/* RETURNED */
+    int *x_hot, int *y_hot)		/* RETURNED */
 {
     unsigned char *data = NULL;		/* working variable */
     char line[MAX_SIZE];		/* input line from file */
@@ -369,17 +369,12 @@
 }
 
 
-#if NeedFunctionPrototypes
-int XmuReadBitmapDataFromFile (const char *filename, unsigned int *width, 
-			       unsigned int *height, unsigned char **datap,
+int XmuReadBitmapDataFromFile (const char *filename,
+			       /* Remaining args are RETURNED */
+			       unsigned int *width, 
+			       unsigned int *height,
+			       unsigned char **datap,
 			       int *x_hot, int *y_hot)
-#else
-int XmuReadBitmapDataFromFile (filename, width, height, datap, x_hot, y_hot)
-    char *filename;
-    unsigned int *width, *height;	/* RETURNED */
-    unsigned char **datap;		/* RETURNED */
-    int *x_hot, *y_hot;			/* RETURNED */
-#endif
 {
     FILE *fstream;
     int status;
@@ -396,10 +391,7 @@
  * XmuPrintDefaultErrorMessage - print a nice error that looks like the usual 
  * message.  Returns 1 if the caller should consider exitting else 0.
  */
-int XmuPrintDefaultErrorMessage (dpy, event, fp)
-    Display *dpy;
-    XErrorEvent *event;
-    FILE *fp;
+int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp)
 {
     char buffer[BUFSIZ];
     char mesg[BUFSIZ];
@@ -524,9 +516,7 @@
  * and XGetGeometry; print a message for everything else.  In all case, do
  * not exit.
  */
-int XmuSimpleErrorHandler (dpy, errorp)
-    Display *dpy;
-    XErrorEvent *errorp;
+int XmuSimpleErrorHandler (Display *dpy, XErrorEvent *errorp)
 {
     switch (errorp->request_code) {
       case X_QueryTree:
--- a/src/xselect.c	Mon Aug 13 09:03:47 2007 +0200
+++ b/src/xselect.c	Mon Aug 13 09:04:33 2007 +0200
@@ -384,7 +384,7 @@
 		continue;
 	      }
 
-	    if ((*ptr) == LEADING_BYTE_LATIN_1 ||
+	    if ((*ptr) == LEADING_BYTE_LATIN_ISO8859_1 ||
 		(*ptr) == LEADING_BYTE_CONTROL_1)
 	      {
 		chartypes = LATIN_1;
@@ -1985,7 +1985,7 @@
 	  continue;
 	}
       
-      if ((*ptr) == LEADING_BYTE_LATIN_1 ||
+      if ((*ptr) == LEADING_BYTE_LATIN_ISO8859_1 ||
 	  (*ptr) == LEADING_BYTE_CONTROL_1)
 	{
 	  chartypes = LATIN_1;