diff -arcN emacs-18.55/CHANGES.Nemacs nemacs-3.3.2/CHANGES.Nemacs
*** emacs-18.55/CHANGES.Nemacs	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/CHANGES.Nemacs	Wed Jun  6 03:14:10 1990
***************
*** 0 ****
--- 1,63 ----
+ ======================================================================
+ Nemacs Ver.3.3.2 (FUJIMUSUME version) ¤ÎÁ°¥Ð¡¼¥¸¥ç¥ó¤«¤é¤Î¼ç¤ÊÊÑ¹¹ÅÀ¡£
+ 						1990.5.28 by K.Handa
+ 
+ 1. Libraries
+ 	¡¦¿·¤¿¤Ë SKK (Ver.3.47) ¤òÇÛÉÛ¡£
+ 	¡¦misc Æâ¤Î´Ø¿ô¤ÎÊÑ¹¹
+ 
+ 2. Bug fix
+ 	¡¦bytecode.c -- Emacs 18.55 ¤Î GC ´ØÏ¢¤Î¥Ð¥°
+ 	¡¦indent.c -- kanji-flag off »þ¤Î½èÍý¤ò¥ª¥ê¥¸¥Ê¥ë¤ÈÆ±¤¸¤Ë
+ 	¡¦regex.c -- [a¤¢] ¤Ê¤É¤Î re-search ¤òÀµ¤·¤¯
+ 	¡¦syntax.c -- sexp ¤Î indentation ÍÑ¤Î½èÍý
+ 	¡¦x11term.c -- attribute ´ØÏ¢¤Î½èÍý
+ 	¡¦xdisp.c -- ¿åÊ¿¥¹¥¯¥í¡¼¥ë»þ¤Îº¸Ã¼¤Î½èÍý
+ 
+ 3. Document
+ 	¡¦¤¿¤Þ¤´¤Î¥É¥­¥å¥á¥ó¥È¤¬ÂçÉý¤Ë²þÄê
+ 
+ ======================================================================
+ Nemacs Ver.3.3.1 (HINAMATSURI version) ¤ÎÁ°¥Ð¡¼¥¸¥ç¥ó¤«¤é¤Î¼ç¤ÊÊÑ¹¹ÅÀ¡£
+ 						1990.3.3 by K.Handa
+ 
+ 1. Configuration
+ 
+     ¿·¤¿¤Ë src/nconfig.h, src/puresize.h, lisp/nemacs-init.el ¤òºîÀ®
+ 
+ 	nconfig.h -- ½¾Íè config.h ¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤¿ EGG ´ØÏ¢¤ÎÀßÄê
+ 	puresize.h -- PURESIZE ¤Î #define¡£
+ 	nemacs-init.el -- ½¾Íè site-init.el ¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤¿¼ï¡¹¤ÎÀßÄê
+ 
+ 2. Renamed files (£±£´Ê¸»ú°ÊÆâ¤Ë¡Ë
+ 
+     lisp/egg-sun-keymap.el --> lisp/egg-keymap
+     lisp/wnnfns-support.el --> lisp/wnnfns.el
+     lisp/egg-roma-kana.el  --> lisp/egg-rk.el
+     lisp/egg-roma-kana-dump.el --> lisp/egg-rkdump.el
+ 
+ 3. Libraries
+ 
+     ½¾Íè¤Î SKK, attribute ¤Ë²Ã¤¨¡¢
+     ¡¦mailnews -- mail, news ¤Îµ¡Ç½³ÈÄ¥
+     ¡¦jxw1.10 -- µ¼°ìÂÀÏº
+     ¡¦misc
+     ¤òÇÛÉÛ¡£
+ 
+ 4. Bug fix
+ 
+     ¡¦¥Ý¥¤¥ó¥¿¤¬ÆüËÜ¸ì¥³¡¼¥É¤Î£²¥Ð¥¤¥È¤á¤ò»Ø¤·¤¿»þ¤Î½èÍý¤ÎÅý°ì
+     ¡¦load-file ¥Õ¥§¥¤¥ë»þ¤Î¥Õ¥¡¥¤¥ë¤Î¥¯¥í¡¼¥º
+     ¡¦kanji-flag ¤¬ nil »þ¤Î re-search ¤ÎÌµ¸Â¥ë¡¼¥×²óÈò
+     ¡¦²èÌÌ±¦²¼¤ËÆüËÜ¸ì¤òÉ½¼¨¤¹¤ëºÝ¤Î½èÍý
+     ¡¦invoke-find-kanji-xxxx µ¯Æ°»þ¤Î GCPRO
+     ¡¦attribute ¤Ë´Ø¤¹¤ë²èÌÌÉ½¼¨»þ¤Î¥Ð¥°¥Õ¥£¥Ã¥¯¥¹
+     ¡¦ÆüËÜ¸ì¤Ë´Ø¤¹¤ë Overwrite Mode 
+ 
+     ¤½¤ÎÂ¾¡¢Âç¾®ÍÍ¡¹¤Î¥Ð¥°¤Î¥Õ¥£¥Ã¥¯¥¹¡£¤´¶¨ÎÏÄº¤¤¤¿³§¤µ¤ó¡¢ËÜÅö¤Ë¤¢¤ê
+     ¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
+ 
+ 5. EGG
+ 
+     º£²ó¸ÍÂ¼»áÂ¿Ë»¤Î¤¿¤á EGG ´ØÏ¢¤Î½¤Àµ¤Ï¤¢¤Þ¤ê´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥Ð¥°
+     ¥ì¥Ý¡¼¥È¡¢¥Ñ¥Ã¥Á¤Ê¤É¤òÁ÷¤Ã¤ÆÄº¤¤¤¿Êý¡¹¡¢¿½¤·Ìõ¤¢¤ê¤Þ¤»¤ó¡£
diff -arcN emacs-18.55/INSTALL.Nemacs nemacs-3.3.2/INSTALL.Nemacs
*** emacs-18.55/INSTALL.Nemacs	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/INSTALL.Nemacs	Wed Jun  6 03:14:10 1990
***************
*** 0 ****
--- 1,70 ----
+ Nemacs Installation Guide
+ Written by K.Handa, Electrotechnical Lab. (handa@etl.go.jp)
+ 
+    This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA.
+ 
+ 
+ PREPARATION
+ 
+ 0) What do you need to use Nemacs?
+ 	- Japanese terminal or terminal emulater on a
+ 	  personal computer which can show Japanese text
+ 	  encoded in JIS, Shift-JIS, or EUC, or
+ 	- Terminal emulater on some window system which can
+ 	  show Japanese text encoded in JIS, Shift-JIS, or
+ 	  EUC (such as kterm of X), or
+ 	- X window system Version 11 Release 2 or its later
+ 	  version
+ 
+ 1) Install GNU Emacs (currently version 18.55 is required),
+  and make sure that it works.  You need original code of GNU
+  Emacs to apply patch and running GNU Emacs to install
+  Nemacs (to byte-compile .el files).
+ 
+ 2) Choose a place in the file structure for residing source
+  codes of Nemacs (we call it $(NBUILD)), and copy all files
+  of GNU Emacs to $(NBUILD).  If you do not need original
+  codes of GNU Emacs, $(NBUILD) can be the directory where
+  the original codes reside.
+ 
+ 3) Apply the patch file Nemacs.diff at $(NBUILD) by 'patch
+  -p1' command.
+ 
+ 4) Recompile patched files in $(NBUILD)/lisp by original GNU
+  Emacs.  At first you should invoke byte-recompile-directory
+  command on $(NBUILD)/lisp and then byte-compile-file on
+  $(NBUILD)/lisp/kanji.el $(NBUILD)/lisp/kinsoku.el and
+  $(NBUILD)/lisp/kanji-util.el respectively.
+ 
+ 
+ BUILDING AND INSTALLATION OF NEMACS
+ 
+ 1) Install Nemacs by following the same procedure of
+  installing GNU Emacs (see a file 'INSTALL' of GNU Emacs).
+  Of course, you should skip steps 0) and 1) of the section
+  'PREPARATION'.
+ 
+ 2) To use EGG (a Japanese inputting tool), define EGG in
+  $(NBUILD)/src/nconfig.h and modify
+  $(NBUILD)/lisp/nemacs-init.el appropriately.  You should
+  also byte-compile-file such EGG related files as
+  wnn-client.el, wnn-egg.el, wnnfns.el, and egg-rkdump.el
+  before installing Nemacs.
+ 
+ 2) Unpack contrib.tar and install what you want.
diff -arcN emacs-18.55/README.Egg nemacs-3.3.2/README.Egg
*** emacs-18.55/README.Egg	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/README.Egg	Wed Jun  6 03:14:11 1990
***************
*** 0 ****
--- 1,26 ----
+ 						1989.12.8
+ 
+ Egg is distributed under the same terms as Nemacs.
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA.
+ 
+ 
+ Send any comments, suggestions, and bug reports to
+ 		egg@etl.go.jp
+ 
+ ---
+ Satoru TOMURA   Electrotechnical Lab. tomura@etl.go.jp
diff -arcN emacs-18.55/README.Nemacs nemacs-3.3.2/README.Nemacs
*** emacs-18.55/README.Nemacs	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/README.Nemacs	Wed Jun  6 03:14:11 1990
***************
*** 0 ****
--- 1,48 ----
+ 1989.12.15: Nemacs Ver.3.2.1 (MUSUME-DOUJOUJI version)
+ 1989.12.17: Nemacs Ver.3.2.1A (MUSUME-DOUJOUJI version with ANCHIN patch)
+ 1989.12.22: Nemacs Ver.3.2.3 (YUMENO-AWAYUKI version)
+ 1990.3.3:   Nemacs Ver.3.3.1 (HINAMATSURI version)
+ 1990.6.6:   Nemacs Ver.3.3.2 (FUJIMUSUME version)
+ 
+ This directory holds the distribution version of Nemacs
+ Ver.3.3.2 (FUJIMUSUME version).			1990.6.6
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA.
+ 
+ You'll have the following files:
+ 	README.Nemacs	
+ 	  -- same as this
+ 	INSTALL.Nemacs
+ 	  -- install guide of Nemacs
+ 	Nemacs.diff
+ 	  -- patch file created by the next command.
+ 		% diff -arcN emacs-18.55 nemacs-3.3.1 > Nemacs.diff
+ 	contrib.tar
+ 	  -- optional libraries of Nemacs
+ 	COPYING
+ 	  -- GNU EMACS GENERAL PUBLIC LICENSE
+ 
+ Send any comments, suggestions, and bug reports to
+ 		nemacs@etl.go.jp
+ 
+ 
+ ---
+ Ken'ichi HANDA  Electrotechnical Lab. handa@etl.go.jp
+ Satoru TOMURA   Electrotechnical Lab. tomura@etl.go.jp
+ Mikiko NISIKIMI Electrotechnical Lab. nisikimi@etl.go.jp
+ 
+ PS. See you again in CHUUSHUUnoMEIGETSU version. :-)
diff -arcN emacs-18.55/etc/Makefile nemacs-3.3.2/etc/Makefile
*** emacs-18.55/etc/Makefile	Mon Jul 31 09:54:45 1989
--- nemacs-3.3.2/etc/Makefile	Wed Jun  6 03:14:24 1990
***************
*** 1,3 ****
--- 1,6 ----
+ # Modified for Nemacs Ver.3.2  89.9.6  by K.Handa
+ # 'kconv' is included in $(EXECUTABLES)
+ 
  CFLAGS= -g
  # For Xenix.  Needed for movemail
  #  LOADLIBES= -lx
***************
*** 6,12 ****
  
  EXECUTABLES = test-distrib etags ctags loadst make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
!    server emacsclient
  
  all: ${EXECUTABLES}
  
--- 9,15 ----
  
  EXECUTABLES = test-distrib etags ctags loadst make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
!    server emacsclient kconv
  
  all: ${EXECUTABLES}
  
***************
*** 71,73 ****
--- 74,79 ----
  # See ../src/ymakefile.
  emacstool: emacstool.c
  	$(CC) emacstool.c -o emacstool -g -lsuntool -lsunwindow -lpixrect $(LOADLIBES)
+ 
+ kconv: ../src/kanji.h kconv.c
+ 	$(CC) -o kconv ${CFLAGS} kconv.c
diff -arcN emacs-18.55/etc/NEMACS.nws nemacs-3.3.2/etc/NEMACS.nws
*** emacs-18.55/etc/NEMACS.nws	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/etc/NEMACS.nws	Wed Jun  6 03:14:39 1990
***************
*** 0 ****
--- 1,172 ----
+ 
+ Nemacs 3.2 + Egg 2.1 ¤Î¼ç¤ÊÊÑ¹¹ÅÀ¤Ï¼¡¤ÎÄÌ¤ê¤Ç¤¹¡£
+ 
+ ¡ú Nemacs 3.2.1
+ 
+ £±¡£ÆüËÜ¸ì¥³¡¼¥É¤ò´Þ¤à emacs lisp ¤Î source file ¤¬ load ¤¬¤Ç¤­¤ë¡£
+ 
+ ½¾Íè¤Ï .el ¤¬ÆüËÜ¸ì¥³¡¼¥É¤ò´Þ¤à¾ì¹ç¤Ï¡¢¥³¡¼¥É¤ò EUC ¤Ë¤¹¤ë¤« 
+ byte-compile ¤·¤Æ .elc ¤Ë¤·¤Æ¤«¤é load ¤¹¤ëÉ¬Í×¤¬¤¢¤Ã¤¿¡£Nemacs 3.2 ¤«
+ ¤é¤Ï .elc ¤Ç¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò load ¤¹¤ë»þ¤Ë¤Ï¤Þ¤º¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤ß¥³¡¼¥É
+ ÊÑ´¹¤ò¤·¤Æ¤«¤é load ¤ò¹Ô¤Ê¤¦¡£½¾¤Ã¤Æ¤É¤ÎÆüËÜ¸ì¥³¡¼¥É¤Ç½ñ¤«¤ì¤¿¥Õ¥¡¥¤¥ë
+ ¤Ç¤â load ¤Ç¤­¤ë¡£
+ 
+ £²¡£ÆüËÜ¸ì¥Æ¥­¥¹¥È¤ËÂÐ¤¹¤ëµ¿»÷Ê¸Àá¤ÎÄêµÁ¤¬ÊÑ¹¹¤Ë¤Ê¤Ã¤¿¡£
+ 
+ ½¾Íè¤«¤é M-F, M-B ¤Ë¤è¤Ã¤Æ³ÈÄ¥ word ¡Êµ¿»÷Ê¸Àá¡ËÃ±°Ì¤ÎÁàºî¤¬¤Ç¤­¤¿¤¬¡¢
+ ¡Ö¡¼¡×¤Ê¤É¤Îµ­¹æ¤òµ¿»÷Ê¸Àá¤ÎÀÚ¤ìÌÜ¤È¤·¤Æ¤¤¤¿¡£Nemacs 3.2 ¤Ç¤Ïµ¿»÷Ê¸Àá
+ ¤ÎÄêµÁ¤òÊÑ¹¹¤·¡¢¤è¤êÊ¸Àá¤Ë¶á¤¤¤â¤Î¤È¤·¤¿¡£
+ 
+ ¤³¤ÎÊÑ¹¹¤Ë´ØÏ¢¤·¡¢ ´Ø¿ôchar-wordcode ¤òÇÑ»ß¤·¡¢¿·¤¿¤Ë ´Ø¿ô
+ char-category ¤ò¿·Àß¤·¤¿¡£
+ 
+ ¾Ü¤·¤¯¤Ï info ¤·¤Æ¤¯¤µ¤À¤¤¡£
+ 
+ £³¡£regular expression ¤Ç¤ÎÆüËÜ¸ìÊ¸»ú¤Î°·¤¤¤¬ÊÑ¹¹¤Ë¤Ê¤Ã¤¿¡£
+ 
+ ½¾Íè¤Ï regular expression ¤Ç¤ÎÆüËÜ¸ìÊ¸»ú¤Ï 8bit ÌÜ¤ÎÎ©¤Ã¤¿£²¥Ð¥¤¥ÈÊ¸»ú
+ Îó¤È¤·¤Æ°·¤Ã¤Æ¤¤¤¿¡£¤³¤ÎÊýË¡¤Ç¤Ï¥Ð¥Ã¥Õ¥¡ÆâÉô¤Ç¤ÎÊ¸»ú¥³¡¼¥É¤ÎÉ½¸½¤Ë 
+ regular expression ¤¬°ÍÂ¸¤¹¤ë¡£¾­Íè ÆâÉôÊ¸»ú¥³¡¼¥É¤òÊÑ¹¹¤¹¤ëÍ½Äê¤Ê¤Î¤Ç
+ ¤½¤Î½àÈ÷¤È¤·¤Æ regular expression ¤Ç¤ÎÆüËÜ¸ìÊ¸»ú¤Î°·¤¤¤òÊÑ¹¹¤·¤¿¡£Êý¿Ë
+ ¤ÏÆüËÜ¸ìÊ¸»ú¤ò£²¥Ð¥¤¥È¤ÎÊ¸»úÎó¤Ç¤Ï¤Ê¤¯¡¢£±¤Ä¤ÎÊ¸»ú¤È¤·¤Æ°·¤¦¡£
+ 
+ Îã¤¨¤Ð "." ¤Ï½¾Íè¤ÏÆüËÜ¸ìÊ¸»ú¤Î£±¥Ð¥¤¥ÈÌÜ¤Ë¤â£²¥Ð¥¤¥ÈÌÜ¤Ë¤â¹çÃ×¤·¤Æ¤¤
+ ¤¿¤¬¡¢Nemacs 3.2 ¤Ç¤Ï£±Ê¸»ú¡Ê£±¥Ð¥¤¥ÈÊ¸»ú¤Ç¤â£²¥Ð¥¤¥ÈÊ¸»ú¤Ç¤â¡Ë¤Ë¹çÃ×
+ ¤¹¤ë¤³¤È¤È¤·¤¿¡£
+ 
+ ¤Þ¤¿½¾Íè¤ÏÊ¸»ú½¸¹ç "[¤¢¤¤]" ¤òÉ½¸½¤¹¤ë¤Ë¤Ï "\\(¤¢\\|¤¤\\)" ¤ÈÉ½¸½¤¹¤ë
+ É¬Í×¤¬¤¢¤Ã¤¿¡£"[¤¢¤¤]"¤Ï"[\242\244]"¤ÈÆ±¤¸¤Ë²ò¼á¤·¤Æ¤¤¤¿¡£Nemacs 3.2 
+ ¤Ï¤Ç"[¤¢¤¤]"¤ÈÉ½¸½¤Ç¤­¤ë¡£
+ 
+ ¤Û¤«¤Ë½¾Íè¤Ï "\242" ¤Ï£±¥Ð¥¤¥ÈÌÜ¤¬ \242 ¤Ç¤¢¤ëÆüËÜ¸ìÊ¸»ú¤Ë¹çÃ×¤·¤Æ¤¤¤¿¡£
+ "[\242-\243]."¤È¤¤¤Ã¤¿É½¸½¤âÇ§¤á¤é¤ì¤¿¡£Nemacs 3.2 ¤Ç¤Ï¤³¤ì¤é¤Ï \242,
+ \243 ¤¬Ê¸»ú¤Ç¤Ï¤Ê¤¤¤Î¤ÇÇ§¤á¤é¤ì¤Ê¤¤¡£
+ 
+ ¾Ü¤·¤¯¤Ï info ¤·¤Æ¤¯¤À¤µ¤¤¡£
+ 
+ £´¡£¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ò¤ª¤³¤Ê¤¦»þ¤Î´Á»ú¥³¡¼¥É¤Î·èÄêÊýË¡¤¬ÊÑ¹¹¤Ë¤Ê¤Ã¤¿¡£
+ 
+ ½¾Íè¤ÏÊÑ¿ô kanji-expected-code ¤Ê¤É¤ÎÃÍ¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤Î´Á»ú¥³¡¼
+ ¥É¤Î·èÄêÊýË¡¤¬¸ÇÄê¤µ¤ì¤Æ¤¤¤¿¡£ Nemacs 3.2 ¤Ç¤Ï ¥Õ¥¡¥¤¥ëÆþÎÏ¤ò¹Ô¤Ê¤¦»þ
+ ¤Ë¤Ï ÊÑ¿ô find-kanji-file-input-code ¤ÎÃÍ¤Î´Ø¿ô¤ò¸Æ¤Ó¤À¤·¡¢¤Þ¤¿¥Õ¥¡¥¤
+ ¥ë½ÐÎÏ¤ò¹Ô¤Ê¤¦»þ¤Ë¤ÏÊÑ¿ô find-kanji-file-output-code ¤ÎÃÍ¤Î´Ø¿ô¤ò¸Æ¤Ó
+ ½Ð¤·¤Æ¡¢´Á»ú¥³¡¼¥É¤ò·èÄê¤¹¤ë¡£½¾¤Ã¤ÆÍøÍÑ¼Ô¤¬¼«Í³¤Ë·èÄêÊýË¡¤òÊÑ¹¹¤¹¤ë¤³
+ ¤È¤¬¤Ç¤­¤ë¡£É¸½à¤Î¤â¤Î¤È¤·¤Æ¤Ï ½¾Íè¤ÈÆ±¤¸¤â¤Î¤¬ kanji-util.el ¤ÇÄêµÁ¤µ
+ ¤ì¤Æ¤¤¤ë¡£
+ 
+ £µ¡£¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ò·èÄê¤¹¤ëÊýË¡¤â¥Õ¥Ã¥¯Êý¼°¤ËÊÑ¹¹¤Ë¤Ê¤Ã¤¿¡£
+ 
+ ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ò·èÄê¤¹¤ëÊýË¡¤Ï¡¢½¾Íè¤Ï ´Ø¿ô 
+ find-kanji-process-code ¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤¿¤¬¡¢Nemacs 3.2 ¤Ç¤Ï ÊÑ¿ô 
+ find-kanji-process-code ¤ÎÃÍ¤ÎÊÑ¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ËÊÑ¹¹¤·¤¿¡£É¸½àÀßÄê¤Ï
+ ½¾ÍèÄÌ¤ê¡£
+ 
+ £¶¡£kanji-flag, kanji-fileio-flag ¤Î default-value ¤ò set-default ¤Ç¤­
+ ¤ë¤è¤¦¤ËÊÑ¹¹¤·¤¿¡£
+ 
+ £·¡£¥Ð¥Ã¥Õ¥¡¤ÎÇ¤°Õ¤ÎÎÎ°è¤Ë²¼Àþ¡¢È¿Å¾¤Î¥¢¥È¥ê¥Ó¥å¡¼¥È¤òÉÕ¤±¤ë
+ ¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¥¢¥È¥ê¥Ó¥å¡¼¥È¤Ï¥Þ¡¼¥«¤Çµ­²±¤µ¤ì¤ë
+ ¤¿¤á¡¢¤½¤ÎÎÎ°èÆâ¤Ç¤ÎÁÞÆþºï½ü¤Ë¤è¤êÎÎ°è¤Ï¿­¤Ó½Ì¤ß¤¹¤ë¡£
+ 
+ £¸¡£marker ¤Ë point-type ¤È¤¤¤¦¿·¤·¤¤¥¿¥¤¥×¤òÆ³Æþ¡£¤³¤Î¥¿¥¤¥×¤Î¥Þ¡¼¥«
+ ¤Î°ÌÃÖ¤Ø¤ÎÁÞÆþ¤Ï¡¤¤½¤Î¥Þ¡¼¥«¤òÁÞÆþ¤µ¤ì¤¿¥¹¥È¥ê¥ó¥°¤ÎÄ¾¸å¤Ë°ÜÆ°¤·¤Þ¤¹¡£
+ ¥Þ¡¼¥«¤Î¤³¤ÎÆ°¤­¤¬¥Ý¥¤¥ó¥È¤Ë»÷¤Æ¤¤¤ë¤Î¤Ç point-type ¤È¸Æ¤Ö¡£
+ 
+ ¾Ü¤·¤¯¤Ï info ¤·¤Æ¤¯¤À¤µ¤¤¡£
+ 
+ 
+ ¡ú ¤¿¤Þ¤´ 2.1
+ 
+ £±¡£¤¿¤Þ¤´¤¬ Wnn V4 ¤Ç¤â»ÈÍÑ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
+ 
+ Nemacs 3.2 ¤Ç ¤¿¤Þ¤´ 2.1 ¤ò»ÈÍÑ¤¹¤ë¤Ë¤Ï£³¤Ä¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
+ 
+ ¡Ê¤¢¡Ëconfig.h ¤Ç #define EGG, #define WNN3 ¤ò»ØÄê¤¹¤ë¡§ wnnfns.c ¤ò
+ kernel ¤ËÁÈ¤ß¹þ¤ß , wnn-egg.elc ¤È wnnfns-support.elc ¤ò¤³¤Î½çÈÖ ¤Ç
+ load¤¹¤ë¡£Wnn3 ¤ò»ÈÍÑ¤Ç¤­¤ë¡£
+ 
+ ¡Ê¤¤¡Ëconfig.h ¤Ç#define EGG, #define WNN4V3 ¤ò»ØÄê¤¹¤ë¡§wnnfns.c ¤òkernel 
+ ¤ËÁÈ¤ß¹þ¤ß¡¢wnn-egg.elc ¤È wnnfns-support.elc ¤ò¤³¤Î½çÈÖ¤Ç load ¤¹¤ë¡£
+ Wnn4 ¤ò V3 compatible library ¤ò·ÐÍ³¤·¤Æ»ÈÍÑ¤Ç¤­¤ë¡£
+ 
+ ¡Ê¤¦¡Ëconfig.h ¤Ç#define EGG ¤À¤±¤ò»ØÄê¤¹¤ë¡§ kernel ¤ÏÊÑ¹¹¤·¤Ê¤¤¡£ 
+ wnn-client.elc ¤È wnn-egg.elc ¤ò load ¤¹¤ë¡£ Wnn3 ¤¬»ÈÍÑ¤Ç¤­¤ë¡£
+ 
+ EGG, WNN3, WNN4V3 ¤ÈÅ¬Åö¤Ë config.h ¤ÇÄêµÁ¤¹¤ë¤È site-init.el ¤ÎÃæ¤Ç¼«
+ Æ°Åª¤Ë preload ¤¬¹Ô¤Ê¤ï¤ì¤ë¡£¤Þ¤¿ wnn3 ¤ò»ÈÍÑ¤¹¤ë»þ¤Ï 
+ egg-default-startup-file ¤ò "eggrc-v3" ¤Ë¡¢wnn4¤ò»ÈÍÑ¤¹¤ë»þ¤Ï 
+ "eggrc-v4"¤ËÀßÄê¤¹¤ë¡£
+ 
+ ¡Ê¤¨¡Ë site ¤Ç ¤¿¤Þ¤´¤¬ÁÈ¤ß¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤âÍøÍÑ¼Ô¤¬ 
+ wnn-client.elc, wnn-egg.elc ¤ò load ¤¹¤ë¤³¤È¤Ç Wnn3 ¤¬»ÈÍÑ¤Ç¤­¤Þ¤¹¡£
+ 
+ ¡ÎÃí°Õ£±¡ÏWnn4¤ò»È¤¦¾ì¹ç¤Ï Wnn4.0.2 °Ê¹ß¤ò»ÈÍÑ¤·¤Æ²¼¤µ¤¤¡£¤Þ¤¿ 
+ Wnn4.0.2 ¤Î V3 compatible libraray ¤Ë¤Ï¼¡¤Î£²¤Ä¤ÎÃî¤¬ÃÎ¤é¤ì¤Æ¤¤¤Þ¤¹¡£
+ 
+ ¡ÊÃî£±¡Ë M-x disconnect-wnn ¤Ç jserver ¤È¤Î connetion ¤ò°ìÃ¶ÀÚ¤ê¡¢ºÆÀÜ
+ Â³¤¹¤ë¤È Nemacs ¤¬ core ¤òÅÇ¤¯¡£
+ ¡ÊÃî£²¡Ë ¼­½ñÅÐÏ¿¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£
+ 
+ ¤³¤ì¤é¤ËÂÐ¤¹¤ë patch ¤Ï Nemacs 3.2 + Egg 2.1 ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
+ 
+ ¡ÎÃí°Õ£²¡Ïwnn-client ¤òÍøÍÑ¤¹¤ë¾ì¹ç¡¢jserver ¤È Nemacs ¤È¤¬¤³¤È¤Ê¤ë 
+ machine type, OS ¤ÇÆ°ºî¤·¤Æ¤¤¤ë¤ÈÀÜÂ³¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
+ sun3 - sun3, sun4 - sun4 ¤Ç¤Ï¤³¤¦¤·¤¿¤³¤È¤Ïµ¯¤³¤ê¤Þ¤»¤ó¡£¸¶°ø¤ÏÉÔÌÀ¤Ç
+ ¤¹¡£
+ 
+ £²¡£ key binding ¤ò´Þ¤á¤Æ°ìÉô»ÅÍÍ¤¬ÊÑ¹¹¤Ë¤Ê¤Ã¤¿¡£
+ 
+ ¡Ö¤¿¤Þ¤´¡×Âè£²ÈÇ¤ÎÊÑ¹¹ÅÀ¡§
+ 
+ ¡Ê¤¢¡Ëµ¯Æ°»þ¤ÎÊÑ¹¹
+ 
+       ½é´ü²½¥Õ¥¡¥¤¥ë¡Ê½¾Íè¤Ï ~/.eggrc ¤Ë¸ÇÄê¤À¤Ã¤¿¡£¡Ë¤ò¼¡¤ÎÊÑ¿ô¤Ç»ØÄê¤Ç¤­¤ë¡£
+ 
+ 	egg-startup-file 	: ¥Õ¥¡¥¤¥ëÌ¾¤ò»ØÄê¤¹¤ë¡£
+ 
+ 	egg-startup-file-search-path: Ãµº÷¥Ñ¥¹¤Î¥ê¥¹¥È¤ò»ØÄê¤¹¤ë¡£
+ 
+ 	egg-default-startup-file: egg-startup-file* ¤Ë»ØÄê¤µ¤ì¤¿¥Õ¥¡¥¤
+ ¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¤»þ¤ËÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤ò»ØÄê¤¹¤ë¡£
+ 
+ 
+       set-default-usr-dic-directory ¤Ïdirectory¤¬¤Ê¤¤¾ì¹ç¤Ëºî¤ë¡£
+ 
+       wnn server host ¤¬ÆÃ¤Ë»ØÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï local host ¤ò»ÈÍÑ¤¹
+ ¤ë¡£
+ 
+ 
+ ¡Ê¤¤¡ËÆÃ¼ìµ­¹æ¤ÎÆþÎÏµ¡Ç½¤òÄó¶¡¤·¤¿¡£(special-symbol-input)
+ 	C-^	¥á¥Ë¥å¡¼Êý¼°¤ÇÆÃ¼ìµ­¹æ¤òÆþÎÏ¤¹¤ë¡£
+ 
+ ¡Ê¤¦¡Ë´Á»úÊÑ´¹¥â¡¼¥É¤Î¥Þ¥Ã¥×¤ò°ìÉôÊÑ¹¹¤·¤¿¡£
+ 	M-i Ê¸Àá¤ÎÊÑ´¹¾ðÊó¤òÉ½¼¨¤¹¤ë¡£(henkan-inspect-bunsetu)
+ 	M-s Ê¸Àá¤ÎÊÑ´¹¸õÊä°ìÍ÷¤ò¥ß¥Ë¥Ð¥Ã¥Õ¥¡É½¼¨¤·¡¢ÁªÂò¤¹¤ë(henkan-select-kouho)
+ 	C-g ´Á»úÊÑ´¹¥â¡¼¥É¤òÃæ»ß¤¹¤ë¡£
+ 
+      ´Á»úÊÑ´¹¥â¡¼¥É¤Ë¼¡¤Îµ¡Ç½¤òÄÉ²Ã¤·¤¿¡£
+ 	C-h  ´Á»úÊÑ´¹¥â¡¼¥É¥³¥Þ¥ó¥É¤òÉ½¼¨¤¹¤ë¡£
+ 	M-h  Ê¸Àá¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡£(henkan-hiragana)
+ 	M-k  Ê¸Àá¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡£(henkan-katakana)
+ 	M-<  Ê¸Àá¤ÎÄ¹¤µ¤òºÇÄ¹¤Ë¤¹¤ë¡£(henkan-saichou-bunsetu)
+ 	M->  Ê¸Àá¤ÎÄ¹¤µ¤òºÇ¾®¤Ë¤¹¤ë¡£(henkan-saishou-bunsetu)
+ 
+      ´Á»úÊÑ´¹¥â¡¼¥É¤Ë help ¥³¥Þ¥ó¥É¤òÄÉ²Ã¤·¤¿¡£
+ 
+ ¡Ê¤¨¡Ë¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¥â¡¼¥É¤Ë¼¡¤Îµ¡Ç½¤òÄÉ²Ã¤·¤¿¡£
+ 	M-h  ¥Õ¥§¥ó¥¹¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡£(fence-hiragana)
+ 	M-k  ¥Õ¥§¥ó¥¹¤ò¥«¥¿¥«¥Ê¤Ë¥«¥¿¥«¥Ê¤¹¤ë¡£(fence-katakana)
+ 	M->  ¥Õ¥§¥ó¥¹¤òÁ´³Ñ¤Ë¤¹¤ë¡£(fence-zenkaku)
+ 	M-<  ¥Õ¥§¥ó¥¹¤òÈ¾³Ñ¤Ë¤¹¤ë¡£(fence-hankaku)
+ 
+ ¡Ê¤ª¡Ë¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ÎÆþÎÏÃæ¤Ë¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Î¥â¡¼¥É" m[a ¤¢]" ¤È·Á¼°¤Ç
+ ¥â¡¼¥É¥é¥¤¥ó¤ËÉ½¼¨¤¹¤ë¡£
+ 
+ ¡Ê¤«¡Ëhenkan-region ¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤È¼Â¹Ô½ªÎ»¸å¤Ë point ¤¬ mark ¤Ë°ÜÆ°
+ ¤¹¤ë¡£
+ 
+ ¡Ê¤­¡Ë¥Õ¥§¥ó¥¹¥â¡¼¥É¡¢ÊÑ´¹¥â¡¼¥É¤ÎÉ½¼¨ÊýË¡¤ò 
+ set-egg-fence-mode-format, set-egg-hankan-mode-format ¤Ç»ØÄê¤Ç¤­¤ë¤è¤¦
+ ¤Ë¤Ê¤Ã¤¿¡£
+ Îã¡§	(set-egg-fence-mode-format "" "" 'underline)
+ 	(set-egg-henkan-mode-format "" "" "" 'underline 'inverse)
diff -arcN emacs-18.55/etc/NEMACS.tut nemacs-3.3.2/etc/NEMACS.tut
*** emacs-18.55/etc/NEMACS.tut	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/etc/NEMACS.tut	Wed Jun  6 03:14:39 1990
***************
*** 0 ****
--- 1,737 ----
+                       ==============================
+                       ÆüËÜ¸ì GNUEMACS(NEmacs) ÆþÌçÊÔ
+                       ==============================
+ 
+ Ãí°Õ¡§          ¤³¤ÎÆþÌçÊÔ¤Ï¡¢¡Ö½¬¤¦¤è¤ê´·¤ì¤í¡×¤ò¥â¥Ã¥È¡¼¤ËºîÀ®¤µ¤ì¤Æ¤¤¤Þ
+                ¤¹¡£">>" ¤«¤é»Ï¤Þ¤ë¹Ô¤Ï¡¢¤½¤Î»þ²¿¤ò¤¹¤Ù¤­¤«¤ò»Ø¼¨¤·¤Æ¤¤¤Þ¤¹¡£
+ 
+ 
+      NEmacs¤Î¥³¥Þ¥ó¥É¤òÆþÎÏ¤¹¤ë¤È¤­¤Ë¤Ï¡¢°ìÈÌÅª¤Ë¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¡Ê¥­¡¼¡¦
+ ¥È¥Ã¥×¤Ë¡¢CTRL ¤¢¤ë¤¤¤Ï¡¢CTL ¤È½ñ¤¤¤Æ¤¢¤ë¡Ë¤ä¥á¥¿¡¦¥­¡¼¡ÊÉáÄÌ¡¢¥¨¥¹¥±¡¼¥×¡¦
+ ¥­¡¼¤ò»È¤¦¡Ë¤¬»È¤ï¤ì¤Þ¤¹¡£¤½¤³¤Ç¡¢CONTROL ¤È¤« META ¤È¤«½ñ¤¯Âå¤ï¤ê¤Ë¡¢¼¡¤Î
+ ¤è¤¦¤Êµ­¹æ¤ò»È¤¦¤³¤È¤Ë¤·¤Þ¤¹¡£
+ 
+ C-<Ê¸»ú>       ¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¤ò²¡¤·¤¿¤Þ¤Þ¡¢<Ê¸»ú>¥­¡¼¤ò²¡¤·¤Þ¤¹¡£Îã¤¨¤Ð¡¢
+                C-f  ¤Ï¡¢¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¤ò²¡¤·¤Ê¤¬¤é f ¤Î¥­¡¼¤ò²¡¤¹¤³¤È¤ò
+                °ÕÌ£¤·¤Þ¤¹¡£
+ <<Blank lines inserted here by startup of help-with-tutorial>>
+        >> ¤½¤ì¤Ç¤Ï¡¢C-v¡ÊView Next Screen; ¼¡¤Î²èÌÌ¤ò¸«¤ë¡Ë¤ò¥¿¥¤¥×¤·¤Æ
+           ¤ß¤Æ²¼¤µ¤¤¡£¼¡¤Î²èÌÌ¤Ë¿Ê¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+ 
+ ESC <Ê¸»ú>     ¥¨¥¹¥±¡¼¥×¡¦¥­¡¼¤ò²¡¤·¤Æ¤«¤éÎ¥¤·¡¢¤½¤ì¤«¤é<Ê¸»ú>¥­¡¼¤ò²¡¤·¤Þ
+                ¤¹¡£
+ 
+ Ãí°Õ¡§         <Ê¸»ú>¤Ï¡¢ÂçÊ¸»ú¤Ç¤â¾®Ê¸»ú¤Ç¤â¥³¥Þ¥ó¥É¤È¤·¤Æ¤ÏÆ±¤¸°ÕÌ£¤Ë¤Ê¤ê
+                ¤Þ¤¹¡£¥á¥¿¥­¡¼¤¬»È¤¨¤ë¤Ê¤é¤Ð ESC <Ê¸»ú> ¤ÎÂå¤ï¤ê¤Ë M-<Ê¸»ú>
+ 	       (¥á¥¿¥­¡¼¤ò²¡¤·¤¿¤Þ¤Þ<Ê¸»ú>¥­¡¼¤ò²¡¤¹) ¤¬»È¤¨¤Þ¤¹¡£
+ 
+ ½ÅÍ×¤Ç¤¹¡§     Emacs¤ò½ªÎ»¤µ¤»¤¿¤¤»þ¤Ï¡¢C-x C-c ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£Emacs¤òcsh
+                ¤«¤éµ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¡¢¥µ¥¹¥Ú¥ó¥É¤¹¤ë¡Ê°ì»þÅª¤Ë»ß¤á¤ë)¤³¤È¤¬
+                ½ÐÍè¤Þ¤¹¡£Emacs¤ò¥µ¥¹¥Ú¥ó¥É¤¹¤ë¤Ë¤Ï¡¢C-z¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+ 
+      ¤µ¤Æ¡¢¤³¤ì¤«¤é¤Ï¡¢°ì²èÌÌÊ¬ÆÉ¤ß½ª¤¨¤¿¤é¡¢C-v  ¤òÆþÎÏ¤·¤Æ¹Ô¤Ã¤Æ²¼¤µ¤¤¡£
+ 
+      Á°¤Î²èÌÌ¤È¼¡¤Î²èÌÌ¤È¤Ç¤Ï¡¢É½¼¨¤µ¤ì¤ëÆâÍÆ¤Ë²¿¹ÔÊ¸¤«¤Î½Å¤Ê¤ê¤¬¤¢¤ê¤Þ¤¹¡£
+ ¤³¤ì¤Ï¡¢É½¼¨¤µ¤ì¤Æ¤¤¤ëÆâÍÆ¤¬Ï¢Â³¤·¤Æ¤¤¤ë¤³¤È¤¬¤¹¤°È½¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡£
+ 
+ 
+      ¤Þ¤º¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÃæ¤ò°ÜÆ°¤·¤Æ¹Ô¤¯ÊýË¡¤òÃÎ¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡£C-v  ¤Ë¤è
+ ¤Ã¤ÆÀè¤Ë¿Ê¤à¤³¤È¤Ï¤â¤¦È½¤ê¤Þ¤·¤¿¡£¸µ¤ËÌá¤ë¤Ë¤Ï¡¢ESC v ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+       >> ESC v ¤È C-v  ¤ò»È¤Ã¤Æ¡¢Á°¸å¤Ë°ÜÆ°¤¹¤ë¤³¤È¤ò²¿²ó¤«»î¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+ Í×Ìó
+ ====
+      ¥Õ¥¡¥¤¥ë¤ò²èÌÌËè¤Ë¸«¤Æ¹Ô¤¯¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£
+ 
+      C-v     Á°¤Ë°ì²èÌÌÊ¬¿Ê¤à
+      ESC v   ¸å¤í¤Ë°ì²èÌÌÊ¬Ìá¤ë
+      C-l     ²èÌÌ¤ò½ñ¤­Ä¾¤¹¡£¤³¤Î¤È¤­¡¢¸µ¥«¡¼¥½¥ë¤Î¤¢¤Ã¤¿¹Ô¤¬
+              ²èÌÌ¤ÎÃæ±û¤Ë¤¯¤ë¤è¤¦¤Ë¤¹¤ë
+ 
+        >> º£¥«¡¼¥½¥ë¤¬¤É¤³¤Ë¤¢¤ë¤«¡¢¤½¤Î¶á¤¯¤Ë¤É¤ó¤Ê¥Æ¥­¥¹¥È¤¬½ñ¤«¤ì¤Æ¤¤¤ë
+           ¤«¤ò³Ð¤¨¤Ê¤µ¤¤¡£C-l  ¤ò¥¿¥¤¥×¤·¡¢¥«¡¼¥½¥ë¤¬¤É¤³¤Ë°ÜÆ°¤·¤¿¤«¡¢¤½¤Î
+           ¶á¤¯¤Î¥Æ¥­¥¹¥È¤Ï¤É¤¦¤Ê¤Ã¤¿¤«¤òÄ´¤Ù¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+ ´ðËÜÅª¤Ê¥«¡¼¥½¥ë¤ÎÀ©¸æ
+ ======================
+ 
+      ²èÌÌËè¤Î°ÜÆ°¤Ï¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£º£ÅÙ¤Ï¡¢²èÌÌ¤ÎÃæ¤Ç¡¢ÆÃÄê¤Î¾ì½ê¤Ë
+ °ÜÆ°¤¹¤ë¤¿¤á¤ÎÊýË¡¤ò²±¤¨¤Þ¤·¤ç¤¦¡£¤³¤ì¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¤ä¤êÊý¤¬¤¢¤ê¤Þ¤¹¡£°ì¤Ä
+ ¤ÎÊýË¡¤Ï¡¢Á°(previous)¼¡(next)Àè(forward)¸å(backward)¤Ë°ÜÆ°¤¹¤ë¥³¥Þ¥ó¥É¤ò»È
+ ¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¤½¤ì¤¾¤ì¡¢C-p,  C-n, C-f,C-b ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ
+ ¤ª¤ê¡¢¸½ºß¤Î¾ì½ê¤«¤é¿·¤·¤¤¾ì½ê¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°¤µ¤»¤Þ¤¹¡£¿Þ¤Ç½ñ¤±¤Ð¡¢
+ 
+ 
+                                Á°¤Î¹Ô¡¤C-p
+                                     :
+                                     :
+      ¸å¤ÎÊ¸»ú¡¤C-b   ....   ¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ   ....   Àè¤ÎÊ¸»ú¡¤C-f
+                                     :
+                                     :
+                                ¼¡¤Î¹Ô¡¤C-n
+ 
+ 
+      ¤³¤ì¤é¤Ï¡¢¤½¤ì¤¾¤ì¡¢Previous, Next, Backward, Forward ¤ÎÆ¬Ê¸»ú¤Ë¤Ê¤Ã¤Æ
+ ¤¤¤ë¤Î¤Ç¡¢²±¤¨¤ä¤¹¤¤¤Ç¤·¤ç¤¦¡£¤³¤ì¤é¤Ï¡¢´ðËÜÅª¤Ê¥«¡¼¥½¥ë°ÜÆ°¥³¥Þ¥ó¥É¤Ç¤¢¤ê¡¢
+ ¤¤¤Ä¤Ç¤â»È¤¦¤â¤Î¤Ç¤¹¡£
+ 
+        >> C-n ¤ò²¿²ó¤«¥¿¥¤¥×¤·¡¢¡Êº£¡¢¤¢¤Ê¤¿¤¬ÆÉ¤ó¤Ç¤¤¤ë¡Ë¤³¤Î¹Ô¤Þ¤Ç¥«¡¼¥½
+           ¥ë¤ò°ÜÆ°¤µ¤»¤Ê¤µ¤¤¡£
+ 
+        >> C-f  ¤ò»È¤Ã¤Æ¹Ô¤ÎÃæ¤Û¤É¤Ë°ÜÆ°¤·¡¢C-p  ¤Ç²¿¹Ô¤«¾å¤Ë°ÜÆ°¤·¤Æ¤ß¤Ê¤µ
+           ¤¤¡£¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ÎÊÑ²½¤ËÃí°Õ¤·¤Ê¤µ¤¤¡£
+ 
+        >> ¹Ô¤ÎÀèÆ¬¤Ç C-b ¤ò¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£¥«¡¼¥½¥ë¤Ï¤É¤³¤Ë°ÜÆ°¤·¤Þ¤¹¤«
+           ¡©¤µ¤é¤Ë¤â¤¦¾¯¤· C-b ¤ò¥¿¥¤¥×¤·¡¢º£ÅÙ¤Ï C-f  ¤Ç¹ÔËö¤ÎÊý¤ËÌá¤ê¤Ê¤µ
+           ¤¤¡£¥«¡¼¥½¥ë¤¬¹ÔËö¤ò±Û¤¨¤ë¤È¤É¤¦¤Ê¤ê¤Þ¤¹¤«¡©
+ 
+ 
+      ²èÌÌ¤ÎÀèÆ¬¤äËöÈø¤ò±Û¤¨¤Æ¥«¡¼¥½¥ë¤ò°ÜÆ°¤µ¤»¤è¤¦¤È¤¹¤ë¤È¡¢¤½¤ÎÊý¸þ¤Ë¤¢¤ë
+ ¥Æ¥­¥¹¥È¤¬°ÜÆ°¤·¤ÆÍè¤Æ¡¢¥«¡¼¥½¥ë¤Ï¾ï¤Ë²èÌÌÆâ¤Ë¤¢¤ë¤è¤¦¤Ë¤µ¤ì¤Þ¤¹¡£
+ 
+        >> C-n ¤ò»È¤Ã¤Æ¡¢¥«¡¼¥½¥ë¤ò²èÌÌ¤Î²¼Ã¼¤è¤ê²¼¤Ë°ÜÆ°¤µ¤»¤Æ¤ß¤Ê¤µ¤¤¡£²¿
+           ¤¬µ¯¤³¤ê¤Þ¤·¤¿¤«¡©¥«¡¼¥½¥ë¤Î°ÌÃÖ¤Ï¤É¤¦ÊÑ¤ê¤Þ¤·¤¿¤«¡©
+ 
+      °ìÊ¸»úÃ±°Ì¤Î°ÜÆ°¤Ç¤Ï¤Þ¤É¤í¤Ã¤³¤·¤¤¤È»×¤¦¤Ê¤é¡¢Ã±¸ìÃ±°Ì¤Ç°ÜÆ°¤¹¤ë¤³¤È¤â
+ ¤Ç¤­¤Þ¤¹¡£ESC f ¤Ç°ìÃ±¸ìÊ¬Àè¤Ë¿Ê¤ß¡¢ESC b ¤Ç°ìÃ±¸ìÊ¬Á°¤ËÌá¤ê¤Þ¤¹¡£
+ 
+ Ãí°Õ¡§		ÆüËÜ¸ì¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ã±¸ì¤ÎÀÚ¤ìÌÜ¤òÇ§¼±¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢
+ 		µ¿»÷Åª¤ÊÊ¸Àá¤òÃ±¸ì¤ÎÀÚ¤ìÌÜ¤È¤·¤Æ¤¤¤Þ¤¹¡£
+ 
+        >> ESC f ¤ä ESC b ¤ò²¿²ó¤«¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£C-f ¤ä C-b ¤ÈÊ»ÍÑ¤·¤Æ
+           ¤ß¤Ê¤µ¤¤¡£
+ 
+      C-f  ¤ä C-b ¤ËÂÐ¤¹¤ë¡¢ESC f ¤ä ESC b ¤ÎÎà»÷À­¤ËÃíÌÜ¤·¤Þ¤·¤ç¤¦¡£Â¿¤¯¤Î
+ ¾ì¹ç¡¢ESC  <Ê¸»ú>¤ÏÊ¸½ñ´Ø·¸¤Î½èÍý¤Ë»È¤ï¤ì¡¢°ìÊýC-<Ê¸»ú>¤Ï¤½¤ì¤è¤ê¤â¤â¤Ã¤È´ð
+ ËÜÅª¤ÊÂÐ¾Ý¡ÊÊ¸»ú¤È¤«¹Ô¤È¤«¡Ë¤ËÂÐ¤¹¤ëÁàºî¤Ë»È¤ï¤ì¤Þ¤¹¡£
+ 
+      C-a ¤È C-e ¤âÃÎ¤Ã¤Æ¤¤¤ÆÊØÍø¤Ê¥³¥Þ¥ó¥É¤Ç¤¹¡£C-a ¤Ï¥«¡¼¥½¥ë¤ò¹Ô¤ÎÀèÆ¬¤Ë
+ °ÜÆ°¤µ¤»¡¢C-e ¤Ï¹Ô¤ÎËöÈø¤Ë°ÜÆ°¤µ¤»¤Þ¤¹¡£
+ 
+ 
+        >> C-a ¤ò£²²ó¡¢¤½¤ì¤«¤é C-e ¤ò£²²óÆþÎÏ¤·¤Æ¤ß¤Ê¤µ¤¤¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É
+           ¤ò£²²ó°Ê¾å·«ÊÖ¤·¤Æ¤â¡¢¥«¡¼¥½¥ë¤Ï¤½¤ì°Ê¾å°ÜÆ°¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£
+ 
+      ¤¢¤ÈÆó¤Ä¡¢´ÊÃ±¤Ê¥«¡¼¥½¥ë°ÜÆ°¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ë°ÜÆ°¤¹
+ ¤ë ESC < ¤È¡¢¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Ë°ÜÆ°¤¹¤ë ESC > ¤Ç¤¹¡£
+ 
+      ¥Æ¥­¥¹¥ÈÃæ¤Ç¥«¡¼¥½¥ë¤ÎÂ¸ºß¤¹¤ë°ÌÃÖ¤ò¡Ö¥Ý¥¤¥ó¥È¡×¤È¸Æ¤Ó¤Þ¤¹¡£¸À¤¤¤«¤¨¤ì
+ ¤Ð¡¢¥«¡¼¥½¥ë¤Ï¡¢¥Æ¥­¥¹¥È¤Î¤É¤³¤Ë¥Ý¥¤¥ó¥È¤¬¤¢¤ë¤«¤ò²èÌÌ¾å¤Ç¼¨¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¡£
+ 
+      °Ê²¼¤ËÃ±½ã¤Ê°ÜÆ°Áàºî¤Ë¤Ä¤¤¤ÆÍ×Ìó¤·¤Þ¤¹¡£¤³¤Î¤Ê¤«¤Ë¤Ï¡¢Ã±¸ì¤ä¹ÔÃ±°Ì¤Ç¤Î
+ °ÜÆ°¥³¥Þ¥ó¥É¤â´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
+ 
+      C-f     °ìÊ¸»úÀè¤Ë¿Ê¤à
+      C-b     °ìÊ¸»ú¸å¤ËÌá¤ë
+ 
+      ESC f   °ìÃ±¸ìÀè¤Ë¿Ê¤à
+      ESC b   °ìÃ±¸ì¸å¤ËÌá¤ë
+ 
+      C-n     ¼¡¤Î¹Ô¤Ë°ÜÆ°
+      C-p     Á°¤Î¹Ô¤Ë°ÜÆ°
+ 
+      ESC ]   ÃÊÍî¤Î½ª¤ï¤ê¤Ë°ÜÆ°
+      ESC [   ÃÊÍî¤ÎÀèÆ¬¤Ë°ÜÆ°
+ 
+      C-a     ¹Ô¤ÎºÇ½é¤Ë°ÜÆ°
+      C-e     ¹Ô¤ÎºÇ¸å¤Ë°ÜÆ°
+ 
+      ESC <   ¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Ë°ÜÆ°
+      ESC >   ¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÜÆ°
+ 
+        >> ³Æ¡¹¤Î¥³¥Þ¥ó¥É¤ò»î¤·¤Æ¤ß¤Ê¤µ¤¤¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¢ºÇ¤â¤·¤Ð¤·¤Ð
+           »È¤ï¤ì¤ë¤â¤Î¤Ç¤¹¡£ºÇ¸å¤ÎÆó¤Ä¤Ç¤Ï¡¢¤³¤Î¾ì½ê¤È¤ÏÎ¥¤ì¤¿¤È¤³¤í¤Ë°ÜÆ°
+           ¤¹¤ë¤Î¤Ç¡¢ C-v  ¤ä ESC v ¤ò»È¤Ã¤Æ¤³¤³¤ËÌá¤Ã¤ÆÍè¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡£
+ 
+      Emacs¤ÎÂ¾¤Î¥³¥Þ¥ó¥É¤ÈÆ±ÍÍ¤Ë¡¢¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¡¢·«¤êÊÖ¤·¤Î²ó¿ô¤ò»Ø
+ Äê¤¹¤ë°ú¿ô  ¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤òÆþÎÏ¤¹¤ëÁ°¤Ë¡¢
+ C-u¤ËÂ³¤¤¤Æ·«¤êÊÖ¤¹²ó¿ô¤òÆþÎÏ¤·¤Þ¤¹¡£
+ 
+      Îã¤¨¤Ð¡¢C-u 8 C-f  ¤È¤¹¤ë¤È¡¢£¸Ê¸»úÊ¬Àè¤Ë°ÜÆ°¤·¤Þ¤¹¡£
+ 
+        >> C-n ¤¢¤ë¤¤¤Ï C-p  ¤ËÅ¬Åö¤Ê°ú¿ô¤ò»ØÄê¤·¤Æ¡¢°ì²ó¤Î°ÜÆ°¤Ç¤Ê¤ë¤Ù¤¯¤³
+           ¤Î¹Ô¤Î¶á¤¯¤ËÍè¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+      C-v ¤ä ESC v ¤Ë¤Ä¤¤¤Æ¤Ï¾¯¤·°ã¤¤¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢»ØÄê¤µ¤ì¤¿¿ô¤Î¹Ô¤À¤±²è
+ ÌÌ¤ò°ÜÆ°¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
+ 
+        >> C-u 3 C-v  ¤ÈÆþÎÏ¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+      ¸µ¤ËÌá¤ë¤Ë¤Ï¡¢C-u 3 ESC v ¤ò»È¤¨¤Ð¤è¤¤¤Î¤Ç¤¹¡£
+ 
+ Ãæ»ß¥³¥Þ¥ó¥É
+ ============
+ 
+      C-g  ¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ç¡¢ÆþÎÏ¤òÉ¬Í×¤È¤¹¤ë¤è¤¦¤Ê¥³¥Þ¥ó¥É¤òÃæ»ß¤¹¤ë¤³¤È¤¬
+ ¤Ç¤­¤Þ¤¹¡£Îã¤¨¤Ð¡¢°ú¿ô¤òÆþÎÏ¤·¤Æ¤¤¤ëÅÓÃæ¤ä¡¢£²¤Ä°Ê¾å¤Î¥­¡¼ÆþÎÏ¤òÉ¬Í×¤È¤¹¤ë
+ ¥³¥Þ¥ó¥É¤òÆþÎÏ¤·¤Æ¤¤¤ëºÇÃæ¤Ë¡¢¤½¤ì¤ò¤ä¤á¤¿¤¯¤Ê¤Ã¤¿¤é¡¢C-g  ¤ò»È¤¨¤ÐÎÉ¤¤¤Î¤Ç
+ ¤¹¡£
+ 
+        >> C-u 100 ¤ò¥¿¥¤¥×¤·¤Æ°ú¿ô¤ò£±£°£°¤ËÀßÄê¤·¡¢C-g  ¤ò¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£
+           ¤½¤Î¤¢¤È¤Ç  C-f  ¤ò¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£²¿Ê¸»ú°ÜÆ°¤·¤Þ¤·¤¿¤«¡©¤â¤·
+           ´Ö°ã¤Ã¤Æ ESC ¤òÆþÎÏ¤·¤Æ¤·¤Þ¤Ã¤¿»þ¤â¡¢C-g  ¤òÆþÎÏ¤¹¤ì¤Ð¼è¤ê¾Ã¤»¤Þ
+           ¤¹¡£
+ 
+ ¥¨¥é¡¼
+ ======
+ 
+      »þ¤Ë¤Ï¡¢Emacs¤Çµö¤µ¤ì¤Æ¤¤¤Ê¤¤Áàºî¤ò¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Îã¤¨¤Ð¡¢
+ ¥³¥Þ¥ó¥É¤ÎÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¤òÆþÎÏ¤·¤Æ¤·¤Þ¤Ã¤¿»þ¤Ë¤Ï¡¢Emacs
+ ¤Ï¥Ù¥ë¤òÌÄ¤é¤·¡¢¤µ¤é¤Ë¡¢²èÌÌ¤Î°ìÈÖ²¼¤Ë¡¢²¿¤¬°­¤«¤Ã¤¿¤«¤òÉ½¼¨¤·¤Þ¤¹¡£
+ 
+      Emacs¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤ÎÆþÌçÊÔ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤ò¼Â¹Ô¤Ç¤­¤Ê
+ ¤¤¾ì¹ç¤¬¤¢¤êÆÀ¤Þ¤¹¡£¤½¤ÎÍÍ¤Ê¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¤«¤é¡¢
+ ²¿¤«¥«¡¼¥½¥ë°ÜÆ°¥­¡¼¤ò²¡¤·¤Æ¡¢¤½¤Î¼¡¤ÎÉôÊ¬¤Ë¿Ê¤ó¤Ç²¼¤µ¤¤¡£
+ 
+ ¥¦¥£¥ó¥É¥¦
+ ==========
+ 
+      Emacs¤Ï´ö¤Ä¤â¤Î¥¦¥£¥ó¥É¥¦¤ò»ý¤Ä¤³¤È¤È¡¢¤½¤Î¤½¤ì¤¾¤ì¤ËÂÐ¤·¤Æ¥Æ¥­¥¹¥È¤ò
+ É½¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Ø¥ë¥×¤ä¡¢´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤«¤é¤Î½ÐÎÏ¤òÉ½¼¨¤¹¤ë¤¿¤á
+ ¤Ë¸½¤ì¤¿Í¾Ê¬¤Ê¥¦¥£¥ó¥É¥¦¤ò¾Ã¤¹¤¿¤á¤Ë¡¢¼¡¤Î¥³¥Þ¥ó¥É¤òÃÎ¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡£
+ 
+      C-x 1             ¥¦¥£¥ó¥É¥¦¤ò£±¤Ä¤Ë¤¹¤ë¡£
+ 
+      C-x 1 ¤Ï¡¢Â¾¤Î¥¦¥£¥ó¥É¥¦¤ò¾Ã¤·¤Æ¡¢¥«¡¼¥½¥ë¤Î¤¢¤ë¥¦¥£¥ó¥É¥¦¤ò¡¢²èÌÌÁ´ÂÎ
+ ¤Ë¹­¤²¤Þ¤¹¡£
+ 
+        >> ¥«¡¼¥½¥ë¤ò¤³¤Î¹Ô¤Ë»ý¤Ã¤Æ¤­¤Æ¡¢C-u 0 C-l ¤È¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+        >> C-h k C-f ¤È¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£¿·¤·¤¤¥¦¥£¥ó¥É¥¦¤¬ C-f ¥³¥Þ¥ó¥É¤Î¥É¥­
+           ¥å¥á¥ó¥È¤òÉ½¼¨¤¹¤ë¤¿¤á¤Ë¸½¤ì¤ë¤ÈÆ±»þ¤Ë¡¢¤³¤Î¥¦¥£¥ó¥É¥¦¤¬¤É¤Î¤è¤¦
+           ¤Ë½Ì¤à¤«¤ò´Ñ»¡¤·¤Ê¤µ¤¤¡£
+ 
+        >> C-x 1¤È¥¿¥¤¥×¤·¤Æ¡¢¥É¥­¥å¥á¥ó¥È¤Î¸½¤ï¤ì¤Æ¤¤¤¿¥¦¥£¥ó¥É¥¦¤ò¾Ã¤·¤Ê¤µ
+           ¤¤¡£
+ 
+ ÁÞÆþ¤Èºï½ü
+ ==========
+ 
+      ¥Æ¥­¥¹¥È¤ò¥¿¥¤¥×¤·¤¿¤±¤ì¤Ð¡¢Ã±¤Ë¤½¤ì¤ò¥¿¥¤¥×¤¹¤ë¤À¤±¤Ç¹½¤¤¤Þ¤»¤ó¡£ÌÜ¤Ë
+ ¸«¤¨¤ëÊ¸»ú¡Ê'A','7','*','¤¢'¤Ê¤É¡Ë¤ÏEmacs¤Ë¤è¤Ã¤Æ¥Æ¥­¥¹¥È¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¡¢
+ ¤½¤Î¤Þ¤ÞÁÞÆþ¤µ¤ì¤Þ¤¹¡£¹Ô¤Î½ª¤ï¤ê¤Ï²þ¹ÔÊ¸»ú¤ÇÉ½¤µ¤ì¡¢¤³¤ì¤òÆþÎÏ¤¹¤ë¤Ë¤Ï
+ <Return> ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+      Ä¾Á°¤ËÆþÎÏ¤·¤¿Ê¸»ú¤òºï½ü¤¹¤ë¤Ë¤Ï¡¢<Delete> ¤òÆþÎÏ¤·¤Þ¤¹¡£<Delete> ¤Ï¡¢
+ ¥­¡¼¥Ü¡¼¥É¤Ç¡ÖDelete¡×¤È½ñ¤¤¤Æ¤¢¤ë¥­¡¼¤ò²¡¤·¤ÆÆþÎÏ¤·¤Þ¤¹¡£¡ÖDelete¡×¤Î¤«¤ï
+ ¤ê¤Ë¡ÖRubout¡×¤È½ñ¤¤¤Æ¤¢¤ë¤«¤âÃÎ¤ì¤Þ¤»¤ó¡£¤è¤ê°ìÈÌÅª¤Ë¤Ï¡¢<Delete> ¤Ï¡¢¸½ºß
+ ¥«¡¼¥½¥ë¤Î¤¢¤ë°ÌÃÖ¤ÎÄ¾Á°¤ÎÊ¸»ú¤òºï½ü¤·¤Þ¤¹¡£
+ 
+        >> Ê¸»ú¤ò¤¤¤¯¤Ä¤«¥¿¥¤¥×¤·¡¢¤½¤ì¤«¤é¤½¤ì¤é¤ò <Delete> ¤ò»È¤Ã¤Æºï½ü¤·
+           ¤Ê¤µ¤¤¡£
+ 
+        >> ±¦¥Þ¡¼¥¸¥ó¤ò±Û¤¨¤ë¤Þ¤Ç¥Æ¥­¥¹¥È¤ò¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£¥Æ¥­¥¹¥È¤¬°ì¹Ô¤Î
+           Éý°Ê¾å¤ËÄ¹¤¯¤Ê¤ë¤È¡¢¤½¤Î¹Ô¤Ï²èÌÌ¤«¤é¤Ï¤ß½Ð¤·¤Æ¡Ö·ÑÂ³¡×¤µ¤ì¤Þ¤¹¡£
+           ±¦Ã¼¤Ë¤¢¤ë'\'µ­¹æ¤Ï¡¢¤½¤Î¹Ô¤¬·ÑÂ³¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÉ½¤·¤Æ¤¤¤Þ¤¹¡£
+           Emacs¤Ï¡¢¸½ºßÊÔ½¸Ãæ¤Î°ÌÃÖ¤¬¸«¤¨¤ë¤è¤¦¤Ë¹Ô¤ò¥¹¥¯¥í¡¼¥ë¤·¤Þ¤¹¡£²èÌÌ
+           ¤Î±¦¤¢¤ë¤¤¤Ïº¸¤ÎÃ¼¤Ë¤¢¤ë'\'µ­¹æ¤Ï¡¢¤½¤ÎÊý¸þ¤Ë¹Ô¤¬¤Þ¤ÀÂ³¤¤¤Æ¤¤¤ë¤³
+           ¤È¤òÉ½¤·¤Æ¤¤¤Þ¤¹¡£
+ 
+      ¤³¤ì¤Ï¡¢Ê¸¾Ï¤ÇÀâÌÀ¤¹¤ë¤è¤ê¼ÂºÝ¤Ë¤ä¤Ã¤¿Êý¤¬¤è¤¯È½¤ë¤Ç¤·¤ç¤¦¡£
+ 
+        >> Àè¤Û¤ÉÆþÎÏ¤·¤¿¡¢·ÑÂ³¤µ¤ì¤¿¹Ô¤Î¾å¤Ë¥«¡¼¥½¥ë¤ò¤â¤Ã¤Æ¤¤¤­¡¢C-d ¤Ç¥Æ
+           ¥­¥¹¥È¤òºï½ü¤·¤Æ¡¢¥Æ¥­¥¹¥È¤¬°ì¹Ô¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Ê¤µ¤¤¡£·ÑÂ³
+           ¤òÉ½¤¹'\'µ­¹æ¤Ï¾Ã¤¨¤Þ¤·¤¿¤Í¡£
+ 
+        >> ¥«¡¼¥½¥ë¤ò¹Ô¤ÎÀèÆ¬¤Ë°ÜÆ°¤·¡¢<Delete> ¤òÆþÎÏ¤·¤Ê¤µ¤¤¡£¤³¤ì¤Ï¤½¤Î¹Ô
+           ¤ÎÄ¾Á°¤Î¹Ô¶çÀÚ¤ê¤òºï½ü¤¹¤ë¤Î¤Ç¡¢¤½¤Î¹Ô¤¬Á°¤Î¹Ô¤È¤Ä¤Ê¤¬¤Ã¤Æ¤·¤Þ¤¤
+           ¤Þ¤¹¡£¤Ä¤Ê¤¬¤Ã¤¿¹Ô¤¬²èÌÌ¤ÎÉý¤è¤êÄ¹¤¯¤Ê¤ë¤È¡¢·ÑÂ³¤ÎÉ½¼¨¤¬¤µ¤ì¤ë¤Ç
+           ¤·¤ç¤¦¡£
+ 
+        >> <Return> ¤ò²¡¤·¤Æ¡¢¤â¤¦°ìÅÙ¹Ô¶çÀÚ¤ê¤òÁÞÆþ¤·¤Ê¤µ¤¤¡£
+ 
+      Emacs¤Î¤Û¤È¤ó¤É¤Î¥³¥Þ¥ó¥É¤Ï¡¢·«¤êÊÖ¤·¤Î²ó¿ô¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³
+ ¤Î¤³¤È¤Ï¡¢Ê¸»ú¤ÎÁÞÆþ¤Ë¤Ä¤¤¤Æ¤âÅö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡£
+ 
+        >> C-u 8 * ¤ÈÆþÎÏ¤·¤Æ¤ß¤Ê¤µ¤¤¡£¤É¤¦¤Ê¤ê¤Þ¤·¤¿¤«¡£
+ 
+      Æó¤Ä¤Î¹Ô¤Î´Ö¤Ë¶õÇò¹Ô¤òºî¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ÆóÈÖÌÜ¤Î¹Ô¤ÎÀèÆ¬¤Ë¹Ô¤­¡¢C-o ¤ò
+ ÆþÎÏ¤·¤Þ¤¹¡£
+ 
+        >> Å¬Åö¤Ê¹Ô¤ÎÀèÆ¬¤Ë¹Ô¤­¡¢¤½¤³¤Ç C-o ¤òÆþÎÏ¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+      ¤³¤ì¤Ç¡¢Emacs¤Ç¡¢¥Æ¥­¥¹¥È¤òÆþÎÏ¤·¡¢¤Þ¤¿´Ö°ã¤¤¤ò½¤Àµ¤¹¤ë¤â¤Ã¤È¤â´ðËÜÅª
+ ¤ÊÊýË¡¤ò³Ø¤ó¤À¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ê¸»ú¤ÈÆ±¤¸ÍÍ¤Ë¡¢Ã±¸ì¤ä¹Ô¤âºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­
+ ¤Þ¤¹¡£ºï½üÁàºî¤Ë¤Ä¤¤¤ÆÍ×Ìó¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+ 
+      <Delete>       ¥«¡¼¥½¥ë¤ÎÄ¾Á°¤ÎÊ¸»ú¤òºï½ü
+      C-d            ¥«¡¼¥½¥ë¤Î¤¢¤ëÊ¸»ú¤òºï½ü
+ 
+      ESC <Delete>   ¥«¡¼¥½¥ë¤ÎÄ¾Á°¤ÎÃ±¸ì¤òºï½ü
+      ESC d          ¥«¡¼¥½¥ë°ÌÃÖ°Ê¹ß¤Ë¤¢¤ëÃ±¸ì¤òºï½ü
+ 
+      C-k            ¥«¡¼¥½¥ë°ÌÃÖ¤«¤é¹ÔËö¤Þ¤Ç¤òºï½ü
+ 
+      ²¿¤«¤òºï½ü¤·¤¿¸å¤Ç¡¢¤½¤ì¤ò¸µ¤ËÌá¤·¤¿¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Emacs¤Ï¡¢°ì
+ Ê¸»ú¤è¤ê¤âÂç¤­¤¤Ã±°Ì¤Çºï½ü¤ò¹Ô¤Ã¤¿»þ¤Ë¤Ï¡¢ºï½ü¤·¤¿ÆâÍÆ¤òÊÝÂ¸¤·¤Æ¤ª¤­¤Þ¤¹¡£
+ ¸µ¤ËÌá¤¹¤Ë¤Ï¡¢C-y ¤ò»È¤¤¤Þ¤¹¡£Ãí°Õ¤·¤¿¤¤¤Î¤Ï¡¢C-y ¤òºï½ü¤ò¹Ô¤Ã¤¿¾ì½ê¤À¤±¤Ç
+ ¤Ï¤Ê¤¯¡¢¤É¤³¤Ë¤Ç¤â½ÐÍè¤ë¤³¤È¤Ç¤¹¡£C-y  ¤Ï¡¢ÊÝÂ¸¤µ¤ì¤¿¥Æ¥­¥¹¥È¤ò¸½ºß¥«¡¼¥½¥ë
+ ¤Î¤¢¤ë¾ì½ê¤ËÁÞÆþ¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¤«¤é¡¢¤³¤ì¤ò»È¤Ã¤Æ¥Æ¥­¥¹¥È¤Î°ÜÆ°¤ò¹Ô
+ ¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+ 
+      ºï½ü¤ò¹Ô¤¦¥³¥Þ¥ó¥É¤Ë¤Ï¡¢"Delete" ¥³¥Þ¥ó¥É¤È¡¢"Kill" ¥³¥Þ¥ó¥É¤È¤¬¤¢¤ê¤Þ
+ ¤¹¡£"Kill"  ¥³¥Þ¥ó¥É¤Ç¤Ïºï½ü¤µ¤ì¤¿¤â¤Î¤ÏÊÝÂ¸¤µ¤ì¤Þ¤¹¤¬¡¢"Delete" ¥³¥Þ¥ó¥É¤Ç
+ ¤ÏÊÝÂ¸¤µ¤ì¤Þ¤»¤ó¡£¤¿¤À¤·¡¢·«¤êÊÖ¤·²ó¿ô¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢ÊÝÂ¸¤µ¤ì¤Þ¤¹¡£
+ 
+       >> C-n ¤ò£²²ó¤Û¤É¥¿¥¤¥×¤·¤Æ¡¢²èÌÌ¤ÎÅ¬Åö¤Ê¾ì½ê¤Ë°ÜÆ°¤·¤Ê¤µ¤¤¡£¤½¤·¤Æ¡¢
+           C-k ¤Ç¡¢¤½¤Î¹Ô¤òºï½ü¤·¤Ê¤µ¤¤¡£
+ 
+      °ì²óÌÜ¤Î C-k ¤Ç¤½¤Î¹Ô¤ÎÆâÍÆ¤¬ºï½ü¤µ¤ì¡¢¤â¤¦°ìÅÙ C-k ¤òÆþÎÏ¤¹¤ë¤È¡¢¤½¤Î
+ ¹Ô¼«¿È¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£¤â¤·¡¢C-k  ¤Ë·«¤êÊÖ¤·²ó¿ô¤ò»ØÄê¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î²ó¿ô
+ ¤À¤±¤Î¹Ô¤¬¡ÊÆâÍÆ¤È¹Ô¼«¿È¤È¤¬Æ±»þ¤Ë¡Ëºï½ü¤µ¤ì¤Þ¤¹¡£
+ 
+      º£ºï½ü¤µ¤ì¤¿¥Æ¥­¥¹¥È¤Ï¡¢ÊÝÂ¸¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ
+ ¤¹¡£¤½¤Î¤¿¤á¤Ë¤Ï¡¢C-y ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+        >> C-y ¤ò»î¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+      C-k ¤ò²¿ÅÙ¤âÂ³¤±¤Æ¹Ô¤¦¤È¡¢ºï½ü¤µ¤ì¤ë¥Æ¥­¥¹¥È¤Ï¡¢¤Þ¤È¤á¤ÆÊÝÂ¸¤µ¤ì¡¢C-y
+ ¤Ç¡¢¤½¤ÎÁ´¤Æ¤¬¼è¤ê½Ð¤µ¤ì¤Þ¤¹¡£
+ 
+        >> C-k ¤ò²¿ÅÙ¤â¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+        >> ¥Æ¥­¥¹¥È¤ò¼è¤ê½Ð¤¹¤Ë¤Ï¡¢C-y ¤Ç¤¹¡£¥«¡¼¥½¥ë¤ò¿ô¹Ô²¼¤Ë°ÜÆ°¤µ¤»¡¢¤â
+           ¤¦°ìÅÙ C-y ¤ò¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£¤³¤ì¤Ç¥Æ¥­¥¹¥È¤Î¥³¥Ô¡¼¤¬¤Ç¤­¤ë¤ï
+           ¤±¤Ç¤¹¡£
+ 
+      ¸½ºß²¿¤«¤Î¥Æ¥­¥¹¥È¤¬ÊÝÂ¸¤µ¤ì¤Æ¤¤¤Æ¡¢¤µ¤é¤ËÂ¾¤Î¥Æ¥­¥¹¥È¤òºï½ü¤¹¤ë¤È¤É¤¦
+ ¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡£C-y ¤Ï¡¢¤â¤Ã¤È¤âºÇ¶áºï½ü¤µ¤ì¤¿¤â¤Î¤ò¼è¤ê½Ð¤·¤Þ¤¹¡£
+ 
+ 
+        >> ¹Ô¤òºï½ü¤·¡¢¥«¡¼¥½¥ë¤ò°ÜÆ°¤µ¤»¡¢ÊÌ¤Î¹Ô¤òºï½ü¤·¤Ê¤µ¤¤¡£C-y ¤ò¹Ô¤¦
+           ¤È¡¢£²ÈÖÌÜ¤Î¹Ô¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
+ 
+ ¼è¤ê¾Ã¤·(UNDO)
+ ==============
+ 
+      ¤¤¤Ä¤Ç¤â¡¢¥Æ¥­¥¹¥È¤òÊÑ¹¹¤·¤¿¤±¤ì¤É¤â¡¢¤½¤ì¤ò¤â¤È¤ËÌá¤·¤¿¤¤¤È¤­¤ÏC-x u
+ ¤ÇÄ¾¤ê¤Þ¤¹¡£ÉáÄÌ¤Ï´Ö°ã¤¨¤¿¥³¥Þ¥ó¥É¤òÌµ¸ú¤Ë¤¹¤ëÆ¯¤­¤ò¤·¤Þ¤¹¡£·«¤êÊÖ¤·¤ÆUNDO
+ ¤ò¹Ô¤Ê¤ª¤¦¤È¤¹¤ë»þ¤Ï¡¢²¿ÅÙ¤â¤½¤Î¥³¥Þ¥ó¥É¤ò¹Ô¤Ê¤¨¤Ð½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+ 
+        >> ¤³¤Î¹Ô¤òC-k¤Ç¾Ã¤·¤Æ²¼¤µ¤¤¡£¤½¤·¤Æ¡¢C-x u¤ÇÌá¤·¤Æ²¼¤µ¤¤¡£
+ 
+      C-_¤Ï¡¢UNDO¤ò¹Ô¤Ê¤¦¡¢¤â¤¦°ì¤Ä¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£µ¡Ç½¤Ï¡¢C-x u¤ÈÆ±¤¸¤Ç¤¹¡£
+ 
+      C-_¤äC-x u¤ËUNDO¤Î²ó¿ô¤ò¡¢Í¿¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
+ 
+ 
+ ¥Õ¥¡¥¤¥ë
+ ========
+ 
+      ¥Æ¥­¥¹¥È¤Ø¤ÎÊÑ¹¹¤ò±Êµ×Åª¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤ì¤ò¥Õ¥¡¥¤¥ë¤ËÊÝÂ¸¤·¤Ê¤±¤ì¤Ð
+ ¤Ê¤ê¤Þ¤»¤ó¡£ÊÝÂ¸¤µ¤ì¤Ê¤¤¤È¡¢¤Û¤É¤³¤·¤¿ÊÑ¹¹¤Ï¡¢Emacs¤ò½ªÎ»¤¹¤ë¤ÈÆ±»þ¤Ë¼º¤ï¤ì
+ ¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
+ 
+      ¤¤¤Þ¸«¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂÐ¤·¤Æ¡¢¤¢¤Ê¤¿¤ÎÊÔ½¸¤ò¹Ô¤Ã¤¿¤â¤Î¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£
+ ¤¤¤Þ¸«¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¤Ï¡¢´ÊÃ±¤Ë¤¤¤¨¤ÐÊÔ½¸¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¼«ÂÎ¤Î¤³¤È¤Ç¤¹¡£
+ 
+      ¤¢¤Ê¤¿¤¬¥Õ¥¡¥¤¥ë¤ò¥»¡¼¥Ö¡ÊÊÝÂ¸¤¹¤ë¡Ë¤¹¤ë¤Þ¤Ç¡¢º£¤Þ¤Ç¤ÎÊÑ¹¹¤ÏÊÔ½¸¤·¤Æ¤¤
+ ¤ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë»ö¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤½¤ì¤Ï¡¢¤¢¤Ê¤¿¤¬¤½¤Î¤è¤¦¤Ë¹Ô¤¤¤¿¤¯
+ ¤Ê¤¤¤Î¤Ë¡¢ÅÓÃæ¤Þ¤ÇÊÑ¹¹¤ò²Ã¤¨¤¿¤â¤Î¤¬¾¡¼ê¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤è¤¦¤Ê»ö¤¬¤Ê¤¤¤è¤¦¤Ë
+ ¤Ç¤¹¡£
+ 
+      ¥»¡¼¥Ö¤ò¹Ô¤Ã¤¿¸å¤Ç¤µ¤¨ÊÑ¹¹¤·¤¿¤â¤Î¤¬´Ö°ã¤Ã¤Æ¤¤¤¿»þ¤Î¤¿¤á¤ËEmacs¤ÏÌ¾Á°
+ ¤òÊÑ¤¨¤Æ¥ª¥ê¥¸¥Ê¥ë¤Î¥Õ¥¡¥¤¥ë¤ò»Ä¤·¤Þ¤¹¡£
+ 
+ È÷¹Í:          ¤Þ¤¿¡¢Emacs¤ÏÉÔÂ¬¤Î»öÂÖ¤ËÂÐ¤·¡¢°ìÄê¤Î¥¿¥¤¥ß¥ó¥°¤´¤È¤Ë¼«Æ°Åª
+                ¤ËÊÔ½¸¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤òÌ¾Á°¤òÊÑ¤¨¤¿¥Õ¥¡¥¤¥ë¤Ë¥»¡¼¥Ö¤·
+                ¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢Ëü°ì¤Î¾ì¹ç¤Ï¹Ô¤Ã¤¿¤ÎÊÑ¹¹¤ËÂÐ¤·ºÇ¾®¸Â¤ÎÈï
+                ³²¤ÇºÑ¤à¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+ 
+      ²èÌÌ¤Î²¼¤ÎÊý¤ò¸«¤ë¤È¡¢¤³¤Î¤è¤¦¤Ê´¶¤¸¤Ç¥â¡¼¥É¥é¥¤¥ó¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤È»×
+ ¤¤¤Þ¤¹¡£
+ 
+ 
+ (Îã)  --**-NEmacs: NEMACS.tut     (Fundamental) ---55%------[JJJ-]--------
+ 
+ 
+      ¤³¤ÎEmacs¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥³¥Ô¡¼¤ÏNEMACS.tut¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤ò
+ ¥Õ¥¡¥¤¥ó¥É¡Ê¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Æ¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤à¤³¤È¡Ë¤¹¤ë¤È¡¢NEMACS.tut¤ÎÉô
+ Ê¬¤ËÉ½¼¨¤µ¤ì¤Þ¤¹¡£Îã¤¨¤Ð¡¢new-file¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ó¥É¤·¤¿¤Ê¤é
+ ¤Ð¡¢"NEmacs: new-file"¤È¤¤¤¦¥â¡¼¥É¥é¥¤¥ó¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
+ 
+ Ãí°Õ¡§         ¥â¡¼¥É¥é¥¤¥ó¤Ë¤Ä¤¤¤Æ¤Ï¸å¤Û¤ÉÀâÌÀ¤·¤Þ¤¹¡£¾¯¤·¤ªÂÔ¤Á¤ò¡£
+ 
+      ¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ó¥É¤·¤¿¤ê¡¢¥»¡¼¥Ö¤·¤¿¤ê¤¹¤ë¥³¥Þ¥ó¥É¤Ï¡¢¤³¤ì¤Þ¤Ç¤Î¤â¤Î
+ ¤È¤Ï°ã¤¤¡¢£²¤Ä¤ÎÊ¸»ú¤«¤é¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£C-x  ¤ËÂ³¤¤¤ÆÆþÎÏ¤¹¤ëÊ¸»ú¤¬¡¢¥Õ¥¡¥¤¥ë
+ ¤ËÂÐ¤·¤Æ¹Ô¤¦Áàºî¤òÉ½¤·¤Þ¤¹¡£
+ 
+      ¤â¤¦°ì¤Ä¤³¤ì¤Þ¤Ç¤Î¤â¤Î¤È°ã¤¦ÅÀ¤Ï¡¢¥Õ¥¡¥¤¥ó¥É¤Î»þ¡¢¥Õ¥¡¥¤¥ëÌ¾¤òEmacs¤Ë
+ Ìä¤ï¤ì¤Þ¤¹¡£¤³¤Î¤³¤È¤ò¡¢Ã¼Ëö¤«¤é°ú¿ô¤òÆÉ¤ß¹þ¤ó¤Ç¤¯¤ë¥³¥Þ¥ó¥É¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¡£
+ 
+ Ãí°Õ¡§         ¤³¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ëÌ¾¤Ç¤¹¡£
+ 
+                     C-x C-f   ¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤ë¡Ê¥Õ¥¡¥¤¥ó¥É¤¹¤ë¡Ë
+ 
+      Emacs¤Ï¥Õ¥¡¥¤¥ëÌ¾¤òÊ¹¤¤¤Æ¤­¤Þ¤¹¡£¤½¤ì¤Ï¡¢²èÌÌ¤Î²¼¤Î¹Ô¤Ë¸½¤ì¤Þ¤¹¡£¥Õ¥¡
+ ¥¤¥ëÌ¾¤ò»ØÄê¤·¤Æ¤¤¤ëÉôÊ¬¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Ç¤¹¡£¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ï
+ ¤³¤ÎÍÍ¤Ê»È¤ï¤ìÊý¤ò¤·¤Þ¤¹¡£¥Õ¥¡¥¤¥ëÌ¾¤ËÂ³¤¤¤Æ¡¢¥ê¥¿¡¼¥ó¥­¡¼¤ò²¡¤¹¤È¡¢¥ß¥Ë¥Ð
+ ¥Ã¥Õ¥¡¤ËÉ½¼¨¤µ¤ì¤Æ¤¤¤¿ÆâÍÆ¤Ï¤â¤¦É¬Í×¤Ç¤Ï¤Ê¤¯¤Ê¤ë¤Î¤Ç¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
+ 
+        >> C-x C-f¤È¥¿¥¤¥×¤·¤¿¸å¤ËC-g¤È¥¿¥¤¥×¤·¤Æ²¼¤µ¤¤¡£¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ
+           ¤ò¼è¤ê¾Ã¤·¡¢¤Þ¤¿¡¢C-x C-f¥³¥Þ¥ó¥É¤â¼è¤ê¾Ã¤·¤Þ¤¹¡£¤È¸À¤¦Ìõ¤Ç¡¢²¿¤â
+ 	  ¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤ë¤è¤¦¤Ê¤³¤È¤Ï¤·¤Þ¤»¤ó¡£
+ 
+      º£ÅÙ¤Ï¥Õ¥¡¥¤¥ë¤ò¥»¡¼¥Ö¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£º£¤Þ¤Ç¤ÎÊÑ¹¹¤òÊÝÂ¸¤¹¤ë¤¿¤á¤Ë¤Ï¼¡
+ ¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£
+ 
+      C-x C-s   ¥Õ¥¡¥¤¥ë¤ò¥»¡¼¥Ö¤¹¤ë
+ 
+      Emacs¤ÎÆâÍÆ¤Ï¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤Þ¤¹¡£¥»¡¼¥Ö¤¹¤ë»þ¡¢¥ª¥ê¥¸¥Ê¥ë¤Î
+ ¥Õ¥¡¥¤¥ë¤Ï¿·¤·¤¤Ì¾Á°¤ò¤Ä¤±¤é¤ì¤Æ»Ä¤µ¤ì¤Æ¤¤¤ë¤Î¤ÇÆâÍÆ¤Ï¼º¤ï¤ì¤Þ¤»¤ó¡£¤½
+ ¤Î¿·¤·¤¤Ì¾Á°¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î¥Õ¥¡¥¤¥ë¤ÎÌ¾Á°¤Ë'~'¤ò¤Ä¤±¤¿¤â¤Î¤Ç¤¹¡£
+ 
+      ¥»¡¼¥Ö¤¬½ª¤ï¤ë¤È¡¢Emacs¤Ï¥»¡¼¥Ö¤·¤¿¥Õ¥¡¥¤¥ë¤ÎÌ¾Á°¤òÉ½¼¨¤·¤Þ¤¹¡£
+ 
+        >> C-x C-s¤È¥¿¥¤¥×¤·¤Æ¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥³¥Ô¡¼¤ò¥»¡¼¥Ö¤·¤Æ²¼¤µ¤¤¡£¤½¤Î
+           »þ¡¢²èÌÌ¤Î²¼¤ÎÊý¤Ë"Wrote ...../NEMACS.tut"¤ÈÉ½¼¨¤µ¤ì¤Þ¤¹¡£
+ 
+      ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºî¤ë»þ¡¢¤¢¤¿¤«¤â°ÊÁ°¤«¤é¤¢¤Ã¤¿¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ó¥É¤¹¤ë
+ ¤è¤¦¤Ê¥Õ¥ê¤ò¤·¤Þ¤¹¡£¤½¤¦¤·¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ó¥É¤·¤¿¥Õ¥¡¥¤¥ë¤Ë¥¿¥¤¥×¤·¤Æ¤¤¤­¤Þ
+ ¤¹¡£
+ 
+      ¥Õ¥¡¥¤¥ë¤ò¥»¡¼¥Ö¤·¤è¤¦¤È¤·¤¿»þ¤Ë½é¤á¤Æ¡¢Emacs¤Ïº£¤Þ¤ÇÊÔ½¸¤·¤Æ¤¤¤¿ÆâÍÆ
+ ¤ò¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£
+ 
+ 
+ ¥Ð¥Ã¥Õ¥¡
+ ========
+ 
+      ¤â¤·¡¢£²ÈÖÌÜ¤Î¥Õ¥¡¥¤¥ë¤ò C-x C-f ¤Ç¼è¤ê½Ð¤¹¤È¡¢£±ÈÖÌÜ¤Î¥Õ¥¡¥¤¥ë¤ÏEmacs
+ ÆâÉô¤Ë»Ä¤ê¤Þ¤¹¡£EmacsÆâÉô¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤«¤é¥Æ¥­¥¹¥È¤òÆÉ¤ß¹þ¤ó¤ÇÊÝÂ¸¤·¤Æ¤¤¤ë
+ ¤â¤Î¤Ï¥Ð¥Ã¥Õ¥¡¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤Î¼è¤ê½Ð¤·¤Ï¡¢EmacsÆâÉô¤Ë¿·¤·¤¤¥Ð¥Ã¥Õ¥¡
+ ¤òºî¤ê¤Þ¤¹¡£
+ 
+      Emacs¤ÎÃæ¤ËÊÝÂ¸¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Î¥ê¥¹¥È¤ò¸«¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·
+ ¤Þ¤¹¡£
+ 
+      C-x C-b
+ 
+        >> C-x C-b ¤È¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤¬¤É¤Î¤è¤¦¤ËÌ¾Á°¤ò»ý
+           ¤Ã¤Æ¤¤¤ë¤«¡¢¤½¤·¤Æ¡¢¤É¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ëÌ¾¤ò¤Ä¤±¤Æ¤¤¤ë¤Î¤«´Ñ»¡¤·¤Ê
+           ¤µ¤¤¡£
+ 
+      ¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¥Õ¥¡¥¤¥ë¤È°ìÃ×¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
+ "*Buffer List*" ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï C-x C-b ¤Ë¤è¤Ã¤Æºî¤é¤ì
+ ¤¿¥Ð¥Ã¥Õ¥¡¥ê¥¹¥È¤ËÂÐ¤·¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤¹¡£
+ 
+      ¤¢¤Ê¤¿¤¬¸«¤Æ¤¤¤ëEmacs¥¦¥£¥ó¥É¥¦Æâ¤Ë¤¢¤ë¡¢¤É¤ó¤Ê¥Æ¥­¥¹¥È¤Ç¤â¡¢¤¤¤º¤ì¤«
+ ¤Î¥Ð¥Ã¥Õ¥¡Æâ¤Ë¤¢¤ê¤Þ¤¹¡£
+ 
+        >> ¥Ð¥Ã¥Õ¥¡¥ê¥¹¥È¤ò¾Ã¤¹¤¿¤á C-x 1 ¤È¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£
+ 
+      ¤â¤·¡¢¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¥Æ¥­¥¹¥È¤ËÊÑ¹¹¤ò¹Ô¤Ê¤Ã¤Æ¤«¤é¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð
+ ¤·¤¿¤È¤·¤¿¤é¡¢ºÇ½é¤Î¥Õ¥¡¥¤¥ë¤Ï¥»¡¼¥Ö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤½¤ÎÊÑ¹¹¤ÏEmacsÆâÉô¤Î¥Õ
+ ¥¡¥¤¥ë¤ÈÂÐ±þ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤À¤±¤Ë¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+ 
+      £²ÈÖÌÜ¤Î¥Õ¥¡¥¤¥ë¤ËÂÐ±þ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤òºî¤Ã¤¿¤ê¡¢¥¨¥Ç¥£¥Ã¥È¤·¤¿¤ê¤·¤Æ¤â¡¢
+ £±ÈÖÌÜ¤Î¥Õ¥¡¥¤¥ë¤ËÂÐ±þ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤Ë¤Ï²¿¤â±Æ¶Á¤òÍ¿¤¨¤Þ¤»¤ó¡£¤³¤ì¤Ï¤È¤Æ¤â»È
+ ¤¤°×¤¯¡¢¤Þ¤¿¡¢£±ÈÖÌÜ¤Î¥Õ¥¡¥¤¥ë¤ËÂÐ±þ¤¹¤ë¥Ð¥Ã¥Õ¥¡¤ò¼è¤Ã¤Æ¤ª¤¯¤¿¤á¤ËÌò¤ËÎ©¤Ä
+ ÊýË¡¤Ç¤¹¡£
+ 
+      C-x C-s ¤Ç¥Ð¥Ã¥Õ¥¡¤ò¥»¡¼¥Ö¤¹¤ë¤¿¤á¤Ë C-x C-f ¤Ç¥Ð¥Ã¥Õ¥¡¤òÀÚ¤êÂØ¤¨¤ë¤Î
+ ¤ÏÌñ²ð¤Ç¤¹¡£¤½¤³¤Ç¼¡¤Î¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£
+ 
+      C-x s   ¸½ºß¤¢¤ë¥Ð¥Ã¥Õ¥¡¤ò¥»¡¼¥Ö¤¹¤ë¡£
+ 
+      C-x s ¤ÏÆâÍÆ¤òÊÑ¤¨¤¿¥Ð¥Ã¥Õ¥¡Á´¤Æ¤ò¥Õ¥¡¥¤¥ë¤Ë¥»¡¼¥Ö¤·¤Þ¤¹¡£¤³¤Î»þ¡¢¤Ò¤È
+ ¤Ä¤Ò¤È¤Ä¤Î(¥»¡¼¥Ö¤µ¤ì¤ë¤Ù¤­)¥Ð¥Ã¥Õ¥¡¤ËÂÐ¤·¤Æ¡¢¥»¡¼¥Ö¤¹¤ë¤«¡¢¤·¤Ê¤¤¤«¤òy¤«n
+ ¤ÇÌä¤ï¤ì¤Þ¤¹¡£¤³¤ÎÉ½¼¨¤Ï²èÌÌ¤Î²¼¤Î¹Ô¤ËÉ½¼¨¤µ¤ì¤Þ¤¹¡£Îã¤¨¤Ð¡¢¤³¤Î¤è¤¦¤Ë¤Ç¤¹¡£
+ 
+              Save file  /usr/private/yours/NEMACS.tut? (y or n)
+ 
+ 
+ 
+ ¥³¥Þ¥ó¥É¤Î³ÈÄ¥
+ ==============
+ 
+      ¥¨¥Ç¥£¥¿¤Ë¤Ï¡¢¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¤ä¥á¥¿¡¦¥­¡¼¤ÇÆþÎÏ¤Ç¤­¤ë¤â¤Î¤è¤ê¤â¤º¤Ã
+ ¤ÈÂ¿¤¯¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤ò°·¤¦¤¿¤á¤Ë¡¢³ÈÄ¥¡ÊeXtend¡Ë¥³¥Þ¥ó¥É¤ò
+ »È¤¤¤Þ¤¹¡£¤½¤ì¤Ë¤Ï¡¢°Ê²¼¤Î£²¤Ä¤Î¼ïÎà¤¬¤¢¤ê¤Þ¤¹¡£
+ 
+      C-x     Ê¸»ú¤Ë¤è¤ë³ÈÄ¥¡£Â³¤±¤Æ°ìÊ¸»ú¤òÆþÎÏ¤·¤Þ¤¹¡£
+      ESC x   Ì¾Á°¤Ë¤è¤ë³ÈÄ¥¡£Â³¤±¤Æ¥³¥Þ¥ó¥É¤ÎÌ¾Á°¤òÆþÎÏ¤·¤Þ¤¹¡£
+ 
+      ¤³¤ì¤é¤Ï°ìÈÌ¤Ë¡¢ÊØÍø¤À¤±¤ì¤É¤â¡¢¤³¤ì¤Þ¤Ç¸«¤Æ¤­¤¿¤â¤Î¤Û¤ÉÉÑÈË¤Ë¤ÏÍÑ¤¤¤é
+ ¤ì¤Ê¤¤¥³¥Þ¥ó¥É¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£C-x  C-f ¡Ê¥Õ¥¡¥¤¥ó¥É¡Ë¤ä C-x C-s¡Ê¥»¡¼¥Ö¡Ë
+ ¤Ï¤³¤ÎÃç´Ö¤Ç¤¹¡£Â¾¤Ë¡¢C-x C-c¡Ê¥¨¥Ç¥£¥¿¤Î½ªÎ»¡Ë¤â¤½¤¦¤Ç¤¹¡£
+ 
+      C-z¤ÏEmacs¤òÈ´¤±¤ë¤Î¤ËÎÉ¤¯»È¤ï¤ì¤ëÊýË¡¤Ç¤¹¡£Emacs¤ò½ªÎ»¤¹¤ë¤³¤È¤Ê¤¯¡¢
+ °ìÃ¶¡¢csh¤Î¥ì¥Ù¥ë¤ËÌá¤ë¤Ë¤Ï°ìÈÖÎÉ¤¤ÊýË¡¤È¸À¤¨¤ë¤Ç¤·¤ç¤¦¡£C-z¤ò¹Ô¤Ê¤ï¤ì¤Æ¤â
+ Emacs¤Ï¥¹¥È¥Ã¥×¤·¤Æ¤¤¤ë¤À¤±¤Ç¡¢ÆâÍÆ¤¬ÇË²õ¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+ 
+ Ãí°Õ:          ¤¿¤À¤·X-window¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¤â¤·¤¯¤Ï»ÈÍÑ¤·¤Æ¤¤¤ë¥·¥§¥ë
+                ¤¬sh¤Î»þ¤Ï¡¢¤³¤Î¸Â¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+ 
+ 
+      C-x  ¥³¥Þ¥ó¥É¤Ï¡¢¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£¤¹¤Ç¤Ë³Ø¤ó¤À¤â¤Î¤Ï°Ê²¼¤Î¤â¤Î¤Ç¤¹¡£
+ 
+      C-x C-f   ¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸¡ÊFind¡Ë
+      C-x C-s   ¥Õ¥¡¥¤¥ë¤ÎÊÝÂ¸¡ÊSave¡Ë
+      C-x C-b   ¥Ð¥Ã¥Õ¥¡¥ê¥¹¥È¤ÎÉ½¼¨
+      C-x C-c   ¥¨¥Ç¥£¥¿¤ò½ªÎ»¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤ÎÊÝÂ¸¤Ï¡¢¼«Æ°Åª¤Ë¤Ï¹Ô¤ï¤ì¤Þ¤»
+                ¤ó¡£¤·¤«¤·¡¢¤â¤·¥Õ¥¡¥¤¥ë¤¬ÊÑ¹¹¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÎÊÝÂ¸
+                ¤ò¤¹¤ë¤Î¤«¤É¤¦¤«¤òÊ¹¤¤¤Æ¤­¤Þ¤¹¡£ÊÝÂ¸¤·¤Æ½ªÎ»¤¹¤ëÉáÄÌ¤ÎÊýË¡
+                ¤Ï¡¢C-x C-s C-x C-c ¤È¤¹¤ë¤³¤È¤Ç¤¹¡£
+ 
+      Ì¾Á°¤Ë¤è¤ë³ÈÄ¥¥³¥Þ¥ó¥É¤Ë¤Ï¡¢¤¢¤Þ¤ê»È¤ï¤ì¤Ê¤¤¤â¤Î¤ä¡¢ÆÃÄê¤Î¥â¡¼¥É¤Ç¤·¤«
+ »È¤ï¤Ê¤¤¤â¤Î¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢"command-apropos" ¤ò¤È¤ê¤¢¤²¤Þ¤¹¡£¤³
+ ¤Î¥³¥Þ¥ó¥É¤Ï¥­¡¼¥ï¡¼¥É¤òÆþÎÏ¤µ¤»¡¢¤½¤ì¤Ë¥Þ¥Ã¥Á¤¹¤ëÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤ÎÌ¾Á°¤òÉ½
+ ¼¨¤·¤Þ¤¹¡£ESC x ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢¥¹¥¯¥ê¡¼¥ó¤Î²¼¤Ë "M-x" ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤ì
+ ¤ËÂÐ¤·¤Æ¡¢¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ÎÌ¾Á°¡Êº£¤Î¾ì¹ç¡¢"command-apropos"¡Ë¤òÆþÎÏ¤·¤Þ¤¹¡£
+ "command-a" ¤Þ¤ÇÆþÎÏ¤·¤¿¸å¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤ì¤Ð¡¢¸å¤ÎÉôÊ¬¤Ï¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£
+ ¤³¤Î¸å¡¢¥­¡¼¥ï¡¼¥É¤òÊ¹¤«¤ì¤Þ¤¹¤«¤é¡¢ÃÎ¤ê¤¿¤¤Ê¸»úÎó¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£¤Ê¤ª¡¢¥­¡¼
+ ¥ï¡¼¥É¤òÆþ¤ì¤Ê¤¤¤È¡¢Á´¤Æ¤Î¥³¥Þ¥ó¥É¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+ 
+        >> ESC x ¤ò¥¿¥¤¥×¤·¡¢Â³¤±¤Æ¡¢"command-apropos<Return>" ¤¢¤ë¤¤¤Ï
+           "command-a<Space><Return>" ¤È¥¿¥¤¥×¤·¤Þ¤¹¡£¼¡¤Ë¡¢"kanji<Return>"
+           ¤È¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+      ¸½¤ì¤¿¡Ö¥¦¥£¥ó¥É¥¦¡×¤ò¾Ã¤¹¤Ë¤Ï¡¢C-x 1 ¤È¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+ ¥â¡¼¥É¥é¥¤¥ó
+ ============
+ 
+      ¤â¤·¤æ¤Ã¤¯¤ê¤È¥³¥Þ¥ó¥É¤òÂÇ¤Ã¤¿¤Ê¤é¤Ð¡¢²èÌÌ¤Î²¼Äì¤Î¥¨¥³¡¼¥¨¥ê¥¢¤È¸Æ¤Ð¤ì
+ ¤ë¾ì½ê¤ËÂÇ¤Ã¤¿¤â¤Î¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥¨¥³¡¼¥¨¥ê¥¢¤Ï²èÌÌ¤Î1¤Ð¤ó²¼¤Î¹Ô¤Ç¤¹¡£¤½¤Î
+ ¤¹¤°¾å¤Î¹Ô¤Ï¡¢¥â¡¼¥É¥é¥¤¥ó¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£¥â¡¼¥É¥é¥¤¥ó¤Ï¤³¤ó¤ÊÉ÷¤ËÉ½¼¨¤µ
+ ¤ì¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£
+ 
+  --**-NEmacs: NEMACS.tut            (Fundamental) ---NN%----[JJJ-]-------
+ 
+ 
+ Ãí°Õ:           NN%¤ÎNN¤Ï¿ô»ú¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤Ê¤¿¤¬»È¤Ã¤Æ¤¤¤ëEmacs¤Î¥â¡¼
+                ¥É¥é¥¤¥ó¤È°ã¤¦¤«¤âÃÎ¤ì¤Ê¤¤¤±¤É¡¢¹²¤Æ¤Ê¤¤¤è¤¦¤Ë¡£Îã¤¨¤Ð¡¢»þ´Ö
+                ¤äuptime¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢display-time¤È¤¤¤¦µ¡Ç½¤¬Æ°¤¤¤Æ
+                ¤¤¤ë¤«¤é¤Ç¤¹¡£
+ 
+      ¤³¤Î¹Ô¤Ë¤è¤Ã¤ÆÂ¿¤¯¤ÎÍ­ÍÑ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
+ 
+ 
+      º£¡¢¤¢¤Ê¤¿¤¬¸«¤Æ¤¤¤ë¥Õ¥¡¥¤¥ëÌ¾¤òÉ½¼¨¤·¤Æ¤¤¤Þ¤¹¡£NN%¤Ï¸½ºß¥¹¥¯¥ê¡¼¥ó¾å
+ ¤Ë¥Õ¥¡¥¤¥ë¤Î°ìÈÖ¾å¤«¤é²¿¥Ñ¡¼¥»¥ó¥ÈÌÜ¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥Õ¥¡
+ ¥¤¥ë¤Î°ìÈÖºÇ½é¤òÉ½¼¨¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢--Top--¤ÈÉ½¼¨¤µ¤ì¤Æ¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤Î°ìÈÖ
+ ºÇ¸å¤òÉ½¼¨¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢--Bot--¤ÈÉ½¼¨¤µ¤ì¤Þ¤¹¡£²èÌÌ¤ÎÃæ¤Ë¥Õ¥¡¥¤¥ë¤ÎÁ´¤Æ¤¬
+ É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢--All--¤ÈÉ½¼¨¤µ¤ì¤Þ¤¹¡£
+ 
+      ¥â¡¼¥É¥é¥¤¥ó¤Î¾®³ç¸Ì¤ÎÃæ¤Ï¡¢º£¤É¤ó¤Ê¥â¡¼¥É¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
+ ¸½ºß¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÎFundamental¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤â¥á¥¸¥ã¡¼¥â¡¼¥É¤Î°ìÎã¤Ç
+ ¤¹¡£
+ 
+      Emacs¤ÏLisp mode¤äText mode¤Î¤è¤¦¤Ê¤³¤È¤Ê¤ë¥×¥í¥°¥é¥à¸À¸ì¤ä¥Æ¥­¥¹¥È¤Ë
+ ÂÐ¤·¤Æ¥¨¥Ç¥£¥Ã¥È¤ò¹Ô¤¦¤¿¤á¤Î´ö¤Ä¤«¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤É¤ó¤Ê»þ
+ ¤Ç¤âÉ¬¤º¤¤¤º¤ì¤«¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¾õÂÖ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+ 
+      ¤½¤ì¤¾¤ì¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Ï´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤òÁ´¤¯°ã¤¦¿¶¤ëÉñ¤¤¤Ë¤·¤Æ¤·¤Þ
+ ¤¤¤Þ¤¹¡£Îã¤ò¾å¤²¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥×¥í¥°¥é¥à¤ÎÃæ¤Ë¥³¥á¥ó¥È¤òºî¤ë¥³¥Þ¥ó¥É¤¬¤¢¤ê
+ ¤Þ¤¹¡£¥³¥á¥ó¥È¤ò¤É¤ÎÍÍ¤Ê·Á¼°¤Ë¤¹¤ë¤«¤Ï¡¢³Æ¥×¥í¥°¥é¥à¸À¸ì¤Ë¤è¤Ã¤Æ°ã¤¤¤Þ¤¹¤¬¡¢
+ ¤½¤ì¤¾¤ì¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Ï¡¢¤­¤Á¤ó¤ÈÆþ¤ì¤Æ¤¯¤ì¤Þ¤¹¡£
+ 
+      ¤½¤ì¤¾¤ì¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤ËÆþ¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ï¥â¡¼¥ÉÌ¾¤Î³ÈÄ¥¤µ¤ì¤¿¤â¤Î
+ ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Îã¤¨¤Ð¡¢M-x fundamental-mode¤ÏFundamental¤ËÆþ¤ë¤¿¤á¤Î¤â¤Î¤Ç
+ ¤¹¡£
+ 
+      ¤â¤·¡¢±Ñ¸ì¤ò¥¨¥Ç¥£¥Ã¥È¤¹¤ë¤Ê¤é¤Ð¡¢Text mode¤ËÆþ¤ê¤Þ¤¹¡£
+ 
+        >> M-x text-mode <Retuen>¤È¥¿¥¤¥×¤·¤Ê¤µ¤¤¡£
+ 
+      ¸½ºß¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤¿¤¤»þ¤Ï¡¢C-h m¤È¥¿¥¤¥×
+ ¤·¤Þ¤¹¡£
+ 
+        >> C-h m ¤ò»È¤Ã¤ÆText mode¤ÈFundamental mode¤Î°ã¤¤¤òÄ´¤Ù¤Ê¤µ¤¤¡£
+ 
+        >> C-x 1¤Ç¥É¥­¥å¥á¥ó¥È¤ò²èÌÌ¤«¤é¾Ã¤·¤Ê¤µ¤¤¡£
+ 
+      °ìÈÖ±¦Ã¼¤Ë¤Ï´Á»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ë¥Õ¥é¥°¤Î¾õÂÖ¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+ NEmacs¤Ï¡¢¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¡¢ÆþÎÏ¡¢²èÌÌ½ÐÎÏ¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¾¤ìÆÈÎ©¤Ë´Á»ú¥³¡¼¥É
+ ¤ò»ØÄê¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
+ 
+        >> ¥â¡¼¥É¥é¥¤¥ó¾å¤Ë"[JJJ-]","[SSS-]","[EEE-]"¤«"['JSEN-'¤¤¤º¤ì
+           ¤«¤ÎÁÈ¤ß¹ç¤ï¤»]"¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«³ÎÇ§¤·¤Ê¤µ¤¤¡£
+ 
+      ½ç¤Ë¥Õ¥¡¥¤¥ë½ÐÎÏ¡¢¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¡¢É½¼¨¡¢¥×¥í¥»¥¹Æþ½ÐÎÏ¤Î´Á»ú¥³¡¼¥É¤ò¼¨
+ ¤·¤Æ¤ª¤ê¡¢J¤ÏJIS¡¢S¤Ï¥·¥Õ¥ÈJIS¡¢E¤ÏEUC¥³¡¼¥É¡¢N¤ÏÌµÊÑ´¹¡¢-¤ÏÌ¤Äê¤ò°ÕÌ£¤·¤Æ
+ ¤¤¤Þ¤¹¡£¤É¤Î´Á»ú¥³¡¼¥É¤ò»ÈÍÑ¤¹¤ë¤«¡¢´Á»ú¥³¡¼¥É¤ò°ìÀÚ»È¤ï¤Ê¤¤¤«¤Ï¡¢¤½¤ÎÉ½¼¨
+ ¤Ë¤è¤Ã¤ÆÉ½¤µ¤ì¤Þ¤¹¡£¸½ºß¤ÏÉ½¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç´Á»ú¥³¡¼¥É¤¬»ÈÍÑ½ÐÍè¤ë¾õÂÖ¤Ë¤Ê¤Ã
+ ¤Æ¤¤¤Þ¤¹¡£´Á»ú¥³¡¼¥É¤ò»È¤¦¤«¤É¤¦¤«¤Ï¡¢¤½¤ì¼«ÂÎ¤ÏON/OFF¤Î¥È¥°¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ
+ ¤¹¡£¤³¤ì¤ÏC-x C-k t¤ÇÀÚ¤ê´¹¤ï¤ê¤Þ¤¹¡£
+ 
+      ¼¡¤ÎÎã¤Ï¡¢°ìÅÙ´Á»ú¥³¡¼¥É¤òOFF¤·¤Æ¤«¤é¡¢¤â¤¦°ìÅÙON¤ò¹Ô¤Ã¤Æ¤ß¤Þ¤¹¡£
+ 
+        >> C-x C-k t¤ò2ÅÙ¹Ô¤¤¤Ê¤µ¤¤¡£
+ 
+      ÆþÎÏ¥â¡¼¥É¤¬JIS¥³¡¼¥É¤ÎÀßÄê¤È¤Ê¤Ã¤Æ¤¤¤ë»þ¡¢¤â¤·¤¢¤Ê¤¿¤Î»È¤Ã¤Æ¤¤¤ëÃ¼Ëö
+ ¤Ë¥á¥¿¡¦¥­¡¼¤¬ÉÕ¤¤¤Æ¤¤¤ë¤Ê¤é¡¢¥¨¥¹¥±¡¼¥×¡¦¥­¡¼¤ÎÂå¤ï¤ê¤Ë¤½¤ì¤ò»È¤¦¤³¤È¤¬½Ð
+ Íè¤Þ¤¹¡£¤½¤Î»þ¡¢¥á¥¿¡¦¥­¡¼¤Î»È¤¤Êý¤Ï¥³¥ó¥È¥í¡¼¥ë¡¦¥­¡¼¤ÈÆ±ÍÍ¤Ë²¡¤·¤Ê¤¬¤éÊ¸
+ »ú¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£ESC <Ê¸»ú>¤âM-<Ê¸»ú>¤âÆ±¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡£º£¤Þ¤Ç¤ÎÀâÌÀ¤ÇESC
+ <Ê¸»ú>¤È¹Ô¤Ê¤Ã¤Æ¤¤¤¿¤È¤³¤í¤¬¡¢M-<Ê¸»ú>¤È¤Ê¤ê¤Þ¤¹¡£Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î
+ ¤Ï¡¢¥·¥Õ¥ÈJIS¤äEUC¥³¡¼¥É¤Î»þ¤Ï»ÈÍÑ¤Ç¤­¤Þ¤»¤ó¡£
+ 
+      ´Á»ú¥³¡¼¥É¤ÎÀÚ¤êÂØ¤¨¤Ï¡¢³Æ¡¹¤Î¥Ð¥Ã¥Õ¥¡¤ËÂÐ¤·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¹¡£¤½¤ì¤¾¤ì¤Î¡¢
+ ´Á»ú¥³¡¼¥É»ØÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢C-h a change <Return>¤Ç¸«¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
+ 
+        >> C-h a change <Return>¤Ç½Ð¤Æ¤¯¤ë¥É¥­¥å¥á¥ó¥ÈÃæ¤Î¡¢change-display-
+           code, change-fileio-code, change-input-code, change-process-code
+ 	  ¤ÎÀâÌÀ¤òÆÉ¤ß¤Ê¤µ¤¤¡£
+ 
+ 
+ ¸¡º÷
+ =====
+ 
+      Ê¸»úÎó¤ò¡¢¥Õ¥¡¥¤¥ëÆâ¤Ç¡¢Á°ÊýËô¤Ï¸åÊý¤Ë¡¢Ãµ¤¹»ö¤¬¤Ç¤­¤Þ¤¹¡£¸¡º÷¤ò»Ï¤á¤ë
+ ¥³¥Þ¥ó¥É¤Ï¡¢¥«¡¼¥½¥ë°ÌÃÖ°Ê¹ß¤ò¸¡º÷¤¹¤ë¤Ê¤é¤Ð  C-s¡¢¥«¡¼¥½¥ë°ÌÃÖ°ÊÁ°¤Ê¤é¤Ð
+ C-r ¤Ç¤¹¡£C-s ¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¥¨¥³¡¼¥¨¥ê¥¢¤Ë "I-search:"¤È¤¤¤¦Ê¸»úÎó¤¬¥×¥í
+ ¥ó¥×¥È¤È¤·¤ÆÉ½¼¨¤µ¤ì¤Þ¤¹¡£ESC¤ò²¡¤¹¤È¡¢½ªÎ»¤Ç¤­¤Þ¤¹¡£
+ 
+ 
+        >> C-s¤Ç¸¡º÷¤¬»Ï¤Þ¤ê¤Þ¤¹¡£¤½¤ì¤«¤é¡¢¤æ¤Ã¤¯¤ê¤È£±Ê¸»ú¤º¤Ä"cursor"¤È¤¤
+           ¤¦Ã±¸ì¤òÆþÎÏ¤·¤Þ¤¹¡££±Ê¸»úÆþÎÏ¤¹¤ë¤´¤È¤Ë¡¢¥«¡¼¥½¥ë¤Ï¡¢¤É¤ó¤ÊÆ°¤­
+           ¤ò¤·¤Þ¤¹¤«?
+ 
+        >> ¤â¤¦£±ÅÙ C-s ¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¼¡¤Î"cursor"¤ò¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
+ 
+        >> <Delete>¤ò£´²óÆþÎÏ¤·¤Æ¡¢¥«¡¼¥½¥ë¤ÎÆ°¤­¤ò¸«¤Ê¤µ¤¤¡£
+ 
+        >> ESC¤ò²¡¤·¤Æ¡¢½ªÎ»¤·¤Þ¤¹¡£
+ 
+      Ãµ¤·¤¿¤¤Ê¸»úÎó¤ò¥¿¥¤¥×Ãæ¤Ç¤â¡¢¥¿¥¤¥×¤·¤¿Ê¸»úÉôÊ¬¤À¤±¤Ç¡¢¸¡º÷¤ò»Ï¤á¤Þ¤¹¡£
+ ¼¡¤ÎÊ¸»ú¤òÃµ¤¹¤Ë¤Ï¡¢ºÆ¤ÓC-s¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£¤â¤·¡¢Ê¸»úÎó¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¤é¡¢
+ ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£C-g ¤Ç¤â½ªÎ»¤Ç¤­¤Þ¤¹¡£
+ 
+      ¸¡º÷¼Â¹ÔÃæ¤Ë<Delete>¤òÆþÎÏ¤¹¤ë¤È¡¢¸¡º÷Ê¸»úÎó¤Î£±ÈÖ¸å¤í¤ÎÊ¸»ú¤¬¾Ã¤¨¤Þ¤¹¡£
+ ¤½¤·¤Æ¡¢¥«¡¼¥½¥ë¤Ï¡¢Á°²ó¤Î°ÌÃÖ¤ËÌá¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢"cu"¤È¥¿¥¤¥×¤·¤Æ¡¢ºÇ½é
+ ¤Î"cu"¤Î°ÌÃÖ¤Ë¥«¡¼¥½¥ë¤¬Æ°¤¤¤¿¤È¤·¤Þ¤¹¡£¤³¤³¤Ç<Delete>¤òÆþÎÏ¤¹¤ë¤È¡¢¥µ¡¼¥Á
+ ¥é¥¤¥ó¤Î'u'¤¬¾Ã¤¨¡¢¥«¡¼¥½¥ë¤Ï¡¢'u'¤ò¥¿¥¤¥×¤¹¤ëÁ°¤Ë¡¢¥«¡¼¥½¥ë¤¬¤¢¤Ã¤¿'c'¤Î°Ì
+ ÃÖ¤Ë¡¢°ÜÆ°¤·¤Þ¤¹¡£
+ 
+      ¸¡º÷¼Â¹ÔÃæ¤Ë¡¢C-s ¤ä C-r °Ê³°¤Î¥³¥ó¥È¥í¡¼¥ëÊ¸»ú¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¸¡º÷¤Ï
+ ½ªÎ»¤·¤Þ¤¹¡£
+ 
+      C-s ¤Ï¡¢¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ°Ê¹ß¤Ë½Ð¤Æ¤¯¤ë¸¡º÷Ê¸»úÎó¤òÃµ¤·¤Þ¤¹¡£¤â¤·¡¢Á°
+ ¤ÎÊý¤òÃµ¤·¤¿¤«¤Ã¤¿¤é¡¢C-r  ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤Ç¡¢µÕÊý¸þ¸¡º÷¤¬¤Ç¤­¤Þ¤¹¡£C-s ¤È
+ C-r ¤Ï¡¢¸¡º÷¤ÎÊý¸þ¤¬È¿ÂÐ¤Ê¤À¤±¤Ç¡¢Á´¤ÆÆ±¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡£
+ 
+ ¥ê¥«¡¼¥·¥Ö ¥¨¥Ç¥£¥Æ¥£¥ó¥° ¥ì¥Ù¥ë
+ 
+      ¤È¤­¤É¤­¡¢¡ÊÉÔËÜ°Õ¤Ë¡Ë¥ê¥«¡¼¥·¥Ö ¥¨¥Ç¥£¥Æ¥£¥ó¥° ¥ì¥Ù¥ë¤È¸Æ¤Ð¤ì¤ë¾õÂÖ¤Ë
+ Æþ¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¾®³ç¸Ì'()'¤Î²ó¤ê¤òÃæ³ç¸Ì'[]'¤Ç°Ï¤ó¤À¤â
+ ¤Î¤¬¥â¡¼¥É¥é¥¤¥ó¾å¤ËÉ½¼¨¤µ¤ì¤Þ¤¹¡£Îã¤¨¤Ð¡¢(Fundamental)¤ÈÉ½¼¨¤µ¤ì¤ëÂå¤ï¤ê¤Ë
+ [(Fundamental)]¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+ 
+ Ãí°Õ:          ¤³¤³¤Ç¤Ï¥ê¥«¡¼¥·¥Ö ¥¨¥Ç¥£¥Æ¥£¥ó¥° ¥ì¥Ù¥ë¼«ÂÎ¤Ë¤Ä¤¤¤Æ¤ÏÀâÌÀ¤·
+                ¤Þ¤»¤ó¡£
+ 
+      ¥ê¥«¡¼¥·¥Ö ¥¨¥Ç¥£¥Æ¥£¥ó¥° ¥ì¥Ù¥ë¤«¤éÈ´¤±¤Ç¤ë¤¿¤á¤Ë¤Ï¡¢M-x top-level
+ <Return>¤È¥¿¥¤¥×¤·¤Þ¤¹¡£
+ 
+        >> »î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£¥¹¥¯¥ê¡¼¥ó¤ÎÄì¤Ë"Back to top level"¤ÈÉ½¼¨¤µ¤ì¤Þ
+           ¤¹¡£
+ 
+      ËÜÅö¤Ï¡¢¤³¤Î»î¤ß¤¬¹Ô¤ï¤ì¤¿»þ¤Ï¡¢¤¹¤Ç¤Ë¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¤¤¤¿¤Î¤Ç¤¹¡£M-x
+ top-level¤Ï¡¢²¿¤â±Æ¶Á¤òÍ¿¤¨¤Æ¤¤¤Þ¤»¤ó¡£
+ 
+      ¥ê¥«¡¼¥·¥Ö ¥¨¥Ç¥£¥Æ¥£¥ó¥° ¥ì¥Ù¥ë¤«¤éÈ´¤±½Ð¤ë¤Î¤ËÂÐ¤·¤Æ¤ÏC-g¤Ï¸ú¤­¤Þ¤»
+ ¤ó¡£
+ 
+ 
+ ¥Ø¥ë¥×
+ ======
+ 
+      Emacs¤Ë¤Ï¡¢¤¿¤¯¤µ¤ó¤ÎÌò¤ËÎ©¤Äµ¡Ç½¤¬¤¢¤ê¡¢¤³¤³¤Ç¡¢¤¹¤Ù¤Æ¤òÀâÌÀ¤¹¤ë¤³¤È
+ ¤Ï¡¢ÉÔ²ÄÇ½¤Ç¤¹¡£¤·¤«¤·¡¢¤Þ¤ÀÃÎ¤é¤Ê¤¤Â¿¤¯¤Îµ¡Ç½¤ò³Ø¤Ö¤¿¤á¤Ë¤Ï¡¢<HELP>¤È¸Æ¤Ð
+ ¤ì¤ë C-h ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤Ç¡¢¤¿¤¯¤µ¤ó¤Î¾ðÊó¤ò¼ê¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+ 
+      »È¤¤Êý¤Ï¡¢C-h ¤ò¥¿¥¤¥×¤·¡¢Â³¤¤¤ÆÉ¬Í×¤Ê¥ª¥×¥·¥ç¥ó¤ò£±Ê¸»ú¥¿¥¤¥×¤·¤Þ¤¹¡£
+ ¤ï¤«¤é¤Ê¤±¤ì¤Ð¡¢C-h ?  ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢¤É¤ó¤Ê¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤Î¤«É½¼¨¤µ¤ì¤Þ
+ ¤¹¡£¤â¤·¡¢C-h ¤ò¥¿¥¤¥×¤·¤Æ¤«¤éµ¤¤¬ÊÑ¤ï¤Ã¤¿¤é¡¢C-g ¤ò¥¿¥¤¥×¤¹¤ì¤Ð¡¢¼è¤ê¾Ã¤¹
+ ¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+ 
+      ºÇ¤â´ðËÜÅª¤Ê¤â¤Î¤Ï¡¢C-h c ¤Ç¤¹¡£¤³¤ì¤ËÂ³¤¤¤Æ¥­¡¼¤òÆþÎÏ¤¹¤ë¤È¡¢¤½¤Î¥³¥Þ
+ ¥ó¥É¤Ë¤Ä¤¤¤Æ¤ÎÃ»¤¤ÀâÌÀ¤òÉ½¼¨¤·¤Þ¤¹¡£
+ 
+        >> C-h c C-p ¤È¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£"C-p runs the command previous-
+           line"¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤Ï¤º¤Ç¤¹¡£
+ 
+      ¸«¤¿¤³¤È¤Ï¤¢¤ë¤¬¡¢³Ð¤¨¤Æ¤Ï¤¤¤Ê¤¤¥³¥Þ¥ó¥É¤â»×¤¤½Ð¤»¤ë¤Î¤Ç¤¹¡£C-x C-s ¤Î
+ ¤è¤¦¤ÊÊ£¿ô¤Ç£±¤Ä¤Î¥³¥Þ¥ó¥É¤âC-h c ¤Î¸å¤í¤ËÂ³¤±¤é¤ì¤Þ¤¹¡£
+ 
+      ¤â¤Ã¤È¾Ü¤·¤¯ÃÎ¤ê¤¿¤«¤Ã¤¿¤é¡¢c ¤ÎÂå¤ï¤ê¤Ë k ¤ò»ØÄê¤·¤Þ¤¹¡£
+ 
+        >> C-h k C-p ¤È¥¿¥¤¥×¤·¤Æ¤ß¤Ê¤µ¤¤¡£
+ 
+      Emacs¤Î¥¦¥£¥ó¥É¥¦¤Ë¡¢¥³¥Þ¥ó¥É¤ÎÌ¾Á°¤Èµ¡Ç½¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ÆÉ¤ß½ª¤¨¤¿¤é¡¢
+ C-x 1 ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢È´¤±¤é¤ì¤Þ¤¹¡£
+ 
+      Â¾¤Ë¤âÌò¤ËÎ©¤Ä¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£
+ 
+     C-h f      ¥Õ¥¡¥ó¥¯¥·¥ç¥óÌ¾¤òÆþÎÏ¤¹¤ë¤È¡¢¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤òÉ½¼¨¤·¤Þ¤¹¡£
+ 
+        >> C-h f previous-line ¤ò¥¿¥¤¥×¤·¡¢<Return> ¤ò²¡¤·¤Ê¤µ¤¤¡£C-p ¥³¥Þ¥ó
+           ¥É¤ò¼Â¹Ô¤¹¤ë¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÉ½¼¨¤·¤Þ¤¹¡£
+ 
+     C-h a      ¥­¡¼¥ï¡¼¥É¤òÆþÎÏ¤¹¤ë¤È¡¢Ì¾Á°¤Ë¤½¤Î¥­¡¼¥ï¡¼¥É¤ò´Þ¤à¡¢Á´¤Æ¤Î¥³
+                ¥Þ¥ó¥É¤òÉ½¼¨¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¤¹¤Ù¤ÆESC x ¤Ç¼Â¹Ô¤Ç¤­
+                ¤Þ¤¹¡£
+ 
+        >> C-h a file ¤È¥¿¥¤¥×¤·¡¢<Return>¤ò²¡¤·¤Ê¤µ¤¤¡£Ì¾Á°¤Ë"file"¤È¤¤¤¦Ê¸
+           »ú¤ò»ý¤ÄÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤òÉ½¼¨¤·¤Þ¤¹¡£¤Þ¤¿¡¢find-file ¤ä write-file
+           ¤È¤¤¤¦Ì¾¤Î C-x C-f ¤ä C-x C-w ¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤âÉ½¼¨¤µ¤ì¤Þ¤¹¡£
+ 
+ ¤ª¤ï¤ê¤Ë
+ ========
+ 
+ Ëº¤ì¤º¤Ë¡§      ½ªÎ»¤¹¤ë¤Ë¤Ï¡¢C-x C-c ¤È¤·¤Þ¤¹¡£
+ 
+ 
+      ¤³¤ÎÆþÌçÊÔ¤Ï¡¢¤Þ¤Ã¤¿¤¯¤Î½é¿´¼Ô¤Ë¤â¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¤È°Õ¿Þ¤·¤Æ¤¤¤Þ¤¹¡£
+ ¤Ç¤¹¤«¤é¡¢¤â¤·²¿¤«¤ï¤«¤ê¤Ë¤¯¤¤ÅÀ¤¬¤¢¤Ã¤¿¤Ê¤é¡¢°ì¿Í¤Ç¶òÃÔ¤ò¸À¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢
+ Ê¸¶ç¤ò¤Ä¤±¤Æ²¼¤µ¤¤¡£
+ 
+ 
+      ¤â¤·¡¢EMACS ¤ò²¿Æü¤«¤Ç¤â»È¤Ã¤Æ¤ß¤ì¤Ð¡¢¤½¤ì¤ò¤ä¤á¤Æ¤·¤Þ¤¦¤³¤È¤Ê¤É¤Ç¤­¤Ê
+ ¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£ºÇ½é¤Ï¸ÍÏÇ¤¦¤«¤âÃÎ¤ì¤Þ¤»¤ó¡£¤·¤«¤·¡¢¤½¤ì¤Ï¤É¤ó¤Ê¥¨¥Ç¥£¥¿¤Ç
+ ¤âÆ±ÍÍ¤Ç¤¹¡£EMACS ¤Î¤è¤¦¤Ë¡¢Èó¾ï¤ËÂ¿¤¯¤Î¤³¤È¤¬¤Ç¤­¤ë¾ì¹ç¤Ë¤ÏÆÃ¤Ë¤½¤¦¤Ç¤·¤ç
+ ¤¦¡£¤½¤·¤Æ¡¢EMACS ¤Ç¤Ï¡¢¼ÂºÝ¡¢²¿¤Ç¤â¤Ç¤­¤ë¤Î¤Ç¤¹¤«¤é¡£
+ 
+ 
+ 
+ ¼Õ¼­
+ =====
+      ¤³¤ÎÊ¸½ñ¤Ï¡¢JUNET¤ÇÎ®¤µ¤ì¤¿"ÆüËÜ¸ì MicroEMACS (kemacs) ÆþÌçÊÔ" ¤òGNUE-
+ macs (NEmacs)¤ÎTutorialÍÑ¤Ë½ñ¤­´¹¤¨¤¿¤â¤Î¤Ç¤¹¡£
+ 
+ 
+      Jonathan Payne ¤Ë¤è¤ë "JOVE Tutorial" (19 January 86) ¤òÊÑ¹¹¤·¤¿¤â¤Î¤Ç
+      ¤¢¤ê¡¢¤½¤ì¤Ï¤â¤È¤â¤È¤Ï¡¢CCA-UNIX¤ÎSteve Zimmerman ¤Ë¤è¤Ã¤ÆÊÑ¹¹¤µ¤ì¤¿¡¢
+      MIT ¤Î "Teach-Emacs" ÆþÌçÊÔ (31 October 85) ¤ò¡Ê¤µ¤é¤Ë¡ËÊÑ¹¹¤·¤¿¤â¤Î¤Ç
+      ¤·¤¿¡£
+ 
+      Update - February 1986 by Dana Hoggatt.
+ 
+      Update - December 1986 by Kim Leburg.
+ 
+      Update/Translate - July 1987 by SANETO Takanori
+ 
+ 
+ ÆÃÊÌ¤Ê¼Õ¼­
+ ==========
+ 
+      ºÇ½é¤Ë¤³¤ì¤ÎÆüËÜ¸ìÌõ¤òºî¤é¤ì¤¿¡¢SANETO Takanori¤µ¤ó¡£¤³¤ÎÊ¸¾Ï¤ÏGMW +
+ Wnn  + NEmacs¤ò»È¤Ã¤Æ½ñ¤­¤Þ¤·¤¿¡£¤½¤Î¤è¤¦¤ÊÁÇÀ²¤é¤·¤¤¥×¥í¥°¥é¥à¤òºî¤Ã¤¿Êý¡¹
+ ¤Ø´¶¼Õ¤Î°Õ¤òÉ½¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ËÝÌõ¤È¤«¡¢ÆþÎÏ¤È¤«¤ò¿§¡¹¤È¼êÅÁ¤Ã¤Æ¤¯¤ì¤¿¡¢
+ Æ£¸¶¾Í»Ò¤µ¤ó¡¢¤É¤¦¤â¤¢¤ê¤¬¤È¤¦¡£
+ 
+ 
+ 
+ 
+ 
+ ¸íÌõ¡¢±³¡¢¤½¤ÎÂ¾¡¢¤ÎÊ¸ÀÕ¤Ï¡¢°Ê²¼¤Î¼Ô¤Ë¤¢¤ê¤Þ¤¹¡£
+ 
+                         ÎëÌÚÍµ¿® hironobu@sra.co.jp
+ 
+ 
+ Update/Add - December 1987 by Hironobu Suzuki
+ Update/Add - November 1989 by Ken'ichi Handa
+ Update/Add - January  1990 by Shigeki Yoshida
diff -arcN emacs-18.55/etc/kconv.c nemacs-3.3.2/etc/kconv.c
*** emacs-18.55/etc/kconv.c	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/etc/kconv.c	Wed Jun  6 03:14:40 1990
***************
*** 0 ****
--- 1,142 ----
+ /* kconv.c -  Japanese code converter
+    between two of EUC, JIS, and Shift-JIS code.
+    written by K.Handa  89.5.25 */
+ 
+ #include <stdio.h>
+ #include "../src/kanji.h"
+ 
+ #define TOK1 '$'
+ #define TOK2 '@'
+ #define TOA1 '('
+ #define TOA2 'J'
+ 
+ unsigned char i1, i2, c1, c2;
+ 
+ js(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   J2S(i1, i2, *c1, *c2)
+ }
+ 
+ je(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   *c1 = i1 | 0x80; *c2 = i2 | 0x80;
+ }
+      
+ sj(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   S2J(i1, i2, *c1, *c2)
+ }
+ 
+ ej(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   *c1 = i1 & 0x7f; *c2 = i2 & 0x7f;
+ }
+ 
+ es(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   E2S(i1, i2, *c1, *c2)
+ }
+ 
+ se(i1, i2, c1, c2)
+      unsigned char i1, i2, *c1, *c2;
+ {
+   S2E(i1, i2, *c1, *c2)
+ }
+ 
+ j2some(f)
+      int (*f)();
+ {
+   int kanji = 0;
+ 
+   while ((char)(i1 = getchar()) != EOF) {
+     if (kanji) {
+       if (i1 == ESC_CODE) {
+ 	if ((i1 = getchar()) == TOA1) {
+ 	  getchar(); kanji = 0;
+ 	} else {
+ 	  putchar(ESC_CODE); ungetc(i1,stdin);
+ 	}
+       } else if (0x21 <= i1 && i1 <= 0x7e) {
+ 	f(i1, getchar(), &c1, &c2); putchar(c1); putchar(c2);
+       } else
+ 	putchar(i1);
+     } else {
+       if (i1 == ESC_CODE) {
+ 	if ((i1 = getchar()) == TOK1) {
+ 	  getchar(); kanji = 1;
+ 	} else {
+ 	  putchar(ESC_CODE); ungetc(i1,stdin);
+ 	}
+       } else
+ 	putchar(i1);
+     }
+   }
+ }
+ 
+ some2j(f)
+      int (*f)();
+ {
+   int kanji = 0;
+ 
+   while ((char)(i1 = getchar()) != EOF) {
+     if (kanji) {
+       if (i1 & 0x80) {
+ 	f(i1, getchar(), &c1, &c2);
+ 	putchar(c1); putchar(c2);
+       } else {
+ 	putchar(ESC_CODE); putchar(TOA1); putchar(TOA2);
+ 	putchar(i1);
+ 	kanji = 0;
+       }
+     } else {
+       if (i1 & 0x80) {
+ 	putchar(ESC_CODE); putchar(TOK1); putchar(TOK2);
+ 	f(i1, getchar(), &c1, &c2);
+ 	putchar(c1); putchar(c2);	  
+ 	kanji = 1;
+       } else
+ 	putchar(i1);
+     }
+   }
+ }
+ 
+ eands(f)
+      int (*f)();
+ {
+   while ((char)(i1 = getchar()) != EOF) {
+     if (i1 & 0x80) {
+       f(i1, getchar(), &c1, &c2);
+       putchar(c1); putchar(c2);
+     } else
+       putchar(i1);
+   }
+ }
+ 
+ main(argc, argv)
+      int argc;
+      char **argv;
+ {
+   int type;
+ 
+   argv++;
+   switch (*(*argv)++) {
+   case 'j':
+     j2some((**argv == 's') ? js : je);
+     break;
+   case 's':
+     if (**argv == 'j') some2j(sj);
+     else eands(se);
+     break;
+   case 'e':
+     if (**argv == 'j') some2j(ej);
+     else eands(es);
+     break;
+   default:
+     fprintf(stderr, "Usage: kconv {js,sj,je,ej,es,se} < source > target\n");
+   }
+ }
No newline at end of file emacs-18.55/info/dir
diff -arcN emacs-18.55/info/dir nemacs-3.3.2/info/dir
*** emacs-18.55/info/dir	Sat Apr 30 05:24:21 1988
--- nemacs-3.3.2/info/dir	Wed Jun  6 03:15:09 1990
***************
*** 16,21 ****
--- 16,23 ----
  
  * Emacs: (emacs).  The extensible self-documenting text editor.
  
+ * Nemacs: (nemacs). Japanese version of Emacs.
+ 
  * VIP: (vip).   A VI-emulation for Emacs.
  
  * GDB: (gdb).   The source-level C debugger.
diff -arcN emacs-18.55/info/egg nemacs-3.3.2/info/egg
*** emacs-18.55/info/egg	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/info/egg	Wed Jun  6 03:15:30 1990
***************
*** 0 ****
--- 1,1292 ----
+ Info file: egg,    -*-Text-*-
+ produced by texinfo-format-buffer
+ from file: egg.texinfo
+ 
+ 
+ 
+ 
+ File: egg  Node: Top, Prev: (dir), Up: (dir), Next: ³µÀâ
+ 
+ * Menu:
+ 
+ * Intro: ³µÀâ.		¡Ö¤¿¤Þ¤´¡×¤È¤Ï
+ * Init: ½é´üÀßÄê.	½é´üÀßÄê
+ * HowToUse: ´Á»úÆþÎÏ.	¡Ö¤¿¤Þ¤´¡×¤Î´Á»úÆþÎÏ
+ * Dict: ¼­½ñ´ÉÍý.   	ÍøÍÑ¼Ô¼­½ñ¤Î´ÉÍý
+ * Customization::	¥«¥¹¥¿¥Þ¥¤¥º¤ÎÊýË¡
+ * Sun Key map::		Sun¤Î¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤ÎÍøÍÑ
+ * ÉÊ»ì::		¼­½ñÅÐÏ¿¤Î¥Ò¥ó¥È
+ * Concepts: ³µÇ°º÷°ú.
+ * Functions&Variables: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú.
+ 
+ ²¼°Ì¥Î¡¼¥É
+ ³µÀâ
+ * Config: Æ°ºî´Ä¶­.
+ ½é´üÀßÄê
+ * System: ¥·¥¹¥Æ¥à. 	¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ * Server: ¥µ¡¼¥Ð»ØÄê. 	²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ * Dict: ¼­½ñ»ØÄê.	»ÈÍÑ¼­½ñ¤Î»ØÄê
+ ´Á»úÆþÎÏ
+ * Intra: ÂÐÏÃ¼°.		ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ * Batch: °ì³ç¼°. 		ÊÑ´¹µ¡Ç½
+ * Mini: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ.	minibuffer ¤Ç¤Î´Á»úÆþÎÏ
+ ¼­½ñ´ÉÍý
+ * Toroku: ¼­½ñÅÐÏ¿.
+ * Henshu: ¼­½ñÊÔ½¸.	¼­½ñ¹àÌÜÊÔ½¸
+ Customization
+ * global-map::		global-map ¤Î key binding ¤ÎÊÑ¹¹
+ * fence-mode-map:: 	¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * henkan-mode-map::	´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * Roma kana henkan::	¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ 
+ 
+ File: egg  Node: ³µÀâ, Prev: Top, Up: Top, Next: ½é´üÀßÄê
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤È¤Ï
+ **************
+ 
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤Ï Nemacs ¤Ë¤ª¤±¤ëÆüËÜ¸ì´Ä¶­¤òÄó¶¡¤¹¤ë¡¥ Nemacs ¤Ï Gnu
+ Emacs ¤ò³ÈÄ¥¤·¡¤´Á»úÉ½¼¨¡¤¥³¡¼¥ÉÊÑ´¹¤Ê¤É¤Î´ðËÜµ¡Ç½¤òÄÉ²Ã¤·¤¿¥·¥¹¥Æ¥à¤Ç¤¢
+ ¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ÏÆüËÜ¸ìÊ¸½ñ½èÍý¤ÈÆüËÜ¸ìÆþÎÏ¤Îµ¡Ç½¤òÄó¶¡¤¹¤ë¡¥ÆüËÜ¸ìÊ¸½ñ½èÍý¤Ë
+ ¤Ï¡¤¶ØÂ§½èÍý¤Ê¤É¤ÎÆüËÜ¸ì¤ËÆÃÍ­¤Ê½èÍý¤¬´Þ¤Þ¤ì¤ë¡¥ÆüËÜ¸ìÆþÎÏµ¡Ç½¤Ï¥Í¥Ã¥È¥ï¡¼
+ ¥¯²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤òÍøÍÑ¤·¡¤¥í¡¼¥Þ»ú´Á»úÊÑ´¹Êý¼°¤ÎÆüËÜ¸ìÆþÎÏ¤òÄó¶¡¤¹¤ë¡¥
+ ¡Ö¤¿¤Þ¤´¡×Âè£²ÈÇ¤Ç¤Ï²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤·¤ÆWnn V3.3°Ê¹ß¤ÎJSERVER¤ò»ÈÍÑ
+ ¤¹¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ÎÌ¾Á°¤Ï¡¤¡ÖÂô»³/ÂÔ¤¿¤»¤Æ/¸æÌÈ¤Ê¤µ¤¤¡¥¡×¤Î³ÆÊ¸Àá¤ÎÀèÆ¬£±²»¤Ç¤¢
+ ¤ë¡Ö¤¿¡×¤È¡Ö¤Þ¡×¤È¡Ö¤´¡×¤ò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡¥EGG¤Ï¡Ö¤¿¤Þ¤´¡×¤Î±ÑÌõ¤Ç¤¢¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡× ¤Ë´Ø¤¹¤ëÄó°Æ¡¤Ãî¾ðÊó¤Ï tomura@etl.go.jp ¤Þ¤Ç¡¥
+ 
+ * Menu:
+ 
+ * Config: Æ°ºî´Ä¶­.
+ 
+ 
+ File: egg  Node: Æ°ºî´Ä¶­, Prev: ³µÀâ, Up: ³µÀâ, Next: ½é´üÀßÄê
+ 
+ Æ°ºî´Ä¶­
+ ========
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤òÆ°ºî¤µ¤»¤ë¤Ë¤Ï¼¡¤Î¤â¤Î¤¬É¬Í×¤Ç¤¢¤ë¡¥
+ 
+ *{´Á»úÃ¼Ëö¤Þ¤¿¤Ï´Á»úÃ¼Ëö¥¨¥ß¥å¥ì¡¼¥¿}
+      X window system ¤ÇÍøÍÑ¤¹¤ë¾ì¹ç¤Ï¡¤´Á»ú¤òÉ½¼¨¤¹¤ë¤¿¤á kterm ¤¢¤ë¤¤¤Ï 
+      Nemacs¤Îx11term¤ò»ÈÍÑ¤¹¤ë¡¥
+ *{nemacs V3.3}
+      ¡Ö¤¿¤Þ¤´¡×ÂèÆóÈÇ¤Ç¤Ï¡¤ Wnn V3 ¤Î `JSERVER' ¤È¤ÎÄÌ¿®¤Ï emacs lisp ¤Ç
+      ¼Â¸½¤¹¤ëWnn-client¤òÄó¶¡¤¹¤ë¡¥¤³¤Î¤¿¤á¡Ö¤¿¤Þ¤´¡×ÂèÆóÈÇ¤Ï nemacs ¤ò
+      ÊÑ¹¹¤¹¤ë¤³¤È¤Ê¤¯Æ°ºî¤¹¤ë¤³¤È¤¬²ÄÇ½¤Ç¤¢¤ë¡¥
+ *{Wnn V3.3 °Ê¹ß}
+      Wnn V3 ¤Ï¥¢¥¹¥Æ¥Ã¥¯¤ÎÀ½ÉÊ¤Ç¤¢¤ê¡¤Nemacs¤¢¤ë¤¤¤Ï¡Ö¤¿¤Þ¤´¡×¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡¥
+      ¡Ê¥¢¥¹¥Æ¥Ã¥¯¤«¤éÆþ¼ê¤·¤Æ²¼¤µ¤¤¡¥Wnn ¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¤µ¯Æ°¤Ë¤Ä¤¤¤Æ¤Ï Wnn 
+      ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¸«¤Æ²¼¤µ¤¤¡¥¡Ë
+ *{¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à}
+ 
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤é¹½À®¤µ¤ì¤ë¡¥
+ 
+ `lisp/wnn-egg.el'
+      ¡Ö¤¿¤Þ¤´¡×¤ÎËÜÂÎ
+ `lisp/wnn-client.el'
+      Wnn V3 ¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ 
+ `lisp/egg-rk.el'
+      ¡Ö¤¿¤Þ¤´¡×ÆþÎÏÊ¸»úÊÑ´¹¥·¥¹¥Æ¥à¤Ç¤ÎÉ¸½à¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Êý¼°ÄêµÁ¥Õ¥¡¥¤¥ë
+ `lisp/egg-rk-dump.elnnn'
+      egg-rk.el ¤Î¥À¥ó¥×·Á¼°¥Õ¥¡¥¤¥ë
+ `man/egg.texinfo'
+      ¤³¤Î¥Õ¥¡¥¤¥ë
+ `lisp/egg-keymap.el'
+      Sun/X11 ÍÑ¤Î keymap ÄêµÁ¥Õ¥¡¥¤¥ë
+ `src/wnnfns.c'
+      WnnV3¤ª¤è¤ÓWnnV4¤ÈEmacslisp¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
+ `lisp/wnnfns-supprt.el'
+      wnnfns.c¤Î»Ù±ç¥Ñ¥Ã¥±¡¼¥¸
+ 
+ 
+ File: egg  Node: ½é´üÀßÄê, Prev: ³µÀâ, Up: Top, Next: ´Á»úÆþÎÏ
+ 
+ ½é´üÀßÄê
+ ********
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Î½é´üÀßÄê¤Ï¼¡¤Î£²¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ç¹Ô¤Ê¤¦¡¥
+ 
+ emacs¤Î½é´üÀßÄê¥Õ¥¡¥¤¥ë `~/.emacs'
+      ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß¤È²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥È¤Î»ØÄê¤ò¹Ô¤Ê¤¦¡¥
+ ¡Ö¤¿¤Þ¤´¡×¤Î½é´üÀßÄê¥Õ¥¡¥¤¥ë 
+      ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬»ÈÍÑ¤¹¤ë¼­½ñ¤Î»ØÄê¤ò¹Ô¤Ê¤¦¡¥¡Ê*Note ¼­½ñ»ØÄê::¡Ë
+ 
+ * Menu:
+ 
+ * System: ¥·¥¹¥Æ¥à. 	¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ * Server: ¥µ¡¼¥Ð»ØÄê. 	²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ * Dict: ¼­½ñ»ØÄê.	»ÈÍÑ¼­½ñ¤Î»ØÄê
+ 
+ 
+ File: egg  Node: ¥·¥¹¥Æ¥à, Prev: ½é´üÀßÄê, Up: ½é´üÀßÄê, Next: ¥µ¡¼¥Ð»ØÄê
+ 
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ ============================
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÊýË¡¤Ç»ØÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¡¥
+ 
+   1. `nemacs-init.el'¤ÎÃæ¤ÇÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ê¤Ã¤¿¾õÂÖ¤Î `xemacs'¤òºî¤ë
+   2. ÍøÍÑ¼Ô¤¬nemacs¤Îµ¯Æ°»þ¤Ë`~/.emacs'¤ÎÃæ¤ÇÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ê¤¦¡¥
+      ¡Ê`nemacs-init.el'¤ÇÆÉ¤ß¹þ¤ß¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤`~/.emacs'¤ÇÆÉ
+      ¤ß¹þ¤àÉ¬Í×¤Ï¤Ê¤¤¡¥¡Ë
+ 
+ ÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¤â¤Î¤Ç¤¢¤ë¡¥
+ 
+ `nconfig.h'¤Ç WNN3 ¤Þ¤¿¤Ï WNN4V3 ¤ò»ØÄê¤·¤¿¾ì¹ç
+    * "wnn-client"
+    * "wnn-egg"
+    * "egg-rk-dump"
+ 
+ ¤½¤ì°Ê³°¤Î¾ì¹ç
+    * "wnn-egg"
+    * "wnnfns"
+    * "egg-rk-dump"
+ 
+ 
+ ¤µ¤é¤ËSun/X11¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¤ÈSun ¤Î¥Õ¥¡¥ó¥¯
+ ¥·¥ç¥ó¥­¡¼¤¬ÍøÍÑ²ÄÇ½¤È¤Ê¤ë¡¥¡Ê*Note Sun Key map::¡Ë
+ 
+      (load "egg-keymap")
+ 
+ 
+ File: egg  Node: ¥µ¡¼¥Ð»ØÄê, Prev: ¥·¥¹¥Æ¥à, Up: ½é´üÀßÄê, Next: ¼­½ñ»ØÄê
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ ========================
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬Æ°ºî¤·¤Æ¤¤¤ë¥Û¥¹¥È¤ÎÌ¾Á°¤ÏÊÑ¿ô `wnn-host-name' ¤Þ¤¿
+ ¤Ï´Ä¶­ÊÑ¿ô `JSERVER'¤ËÊ¸»úÎó¤Ç»ØÄê¤¹¤ë¡¥¥Û¥¹¥È¤Î»ØÄê¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤
+ ¤Þ¤¿¤Ï `nil' ¤¬»ØÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï local host ¤¬»ØÄê¤µ¤ì¤¿¤È¤ß¤Ê¤¹¡¥
+ 
+ ²¾Ì¾´Á»ú¥µ¡¼¥Ð¥Û¥¹¥È¤òÊÑ¹¹¤¹¤ë¤Ë¤Ï¡¤`M-x set-wnn-host-name'¤ò¼Â¹Ô¤·¤Æ¿·
+ ¤·¤¤¥µ¡¼¥Ð¥Û¥¹¥È¤ò»ØÄê¤¹¤ë¡¥
+ 
+ ## Variable: wnn-host-name
+      ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥ÈÌ¾¤òÊ¸»úÎó¤Ç»ØÄê¤¹¤ë¡¥ÃÍ¤¬`nil'¤Î¾ì¹ç¤Ï¡¤¥í¡¼
+      ¥«¥ë¥Û¥¹¥È¤ò»ØÄê¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹¡¥¤¿¤È¤¨¤Ð¡¤²¾Ì¾´Á»ú¥µ¡¼¥Ð¡¼¥Û¥¹¥È¤¬ 
+      `TAISHO' ¤Î¾ì¹ç¡¤`~/.emacs'¤Ë¼¡¤Î¹Ô¤òÄÉ²Ã¤¹¤ë¡¥
+           (setq wnn-host-name "TAISHO" )
+ 
+ ## Command: disconnect-wnn
+      ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤Î¥³¥Í¥¯¥·¥ç¥ó¤ò²òÊü¤¹¤ë¡¥
+ 
+ ## Command: set-wnn-host-name HOST-NAME
+      ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥È¤òÀßÄê¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¼­½ñ»ØÄê, Prev: ¥µ¡¼¥Ð»ØÄê, Up: ½é´üÀßÄê, Next: ´Á»úÆþÎÏ
+ 
+ »ÈÍÑ¼­½ñ¤Î»ØÄê
+ ==============
+ 
+ °Ê²¼¤Ç¤Ï nemacs¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤ò`$NEMACS'¤Ç¼¨¤¹¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ï²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤ò³«»Ï¤¹¤ë¤È½é´üÀßÄê¥Õ¥¡¥¤¥ë¤òÃµº÷
+ ¼Â¹Ô¤·¤Æ´Ä¶­ÀßÄê¤ò¹Ô¤Ê¤¦¡¥½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃµº÷¤Ï¤Þ¤º
+ `egg-startup-file-name'¤È`egg-startup-file-search-path'¤òÍÑ¤¤¤Æ¹Ô¤Ê¤¦¡¥
+ ¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï`egg-default-startup-file-name'¤È`load-path'¤òÍÑ¤¤¤ÆÃµ
+ º÷¤¹¤ë¡¥`egg-startup-file-name'¤ÎÉ¸½àÀßÄê¤Ï`.eggrc'¤Ç¤¢¤ë¡¥
+ 
+ site ¤Ç»ÈÍÑ¤¹¤ëÉ¸½à½é´üÀßÄê¥Õ¥¡¥¤¥ë¤Ï WNN3¤Î¾ì¹ç¤Ï 
+ `$NEMACS/lisp/eggrc-v3'¡¤WNN4V3 ¤Î¾ì¹ç¤Ë¤Ï`$NEMACS/lisp/eggrc-v4'¤Ç¤¢¤ë¡¥
+ 
+ ½é´üÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¤²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬»ÈÍÑ¤¹¤ë¼­½ñ¤ÎÀßÄê¤ò¹Ô¤Ê¤¦¡¥
+ Wnn V3 ¤Î¼­½ñ¤Ë¤Ï¥·¥¹¥Æ¥à¼­½ñ¡¤ÍøÍÑ¼Ô¼­½ñ¤Î£²¼ïÎà¤¬¤¢¤ë¡¥¥·¥¹¥Æ¥à¼­½ñ¤Î
+ ÆâÍÆ¤ÏÊÑ¹¹¤Ç¤­¤Ê¤¤¡¥ÍøÍÑ¼Ô¼­½ñ¤ÏÆâÍÆ¤ÎÊÑ¹¹¤¬²ÄÇ½¤Ç¤¢¤ë¡¥¥·¥¹¥Æ¥à¼­½ñ¤ÎÍø
+ ÍÑÉÑÅÙ¾ðÊó¤Ï¡¤¼­½ñ¤È¤ÏÊÌ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤Ëµ­²±¤¹¤ë¡¥ÍøÍÑ¼Ô¼­½ñ¤ÎÉÑÅÙ¾ðÊó¤Ï¡¤
+ ¼­½ñ¤Ëµ­²±¤¹¤ë¡¥
+ 
+ ¼­½ñ¡¦ÉÑÅÙ¥Õ¥¡¥¤¥ë¤Î´ÉÍý¤Ï¼¡¤Î£²¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÊ¬¤±¤Æ¹Ô¤Ê¤¦¡¥
+   1. ¥·¥¹¥Æ¥à¶¦ÄÌ¤Î¥·¥¹¥Æ¥à¼­½ñ¤òÃÖ¤¯¥·¥¹¥Æ¥à¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê
+   2. ÍøÍÑ¼ÔËè¤Ë°Û¤Ê¤ë¡¤¥·¥¹¥Æ¥à¼­½ñ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤ÈÍøÍÑ¼Ô¼­½ñ¤òÃÖ¤¯ÍøÍÑ¼Ô¼­½ñ
+      ¥Ç¥£¥ì¥¯¥È¥ê
+ 
+ ## Variable: egg-startup-file-name
+      ½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ÎÌ¾Á°¤ò»ØÄê¤¹¤ë¡¥
+ 
+ ## Variable: egg-startup-file-search-path
+      Ãµº÷¤ò¹Ô¤Ê¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò»ØÄê¤¹¤ë¡¥`egg-startup-file-name'
+      ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¤³¤ÎÃµº÷¥Ñ¥¹¾å¤Î¥Õ¥¡¥¤¥ë¤òÃµ¤¹¡¥
+ 
+ ## Variable: egg-default-startup-file-name
+      site ¤Ç¶¦ÄÌ¤Ë»ÈÍÑ¤¹¤ë½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄê¤¹¤ë¡¥¥Õ¥¡¥¤¥ëÌ¾¤¬¥Ç¥£¥ì¥¯¥È
+      ¥ê¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï`load-path'¾å¤Î¥Õ¥¡¥¤¥ë¤òÃµ¤¹¡¥
+ 
+ ## Function: set-default-sys-dic-directory DIRECTORY
+      ¥·¥¹¥Æ¥à¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ DIRECTORY ¤ò»ØÄê¤¹¤ë¡¥
+           (set-default-sys-dic-directory "/usr/local/lib/dic/sys/")
+ 
+ ## Function: set-default-usr-dict-directory DIRECTORY
+      ÍøÍÑ¼Ô¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ DIRECTORY ¤ò»ØÄê¤¹¤ë¡¥
+           (set-default-usr-dic-directory "/usr/local/lib/dic/usr/$USER/")
+ 
+ 
+ 
+ ## Function: setsysdic JISHO HINDO PRIORITY &optional FLAG
+      ¥·¥¹¥Æ¥à¼­½ñ JISHO ¤òÍ¥Àè½ç°Ì PRIORITY¤Ç»ÈÍÑ¤·¡¤¤³¤Î¥·¥¹¥Æ¥à¼­½ñ¤Î
+      ÉÑÅÙ¥Õ¥¡¥¤¥ë¤Ë HINDO ¤ò»ØÄê¤¹¤ë¡¥JISHO,HINDO¤¬ÀäÂÐ¥Ñ¥¹Ì¾¡Ê`/'¤Ç»Ï¤Þ
+      ¤ë¥Ñ¥¹Ì¾¡Ë¤Ç¤Ê¤¤¾ì¹ç¤Ï¥Ñ¥¹Ì¾¤ÎÀèÆ¬¤Ë¥·¥¹¥Æ¥à¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤òÄÉ²Ã
+      ¤·¤¿¥Ñ¥¹Ì¾¤ò»ÈÍÑ¤¹¤ë¡¥FLAG¤¬`t'¤Ç¤Ê¤¤¾ì¹ç¤ÏJINDO¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥»Ò
+      `.sys'¤È¡¤¤Þ¤¿HINDO¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥»Ò`.hindo'¤òÄÉ²Ã¤¹¤ë¡¥
+ 
+           (setsysdic "pd-kihon" "pd-kihon" 5)
+           (setsysdic "kihon.sysdic" "kihon.freq" 5 t)
+ 
+ ## Function: setusrdic JISHO HINDO PRIORITY &optional FLAG
+      ÍøÍÑ¼Ô¼­½ñ JISHO ¤òÍ¥Àè½ç°Ì PRIORITY ¤Ç»ÈÍÑ¤¹¤ë¤³¤È¤ò»ØÄê¤¹
+      ¤ë¡¥JISHO¤¬ÀäÂÐ¥Ñ¥¹Ì¾¡Ê`/'¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¡Ë¤Ç¤Ê¤¤¾ì¹ç¤Ï¥Ñ¥¹Ì¾
+      ¤ÎÀèÆ¬¤ËÍøÍÑ¼Ô¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤òÄÉ²Ã¤·¤¿¥Ñ¥¹Ì¾¤ò»ÈÍÑ¤¹¤ë¡¥FLAG¤¬
+      `t'¤Ç¤Ê¤¤¾ì¹ç¤ÏJINDO¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥»Ò`.usr'¤òÄÉ²Ã¤¹¤ë¡¥
+ 
+ 
+      `setsysdic', `setusrdic' ¤Î»È¤¤Êý¤ÏWnn¤Î`.wnnrc'¤ÈÆ±ÍÍ¤Ç¤¢¤ë¡¥
+      `setsysdic'¤Ï¥·¥¹¥Æ¥à¼­½ñ¤ÈÉÑÅÙ¥Õ¥¡¥¤¥ë¤ò»ØÄê¤·¡¤`setusrdic'¤ÏÍøÍÑ
+      ¼Ô¼­½ñ¤ò»ØÄê¤¹¤ë¡¥
+ 
+           (setusrdic "my-dict" 5)
+           (setusrdic "our-dict.dat"  5 t)
+ 
+ 
+ File: egg  Node: ´Á»úÆþÎÏ, Prev: ½é´üÀßÄê, Up: Top, Next: ¼­½ñ´ÉÍý
+ 
+ ¡Ö¤¿¤Þ¤´¡× ¤Î´Á»úÆþÎÏ
+ *********************
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Î´Á»úÆþÎÏÊýË¡¤Ë¤Ï¼¡¤Î£²¼ïÎà¤¬¤¢¤ë¡¥
+ 
+   1. uum ¤ÈÆ±ÍÍ¤ÊÂÐÏÃ¼°´Á»úÆþÎÏÊýË¡
+   2. emacs ¤Î`M-x'¥³¥Þ¥ó¥É¤Ë¤è¤ë°ì³çÊÑ´¹ÊýË¡
+ 
+ * Menu:
+ 
+ * Intra: ÂÐÏÃ¼°.		ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ * Batch: °ì³ç¼°. 		ÊÑ´¹µ¡Ç½
+ * Mini: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ.	minibuffer ¤Ç¤Î´Á»úÆþÎÏ
+ 
+ 
+ File: egg  Node: ÂÐÏÃ¼°, Prev: ´Á»úÆþÎÏ, Up: ´Á»úÆþÎÏ, Next: °ì³ç¼°
+ 
+ ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ ================
+ 
+ ÂÐÏÃ¼°´Á»úÆþÎÏ¤Ë¤Ï¼¡¤Î£²¤Ä¤Îµ¡Ç½¤¬¤¢¤ë¡¥
+ 
+    * ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤ò»ÈÍÑ¤·¤Ê¤¤ÆþÎÏÊ¸»úÊÑ´¹µ¡Ç½(ÄÌ¾ï¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¤ò¹Ô
+      ¤Ê¤¦)
+    * ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤ò»ÈÍÑ¤¹¤ë²¾Ì¾´Á»úÊÑ´¹µ¡Ç½
+ 
+ ÂÐÏÃ¼°´Á»úÆþÎÏ¤Ç¤Ï¡¤°Ê²¼¤Î£´¤Ä¤Î¥â¡¼¥É¤ò°ÜÆ°¤·¤Ê¤¬¤éÆþÎÏ¤ò¹Ô¤Ê¤¦¡¥
+ 
+ * Menu:
+ 
+ * trans: Æ©²á¥â¡¼¥É. 	Æ©²á¥â¡¼¥É
+ * romakana:  ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.  	¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É
+ * fence: ¥Õ¥§¥ó¥¹¥â¡¼¥É. 		¥Õ¥§¥ó¥¹¥â¡¼¥É
+ * kanji: ÊÑ´¹¥â¡¼¥É. 		´Á»úÊÑ´¹¥â¡¼¥É
+ 
+ 
+ File: egg  Node: Æ©²á¥â¡¼¥É, Prev: ÂÐÏÃ¼°, Up: ÂÐÏÃ¼°, Next: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É
+ 
+ Æ©²á¥â¡¼¥É
+ ----------
+ 
+ 
+ Nemacs ¤òµ¯Æ°¤·¡¤¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤¬¥í¡¼¥É¤µ¤ì¤ë¤È¥â¡¼¥É¥é¥¤¥ó¤¬¼¡¤Î¤è
+ ¤¦¤ËÉ½¼¨¤µ¤ì¤ë¡¥¤³¤Î¤È¤­¤Î¥â¡¼¥É¤¬Æ©²á¥â¡¼¥É¤Ç¤¢¤ë¡¥
+ 
+      [----] ---- NEmacs: *scratch*         (Lisp Interaction)---All---[JJJ-]
+       ^^^^
+ 
+ Æ©²á¥â¡¼¥É¤ÏÄÌ¾ï¤ÎNemacs¤ÈÆ±¤¸µ¡Ç½¤ò»ý¤Ä¡¥
+ 
+ ¡ÊÃí°Õ¡ËÎ©¤Á¤¢¤²¤¿»þ¤Ë `Error in init file' ¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬ 
+ minibuffer¤ËÉ½¼¨¤µ¤ì¤ë»þ¤Ï¡¤`$NEMACS/lisp/egg.elc'¤«¡¤
+ `$NEMACS/lisp/egg-rk-dump.elc'¤¬Ìµ¤¤¤³¤È¤¬¹Í¤¨¤é¤ì¤ë¡¥¤³¤Î¾ì¹ç¤Ë¤Ï¡¤
+ Nemacs¤ÎÃ´Åö¼Ô¤ËÏ¢Íí¤¹¤ë¡¥
+ 
+ Æ©²á¥â¡¼¥É¤ò´Þ¤à¤¹¤Ù¤Æ¤Î¥â¡¼¥É¤Ç¡¤`C-^'¡Ê¥³¥Þ¥ó¥É*special-symbol-input*¡Ë
+ ¤Ë¤è¤Ã¤ÆÆÃ¼ìµ­¹æ¤ò´Þ¤àµ­¹æÆþÎÏ¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¡¥¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÉ½¼¨¤µ
+ ¤ì¤ë¥á¥Ë¥å¡¼Ãæ¤«¤é¡¤µ­¹æ¤Î¼ïÎà¡¤µ­¹æ¤ò½ç¤Ë`RET'¤Ë¤è¤Ã¤ÆÁªÂò¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É, Prev: Æ©²á¥â¡¼¥É, Up: ÂÐÏÃ¼°, Next: ¥Õ¥§¥ó¥¹¥â¡¼¥É
+ 
+ ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É
+ ------------------
+ 
+ 
+ Æ©²á¥â¡¼¥É¤Ç `C-\' ¡Ê¥³¥Þ¥ó¥É*toggle-egg-mode*¡Ë¤òÂÇ¤Ä¤È¡¤¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼
+ ¥É¤ËÆþ¤ê¡¤¥â¡¼¥É¥é¥¤¥ó¤¬¼¡¤Î¤è¤¦¤ËÊÑ¤ï¤ë¡¥
+ 
+      [ a¤¢] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+       ^^^^
+ 
+ Æ©²á¥â¡¼¥É¤ËÌá¤ë¤Ë¤Ï¡¤¤â¤¦°ìÅÙ`C-\'¤òÂÇ¤Ä¡¥
+ 
+ ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ç¤Î¥³¥ó¥È¡¼¥ë¥­¡¼¤ä¥á¥¿¥­¡¼¤ÏÄÌ¾ï¤Î°ÕÌ£¤ò»ý¤Ä¤Î¤Ç¡¤¥«¡¼
+ ¥½¥ë°ÜÆ°¤Ê¤É¤Ï¡¤¤³¤Î¥â¡¼¥É¤Î¤Þ¤Þ¤Ç¼Â¹Ô¤Ç¤­¤ë¡¥ÄÌ¾ïÊ¸»ú¤òÆþÎÏ¤¹¤ë¤È¥«¡¼¥½
+ ¥ë¤Î°ÌÃÖ¤Ë½ÄËÀ `|' £²¤Ä¤¬¸½¤ì¡¤¤½¤Î´Ö¤ËÆþÎÏ¤ò¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¤·¤¿¤Ò¤é¤¬
+ ¤Ê¤¬É½¼¨¤µ¤ì¤ë¡¥Wnn¤Ç¤ª¤Ê¤¸¤ß¤ÎÊÑ´¹Îã¡¤¡Ö»ä¤ÎÌ¾Á°¤ÏÃæÌî¤Ç¤¹¡×¤Î¥í¡¼¥Þ»ú
+ É½µ­
+ 
+      watasinonamaehanakanodesu
+ 
+ ¤òÆþÎÏ¤¹¤ë¤È
+ 
+      |¤ï¤¿¤·¤Î¤Ê¤Þ¤¨¤Ï¤Ê¤«¤Î¤Ç¤¹|
+ 
+ ¤ÈÊÑ´¹¤µ¤ì¤ÆÉ½¼¨¤µ¤ì¤ë¡¥¤³¤Î½ÄËÀ¤ò¥Õ¥§¥ó¥¹¤È¸Æ¤Ó¡¤¤³¤Î¾õÂÖ¤ò¥Õ¥§¥ó¥¹¥â¡¼
+ ¥É¤È¤¤¤¦¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É¤ò¼¨¤¹ÊýË¡¡Ê½ÄËÀ¤Ê¤É¡Ë¤Ï¡¤¥³¥Þ¥ó¥É
+ *set-egg-fence-mode-format*¤ÇÊÑ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ ## Command: set-egg-fence-mode-format OPEN CLOSE &optional ATTR
+      OPEN,CLOSE¤Ï¤½¤ì¤¾¤ìÎÎ°è¤Î»ÏÅÀ¤È½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó¡¥ATTR¤Ï¥Õ¥§¥ó¥¹ÎÎ
+      °è¤ËÀßÄê¤µ¤ì¤ëattribute¡Êx11term¤Ç¤Î¤ßÍ­¸ú¡Ë¡¥É¸½à¤Î¾õÂÖ¤Ç¤Ï¡¤ 
+      `(set-egg-fence-mode-format "|" "|" nil)'¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
+ 
+ ## Command: toggle-egg-code
+      Æ©²á¥â¡¼¥É¤È¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÎÀÚÂØ¤ò¹Ô¤Ê¤¦¡¥
+      ¥Õ¥§¥ó¥¹¥â¡¼¥ÉÃæ¤Ç¤Ï¡¤¥í¡¼¥Þ»ú¤«¤ÊÆþÎÏ¥â¡¼¥É¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤òÀÚÂØ¤¨¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥Õ¥§¥ó¥¹¥â¡¼¥É, Prev: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É, Up: ÂÐÏÃ¼°, Next: ÊÑ´¹¥â¡¼¥É
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É
+ --------------
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤ÏÊ¸»úÆþÎÏ¤È¥Õ¥§¥ó¥¹¥â¡¼¥ÉÊÔ½¸¥³¥Þ¥ó¥É¤Ë¤è¤ëÊÔ½¸¤Î¤ß¤¬¹Ô
+ ¤Ê¤¨¤ë¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤Ï°Ê²¼¤ÎÊÔ½¸¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ `! .. ~'
+      ¥í¡¼¥Þ»ú¤ò²¾Ì¾¤ËÊÑ´¹
+ `SPC'
+      ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ `C-@'
+      ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ `C-a'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÀèÆ¬¤ÎÊ¸»ú¤Ø°ÜÆ°
+ `C-b'
+      fenceÆâ¤Ç°ìÊ¸»úÊ¬Á°¤Ø
+ `C-c'
+      ÆþÎÏ¤òÃæ»ß¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ `C-d'
+      °ìÊ¸»úºï½ü
+ `C-e'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎºÇ¸å¤ÎÊ¸»ú¤Ø°ÜÆ°
+ `C-f'
+      fenceÆâ¤Ç°ìÊ¸»úÊ¬¸å¤í¤Ø
+ `C-g'
+      ÆþÎÏ¤òcancel¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ `C-k'
+      ¥Õ¥§¥ó¥¹Æâ¤Î¥«¡¼¥½¥ë¤«¤é¸å¤í¤òºï½ü
+ `C-l'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÆþÎÏ¤ò³ÎÄê¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ `RET'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÆþÎÏ¤ò³ÎÄê¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ `C-T'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ÎÅ¾ÃÖ
+ `C-W'
+      ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ `C-_'
+      JIS ¥³¡¼¥ÉÆþÎÏ
+ `M-h'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*fence-hiragana*¡Ë
+ `M-k'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*fence-katakana*¡Ë
+ `M->'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*fence-zenkaku*¡Ë
+ `M-<'
+      ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*fence-hankaku*¡Ë
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç`C-\' ¤ò¥¿¥¤¥×¤¹¤ë¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤ËÀÚ¤êÂØ¤ï¤ê¡¤È¾³Ñ
+ Ê¸»ú¤¬ÆþÎÏ¤Ç¤­¤ë¡¥¤â¤¦£±ÅÙ`C-\' ¤òÃ¡¤¯¤È¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤ËÌá¤ë¡¥
+ 
+ 
+ ¥â¡¼¥É¥é¥¤¥ó¤Ï
+      [ a a] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+       ^^^^
+ 
+ ¤È¤Ê¤ë¡¥
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÇJIS code¤òÄ¾ÀÜÆþÎÏ¤¹¤ë¤Ë¤Ï`C-_'¡Ê¥³¥Þ¥ó¥É
+ *jis-code-input*¤ÈÂÇ¤Ä¡¥minibuffer ¤Ë `JIS code:' ¤ÈÉ½¼¨¤µ¤ì¡¤£±£¶¿Ê¿ôÆþ
+ ÎÏ¤ò¼õ¤±ÉÕ¤±¤ë¡¥
+ 
+ ## Command: toggle-egg-code
+      Æ©²á¥â¡¼¥É¤È¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÎÀÚÂØ¤ò¹Ô¤Ê¤¦¡¥
+      ¥Õ¥§¥ó¥¹¥â¡¼¥ÉÃæ¤Ç¤Ï¡¤¥í¡¼¥Þ»ú¤«¤ÊÆþÎÏ¥â¡¼¥É¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤òÀÚÂØ¤¨¤ë¡¥
+ 
+ 
+ File: egg  Node: ÊÑ´¹¥â¡¼¥É, Prev: ¥Õ¥§¥ó¥¹¥â¡¼¥É, Up: ÂÐÏÃ¼°, Next: ÊÑ´¹¥³¥Þ¥ó¥É
+ 
+ ´Á»úÊÑ´¹¥â¡¼¥É
+ --------------
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤Ï¡¤`C-w'¡¤`C-@'¡¤`SPC'¤Î¤¤¤Å¤ì¤«¤Ë¤è¤Ã¤Æ¡¤´Á»úÊÑ´¹¥â¡¼
+ ¥É¤ËÆþ¤ê¡¤²¾Ì¾´Á»úÊÑ´¹¤¬³«»Ï¤µ¤ì¤ë¡¥¥â¡¼¥É¥é¥¤¥ó¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
+ 
+      [´Á»ú] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+       ^^^^
+ 
+ 
+ ²¾Ì¾´Á»ú¥â¡¼¥É¤ËÆþ¤Ã¤¿»þ½é¤á¤Æ¡¤¡Ö¤¿¤Þ¤´¡×¤ÏJSERVER¤È¤Î¥³¥Í¥¯¥·¥ç¥ó¤ò³«
+ ¤­¡¤
+ 
+      ¥Û¥¹¥È etlcom ¤ÎJSERVER¤òµ¯Æ°¤·¤Þ¤·¤¿¡¥
+ 
+ ¤È¤¤¤¦ message ¤ò minibuffer ¤ËÉ½¼¨¤·¡¤¼­½ñÀßÄê¤Î¤¿¤á¤Ë`.eggrc'¤òÆÉ¤ß¹þ
+ ¤à¡¥ÉÑÅÙ¾ðÊó¥Õ¥¡¥¤¥ë¤ä¸Ä¿Í¼­½ñ¤¬¤Ê¤¤¾ì¹ç¤Ï¤½¤ì¤é¤òºîÀ®¤¹¤ë¤«¤É¤¦¤«¤ò¼ÁÌä
+ ¤¹¤ë¡¥
+ 
+ ¤â¤·JSERVER¤¬Æ°¤¤¤Æ¤¤¤Ê¤¤¤È¡¤
+ 
+      etlcom ¾å¤ËJSERVER¤¬¤¢¤ê¤Þ¤»¤ó¡¥
+ 
+ ¤È¤¤¤¦error message¤òminibuffer¤ËÉ½¼¨¤¹¤ë¡¥¡Ê¤³¤Î¾ì¹ç¤Ë¤Ï¥Û¥¹¥È¤ÎWnnÃ´Åö
+ ¼Ô¤ËÏ¢Íí¤ò¤·¤ÆJSERVER¤òµ¯Æ°¤·¤Æ¤â¤é¤Ã¤Æ²¼¤µ¤¤¡¥¡Ë
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤«¤é¤Î message ¤Ï¤¹¤Ù¤Æ `*Notification*' ¤È¤¤¤¦ buffer ¤ËÊÝÂ¸
+ ¤µ¤ì¤ë¡¥`M-x select-notification' ¤ò¼Â¹Ô¤¹¤ë¤ÈÁªÂò¤µ¤ì¤ë¡¥
+ 
+ 
+ File: egg  Node: ÊÑ´¹¥³¥Þ¥ó¥É, Prev: ÊÑ´¹¥â¡¼¥É, Up: ÊÑ´¹¥â¡¼¥É, Next: ¥á¥Ë¥å¡¼ÁªÂò
+ 
+ ÊÑ´¹¥³¥Þ¥ó¥É
+ ............
+ 
+ 
+ ÊÑ´¹¥â¡¼¥É¤Ç¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ `SPC'
+      ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ `C-SPC'
+      ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ `C-a'
+      ÀèÆ¬Ê¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ `C-b'
+      Ä¾Á°¤ÎÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ `C-c'
+      ÊÑ´¹¤òÃæ»ß¤·¡¤²¾Ì¾¥â¡¼¥É¤Ë¤â¤É¤ë
+ `C-e'
+      ºÇ½ªÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ `C-f'
+      Ä¾¸å¤ÎÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ `C-g'
+      ´Á»úÊÑ´¹¥â¡¼¥É¤òÃæ»ß¤¹¤ë
+ `C-h'
+      ´Á»úÊÑ´¹¥â¡¼¥É¥³¥Þ¥ó¥É¤òÉ½¼¨¤¹¤ë
+ `C-i'
+      Ê¸Àá¤ÎÄ¹¤µ¤òÃ»¤¯¤¹¤ë
+ `C-k'
+      ¥«¡¼¥½¥ë¤Î¤¢¤ëÊ¸Àá¤è¤êÁ°¤ò³ÎÄê¤·¡¤¥«¡¼¥½¥ë¤ò´Þ¤àÊ¸Àá°Ê¹ß¤ò²¾Ì¾¥â¡¼¥É¤ËÌá¤¹
+ `C-l'
+      ¤¹¤Ù¤Æ¤ÎÊÑ´¹¤ò³ÎÄê¤¹¤ë
+ `RET'
+      ¤¹¤Ù¤Æ¤ÎÊÑ´¹¤ò³ÎÄê¤¹¤ë
+ `C-n'
+      ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ `C-o'
+      Ê¸Àá¤ÎÄ¹¤µ¤òÄ¹¤¯¤¹¤ë
+ `C-p'
+      Á°¸õÊäÉ½¼¨¤¹¤ë
+ `M-s'
+      ÊÑ´¹¸õÊä°ìÍ÷¤ò¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÉ½¼¨¤·¡¤ÁªÂò²ÄÇ½¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É
+      *henkan-select-kouho*¡Ë
+ `M-h'
+      Ê¸Àá¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*henkan-hiragana*¡Ë
+ `M-i'
+      Ê¸Àá¤ÎÊÑ´¹¾ðÊó¤òÉ½¼¨¤¹¤ë¡Ê¥³¥Þ¥ó¥É*henkan-inspect-bunsetu*¡Ë
+ `M-k'
+      Ê¸Àá¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*henkan-katakana*¡Ë
+ `M-<'
+      Ê¸Àá¤ÎÄ¹¤µ¤òºÇÂç¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*henkan-saichou-bunsetu*¡Ë
+ `M->'
+      Ê¸Àá¤ÎÄ¹¤µ¤òºÇ¾®¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É*henkan-sanshou-bunsetu*¡Ë
+ 
+ Îã¤ò¤ß¤Æ¤ß¤è¤¦¡¥
+ 
+      |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ 
+ ³ÆÊ¸Àá¤Ï¡¤°ì¸Ä¤ÎÈ¾³Ñ¶õÇò¤Ç¶èÀÚ¤é¤ì¤ë¡¥¡ÊÊÑ´¹¥â¡¼¥É¤Ç¤ÎÉ½¼¨¤ÎÊýË¡¤Ï¡¤¥³¥Þ
+ ¥ó¥É*set-egg-henkan-mode-format*¤ÇÊÑ¹¹¤Ç¤­¤ë¡¥¡ËÊÑ´¹´Ö°ã¤¤¤ÏÊ¸Àá
+ Ëè¤ËºÆÊÑ´¹¤·¤Æ½¤Àµ¤¹¤ë¡¥Ê¸Àá¤ÎÀÚ¤êÊý¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤`C-i'¤Ë¤è¤Ã
+ ¤Æ¥«¡¼¥½¥ë¤Î¤¢¤ëÊ¸Àá¤òÃ»¤¯¤¹¤ë¤«¡¤`C-o'¤Ë¤è¤Ã¤Æ¥«¡¼¥½¥ë¤¬¤¢¤ëÊ¸Àá¤ò
+ Ä¹¤¯¤·¤Æ½¤Àµ¤¹¤ë¡¥
+ 
+ 
+ Ê¸ÀáËè¤ÎºÆÊÑ´¹¤Ï¡¤`C-@' ¡¤`SPC' ¤Þ¤¿¤Ï`C-n'¤Ë¤è¤Ã¤Æ¼¡¸õÊä¤ò½Ð¤¹¡¤`C-p'¤Ë
+ ¤è¤Ã¤ÆÄ¾Á°¤Î¸õÊä¤ò½Ð¤¹¡¤`M-s' ¤Ë¤è¤Ã¤Æ minibuffer ¤Ç¸õÊä°ìÍ÷¤«¤éÁª¤Ö¤Ê¤É
+ ¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥Ê£¿ô¤Î¸õÊä°ìÍ÷¤¬¤¢¤ë¾ì¹ç¤Ï¡¤`C-n'¤Ç¼¡¤Î¸õÊä°ìÍ÷¤¬¡¤¤Þ¤¿
+ `C-p'¤ÇÁ°¤Î¸õÊä°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥`C-f'¤Ç¥«¡¼¥½¥ë¤¬¼¡¸õÊä¤Ë¡¤`C-b'¤Ç¥«¡¼
+ ¥½¥ë¤¬Á°¤Î¸õÊä¤Ë°ÜÆ°¤¹¤ë¡¥¸õÊä·èÄê¤Ë¤ÏRET¡¤¸õÊä°ìÍ÷¤Î¾õÂÖ¤«¤éÈ´¤±¤ë¤Ë¤Ï
+ `C-g'¤ò¥¿¥¤¥×¤¹¤ì¤Ð¤è¤¤¡¥
+ 
+ ¤Ò¤é¤¬¤ÊÆþÎÏ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤`C-c'¤òÃ¡¤¯¤È¡¤¤Ò¤é¤¬¤ÊÆþÎÏ¾õÂÖ¤ËÌá
+ ¤ë¡¥¤Þ¤¿ÀèÆ¬¤Î¤¤¤¯¤Ä¤«¤ÎÊ¸Àá¤ò³ÎÄê¤·¡¤»Ä¤ê¤ÎÉôÊ¬¤ò¤Ò¤é¤¬¤Ê¤ËÌá¤·¤ÆÊÔ½¸¤¹
+ ¤ë¤Ë¤Ï¡¤`C-k'¤ò¥¿¥¤¥×¤¹¤ë¤È¡¤¥«¡¼¥½¥ë¤Î¤¤¤ëÊ¸Àá¤ÎÄ¾Á°¤Þ¤Ç¤¬³ÎÄê¤·¡¤»Ä¤ê
+ ¤¬¤Ò¤é¤¬¤Ê¤ËÌá¤ë¡¥
+ 
+ ## Command: set-egg-henkan-mode-format OPEN CLOSE KUGIRI &optional ATTR1 ATTR2
+      ÊÑ´¹¥â¡¼¥É¤ÎÉ½¼¨ÊýË¡¤òÀßÄê¤¹¤ë¡¥OPEN,CLOSE,KUGIRI¤Ï¤½¤ì¤¾¤ìÊÑ´¹¤Î»ÏÅÀ¡¤
+      ½ªÅÀ¡¤Ê¸Àá¶èÀÚ¤ê¤ò¼¨¤¹Ê¸»úÎó¤¢¤ë¤¤¤Ïnil¡¥ATTR1,ATTR2¤Ï¤½¤ì¤¾¤ìÊÑ´¹¶è´Ö¡¤
+      Ê¸Àá¶è´Ö¤ËÀßÄê¤µ¤ì¤ëÂ°À­¤¢¤ë¤¤¤Ïnil¡Êx11term¤Ç¤Î¤ßÍ­¸ú¡Ë¡¥É¸½à¤Î¾õÂÖ¤Ç¤Ï¡¤
+  
+      `(set-egg-henkan-mode-format "|" "|" " " nil nil)'¤Ç¤¢¤ë¡¥
+ 
+ 
+ 
+ 
+ File: egg  Node: ¥á¥Ë¥å¡¼ÁªÂò, Prev: ÊÑ´¹¥³¥Þ¥ó¥É, Up: ÊÑ´¹¥â¡¼¥É, Next: °ì³ç¼°
+ 
+ ¥á¥Ë¥å¡¼¤ÎÁªÂòË¡
+ ................
+ 
+ minibuffer ¤òÍøÍÑ¤·¤¿¥á¥Ë¥å¡¼¥·¥¹¥Æ¥à¤Ç¤ÎÊÑ´¹¸õÊä¤ÎÁªÂòÊýË¡¤Ï¼¡¤ÎÄÌ¤ê¤Ç
+ ¤¢¤ë¡¥
+ 
+ `C-n'
+      ¼¡¤Î¸õÊä°ìÍ÷
+ `C-p'
+      Á°¤Î¸õÊä°ìÍ÷
+ `C-f'
+      ¥«¡¼¥½¥ë¤ò¼¡¤Î¸õÊä¤Ë°ÜÆ°
+ `C-b'
+      ¥«¡¼¥½¥ë¤òÁ°¤Î¸õÊä¤Ë°ÜÆ°
+ `C-g'
+      ¥á¥Ë¥å¡¼ÁªÂò¤òÃæ»ß¤¹¤ë
+ `RET'
+      ¥«¡¼¥½¥ë¤Î¤¤¤ë¹àÌÜ¤òÁªÂò¤¹¤ë
+ 
+ 
+ File: egg  Node: °ì³ç¼°, Prev: ÂÐÏÃ¼°, Up: ´Á»úÆþÎÏ, Next: ¼­½ñ´ÉÍý
+ 
+ °ì³çÊÑ´¹µ¡Ç½
+ ============
+ 
+ * Menu:
+ 
+ * JIS: JIS ÆþÎÏ.
+ * Zenkaku: Á´³ÑÊÑ´¹.
+ * Hankaku: È¾³ÑÊÑ´¹.
+ * Hiragana: ¤Ò¤é¤¬¤ÊÊÑ´¹.
+ * Katanaka: ¥«¥¿¥«¥ÊÊÑ´¹.
+ * RomaHira: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹.
+ * RomaKanji: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹.
+ * Kanji: ´Á»úÊÑ´¹.
+ 
+ 
+ File: egg  Node: JIS ÆþÎÏ, Prev: °ì³ç¼°, Up: °ì³ç¼°, Next: Á´³ÑÊÑ´¹
+ 
+ JIS¥³¡¼¥ÉÆþÎÏ
+ -------------
+ 
+ `M-x jis-code-input'¤Ë¤è¤Ã¤ÆJIS¥³¡¼¥ÉÆþÎÏ¤¬¹Ô¤Ê¤¨¤ë¡¥minibuffer¤Ë
+ 
+      JIS code: 
+ 
+ ¤È¥×¥í¥ó¥×¥È¤¬½Ð¤ë¤Î¤Ç16¿Ê¥³¡¼¥É¤ÇJIS¥³¡¼¥É¤òÆþÎÏ¤¹¤ë¡¥Îã¤¨¤Ð
+ 
+      JIS code: 2170
+ 
+ ¤ÈÆþÎÏ¤¹¤ë¤È¡¤¥«¡¼¥½¥ë¤Î°ÌÃÖ¤Ë¡ð¤¬É½¼¨¤µ¤ì¤ë¡¥¡Ê16¿Ê¿ô¤ÎÂçÊ¸»ú¡¦¾®Ê¸»ú¤Î
+ ¶èÊÌ¤Ï¤Ê¤¤¡¥¡Ë
+ 
+ 
+ File: egg  Node: Á´³ÑÊÑ´¹, Prev: JIS ÆþÎÏ, Up: °ì³ç¼°, Next: È¾³ÑÊÑ´¹
+ 
+ Á´³ÑÊÑ´¹
+ --------
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç±Ñ¿ô»ú¤äµ­¹æ¤Ê¤É¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ 
+ `M-x zenkaku-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x zenkaku-word'
+      Ä¾¸å¤Î word ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x zenkaku-paragraph'
+      Ä¾¸å¤Î paragraph ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x zenkaku-sentence'
+      Ä¾¸å¤Î sentence ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: È¾³ÑÊÑ´¹, Prev: Á´³ÑÊÑ´¹, Up: °ì³ç¼°, Next: ¤Ò¤é¤¬¤ÊÊÑ´¹
+ 
+ È¾³ÑÊÑ´¹
+ --------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç±Ñ¿ô»ú¤äµ­¹æ¤Ê¤É¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ ¡ÊÆüËÜ¸ìÊ¸»ú¤Ê¤É¤ÏÁ´³Ñ¤Î¤Þ¤ÞÊÑ´¹¤µ¤ì¤Ê¤¤¡Ë
+ 
+ `M-x hankaku-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x hankaku-word'
+      Ä¾¸å¤Î word ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x hankaku-paragraph'
+      Ä¾¸å¤Î paragraph ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ `M-x hankaku-sentence'
+      Ä¾¸å¤Î sentence ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¤Ò¤é¤¬¤ÊÊÑ´¹, Prev: È¾³ÑÊÑ´¹, Up: °ì³ç¼°, Next: ¥«¥¿¥«¥ÊÊÑ´¹
+ 
+ ¤Ò¤é¤¬¤ÊÊÑ´¹
+ ------------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ `M-x hiragana-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x hiragana-word'
+      Ä¾¸å¤Î word ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x hiragana-paragraph'
+      Ä¾¸å¤Î paragraph ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x hiragana-sentence'
+      Ä¾¸å¤Î sentence ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥«¥¿¥«¥ÊÊÑ´¹, Prev: ¤Ò¤é¤¬¤ÊÊÑ´¹, Up: °ì³ç¼°, Next: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹
+ 
+ ¥«¥¿¥«¥ÊÊÑ´¹
+ ------------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ `M-x katakana-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ `M-x katakana-word'
+      Ä¾¸å¤Î word ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ `M-x katakana-paragraph'
+      Ä¾¸å¤Î paragraph ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ `M-x katakana-sentence'
+      Ä¾¸å¤Î sentence ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹, Prev: ¥«¥¿¥«¥ÊÊÑ´¹, Up: °ì³ç¼°, Next: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹
+ 
+ ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹
+ --------------------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ Îã¤¨¤Ð¥í¡¼¥Þ»úÊ¸»úÎó
+      koreharo-majidesu.
+ ¤Ï¤Ò¤é¤¬¤ÊÊ¸»úÎó
+      ¤³¤ì¤Ï¤í¡¼¤Þ¤¸¤Ç¤¹¡¥
+ ¤ËÊÑ´¹¤µ¤ì¤ë¡¥
+ 
+ `M-x roma-kana-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x roma-kana-word'
+      Ä¾¸å¤Î word ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x roma-kana-paragraph'
+      Ä¾¸å¤Î paragraph ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ `M-x roma-kana-sentence'
+      Ä¾¸å¤Î sentence ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹, Prev: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹, Up: °ì³ç¼°, Next: ´Á»úÊÑ´¹
+ 
+ ¥í¡¼¥Þ»ú´Á»úÊÑ´¹
+ ----------------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥í¡¼¥Þ»ú¤ò´Á»ú¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ `M-x roma-kanji-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x roma-kanji-word'
+      Ä¾¸å¤Î word ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x roma-kanji-paragraph'
+      Ä¾¸å¤Î paragraph ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x roma-kanji-sentence'
+      Ä¾¸å¤Î sentence ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ 
+ Îã¤¨¤Ð¥í¡¼¥Þ»úÊ¸»úÎó
+      watashino namaeha nakano desu.
+ ¤Ï¡¤
+      |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ ¤Ë¤Ê¤ê¡¤´Á»úÊÑ´¹¥â¡¼¥É¤ËÆþ¤ë¡¥¡Ê¥ê¡¼¥¸¥ç¥óÆâ¤Î¶õÇòÊ¸»ú¤Ïºï½ü¤µ¤ì¤ë¡¥¡Ë
+ 
+ 
+ File: egg  Node: ´Á»úÊÑ´¹, Prev: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹, Up: °ì³ç¼°, Next: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ
+ 
+ ´Á»úÊÑ´¹
+ --------
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¤Ò¤é¤«¤Ê¤ò´Á»ú¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ `M-x henkan-region'
+      »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x henkan-word'
+      Ä¾¸å¤Î word ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x henkan-paragraph'
+      Ä¾¸å¤Î paragraph ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ `M-x henkan-sentence'
+      Ä¾¸å¤Î sentence ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ 
+ Îã¤¨¤Ð¤Ò¤é¤¬¤ÊÊ¸»úÎó
+      ¤ï¤¿¤·¤Î¤Ê¤Þ¤¨¤Ï¤Ê¤«¤Î¤Ç¤¹¡¥
+ ¤Ï¡¤
+      |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ ¤Ë¤Ê¤ê¡¤´Á»úÊÑ´¹¥â¡¼¥É¤ËÆþ¤ë¡¥
+ 
+ 
+ File: egg  Node: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ, Prev: ´Á»úÊÑ´¹, Up: ´Á»úÆþÎÏ, Next: ¼­½ñ´ÉÍý
+ 
+ ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç¤Î´Á»úÆþÎÏÊýË¡
+ ============================
+ 
+ minibufferÆâ¤Ç¤âÆþÎÏÊ¸»úÊÑ´¹¡¤²¾Ì¾´Á»úÊÑ´¹¤¬¤Ç¤­¤ë¡¥bufferÃæ¤ÈÆ±ÍÍ¤Ë
+ `C-\'¤òÂÇ¤Ä¤³¤È¤Ë¤è¤Ã¤Æ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ë¤Ê¤ë¡¥¥â¡¼¥É¤ÏÁ´¤Æ¤Îbuffer ¤Î
+ ¥â¡¼¥É¥é¥¤¥ó¤Ë`m'¡Êfor Minibuffer¡Ë¤¬ÀèÆ¬¤Ë¤Ä¤¤¤¿·Á¤ÇÉ½¼¨¤µ¤ì¤ë¡¥
+ 
+      m[ a¤¢]-----NEmacs: wnn-egg.el         (Emacs-Lisp)---- 3%---[JJJ-]
+      ^ ^^^^
+ 
+ 
+ File: egg  Node: ¼­½ñ´ÉÍý, Prev: ´Á»úÆþÎÏ, Up: Top, Next: Customization
+ 
+ ÍøÍÑ¼Ô¼­½ñ´ÉÍý
+ **************
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ï¡¤ÍøÍÑ¼Ô¼­½ñ¤Î´ÉÍý¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¼­½ñÅÐÏ¿¤È¼­½ñÊÔ½¸¤Î£²¤Ä¤Î
+ µ¡Ç½¤òÄó¶¡¤¹¤ë¡¥
+ 
+ * Menu:
+ 
+ * Toroku: ¼­½ñÅÐÏ¿.
+ * Henshu: ¼­½ñÊÔ½¸.	¼­½ñ¹àÌÜÊÔ½¸
+ 
+ 
+ File: egg  Node: ¼­½ñÅÐÏ¿, Prev: ¼­½ñ´ÉÍý, Up: ¼­½ñ´ÉÍý, Next: ¼­½ñÊÔ½¸
+ 
+ ¼­½ñÅÐÏ¿
+ ========
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤ÏbufferÃæ¤ÎÊ¸»úÎó¤òÍÑ¤¤¤ÆÍøÍÑ¼Ô¼­½ñ¤ËÃ±¸ì¤òÅÐÏ¿¤Ç¤­¤ë¡¥
+ 
+ ## Command: toroku-region START END YOMI HINSHI JISHO
+      ¥ê¡¼¥¸¥ç¥ó(START,END)¤Ç»ØÄê¤µ¤ì¤¿ÅÐÏ¿Ê¸»úÎó¤òÆÉ¤ßÊ¸»úÎó
+      YOMI¤ÇÉÊ»ìHINSHI¤Î¸ì¤È¤·¤Æ¼­½ñJISHO¤ËÅÐÏ¿¤¹¤ë¡¥
+ 
+ Îã¤¨¤Ð¡¤bufferÃæ¤Î¡ØÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¡Ù¤È¤¤¤¦Ã±¸ì¤ò¼­½ñ¤ËÅÐÏ¿¤¹¤ë¼ê½ç¤Ï
+ ¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
+ 
+   1. ÅÐÏ¿Ê¸»úÎó¤ò»ØÄê¤¹¤ë¡¥ÅÐÏ¿¤¹¤ë¸ì¤ÎÈÏ°Ï¤ò¥ê¡¼¥¸¥ç¥ó¤Ç»ØÄê¤·¡¤`M-X
+      toroku-region'¤ò¼Â¹Ô¤¹¤ë¡¥
+   2. ÆÉ¤ß¤ò»ØÄê¤¹¤ë¡¥minibuffer¤Ë
+           ¼­½ñÅÐÏ¿¡ØÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¡Ù ÆÉ¤ß¡§
+      ¤¬É½¼¨¤µ¤ì¤ë¡¥ÆÉ¤ß¤ò¥í¡¼¥Þ»ú¤ÇÆþÎÏ¤·¡Ê¼«Æ°Åª¤Ë¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡Ë
+      RET¤ÇÆÉ¤ß¤ÎÆþÎÏ¤ò½ªÎ»¤¹¤ë¡¥
+   3. ÉÊ»ì¤ò»ØÄê¤¹¤ë¡¥minibuffer¤ËÉÊ»ì°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥¡Ê*Note ÉÊ»ì::¡Ë
+           ÉÊ»ì:  0.Ì¾»ì  1.¸ÇÍ­Ì¾»ì  2.Æ°»ì  3.·ÁÍÆ»ì¸ì´´  4.·ÁÍÆÆ°»ì¸ì´´  5.Ï¢ÂÓ»ì
+      `C-F'¤Ç¥«¡¼¥½¥ë¤¬±¦¤Ë°ÜÆ°¤·¡¤`C-B'¤Ç¥«¡¼¥½¥ë¤¬º¸¤Ë°ÜÆ°¤¹¤ë¡¥
+      `C-N'¤Ç¼¡¤ÎÉÊ»ì°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥
+           ÉÊ»ì:  0.Éû»ì  1.ÀÜÂ³»ì¡¦´¶Æ°»ì  2.ÀÜÆ¬¸ì  3.ÀÜÈø¸ì  4.½õ¿ô»ì  5.¿ô»ì  6.Ã±´Á»ú
+      `C-P'¤ÇÁ°¤ÎÉÊ»ì°ìÍ÷¤ËÌá¤ë¡¥
+      ÌÜÅª¤ÎÉÊ»ì¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°¤·¡¤RET¤Ë¤è¤Ã¤ÆÉÊ»ì¤òÁªÂò¤¹¤ë¡¥
+      Æ°»ì¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¼ïÎà¤¬¤¢¤ë¤¿¤á¡¤Îã¤¨¤Ð¡Ö¥µÊÑ¡ÊÌ¾»ì·¿¡Ë¸ì´´¡×¤òÁªÂò¤¹¤ë
+      ¤Ë¤Ï¡¤¤Þ¤º¡ÖÆ°»ì¡×¤òÁªÂò¤·¡¤¼¡¤ÎÁªÂò¥ê¥¹¥È¤«¤é¡¤¡Ö¥µÊÑ¡ÊÌ¾»ì·¿¡Ë¸ì´´¡×¤ò
+      Ãµ¤·¡¤ÁªÂò¤¹¤ë¡¥  
+      Îã¤Î¾ì¹ç¡¤ÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¤Ï¸ÇÍ­Ì¾»ì¤Ê¤Î¤Ç¡¤¡Ö¸ÇÍ­Ì¾»ì¡×¤òÁª¤Ö¡¥  
+   4. ÅÐÏ¿¤¹¤ë¼­½ñ¤ò»ØÄê¤¹¤ë¡¥Æ±ÍÍ¤Ë`C-F', `C-B', `C-N', `C-P'Åù¤ò»È¤Ã¤Æ
+      ¥«¡¼¥½¥ë¤òÅÐÏ¿¤·¤¿¤¤¼­½ñ¤Ë°ÜÆ°¤·ÁªÂò¤¹¤ë¡¥RET¤òÂÇ¤Ä¤ÈÃ±¸ì¤òÅÐÏ¿¤¹¤ë¡¥
+ 
+ 
+ File: egg  Node: ¼­½ñÊÔ½¸, Prev: ¼­½ñÅÐÏ¿, Up: ¼­½ñ´ÉÍý, Next: Customization
+ 
+ ¼­½ñ¹àÌÜÊÔ½¸¡¡DicEd
+ ===================
+ 
+ ¸½ºß»ÈÍÑ¤·¤Æ¤¤¤ë¼­½ñ¤Î¼­½ñ¹àÌÜ¤ò¡¤ÆÉ¤ß¤ò»ØÄê¤·¤ÆÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ ## Command: edit-dict-item YOMI
+ 
+ ÍøÍÑ¼Ô¼­½ñ¤ÎÅÐÏ¿¹àÌÜ¤ò½¤Àµ¤¹¤ë¤Ë¤Ï`M-x edit-dict-item'¤òÆþÎÏ¤·¡¤
+ minibuffer ¤Ç¹àÌÜ¤ÎÆÉ¤ß¤ò»ØÄê¤¹¤ë¡¥¤¹¤ë¤È `*Nihongo Dictionary
+ Information*' ¤È¤¤¤¦buffer¤¬ºî¤é¤ì¡¤¤¿¤È¤¨¤Ð°Ê²¼¤Î¤è¤¦¤ËÉ½¼¨¤µ¤ì¤ë¡¥
+ 
+       *ÏÃ ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14434 ÉÑÅÙ¡§46
+       *Î¥ ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14433 ÉÑÅÙ¡§18
+       *Êü ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14432 ÉÑÅÙ¡§2
+       *¤Ï¤Ê ¤¹       ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14428 ÉÑÅÙ¡§1
+       *Êü ¤Ä         ¥¿¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14432 ÉÑÅÙ¡§2
+       *²Ö            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14429 ÉÑÅÙ¡§12
+       *É¡            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14431 ÉÑÅÙ¡§4
+       *¤Ï¤Ê          Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14427 ÉÑÅÙ¡§1
+       *²Ú            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14430 ÉÑÅÙ¡§1
+       *¥Ï¥Ê          ¸ÇÍ­Ì¾»ì      ¼­½ñ¡§pd-jinmei.sys/1581 ÉÑÅÙ¡§0
+       *È¹            Ã±´Á»ú        ¼­½ñ¡§pd-tankan.sys/1959 ÉÑÅÙ¡§0
+ 
+ ¹ÔÆ¬¤Î¡Ö*¡×¤Ï¤½¤Î¼­½ñ¹àÌÜ¤¬¥·¥¹¥Æ¥à¼­½ñ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Æ½üµî¤Ç¤­¤Ê¤¤¤³¤È
+ ¤ò¼¨¤¹¡¥ÍøÍÑ¼Ô¼­½ñ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼­½ñ¹àÌÜ¤Ç¤Ï * ¤ÎÂå¤ï¤ê¤Ë¶õÇò¤òÉ½¼¨¤¹
+ ¤ë¡¥
+ 
+ ¡ÖÏÃ ¤¹¡×¤Ï¼­½ñ¹àÌÜ¤Î¸«½Ð¤·¸ì¤Ç¡¤¸ì´´¡Ê¡ÖÏÃ¡×¡Ë¤È³èÍÑ¸ìÈø¡Ê¡Ö¤¹¡×¡Ë¤È¤ò¶õ
+ ÇòÊ¸»ú¤ÇÊ¬¤±¤ÆÉ½¼¨¤¹¤ë¡¥  
+ 
+ ¡Ö¥µ¹Ô¸ÞÃÊ¸ì´´¡×¤Ï¼­½ñ¹àÌÜ¤ÎÉÊ»ì¤Ç¤¢¤ë¡¥ºÇ¸å¤Î¹àÌÜ¤ÏÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼­½ñÌ¾¡¤
+ ¹àÌÜÈÖ¹æ¡¤ÉÑÅÙ¤Ç¤¢¤ë¡¥
+ 
+ Diced ¤Ï¡¤Dired¤ÈÆ±ÍÍ¤Ë¤·¤Æ»ÈÍÑ¤Ç¤­¤ë¡¥ÄÌ¾ï¤Î¥«¡¼¥½¥ë°ÜÆ°¥³¥Þ¥ó¥É¤ÎÂ¾¤Ë
+ ¼¡¤Î¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ `n'
+      ¥«¡¼¥½¥ë¤ò²¼¤Ë°ÜÆ°¤¹¤ë¡¥
+ `p'
+      ¥«¡¼¥½¥ë¤ò¾å¤Ë°ÜÆ°¤¹¤ë¡¥
+ `a'
+      ¼­½ñ¹àÌÜ¤òÄÉ²Ã¤¹¤ë¡¥
+ `d'
+      ¥«¡¼¥½¥ë¤Î¼­½ñ¹àÌÜ¤òºï½ü»ØÄê¤¹¤ë¡¥ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤Ï¹Ô¤ÎÀèÆ¬ 
+      ¤Ë `D' ¤òÉ½¼¨¤¹¤ë¡¥
+ `u'
+      ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤Îºï½ü»ØÄê¤ò²ò½ü¤¹¤ë¡¥
+ `x'
+      ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤ò¼ÂºÝ¤Ëºï½ü¤¹¤ë¡¥
+ `q'
+      ÊÔ½¸¤ò½ªÎ»¤¹¤ë¡¥ºï½ü¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡¥
+ 
+ 
+ 
+ File: egg  Node: Customization, Prev: ¼­½ñ´ÉÍý, Up: Top, Next: Sun Key map
+ 
+ ¥«¥¹¥¿¥Þ¥¤¥º
+ ************
+ 
+ * Menu:
+ 
+ * global-map::		global-map ¤Î key binding ¤ÎÊÑ¹¹
+ * fence-mode-map:: 	¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * henkan-mode-map::	´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * Roma kana henkan::	¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ 
+ 
+ File: egg  Node: global-map, Prev: Customization, Up: Customization, Next: fence-mode-map
+ 
+ global-map ¤Î key binding ¤ÎÊÑ¹¹
+ ================================
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤ÏÄÌ¾ï»ÈÍÑ¤·¤Æ¤¤¤ëglobal-map¤òÊÑ¹¹¤·¤Æ¤ª¤ê¡¤¸µ¤Îglobal-map¤Ï
+ `si:*global-map*'¤ËÂàÈò¤µ¤ì¤Æ¤¤¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤Îglobal-map¤ÎÊÑ¹¹ÅÀ¤Ï¼¡¤ÎÄÌ¤ê¡¥
+ 
+   1. `self-insert-command'¤ò`egg-self-insert-command'¤ËÊÑ¹¹¤·¤¿¡¥
+   2. `(define-key global-map "\C-\\" 'toggle-egg-mode)'
+      `(define-key ctl-x-map  " " 'henkan-region)'
+      `(define-key global-map "\C-^" 'special-symbol-input)'
+      ¤òÄÉ²Ã¤·¤¿¡¥
+ 
+ 
+ File: egg  Node: fence-mode-map, Prev: global-map, Up: Customization, Next: henkan-mode-map
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ ===================================
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹¤ÏÄÌ¾ï¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É
+ ¤Î keymap ¤Ë¤Ï¡¤ `fence-mode-map' ¤ò»ÈÍÑ¤¹¤ë¡¥¥Ç¥Õ¥©¥ë¥È¤Î key
+ binding ¤Ï¼¡¤ÎÄÌ¤ê¡¥
+ 
+      (define-key fence-mode-map "\C-@" 'henkan-fence-region)
+      (define-key fence-mode-map "\C-a" 'fence-beginning-of-line)
+      (define-key fence-mode-map "\C-b" 'fence-backward-char)
+      (define-key fence-mode-map "\C-c" 'fence-cancel-input)
+      (define-key fence-mode-map "\C-d" 'fence-delete-char)
+      (define-key fence-mode-map "\C-e" 'fence-end-of-line)
+      (define-key fence-mode-map "\C-f" 'fence-forward-char)
+      (define-key fence-mode-map "\C-g" 'fence-cancel-input)
+      (define-key fence-mode-map "\C-h" 'help-command)
+      (define-key fence-mode-map "\C-i" 'undefined)  
+      (define-key fence-mode-map "\C-j" 'undefined)  ;;; LFD
+      (define-key fence-mode-map "\C-k" 'fence-kill-line)
+      (define-key fence-mode-map "\C-l" 'fence-exit-mode)
+      (define-key fence-mode-map "\C-m" 'fence-exit-mode)  ;;; RET
+      (define-key fence-mode-map "\C-n" 'undefined)
+      (define-key fence-mode-map "\C-o" 'undefined)
+      (define-key fence-mode-map "\C-p" 'undefined)
+      (define-key fence-mode-map "\C-q" 'undefined)
+      (define-key fence-mode-map "\C-r" 'undefined)
+      (define-key fence-mode-map "\C-s" 'undefined)
+      (define-key fence-mode-map "\C-t" 'fence-transpose-chars)
+      (define-key fence-mode-map "\C-u" 'undefined)
+      (define-key fence-mode-map "\C-v" 'undefined)
+      (define-key fence-mode-map "\C-w" 'henkan-fence-region)
+      (define-key fence-mode-map "\C-x" 'undefined)
+      (define-key fence-mode-map "\C-y" 'undefined)
+      (define-key fence-mode-map "\C-z" 'eval-expression)
+      (define-key fence-mode-map "\C-|" 'fence-toggle-egg-mode)
+      (define-key fence-mode-map "\C-_" 'jis-code-input)
+      (define-key fence-mode-map " "    'henkan-fence-region-or-single-space)
+      (define-key fence-mode-map "!"	  'fence-insert-self-command)
+      .....
+      .....
+      (define-key fence-mode-map "~"	  'fence-insert-self-command)
+      (define-key fence-mode-map "\177" 'fence-backward-delete-char)
+ 
+ 
+ File: egg  Node: henkan-mode-map, Prev: fence-mode-map, Up: Customization, Next: Roma kana henkan
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ =======================================
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥â¡¼¥É ¤Î key binding ¤ÎÊÑ¹¹¤ÏÄÌ¾ï¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥²¾Ì¾´Á»úÊÑ
+ ´¹¥â¡¼¥É¤Î keymap ¤Ë¤Ï¡¤ `henkan-mode-map' ¤ò»ÈÍÑ¤¹¤ë¡¥default ¤Î 
+ key binding ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
+ 
+      (define-key henkan-mode-map "\C-@" 'henkan-next-kouho)
+      (define-key henkan-mode-map "\C-a" 'henkan-first-bunsetu)
+      (define-key henkan-mode-map "\C-b" 'henkan-backward-bunsetu)
+      (define-key henkan-mode-map "\C-c" 'henkan-quit)
+      (define-key henkan-mode-map "\C-d" 'undefined)
+      (define-key henkan-mode-map "\C-e" 'henkan-last-bunsetu)
+      (define-key henkan-mode-map "\C-f" 'henkan-forward-bunsetu)
+      (define-key henkan-mode-map "\C-g" 'henkan-select-kouho)
+      (define-key henkan-mode-map "\C-h" 'undefined)
+      (define-key henkan-mode-map "\C-i" 'henkan-bunsetu-chijime)
+      (define-key henkan-mode-map "\C-j" 'undefined)
+      (define-key henkan-mode-map "\C-k" 'henkan-kakutei-before-point)
+      (define-key henkan-mode-map "\C-l" 'henkan-kakutei)
+      (define-key henkan-mode-map "\C-m" 'henkan-kakutei)
+      (define-key henkan-mode-map "\C-n" 'henkan-next-kouho)
+      (define-key henkan-mode-map "\C-o" 'henkan-bunsetu-nobasi)
+      (define-key henkan-mode-map "\C-p" 'henkan-previous-kouho)
+      (define-key henkan-mode-map "\C-q" 'undefined)
+      (define-key henkan-mode-map "\C-r" 'undefined)
+      (define-key henkan-mode-map "\C-s" 'undefined)
+      (define-key henkan-mode-map "\C-t" 'undefined)
+      (define-key henkan-mode-map "\C-u" 'undefined)
+      (define-key henkan-mode-map "\C-v" 'undefined)
+      (define-key henkan-mode-map "\C-w" 'undefined)
+      (define-key henkan-mode-map "\C-x" 'undefined)
+      (define-key henkan-mode-map "\C-y" 'undefined)
+      (define-key henkan-mode-map "\C-z" 'undefined)
+      (define-key henkan-mode-map " "    'henkan-next-kouho)
+      (define-key henkan-mode-map "!"	   'henkan-kakutei-and-self-insert)
+      ....
+      ....
+      (define-key henkan-mode-map "~"	   'henkan-kakutei-and-self-insert)
+      (define-key henkan-mode-map "\177" 'henkan-quit)
+ 
+ 
+ File: egg  Node: Roma kana henkan, Prev: henkan-mode-map, Up: Customization, Next: Sun Key map
+ 
+ ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ ========================
+ ¡Ö¤¿¤Þ¤´¡×¤Î¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹ÊýË¡¤Ï¡¤`egg-rk.el'¥Õ¥¡¥¤¥ëÃæ¤Ç
+ ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥¤³¤ÎÄêµÁÊýË¡¤ÏWnn¤Îromkan¤ò´ÊÃ±¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡¥
+ 
+ ## Function: define-egg-mode MODE-STRING FLAG
+      ¤³¤ì¤«¤é`defrule'¤¬ÄêµÁ¤¹¤ë egg-mode ¤òÀë¸À¤¹¤ë¡¥MODE-STRING
+      ¤Ï¤³¤Î¥â¡¼¥É¤ÎÌ¾Á°¤Ç¤¢¤ê¡¤¤³¤Î¥â¡¼¥É¤¬ÁªÂò¤µ¤ì¤¿»þ¤Ë¥â¡¼¥É¥é¥¤¥ó¤ËÉ½¼¨¤µ
+      ¤ì¤ëÊ¸»úÎó¤Ç¤¢¤ë¡¥FLAG¤¬`nil'¤Ç¤Ê¤¤¾ì¹ç¤Ï egg-mode ¤Î½é´ü²½¤ò
+      ¹Ô¤Ê¤¦¡¥
+           	(define-egg-mode "roma-kana" t)
+      ¤Ï¡¤egg-mode ¤È¤·¤Æ `"roma-kana"' ¤òÄêµÁ¤¹¤ë¤³¤È¤òÀë¸À¤¹¤ë¡¥
+      `t' ¤Ï egg-mode `"roma-kana"' ¤ò clear ¤¹¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡¥ 
+      `nil' ¤Î¾ì¹ç¤ÏÄêµÁ¤ÎÄÉ²Ã¤Ç¤¢¤ë¡¥
+ 
+ ## Function: defrule INPUT OUTPUT NEXT
+      Âè£±°ú¿ô¤ÏÆþÎÏÊ¸»úÎó¤ò¡¤Âè£²°ú¿ô¤Ï¤½¤ì¤ËÂÐ¤¹¤ëÊÑ´¹½ÐÎÏÊ¸»úÎó¤ò¼¨¤¹¡¥
+           	(defrule "a" "¤¢")
+      ¤Ï¡¤`a'¤ò"¤¢"¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥¡Ö¤¿¤Þ¤´¡× ¤Ç¤ÏÆþÎÏ¤ÎÂçÊ¸»ú¾®
+      Ê¸»ú¤ò¶èÊÌ¤¹¤ë¤Î¤Ç¡¤¤³¤ÎÄêµÁ¤Ï`A'¤ò"¤¢"¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Ê¤¤¡¥
+ 
+      Âè£³°ú¿ô¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¤Âè£±°ú¿ô¤ÎÆþÎÏ¤¬¤¢¤ë¤È¡¤Âè£²°ú¿ô¤òÊÑ´¹¤Î½ÐÎÏ¤È¤·¡¤
+      ¤µ¤é¤ËÂè£³°ú¿ô¤¬ÆþÎÏ¤È¤·¤Æ¤¢¤Ã¤¿¤â¤Î¤È¤·¤ÆÊÑ´¹¤òÂ³¤±¤ë¡¥
+ 
+           	(defrule  "tch" "¤Ã" "ch")
+      ¤Ï¡¤ÆþÎÏ `tcha'¤ËÂÐ¤·¤Æ "¤Ã" ¤ò½ÐÎÏ¤·¤¿¾å¤Ç¡¤`cha' ¤ÎÊÑ´¹¤ò¹Ô¤Ê
+      ¤¦¡¥
+ 
+           	(defvar aa '("k" "s" "t" "h" "y" "r" "w" "g" "z" "d" "b"
+           			 "p" "c" "f" "j" "v"))
+      ÊÑ¿ô¤ÏÃÍ¤¬Ê¸»úÎó¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¤Ê¸»úÎó¤Î¥»¥Ã¥È¤òÉ½¤¹¡¥¤³¤Î¾ì¹ç¡¤ÊÑ¿ô 
+      `aa' ¤Ï `defrule' ¤ÎÃæ¤Ç¤Ï `k' ... `v' ¤Î¤É¤ì¤«¤òÉ½¤¹
+      ¤³¤È¤Ë¤Ê¤ë¡¥
+           	(defrule '(aa aa) "¤Ã" '(aa))¤³¤Î `defrule' ¤Ï¡¤°ú¿ô¤ÎÃæ¤Ë
+      ¸½¤ì¤ëÊÑ¿ô `aa' ¤òÊÑ¿ô `aa' ¤¬¼è¤ê¤¦¤ëÃÍ¤ÎÊ¸»úÎó¤Ë°ìÀÆ¤ËÃÖ¤­´¹¤¨¤Æ
+      ÆÀ¤é¤ì¤ëÊ¸»úÎó¤¹¤Ù¤Æ¤ËÂÐ¤·¤Æ `defrule' ¤¹¤ë¤³¤È¤òÉ½¤¹¡¥
+           	(defrule "kk" "¤Ã" "k")
+           	(defrule "ss" "¤Ã" "s")
+           	....
+           	(defrule "vv" "¤Ã" "v")
+      ¤ÈÆ±¤¸¡¥
+ 
+      Îã¤¨¤Ð¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ç¿ô»ú¤òÆþÎÏ¤·¤¿»þ¤ËÁ´³Ñ¿ô»ú¤Ç¤Ê¤¯È¾³Ñ¿ô»ú
+      ¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤ò¹Ô¤Ê¤¦¡¥¤Þ¤º`$NEAMCS/lisp/egg-rk.el'¤ò¼«Ê¬ÍÑ
+      ¤Î`egg-rk.el'¤Ë¥³¥Ô¡¼¤·¡¤°Ê²¼¤ÎÉôÊ¬¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤¹¤ë¡¥
+           	(defrule   "1"   "£±")
+           	(defrule   "2"   "£²")
+           	(defrule   "3"   "£³")
+           	(defrule   "4"   "£´")
+           	(defrule   "5"   "£µ")
+           	(defrule   "6"   "£¶")
+           	(defrule   "7"   "£·")
+           	(defrule   "8"   "£¸")
+           	(defrule   "9"   "£¹")
+           	(defrule   "0"   "£°")
+      ¤½¤Îbuffer¤Ç`M-x eval-current-buffer'¤ò¼Â¹Ô¤·¡¤mode-map ¤ò½¤Àµ¤¹¤ë¡¥
+ 
+ ## Command: dump-egg-mode-map MODE-STRING DUMP-FILE-NAME
+      mode-map ¤ò¥Õ¥¡¥¤¥ë¤ËÂàÈò¤¹¤ë¡¥minibuffer ¤Ç ¥×¥í¥ó¥×¥È `EGG Mode:'
+      ¤ËÂÐ¤·¤Æ`roma-kana'¤ò»ØÄê¤¹¤ë¡¥¡ÊSPC¤òÆþÎÏ¤¹¤ë¤Ècomletion¤·¤Þ¤¹¡¥¡Ë
+      ¥×¥í¥ó¥×¥È`Output file name:' ¤ËÂÐ¤·¤Æ¤Ï`egg-romkana-dump.el'¤ò»ØÄê
+      ¤¹¤ë¡¥¤³¤ÎÁàºî¤Çsource file `egg-romkana-dump.el'¤È¤½¤ì¤ò byte
+      compile ¤·¤¿ object file `egg-romkana-dump.elc' ¤¬¤Ç¤­¤ë¡¥
+  
+      ¡ÊÃí°Õ¡ËÌÞÏÀÄ¾ÀÜegg-romkana¤òkanji-load¤·¤Æ¤âÎÉ¤¤¤¬¡¤load¤Ë»þ´Ö¤¬³Ý¤«¤ë¡¥
+      egg-romkana-dump¤Ï¹âÂ®¤Ëload¤Ç¤­¤ë¡¥
+ 
+ 
+ File: egg  Node: Sun Key map, Prev: Customization, Up: Top, Next: ÉÊ»ì
+ 
+ X11¤Ë¤ª¤±¤ë¥­¡¼³ä¤êÅö¤Æ
+ ***********************
+ 
+ sun¾å¤ÇX11¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¡¤`$NEMACS/lisp/egg-keymap.el'¤ò¥í¡¼¥É¤¹¤ë
+ ¤³¤È¤Ë¤è¤ê¡ÊÎã¤¨¤Ð¡¤`.emacs'¤ÎÃæ¤Ç `(load "egg-keymap")'¤ò¼Â¹Ô
+ ¤¹¤ë¤È¡ËSun¤Î¥Õ¥¡¥ó¥¯¥·¥ç¥ó¡¦¥­¡¼¤¬»ÈÍÑ¤Ç¤­¤ë¡¥¥­¡¼³ä¤êÅö¤Æ¤Ï°Ê²¼¤Î¤È¤ª
+ ¤ê¡¥
+ 
+ F1
+      ¥Õ¥¡¥¤¥ëI/O¥â¡¼¥ÉÊÑ¹¹(`change-fileio-code')¡¥F1¤ò²¡¤¹Ëè ¤Ë¡¤JIS ->
+      EUC -> Shift-JIS -> EUC ->..... ¤ÈÊÑ²½¤¹¤ë
+ F2
+      ¼­½ñ¹àÌÜÊÔ½¸(`edit-dict-item')
+ F3
+      JIS¥³¡¼¥ÉÆþÎÏ(`jis-cide-input')
+ F4
+      ¼­½ñÅÐÏ¿(`toroku-region')
+ F5
+      ¥ê¡¼¥¸¥ç¥óÃæ¤ÎÈ¾³Ñ¤òÁ´³Ñ¤ËÊÑ¤¨¤ë(`zenkaku-region')
+ F6
+      ¥ê¡¼¥¸¥ç¥óÃæ¤ÎÁ´³Ñ¤òÈ¾³Ñ¤ËÊÑ¤¨¤ë(`hankaku-region')
+ F7
+      ¥ê¡¼¥¸¥ç¥óÃæ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤ËÊÑ¤¨¤ë(`katakana-region')
+ F8
+      ¥ê¡¼¥¸¥ç¥óÃæ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ¤¨¤ë(`hiragana-region')
+ F9
+      ¥ê¡¼¥¸¥ç¥ó¤Î²¾Ì¾´Á»úÊÑ´¹(`henkan-region')
+ L1
+      buffer¤ÎÆâÍÆ¤ò¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ËÁÞÆþ¤¹¤ë(`insert-buffer')
+ L2
+      ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ò¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ËÁÞÆþ¤¹¤ë(`insert-file')
+ L3
+      ¥ê¡¼¥¸¥ç¥ó¤òÉ¾²Á¤¹¤ë(`eval-region')
+ L4
+      ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤òÉ¾²Á¤¹¤ë(`eval-current-buffer')	
+ L5
+      ¥¦¥¤¥ó¥É¥¦¤ÎÂç¤­¤µ¤òÂç¤­¤¯¤¹¤ë(`enlarge-window')
+ L6
+      ¥¦¥¤¥ó¥É¥¦¤ÎÂç¤­¤µ¤ò¾®¤µ¤¯¤¹¤ë(`shrink-window')
+ L7
+      ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤Î¥Æ¥­¥¹¥È¤ÎÊÑ¹¹¤ò¼è¤ê¾Ã¤¹(`revert-buffer')
+ L8
+      ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤Î¥Æ¥­¥¹¥È¤ÎÊÑ¹¹¤ò¼è¤ê¾Ã¤¹(`revert-buffer')
+ L9
+      ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ÎÀèÆ¬¤Ë¥«¡¼¥½¥ë¤ò¤â¤Ã¤Æ¤¤¤¯(`beggining-of-buffer')
+ L10
+      ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ÎºÇ¸å¤Ë¥«¡¼¥½¥ë¤ò¤â¤Ã¤Æ¤¤¤¯(`end-of-buffer')
+ 
+ 
+ File: egg  Node: ÉÊ»ì, Prev: Sun Key map, Up: Top, Next: ³µÇ°º÷°ú
+ 
+ ÉÊ»ì¤Î°·¤¤¤Ë¤Ä¤¤¤Æ
+ ******************
+ 
+ ¼­½ñÅÐÏ¿¤Ë¤ª¤±¤ëÉÊ»ì¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¡¤pubdic¥Þ¥Í¥¸¥ã¤Ç¤¢¤ëµÌ¤µ¤ó¤¬pubdic»²
+ ²Ã¼Ô¤Ë°¸¤Æ¤¿e-mail¤Î°ìÉô¤ò°Ê²¼¤ËÅ¾ºÜ¤·¤Þ¤¹¡¥»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡¥
+ 
+ Ì¾»ì
+      ¤³¤ì¤Ï¸À¤¦¤Þ¤Ç¤â¤Ê¤¤¤È»×¤¤¤Þ¤¹¡¥¤¿¤À¤·¡¤¸ÇÍ­Ì¾»ì¡¤
+      "¤¹¤ë" ¤¬ÉÕ¤¯¤ÈÆ°»ì¤Ë¤Ê¤ë¤â¤Î¤Ë¤Ï»È¤ï¤Ê¤¤¤Ç²¼¤µ¤¤¡¥
+ Ì¾»ì(¤¹¤ë)
+      "¸¡Æ¤" ¤Î¤è¤¦¤ËÌ¾»ì¤À¤¬¡¤"¤¹¤ë" ¤òÉÕ¤±¤ë¤È
+      Æ°»ì¤Ë¤Ê¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥
+ Æ°»ì
+      ¸ÞÃÊ
+           "½ñ¤«/¤Ê¤¤", "½ñ¤­/¤Þ¤¹", "½ñ¤¯", "½ñ¤±/¤Ð", "½ñ¤³/¤¦"
+           ¤Î¤è¤¦¤Ë¸ÞÃÊ³èÍÑ¤¹¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥ÅÐÏ¿¤¹¤ë»þ¤Ï
+           "½ñ" ¤ò "¤«" ¤À¤±¤ÇÅÐÏ¿¤·¤Þ¤¹¡¥
+      °ìÃÊ(ÂÎ)
+           »È¤ï¤Ê¤¤¤Ç²¼¤µ¤¤¡¥
+      °ìÃÊ(ÈóÂÎ)
+           "Íî¤Á/¤Ê¤¤", "Íî¤Á/¤Þ¤¹", "Íî¤Á¤ë", "Íî¤Á¤ì/¤Ð",
+           "Íî¤Á¤í" ¤Î¤è¤¦¤Ê°ìÃÊ³èÍÑÆ°»ì¤ÎÊÑ²½¤·¤Ê¤¤ÉôÊ¬
+           "Íî¤Á" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+      ¥µÊÑ(¤¹¤ë)
+           "Ã£¤·/¤Ê¤¤", "Ã£¤·/¤Þ¤¹", "Ã£¤¹¤ë", "Ã£¤¹¤ì/¤Ð",
+           "Ã£¤»¤è" ¤Î¤è¤¦¤Ê¥µ¹ÔÊÑ³Ê³èÍÑ¤¹¤ëÆ°»ì¤Ë»È¤¤¤Þ¤¹¡¥
+           "Ã£" ¤ò "¤¿¤Ã" ¤ÇÅÐÏ¿¤·¤Þ¤¹¡¥¸ì´´¤¬Ì¾»ì¤Ç¤¢¤ë¤â¤Î¤Ï
+           Ì¾»ì(¤¹¤ë) ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡¥
+      ¥µÊÑ(¤º¤ë)
+           ´ðËÜÅª¤Ë¾å¤ÈÆ±¤¸¤Ç¤¹¤¬¡¤"ÏÀ¤º¤ë" ¤Î¤è¤¦¤Ë¥¶¹Ô¤Ç
+           ³èÍÑ¤¹¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥
+      ¤½¤ÎÂ¾
+           pd-wnn ¤È´Ø·¸¤·¤Þ¤¹¤¬¡¤»È¤¦É¬Í×¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡¥
+ ·ÁÍÆÆ°»ì
+      ¥À¥Ê·¿
+           "´ÊÃ±¤Ê", "´ÊÃ±¤À" ¤Î¤è¤¦¤ÊÉáÄÌ¤Î·ÁÍÆÆ°»ì¤Î¸ì´´
+           "´ÊÃ±" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥Ì¾»ì¤È¤À¤Ö¤ë¤â¤Î¤âÂ¿¤¤¤Ç¤¹¤¬¡¤
+           ¤½¤¦¤¤¤¦¾ì¹ç¤ÏÎ¾Êý¤ËÅÐÏ¿¤·¤Þ¤¹¡¥
+      ¥È¥¿¥ë·¿
+           "µ£Á³¤È/¤·¤¿", "µ£Á³¤¿¤ë" ¤Î¤è¤¦¤ÊÊ¸¸ìÅª·ÁÍÆÆ°»ì
+           ¤Ë»È¤¤¤Þ¤¹¡¥
+ ·ÁÍÆ»ì
+      "Èþ¤·¤«¤Ã/¤¿", "Èþ¤·¤¯/¤Ê¤¤", "Èþ¤·¤¤", "Èþ¤·¤±¤ì/¤Ð"
+      ¤Î¤è¤¦¤Ê·ÁÍÆ»ì¤Î¸ì´´ "Èþ¤·" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+ Ï¢ÂÎ»ì
+      "¤³¤Î" (¤È¤Ã¤µ¤ËÂ¾¤ÎÎã¤¬»×¤¤Éâ¤«¤Ð¤Ê¤¤)¤Î¤è¤¦¤ËÂÎ¸À¤Ë
+      ¤«¤«¤ë³èÍÑ¤·¤Ê¤¤¸ì¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+ Éû»ì
+      "¤À¤ó¤À¤ó", "¤»¤á¤Æ" ¤Î¤è¤¦¤ËÍÑ¸À¤Ë³Ý¤«¤ë³èÍÑ¤·¤Ê¤¤¸ì¤ò
+      ÅÐÏ¿¤·¤Þ¤¹¡¥
+ ÀÜÂ³»ì
+ ´¶Æ°»ì
+      "¤·¤«¤·", "¤ä¤Ï¤ê", "¤Ø¤¨", "¤Õ¡¼¤ó" ¤Ê¤É¤Ç¤¹¡¥
+ Ã±´Á»ú
+      °ì¤Ä¤Î´Á»ú¤«¤é¹½À®¤µ¤ì¤ë¸ì¤Ç¤â¡¤¤Á¤ã¤ó¤ÈÌ¾»ì¤È¤«ÀÜÈø¸ì¤È¤«
+      »È¤¦¤è¤¦¤Ë¡¥
+ ÀÜÆ¬¸ì
+      "½õ"(´ÆÆÄ,¶µ¼ø¤Ê¤É), "Âç"(ÀëÅÁ,²þ³×¤Ê¤É), "¥¦¥ë¥È¥é" ¤Ê¤É
+ ÀÜÈø¸ì
+      "¼Ô"(Ã´Åö,»¿À®¤Ê¤É), "¶è"(ÉÊÀî,¿·½É¤Ê¤É), "¥Þ¥ó" ¤Ê¤É
+ ½õ¿ô»ì
+      ÀÜÈø¸ì¤È»÷¤Æ¤¤¤ë¤¬¡¤"±ß", "Ç¯" ¤Ê¤É¿ô»ú¤Î¸å¤ËÉÕ¤¯¤â¤Î
+ ¿ô»ì
+      ¸½ºß»ÈÍÑ¤·¤Æ¤¤¤Þ¤»¤ó¡¥
+ 
+ 
+ File: egg  Node: ³µÇ°º÷°ú, Prev: ÉÊ»ì, Up: Top, Next: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ 
+ ³µÇ°º÷°ú
+ ********
+ 
+ 
+ * Menu:
+ 
+ * JSERVER: ÊÑ´¹¥â¡¼¥É.
+ * Nemacs: ³µÀâ.
+ * Wnn: Æ°ºî´Ä¶­.
+ * £±£¶¿ÊÆþÎÏ: ¥Õ¥§¥ó¥¹¥â¡¼¥É.
+ * °ì³ç¼°ÊÑ´¹: °ì³ç¼°.
+ * ¥«¥¿¥«¥ÊÊÑ´¹: ¥«¥¿¥«¥ÊÊÑ´¹.
+ * ²¾Ì¾´Á»úÊÑ´¹: ÊÑ´¹¥â¡¼¥É.
+ * ²¾Ì¾´Á»úÊÑ´¹¥³¥Þ¥ó¥É: ÊÑ´¹¥³¥Þ¥ó¥É.
+ * ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð: ¥µ¡¼¥Ð»ØÄê.
+ * ´Á»úÆþÎÏ: ´Á»úÆþÎÏ.
+ * ´Á»úÊÑ´¹¥â¡¼¥É: ÊÑ´¹¥â¡¼¥É.
+ * ¥·¥¹¥Æ¥à¼­½ñ: ¼­½ñ»ØÄê.
+ * ½é´üÀßÄê: ½é´üÀßÄê.
+ * ¼­½ñ: ¼­½ñ»ØÄê.
+ * ¼­½ñÅÐÏ¿: ¼­½ñÅÐÏ¿.
+ * ¼­½ñÊÔ½¸: ¼­½ñÊÔ½¸.
+ * Á´³ÑÊÑ´¹: Á´³ÑÊÑ´¹.
+ * ÂÐÏÃ¼°´Á»úÆþÎÏ: ÂÐÏÃ¼°.
+ * ¤¿¤Þ¤´: ³µÀâ.
+ * Æ©²á¥â¡¼¥É: Æ©²á¥â¡¼¥É.
+ * Æ°ºî´Ä¶­: Æ°ºî´Ä¶­.
+ * È¾³ÑÊÑ´¹: È¾³ÑÊÑ´¹.
+ * ¤Ò¤é¤¬¤Ê´Á»úÊÑ´¹: ´Á»úÊÑ´¹.
+ * ¤Ò¤é¤¬¤ÊÊÑ´¹: ¤Ò¤é¤¬¤ÊÊÑ´¹.
+ * ÉÑÅÙ¥Õ¥¡¥¤¥ë: ¼­½ñ»ØÄê.
+ * ¥Õ¥§¥ó¥¹: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * ¥Õ¥§¥ó¥¹¥â¡¼¥É: ¥Õ¥§¥ó¥¹¥â¡¼¥É.
+ * ¥ß¥Ë¥Ð¥Ã¥Õ¥¡: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ.
+ * ÍøÍÑ¼Ô¼­½ñ: ¼­½ñ´ÉÍý.
+ * ÍøÍÑ¼Ô¼­½ñ: ¼­½ñ»ØÄê.
+ * ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡: Roma kana henkan.
+ * ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * ¥í¡¼¥Þ»ú´Á»úÊÑ´¹: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹.
+ * ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹.
+ 
+ 
+ File: egg  Node: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú, Prev: ³µÇ°º÷°ú, Up: Top
+ 
+ ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ **************
+ 
+ 
+ * Menu:
+ 
+ * define-egg-mode: Roma kana henkan.
+ * define-egg-mode mode-string: Roma kana henkan.
+ * defrule: Roma kana henkan.
+ * defrule: Roma kana henkan.
+ * disconnect-wnn: ¥µ¡¼¥Ð»ØÄê.
+ * disconnect-wnn: ¥µ¡¼¥Ð»ØÄê.
+ * dump-egg-mode-map: Roma kana henkan.
+ * dump-egg-mode-map: Roma kana henkan.
+ * edit-dict-item: ¼­½ñÊÔ½¸.
+ * edit-dict-item : ¼­½ñÊÔ½¸.
+ * egg-default-startup-file-name: ¼­½ñ»ØÄê.
+ * egg-startup-file-name: ¼­½ñ»ØÄê.
+ * egg-startup-file-search-path: ¼­½ñ»ØÄê.
+ * set-default-sys-dic-directory: ¼­½ñ»ØÄê.
+ * set-default-sys-dic-directory: ¼­½ñ»ØÄê.
+ * set-default-usr-dict-directory: ¼­½ñ»ØÄê.
+ * set-default-usr-dict-directory : ¼­½ñ»ØÄê.
+ * set-egg-fence-mode-format: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * set-egg-fence-mode-format: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * set-egg-henkan-mode-format: ÊÑ´¹¥³¥Þ¥ó¥É.
+ * set-egg-henkan-mode-format: ÊÑ´¹¥³¥Þ¥ó¥É.
+ * set-wnn-host-name: ¥µ¡¼¥Ð»ØÄê.
+ * set-wnn-host-name: ¥µ¡¼¥Ð»ØÄê.
+ * setsysdic: ¼­½ñ»ØÄê.
+ * setsysdic: ¼­½ñ»ØÄê.
+ * setusrdic: ¼­½ñ»ØÄê.
+ * setusrdic: ¼­½ñ»ØÄê.
+ * toggle-egg-code: ¥Õ¥§¥ó¥¹¥â¡¼¥É.
+ * toggle-egg-code: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * toggle-egg-code: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.
+ * toroku-region: ¼­½ñÅÐÏ¿.
+ * toroku-region: ¼­½ñÅÐÏ¿.
+ * wnn-host-name: ¥µ¡¼¥Ð»ØÄê.
+ 
+ 
+ Tag table:
+ Node: Top93
+ Node: ³µÀâ1056
+ Node: Æ°ºî´Ä¶­1840
+ Node: ½é´üÀßÄê3076
+ Node: ¥·¥¹¥Æ¥à3570
+ Node: ¥µ¡¼¥Ð»ØÄê4365
+ Node: ¼­½ñ»ØÄê5250
+ Node: ´Á»úÆþÎÏ8300
+ Node: ÂÐÏÃ¼°8668
+ Node: Æ©²á¥â¡¼¥É9200
+ Node: ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É10002
+ Node: ¥Õ¥§¥ó¥¹¥â¡¼¥É11371
+ Node: ÊÑ´¹¥â¡¼¥É13091
+ Node: ÊÑ´¹¥³¥Þ¥ó¥É14041
+ Node: ¥á¥Ë¥å¡¼ÁªÂò16607
+ Node: °ì³ç¼°17000
+ Node: JIS ÆþÎÏ17303
+ Node: Á´³ÑÊÑ´¹17660
+ Node: È¾³ÑÊÑ´¹18113
+ Node: ¤Ò¤é¤¬¤ÊÊÑ´¹18613
+ Node: ¥«¥¿¥«¥ÊÊÑ´¹19060
+ Node: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹19519
+ Node: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹20106
+ Node: ´Á»úÊÑ´¹20723
+ Node: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ21262
+ Node: ¼­½ñ´ÉÍý21699
+ Node: ¼­½ñÅÐÏ¿21959
+ Node: ¼­½ñÊÔ½¸23521
+ Node: Customization25498
+ Node: global-map25820
+ Node: fence-mode-map26387
+ Node: henkan-mode-map28654
+ Node: Roma kana henkan30840
+ Node: Sun Key map33901
+ Node: ÉÊ»ì35446
+ Node: ³µÇ°º÷°ú37677
+ Node: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú38713
+ 
+ End tag table
diff -arcN emacs-18.55/info/nemacs nemacs-3.3.2/info/nemacs
*** emacs-18.55/info/nemacs	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/info/nemacs	Wed Jun  6 03:15:30 1990
***************
*** 0 ****
--- 1,1849 ----
+ Info file: nemacs,    -*-Text-*-
+ produced by texinfo-format-buffer
+ from file: nemacs.texinfo
+ 
+ 
+ 
+ 
+ File: nemacs  Node: Top, Prev: (dir), Up: (dir), Next: NemacsUsers
+ 
+ * Menu:
+ 
+ * NemacsUsers::	       ¥æ¡¼¥¶¡¼¥º¥Þ¥Ë¥å¥¢¥ë
+ * NemacsLispers::      EmacsLisp¤Î³ÈÄ¥
+ * (EGG)::              ÆüËÜ¸ìÆþÎÏ¥Ä¡¼¥ë
+ 
+ 
+ File: nemacs  Node: NemacsUsers, Up: Top, Next: ³µÀâ
+ 
+ * Menu:
+ 
+ * Overview: ³µÀâ.              Nemacs¤Ã¤Æ¤É¤ó¤Ê¤â¤Î¡©
+ * Jcode: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.     Nemacs¤¬¤É¤¦ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò°·¤¦¤«
+ * Functions: µ¡Ç½.	       NemacsÆÃÍ­¤Îµ¡Ç½
+ * Misc: ¤½¤ÎÂ¾.                Nemacs¤Ë´Ø¤¹¤ë¤µ¤Þ¤¶¤Þ¤Ê¾ðÊó
+ * (EGG)::                      ÆüËÜ¸ìÆþÎÏ¥Ä¡¼¥ë
+ * NemacsLispers::              EmacsLisp¤Î³ÈÄ¥
+ * Commands: ¥³¥Þ¥ó¥É°ìÍ÷.
+ * Concepts: ³µÇ°º÷°ú.
+ * Functions&Variables: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú.
+ 
+ ³Æ¥Î¡¼¥É¤Î²¼°Ì¥Î¡¼¥É
+ 
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ * Jsystems: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.  ¤µ¤é¤ËÆüËÜ¸ì¥³¡¼¥É¤Ë¤Ä¤¤¤Æ
+ * Buffer: ¥Ð¥Ã¥Õ¥¡´ÉÍý.            Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ò¤É¤¦°·¤¦¤«
+ * Input: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.           ÆüËÜ¸ì¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ * Display: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.       ÆüËÜ¸ì¤ÎÉ½¼¨
+ * FileI/O: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.         ÆüËÜ¸ì¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¼è¤ê°·¤¤
+ * Process: ¥×¥í¥»¥¹´ÖÄÌ¿®.         ÆüËÜ¸ì¤ò´Þ¤à¥×¥í¥»¥¹´ÖÄÌ¿®
+ 
+ µ¡Ç½
+ * Jcodefunc: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô. ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ë´Ø¿ô
+ * Jtextfunc: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½. Ê¸½ñÊÔ½¸¤Îµ¡Ç½
+ * Enhancemnet: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥.
+ 
+ ¤½¤ÎÂ¾
+ * Documents: ¥É¥­¥å¥á¥ó¥È.  ¥É¥­¥å¥á¥ó¥È¤Îºß½è
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°.  ¥­¡¼¥Þ¥Ã¥×¤ÎÊÑ¹¹ÅÀ
+ 
+ NemacsLispers
+ * Marker: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * Attribute: Â°À­¤ÎÉÕÍ¿.
+ 
+ GNU Emacs¤«¤é¤ÎÊÑ¹¹ÅÀ¡Ê³ÈÄ¥ÅÀ¤Ï½ü¤­¤Þ¤¹¡Ë
+ * Search:  Ãµº÷.             Àµµ¬É½¸½¤¬³ÈÄ¥¤µ¤ì°ìÉôÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°. ispell-word¤Èinsert-parenthese¤Î¥­¡¼¤¬ÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+ 
+ 
+ File: nemacs  Node: ³µÀâ, Prev: NemacsUsers, Up: NemacsUsers, Next: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ 
+ Nemacs Version 3.3
+ ******************
+ 
+ Nemacs ¤Ï GNU Emacs¤Ë´ð¤Å¤¯ÆüËÜ¸ì¥¨¥Ç¥£¥¿¤Ç¤¹¡¥Nemacs ¤Ï GNU
+ Emacs/Nemacs¤Ø¤Î¥Ñ¥Ã¥Á¤Î·Á¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥ºÇ¿·ÈÇ¤ÏNemacs Ver.3.3.2
+ (1990.6.6) ¤Ç, Nemacs 3.3.1 ¤Ø¤Î¥Ñ¥Ã¥Á¤Ç¤¹¡¥
+ 
+ Nemacs¤ÎÆÃÄ§¤Ï¼¡¤Î£³¤Ä¤Ç¤¹¡¥
+    * Nemacs¤Ï´Á»ú¤«¤Êº®¤¸¤êÊ¸¡¤¤Ä¤Þ¤êÉáÄÌ¤ÎÆüËÜ¸ì¤ÎÊ¸¤ò¥Ð¥Ã¥Õ¥¡¤ËÊÝ»ý¤Ç¤­¡¤¥¹
+      ¥¯¥ê¡¼¥ó¤ËÉ½¼¨¤Ç¤­¤Þ¤¹¡¥¤µ¤é¤ËÆüËÜ¸ìÊ¸¤òÊÔ½¸¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄó¶¡¤·¤Þ¤¹¡¥
+    * ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¡¤¥×¥í¥»¥¹´ÖÄÌ¿®, ¥¹¥¯¥ê¡¼¥óÉ½¼¨¡¤¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤Î¤½¤ì¤¾¤ì
+      ¤Ë¤Ä¤¤¤ÆÆÈÎ©¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤òÀßÄê¤Ç¤­¤Þ¤¹¡¥»ÈÍÑ¤Ç¤­¤ë¥³¡¼¥ÉÂÎ·Ï¤Ï
+      JIS, ¥·¥Õ¥ÈJIS, EUC¤Î£³¤Ä¤Ç¤¹¡¥
+    * ÆüËÜ¸ì¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¥ª¥ê¥¸¥Ê¥ë¤ÎGNU Emacs¤ÈÆ±ÍÍ¤Ë»È¤¨¤Þ¤¹¡¥
+ 
+ Nemacs¤Î¥Á¥å¥È¥ê¥¢¥ë¤Ï¥³¥Þ¥ó¥É`C-h T' (*help-with-tutorial-for-nemacs*)
+ ¤Çµ¯Æ°¤Ç¤­¤Þ¤¹¡¥Nemacs¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï*nemacs-version*¤Ç¡¤ºÇ¶á¤ÎÊÑ¹¹ÅÀ¤Ï
+ *view-nemacs-news*¤ÇÃÎ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+ 
+ ¥³¥Þ¥ó¥É¡§
+ ## Command: help-with-tutorial-for-nemacs
+      Nemacs¤ÎÆüËÜ¸ìÈÇ¥Á¥å¥È¥ê¥¢¥ë¤òµ¯Æ°¤¹¤ë¡¥
+ ## Command: view-nemacs-news
+      Nemacs¤ÎºÇ¿·¤ÎÊÑ¹¹ÅÀ¤òÉ½¼¨¤¹¤ë.
+ ## Command: nemacs-version
+      Nemacs¤Î¥Ð¡¼¥¸¥ç¥ó¤òÉ½¼¨¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Prev: ³µÀâ, Up: NemacsUsers, Next: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+ 
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ÎÂÎ·Ï
+ **********************
+ 
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¤ÆüËÜ¸ì¥â¡¼¥É¤ÇÆüËÜ¸ì¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ì¥â¡¼
+ ¥É¤Ë¤¹¤ë¤Ë¤Ï¡¤¥³¥Þ¥ó¥É`C-x C-k t'¡Ê*toggle-kanji-flag*¡Ë¤ÇÊÑ¿ô
+ `kanji-flag'¤ò `t' ¤Ë¤·¤Þ¤¹¡¥ÊÑ¿ô`kanji-flag'¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¤ÏÊÑ¿ô
+ `default-kanji-flag'¤ËÊÝ»ý¤µ¤ì¡¤¥³¥Þ¥ó¥É`C-x C-k T'
+ ¡Ê*toggle-default-kanji-flag*¡Ë¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥
+ 
+ Nemacs ¤Ï£³¼ïÎà¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥»ÈÍÑ¤Ç¤­
+ ¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ÏJIS, ¥·¥Õ¥ÈJIS, EUC¤Ç¤¹¡¥ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Î
+ ¤³¤È¤ò´Á»ú¥³¡¼¥É¡¤¤¢¤ë¤¤¤ÏÃ±¤Ë¥³¡¼¥É¤È¸Æ¤Ö¤³¤È¤¬¤¢¤ê¤Þ¤¹¡¥Nemacs¤Ï¡¤ÆüËÜ
+ ¸ìÊ¸½ñ¤ÎÆâÉôÉ½¸½¡Ê¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¡Ë¤È¤·¤ÆEUC¥³¡¼¥É¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ÄêµÁ:
+ *¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É*
+      Nemacs¤¬¥Ð¥Ã¥Õ¥¡¤ÎÆâÉôÉ½¸½¤È¤·¤ÆÍÑ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¡ÊEUC¡Ë
+ *¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*
+      Ê¸½ñ¥Õ¥¡¥¤¥ë¤ÇÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+ *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*
+      Nemacs¤È³°Éô¥×¥í¥»¥¹¤ÎÄÌ¿®¤ËÍÑ¤¤¤é¤ì¤ë¥³¡¼¥ÉÂÎ·Ï
+ *¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É*
+      Nemacs¤¬Ã¼ËöÉ½¼¨ÍÑ¤ËÁ÷¿®¤¹¤ë¥³¡¼¥ÉÂÎ·Ï
+ *¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É*
+      Nemacs¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+ 
+ ÊÑ¿ô:
+ ## Local Variable: kanji-flag
+      nil
+           ÆüËÜÊ¸»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+      t
+           ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ ## Global Variable: default-kanji-flag
+      kanji-flag¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: toggle-kanji-flag
+      `kanji-flag'¤ÎÃÍ¤ò¡¤`t'¤«¤é`nil'¡¤`nil'¤«¤é`t'¤ËÀÚÂØ
+      ¤¨¤ë¡¥
+ ## Command: toggle-default-kanji-flag
+      `default-kanji-flag'¤ÎÃÍ¤ò¡¤`t'¤«¤é`nil'¡¤`nil'¤«¤é
+      `t'¤ËÀÚÂØ¤¨¤ë¡¥
+ 
+ * Menu:
+ 
+ * Jsystems: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.  ¤µ¤é¤ËÆüËÜ¸ì¥³¡¼¥É¤Ë¤Ä¤¤¤Æ
+ * Buffer: ¥Ð¥Ã¥Õ¥¡´ÉÍý.            Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ò¤É¤¦°·¤¦¤«
+ * Input: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.	   ÆüËÜ¸ì¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ * Display: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.       ÆüËÜ¸ì¤ÎÉ½¼¨
+ * FileI/O: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.	   ÆüËÜ¸ì¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¼è¤ê°·¤¤
+ * Process: ¥×¥í¥»¥¹´ÖÄÌ¿®.	   ÆüËÜ¸ì¤ò´Þ¤à¥×¥í¥»¥¹´ÖÄÌ¿®
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï, Prev: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: ¥Ð¥Ã¥Õ¥¡´ÉÍý
+ 
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+ ====================
+ 
+ ÄÌ¿®ÍÑÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ÏJIS (ÆüËÜ¹©¶Èµ¬³Ê¡Ë6226¤ÇÄê¤á¤é¤ì¤Æ¤¤¤Þ¤¹¤¬¡¤¸½
+ ºß°Ê²¼¤Î£³¼ïÎà¤Î¥³¡¼¥ÉÂÎ·Ï¤¬¶¦Â¸¤·¤Æ»ÈÍÑ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+    * 7bit JIS ¥³¡¼¥É
+    * 8bit ¥·¥Õ¥ÈJIS ¥³¡¼¥É
+    * 8bit EUC ¥³¡¼¥É
+ 
+ JIS¥³¡¼¥É¤Ï£·¥Ó¥Ã¥È¤Ç¤¢¤ê¡¤¥Í¥Ã¥È¥ï¡¼¥¯·ÐÍ³¤ÎÄÌ¿®¥×¥í¥»¥¹¡ÊÅÅ»Ò¥á¥¤¥ë¤Ê
+ ¤É¡Ë¤Ï£¸¥Ó¥Ã¥È¤òÄÌ¤µ¤Ê¤¤¤³¤È¤¬Â¿¤¤¤¿¤á¡¤¥Í¥Ã¥È¥ï¡¼¥¯·ÐÍ³¤ÇÂ¾¤Î·×»»µ¡¤ÈÄÌ
+ ¿®¤ò¹Ô¤Ê¤¦¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ËÂ¿ÍÑ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¤Þ¤¿¡¤·×»»µ¡¤ÈÆüËÜ¸ìÃ¼Ëö´Ö
+ ¤Î¥·¥ê¥¢¥ë¥é¥¤¥óÄÌ¿®¤Ë¤â¹­¤¯ÍÑ¤¤¤é¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É¤ÈEUC¥³¡¼¥É¤Ï¡¤ÆüËÜ¸ì¤ò¥µ¥Ý¡¼¥È¤¹¤ëOS¤Î¤Û¤È¤ó¤É¤Ë¤ª¤¤¤Æ¡¤
+ Ê¸½ñ¥Õ¥¡¥¤¥ë¤Î¥³¡¼¥É¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÆâÉôÉ½¸½¤È¤·¤Æ»È¤ï¤ì¤Æ
+ ¤¤¤Þ¤¹¡¥
+ 
+ ¤Ä¤Þ¤ê¡¤JIS¥³¡¼¥É¤ÎÅÅ»Ò¥á¥¤¥ë¤ò¼õ¤±¼è¤ê¡¤¤½¤ì¤ò¥Õ¥¡¥¤¥ë¤Ë¤·¤Þ¤¦¤¿¤á¤Ë¥·
+ ¥Õ¥ÈJIS¤ËÊÑ´¹¤·¡¤¤µ¤é¤ËÃ¼Ëö¤ËÉ½¼¨¤¹¤ë¤¿¤á¤Ë¤Þ¤¿JIS¥³¡¼¥É¤ËÌá¤¹¤È¤¤¤Ã¤¿Áà
+ ºî¤¬Æü¾ïÅª¤Ë¹Ô¤Ê¤ï¤ì¤ë¤ï¤±¤Ç¤¹¡¥¤³¤Î¤è¤¦¤Ê¸½¼Â¤ËÂÐ±þ¤¹¤ë¤¿¤á¡¤Nemacs¤Ç¤Ï
+ ¼¡¤Î£´¼ïÎà¤Î½èÍý¤ËÂÐ¤·¤ÆÆÈÎ©¤Î¥³¡¼¥É¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+ 
+    * ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
+    * ¥×¥í¥»¥¹´ÖÄÌ¿®
+    * ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨
+    * ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ 
+ ¤³¤ì¤é¤Î½èÍý¤Ë¤½¤ì¤¾¤ì¤É¤Î¥³¡¼¥É¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¡¤`C-x C-k C'
+ (*list-kanji-code*)¤Þ¤¿¤Ï`C-x C-k c' (*list-kanji-code-briefly*)¤ÇÃÎ¤ë¤³
+ ¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: list-kanji-code
+      `*Kanji Codes*'¤È¤¤¤¦¥Ð¥Ã¥Õ¥¡¤òºî¤ê¡¤¤½¤³¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ëÊÑ
+      ¿ô¤òÉ½¼¨¤¹¤ë¡¥
+ ## Command: list-kanji-code-briefly
+      ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ëÊÑ¿ô¤òÉ½¼¨¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ¥Ð¥Ã¥Õ¥¡´ÉÍý, Prev: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: ¥Ð¥Ã¥Õ¥¡À¸À®
+ 
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡
+ ================
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¤£²¥Ð¥¤¥È¤ÎÆüËÜ¸ìÊ¸»ú¤ÈASCII¤Î¤è¤¦¤Ê£±¥Ð¥¤¥ÈÊ¸»ú¤¬
+ ¶¦Â¸¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸»ú¤È¤ÏEUC¡¤JIS¡¤¥·¥Õ¥ÈJIS¤Î¤¤¤º¤ì¤«¤Î¥³¡¼¥ÉÂÎ·Ï¤Ë
+ ´Þ¤Þ¤ì¤Æ¤¤¤ëÊ¸»ú¤ò»Ø¤·¤Þ¤¹¡¥£±¥Ð¥¤¥ÈÊ¸»ú¤òalphanumerics¤È¸Æ¤Ó¤Þ¤¹¡¥¡ÊÃí
+ °Õ¡§£²¥Ð¥¤¥ÈÆüËÜ¸ìÊ¸»úÃæ¤Î±Ñ¿ô»ú¤Èalphanumerics¤ÏÊÌ¤Î¤â¤Î¤Ç¤¹¡¥¡Ë
+ 
+ * Menu:
+ 
+ * Internal:	 ÆâÉôÉ½¸½.  Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï¤É¤¦É½¸½¤µ¤ì¤ë¤«
+ * BufferGen: 	¥Ð¥Ã¥Õ¥¡À¸À®. ¥Ð¥Ã¥Õ¥¡À¸À®»þ¤Ë²¿¤ò¤¹¤ë¤«
+ 
+ 
+ File: nemacs  Node: ÆâÉôÉ½¸½, Prev: ¥Ð¥Ã¥Õ¥¡´ÉÍý, Up: ¥Ð¥Ã¥Õ¥¡´ÉÍý, Next: ¥Ð¥Ã¥Õ¥¡À¸À®
+ 
+ ÆüËÜ¸ìÊ¸»ú¤ÎÆâÉôÉ½¸½
+ --------------------
+ 
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï£¸¥Ó¥Ã¥ÈÊ¸»ú¤Î¥¢¥ì¥¤¤È¤·¤ÆÉ½¸½¤µ¤ì¤Þ¤¹¡¥alphanumeric¤Ï
+ £¸¥Ó¥Ã¥È¤ÇÉ½¤µ¤ì¡¤ÆüËÜ¸ìÊ¸»ú¤Î¥³¡¼¥É¤Ï£²¤Ä¤ÎÏ¢Â³¤¹¤ë£¸¥Ó¥Ã¥È¤òÍÑ¤¤¤ÆÉ½¤µ
+ ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ alphanumeric ¤ÎÆâÉôÉ½¸½¤Ï`0XXXXXXX'¡Êalphanumeric£±Ê¸»ú¤Ï£·¥Ó¥Ã¥È¤Ç
+ É½¸½¤Ç¤­¤ë¡Ë¡¤ÆüËÜ¸ìÊ¸»ú¤ÎÆâÉôÉ½¸½¤Ï`1XXXXXXX 1XXXXXXX'¤Ç¤¹¡¥
+ 
+ 
+ File: nemacs  Node: ¥Ð¥Ã¥Õ¥¡À¸À®, Prev: ÆâÉôÉ½¸½, Up: ¥Ð¥Ã¥Õ¥¡´ÉÍý, Next: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ 
+ ¥Ð¥Ã¥Õ¥¡À¸À®
+ ------------
+ 
+   ¿·µ¬¥Ð¥Ã¥Õ¥¡À¸À®»þ¤Ë¤Ï¡¤Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-flag'¤ËÊÑ¿ô
+ `default-kanji-flag'¤ÎÃÍ¤òÀßÄê¤·¤Þ¤¹.
+ 
+ 
+ ÊÑ¿ô`kanji-flag'¤¬ `t'¤Î»þ¡¤¤Ä¤Þ¤ê¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤¤ÆüËÜ¸ì¤òÉ½¼¨¤¹¤ë»þ¤Ë
+ ¤Ï, ¥â¡¼¥É¥é¥¤¥ó¤Î±¦Ã¼¤Ë°Ê²¼¤Î¤è¤¦¤Ê´Á»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬¸½¤ì¤Þ¤¹¡¥
+ 
+      --**-NEmacs: Nemacs.text (Text)--Top-- [-JJN]---
+                                              ^^^^
+ 
+ É½¼¨¤µ¤ì¤ë¥³¡¼¥É¤Ïº¸¤«¤é½ç¤Ë
+ kanji-fileio-code
+      ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥³¡¼¥É¡Ê*Note ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ::¡Ë
+ kanji-input-code
+      ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥É¡Ê*Note ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ::¡Ë
+ kanji-display-code
+      Ã¼ËöÉ½¼¨¤ËÍÑ¤¤¤Æ¤¤¤ë¥³¡¼¥É¡Ê*Note ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨::¡Ë
+ process-kanji-code
+      ¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤È¤ÎÄÌ¿®¤ËÍÑ¤¤¤Æ¤¤¤ë¥³¡¼¥É¡Ê*Note ¥×¥í¥»¥¹´ÖÄÌ¿®::¡Ë
+ ¤Ç¤¹¡¥
+ 
+ ¤Þ¤¿¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï¤½¤ì¤¾¤ì
+ -
+      Ì¤ÀßÄê
+ N
+      ÌµÊÑ´¹
+ J
+      JIS¥³¡¼¥É
+ S
+      ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ E
+      EUC¥³¡¼¥É
+ ¤òÉ½¤·¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Local Variable: kanji-flag
+      nil
+           ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+      t
+           ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ ## Global Variable: default-kanji-flag
+      kanji-flag¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ.
+ 
+ 
+ File: nemacs  Node: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ, Prev: ¥Ð¥Ã¥Õ¥¡´ÉÍý, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨
+ 
+ ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ ==============
+ 
+ ¥­¡¼¥Ü¡¼¥É¤«¤éÆüËÜ¸ì¤òÆþÎÏ¤¹¤ë¤Ë¤Ï¡¤£³¼ïÎà¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Î¤¦¤Á°ì¤Ä¤ò
+ »È¤¤¤Þ¤¹¡¥¤É¤Î¥³¡¼¥É¤ò»È¤¤¤¿¤¤¤«¤Ï¤¢¤é¤«¤¸¤áNemacs¤Ë¶µ¤¨¤Æ¤ä¤ëÉ¬Í×¤¬¤¢¤ê
+ ¤Þ¤¹¡¥¤³¤ì¤Ï¥³¥Þ¥ó¥É*set-kanji-input-code*¤ò¸Æ¤Ö¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤Ê
+ ¤¨¤Þ¤¹¡¥`C-x C-k i'¡Ê¥³¥Þ¥ó¥É*change-input-code*¡Ë¤ò»È¤¦¤³¤È
+ ¤â¤Ç¤­¤Þ¤¹¡¥
+ 
+ 
+ ÁªÂò¤·¤¿¥³¡¼¥É¤Ï`kanji-input-code'¤ÎÃÍ¤È¤·¤ÆÊÝ»ý¤µ¤ì¡¤Nemacs¤ÏÆþÎÏ¤ò¤½¤Î
+ ¥³¡¼¥É¤À¤È»×¤Ã¤Æ¼õ¤±¼è¤ê¡¤ÆâÉô¥³¡¼¥É¡ÊEUC¡Ë¤ËÊÑ´¹¤·¤Þ¤¹¡¥£±¤Ä¤ÎÆüËÜ¸ìÊ¸
+ »ú¤Ï£²¥Ð¥¤¥È¤ÇÉ½¸½¤µ¤ì¤ë¤Î¤Ç¡¤Nemacs¤ÏÆüËÜ¸ì¥³¡¼¥É¤ÎºÇ½é¤Î£±¥Ð¥¤¥È¤ò¼¡¤Î
+ ¥Ð¥¤¥È¤¬Íè¤ë¤Þ¤Ç¼è¤Ã¤Æ¤ª¤­¡¤£²¥Ð¥¤¥ÈÂ·¤Ã¤¿¤È¤³¤í¤ÇÆâÉô¥³¡¼¥É¤ËÊÑ´¹¤·¤Æ¥Ð¥Ã
+ ¥Õ¥¡¤ËÁÞÆþ¤·¤Þ¤¹¡¥
+ 
+ JIS¥³¡¼¥É¤ò»È¤¦»þ¤Ë¤Ï¡¤£²¼ïÎà¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¡ÊÄÌ¾ï` ESC $
+ @ '¤È ` ESC ( J '¤ò»È¤¤¤Þ¤¹¡Ë¤Ë¤è¤Ã¤Æ¡¤ÆüËÜ¸ìÊ¸»ú¤Èalphanumeric¤ÎÀÚÂØ
+ ¤¨¤ò¹Ô¤Ê¤¤¤Þ¤¹.  ¤³¤ì¤é¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤Ï¤½¤ì¤¾¤ì¥³¥Þ¥ó¥É
+ *kanji-jis-start*¤È *kanji-jis-end*¤òµ¯Æ°¤¹¤ë¥­¡¼¥·¡¼¥¯¥¨¥ó¥¹¤Ç¤¹¡¥
+ 
+ ¥³¥Þ¥ó¥É*jis-code-input*¤ò¸Æ¤Ö¤È¡¤16¿ÊÉ½¸½¤ÎJIS¥³¡¼¥É¤Ë¤è¤ëÆþÎÏ¤¬¤Ç¤­
+ ¤Þ¤¹¡¥¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ë¥³¡¼¥É¤òÆþÎÏ¤·¤Æ`RET'¥­¡¼¤ò²¡¤·¤Æ²¼¤µ¤¤¡¥¥Ý¥¤¥ó
+ ¥È¤Î°ÌÃÖ¤ËÂÐ±þ¤¹¤ëÊ¸»ú¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Global Variable: kanji-input-code
+      Nemacs¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2
+           JIS¥³¡¼¥É
+      3
+           EUC¥³¡¼¥É
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-kanji-input-code CODE
+      kanji-input-code¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï¡¤
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: kanji-jis-start
+      ¥Õ¥é¥°`kanji-JIS-flag'¤ò`t'¤Ë¤¹¤ë¡¥
+ ## Command: kanji-jis-end
+      ¥Õ¥é¥°`kanji-JIS-flag'¤ò`nil'¤Ë¤¹¤ë¡¥
+ ## Command: change-input-code
+      `kanji-input-code'¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥ NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµ
+      ÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ ## Command: jis-code-input
+      jis¥³¡¼¥É¤Ë¤è¤ëÄ¾ÀÜÆþÎÏ¡¥
+ 
+ 
+ File: nemacs  Node: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨, Prev: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
+ 
+ ¥Ç¥£¥¹¥×¥ì¥¤¤Ø¤ÎÉ½¼¨
+ ====================
+ 
+ Nemacs¤Ï¡¤ÊÑ¿ô`kanji-display-code'¤ÎÃÍ¤Ç»ØÄê¤µ¤ì¤¿¥³¡¼¥É¤ËÆüËÜ¸ìÊ¸»ú¤òÊÑ
+ ´¹¤·¤Æ¥Ç¥£¥¹¥×¥ì¥¤¤ËÁ÷¤ê¤Þ¤¹¡¥ÊÑ¿ô`kanji-display-code'¤Ï¥³¥Þ¥ó¥É
+ *set-kanji-display-code*¤ò¸Æ¤Ö¤³¤È¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥`C-x C-k d'
+ (*change-display-code*)¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¤Î¥Õ¥©¥ó¥È¤È¤·¤Æalphanumeric¤Î¥Õ¥©¥ó¥È¤ÈÆ±¤¸¹â¤µ¤Ç£²ÇÜ
+ ¤ÎÉý¤ò»ý¤Ä¤â¤Î¤ò»È¤¤¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤£²¥Ð¥¤¥È¥³¡¼¥É¤Ï£±¥Ð¥¤¥È¥³¡¼¥É¤Î¤Á¤ç¤¦
+ ¤É£²ÇÜ¤ÎÉý¤ò»ý¤Ä¤ï¤±¤Ç¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Global Variable: kanji-display-code
+      Nemacs¤¬Ã¼ËöÉ½¼¨ÍÑ¤ËÁ÷¿®¤¹¤ë¥³¡¼¥ÉÂÎ·Ï
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2
+           JIS¥³¡¼¥É
+      3
+           EUC¥³¡¼¥É
+ ## Global Variable: to-ascii-display
+      ¡ÊJIS¥³¡¼¥É¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë¥Ç¥£¥¹¥×¥ì¥¤¤ËASCIIÊ¸»ú¤òÁ÷¤ë¤è
+      ¤¦¤ËÀÚÂØ¤¨¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ ## Global Variable: to-kanji-display
+      ¡ÊJIS¥³¡¼¥É¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë¥Ç¥£¥¹¥×¥ì¥¤¤ËÆüËÜ¸ìÊ¸»ú¤òÁ÷¤ë
+      ¤è¤¦¤ËÀÚÂØ¤¨¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-kanji-display-code CODE
+      `kanji-display-code'¤òCODE¤ËÀßÄê¤¹¤ë.
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: change-display-code
+      `kanji-display-code'¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥ NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0
+      ¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ ## Command: x-set-kfont
+      X window¤Ç»ÈÍÑ¤¹¤ëÆüËÜ¸ìÊ¸»ú¥Õ¥©¥ó¥È¤òÀßÄê¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, Prev: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: ¥×¥í¥»¥¹´ÖÄÌ¿®
+ 
+ ¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß½ñ¤­
+ ==================
+ 
+ Nemacs¤Î³Æ¥Ð¥Ã¥Õ¥¡¤Ï£²¤Ä¤ÎÊÑ¿ô`kanji-flag'¤È`kanji-fileio-code'¤ò»ý¤Á¤Þ
+ ¤¹.  £±¤Ä¤á¤Î`kanji-flag'¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤¬ÆüËÜ¸ìÊ¸»ú¤ò´Þ¤à¤«¤É¤¦¤«¤ò¼¨¤·
+ ¤Þ¤¹¡¥¤Ä¤Þ¤ê`kanji-flag'¤¬nil¤Ê¤é¤Ð¡¤ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¤¬¤¢¤é¤ï¤ì¤Ê¤¤¤È
+ »×¤¤¡¤´ðËÜÅª¤ËGNU Emacs¤ÈÆ±¤¸¤è¤¦¤Ë¿¶Éñ¤¤¤Þ¤¹.¤³¤Î¾ì¹ç¤Ë¤ÏNemacs¤òÍÑ¤¤¤Æ
+ £¸¥Ó¥Ã¥È¥Ç¡¼¥¿¤ÎÊÔ½¸¤¬¤Ç¤­¤Þ¤¹¡¥
+ 
+ £²¤Ä¤á¤ÎÊÑ¿ô`kanji-fileio-code'¤Ï¡¤ Nemacs¤¬¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß½ñ¤­¤Ë»È¤¦ÆüËÜ
+ ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò¼¨¤·¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Ï´Ø¿ô*set-kanji-fileio-code*¤ä
+ *change-fileio-code*(`C-x C-k f')¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡¥¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï
+ `default-kanji-fileio-code'¤ËÊÝ»ý¤µ¤ì¡¤´Ø¿ô
+ `set-default-fileio-code',`change-default-fileio-code'(`C-x C-k F')¤Ë¤è¤Ã
+ ¤ÆÊÑ¹¹²ÄÇ½¤Ç¤¹¡¥
+ 
+ Nemacs¤Ï¥Õ¥¡¥¤¥ë¤òÆÉ¤à»þ¤Ë¤Ï¥Õ¥¡¥¤¥ë¤¬`kanji-fileio-code'¤Ë¤è¤Ã¤Æ»ØÄê¤µ
+ ¤ì¤ë¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤ÆÆÉ¤ß¹þ¤ß¡¤¤Þ¤¿¥Õ¥¡¥¤¥ë¤ËÊ¸½ñ¤ò½ñ¤­½Ð¤¹
+ Á°¤Ë¤ÏÊ¸½ñ¤ò`kanji-fileio-code'¤Ç»ØÄê¤µ¤ì¤ë¥³¡¼¥É¤ËÊÑ´¹¤·¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Local Variable: kanji-flag
+      nil
+           ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+      t
+           ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ ## Local Variable: kanji-fileio-code
+      ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥½¡¼¥¹¡¿¥¿¡¼¥²¥Ã¥È´Á»ú¥³¡¼¥É¡¥¥Õ¥¡¥¤¥ëÆþÎÏ»þ¤Ë
+      ¤Ï¡¤`kanji-expected-code'¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+      nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Global Variable: default-kanji-fileio-code
+      ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-fileio-code'¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+      	nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Global Variable: to-ascii-fileio
+      ASCIIÊ¸»ú¤òÁªÂò¤¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡ÊJIS¥³¡¼¥É¤¬Áª
+      ¤Ð¤ì¤Æ¤¤¤ë»þ¤Î¤ßÍ­¸ú¡Ë
+ ## Global Variable: to-kanji-fileio
+      ÆüËÜ¸ìÊ¸»ú¤òÁªÂò¤¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡ÊJIS¥³¡¼¥É¤¬Áª
+      ¤Ð¤ì¤Æ¤¤¤ë»þ¤Î¤ßÍ­¸ú¡Ë
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-kanji-fileio-code CODE
+      `kanji-fileio-code'¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¡¥
+      	nil
+           Ì¤ÀßÄê
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: change-fileio-code
+      `kanji-fileio-code'¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ
+      ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ ## Command: set-default-fileio-code CODE
+      `default-kanji-fileio-code'¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º¤ì
+      ¤«¡¥
+      	nil
+           Ì¤ÀßÄê
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: change-default-fileio-code
+      `default-kanji-fileio-code'¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥ NIL¡ÊÌ¤ÀßÄê¡Ë
+      ¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ 
+ * Menu:
+ 
+ * FileInput:	 ¥Õ¥¡¥¤¥ëÆþÎÏ.  ÆþÎÏ»þ¤Ë¥³¡¼¥ÉÂÎ·Ï¤ò¤É¤¦·è¤á¤ë¤«.
+ * FileOutput:   ¥Õ¥¡¥¤¥ë½ÐÎÏ. ½ÐÎÏ»þ¤Ë²¿¤ò¤¹¤ë¤«.
+ 
+ 
+ File: nemacs  Node: ¥Õ¥¡¥¤¥ëÆþÎÏ, Prev: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, Up: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, Next: ¥Õ¥¡¥¤¥ë½ÐÎÏ
+ 
+ ¥Õ¥¡¥¤¥ëÆþÎÏ
+ ------------
+ 
+ ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-flag'¤ÎÃÍ¤¬t¤Î»þ¤Ï¡¤Nemacs¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤Þ
+ ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï´Á»ú¥³¡¼¥É¤ò´Þ¤à¤³¤È¤ò´üÂÔ¤·¤Þ¤¹¡¥Nemacs¤Ï£³¼ïÎà¤Î´Á»ú¥³¡¼
+ ¥É¤òÃÎ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¤ÆþÎÏ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬£³¤Ä¤Î¤¦¤Á¤Î¤É¤Î¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ
+ ¤¤¤ë¤«¤òÄ´¤Ù¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥³¡¼¥É¤ò¤½¤Î¥Õ¥¡
+ ¥¤¥ë¤Î*¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*¤È¸Æ¤Ó¤Þ¤¹¡¥
+ 
+ Nemacs¤ÏÊÑ¿ô`kanji-expected-code'¤ÈÊÑ¿ô `kanji-fileio-code'¤Ë¤·¤¿¤¬¤Ã¤Æ*
+ ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*¤ò·èÄê¤·¤Þ¤¹¡¥¤³¤ì¤é¤ÎÊÑ¿ô¤Ï´Ø¿ô
+ *set-kanji-expected-code*¤È´Ø¿ô*set-kanji-fileio-code*¤Ë¤è¤Ã¤ÆÀßÄê¤¹¤ë¤³
+ ¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+ 
+ *¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æ·è¤á¤é¤ì¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô`kanji-expected-code'¤¬ `nil' ¤Ç¤â`t' ¤Ç¤â¤Ê¤±¤ì¤Ð¡¤¤½¤ÎÃÍ¤¬*¥Õ¥¡¥¤
+ ¥ë´Á»ú¥³¡¼¥É*¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô`kanji-expected-code'¤¬ `nil' ¤Ç¤«¤ÄÊÑ¿ô`kanji-fileio-code'¤¬ `nil' 
+ °Ê³°¤Ê¤é¤Ð¡¤`kanji-fileio-code'¤ÎÃÍ¤¬*¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*¤È¤Ê¤ê¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô`kanji-expected-code'¤¬ `t'¡¤¤¢¤ë¤¤¤Ï`kanji-expected-code'¤È 
+ `kanji-fileio-code' ¤¬Î¾Êý¤È¤â `nil' ¤Ê¤é¤Ð¡¤Nemacs¤Ï¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¡¤»È
+ ¤ï¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¤ò¿äÂ¬¤·¡¤¤½¤ì¤ò*¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É*¤È¤·¤Þ¤¹¡¥
+ 
+ ¤³¤ÎºÝ`kanji-expected-code'¤¬`nil'¤Ê¤é¤Ð¡¤¿äÂ¬¤·¤¿¥³¡¼¥É¤ò
+ `kanji-fileio-code'¤ËÀßÄê¤·¤Þ¤¹¡¥ÊÑ¿ô`kanji-fileio-code'¤ÎÃÍ¤È¤·¤Æ²ÄÇ½¤Ê
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥ 
+ nil
+      ÌµÀßÄê
+ 0
+      ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¤ÈÆ±¤¸¡ÊÌµÊÑ´¹¡Ë
+ 1
+      ¥·¥Õ¥ÈJIS
+ 2
+      JIS
+ 3
+      EUC
+ 
+ * Menu:
+ 
+ * File-insertion: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ. ´ûÂ¸¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤¹¤ë¾ì¹ç¤Î¥³¡¼¥É
+ * Read-in: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß. ¥³¡¼¥ÉÂÎ·Ï¤ò¤òÆÉ¤ß¹þ¤ß»þ¤Ë»ØÄê¤¹¤ë
+ * Find-new-file: ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ. ¥Õ¥¡¥¤¥ëºîÀ®»þ¤Î¥³¡¼¥É
+ 
+ 
+ File: nemacs  Node: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ, Prev: ¥Õ¥¡¥¤¥ëÆþÎÏ, Up: ¥Õ¥¡¥¤¥ëÆþÎÏ, Next: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß
+ 
+ ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ
+ ..............
+ 
+ ´ûÂ¸¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥Õ¥¡¥¤¥ë¤ò*insert-file*¤Ê¤É¤ÇÁÞÆþ¤¹¤ë»þ¤Ë¤Ï¡¤Nemacs ¤Ï¤Þ
+ ¤º¤½¤Î¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-fileio-code' ¤¬ `nil' °Ê³°¤ÎÍ­¸ú¤ÊÃÍ¤Ç¤¢¤ë¤«
+ ¤É¤¦¤«¤òÄ´¤Ù¤Þ¤¹¡¥`nil'¤Ç¤Ê¤±¤ì¤Ð¡¤ÁÞÆþ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¥³¡¼¥É¤Ç½ñ¤«
+ ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Æ¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤ß¤Þ¤¹¡¥ÊÑ¿ô`kanji-fileio-code'¤¬ 
+ `nil' ¤Î»þ¡¤¤Ä¤Þ¤ê¥Ð¥Ã¥Õ¥¡¤¬£±¥Ð¥¤¥ÈÊ¸»ú¤À¤±¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¤ÁÞÆþ
+ ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï`kanji-expected-code'¤Ç¼¨¤µ¤ì¤ë¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤È¤·
+ ¤ÆÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥ 
+ 
+ ÊÑ¿ô:
+ ## Global Variable: kanji-expected-code
+      Nemacs ¤¬¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à»þ¤ËÍ½´ü¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+      nil
+           ÊÑ¿ô `kanji-fileio-code'¤ÎÃÍ
+      t
+           ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+      0
+           ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¤ÈÆ±¤¸¡ÊÌµÊÑ´¹¡Ë
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Global Variable: default-kanji-fileio-code
+      ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-fileio-code'¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+      nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-kanji-expected-code VAL
+      `kanji-expected-code' ¤ÎÃÍ¤ò VAL¤ËÀßÄê¤¹¤ë¡¥
+      nil
+           ÊÑ¿ô `kanji-fileio-code'¤ÎÃÍ
+      t
+           ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: set-kanji-fileio-code CODE
+      kanji-fileio-code ¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥
+      nil
+           Ì¤ÀßÄê
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ 
+ 
+ File: nemacs  Node: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß, Prev: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ, Up: ¥Õ¥¡¥¤¥ëÆþÎÏ, Next: ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ
+ 
+ ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß
+ ......................
+ 
+ *find-file*,*find-alternate-file*,*find-file-other-window*¤Î¤¤¤º¤ì¤«¤ò¹Ô
+ ¤Ê¤Ã¤Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¾ì¹ç¤Ë¡¤¿ô°ú¿ô¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ°ì»þÅª¤Ë
+ `kanji-expected-code'¤ò»ØÄê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥`kanji-expected-code'¤ò¹±
+ µ×Åª¤ËÊÑ¤¨¤Æ¤·¤Þ¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤´Ø¿ô*set-kanji-expected-code*¤ò»È¤Ã¤Æ²¼
+ ¤µ¤¤¡¥
+ 
+ `C-u -   C-x C-f'
+ `C-u -   C-x C-v'
+ `C-u -   C-x 4 C-f'
+      `kanji-expected-code'¤Ï nil¡¤¤Ä¤Þ¤êÊÑ¿ô`kanji-fileio-code'¤ÎÃÍ¡¥
+ `C-u     C-x C-f'
+ `C-u     C-x C-v'
+ `C-u     C-x 4 C-f'
+      `kanji-expected-code'¤Ï t¡¤¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¿äÂ¬¤¹¤ë¡¥
+ `C-u 0   C-x C-f'
+ `C-u 0   C-x C-v'
+ `C-u 0   C-x 4 C-f'
+      `kanji-expected-code'¤Ï 0¡¤¤Ä¤Þ¤ê¥¢¥¹¥­¡¼Ê¸»ú¤Î¤ß¡¥
+ `C-u 1   C-x C-f'
+ `C-u 1   C-x C-v'
+ `C-u 1   C-x 4 C-f'
+      `kanji-expected-code'¤Ï 1¡¤¤Ä¤Þ¤ê¥·¥Õ¥ÈJIS¡¥
+ `C-u 2   C-x C-f'
+ `C-u 2   C-x C-v'
+ `C-u 2   C-x 4 C-f'
+      `kanji-expected-code'¤Ï 2¡¤¤Ä¤Þ¤êJIS¡¥
+ `C-u 3   C-x C-f'
+ `C-u 3   C-x C-v'
+ `C-u 3   C-x 4 C-f'
+      `kanji-expected-code'¤Ï 3¡¤¤Ä¤Þ¤êEUC¡¥
+ 
+ ÊÑ¿ô¡§
+ ## Global Variable: kanji-expected-code
+      Nemacs ¤¬¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à»þ¤ËÍ½´ü¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+      nil
+           ÊÑ¿ô `kanji-fileio-code'¤ÎÃÍ
+      t
+           ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+      0
+           ¥¢¥¹¥­¡¼¡¤¤Ä¤Þ¤êÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-kanji-expected-code VAL
+      `kanji-expected-code'¤ò VAL ¤ËÀßÄê¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ, Prev: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß, Up: ¥Õ¥¡¥¤¥ëÆþÎÏ, Next: ¥Õ¥¡¥¤¥ë½ÐÎÏ
+ 
+ ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®
+ ................
+ 
+ ¿·µ¬¤ËºîÀ®¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¤Ï¡¤ÊÑ¿ô
+ `default-kanji-fileio-code-find-file-not-found'¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡¥¤³¤Î
+ ÊÑ¿ô¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¤Ï¡¤ÊÑ¿ô`default-kanji-fileio-code'¤ÎÃÍ¤Ç¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Local Variable: default-kanji-fileio-code-find-file-not-found
+      ¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¡¥¥Õ¥¡¥¤¥ëÆþ
+      ÎÏ»þ¤Ë¤Ï¡¤`kanji-expected-code'¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+      nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ 
+ 
+ File: nemacs  Node: ¥Õ¥¡¥¤¥ë½ÐÎÏ, Prev: ¥Õ¥¡¥¤¥ëÆþÎÏ, Up: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, Next: ¥×¥í¥»¥¹´ÖÄÌ¿®
+ 
+ ¥Õ¥¡¥¤¥ë½ÐÎÏ
+ ------------
+ 
+ ¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹»þ¤Ë¤Ï¡¤Nemacs¤Ï¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÊ¸½ñ¤òÊÑ¿ô
+ `kanji-fileio-code'¤Ë¼¨¤µ¤ì¤¿¥³¡¼¥É¤ËÊÑ´¹¤·¤¿¾å¤Ç¡¤½ñ¤­½Ð¤·¤ò¹Ô¤Ê¤¤
+ ¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô:
+ ## Local Variable: kanji-fileio-code
+      ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥½¡¼¥¹¡¿¥¿¡¼¥²¥Ã¥È´Á»ú¥³¡¼¥É¡¥¥Õ¥¡¥¤¥ëÆþÎÏ»þ¤Ë
+      ¤Ï¡¤`kanji-expected-code'¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+      nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Global Variable: default-kanji-fileio-code
+      ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô`kanji-fileio-code'¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+      nil
+           Ì¤ÀßÄê
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ 
+ 
+ File: nemacs  Node: ¥×¥í¥»¥¹´ÖÄÌ¿®, Prev: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, Up: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Next: µ¡Ç½
+ 
+ ³°Éô¥×¥í¥»¥¹¤È¤ÎÄÌ¿®
+ ====================
+ 
+ Nemacs ¤Ï³°Éô¥×¥í¥»¥¹¤ä¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥µ¡¼¥Ð¥×¥í¥»¥¹¤òµ¯Æ°¤·¡¤¤½¤ì¤é¤È
+ ÄÌ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤ÏÆÈ¼«¤Î*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤ò
+ »ý¤Ã¤Æ¤¤¤Þ¤¹¡¥´Ø¿ô *process-kanji-code*¤Ë¤è¤Ã¤Æ³Æ¥×¥í¥»¥¹¤Î*¥×¥í¥»¥¹´Á»ú
+ ¥³¡¼¥É*¤òÃÎ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ Nemacs ¤Ï»ØÄê¤µ¤ì¤¿ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ë¥Æ¥­
+ ¥¹¥È¤òÊÑ´¹¤·¤Æ³°Éô¥×¥í¥»¥¹¤ä¥µ¡¼¥Ð¥×¥í¥»¥¹¤ÈÄÌ¿®¤·¡¤³°Éô¥×¥í¥»¥¹¤ä¥µ¡¼¥Ð
+ ¥×¥í¥»¥¹¤«¤é¼õ¤±¼è¤Ã¤¿¥Æ¥­¥¹¥È¤òNemacs¤ÎÆâÉôÉ½¸½¤ËÊÑ´¹¤·¤Þ¤¹¡¥
+ 
+ ´Ø¿ô*start-process*¤ä*open-network-stream*¤Ë¤è¤Ã¤Æ³°Éô¥×¥í¥»¥¹¤òµ¯Æ°¤·¤¿
+ ¤ê¡¤*call-process*¤ä *call-process-region*¤Ë¤è¤Ã¤Æ¼Â¹Ô¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤ 
+ Nemacs ¤Ï¥Õ¥Ã¥¯*find-kanji-process-code*¤ò¸Æ¤Ó¡¤·ë²Ì¤ò*¥×¥í¥»¥¹´Á»ú¥³¡¼
+ ¥É*¤ËÀßÄê¤·¤Þ¤¹¡¥´Ø¿ô*set-process-kanji-code*¤Ë¤è¤Ã¤Æ*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É
+ *¤òÄ¾ÀÜÀßÄê¤·¤¿¤ê¡¤´Ø¿ô*change-process-code* (`C-x C-k p')¤Ë¤è¤Ã¤Æ*¥×¥í
+ ¥»¥¹´Á»ú¥³¡¼¥É*¤òÊÑ¹¹¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥¤µ¤é¤Ë¡¤¥Õ¥Ã¥¯
+ *find-kanji-process-code*¤ÎÃÍ¤òÊÑ¹¹¤·¤Æ Nemacs¤¬*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤ò¸«
+ ¤Ä¤±¤ëÊýË¡¤ò¥æ¡¼¥¶Ëè¤ËÊÑ¹¹¤¨¤¿¤ê¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥¡Ê*Note ¥×¥í¥»¥¹¤Ë¤Ä
+ ¤¤¤Æ¤â¤Ã¤È::¡Ë 
+ 
+ *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï`default-process-kanji-code'¤ËÊÝ»ý¤µ
+ ¤ì¡¤´Ø¿ô*change-default-process-code*(`C-x C-k P')¤ä
+ *set-default-kanji-process-code*¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥ 
+ 
+ ÊÑ¿ô:
+ ## Hook: find-kanji-process-code BUFFER/SERVICE PROGRAM/HOST CODE
+      ¥Ð¥Ã¥Õ¥¡BUFFER¤Î¥×¥í¥°¥é¥àPROGRAM¤Þ¤¿¤Ï¥Û¥¹¥ÈHOST¤Î¥µ¡¼¥Ó¥¹SERVICE¤Î
+      *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òÊÖ¤¹¡¥CODE¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Global Variable: default-kanji-process-code
+      *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+ ## Global Variable: to-ascii-process
+      ¥¢¥¹¥­¡¼Ê¸»ú¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+      ¡ÊJIS¥³¡¼¥É¤¬ÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë
+ ## Global Variable: to-kanji-process
+      ÆüËÜ¸ìÊ¸»ú¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+      ¡ÊJIS¥³¡¼¥É¤¬ÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Function: process-kanji-code &optional PROCESS
+      ¥×¥í¥»¥¹PROCESS¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òÊÖ¤¹¡¥°ú¿ô¤Ê¤·¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ë¤Ï¡¤ ¸½
+      ºß¤Î¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤Î*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òÊÖ¤¹¡¥*¥×¥í¥»¥¹´Á»ú
+      ¥³¡¼¥É*¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Command: change-process-code
+      *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥
+      NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC
+      ¥³¡¼¥É¡Ë¢ªNIL
+ ## Command: set-process-kanji-code PROCESS CODE
+      ¥×¥í¥»¥¹PROCESS¤Î*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òCODE¤ËÀßÄê¤¹¤ë¡¥PROCESS ¤¬NIL
+      ¤Î¾ì¹ç¤Ë¤Ï¡¤¸½ºß¤Î¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤Î *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òÀßÄê¤¹¤ë¡¥
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ ## Command: change-default-process-code
+      `default-kanji-process-code'¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥
+      NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC
+      ¥³¡¼¥É¡Ë¢ªNIL
+ ## Command: set-default-kanji-process-code CODE
+      `default-kanji-process-code'¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º
+      ¤ì¤«¡¥
+      0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+           ÌµÊÑ´¹
+      1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+           JIS¥³¡¼¥É
+      3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+           EUC¥³¡¼¥É
+ 
+ * Menu:
+ 
+ * MoreProcess: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È. Nemacs¤Ï¤É¤¦¤ä¤Ã¤Æ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ò·è¤á¤ë¤«
+ 
+ 
+ File: nemacs  Node: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È, Prev: ¥×¥í¥»¥¹´ÖÄÌ¿®, Up: ¥×¥í¥»¥¹´ÖÄÌ¿®, Next: µ¡Ç½
+ 
+ ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È
+ ----------------------
+ 
+ `(load-library "kanji-util")'¤ò¹Ô¤Ê¤¦¤È¡¤Nemacs¤¬*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤ò
+ ·è¤á¤ëÊýË¡¤òÊÑ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥´Ø¿ô
+ *define-program-kanji-code*¤Ï³°Éô¥×¥í¥»¥¹¤Î*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òÀë¸À¤·¡¤
+ ´Ø¿ô *define-service-kanji-code*¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥µ¡¼¥Ð¤Î*¥×¥í¥»¥¹´Á»ú
+ ¥³¡¼¥É*¤òÀë¸À¤·¤Þ¤¹¡¥¤³¤ì¤é¤ÎÀë¸À¤ò¤ª¤³¤Ê¤¦¤È¡¤*find-kanji-process-code*
+ ¤ÏÀë¸À¤Ë±è¤Ã¤¿ÃÍ¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥´Ø¿ô*find-kanji-process-code* ¤¬Å¬
+ Åö¤ÊÃÍ¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¤Nemacs¤ÏÂå¤ï¤ê¤ËÊÑ¿ô 
+ `default-kanji-process-code' ¤ÎÃÍ¤òÍÑ¤¤¤Æ¥×¥í¥»¥¹ÄÌ¿®¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+ ´Ø¿ô:
+ ## Function: find-kanji-process-code BUFFER/SERVICE PROGRAM/HOST CODE
+      ¥Ð¥Ã¥Õ¥¡BUFFER¤Î¥×¥í¥°¥é¥àPROGRAM¤Þ¤¿¤Ï¥Û¥¹¥ÈHOST¤Î¥µ¡¼¥Ó¥¹SERVICE¤Î
+      *¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤òÊÖ¤¹¡¥CODE¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+ ## Function: define-program-kanji-code BUFFER PROGRAM CODE
+      BUFFER¤ÈPROGRAM ¤ÏÀµµ¬É½¸½ ¤« NIL¡¥ NIL ¤ÏÇ¤°Õ¤Î¥¹¥È¥ê¥ó¥°¤È¥Þ¥Ã¥Á¤¹¤ë¡¥
+      CODE¤Ï¥·¥ó¥Ü¥ë¤«ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥
+      *find-kanji-process-code*¤¬BUFFER¤ÈPROGRAM¤Î£²¤Ä¤Î°ú¿ô¤Ç¸Æ¤Ð¤ì¤¿
+      ¾ì¹ç¤Ë¡¤*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*¤ò·èÄê¤¹¤ëCODE¤òÄêµÁ¤¹¤ë¡¥CODE ¤¬¥·¥ó
+      ¥Ü¥ë¤Ê¤é¤ÐCODE ¤Î´Ø¿ôÄêµÁ¤¬¸Æ¤Ð¤ì¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬ÊÖ¤ë¡¥
+ 
+      ¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC¤¿¤È¤¨¤Ð¡¤`(define-program-kanji-code ".*shell.*" nil 2)' 
+      ¤Ï¥Ð¥Ã¥Õ¥¡Ì¾¤¬"shell"¤ò´Þ¤à¾ì¹ç¤Ë¤ÏJIS¥³¡¼¥É¤ò»È¤¦¤è¤¦¤Ë¡¤
+      *find-kanji-process-code* ¤òÊÑ¹¹¤¹¤ë¡¥
+ ## Function: define-service-kanji-code SERVICE HOST CODE
+      SERVICE¤ÈHOST ¤ÏÀµµ¬É½¸½¤«NIL.  NIL ¤ÏÇ¤°Õ¤Î¥¹¥È¥ê¥ó¥°¤È¥Þ¥Ã¥Á¤¹¤ë¡¥
+      CODE¤Ï¥·¥ó¥Ü¥ë¤«ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥
+      *find-kanji-process-code*¤¬SERVICE¤ÈHOST¤Î£²¤Ä¤Î°ú¿ô¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç
+      ¤Ë¡¤*¥×¥í¥»¥¹´Á»ú¥³¡¼¥É*·èÄê¤¹¤ëCODE¤òÄêµÁ¤¹¤ë¡¥CODE ¤¬¥·¥ó¥Ü¥ë¤Ê¤é
+      ¤ÐCODE ¤Î´Ø¿ôÄêµÁ¤¬¸Æ¤Ð¤ì¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬ÊÖ¤ë¡¥ ¥³¡¼
+      ¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+      ¤¿¤È¤¨¤Ð¡¤ `(define-service-kanji-code "wnn" nil 0)'¤ÏNemacs¤¬¥µ¡¼
+      ¥Ó¥¹"wnn"¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤ï¤Ê¤¤¤³¤È¤òÀë¸À¤¹¤ë¡¥
+ 
+ 
+ 
+ File: nemacs  Node: µ¡Ç½, Prev: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, Up: NemacsUsers, Next: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô
+ 
+ Nemacs¤Îµ¡Ç½
+ ************
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñÊÔ½¸¤ÎÍÍ¡¹¤Êµ¡Ç½¤òÄó¶¡¤·¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * Jcodefunc: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô. ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ë´Ø¿ô
+ * Jtextfunc: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½.         Ê¸½ñÊÔ½¸¤Îµ¡Ç½
+ * Enhance:   ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥.
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô, Prev: µ¡Ç½, Up: µ¡Ç½, Next: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ 
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É´ØÏ¢¤Î´Ø¿ô
+ ==========================
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´ØÏ¢¤·¤Æ°Ê²¼¤Î´Ø¿ô¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é
+ ¤Ë¤è¤Ã¤Æ¡¤¥Ð¥Ã¥Õ¥¡Ãæ¤Î¥Æ¥­¥¹¥È¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤òÊÑ´¹¤¹¤ë¤³¤È¤Ê¤É¤¬
+ ²ÄÇ½¤Ç¤¹¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: convert-region-kanji-code SOURCE TARGET
+      SOURCE¤ÈTARGET¤ÏÊ¸»ú¥³¡¼¥É¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥
+      0
+           ÌµÊÑ´¹
+      1
+           ¥·¥Õ¥ÈJIS¥³¡¼¥É
+      2
+           JIS¥³¡¼¥É
+      3
+           EUC¥³¡¼¥É
+      ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò¡¤SOURCE¤«¤é
+      TARGET¤ËÊÑ´¹¤¹¤ë¡¥
+ ## Command: kanji-delete-region
+      ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤òºï½ü¤¹¤ë¡¥`kanji-flag'¤¬`t'¤Ç
+      ¥Ý¥¤¥ó¥È¤¢¤ë¤¤¤Ï¥Þ¡¼¥¯¤¬£²¥Ð¥¤¥ÈÊ¸»ú¤Î´Ö¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ïºï½ü¤µ¤ì¤Ê¤«¤Ã¤¿£±
+      ¥Ð¥¤¥È¤ò£±¥Ð¥¤¥È¤Î¶õÇòÊ¸»ú¤ÇÃÖ¤­´¹¤¨¤ë¡¥
+ 
+ ´Ø¿ô:
+ ## Function: convert-string-kanji-code STRING SOURCE TARGET
+      STRING¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òSOURCE¤«¤éTARGET¤ËÊÑ´¹¤·¡¤¤½¤Î·ë²Ì¤òÊÖ¤¹¡¥
+ ## Function: check-region-kanji-code
+      ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤Î¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤òÊÖ¤¹¡¥
+      ¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      nil
+           ¥ê¡¼¥¸¥ç¥ó¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡¥
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+      Nemacs¤¬EUC¤È¥·¥Õ¥ÈJIS¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«È½ÃÇ¤Ç¤­¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¤ EUC¡Ê¥Ë¡¼
+      ¥â¥Ë¥Ã¥¯¤Ï£³¡Ë¤¬ÊÖ¤ë¡¥
+ ## Function: check-string-kanji-code STRING
+      STRING¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òÊÖ¤¹¡¥¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      nil
+           STRING¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡¥
+      1
+           ¥·¥Õ¥ÈJIS
+      2
+           JIS
+      3
+           EUC
+      Nemacs¤¬EUC¤È¥·¥Õ¥ÈJIS¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«È½ÃÇ¤Ç¤­¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¤ EUC¡Ê¥Ë¡¼
+      ¥â¥Ë¥Ã¥¯¤Ï£³¡Ë¤¬ÊÖ¤ë¡¥
+ ## Function: kanji-char-after POS
+      °ú¿ô POS¤Ï¿ô¡¥¸½ºß¤Î¥Ð¥Ã¥Õ¥¡Ãæ¤Îposition POS¤Ë¤¢¤ëÆüËÜ¸ìÊ¸»ú¤ÎEUC¥³¡¼¥É
+      ¤òinteger¤ÇÊÖ¤¹¡¥Ê¸»ú¤¬ÆüËÜ¸ìÊ¸»ú¤Ç¤Ê¤±¤ì¤Ð¡¤¤½¤ÎÊ¸»ú¤Înormal code¤òÊÖ¤¹¡¥
+      POS¤¬ÎÎ°è³°¤Ç¤¢¤ì¤Ð¡¤NIL¤òÊÖ¤¹¡¥
+ ## Function: jcode-type POS
+      position POS¤ÎÊ¸»ú¤ÎÊ¸»ú¼ï¤òÊÖ¤¹¡¥Ê¸»ú¼ï¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+      0
+           ÆüËÜ¸ìÊ¸»ú°Ê³°
+      1
+           ÆüËÜ¸ìÊ¸»ú¤ÎÂè°ì¥Ð¥¤¥È
+      2
+           ÆüËÜ¸ìÊ¸»ú¤ÎÂèÆó¥Ð¥¤¥È
+      nil
+           POS¤¬ÎÎ°è³°
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Prev: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô, Up: µ¡Ç½, Next: ÆüËÜ¸ìÀµ½ñË¡
+ 
+ ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ ==================
+ 
+ Nemacs ¤ÏÊ¸Àá¡Ê*Note ÆüËÜ¸ìÀµ½ñË¡::¡ËÃ±°Ì¤Î¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤äÆüËÜ¸ì¥Æ¥­¥¹
+ ¥È¤ÎÃµº÷¡¤ÃÖ´¹¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸½ñ¤Ë¤ª¤¤¤Æ¤Ï¸ìÃ±°Ì¤ÎÁàºî¤è
+ ¤ê¡¤Ê¸ÀáÃ±°Ì¤ÎÁàºî¤ÎÊý¤¬°ìÈÌÅª¤Ç¤¢¤ë¤È¤¤¤¦È½ÃÇ¤Ë´ð¤Å¤¤¤Æ¡¤Nemacs¤Ç¤ÏÆüËÜ
+ ¸ìÊ¸»ú¤Ë¤Ä¤¤¤Æ¤Ïµ¿»÷Åª¤ÊÊ¸ÀáÃ±°Ì¤ÎÁàºî¤ò¹Ô¤Ê¤¦¤è¤¦¤Ë¸ì¤Î³µÇ°¤ò³ÈÄ¥¤·¤Æ¤¤
+ ¤Þ¤¹¡¥¡ÊÆüËÜ¸ìÊ¸½ñ°Ê³°¤Î¥Æ¥­¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¤¥ª¥ê¥¸¥Ê¥ë¤ÎGNU Emacs¤¬Äó¶¡
+ ¤¹¤ë¸ìÃ±°Ì¤ÎÁàºî¤ÈÆ±Åù¤Ç¤¹¡¥*Note ¥·¥ó¥¿¥Ã¥¯¥¹::¡ËÆüËÜ¸ì¤Ë¤ÏÊ¸Àá¶­³¦¤ò¼¨
+ ¤¹µ­Ë¡¤Ï¤Ê¤¤¤Î¤Ç¡¤Nemacs¤Ï¤¹¤Ù¤Æ¤ÎÊ¸»ú¤ËÂÐ¤·¤Æ¥«¥Æ¥´¥ê¤òÄêµÁ¤·¡¤¤³¤ì¤òÍÑ
+ ¤¤¤ÆÊ¸Àá¶­³¦¤ò¿äÂ¬¤·¡¤µ¿»÷Ê¸Àá¤òÀÚ¤ê½Ð¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * Ontho: ÆüËÜ¸ìÀµ½ñË¡.      ÆüËÜ¸ì¤Î½ñ¤­Êý¤Ë¤Ä¤¤¤Æ
+ * Syntax: ¥·¥ó¥¿¥Ã¥¯¥¹.  ÆüËÜ¸ìÊ¸»ú¤Î¥·¥ó¥¿¥Ã¥¯¥¹
+ * Bunsetsu: µ¿»÷Ê¸Àá.    ¸ì¤Î³µÇ°¤Î³ÈÄ¥
+ * Search: Ãµº÷.	ÆüËÜ¸ìÊ¸½ñ¤ÎÃµº÷¤ÈÃÖ´¹
+ * Fill&Justify: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨.
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÀµ½ñË¡, Prev: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Up: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Next: ¥·¥ó¥¿¥Ã¥¯¥¹
+ 
+ ÆüËÜ¸ìÀµ½ñË¡
+ ------------
+ 
+ ÆüËÜ¸ì¤ÎÊ¸½ñ¤Ï£µ¼ïÎà¤ÎÊ¸»ú¤«¤é¹½À®¤µ¤ì¤Þ¤¹¡¥£µ¼ïÎà¤ÎÊ¸»ú¤È¤Ï¡¤¤Ò¤é¤¬¤Ê¡¤
+ ¤«¤¿¤«¤Ê¡¤´Á»ú¡¤µ­¹æ¤È±Ñ¿ô»ú¤Ç¤¹¡¥¤Ò¤é¤¬¤Ê¤È¤«¤¿¤«¤Ê¤òÁí¾Î¤·¤Æ¤«¤Ê¤È¸Æ¤Ó
+ ¤Þ¤¹¡¥¤Ò¤é¤¬¤Ê¤È¤«¤¿¤«¤Ê¤ÏÉ½²»Ê¸»ú¤Ç¡¤´Á»ú¤ÏÉ½°ÕÊ¸»ú¤Ç¤¹¡¥ÆüËÜ¸ì¤Ë¤ÏÂ¿¤¯
+ ¤ÎÆ±²»°ÕµÁ¸ì¤¬¤¢¤ê¡¤¤ª¤Ê¤¸È¯²»¤È¤ª¤Ê¤¸¤«¤ÊÉ½µ­¤ò»ý¤Ä´Á»ú¤Î¸ì¤¬¤¿¤¯¤µ¤ó¤¢
+ ¤ê¤Þ¤¹¡¥¤«¤Ê¤Ï¡¤¥í¡¼¥Þ»ú¤È¸Æ¤Ð¤ì¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÉ½µ­¤¬¤¢¤ê¤Þ¤¹¤¬¡¤¤³¤ÎÉ½
+ µ­Ë¡¤ÏÉáÄÌ¤ÎÆüËÜ¸ìÊ¸½ñ¤Ë¤Ï¤Û¤È¤ó¤ÉÍÑ¤¤¤é¤ì¤Þ¤»¤ó¡¥
+ 
+ ÆüËÜ¸ì¤ÎÊ¸¤Ï£±¤Ä°Ê¾å¤Î¶ç¤«¤é¤Ç¤­¡¤¶ç¤Ï£±¤Ä°Ê¾å¤Î*Ê¸Àá*¤«¤é¤Ç¤­¤Æ¤¤
+ ¤Þ¤¹¡¥Ê¸Àá¤Ï³µÎ¬¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡¥
+   1. ½õ»ì¤ä½õÆ°»ì¤ò½ü¤¯¸ì
+   2. Á°¹à¤Î¤â¤Î¤Ë£±¤Ä°Ê¾å¤Î½õ»ì¤¢¤ë¤¤¤Ï½õÆ°»ì¤¬Â³¤¤¤¿¤â¤Î
+ ÆÉÅÀ¡Ê¡£¡Ë¤¬Ê¸¤Î¶èÀÚ¤ê¤ò¼¨¤·¡¤¶çÅÀ¡Ê¡¢¡Ë¤¬¶ç¤Î¶èÀÚ¤ê¤ò¼¨¤·¤Þ¤¹¡¥Ê¸Àá¤ä¸ì
+ ¤Î¶èÀÚ¤ê¤ò¼¨¤¹µ­Ë¡¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
+ 
+ 
+ File: nemacs  Node: ¥·¥ó¥¿¥Ã¥¯¥¹, Prev: ÆüËÜ¸ìÀµ½ñË¡, Up: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Next: µ¿»÷Ê¸Àá
+ 
+ ÆüËÜ¸ìÊ¸»ú¤Î¥·¥ó¥¿¥Ã¥¯¥¹
+ ------------------------
+ 
+ GNU Emacs¤Ç¤Ï³Æ¥Ð¥¤¥È¤ËÂÐ¤·¤Æ`char-syntax'¤¬ÄêµÁ¤Ç¤­¤Þ¤¹¡¥GNU Emacs
+ ¤Î*char-syntax* ¤ò³ÈÄ¥¤·¤Æ¡¤Nemacs¤Ç¤ÏÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Î£²¤Ä¤Î¥Ð
+ ¥¤¥È¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¥Ë¡¼¥â¥Ë¥Ã¥¯`j'¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã
+ ¤Æ¤¤¤Þ¤¹¡Ê*Note char-syntax::¡Ë¡¥
+ 
+ ¤µ¤é¤ËNemacs¤Ç¤Ï*char-syntax*¤ò£²¥Ð¥¤¥ÈÊ¸»ú¤Ë³ÈÄ¥¤·¤¿*char-category*¤òÄê
+ µÁ¤·¤Æ¤¤¤Þ¤¹¡¥*char-category*¤Ï¡¤£²¥Ð¥¤¥ÈÊ¸»ú¡ÊÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Þ
+ ¤Þ¤ì¤ëÊ¸»ú¡Ë¤òµ­¹æ¡¤±Ñ¿ô»ú¡¤¤Ò¤é¤¬¤Ê¡¤ÆÃ¼ì¤Ò¤é¤¬¤Ê¡¤¤«¤¿¤«¤Ê¡¤ÆÃ¼ì¤«¤¿¤«
+ ¤Ê¡¤¥®¥ê¥·¥ãÊ¸»ú¡¤¥í¥·¥¢Ê¸»ú¡¤Ì¤ÄêµÁ¡¤´Á»ú¡¤ÆÃ¼ì´Á»ú¤Î£±£±¼ïÎà¤ËÊ¬Îà¤·¤Þ
+ ¤¹¡¥¡Ê*Note char-category::¡¥¡Ë ¤³¤ÎÊ¬Îà¤Ë´ð¤Å¤¤¤ÆNemacs¤ÏÊ¸Àá¤Îµ¿»÷Åª¤Ê
+ ÀÚ¤ê½Ð¤·¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥¤Þ¤¿¤³¤ÎÊ¬Îà¤Ë´ð¤Å¤¤¤Æ¡¤Àµµ¬É½¸½¤¬³ÈÄ¥¤ª¤è¤ÓÊÑ¹¹¤µ
+ ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ´Ø¿ô:
+ ## Function: char-syntax CHAR
+      CHAR¤Îsyntax¥³¡¼¥É¤òÊÖ¤¹¡¥
+ ## Function: char-category POS/STRING
+      °ÌÃÖPOS¤ÎÊ¸»ú¤Þ¤¿¤Ï¥¹¥È¥ê¥ó¥°STRING¤ÎºÇ½é¤ÎÊ¸»ú¤Î¡¤category¥³¡¼¥É¤òÊÖ¤¹¡¥
+      POS¤¬ÎÎ°è³°¤Þ¤¿¤ÏSTRING¤¬NULL¤Î¾ì¹ç¤Ï`nil'¤òÊÖ¤¹¡¥
+ 
+ 
+ File: nemacs  Node: char-syntax, Up: ¥·¥ó¥¿¥Ã¥¯¥¹, Next: char-category
+ 
+ char-syntax
+ ...........
+ 
+ Nemacs¤Ç¤Ï¼¡¤Îchar-syntax¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ syntax¤Î¥³¡¼¥É:
+ `SPC'
+      whitespace syntax.
+ `w'
+      word constituent.
+ `_'
+      symbol constituent.
+ `.'
+      punctuation.
+ `('
+      open parenthesis.
+ `)'
+      close parenthesis.
+ `"'
+      string quote.
+ `\'
+      character quote.
+ `$'
+      paired delimiter.
+ `''
+      expression prefix operator.
+ `<'
+      comment starter.
+ `>'
+      comment ender.
+ `j'
+      first or second byte of Jcode
+ 
+ 
+ File: nemacs  Node: char-category, Prev: char-syntax, Up: ¥·¥ó¥¿¥Ã¥¯¥¹, Next: µ¿»÷Ê¸Àá
+ 
+ char-category
+ .............
+ 
+ Nemacs¤Ç¤Ï¡¤¤¹¤Ù¤Æ¤Î¡Ê£±¥Ð¥¤¥È¤È£²¥Ð¥¤¥È¤Î¡ËÊ¸»ú¤ËÂÐ¤·¤Æchar-category¤¬
+ ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ char-category¤Î¥³¡¼¥É:
+ £±¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¡§
+ `SPC'
+      whitespace syntax.
+ `w'
+      word constituent.
+ `_'
+      symbol constituent.
+ `.'
+      punctuation.
+ `('
+      open-parenthesis.
+ `)'
+      close parenthesis.
+ `"'
+      string quote.
+ `\'
+      character quote.
+ `$'
+      paired delimiter.
+ `''
+      expression prefix operator.
+ `<'
+      comment starter.
+ `>'
+      comment ender.
+ £²¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¡§
+ `s'
+      µ­¹æ¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£±¡¢£²¡¢£¸¶è¤Î¤â¤Î¡¥
+ `a'
+      ±Ñ¿ô»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£³¶è¤Î¤â¤Î¡¥
+ `h'
+      ¤Ò¤é¤¬¤Ê¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£´¶è¤Î¤â¤Î¡¥ÆÃ¼ì¤Ò¤é¤¬¤Ê¤ò½ü¤¯¡¥
+ `H'
+      ÆÃ¼ì¤Ò¤é¤¬¤Ê¡¥"¡³", "¡´", "¡µ", "¡¶"
+ `k'
+      ¤«¤¿¤«¤Ê¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£µ¶è¤Î¤â¤Î¡¥ÆÃ¼ì¤«¤¿¤«¤Ê¤ò½ü¤¯¡¥
+ `K'
+      ÆÃ¼ì¤«¤¿¤«¤Ê¡¥"¡¼"
+ `g'
+      ¥®¥ê¥·¥ãÊ¸»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£¶¶è¤Î¤â¤Î¡¥
+ `r'
+      ¥í¥·¥¢Ê¸»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£·¶è¤Î¤â¤Î¡¥
+ `u'
+      Ì¤ÄêµÁ¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£¹¡Á£±£µ¶è¤Î¤â¤Î¡¥
+ `c'
+      ´Á»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£±£¶¶è°Ê¾å¤Î¤â¤Î¡¥ÆÃ¼ì´Á»ú¤ò½ü¤¯¡¥
+ `C'
+      ÆÃ¼ì´Á»ú¡¥ "¡¸", "¡¹", "¡º", "¡»"
+ 
+ 
+ File: nemacs  Node: µ¿»÷Ê¸Àá, Prev: ¥·¥ó¥¿¥Ã¥¯¥¹, Up: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Next: Ãµº÷
+ 
+ Ê¸Àá¡á³ÈÄ¥word
+ --------------
+ 
+ Nemacs¤Ï£±¥Ð¥¤¥È¥³¡¼¥É¤ò12¤Î¥«¥Æ¥´¥ê¤Ë¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É ¡Ê£²¥Ð¥¤¥È¥³¡¼
+ ¥É¡Ë¤ò11¤Î¥«¥Æ¥´¥ê¤ËÊ¬¤±¤Æ¤¤¤Þ¤¹¡Ê*Note char-category::¡Ë¡¥ GNU Emacs¤Ç
+ ¤Ï¡Ö¸ì¡×¤Ï¡¤word constituent¤ÎÊÂ¤Ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥Nemacs¤Ç¤Ï¡¤Æü
+ ËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤³¤ÎÄêµÁ¤ò³ÈÄ¥¤·¡¤¼¡¤Î¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡¥
+ ³ÈÄ¥¤Ò¤é¤¬¤Ê ::=
+      ( ¤Ò¤é¤¬¤Ê | ÆÃ¼ì¤Ò¤é¤¬¤Ê )
+ ³ÈÄ¥¤«¤¿¤«¤Ê ::=
+      ( ¤«¤¿¤«¤Ê | ÆÃ¼ì¤«¤¿¤«¤Ê )
+ ³ÈÄ¥´Á»ú ::=
+      ( ´Á»ú | ÆÃ¼ì´Á»ú )
+ ³ÈÄ¥word  ::=
+      ( word
+      | ( ±Ñ¿ô»ú | ³ÈÄ¥¤Ò¤é¤¬¤Ê | ³ÈÄ¥¥«¥¿¥«¥Ê | ¥®¥ê¥·¥ãÊ¸»ú
+      | ¥í¥·¥¢Ê¸»ú | ³ÈÄ¥´Á»ú )+ ³ÈÄ¥¤Ò¤é¤¬¤Ê )
+ ³ÈÄ¥¥«¥Æ¥´¥ê ::=
+      ( ³ÈÄ¥¤Ò¤é¤¬¤Ê | ³ÈÄ¥¤«¤¿¤«¤Ê |³ÈÄ¥´Á»ú )
+ 
+ ¤Ä¤Þ¤ê¡¤Nemacs¤Ï¼¡¤Î¤è¤¦¤ÊÊ¸»ú¤Î¥·¡¼¥±¥ó¥¹¤ò£±¤Ä¤Î³ÈÄ¥word¤È¤ß¤Ê¤·¤Þ¤¹¡¥
+   1. Ï¢Â³¤¹¤ëword constituents
+   2. Ï¢Â³¤¹¤ëÆ±°ì¤Î³ÈÄ¥¥«¥Æ¥´¥ê¤ËÂ°¤¹¤ëÆüËÜ¸ìÊ¸»ú
+   3. Á°¹à¤Î¤â¤Î¤Ë£±¤Ä°Ê¾å¤Î³ÈÄ¥¤Ò¤é¤¬¤Ê¤¬Â³¤¤¤¿¤â¤Î
+ 
+ ¤³¤Î³ÈÄ¥word¤Ï¡¤ÆüËÜ¸ìÊ¸Ãæ¤Ç¤Ï¤Û¤ÜÊ¸Àá¤ËÂÐ±þ¤·¡¤£±¥Ð¥¤¥ÈÊ¸»ú¥·¡¼¥±¥ó¥¹Ãæ
+ ¤Ç¤Ïword¤ÈÆ±¤¸¤â¤Î¤Ç¤¹¡¥
+ 
+ 
+ File: nemacs  Node: Ãµº÷, Prev: µ¿»÷Ê¸Àá, Up: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Next: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨
+ 
+ ÆüËÜ¸ì¥¹¥È¥ê¥ó¥°¤ÎÃµº÷¤ÈÃÖ´¹
+ ----------------------------
+ 
+ ÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤âÃµº÷¥³¥Þ¥ó¥É *search-forward*, *search-backward*,
+ *isearch-forward*,*isearch-backward*,
+ *re-search-forward*,*re-search-backward*,
+ *isearch-forward-regexp*,*isearch-backward-regexp*¤äÃÖ´¹¥³¥Þ¥ó¥É
+ *replace-string*,*replace-regexp*¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+ 
+ ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ëÃµº÷(*isearch*)Ãæ¤Ë¥¹¥È¥ê¥ó¥°ÆþÎÏ¤ò¹Ô¤Ê¤¦¤Ë¤Ï¡¤`C-k'¤ò¥¿
+ ¥¤¥×¤·¤Æ²¼¤µ¤¤¡¥¤³¤Î¥â¡¼¥É¤Ç¤Ï¥ß¥Ë¥Ð¥Ã¥Õ¥¡Ãæ¤ÇÆüËÜ¸ì¥¹¥È¥ê¥ó¥°¤ÎÆþÎÏ¤ò¹Ô
+ ¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¥¹¥È¥ê¥ó¥°ÆþÎÏ¤¬½ª¤Ã¤¿¤é¡¤RET¥­¥¤¤ò²¡¤·¤Æ²¼¤µ¤¤¡¥
+ Nemacs¤Ï*isearch*¤òºÆ³«¤·¤Þ¤¹¡¥
+ 
+ Ãµº÷¤äÃÖ´¹¤ËÍÑ¤¤¤ëÀµµ¬É½¸½¤Ï¡¤³ÈÄ¥word¤ächar-category¤ËÂÐ±þ¤·¤Æ³ÈÄ¥¤ª¤è
+ ¤ÓÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ RegExp: ÆüËÜ¸ìÀµµ¬É½¸½. 
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÀµµ¬É½¸½, Prev: Ãµº÷, Up: Ãµº÷, Next: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨
+ 
+ Ãµº÷¤äÃÖ´¹¤ËÍÑ¤¤¤ëÀµµ¬É½¸½¤Ï¡¤³ÈÄ¥word¤ächar-category¤ËÂÐ±þ¤·¤Æ¼¡¤Î¤è
+ ¤¦¤Ë³ÈÄ¥¤ª¤è¤ÓÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ³ÈÄ¥¡§
+ \cCATEGORY
+      char-category ¤¬ CATEGORY ¤ÎÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ \CCATEGORY
+      char-category ¤¬ CATEGORY ¤Ç¤Ê¤¤Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ \h
+      ²þ¹Ô¤ò½ü¤¯£±¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ \z
+      ¤¹¤Ù¤Æ¤Î£²¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ [...]
+      ³Æ¥³¡¼¥É¤ÈÅù¤·¤¤£±¥Ð¥¤¥È¤â¤·¤¯¤Ï£²¥Ð¥¤¥ÈÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ normal code
+      ¤½¤ì¤ÈÅù¤·¤¤£±¥Ð¥¤¥È¤â¤·¤¯¤Ï£²¥Ð¥¤¥ÈÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ ÊÑ¹¹¡§
+ .
+      ²þ¹ÔÊ¸»ú¤ò½ü¤¯£±¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤Þ¤¿¤Ï¤¹¤Ù¤Æ¤Î£²¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤È
+      ¹çÃ×¤¹¤ë¡¥
+ \w
+      ³ÈÄ¥word¤Î¹½À®Í×ÁÇ¤ÎÊ¸»ú¤È¹çÃ×¤¹¤ë¡£¤¹¤Ê¤ï¤Á£±¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¤Ï 
+      syntax-table ¤Î char-syntax ¤¬ "w" ¤Î¤â¤Î¡¢£²¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¤ÏÊ¸»ú
+      ¤ÎÊ¬Îà¤¬±Ñ¿ô»ú¡¢³ÈÄ¥¤Ò¤é¤¬¤Ê¡¢³ÈÄ¥¥«¥¿¥«¥Ê¡¢¥®¥ê¥·¥ãÊ¸»ú¡¢¥í¥·¥¢Ê¸
+      »ú¡¢³ÈÄ¥´Á»ú¤Î¤â¤Î¤È¹çÃ×¤¹¤ë¡¥
+      \(\sw\|\ca\|\ch|\cH\|\ck|\cK\|\cg\|\cr\|\cc|\cC\)¤ÈÅù²Á¡¥
+ \W
+      ³ÈÄ¥word¤Î¹½À®Í×ÁÇ¤Ç¤Ê¤¤Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ \b
+      ³ÈÄ¥word¤ÎÁ°¸å¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ \B
+      ³ÈÄ¥word¤ÎÁ°¸å¤Ë¤Ê¤¤¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ \<
+      ³ÈÄ¥word¤ÎÁ°¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ \>
+      ³ÈÄ¥word¤Î¸å¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ 
+ Ãí°Õ: \sw (\Sw) ¤Ï GNU Emacs ¤Ç¤Ï \w (\W) ¤ÈÅù²Á¤Ç¤¹¤¬¡¤Nemacs¤Ç¤ÏÅù²Á¤Ç
+ ¤Ï¤¢¤ê¤Þ¤»¤ó¡¥\sw (\Sw) ¤Ï³ÈÄ¥word ¤Ç¤Ï¤Ê¤¯ word ¤Î¹½À®Í×ÁÇ¡Ê¤¢¤ë¤¤¤Ï¤½
+ ¤ì°Ê³°¡Ë¤È¤Î¤ß¹çÃ×¤·¤Þ¤¹¡¥
+ 
+ 
+ File: nemacs  Node: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨, Prev: Ãµº÷, Up: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Next: ¹ÔµÍ¤á
+ 
+ ¹ÔµÍ¤á¤È¹ÔÂ·¤¨
+ --------------
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¹ÔµÍ¤á¤È¹ÔÂ·¤¨¤Îµ¡Ç½¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * Fill: ¹ÔµÍ¤á.	   ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔµÍ¤á
+ * Justify: ¹ÔÂ·¤¨. ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔÂ·¤¨
+ 
+ 
+ File: nemacs  Node: ¹ÔµÍ¤á, Up: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨, Next: ¹ÔÂ·¤¨
+ 
+ ¹ÔµÍ¤á
+ ......
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¡¤¥³¥Þ¥ó¥É*fill-paragraph*¤Ë¤è¤ë¹ÔµÍ¤á¤ä¡¤
+ `auto-fill-mode'¤Ë¤ª¤±¤ë¼«Æ°¹ÔµÍ¤áµ¡Ç½¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ÆüËÜ¸ìÊ¸½ñ¤Ç¤Ï¡¤¸ì¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤Ï¤Ê¤¯¹Ô¤Ï°ìÄê¤ÎÄ¹¤µ¤ÇÀÞ¤êÊÖ¤µ¤ì¤ë¤Î¤¬Éá
+ ÄÌ¤Ç¤¹¡¥¤·¤«¤·ÆüËÜ¸ìÊ¸»ú¤Î¤¦¤Á¤Î°ìÉô¤ÎÊ¸»ú¡Ê¤Û¤È¤ó¤Éµ­¹æ¤Ç¤¹¡Ë¤Ï¹ÔÆ¬¤ä¹Ô
+ Ëö¤Ë¸½¤ì¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡¥¤³¤Î¤è¤¦¤ÊÊ¸»ú¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë¡¤Nemacs¤Ï¹Ô
+ ¤ÎÄ¹¤µ¤òÊÑ¤¨¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔµÍ¤á¤Ï¥ª¥ê¥¸¥Ê¥ë¤ÎText
+ Filling¤Î³ÈÄ¥¤È¤·¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤±ÑÊ¸»úÃ±¸ìÃæ¤Ç¹Ô¤¬½ª¤ë¤³¤È¤Ï¤¢¤ê
+ ¤Þ¤»¤ó¡¥
+ 
+ ¹ÔÆ¬µÚ¤Ó¹ÔËö¶ØÂ§¤Î°ìÈÌµ¬Â§¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
+ 
+ *¹ÔÆ¬¶ØÂ§Ê¸»ú*
+      Ê¸¡¿¶ç¤Î½ª¤ê¤ò¼¨¤¹µ­¹æ¤Ï¹ÔÆ¬¤Ë¸½¤ì¤Ê¤¤¡¥¤³¤Î¤è¤¦¤Êµ­¹æ¤È¤·¤Æ¤Ï¶çÅÀ
+      ¡Ê¡¢¡ËÆÉÅÀ¡Ê¡£¡Ë¤Ê¤É¤¬¤¢¤ë¡¥ÊÑ¿ô `kinsoku-bol-chars' ¤Ï¤³¤Î¤è¤¦¤ÊÊ¸
+      »ú¤Î¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¡¥
+ *¹ÔËö¶ØÂ§Ê¸»ú*
+      Ê¸¡¿¶ç¤Î»Ï¤Þ¤ê¤ò¼¨¤¹µ­¹æ¤Ï¹ÔËö¤Ë¸½¤ì¤Ê¤¤¡¥¤³¤Î¤è¤¦¤Êµ­¹æ¤È¤·¤Æ¤Ï¤«
+      ¤®³ç¸Ì³«¤±¡Ê¡Ö¡Ë¡¤³ç¸Ì³«¤±¡Ê¡Ê¡Ë¤Ê¤É¤¬¤¢¤ë¡¥ÊÑ¿ô 
+      `kinsoku-eol-chars' ¤Ï¤³¤Î¤è¤¦¤ÊÊ¸»ú¤Î¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¡¥
+ 
+ Nemacs¤Ï¡¤°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÊýË¡¡Ê¶ØÂ§½èÍý¡Ë¤ò»È¤Ã¤Æ¹Ô¤ÎÄ¹¤µ¤òÊÑ¤¨¡¤¹ÔÆ¬¹Ô
+ Ëö¶ØÂ§¤Îµ¬Â§¤ò¼é¤ê¤Þ¤¹¡¥
+ 
+ *¤Ö¤é²¼¤²½èÍý*
+      ¹Ô¤ÎÄ¹¤µ¤ò£±¤Ê¤¤¤·Ê£¿ôÊ¸»úÊ¬¿­¤Ð¤¹¡¥ÊÑ¿ô`kinsoku-nobashi-limit'¤¬¿­
+      ¤Ð¤·ÆÀ¤ëºÇÂçÊ¸»ú¿ô¤ò¼¨¤·¤Þ¤¹¡¥
+ *ÄÉ¤¤¤À¤·½èÍý*
+      ¹Ô¤ÎÄ¹¤µ¤ò£±¤Ê¤¤¤·Ê£¿ôÊ¸»úÊ¬Ã»¤¯¤¹¤ë¡¥
+ 
+ Nemacs¤Ï¼¡¤Î¾ì¹ç¤Ë¸Â¤êÄÉ¤¤½Ð¤·¤ò¡¤¤½¤ì°Ê³°¤Î¾ì¹ç¤Ö¤é²¼¤²¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+    * ¶ØÂ§½èÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¹ÔËö¤¬¹ÔËö¶ØÂ§Ê¸»ú¤Ç¤¢¤ê¡¤¤½¤Î¼¡¤ÎÊ¸»ú¤¬¹ÔËö¶ØÂ§¤Ç
+      ¤Ê¤¤¾ì¹ç¡¥
+    * ¹ÔËö¶ØÂ§Ê¸»ú¤¬¹ÔËöÉÕ¶á¤ÇÂ³¤­¡¤ÊÑ¿ô`kinsoku-nobashi-limit'¤Ç¼¨¤µ¤ì¤ë
+      °Ê¾å¤Ë¤Ö¤é²¼¤²¤ëÉ¬Í×¤¬¤¢¤ë¾ì¹ç¡¥
+ 
+ ÊÑ¿ô¡§
+ ## Global Variable: kinsoku-bol-chars
+      ¹ÔÆ¬¶ØÂ§Ê¸»ú¤Î¥ê¥¹¥È¡¥
+ ## Global Variable: kinsoku-eol-chars
+      ¹ÔËö¶ØÂ§Ê¸»ú¤Î¥ê¥¹¥È¡¥
+ ## Global Variable: kinsoku-nobashi-limit
+      ¤Ö¤é²¼¤²½èÍý¤Ë¤è¤Ã¤Æ¿­¤Ð¤·ÆÀ¤ëÊ¸»ú¿ô¡Ê£±¥Ð¥¤¥ÈÊ¸»ú¡Ë¤ÎºÇÂçÃÍ¡¥
+ 
+ 
+ File: nemacs  Node: ¹ÔÂ·¤¨, Prev: ¹ÔµÍ¤á, Up: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨, Next: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ 
+ ¹ÔÂ·¤¨
+ ......
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¹ÔÂ·¤¨¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥±ÑÊ¸¤Î¾ì¹ç¤Ë¤Ï¸ì¤Î´Ö
+ ¤Î¶õÇòÊ¸»ú¤òÁý¤ä¤¹¤³¤È¤Ë¤è¤Ã¤Æ¹ÔÂ·¤¨¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡¥ÆüËÜ¸ì¤Î¾ì¹ç¤Ë¤Ï
+ ¸ì´Ö¤Ë¤Ï¶õÇòÊ¸»ú¤ò¤¤¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¡¤¶çÆÉÅÀ¤Î¸å¤í¤È alphanumerics ¤È
+ ÆüËÜ¸ìÊ¸»ú¤Î´Ö¤Ë¶õÇòÊ¸»ú¤òÁÞÆþ¤·¤Æ¹ÔÂ·¤¨¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, Prev: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, Up: µ¡Ç½, Next: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É
+ 
+ ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ ======================
+ 
+ ÆüËÜ¸ì½èÍý¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¡¤¶ë·ÁÎÎ°è½èÍý¡¤Î¬¾ÎÅ¸³«
+ (dynamic abbreviation)¤Î£³ÅÀ¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * PictureMode: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É.
+ * Rectangle: ¶ë·ÁÎÎ°è¤Î½èÍý.
+ * Abbrev: Æ°Åª¤ÊÎ¬¾ÎÅ¸³«.
+ 
+ 
+ File: nemacs  Node: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, Prev: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, Up: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, Next: ¶ë·ÁÎÎ°è¤Î½èÍý
+ 
+ ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É
+ ----------------
+ 
+ Nemacs ¤Ë¤ª¤±¤ë¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ï¥Õ¥¡¥¤¥ë`picture.el' ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ¡¤
+ Ê¸»ú¤ÎÁÞÆþÊý¸þ¡¤ÆüËÜ¸ìÆþÎÏ¤ÎÊýË¡¤Î£²ÅÀ¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * Direction:  Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * InputInPic: ÆüËÜ¸ìÆþÎÏ.
+ 
+ 
+ File: nemacs  Node: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥, Prev: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, Up: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, Next: ÆüËÜ¸ìÆþÎÏ
+ 
+ Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥
+ ....................
+ 
+ Emacs¤Î¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ç¤Ï¡¤£±Ê¸»úÁÞÆþ¤µ¤ì¤¿¸å¤Î¥«¡¼¥½¥ë¤Î°ÜÆ°Êý¸þ¤ò¾å
+ ²¼º¸±¦¼Ð¤á¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡¥¼Ð¤á¤ò»ØÄê¤·¤¿¾ì¹ç¤Ë¤Ï¡¤½Ä²£³ÆÊý¸þ¤Ë¤½¤ì¤¾¤ì£±
+ ¥«¥é¥à¡Ê¹Ô¡Ë°ÜÆ°¤·¤Þ¤¹¡¥¼Ð¤á»ØÄê¤Î¾õÂÖ¤Ï¥â¡¼¥É¥é¥¤¥ó¾å¤Î`nw', `ne',
+ `sw', `se' ¤Ê¤É¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯É½¼¨¤Ç¼¨¤µ¤ì¤Þ¤¹¡¥
+ 
+ Nemacs ¤Ç¤ÏÆüËÜ¸ìÊ¸»ú¤ÏÄÌ¾ï¤Î¥¢¥¹¥­¡¼Ê¸»ú¤Î£²ÇÜ¤ÎÊ¸»úÉý¤ò»ý¤Ä¤Î¤Ç¡¤¾åµ­
+ ¤Ë²Ã¤¨£²¥«¥é¥à¤È£±¹Ô¼Ð¤á¤È¤¤¤¦»ØÄê¤¬¹Ô¤Ê¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥»ØÄê¾õÂÖ
+ ¤Ï¡¤`wnw', `ene', `wsw', `ese'
+ ¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤ÇÉ½¼¨¤µ¤ì¤Þ¤¹¡¥
+ 
+ `se' ¤È `ese' »ØÄê»þ¤Î¥«¡¼¥½¥ë¤Î°ÜÆ°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
+      s
+       e
+        »Ø
+         Äê
+          »þ
+ 
+      s
+        e
+          s
+            »Ø
+              Äê
+                »þ
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: picture-movement-wnw
+      `C-c ~'¡¥ÁÞÆþ¸å¡¤º¸¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ ## Command: picture-movement-ene
+      `C-c \'¡¥ÁÞÆþ¸å¡¤±¦¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ ## Command: picture-movement-wsw
+      `C-c ?'¡¥ÁÞÆþ¸å¡¤º¸¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ ## Command: picture-movement-ese
+      `C-c |'¡¥ÁÞÆþ¸å¡¤±¦¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ÆüËÜ¸ìÆþÎÏ, Prev: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥, Up: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, Next: ¶ë·ÁÎÎ°è¤Î½èÍý
+ 
+ ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ç¤ÎÆüËÜ¸ìÆþÎÏ
+ ..............................
+ 
+ Emacs ¤Î picture¥â¡¼¥É¤Ç¤Ï¡¤ÄÌ¾ï¤ÎÊ¸»ú¤ÏÁ´¤Æ*picture-self-insert* ¤È¤¤¤¦
+ ¥³¥Þ¥ó¥É¤Ë³ä¤êÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡¥Nemacs ¤Ç¤Ï¡Ö¤¿¤Þ¤´¡×¤Ë¤è¤ëÆüËÜ¸ìÆþÎÏ¤ò
+ ¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¡Ö¤¿¤Þ¤´¡× »ÈÍÑ»þ¤Ë¤ÏÄÌ¾ïÊ¸»ú¤òÁ´¤Æ
+ *egg-self-insert-command* ¤Ë³ä¤êÉÕ¤±¤Þ¤¹¡¥¡Ö¤¿¤Þ¤´¡× ¤¬Ê¸»úÎó¤ò³ÎÄê¤·¤¿
+ ¸å¤Ë¸Æ¤Ö*self-insert-after-hook* ¤Ë¤Ï*picture-insert-after-hook* ¤¬³ä¤ê
+ ÉÕ¤±¤é¤ì¡¤¤³¤Î´Ø¿ô¤¬Ê¸»úÎó¤ÎÆþÎÏ½èÍý¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+ EGG °Ê³°¤ÎÆüËÜ¸ìÆþÎÏÊý¼° (SKK Åù) ¤òÍÑ¤¤¤ë¾ì¹ç¤Ï¡¤´Ø¿ô
+ `picture-insert-string' ¡Ê`C-c k'¡Ë¤ò¼Â¹Ô¤·¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤éÆüËÜ¸ìÊ¸»ú
+ Îó¤òÆÉ¤ß¹þ¤Þ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡¥ 
+ 
+ ´Ø¿ô:
+ ## Function: picture-insert-after-hook BEGIN END
+      ¸½ºß¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥¹¥È¥ê¥ó¥°¤òÁÞÆþ¤·¤¿¸å¼Â¹Ô¤µ¤ì¤ëhook.
+      £²°ú¿ôBEGIN¤ÈEND¤ÏÁÞÆþ¤·¤¿¥¹¥È¥ê¥ó¥°¤ÎÀèÆ¬¤ÈºÇ¸å¤Î°ÌÃÖ¤ò¼¨¤¹¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: picture-insert-string STR
+      `picture-movement'¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ»ØÄê¤µ¤ì¤¿Êý¸þ¤Ø¥Ý¥¤¥ó¥È¤ò°ÜÆ°¤µ¤»
+      ¤Ê¤¬¤é¡¤¥¹¥È¥ê¥ó¥°STR¤Î¹½À®Ê¸»ú¤ò°ìÊ¸»ú¤º¤ÄÁÞÆþ¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: ¶ë·ÁÎÎ°è¤Î½èÍý, Prev: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, Up: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, Next: Æ°Åª¤ÊÎ¬¾ÎÅ¸³«
+ 
+ ¶ë·ÁÎÎ°è¤Î½èÍý
+ --------------
+ 
+ ¶ë·ÁÎÎ°è (rectangle) ¤Î½èÍý¤Ï¥Õ¥¡¥¤¥ë`rect.el' ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ³È
+ Ä¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ GNU Emacs ¤Ï¥Ð¥Ã¥Õ¥¡Æâ¤Î¶ë·ÁÎÎ°è¤ËÂÐ¤·¤Æ¤µ¤Þ¤¶¤Þ¤Ê½èÍý¤ò¹Ô¤Ê¤¦´Ø¿ô¤ò»ý¤Ã
+ ¤Æ¤¤¤Þ¤¹¡¥¤·¤«¤·Nemacs ¤Ç¤Ï ¶ë·ÁÎÎ°è¤Î¶­³¦¤Ë¤Þ¤¿¤¬¤Ã¤ÆÆüËÜ¸ìÊ¸»ú¤¬Â¸ºß¤¹
+ ¤ë²ÄÇ½À­¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤ì¤ËÂÐ½è¤¹¤ë¤¿¤á¡¤¶­³¦¾å¤ÎÆüËÜ¸ìÊ¸»ú¤Ï¥¢¥¹¥­¡¼¤Î¥¹
+ ¥Ú¡¼¥¹£²Ê¸»ú¤ËÃÖ¤­´¹¤¨¤¿¾å¤Ç½èÍý¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+ ¤³¤Î¤¿¤á¡¤
+      		        ¢­
+      		¤³¤ì¤Ï rectangle ¤Î
+      		¶­³¦¤Ë,ÆüËÜ¸ìÊ¸»ú¤¬Â¸
+      		ºß¤¹¤ë¾ì¹ç¤Î½èÍý¤ÎÎã
+      		¤Ç¤¹¡£test test test
+      			     ¢¬
+ 
+ ¾å¤Î¤è¤¦¤Ê£²ÅÀ¤Ç»ØÄê¤µ¤ì¤¿¶ë·ÁÎÎ°è¤ËÂÐ¤·¤Æ `kill-rectangle'¤ò¹Ô¤Ê¤¦¤È¡¤
+ 
+      		        ¢­
+      		¤³¤ì¤Ï rele ¤Î
+      		¶­³¦¤Ë,Æü »ú¤¬Â¸
+      		ºß¤¹¤ë¾ì Íý¤ÎÎã
+      		¤Ç¤¹¡£test test
+      			¢¬
+ 
+ ¤È¤¤¤¦¤è¤¦¤Ë£²¹ÔÌÜ¤Î¡ÖÊ¸¡×¤È£³¹ÔÌÜ¤Î¡Ö¹ç¡×¤Î£²Ê¸»ú¤¬ºï½ü¤µ¤ì¤Þ¤¹¡¥¤Þ¤¿¡¤
+ `yank-rectangle' ¤ò¹Ô¤Ê¤Ã¤Æ¤â¡¤
+ 
+      		        ¢­
+      		¤³¤ì¤Ï rectangle ¤Î
+      		¶­³¦¤Ë,ÆüËÜ¸ì  »ú¤¬Â¸
+      		ºß¤¹¤ë¾ì  ¤Î½èÍý¤ÎÎã
+      		¤Ç¤¹¡£test test test
+      			     ¢¬
+ 
+ ¾åµ­¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¸µÄÌ¤ê¤Ë¤ÏÉü¸µ¤·¤Þ¤»¤ó¡¥
+ 
+ 
+ File: nemacs  Node: Æ°Åª¤ÊÎ¬¾ÎÅ¸³«, Prev: ¶ë·ÁÎÎ°è¤Î½èÍý, Up: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, Next: ¤½¤ÎÂ¾
+ 
+ Æ°Åª¤ÊÎ¬¾ÎÅ¸³«
+ --------------
+ 
+ ¥Õ¥¡¥¤¥ë`dabbrev.el' ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ¡¤ÆüËÜ¸ì¤Ë¤Ä¤¤¤Æ¤âÆ°ÅªÎ¬¾ÎÅ¸
+ ³«(dynamic abbreviation)¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¥ï¡¼¥É¤ÎÀÚ¤ê½Ð¤·¤Ï
+ ³ÈÄ¥word¤Ë½¾¤¤¤Þ¤¹¡¥
+ 
+ 
+ File: nemacs  Node: ¤½¤ÎÂ¾, Prev: µ¡Ç½, Up: NemacsUsers, Next: ¥É¥­¥å¥á¥ó¥È
+ 
+ Nemacs ¤Ë¤Ä¤¤¤Æ¤¤¤í¤¤¤í
+ ***********************
+ * Menu:
+ 
+ * Documents: ¥É¥­¥å¥á¥ó¥È.  ¥É¥­¥å¥á¥ó¥È¤Îºß½è
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°.  ¥­¡¼¥Þ¥Ã¥×¤ÎÊÑ¹¹ÅÀ
+ 
+ 
+ File: nemacs  Node: ¥É¥­¥å¥á¥ó¥È, Up: ¤½¤ÎÂ¾, Next: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°
+ 
+ Nemacs ¤Î¥É¥­¥å¥á¥ó¥È
+ =====================
+ Nemacs¤Ë´ØÏ¢¤¹¤ë¥É¥­¥å¥á¥ó¥È¤Ï¼¡¤Î¤â¤Î¤¬ (NEMACS)/etc ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê
+ ¤Þ¤¹¡¥
+ 
+ NEMACS.tut
+      ÆüËÜ¸ì Nemacs ¥Á¥å¡¼¥È¥ê¥¢¥ë¡¥ `C-h T'
+      (`help-with-tutorial-for-nemacs')¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥±Ñ¸ìÈÇ¤Ï 
+      `C-h t'¤Çµ¯Æ°¤µ¤ì¤Þ¤¹¡¥
+ NEMACS.log
+      Nemacs Ver.3.2.°Ê¹ß¤ÎÊÑ¹¹¡¥
+ 
+ °Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï (NEMACS)/man ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡¥
+ 
+ nemacs.texinfo
+      ¤³¤Îinfo¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡¥
+ egg.texinfo
+      "EGG"¥·¥¹¥Æ¥àÍÑinfo¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡¥
+ 
+ 
+ File: nemacs  Node: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°, Prev: ¥É¥­¥å¥á¥ó¥È, Up: ¤½¤ÎÂ¾, Next: ¥³¥Þ¥ó¥É°ìÍ÷
+ 
+ ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤ÎÊÑ¹¹
+ ====================
+ 
+ Nemacs ¤Ï`M-$'¤ò `esc-dol-map'¤Ë¡¤ `M-('¤ò`esc-par-map' ¤Ë¤½¤ì¤¾¤ì³ä¤êÉÕ
+ ¤±¤Æ¤¤¤Þ¤¹¡¥
+ 
+      (define-key esc-map "$" esc-dol-map)
+      (define-key esc-map "(" esc-par-map)
+      (define-key esc-dol-map "@" 'kanji-jis-start)
+      (define-key esc-dol-map "B" 'kanji-jis-start)
+      (define-key esc-par-map "B" 'kanji-jis-end)
+      (define-key esc-par-map "H" 'kanji-jis-end)
+      (define-key esc-par-map "J" 'kanji-jis-end)
+ 
+ ¤·¤¿¤¬¤Ã¤Æ¡¤¥ª¥ê¥¸¥Ê¥ëGNU Emacs¤Ç`M-$'¤¢¤ë¤¤¤Ï `M-('¤¬³ä¤êÉÕ¤±¤é¤ì¤Æ¤¤¤¿
+ °Ê²¼¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¿·¤¿¤Ê¥­¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+      (define-key esc-map "#" 'spell-word)
+      (define-key esc-map "{" 'insert-parentheses)
+ 
+ ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆJIS¥³¡¼¥É¤ò¼õ¤±ÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï¡¤Nemacs¤Ï´Ø¿ô
+ `kanji-jis-start' ¤È´Ø¿ô `kanji-jis-end'¤ò¸Æ¤Ó¤Þ¤¹¡¥JIS¥³¡¼¥É¤ò
+ »ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Î¥­¡¼¥Þ¥Ã¥×¤òÊÑ¤¨¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡¥
+ 
+ 
+ 
+ File: nemacs  Node: NemacsLispers, Up: Top, Next: ¥Þ¡¼¥«¤Î³ÈÄ¥
+ 
+ NemacsLisp
+ **********
+ 
+ EmacsLisp¤Ë´Ø¤·¤Æ¤¤¤¯¤Ä¤«¤Î³ÈÄ¥¤¬¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ * Menu:
+ 
+ * Marker: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * Attribute: Â°À­¤ÎÉÕÍ¿.
+ 
+ 
+ File: nemacs  Node: ¥Þ¡¼¥«¤Î³ÈÄ¥, Up: NemacsLispers, Next: Â°À­¤ÎÉÕÍ¿
+ 
+ ¥Þ¡¼¥«¤Î³ÈÄ¥
+ ============
+ 
+ Nemacs¤Ç¤Ï`point-type'¤È¤¤¤¦¿·¤·¤¤¥¿¥¤¥×¤Î¥Þ¡¼¥«¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥¤³¤Î¥¿
+ ¥¤¥×¤Î¥Þ¡¼¥«¤Î°ÌÃÖ¤Ø¤ÎÁÞÆþ¤Ï¡¤¤½¤Î¥Þ¡¼¥«¤ò¥Ý¥¤¥ó¥È¤Î¤è¤¦¤ËÁÞÆþ¤µ¤ì¤¿¥¹¥È
+ ¥ê¥ó¥°¤ÎÄ¾¸å¤Ë°ÜÆ°¤·¤Þ¤¹¡¥ÀèÆ¬¤Ë¥ª¥ê¥¸¥Ê¥ë¤Î¥Þ¡¼¥«¡¤ºÇ¸åÈø¤Ë¤³¤Î¿·¤·¤¤¥Þ¡¼
+ ¥«¤ò¤ª¤¯¤³¤È¤ÇÀßÄê¤µ¤ì¤ëÎÎ°è¤Ï¡¤ÎÎ°è¤ÎÁ´¥¹¥È¥ê¥ó¥°¤Îºï½ü¤äºÇ¸åÈø¤Ø¤Î¥¹¥È
+ ¥ê¥ó¥°¤ÎÁÞÆþ¤Ê¤É¤Ë¤Ä¤¤¤ÆÆÃÊÌ¤ÊÇÛÎ¸¤òÉ¬Í×¤È¤·¤Þ¤»¤ó¡¥
+ 
+ ¥³¥Þ¥ó¥É:
+ ## Command: set-marker-type MARKER POINT-TYPE
+      POINT-TYPE¤¬NIL¤Ç¤Ê¤±¤ì¤Ð¡¤¥Þ¡¼¥«MARKER¤Î¥¿¥¤¥×¤ò`point-type'¤ËÀßÄê¤¹¤ë¡¥
+      NIL¤Ê¤é¤Ð¥ª¥ê¥¸¥Ê¥ë¤Î¥¿¥¤¥×¤ËÀßÄê¤¹¤ë¡¥MARKER¤òÊÖ¤¹¡¥
+ 
+ ´Ø¿ô:
+ ## Function: insert-after-markers STRING/CHAR
+      °ú¿ô¤È¤·¤Æ¥¹¥È¥ê¥ó¥°¤«Ê¸»ú¡Ê¤¤¤¯¤Ä¤Ç¤â¡Ë¤ò¤È¤ë¡¥¥¹¥È¥ê¥ó¥°¡¿Ê¸»ú¡Ê¤¿¤Á¡Ë
+      ¤ò¥Ý¥¤¥ó¥È¤Î¸å¤í¤ËÁÞÆþ¤·¡¤ÁÞÆþ°ÌÃÖ¤ò»Ø¤·¤Æ¤¤¤ë`point-type'¤Î¥Þ¡¼¥«¤òÁÞÆþ
+      ¤µ¤ì¤¿¥Æ¥­¥¹¥È¤ÎÄ¾Á°¤Ë°ÜÆ°¤¹¤ë¡¥
+ 
+ 
+ File: nemacs  Node: Â°À­¤ÎÉÕÍ¿, Prev: ¥Þ¡¼¥«¤Î³ÈÄ¥, Up: NemacsLispers
+ 
+ Â°À­¤ÎÉÕÍ¿
+ ==========
+ ¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÎÎ°è¤Ë¤Ä¤¤¤Æ¡¤É½¼¨¤Ë´Ø¤¹¤ëÂ°À­¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥Â°À­¤Ï
+ X-Window¾å¤Ç¤Î¤ßÍ­¸ú¤Ç¤¹¡¥¸½ºßÄó¶¡¤µ¤ì¤Æ¤¤¤ëÂ°À­¤Ï²¼Àþ¤ÈÈ¿Å¾¤Ç¤¹¡¥
+ 
+ ´Ø¿ô:
+ ## Command: attribute-on-region ATTR &optional FROM TO
+      ÎÎ°èÆâ¤ÎÂ°À­ATTR¤òon¤Ë¤¹¤ë¡¥ATTR¤Ï'underline'¤Þ¤¿¤Ï'inverse'¡¥
+      ¥×¥í¥°¥é¥à¤«¤é¸Æ¤Ö¾ì¹ç¤Ï¤µ¤é¤Ë£²°ú¿ôFROM¤ÈTO¤ò¤È¤ë¡¥FROM¤¬NIL¤Î¾ì¹ç¤Ë¤Ï
+      (point-min)¡¤TO¤¬NIL¤Î¾ì¹ç¤Ë¤Ï(point-max)¤¬ÍÑ¤¤¤é¤ì¤ë¡¥
+ ## Command: attribute-off-region ATTR &optional FROM TO
+      ÎÎ°èÆâ¤ÎÂ°À­ATTR¤òoff¤Ë¤¹¤ë¡¥ATTR¤Ï'underline'¤Þ¤¿¤Ï'inverse'¡¥
+ ## Function: attribute-get-attribute &optional POS
+      °ÌÃÖPOS¤Îattribute range¤òÊÖ¤¹¡¥POS¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï¥«¥ì¥ó¥È¥Ý¥¤¥ó¥È¡¥
+      attribute range¤Ï¡¤attribute type¡¤¤½¤Î»ÏÅÀ¡¤½ªÅÀ¤Î¥ê¥¹¥È¡¥
+ 
+ 
+ 
+ File: nemacs  Node: ¥³¥Þ¥ó¥É°ìÍ÷, Up: NemacsUsers, Next: ³µÇ°º÷°ú
+ 
+ ¥³¥Þ¥ó¥É¥«¡¼¥É
+ **************
+ 
+ *¥Á¥å¡¼¥È¥ê¥¢¥ë*
+ ÆüËÜ¸ìÈÇ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òµ¯Æ°
+      `C-h T'
+ 
+ *ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¤ÎÀßÄê*
+ ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¢Îalphanumerics¥â¡¼¥É¤ÎÀÚÂØ¤¨
+      `C-x C-k t'
+ ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¢Îalphanumerics¥â¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+      `C-x C-k T'
+ 
+ *»ÈÍÑ¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ÎÀßÄê*
+ ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É¤ÎÀßÄê
+      `M-x set-kanji-input-code'
+ ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+      `C-x C-k i'
+ ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É¤ÎÀßÄê
+      `M-x set-kanji-displkay-code'
+ ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+      `C-x C-k d'
+ ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤ÎÀßÄê
+      `M-x set-kanji-fileio-code'
+ ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+      `C-x C-k f'
+ ¥Õ¥¡¥¤¥ëÆÉ¤ß¹þ¤ß»þ¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î°ì»þÅªÀÚÂØ¤¨
+      `C-u'N`C-x C-f'
+ ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ÎÀßÄê
+      `M-x set-process-kanji-code'
+ ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+      `C-x C-k p'
+ ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¤òÉ½¼¨
+      `C-x C-k C'¤Þ¤¿¤Ï`C-x C-k c'
+ ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+      `C-x C-k F'
+ ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+      `C-x C-k P'
+ 
+ *¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ëÃµº÷*
+ ¥¹¥È¥ê¥ó¥°ÆþÎÏ
+      ¡Ê`C-s',`C-r'¤Ê¤É¤Î¸å¡Ë`C-k'STRINGRET
+ 
+ *¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É*
+ º¸¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+      `C-c ~'
+ ±¦¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+      `C-c \'
+ º¸¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+      `C-c ?'
+ ±¦¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+      `C-c |'
+ 
+ *ÊÑ¹¹*
+ ¥Ý¥¤¥ó¥È¤Î¤¢¤ëÃ±¸ì¤ÎÄÖ¤ê¥Á¥§¥Ã¥¯
+      `M-#'
+ ¤«¤Ã¤³¤ÎÁÞÆþ
+      `M-{'
+ 
+ 
+ File: nemacs  Node: ³µÇ°º÷°ú, Prev: ¥³¥Þ¥ó¥É°ìÍ÷, Up: Top, Next: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ 
+ ³µÇ°º÷°ú
+ ********
+ 
+ 
+ * Menu:
+ 
+ * EUC ¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * JIS ¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * Nemacs: ³µÀâ.
+ * alphanumerics: ¥Ð¥Ã¥Õ¥¡´ÉÍý.
+ * char-category: char-category.
+ * char-syntax: char-syntax.
+ * character quote: char-syntax.
+ * close parenthesis: char-syntax.
+ * comment ender: char-syntax.
+ * comment starter: char-syntax.
+ * expression prefix operator: char-syntax.
+ * find file: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß.
+ * first or second byte of a Japanese character: char-syntax.
+ * key maps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°.
+ * open parenthesis: char-syntax.
+ * paired delimiter: char-syntax.
+ * punctuation: char-syntax.
+ * string quote: char-syntax.
+ * symbol constituent: char-syntax.
+ * whitespace syntax: char-syntax.
+ * word constituent: char-syntax.
+ * ±Ñ¿ô»ú: char-category.
+ * ÄÉ¤¤¤À¤·½èÍý: ¹ÔµÍ¤á.
+ * ³ÈÄ¥word: µ¿»÷Ê¸Àá.
+ * ²¼Àþ: Â°À­¤ÎÉÕÍ¿.
+ * ¤«¤¿¤«¤Ê: char-category.
+ * ¤«¤¿¤«¤Ê: ÆüËÜ¸ìÀµ½ñË¡.
+ * ¤«¤Ê: ÆüËÜ¸ìÀµ½ñË¡.
+ * ´Á»ú: char-category.
+ * ´Á»ú: ÆüËÜ¸ìÀµ½ñË¡.
+ * ´Á»ú: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ´Á»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * ³°Éô¥×¥í¥»¥¹: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * µ­¹æ: char-category.
+ * ¶ØÂ§: ¹ÔµÍ¤á.
+ * µ¿»÷Ê¸Àá: µ¿»÷Ê¸Àá.
+ * ¹ÔÂ·¤¨: ¹ÔÂ·¤¨.
+ * ¹ÔµÍ¤á: ¹ÔµÍ¤á.
+ * ¥®¥ê¥·¥ãÊ¸»ú: char-category.
+ * ¶ë·ÁÎÎ°è: ¶ë·ÁÎÎ°è¤Î½èÍý.
+ * ¥³¡¼¥ÉÊÑ´¹¥³¥Þ¥ó¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * ¸ì: µ¿»÷Ê¸Àá.
+ * ¥µ¡¼¥Ð¥×¥í¥»¥¹: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * ¥·¥Õ¥ÈJIS ¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * Àµµ¬É½¸½: ÆüËÜ¸ìÀµµ¬É½¸½.
+ * Ãµº÷: Ãµº÷.
+ * ÃÖ´¹: Ãµº÷.
+ * ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É : ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨ : ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ * ÆÃ¼ì¤«¤¿¤«¤Ê: char-category.
+ * ÆÃ¼ì´Á»ú: char-category.
+ * ÆÃ¼ì¤Ò¤é¤¬¤Ê: char-category.
+ * ¥É¥­¥å¥á¥ó¥È: ¥É¥­¥å¥á¥ó¥È.
+ * ÆüËÜ¸ì: µ¡Ç½.
+ * ÆüËÜ¸ì½èÍý: µ¡Ç½.
+ * ÆüËÜ¸ìÀµ½ñË¡: ÆüËÜ¸ìÀµ½ñË¡.
+ * ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½.
+ * ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÊÑ´¹: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * È¿Å¾: Â°À­¤ÎÉÕÍ¿.
+ * ¥Ð¥Ã¥Õ¥¡: ¥Ð¥Ã¥Õ¥¡´ÉÍý.
+ * ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ¥Ð¥Ã¥Õ¥¡À¸À®: ¥Ð¥Ã¥Õ¥¡À¸À®.
+ * ¥Ð¥Ã¥Õ¥¡ÆâÉôÉ½¸½: ÆâÉôÉ½¸½.
+ * É½¼¨: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ * ¤Ò¤é¤¬¤Ê: char-category.
+ * ¤Ò¤é¤¬¤Ê: ÆüËÜ¸ìÀµ½ñË¡.
+ * ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É.
+ * ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É: ¥Õ¥¡¥¤¥ëÆþÎÏ.
+ * ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ¥Õ¥¡¥¤¥ë½ÐÎÏ: ¥Õ¥¡¥¤¥ë½ÐÎÏ.
+ * ¥Õ¥¡¥¤¥ëÁÞÆþ: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ.
+ * ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.
+ * ¥Õ¥¡¥¤¥ëÆþÎÏ: ¥Õ¥¡¥¤¥ëÆþÎÏ.
+ * ¥Õ¥©¥ó¥È: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ * ¤Ö¤é²¼¤²½èÍý: ¹ÔµÍ¤á.
+ * Ê¸Àá: ÆüËÜ¸ìÀµ½ñË¡.
+ * ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * ¥×¥í¥»¥¹´ÖÄÌ¿®: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È.
+ * ¥×¥í¥»¥¹´ÖÄÌ¿®: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * ¥Þ¡¼¥«: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * Ì¤ÄêµÁ: char-category.
+ * ¥â¡¼¥É¥é¥¤¥ó: ¥Ð¥Ã¥Õ¥¡À¸À®.
+ * ¥í¥·¥¢Ê¸»ú: char-category.
+ 
+ 
+ File: nemacs  Node: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú, Up: Top, Next: ³µÇ°º÷°ú
+ 
+ ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ **************
+ 
+ 
+ * Menu:
+ 
+ * attribute-get-attribute: Â°À­¤ÎÉÕÍ¿.
+ * attribute-off-region: Â°À­¤ÎÉÕÍ¿.
+ * attribute-on-region: Â°À­¤ÎÉÕÍ¿.
+ * call-process: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * call-process-region: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * change-default-fileio-code: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.
+ * change-default-process-code: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * change-display-code: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ * change-fileio-code: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.
+ * change-input-code: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * change-process-code: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * char-category: ¥·¥ó¥¿¥Ã¥¯¥¹.
+ * char-syntax: ¥·¥ó¥¿¥Ã¥¯¥¹.
+ * check-region-kanji-code: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * check-string-kanji-code: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * convert-region-kanji-code: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * convert-string-kanji-code: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * define-program-kanji-code: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È.
+ * define-service-kanji-code: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È.
+ * egg-self-insert-command: ÆüËÜ¸ìÆþÎÏ.
+ * fill-paragrap: ¹ÔµÍ¤á.
+ * find-alternate-file: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß.
+ * find-file: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß.
+ * find-file-other-window: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß.
+ * find-kanji-process-code: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È.
+ * help-with-tutorial-for-nemacs: ³µÀâ.
+ * insert-after-markers: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * isearch: Ãµº÷.
+ * isearch-backward: Ãµº÷.
+ * isearch-backward-regexp: Ãµº÷.
+ * isearch-forward: Ãµº÷.
+ * isearch-forward-regexp: Ãµº÷.
+ * jcode-type: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * jis-code-input: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * kanji-char-after: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * kanji-delete-region: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô.
+ * kanji-jis-end: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * kanji-jis-start: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * list-kanji-code: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * list-kanji-code-briefly: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.
+ * nemacs-version: ³µÀâ.
+ * open-network-stream: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * picture-insert-after-hook: ÆüËÜ¸ìÆþÎÏ.
+ * picture-insert-string: ÆüËÜ¸ìÆþÎÏ.
+ * picture-movement-ene: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * picture-movement-ese: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * picture-movement-wnw: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * picture-movement-wsw: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * process-kanji-code: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * re-search-backward: Ãµº÷.
+ * re-search-forward: Ãµº÷.
+ * replace-regexp: Ãµº÷.
+ * replace-string: Ãµº÷.
+ * search-backward: Ãµº÷.
+ * search-forward: Ãµº÷.
+ * self-insert-after-hook: ÆüËÜ¸ìÆþÎÏ.
+ * set-default-fileio-code: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.
+ * set-default-kanji-process-code: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * set-kanji-display-code: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ * set-kanji-expected-code: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ.
+ * set-kanji-expected-code: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß.
+ * set-kanji-fileio-code: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ.
+ * set-kanji-fileio-code: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.
+ * set-kanji-input-code: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.
+ * set-marker-type: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * set-process-kanji-code: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * start-process: ¥×¥í¥»¥¹´ÖÄÌ¿®.
+ * toggle-default-kanji-flag: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * toggle-kanji-flag: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.
+ * view-nemacs-news: ³µÀâ.
+ * x-set-kfont: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.
+ 
+ 
+ Tag table:
+ Node: Top99
+ Node: NemacsUsers302
+ Node: ³µÀâ1703
+ Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É2874
+ Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï4824
+ Node: ¥Ð¥Ã¥Õ¥¡´ÉÍý6361
+ Node: ÆâÉôÉ½¸½6908
+ Node: ¥Ð¥Ã¥Õ¥¡À¸À®7332
+ Node: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ8559
+ Node: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨10649
+ Node: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ12336
+ Node: ¥Õ¥¡¥¤¥ëÆþÎÏ15566
+ Node: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ17230
+ Node: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß19144
+ Node: ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ20680
+ Node: ¥Õ¥¡¥¤¥ë½ÐÎÏ21362
+ Node: ¥×¥í¥»¥¹´ÖÄÌ¿®22151
+ Node: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È25773
+ Node: µ¡Ç½28144
+ Node: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô28501
+ Node: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½30699
+ Node: ÆüËÜ¸ìÀµ½ñË¡31627
+ Node: ¥·¥ó¥¿¥Ã¥¯¥¹32472
+ Node: char-syntax33548
+ Node: char-category34076
+ Node: µ¿»÷Ê¸Àá35266
+ Node: Ãµº÷36308
+ Node: ÆüËÜ¸ìÀµµ¬É½¸½37107
+ Node: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨38498
+ Node: ¹ÔµÍ¤á38771
+ Node: ¹ÔÂ·¤¨40601
+ Node: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥40989
+ Node: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É41357
+ Node: Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥41719
+ Node: ÆüËÜ¸ìÆþÎÏ42887
+ Node: ¶ë·ÁÎÎ°è¤Î½èÍý43974
+ Node: Æ°Åª¤ÊÎ¬¾ÎÅ¸³«45120
+ Node: ¤½¤ÎÂ¾45414
+ Node: ¥É¥­¥å¥á¥ó¥È45645
+ Node: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°46200
+ Node: NemacsLispers47159
+ Node: ¥Þ¡¼¥«¤Î³ÈÄ¥47358
+ Node: Â°À­¤ÎÉÕÍ¿48248
+ Node: ¥³¥Þ¥ó¥É°ìÍ÷49069
+ Node: ³µÇ°º÷°ú50480
+ Node: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú53237
+ 
+ End tag table
diff -arcN emacs-18.55/lisp/bytecomp.el nemacs-3.3.2/lisp/bytecomp.el
*** emacs-18.55/lisp/bytecomp.el	Sun Mar 20 10:29:42 1988
--- nemacs-3.3.2/lisp/bytecomp.el	Wed Jun  6 03:15:37 1990
***************
*** 1,3 ****
--- 1,6 ----
+ ;;; 87.7.20  modified by M.Sato <masahiko@nttlab.NTT.junet>
+ ;;; 88.1.18  Nemacs Ver.2.0
+ 
  ;; Compilation of Lisp code into byte code.
  ;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 259,265 ****
  			 (looking-at "\"")
  			 (progn (forward-char 1)
  				(insert "\\\n"))))))))
!       (let ((vms-stmlf-recfm t))
  	(write-region 1 (point-max)
  		      (concat (file-name-sans-versions filename) "c")))
        (kill-buffer (current-buffer))
--- 262,272 ----
  			 (looking-at "\"")
  			 (progn (forward-char 1)
  				(insert "\\\n"))))))))
!  ;;; patch by M.Sato  87.7.20
!  ;;;  (let ((vms-stmlf-recfm t))
!       (let ((vms-stmlf-recfm t)
! 	    (kanji-flag nil))
!  ;;; end of patch
  	(write-region 1 (point-max)
  		      (concat (file-name-sans-versions filename) "c")))
        (kill-buffer (current-buffer))
diff -arcN emacs-18.55/lisp/dabbrev.el nemacs-3.3.2/lisp/dabbrev.el
*** emacs-18.55/lisp/dabbrev.el	Wed Dec  9 08:18:02 1987
--- nemacs-3.3.2/lisp/dabbrev.el	Wed Jun  6 03:15:41 1990
***************
*** 1,3 ****
--- 1,5 ----
+ ;;; 89.9.21  modified for Nemacs Ver.3.2 by K.Handa
+ 
  ;; Dynamic abbreviation package for GNU Emacs.
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 115,121 ****
  	(setq last-dabbrevs-expansion-location nil)
  	(setq last-dabbrev-table nil))  	; Clear table of things seen.
  
!       (setq pattern (concat "\\b" (regexp-quote abbrev) "\\(\\sw\\|\\s_\\)+"))
        ;; Try looking backward unless inhibited.
        (if (>= which 0)
  	  (progn 
--- 117,125 ----
  	(setq last-dabbrevs-expansion-location nil)
  	(setq last-dabbrev-table nil))  	; Clear table of things seen.
  
!       ;;; patch by K.Handa  89.9.21
!       (setq pattern (concat "\\b" (regexp-quote abbrev) "\\(\\w\\|\\s_\\)+"))
!       ;;; end of patch
        ;; Try looking backward unless inhibited.
        (if (>= which 0)
  	  (progn 
***************
*** 204,212 ****
  		       (re-search-forward pattern nil t))))
  
  	(if (not missing)
! 	    (progn
! 	      (setq result (buffer-substring (match-beginning 0)
! 					     (match-end 0)))
  	      (let* ((test last-dabbrev-table))
  		(while (and test
  			    (not
--- 208,226 ----
  		       (re-search-forward pattern nil t))))
  
  	(if (not missing)
! 	    ;;; patch by K.Handa  89.9.21
! 	    (let ((begin (match-beginning 0))
! 		  (end (match-end 0)))
! 	      (goto-char begin)
! 	      (save-excursion
! 		(if (re-search-forward "\\w\\b\\w" end t)
! 		    (progn
! 		      (goto-char (match-end 0))
! 		      (forward-char -1)
! 		      (setq end (point)))))
! 	      (goto-char (if reverse begin end))
! 	      (setq result (buffer-substring begin end))
! 	      ;;; end of patch
  	      (let* ((test last-dabbrev-table))
  		(while (and test
  			    (not
diff -arcN emacs-18.55/lisp/debug.el nemacs-3.3.2/lisp/debug.el
*** emacs-18.55/lisp/debug.el	Thu Dec 29 13:22:41 1988
--- nemacs-3.3.2/lisp/debug.el	Wed Jun  6 03:15:42 1990
***************
*** 1,3 ****
--- 1,10 ----
+ ;;; Ver.18.53   created by S. Tomura 89-Apr-14
+ ;;; Ver.18.52   created by S. Tomura 89-Mar-16
+ ;;; Ver.18.50   created by S. Tomura 88-Jun-11
+ ;;; Nemacs Ver.2.1  
+ ;;; Ver.18.47a  modified by S. Tomura 88-Mar-23
+ ;;;             kanji-flag is set to nil at debugger buffer
+ ;;;
  ;; Debuggers and related commands for Emacs
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 52,57 ****
--- 59,67 ----
  	      (backtrace))
  	    (goto-char (point-min))
  	    (debugger-mode)
+ 	    ;;; patch by S. Tomura 89-Mar-17
+ 	    (setq kanji-flag nil)
+ 	    ;;; end of patch
  	    (delete-region (point)
  			   (progn
  			     (forward-sexp 8)
diff -arcN emacs-18.55/lisp/egg-keymap.el nemacs-3.3.2/lisp/egg-keymap.el
*** emacs-18.55/lisp/egg-keymap.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/egg-keymap.el	Wed Jun  6 03:17:11 1990
***************
*** 0 ****
--- 1,161 ----
+ ;; Usefull key binding for Sun Function keys 
+ ;; Coded by Yutaka Ishikawa at ETL (yisikawa@etl.junet)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;
+ 
+ ;;
+ ;; Table of Function key codes:
+ ;;
+ ;;;		x11term/sun	x11term/others	xterm/all
+ ;;;
+ ;;; XK_L1:	"\e[192z"
+ ;;; XK_L2:	"\e[193z"
+ ;;; XK_L3:	"\e[194z"
+ ;;; XK_L4:	"\e[195z"
+ ;;; XK_L5:	"\e[196z"
+ ;;; XK_L6:	"\e[197z"
+ ;;; XK_L7:	"\e[198z"
+ ;;; XK_L8:	"\e[199z"
+ ;;; XK_L9:	"\e[200z"
+ ;;; XK_L10:	"\e[201z"
+ ;;; XK_R1:	"\e[208z"
+ ;;; XK_R2:	"\e[209z"
+ ;;; XK_R3:	"\e[210z"
+ ;;; XK_R4:	"\e[211z"
+ ;;; XK_R5:	"\e[212z"
+ ;;; XK_R6:	"\e[213z"
+ ;;; XK_R7:	"\e[214z"
+ ;;; XK_R8:	"\e[215z"
+ ;;; XK_R9:	"\e[216z"
+ ;;; XK_R10:	"\e[217z"
+ ;;; XK_R11:	"\e[218z"
+ ;;; XK_R12:	"\e[219z"
+ ;;; XK_R13:	"\e[220z"
+ ;;; XK_R14:	"\e[221z"
+ ;;; XK_R15:	"\e[222z"
+ ;;;
+ ;;; XK_Break:	"\e[223z" /* Sun3 "Alternate" key */
+ ;;;
+ ;;; XK_F1:	"\e[224z"	"\e[11~"	"\e[11~"
+ ;;; XK_F2:	"\e[225z"	"\e[12~"	"\e[12~"
+ ;;; XK_F3:	"\e[226z"	"\e[13~"	"\e[13~"
+ ;;; XK_F4:	"\e[227z"	"\e[14~"	"\e[14~"
+ ;;; XK_F5:	"\e[228z"	"\e[15~"	"\e[15~"
+ ;;; XK_F6:	"\e[229z"	"\e[17~"	"\e[17~"
+ ;;; XK_F7:	"\e[230z"	"\e[18~"	"\e[18~"
+ ;;; XK_F8:	"\e[231z"	"\e[19~"	"\e[19~"
+ ;;; XK_F9:	"\e[232z"	"\e[20~"	"\e[20~"
+ ;;;
+ ;;; XK_F10:			"\e[21~"	"\e[21~"
+ ;;; XK_F11:			"\e[23~"	"\e[23~"
+ ;;; XK_F12:			"\e[24~"	"\e[24~"
+ ;;; XK_F13:			"\e[25~"	"\e[25~"
+ ;;; XK_F14:			"\e[26~"	"\e[26~"
+ ;;; XK_F15:			"\e[28~"	"\e[28~"
+ ;;; XK_Help:			"\e[28~"	"\e[28~"
+ ;;; XK_F16:			"\e[29~"	"\e[29~"
+ ;;; XK_Menu:			"\e[29~"	"\e[29~"
+ ;;; XK_F17:			"\e[31~"	"\e[31~"
+ ;;; XK_F18:			"\e[32~"	"\e[32~"
+ ;;; XK_F19:			"\e[33~"	"\e[33~"
+ ;;; XK_F20:			"\e[34~"	"\e[34~"
+ ;;;	
+ ;;; XK_Find :			"\e[1~"		"\e[1~"
+ ;;; XK_Insert:			"\e[2~"		"\e[2~"
+ ;;; XK_Delete:			"\e[3~"		"\e[3~"
+ ;;; XK_Select:			"\e[4~"		"\e[4~"
+ ;;; XK_Prior:			"\e[5~"		"\e[5~"
+ ;;; XK_Next:			"\e[6~"		"\e[6~"
+ ;;; default:	"\e[-1z"	"\e[-1~"
+ ;;;
+ ;;; XK_Left:	"\C-b"		"\C-b"		"\eOC"(XK_R12)
+ ;;; XK_Right:	"\C-f"		"\C-f"		"\eOD"(XK_R10)
+ ;;; XK_Up:	"\C-p"		"\C-p"		"\eOA"(XK_R8)
+ ;;; XK_Down:	"\C-n"		"\C-n"		"\eOB"(XK_R10)
+ ;;;
+ ;;;
+ 
+ 
+ (defvar sun-rkeymap (make-keymap))
+ (fset 'sun-rprefix sun-rkeymap)
+ 
+ ;;;
+ ;;; Key bindings for X11 terminals(x11term)
+ ;;;
+ 
+ (define-key global-map "\eO" 'sun-rprefix)
+ (define-key sun-rkeymap "A" 'previous-line)
+ (define-key sun-rkeymap "B" 'next-line)
+ (define-key sun-rkeymap "C" 'forward-char)
+ (define-key sun-rkeymap "D" 'backward-char)
+ 
+ (defvar sun-fkeymap (make-keymap))
+ (fset 'sun-fprefix sun-fkeymap)
+ ;;;
+ ;;; Key bindings for non Sun X11 terminal(x11term and [kx]term)
+ ;;;
+ (define-key global-map "\e[" 'sun-fprefix)
+ (define-key sun-fkeymap "["   'backward-paragraph) ; old "\e[" assignment
+ (define-key sun-fkeymap "11~" 'change-fileio-code)	; F1
+ (define-key sun-fkeymap "12~" 'edit-dict-item)	        ; F2
+ (define-key sun-fkeymap "13~" 'jis-code-input)   	; F3
+ (define-key sun-fkeymap "14~" 'toroku-region)		; F4
+ (define-key sun-fkeymap "15~" 'zenkaku-region)		; F5
+ (define-key sun-fkeymap "17~" 'hankaku-region)		; F6
+ (define-key sun-fkeymap "18~" 'katakana-region)		; F7
+ (define-key sun-fkeymap "19~" 'hiragana-region)		; F8
+ (define-key sun-fkeymap "20~" 'henkan-region)		; F9
+ 
+ (define-key sun-fkeymap "23~" 'insert-buffer)		; F11 or         L1
+ (define-key sun-fkeymap "24~" 'insert-file)		; F12 or         L2
+ (define-key sun-fkeymap "25~" 'eval-region)		; F13 or         L3
+ (define-key sun-fkeymap "26~" 'eval-current-buffer)	; F14 or         L4
+ (define-key sun-fkeymap "28~" 'enlarge-window)		; F15 or Help or L5
+ (define-key sun-fkeymap "29~" 'shrink-window)		; F16 or Menu or L6
+ (define-key sun-fkeymap "31~" 'revert-buffer)		; F17 or         L7
+ (define-key sun-fkeymap "32~" 'revert-buffer)		; F18 or         L8
+ (define-key sun-fkeymap "33~" 'beginning-of-buffer)	; F19 or         L9
+ (define-key sun-fkeymap "34~" 'end-of-buffer)		; F20 or         L10
+ 
+ ;;;
+ ;;; Key bindings for Sun X11 terminals(x11term)
+ ;;;
+ 
+ (define-key sun-fkeymap "192z" 'insert-buffer)		; L1
+ (define-key sun-fkeymap "193z" 'insert-file)		; L2
+ (define-key sun-fkeymap "194z" 'eval-region)		; L3
+ (define-key sun-fkeymap "195z" 'eval-current-buffer)	; L4
+ (define-key sun-fkeymap "196z" 'enlarge-window)		; L5
+ (define-key sun-fkeymap "197z" 'shrink-window)		; L6
+ (define-key sun-fkeymap "198z" 'revert-buffer)		; L7
+ (define-key sun-fkeymap "199z" 'revert-buffer)		; L8
+ (define-key sun-fkeymap "200z" 'beginning-of-buffer)	; L9
+ (define-key sun-fkeymap "201z" 'end-of-buffer)		; L10
+ 
+ (define-key sun-fkeymap "224z" 'change-fileio-code)	; F1
+ (define-key sun-fkeymap "225z" 'edit-dict-item)	        ; F2
+ (define-key sun-fkeymap "226z" 'jis-code-input)   	; F3
+ (define-key sun-fkeymap "227z" 'toroku-region)		; F4
+ (define-key sun-fkeymap "228z" 'zenkaku-region)		; F5
+ (define-key sun-fkeymap "229z" 'hankaku-region)		; F6
+ (define-key sun-fkeymap "230z" 'katakana-region)	; F7
+ (define-key sun-fkeymap "231z" 'hiragana-region)	; F8
+ (define-key sun-fkeymap "232z" 'henkan-region)		; F9
diff -arcN emacs-18.55/lisp/egg-rk.el nemacs-3.3.2/lisp/egg-rk.el
*** emacs-18.55/lisp/egg-rk.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/egg-rk.el	Wed Jun  6 03:17:11 1990
***************
*** 0 ****
--- 1,508 ----
+ ;; Basic Roma-to-Kana Translation Table for Egg
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;; 90.3.2   modified for Nemacs Ver.3.3.1
+ ;;;	by jiro@math.keio.ac.jp (TANAKA Jiro)
+ ;;;     proposal of keybinding for JIS symbols
+ 
+ (define-egg-mode "roma-kana" t)
+ 
+ (defvar aa '("k" "s" "t" "h" "y" "r" "w" "g" "z" "d" "b"
+ 		 "p" "c" "f" "j" "v"))
+ (defrule  '(aa aa) "¤Ã" '(aa))
+ 
+ (defrule "tch"  "¤Ã" "ch")
+ 
+ (defvar q1 '("b" "m" "p"))
+ 
+ (defrule '("m" q1) "¤ó" '(q1))
+ 
+ (defrule "n" "¤ó")
+ (defrule "N" "¤ó")
+ 
+ (defvar enable-double-n-syntax nil "*Enable ""nn"" input for ""¤ó"" ")
+ 
+ (if enable-double-n-syntax 
+     (defrule "nn" "¤ó"))
+ 
+ (defrule "n'" "¤ó")
+ 
+ (defvar small '("x") )
+ 
+ (defrule '(small "a") "¤¡")
+ (defrule '(small "i") "¤£")
+ (defrule '(small "u") "¤¥")
+ (defrule '(small "e") "¤§")
+ (defrule '(small "o") "¤©")
+ (defrule '(small "ya") "¤ã")
+ (defrule '(small "yu") "¤å")
+ (defrule '(small "yo") "¤ç")
+ (defrule '(small "tu") "¤Ã")
+ (defrule '(small "tsu") "¤Ã")
+ (defrule '(small "wa") "¤î")
+ 
+ 
+ (defrule   "a"    "¤¢")
+ (defrule   "i"    "¤¤")
+ (defrule   "u"    "¤¦")
+ (defrule   "e"    "¤¨")
+ (defrule   "o"    "¤ª")
+ (defrule   "ka"   "¤«")
+ (defrule   "ki"   "¤­")
+ (defrule   "ku"   "¤¯")
+ (defrule   "ke"   "¤±")
+ (defrule   "ko"   "¤³")
+ (defrule   "kya"  "¤­¤ã")
+ (defrule   "kyu"  "¤­¤å")
+ (defrule   "kye"  "¤­¤§")
+ (defrule   "kyo"  "¤­¤ç")
+ (defrule   "sa"   "¤µ")
+ (defrule   "si"   "¤·")
+ (defrule   "su"   "¤¹")
+ (defrule   "se"   "¤»")
+ (defrule   "so"   "¤½")
+ (defrule   "sya"  "¤·¤ã")
+ (defrule   "syu"  "¤·¤å")
+ (defrule   "sye"  "¤·¤§")
+ (defrule   "syo"  "¤·¤ç")
+ (defrule   "sha"  "¤·¤ã")
+ (defrule   "shi"  "¤·")
+ (defrule   "shu"  "¤·¤å")
+ (defrule   "she"  "¤·¤§")
+ (defrule   "sho"  "¤·¤ç")
+ (defrule   "ta"   "¤¿")
+ (defrule   "ti"   "¤Á")
+ (defrule   "tu"   "¤Ä")
+ (defrule   "te"   "¤Æ")
+ (defrule   "to"   "¤È")
+ (defrule   "tya"  "¤Á¤ã")
+ (defrule   "tyi"  "¤Æ¤£")
+ (defrule   "tyu"  "¤Á¤å")
+ (defrule   "tye"  "¤Á¤§")
+ (defrule   "tyo"  "¤Á¤ç")
+ (defrule   "tsu"  "¤Ä")
+ (defrule   "cha"  "¤Á¤ã")
+ (defrule   "chi"  "¤Á")
+ (defrule   "chu"  "¤Á¤å")
+ (defrule   "che"  "¤Á¤§")
+ (defrule   "cho"  "¤Á¤ç")
+ (defrule   "na"   "¤Ê")
+ (defrule   "ni"   "¤Ë")
+ (defrule   "nu"   "¤Ì")
+ (defrule   "ne"   "¤Í")
+ (defrule   "no"   "¤Î")
+ (defrule   "nya"  "¤Ë¤ã")
+ (defrule   "nyu"  "¤Ë¤å")
+ (defrule   "nye"  "¤Ë¤§")
+ (defrule   "nyo"  "¤Ë¤ç")
+ (defrule   "ha"   "¤Ï")
+ (defrule   "hi"   "¤Ò")
+ (defrule   "hu"   "¤Õ")
+ (defrule   "he"   "¤Ø")
+ (defrule   "ho"   "¤Û")
+ (defrule   "hya"  "¤Ò¤ã")
+ (defrule   "hyu"  "¤Ò¤å")
+ (defrule   "hye"  "¤Ò¤§")
+ (defrule   "hyo"  "¤Ò¤ç")
+ (defrule   "fa"   "¤Õ¤¡")
+ (defrule   "fi"   "¤Õ¤£")
+ (defrule   "fu"   "¤Õ")
+ (defrule   "fe"   "¤Õ¤§")
+ (defrule   "fo"   "¤Õ¤©")
+ (defrule   "ma"   "¤Þ")
+ (defrule   "mi"   "¤ß")
+ (defrule   "mu"   "¤à")
+ (defrule   "me"   "¤á")
+ (defrule   "mo"   "¤â")
+ (defrule   "mya"  "¤ß¤ã")
+ (defrule   "myu"  "¤ß¤å")
+ (defrule   "mye"  "¤ß¤§")
+ (defrule   "myo"  "¤ß¤ç")
+ (defrule   "ya"   "¤ä")
+ (defrule   "yi"   "¤¤")
+ (defrule   "yu"   "¤æ")
+ (defrule   "ye"   "¤¤¤§")
+ (defrule   "yo"   "¤è")
+ (defrule   "ra"   "¤é")
+ (defrule   "ri"   "¤ê")
+ (defrule   "ru"   "¤ë")
+ (defrule   "re"   "¤ì")
+ (defrule   "ro"   "¤í")
+ (defrule   "la"   "¤é")
+ (defrule   "li"   "¤ê")
+ (defrule   "lu"   "¤ë")
+ (defrule   "le"   "¤ì")
+ (defrule   "lo"   "¤í")
+ (defrule   "rya"  "¤ê¤ã")
+ (defrule   "ryu"  "¤ê¤å")
+ (defrule   "rye"  "¤ê¤§")
+ (defrule   "ryo"  "¤ê¤ç")
+ (defrule   "lya"  "¤ê¤ã")
+ (defrule   "lyu"  "¤ê¤å")
+ (defrule   "lye"  "¤ê¤§")
+ (defrule   "lyo"  "¤ê¤ç")
+ (defrule   "wa"   "¤ï")
+ (defrule   "wi"   "¤ð")
+ (defrule   "wu"   "¤¦")
+ (defrule   "we"   "¤ñ")
+ (defrule   "wo"   "¤ò")
+ (defrule   "ga"   "¤¬")
+ (defrule   "gi"   "¤®")
+ (defrule   "gu"   "¤°")
+ (defrule   "ge"   "¤²")
+ (defrule   "go"   "¤´")
+ (defrule   "gya"  "¤®¤ã")
+ (defrule   "gyu"  "¤®¤å")
+ (defrule   "gye"  "¤®¤§")
+ (defrule   "gyo"  "¤®¤ç")
+ (defrule   "za"   "¤¶")
+ (defrule   "zi"   "¤¸")
+ (defrule   "zu"   "¤º")
+ (defrule   "ze"   "¤¼")
+ (defrule   "zo"   "¤¾")
+ (defrule   "zya"  "¤¸¤ã")
+ (defrule   "zyu"  "¤¸¤å")
+ (defrule   "zye"  "¤¸¤§")
+ (defrule   "zyo"  "¤¸¤ç")
+ (defrule   "ja"   "¤¸¤ã")
+ (defrule   "ji"   "¤¸")
+ (defrule   "ju"   "¤¸¤å")
+ (defrule   "je"   "¤¸¤§")
+ (defrule   "jo"   "¤¸¤ç")
+ (defrule   "da"   "¤À")
+ (defrule   "di"   "¤Â")
+ (defrule   "du"   "¤Å")
+ (defrule   "de"   "¤Ç")
+ (defrule   "do"   "¤É")
+ (defrule   "dya"  "¤Â¤ã")
+ (defrule   "dyi"  "¤Ç¤£")
+ (defrule   "dyu"  "¤Â¤å")
+ (defrule   "dye"  "¤Â¤§")
+ (defrule   "dyo"  "¤Â¤ç")
+ (defrule   "ba"   "¤Ð")
+ (defrule   "bi"   "¤Ó")
+ (defrule   "bu"   "¤Ö")
+ (defrule   "be"   "¤Ù")
+ (defrule   "bo"   "¤Ü")
+ (defrule   "va"   "¥ô¤¡")
+ (defrule   "vi"   "¥ô¤£")
+ (defrule   "vu"   "¥ô")
+ (defrule   "ve"   "¥ô¤§")
+ (defrule   "vo"   "¥ô¤©")
+ (defrule   "bya"  "¤Ó¤ã")
+ (defrule   "byu"  "¤Ó¤å")
+ (defrule   "bye"  "¤Ó¤§")
+ (defrule   "byo"  "¤Ó¤ç")
+ (defrule   "pa"   "¤Ñ")
+ (defrule   "pi"   "¤Ô")
+ (defrule   "pu"   "¤×")
+ (defrule   "pe"   "¤Ú")
+ (defrule   "po"   "¤Ý")
+ (defrule   "pya"  "¤Ô¤ã")
+ (defrule   "pyu"  "¤Ô¤å")
+ (defrule   "pye"  "¤Ô¤§")
+ (defrule   "pyo"  "¤Ô¤ç")
+ (defrule   "kwa"  "¤¯¤î")
+ (defrule   "kwi"  "¤¯¤£")
+ (defrule   "kwu"  "¤¯")
+ (defrule   "kwe"  "¤¯¤§")
+ (defrule   "kwo"  "¤¯¤©")
+ (defrule   "gwa"  "¤°¤î")
+ (defrule   "gwi"  "¤°¤£")
+ (defrule   "gwu"  "¤°")
+ (defrule   "gwe"  "¤°¤§")
+ (defrule   "gwo"  "¤°¤©")
+ (defrule   "tsa"  "¤Ä¤¡")
+ (defrule   "tsi"  "¤Ä¤£")
+ (defrule   "tse"  "¤Ä¤§")
+ (defrule   "tso"  "¤Ä¤©")
+ (defrule   "xka"  "¥õ")
+ (defrule   "xke"  "¥ö")
+ (defrule   "xti"  "¤Æ¤£")
+ (defrule   "xdi"  "¤Ç¤£")
+ (defrule   "xdu"  "¤É¤¥")
+ (defrule   "xde"  "¤Ç¤§")
+ (defrule   "xdo"  "¤É¤©")
+ (defrule   "xwa"  "¤î")
+ (defrule   "xwi"  "¤¦¤£")
+ (defrule   "xwe"  "¤¦¤§")
+ (defrule   "xwo"  "¤¦¤©")
+ 
+ ;;; Zenkaku Symbols
+ 
+ (defrule   "1"   "£±")
+ (defrule   "2"   "£²")
+ (defrule   "3"   "£³")
+ (defrule   "4"   "£´")
+ (defrule   "5"   "£µ")
+ (defrule   "6"   "£¶")
+ (defrule   "7"   "£·")
+ (defrule   "8"   "£¸")
+ (defrule   "9"   "£¹")
+ (defrule   "0"   "£°")
+ 
+ (defrule   " "   "¡¡")
+ (defrule   "!"   "¡ª")
+ (defrule   "@"   "¡÷")
+ (defrule   "#"   "¡ô")
+ (defrule   "$"   "¡ð")
+ (defrule   "%"   "¡ó")
+ (defrule   "^"   "¡°")
+ (defrule   "&"   "¡õ")
+ (defrule   "*"   "¡ö")
+ (defrule   "("   "¡Ê")
+ (defrule   ")"   "¡Ë")
+ (defrule   "-"   "¡¼") ;;; JIS 213c  ;;;(defrule   "-"   "¡Ý")
+ (defrule   "="   "¡á")
+ (defrule   "`"   "¡®")
+ (defrule   "\\"  "¡ï")
+ (defrule   "|"   "¡Ã")
+ (defrule   "_"   "¡²")
+ (defrule   "+"   "¡Ü")
+ (defrule   "~"   "¡±")
+ (defrule   "["    "¡Ö")  ;;(defrule   "["   "¡Î")
+ (defrule   "]"    "¡×")  ;;(defrule   "]"   "¡Ï")
+ (defrule   "{"   "¡Ð")
+ (defrule   "}"   "¡Ñ")
+ (defrule   ":"   "¡§")
+ (defrule   ";"   "¡¨")
+ (defrule   "\""  "¡É")
+ (defrule   "'"   "¡Ç")
+ (defrule   "<"   "¡ã")
+ (defrule   ">"   "¡ä")
+ (defrule   "?"   "¡©")
+ (defrule   "/"   "¡¿")
+ (defrule   ","   "¡¢")  ;;(defrule   ","   "¡¤")
+ (defrule   "."   "¡£")  ;;(defrule   "."   "¡¥")
+ 
+ 
+ ;;; Escape character to Zenkaku inputs
+ 
+ (defvar zenkaku-escape "Z")
+ 
+ ;;; Escape character to Hankaku inputs
+ 
+ (defvar hankaku-escape "~")
+ ;;;
+ ;;; Zenkaku inputs
+ ;;;
+ 
+ (defrule '(zenkaku-escape "0") "£°")
+ (defrule '(zenkaku-escape "1") "£±")
+ (defrule '(zenkaku-escape "2") "£²")
+ (defrule '(zenkaku-escape "3") "£³")
+ (defrule '(zenkaku-escape "4") "£´")
+ (defrule '(zenkaku-escape "5") "£µ")
+ (defrule '(zenkaku-escape "6") "£¶")
+ (defrule '(zenkaku-escape "7") "£·")
+ (defrule '(zenkaku-escape "8") "£¸")
+ (defrule '(zenkaku-escape "9") "£¹")
+ 
+ (defrule '(zenkaku-escape "A") "£Á")
+ (defrule '(zenkaku-escape "B") "£Â")
+ (defrule '(zenkaku-escape "C") "£Ã")
+ (defrule '(zenkaku-escape "D") "£Ä")
+ (defrule '(zenkaku-escape "E") "£Å")
+ (defrule '(zenkaku-escape "F") "£Æ")
+ (defrule '(zenkaku-escape "G") "£Ç")
+ (defrule '(zenkaku-escape "H") "£È")
+ (defrule '(zenkaku-escape "I") "£É")
+ (defrule '(zenkaku-escape "J") "£Ê")
+ (defrule '(zenkaku-escape "K") "£Ë")
+ (defrule '(zenkaku-escape "L") "£Ì")
+ (defrule '(zenkaku-escape "M") "£Í")
+ (defrule '(zenkaku-escape "N") "£Î")
+ (defrule '(zenkaku-escape "O") "£Ï")
+ (defrule '(zenkaku-escape "P") "£Ð")
+ (defrule '(zenkaku-escape "Q") "£Ñ")
+ (defrule '(zenkaku-escape "R") "£Ò")
+ (defrule '(zenkaku-escape "S") "£Ó")
+ (defrule '(zenkaku-escape "T") "£Ô")
+ (defrule '(zenkaku-escape "U") "£Õ")
+ (defrule '(zenkaku-escape "V") "£Ö")
+ (defrule '(zenkaku-escape "W") "£×")
+ (defrule '(zenkaku-escape "X") "£Ø")
+ (defrule '(zenkaku-escape "Y") "£Ù")
+ (defrule '(zenkaku-escape "Z") "£Ú")
+ 
+ (defrule '(zenkaku-escape "a") "£á")
+ (defrule '(zenkaku-escape "b") "£â")
+ (defrule '(zenkaku-escape "c") "£ã")
+ (defrule '(zenkaku-escape "d") "£ä")
+ (defrule '(zenkaku-escape "e") "£å")
+ (defrule '(zenkaku-escape "f") "£æ")
+ (defrule '(zenkaku-escape "g") "£ç")
+ (defrule '(zenkaku-escape "h") "£è")
+ (defrule '(zenkaku-escape "i") "£é")
+ (defrule '(zenkaku-escape "j") "£ê")
+ (defrule '(zenkaku-escape "k") "£ë")
+ (defrule '(zenkaku-escape "l") "£ì")
+ (defrule '(zenkaku-escape "m") "£í")
+ (defrule '(zenkaku-escape "n") "£î")
+ (defrule '(zenkaku-escape "o") "£ï")
+ (defrule '(zenkaku-escape "p") "£ð")
+ (defrule '(zenkaku-escape "q") "£ñ")
+ (defrule '(zenkaku-escape "r") "£ò")
+ (defrule '(zenkaku-escape "s") "£ó")
+ (defrule '(zenkaku-escape "t") "£ô")
+ (defrule '(zenkaku-escape "u") "£õ")
+ (defrule '(zenkaku-escape "v") "£ö")
+ (defrule '(zenkaku-escape "w") "£÷")
+ (defrule '(zenkaku-escape "x") "£ø")
+ (defrule '(zenkaku-escape "y") "£ù")
+ (defrule '(zenkaku-escape "z") "£ú")
+ 
+ (defrule '(zenkaku-escape " ")  "¡¡")
+ (defrule '(zenkaku-escape "!")  "¡ª")
+ (defrule '(zenkaku-escape "@")  "¡÷")
+ (defrule '(zenkaku-escape "#")  "¡ô")
+ (defrule '(zenkaku-escape "$")  "¡ð")
+ (defrule '(zenkaku-escape "%")  "¡ó")
+ (defrule '(zenkaku-escape "^")  "¡°")
+ (defrule '(zenkaku-escape "&")  "¡õ")
+ (defrule '(zenkaku-escape "*")  "¡ö")
+ (defrule '(zenkaku-escape "(")  "¡Ê")
+ (defrule '(zenkaku-escape ")")  "¡Ë")
+ (defrule '(zenkaku-escape "-")  "¡Ý")
+ (defrule '(zenkaku-escape "=")  "¡á")
+ (defrule '(zenkaku-escape "`")  "¡®")
+ (defrule '(zenkaku-escape "\\") "¡ï")
+ (defrule '(zenkaku-escape "|")  "¡Ã")
+ (defrule '(zenkaku-escape "_")  "¡²")
+ (defrule '(zenkaku-escape "+")  "¡Ü")
+ (defrule '(zenkaku-escape "~")  "¡±")
+ (defrule '(zenkaku-escape "[")  "¡Î")
+ (defrule '(zenkaku-escape "]")  "¡Ï")
+ (defrule '(zenkaku-escape "{")  "¡Ð")
+ (defrule '(zenkaku-escape "}")  "¡Ñ")
+ (defrule '(zenkaku-escape ":")  "¡§")
+ (defrule '(zenkaku-escape ";")  "¡¨")
+ (defrule '(zenkaku-escape "\"") "¡É")
+ (defrule '(zenkaku-escape "'")  "¡Ç")
+ (defrule '(zenkaku-escape "<")  "¡ã")
+ (defrule '(zenkaku-escape ">")  "¡ä")
+ (defrule '(zenkaku-escape "?")  "¡©")
+ (defrule '(zenkaku-escape "/")  "¡¿")
+ (defrule '(zenkaku-escape ",")  "¡¤")
+ (defrule '(zenkaku-escape ".")  "¡¥")
+ 
+ ;;;
+ ;;; Hankaku inputs
+ ;;;
+ 
+ ;;(defvar escd '("-" "," "." "/" ";" ":" "[" "\\" "]" "^" "~"))
+ ;;(defrule '("x" escd)  '(escd))
+ 
+ 
+ (defvar digit-characters 
+    '( "1"  "2"  "3"  "4" "5"  "6"  "7"  "8"  "9"  "0" ))
+ 
+ (defvar symbol-characters 
+    '( " "  "!"  "@"  "#"  "$"  "%"  "^"  "&"  "*"  "("  ")"
+       "-"  "="  "`"  "\\" "|"  "_"  "+"  "~" "["  "]"  "{"  "}"
+       ":"  ";"  "\"" "'"  "<"  ">"  "?"  "/"  ","  "." ))
+ 
+ (defvar downcase-alphabets 
+    '("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
+      "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"))
+ 
+ (defvar upcase-alphabets
+    '("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
+      "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"))
+ 
+ (defrule '(hankaku-escape digit-characters)   '(digit-characters))
+ (defrule '(hankaku-escape symbol-characters)  '(symbol-characters))
+ (defrule '(hankaku-escape downcase-alphabets) '(downcase-alphabets))
+ (defrule '(hankaku-escape upcase-alphabets)   '(upcase-alphabets))
+ 
+ ;;(defvar upcase-escape   "X")
+ 
+ ;;(defrule '(upcase-escape digit-characters)     '(digit-characters))
+ ;;(defrule '(upcase-escape symbol-characters)    '(symbol-characters))
+ ;;(defrule '(upcase-escape upcase-alphabets)     '(upcase-alphabets))
+ 
+ ;;; Note: We cannot define
+ ;;; (defrule '(upcase-escape downcase-alphabets) '(upcase-alphabets))
+ ;;; We need association between them.
+ 
+ ;;;; Proposal:
+ ;;;; (defvar down-up-assoc '(("a" "A") ("b" "B")....))
+ ;;;; (defrule '((upcase-escape) (downcase-alpha))
+ ;;;;          '(downcase-alpha down-up-assoc))
+ ;;;;
+ 
+ ;;; proposal key bindings for JIS symbols
+ ;;; 90.3.2  by jiro@math.keio.ac.jp (TANAKA Jiro)
+ 
+ (defrule   "z1"   "¡û")	(defrule   "z!"   "¡ü")
+ (defrule   "z2"   "¢¦")	(defrule   "z@"   "¢§")
+ (defrule   "z3"   "¢¤")	(defrule   "z#"   "¢¥")
+ (defrule   "z4"   "¢¢")	(defrule   "z$"   "¢£")
+ (defrule   "z5"   "¡þ")	(defrule   "z%"   "¢¡")
+ (defrule   "z6"   "¡ù")	(defrule   "z^"   "¡ú")
+ (defrule   "z7"   "¡ý")	(defrule   "z&"   "¡ò")
+ (defrule   "z8"   "¡ñ")	(defrule   "z*"   "¡ß")
+ (defrule   "z9"   "¡é")	(defrule   "z("   "¡Ú")
+ (defrule   "z0"   "¡ê")	(defrule   "z)"   "¡Û")
+ (defrule   "z-"   "¡Á")	(defrule   "z_"   "¡è")	; z-
+ (defrule   "z="   "¡â")	(defrule   "z+"   "¡Þ")
+ (defrule   "z\\"  "¡À")	(defrule   "z|"   "¡Â")
+ (defrule   "z`"   "¡­")	(defrule   "z~"   "¡¯")
+ 
+ (defrule   "zq"   "¡Ô")	(defrule   "zQ"   "¡Ò")
+ (defrule   "zw"   "¡Õ")	(defrule   "zW"   "¡Ó")
+ ; e
+ (defrule   "zr"   "¡¹")	(defrule   "zR"   "¡¸")	; zr
+ (defrule   "zt"   "¡º")	(defrule   "zT"   "¡ø")
+ ; y u i o
+ (defrule   "zp"   "¢©")	(defrule   "zP"   "¢¬")	; zp
+ (defrule   "z["   "¡Ø")	(defrule   "z{"   "¡Ì")	; z[
+ (defrule   "z]"   "¡Ù")	(defrule   "z}"   "¡Í")	; z]
+ 
+ ; a
+ (defrule   "zs"   "¡³")	(defrule   "zS"   "¡´")
+ (defrule   "zd"   "¡µ")	(defrule   "zD"   "¡¶")
+ (defrule   "zf"   "¡·")	(defrule   "zF"   "¢ª")
+ (defrule   "zg"   "¡¾")	(defrule   "zG"   "¡½")
+ (defrule   "zh"   "¢«")
+ (defrule   "zj"   "¢­")
+ (defrule   "zk"   "¢¬")
+ (defrule   "zl"   "¢ª")
+ (defrule   "z;"   "¡«")	(defrule   "z:"   "¡¬")
+ (defrule   "z\'"  "¡Æ")	(defrule   "z\""  "¡È")
+ 
+ ; z
+ (defrule   "zx"   ":-")	(defrule   "zX"   ":-)")
+ (defrule   "zc"   "¡»")	(defrule   "zC"   "¡î")	; zc
+ (defrule   "zv"   "¢¨")	(defrule   "zV"   "¡à")
+ (defrule   "zb"   "¡ë")	(defrule   "zB"   "¢«")
+ (defrule   "zn"   "¡ì")	(defrule   "zN"   "¢­")
+ (defrule   "zm"   "¡í")	(defrule   "zM"   "¢®")
+ (defrule   "z,"   "¡Å")	(defrule   "z<"   "¡å")
+ (defrule   "z."   "¡Ä")	(defrule   "z>"   "¡æ")	; z.
+ (defrule   "z/"   "¡¦")	(defrule   "z?"   "¡ç")	; z/
+ 
+ ;;; Commented out by K.Handa.  Already defined in a different way.
+ ;(defrule   "va"   "¥ô¥¡")
+ ;(defrule   "vi"   "¥ô¥£")
+ ;(defrule   "vu"   "¥ô")
+ ;(defrule   "ve"   "¥ô¥§")
+ ;(defrule   "vo"   "¥ô¥©")
diff -arcN emacs-18.55/lisp/egg-rkdump.el nemacs-3.3.2/lisp/egg-rkdump.el
*** emacs-18.55/lisp/egg-rkdump.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/egg-rkdump.el	Wed Jun  6 03:17:12 1990
***************
*** 0 ****
--- 1,578 ----
+ 
+ (egg:set-mode-indicator "roma-kana" " a¤¢" )
+ 
+ (egg:set-mode-map "roma-kana"
+ (let ((map (cons nil nil)))
+ (setf-key-action map 90 (list (let ((map (cons map nil)))
+ (setf-key-action map 46 (list (list 'top "Z" map)"¡¥" ))
+ (setf-key-action map 44 (list (list 'top "Z" map)"¡¤" ))
+ (setf-key-action map 47 (list (list 'top "Z" map)"¡¿" ))
+ (setf-key-action map 63 (list (list 'top "Z" map)"¡©" ))
+ (setf-key-action map 62 (list (list 'top "Z" map)"¡ä" ))
+ (setf-key-action map 60 (list (list 'top "Z" map)"¡ã" ))
+ (setf-key-action map 39 (list (list 'top "Z" map)"¡Ç" ))
+ (setf-key-action map 34 (list (list 'top "Z" map)"¡É" ))
+ (setf-key-action map 59 (list (list 'top "Z" map)"¡¨" ))
+ (setf-key-action map 58 (list (list 'top "Z" map)"¡§" ))
+ (setf-key-action map 125 (list (list 'top "Z" map)"¡Ñ" ))
+ (setf-key-action map 123 (list (list 'top "Z" map)"¡Ð" ))
+ (setf-key-action map 93 (list (list 'top "Z" map)"¡Ï" ))
+ (setf-key-action map 91 (list (list 'top "Z" map)"¡Î" ))
+ (setf-key-action map 126 (list (list 'top "Z" map)"¡±" ))
+ (setf-key-action map 43 (list (list 'top "Z" map)"¡Ü" ))
+ (setf-key-action map 95 (list (list 'top "Z" map)"¡²" ))
+ (setf-key-action map 124 (list (list 'top "Z" map)"¡Ã" ))
+ (setf-key-action map 92 (list (list 'top "Z" map)"¡ï" ))
+ (setf-key-action map 96 (list (list 'top "Z" map)"¡®" ))
+ (setf-key-action map 61 (list (list 'top "Z" map)"¡á" ))
+ (setf-key-action map 45 (list (list 'top "Z" map)"¡Ý" ))
+ (setf-key-action map 41 (list (list 'top "Z" map)"¡Ë" ))
+ (setf-key-action map 40 (list (list 'top "Z" map)"¡Ê" ))
+ (setf-key-action map 42 (list (list 'top "Z" map)"¡ö" ))
+ (setf-key-action map 38 (list (list 'top "Z" map)"¡õ" ))
+ (setf-key-action map 94 (list (list 'top "Z" map)"¡°" ))
+ (setf-key-action map 37 (list (list 'top "Z" map)"¡ó" ))
+ (setf-key-action map 36 (list (list 'top "Z" map)"¡ð" ))
+ (setf-key-action map 35 (list (list 'top "Z" map)"¡ô" ))
+ (setf-key-action map 64 (list (list 'top "Z" map)"¡÷" ))
+ (setf-key-action map 33 (list (list 'top "Z" map)"¡ª" ))
+ (setf-key-action map 32 (list (list 'top "Z" map)"¡¡" ))
+ (setf-key-action map 122 (list (list 'top "Z" map)"£ú" ))
+ (setf-key-action map 121 (list (list 'top "Z" map)"£ù" ))
+ (setf-key-action map 120 (list (list 'top "Z" map)"£ø" ))
+ (setf-key-action map 119 (list (list 'top "Z" map)"£÷" ))
+ (setf-key-action map 118 (list (list 'top "Z" map)"£ö" ))
+ (setf-key-action map 117 (list (list 'top "Z" map)"£õ" ))
+ (setf-key-action map 116 (list (list 'top "Z" map)"£ô" ))
+ (setf-key-action map 115 (list (list 'top "Z" map)"£ó" ))
+ (setf-key-action map 114 (list (list 'top "Z" map)"£ò" ))
+ (setf-key-action map 113 (list (list 'top "Z" map)"£ñ" ))
+ (setf-key-action map 112 (list (list 'top "Z" map)"£ð" ))
+ (setf-key-action map 111 (list (list 'top "Z" map)"£ï" ))
+ (setf-key-action map 110 (list (list 'top "Z" map)"£î" ))
+ (setf-key-action map 109 (list (list 'top "Z" map)"£í" ))
+ (setf-key-action map 108 (list (list 'top "Z" map)"£ì" ))
+ (setf-key-action map 107 (list (list 'top "Z" map)"£ë" ))
+ (setf-key-action map 106 (list (list 'top "Z" map)"£ê" ))
+ (setf-key-action map 105 (list (list 'top "Z" map)"£é" ))
+ (setf-key-action map 104 (list (list 'top "Z" map)"£è" ))
+ (setf-key-action map 103 (list (list 'top "Z" map)"£ç" ))
+ (setf-key-action map 102 (list (list 'top "Z" map)"£æ" ))
+ (setf-key-action map 101 (list (list 'top "Z" map)"£å" ))
+ (setf-key-action map 100 (list (list 'top "Z" map)"£ä" ))
+ (setf-key-action map 99 (list (list 'top "Z" map)"£ã" ))
+ (setf-key-action map 98 (list (list 'top "Z" map)"£â" ))
+ (setf-key-action map 97 (list (list 'top "Z" map)"£á" ))
+ (setf-key-action map 90 (list (list 'top "Z" map)"£Ú" ))
+ (setf-key-action map 89 (list (list 'top "Z" map)"£Ù" ))
+ (setf-key-action map 88 (list (list 'top "Z" map)"£Ø" ))
+ (setf-key-action map 87 (list (list 'top "Z" map)"£×" ))
+ (setf-key-action map 86 (list (list 'top "Z" map)"£Ö" ))
+ (setf-key-action map 85 (list (list 'top "Z" map)"£Õ" ))
+ (setf-key-action map 84 (list (list 'top "Z" map)"£Ô" ))
+ (setf-key-action map 83 (list (list 'top "Z" map)"£Ó" ))
+ (setf-key-action map 82 (list (list 'top "Z" map)"£Ò" ))
+ (setf-key-action map 81 (list (list 'top "Z" map)"£Ñ" ))
+ (setf-key-action map 80 (list (list 'top "Z" map)"£Ð" ))
+ (setf-key-action map 79 (list (list 'top "Z" map)"£Ï" ))
+ (setf-key-action map 78 (list (list 'top "Z" map)"£Î" ))
+ (setf-key-action map 77 (list (list 'top "Z" map)"£Í" ))
+ (setf-key-action map 76 (list (list 'top "Z" map)"£Ì" ))
+ (setf-key-action map 75 (list (list 'top "Z" map)"£Ë" ))
+ (setf-key-action map 74 (list (list 'top "Z" map)"£Ê" ))
+ (setf-key-action map 73 (list (list 'top "Z" map)"£É" ))
+ (setf-key-action map 72 (list (list 'top "Z" map)"£È" ))
+ (setf-key-action map 71 (list (list 'top "Z" map)"£Ç" ))
+ (setf-key-action map 70 (list (list 'top "Z" map)"£Æ" ))
+ (setf-key-action map 69 (list (list 'top "Z" map)"£Å" ))
+ (setf-key-action map 68 (list (list 'top "Z" map)"£Ä" ))
+ (setf-key-action map 67 (list (list 'top "Z" map)"£Ã" ))
+ (setf-key-action map 66 (list (list 'top "Z" map)"£Â" ))
+ (setf-key-action map 65 (list (list 'top "Z" map)"£Á" ))
+ (setf-key-action map 57 (list (list 'top "Z" map)"£¹" ))
+ (setf-key-action map 56 (list (list 'top "Z" map)"£¸" ))
+ (setf-key-action map 55 (list (list 'top "Z" map)"£·" ))
+ (setf-key-action map 54 (list (list 'top "Z" map)"£¶" ))
+ (setf-key-action map 53 (list (list 'top "Z" map)"£µ" ))
+ (setf-key-action map 52 (list (list 'top "Z" map)"£´" ))
+ (setf-key-action map 51 (list (list 'top "Z" map)"£³" ))
+ (setf-key-action map 50 (list (list 'top "Z" map)"£²" ))
+ (setf-key-action map 49 (list (list 'top "Z" map)"£±" ))
+ (setf-key-action map 48 (list (list 'top "Z" map)"£°" )) map)nil ))
+ (setf-key-action map 46 (list (list 'top "" map)"¡£" ))
+ (setf-key-action map 44 (list (list 'top "" map)"¡¢" ))
+ (setf-key-action map 47 (list (list 'top "" map)"¡¿" ))
+ (setf-key-action map 63 (list (list 'top "" map)"¡©" ))
+ (setf-key-action map 62 (list (list 'top "" map)"¡ä" ))
+ (setf-key-action map 60 (list (list 'top "" map)"¡ã" ))
+ (setf-key-action map 39 (list (list 'top "" map)"¡Ç" ))
+ (setf-key-action map 34 (list (list 'top "" map)"¡É" ))
+ (setf-key-action map 59 (list (list 'top "" map)"¡¨" ))
+ (setf-key-action map 58 (list (list 'top "" map)"¡§" ))
+ (setf-key-action map 125 (list (list 'top "" map)"¡Ñ" ))
+ (setf-key-action map 123 (list (list 'top "" map)"¡Ð" ))
+ (setf-key-action map 93 (list (list 'top "" map)"¡×" ))
+ (setf-key-action map 91 (list (list 'top "" map)"¡Ö" ))
+ (setf-key-action map 126 (list (let ((map (cons map nil)))
+ (setf-key-action map 90 (list (list 'top "~" map)"Z" ))
+ (setf-key-action map 89 (list (list 'top "~" map)"Y" ))
+ (setf-key-action map 88 (list (list 'top "~" map)"X" ))
+ (setf-key-action map 87 (list (list 'top "~" map)"W" ))
+ (setf-key-action map 86 (list (list 'top "~" map)"V" ))
+ (setf-key-action map 85 (list (list 'top "~" map)"U" ))
+ (setf-key-action map 84 (list (list 'top "~" map)"T" ))
+ (setf-key-action map 83 (list (list 'top "~" map)"S" ))
+ (setf-key-action map 82 (list (list 'top "~" map)"R" ))
+ (setf-key-action map 81 (list (list 'top "~" map)"Q" ))
+ (setf-key-action map 80 (list (list 'top "~" map)"P" ))
+ (setf-key-action map 79 (list (list 'top "~" map)"O" ))
+ (setf-key-action map 78 (list (list 'top "~" map)"N" ))
+ (setf-key-action map 77 (list (list 'top "~" map)"M" ))
+ (setf-key-action map 76 (list (list 'top "~" map)"L" ))
+ (setf-key-action map 75 (list (list 'top "~" map)"K" ))
+ (setf-key-action map 74 (list (list 'top "~" map)"J" ))
+ (setf-key-action map 73 (list (list 'top "~" map)"I" ))
+ (setf-key-action map 72 (list (list 'top "~" map)"H" ))
+ (setf-key-action map 71 (list (list 'top "~" map)"G" ))
+ (setf-key-action map 70 (list (list 'top "~" map)"F" ))
+ (setf-key-action map 69 (list (list 'top "~" map)"E" ))
+ (setf-key-action map 68 (list (list 'top "~" map)"D" ))
+ (setf-key-action map 67 (list (list 'top "~" map)"C" ))
+ (setf-key-action map 66 (list (list 'top "~" map)"B" ))
+ (setf-key-action map 65 (list (list 'top "~" map)"A" ))
+ (setf-key-action map 122 (list (list 'top "~" map)"z" ))
+ (setf-key-action map 121 (list (list 'top "~" map)"y" ))
+ (setf-key-action map 120 (list (list 'top "~" map)"x" ))
+ (setf-key-action map 119 (list (list 'top "~" map)"w" ))
+ (setf-key-action map 118 (list (list 'top "~" map)"v" ))
+ (setf-key-action map 117 (list (list 'top "~" map)"u" ))
+ (setf-key-action map 116 (list (list 'top "~" map)"t" ))
+ (setf-key-action map 115 (list (list 'top "~" map)"s" ))
+ (setf-key-action map 114 (list (list 'top "~" map)"r" ))
+ (setf-key-action map 113 (list (list 'top "~" map)"q" ))
+ (setf-key-action map 112 (list (list 'top "~" map)"p" ))
+ (setf-key-action map 111 (list (list 'top "~" map)"o" ))
+ (setf-key-action map 110 (list (list 'top "~" map)"n" ))
+ (setf-key-action map 109 (list (list 'top "~" map)"m" ))
+ (setf-key-action map 108 (list (list 'top "~" map)"l" ))
+ (setf-key-action map 107 (list (list 'top "~" map)"k" ))
+ (setf-key-action map 106 (list (list 'top "~" map)"j" ))
+ (setf-key-action map 105 (list (list 'top "~" map)"i" ))
+ (setf-key-action map 104 (list (list 'top "~" map)"h" ))
+ (setf-key-action map 103 (list (list 'top "~" map)"g" ))
+ (setf-key-action map 102 (list (list 'top "~" map)"f" ))
+ (setf-key-action map 101 (list (list 'top "~" map)"e" ))
+ (setf-key-action map 100 (list (list 'top "~" map)"d" ))
+ (setf-key-action map 99 (list (list 'top "~" map)"c" ))
+ (setf-key-action map 98 (list (list 'top "~" map)"b" ))
+ (setf-key-action map 97 (list (list 'top "~" map)"a" ))
+ (setf-key-action map 46 (list (list 'top "~" map)"." ))
+ (setf-key-action map 44 (list (list 'top "~" map)"," ))
+ (setf-key-action map 47 (list (list 'top "~" map)"/" ))
+ (setf-key-action map 63 (list (list 'top "~" map)"?" ))
+ (setf-key-action map 62 (list (list 'top "~" map)">" ))
+ (setf-key-action map 60 (list (list 'top "~" map)"<" ))
+ (setf-key-action map 39 (list (list 'top "~" map)"'" ))
+ (setf-key-action map 34 (list (list 'top "~" map)"\"" ))
+ (setf-key-action map 59 (list (list 'top "~" map)";" ))
+ (setf-key-action map 58 (list (list 'top "~" map)":" ))
+ (setf-key-action map 125 (list (list 'top "~" map)"}" ))
+ (setf-key-action map 123 (list (list 'top "~" map)"{" ))
+ (setf-key-action map 93 (list (list 'top "~" map)"]" ))
+ (setf-key-action map 91 (list (list 'top "~" map)"[" ))
+ (setf-key-action map 126 (list (list 'top "~" map)"~" ))
+ (setf-key-action map 43 (list (list 'top "~" map)"+" ))
+ (setf-key-action map 95 (list (list 'top "~" map)"_" ))
+ (setf-key-action map 124 (list (list 'top "~" map)"|" ))
+ (setf-key-action map 92 (list (list 'top "~" map)"\\" ))
+ (setf-key-action map 96 (list (list 'top "~" map)"`" ))
+ (setf-key-action map 61 (list (list 'top "~" map)"=" ))
+ (setf-key-action map 45 (list (list 'top "~" map)"-" ))
+ (setf-key-action map 41 (list (list 'top "~" map)")" ))
+ (setf-key-action map 40 (list (list 'top "~" map)"(" ))
+ (setf-key-action map 42 (list (list 'top "~" map)"*" ))
+ (setf-key-action map 38 (list (list 'top "~" map)"&" ))
+ (setf-key-action map 94 (list (list 'top "~" map)"^" ))
+ (setf-key-action map 37 (list (list 'top "~" map)"%" ))
+ (setf-key-action map 36 (list (list 'top "~" map)"$" ))
+ (setf-key-action map 35 (list (list 'top "~" map)"#" ))
+ (setf-key-action map 64 (list (list 'top "~" map)"@" ))
+ (setf-key-action map 33 (list (list 'top "~" map)"!" ))
+ (setf-key-action map 32 (list (list 'top "~" map)" " ))
+ (setf-key-action map 48 (list (list 'top "~" map)"0" ))
+ (setf-key-action map 57 (list (list 'top "~" map)"9" ))
+ (setf-key-action map 56 (list (list 'top "~" map)"8" ))
+ (setf-key-action map 55 (list (list 'top "~" map)"7" ))
+ (setf-key-action map 54 (list (list 'top "~" map)"6" ))
+ (setf-key-action map 53 (list (list 'top "~" map)"5" ))
+ (setf-key-action map 52 (list (list 'top "~" map)"4" ))
+ (setf-key-action map 51 (list (list 'top "~" map)"3" ))
+ (setf-key-action map 50 (list (list 'top "~" map)"2" ))
+ (setf-key-action map 49 (list (list 'top "~" map)"1" )) map)"¡±" ))
+ (setf-key-action map 43 (list (list 'top "" map)"¡Ü" ))
+ (setf-key-action map 95 (list (list 'top "" map)"¡²" ))
+ (setf-key-action map 124 (list (list 'top "" map)"¡Ã" ))
+ (setf-key-action map 92 (list (list 'top "" map)"¡ï" ))
+ (setf-key-action map 96 (list (list 'top "" map)"¡®" ))
+ (setf-key-action map 61 (list (list 'top "" map)"¡á" ))
+ (setf-key-action map 45 (list (list 'top "" map)"¡¼" ))
+ (setf-key-action map 41 (list (list 'top "" map)"¡Ë" ))
+ (setf-key-action map 40 (list (list 'top "" map)"¡Ê" ))
+ (setf-key-action map 42 (list (list 'top "" map)"¡ö" ))
+ (setf-key-action map 38 (list (list 'top "" map)"¡õ" ))
+ (setf-key-action map 94 (list (list 'top "" map)"¡°" ))
+ (setf-key-action map 37 (list (list 'top "" map)"¡ó" ))
+ (setf-key-action map 36 (list (list 'top "" map)"¡ð" ))
+ (setf-key-action map 35 (list (list 'top "" map)"¡ô" ))
+ (setf-key-action map 64 (list (list 'top "" map)"¡÷" ))
+ (setf-key-action map 33 (list (list 'top "" map)"¡ª" ))
+ (setf-key-action map 32 (list (list 'top "" map)"¡¡" ))
+ (setf-key-action map 48 (list (list 'top "" map)"£°" ))
+ (setf-key-action map 57 (list (list 'top "" map)"£¹" ))
+ (setf-key-action map 56 (list (list 'top "" map)"£¸" ))
+ (setf-key-action map 55 (list (list 'top "" map)"£·" ))
+ (setf-key-action map 54 (list (list 'top "" map)"£¶" ))
+ (setf-key-action map 53 (list (list 'top "" map)"£µ" ))
+ (setf-key-action map 52 (list (list 'top "" map)"£´" ))
+ (setf-key-action map 51 (list (list 'top "" map)"£³" ))
+ (setf-key-action map 50 (list (list 'top "" map)"£²" ))
+ (setf-key-action map 49 (list (list 'top "" map)"£±" ))
+ (setf-key-action map 108 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ly" map)"¤ê¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ly" map)"¤ê¤§" ))
+ (setf-key-action map 117 (list (list 'top "ly" map)"¤ê¤å" ))
+ (setf-key-action map 97 (list (list 'top "ly" map)"¤ê¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "l" map)"¤í" ))
+ (setf-key-action map 101 (list (list 'top "l" map)"¤ì" ))
+ (setf-key-action map 117 (list (list 'top "l" map)"¤ë" ))
+ (setf-key-action map 105 (list (list 'top "l" map)"¤ê" ))
+ (setf-key-action map 97 (list (list 'top "l" map)"¤é" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "" map)"¤ª" ))
+ (setf-key-action map 101 (list (list 'top "" map)"¤¨" ))
+ (setf-key-action map 117 (list (list 'top "" map)"¤¦" ))
+ (setf-key-action map 105 (list (list 'top "" map)"¤¤" ))
+ (setf-key-action map 97 (list (list 'top "" map)"¤¢" ))
+ (setf-key-action map 120 (list (let ((map (cons map nil)))
+ (setf-key-action map 100 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "xd" map)"¤É¤©" ))
+ (setf-key-action map 101 (list (list 'top "xd" map)"¤Ç¤§" ))
+ (setf-key-action map 117 (list (list 'top "xd" map)"¤É¤¥" ))
+ (setf-key-action map 105 (list (list 'top "xd" map)"¤Ç¤£" )) map)nil ))
+ (setf-key-action map 107 (list (let ((map (cons map nil)))
+ (setf-key-action map 101 (list (list 'top "xk" map)"¥ö" ))
+ (setf-key-action map 97 (list (list 'top "xk" map)"¥õ" )) map)nil ))
+ (setf-key-action map 119 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "xw" map)"¤¦¤©" ))
+ (setf-key-action map 101 (list (list 'top "xw" map)"¤¦¤§" ))
+ (setf-key-action map 105 (list (list 'top "xw" map)"¤¦¤£" ))
+ (setf-key-action map 97 (list (list 'top "xw" map)"¤î" )) map)nil ))
+ (setf-key-action map 116 (list (let ((map (cons map nil)))
+ (setf-key-action map 105 (list (list 'top "xt" map)"¤Æ¤£" ))
+ (setf-key-action map 115 (list (let ((map (cons map nil)))
+ (setf-key-action map 117 (list (list 'top "xts" map)"¤Ã" )) map)nil ))
+ (setf-key-action map 117 (list (list 'top "xt" map)"¤Ã" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "xy" map)"¤ç" ))
+ (setf-key-action map 117 (list (list 'top "xy" map)"¤å" ))
+ (setf-key-action map 97 (list (list 'top "xy" map)"¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "x" map)"¤©" ))
+ (setf-key-action map 101 (list (list 'top "x" map)"¤§" ))
+ (setf-key-action map 117 (list (list 'top "x" map)"¤¥" ))
+ (setf-key-action map 105 (list (list 'top "x" map)"¤£" ))
+ (setf-key-action map 97 (list (list 'top "x" map)"¤¡" )) map)nil ))
+ (setf-key-action map 78 (list (list 'top "" map)"¤ó" ))
+ (setf-key-action map 110 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ny" map)"¤Ë¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ny" map)"¤Ë¤§" ))
+ (setf-key-action map 117 (list (list 'top "ny" map)"¤Ë¤å" ))
+ (setf-key-action map 97 (list (list 'top "ny" map)"¤Ë¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "n" map)"¤Î" ))
+ (setf-key-action map 101 (list (list 'top "n" map)"¤Í" ))
+ (setf-key-action map 117 (list (list 'top "n" map)"¤Ì" ))
+ (setf-key-action map 105 (list (list 'top "n" map)"¤Ë" ))
+ (setf-key-action map 97 (list (list 'top "n" map)"¤Ê" ))
+ (setf-key-action map 39 (list (list 'top "n" map)"¤ó" )) map)"¤ó" ))
+ (setf-key-action map 109 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "my" map)"¤ß¤ç" ))
+ (setf-key-action map 101 (list (list 'top "my" map)"¤ß¤§" ))
+ (setf-key-action map 117 (list (list 'top "my" map)"¤ß¤å" ))
+ (setf-key-action map 97 (list (list 'top "my" map)"¤ß¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "m" map)"¤â" ))
+ (setf-key-action map 101 (list (list 'top "m" map)"¤á" ))
+ (setf-key-action map 117 (list (list 'top "m" map)"¤à" ))
+ (setf-key-action map 105 (list (list 'top "m" map)"¤ß" ))
+ (setf-key-action map 97 (list (list 'top "m" map)"¤Þ" ))
+ (setf-key-action map 112 (list (list 'next "p" nil)"¤ó" ))
+ (setf-key-action map 109 (list (list 'next "m" nil)"¤ó" ))
+ (setf-key-action map 98 (list (list 'next "b" nil)"¤ó" )) map)nil ))
+ (setf-key-action map 118 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "v" map)"¥ô¤©" ))
+ (setf-key-action map 101 (list (list 'top "v" map)"¥ô¤§" ))
+ (setf-key-action map 117 (list (list 'top "v" map)"¥ô" ))
+ (setf-key-action map 105 (list (list 'top "v" map)"¥ô¤£" ))
+ (setf-key-action map 97 (list (list 'top "v" map)"¥ô¤¡" ))
+ (setf-key-action map 118 (list (list 'next "v" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 106 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "j" map)"¤¸¤ç" ))
+ (setf-key-action map 101 (list (list 'top "j" map)"¤¸¤§" ))
+ (setf-key-action map 117 (list (list 'top "j" map)"¤¸¤å" ))
+ (setf-key-action map 105 (list (list 'top "j" map)"¤¸" ))
+ (setf-key-action map 97 (list (list 'top "j" map)"¤¸¤ã" ))
+ (setf-key-action map 106 (list (list 'next "j" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 102 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "f" map)"¤Õ¤©" ))
+ (setf-key-action map 101 (list (list 'top "f" map)"¤Õ¤§" ))
+ (setf-key-action map 117 (list (list 'top "f" map)"¤Õ" ))
+ (setf-key-action map 105 (list (list 'top "f" map)"¤Õ¤£" ))
+ (setf-key-action map 97 (list (list 'top "f" map)"¤Õ¤¡" ))
+ (setf-key-action map 102 (list (list 'next "f" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 99 (list (let ((map (cons map nil)))
+ (setf-key-action map 104 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ch" map)"¤Á¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ch" map)"¤Á¤§" ))
+ (setf-key-action map 117 (list (list 'top "ch" map)"¤Á¤å" ))
+ (setf-key-action map 105 (list (list 'top "ch" map)"¤Á" ))
+ (setf-key-action map 97 (list (list 'top "ch" map)"¤Á¤ã" )) map)nil ))
+ (setf-key-action map 99 (list (list 'next "c" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 112 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "py" map)"¤Ô¤ç" ))
+ (setf-key-action map 101 (list (list 'top "py" map)"¤Ô¤§" ))
+ (setf-key-action map 117 (list (list 'top "py" map)"¤Ô¤å" ))
+ (setf-key-action map 97 (list (list 'top "py" map)"¤Ô¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "p" map)"¤Ý" ))
+ (setf-key-action map 101 (list (list 'top "p" map)"¤Ú" ))
+ (setf-key-action map 117 (list (list 'top "p" map)"¤×" ))
+ (setf-key-action map 105 (list (list 'top "p" map)"¤Ô" ))
+ (setf-key-action map 97 (list (list 'top "p" map)"¤Ñ" ))
+ (setf-key-action map 112 (list (list 'next "p" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 98 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "by" map)"¤Ó¤ç" ))
+ (setf-key-action map 101 (list (list 'top "by" map)"¤Ó¤§" ))
+ (setf-key-action map 117 (list (list 'top "by" map)"¤Ó¤å" ))
+ (setf-key-action map 97 (list (list 'top "by" map)"¤Ó¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "b" map)"¤Ü" ))
+ (setf-key-action map 101 (list (list 'top "b" map)"¤Ù" ))
+ (setf-key-action map 117 (list (list 'top "b" map)"¤Ö" ))
+ (setf-key-action map 105 (list (list 'top "b" map)"¤Ó" ))
+ (setf-key-action map 97 (list (list 'top "b" map)"¤Ð" ))
+ (setf-key-action map 98 (list (list 'next "b" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 100 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "dy" map)"¤Â¤ç" ))
+ (setf-key-action map 101 (list (list 'top "dy" map)"¤Â¤§" ))
+ (setf-key-action map 117 (list (list 'top "dy" map)"¤Â¤å" ))
+ (setf-key-action map 105 (list (list 'top "dy" map)"¤Ç¤£" ))
+ (setf-key-action map 97 (list (list 'top "dy" map)"¤Â¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "d" map)"¤É" ))
+ (setf-key-action map 101 (list (list 'top "d" map)"¤Ç" ))
+ (setf-key-action map 117 (list (list 'top "d" map)"¤Å" ))
+ (setf-key-action map 105 (list (list 'top "d" map)"¤Â" ))
+ (setf-key-action map 97 (list (list 'top "d" map)"¤À" ))
+ (setf-key-action map 100 (list (list 'next "d" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 122 (list (let ((map (cons map nil)))
+ (setf-key-action map 63 (list (list 'top "z" map)"¡ç" ))
+ (setf-key-action map 47 (list (list 'top "z" map)"¡¦" ))
+ (setf-key-action map 62 (list (list 'top "z" map)"¡æ" ))
+ (setf-key-action map 46 (list (list 'top "z" map)"¡Ä" ))
+ (setf-key-action map 60 (list (list 'top "z" map)"¡å" ))
+ (setf-key-action map 44 (list (list 'top "z" map)"¡Å" ))
+ (setf-key-action map 77 (list (list 'top "z" map)"¢®" ))
+ (setf-key-action map 109 (list (list 'top "z" map)"¡í" ))
+ (setf-key-action map 78 (list (list 'top "z" map)"¢­" ))
+ (setf-key-action map 110 (list (list 'top "z" map)"¡ì" ))
+ (setf-key-action map 66 (list (list 'top "z" map)"¢«" ))
+ (setf-key-action map 98 (list (list 'top "z" map)"¡ë" ))
+ (setf-key-action map 86 (list (list 'top "z" map)"¡à" ))
+ (setf-key-action map 118 (list (list 'top "z" map)"¢¨" ))
+ (setf-key-action map 67 (list (list 'top "z" map)"¡î" ))
+ (setf-key-action map 99 (list (list 'top "z" map)"¡»" ))
+ (setf-key-action map 88 (list (list 'top "z" map)":-)" ))
+ (setf-key-action map 120 (list (list 'top "z" map)":-" ))
+ (setf-key-action map 34 (list (list 'top "z" map)"¡È" ))
+ (setf-key-action map 39 (list (list 'top "z" map)"¡Æ" ))
+ (setf-key-action map 58 (list (list 'top "z" map)"¡¬" ))
+ (setf-key-action map 59 (list (list 'top "z" map)"¡«" ))
+ (setf-key-action map 108 (list (list 'top "z" map)"¢ª" ))
+ (setf-key-action map 107 (list (list 'top "z" map)"¢¬" ))
+ (setf-key-action map 106 (list (list 'top "z" map)"¢­" ))
+ (setf-key-action map 104 (list (list 'top "z" map)"¢«" ))
+ (setf-key-action map 71 (list (list 'top "z" map)"¡½" ))
+ (setf-key-action map 103 (list (list 'top "z" map)"¡¾" ))
+ (setf-key-action map 70 (list (list 'top "z" map)"¢ª" ))
+ (setf-key-action map 102 (list (list 'top "z" map)"¡·" ))
+ (setf-key-action map 68 (list (list 'top "z" map)"¡¶" ))
+ (setf-key-action map 100 (list (list 'top "z" map)"¡µ" ))
+ (setf-key-action map 83 (list (list 'top "z" map)"¡´" ))
+ (setf-key-action map 115 (list (list 'top "z" map)"¡³" ))
+ (setf-key-action map 125 (list (list 'top "z" map)"¡Í" ))
+ (setf-key-action map 93 (list (list 'top "z" map)"¡Ù" ))
+ (setf-key-action map 123 (list (list 'top "z" map)"¡Ì" ))
+ (setf-key-action map 91 (list (list 'top "z" map)"¡Ø" ))
+ (setf-key-action map 80 (list (list 'top "z" map)"¢¬" ))
+ (setf-key-action map 112 (list (list 'top "z" map)"¢©" ))
+ (setf-key-action map 84 (list (list 'top "z" map)"¡ø" ))
+ (setf-key-action map 116 (list (list 'top "z" map)"¡º" ))
+ (setf-key-action map 82 (list (list 'top "z" map)"¡¸" ))
+ (setf-key-action map 114 (list (list 'top "z" map)"¡¹" ))
+ (setf-key-action map 87 (list (list 'top "z" map)"¡Ó" ))
+ (setf-key-action map 119 (list (list 'top "z" map)"¡Õ" ))
+ (setf-key-action map 81 (list (list 'top "z" map)"¡Ò" ))
+ (setf-key-action map 113 (list (list 'top "z" map)"¡Ô" ))
+ (setf-key-action map 126 (list (list 'top "z" map)"¡¯" ))
+ (setf-key-action map 96 (list (list 'top "z" map)"¡­" ))
+ (setf-key-action map 124 (list (list 'top "z" map)"¡Â" ))
+ (setf-key-action map 92 (list (list 'top "z" map)"¡À" ))
+ (setf-key-action map 43 (list (list 'top "z" map)"¡Þ" ))
+ (setf-key-action map 61 (list (list 'top "z" map)"¡â" ))
+ (setf-key-action map 95 (list (list 'top "z" map)"¡è" ))
+ (setf-key-action map 45 (list (list 'top "z" map)"¡Á" ))
+ (setf-key-action map 41 (list (list 'top "z" map)"¡Û" ))
+ (setf-key-action map 48 (list (list 'top "z" map)"¡ê" ))
+ (setf-key-action map 40 (list (list 'top "z" map)"¡Ú" ))
+ (setf-key-action map 57 (list (list 'top "z" map)"¡é" ))
+ (setf-key-action map 42 (list (list 'top "z" map)"¡ß" ))
+ (setf-key-action map 56 (list (list 'top "z" map)"¡ñ" ))
+ (setf-key-action map 38 (list (list 'top "z" map)"¡ò" ))
+ (setf-key-action map 55 (list (list 'top "z" map)"¡ý" ))
+ (setf-key-action map 94 (list (list 'top "z" map)"¡ú" ))
+ (setf-key-action map 54 (list (list 'top "z" map)"¡ù" ))
+ (setf-key-action map 37 (list (list 'top "z" map)"¢¡" ))
+ (setf-key-action map 53 (list (list 'top "z" map)"¡þ" ))
+ (setf-key-action map 36 (list (list 'top "z" map)"¢£" ))
+ (setf-key-action map 52 (list (list 'top "z" map)"¢¢" ))
+ (setf-key-action map 35 (list (list 'top "z" map)"¢¥" ))
+ (setf-key-action map 51 (list (list 'top "z" map)"¢¤" ))
+ (setf-key-action map 64 (list (list 'top "z" map)"¢§" ))
+ (setf-key-action map 50 (list (list 'top "z" map)"¢¦" ))
+ (setf-key-action map 33 (list (list 'top "z" map)"¡ü" ))
+ (setf-key-action map 49 (list (list 'top "z" map)"¡û" ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "zy" map)"¤¸¤ç" ))
+ (setf-key-action map 101 (list (list 'top "zy" map)"¤¸¤§" ))
+ (setf-key-action map 117 (list (list 'top "zy" map)"¤¸¤å" ))
+ (setf-key-action map 97 (list (list 'top "zy" map)"¤¸¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "z" map)"¤¾" ))
+ (setf-key-action map 101 (list (list 'top "z" map)"¤¼" ))
+ (setf-key-action map 117 (list (list 'top "z" map)"¤º" ))
+ (setf-key-action map 105 (list (list 'top "z" map)"¤¸" ))
+ (setf-key-action map 97 (list (list 'top "z" map)"¤¶" ))
+ (setf-key-action map 122 (list (list 'next "z" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 103 (list (let ((map (cons map nil)))
+ (setf-key-action map 119 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "gw" map)"¤°¤©" ))
+ (setf-key-action map 101 (list (list 'top "gw" map)"¤°¤§" ))
+ (setf-key-action map 117 (list (list 'top "gw" map)"¤°" ))
+ (setf-key-action map 105 (list (list 'top "gw" map)"¤°¤£" ))
+ (setf-key-action map 97 (list (list 'top "gw" map)"¤°¤î" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "gy" map)"¤®¤ç" ))
+ (setf-key-action map 101 (list (list 'top "gy" map)"¤®¤§" ))
+ (setf-key-action map 117 (list (list 'top "gy" map)"¤®¤å" ))
+ (setf-key-action map 97 (list (list 'top "gy" map)"¤®¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "g" map)"¤´" ))
+ (setf-key-action map 101 (list (list 'top "g" map)"¤²" ))
+ (setf-key-action map 117 (list (list 'top "g" map)"¤°" ))
+ (setf-key-action map 105 (list (list 'top "g" map)"¤®" ))
+ (setf-key-action map 97 (list (list 'top "g" map)"¤¬" ))
+ (setf-key-action map 103 (list (list 'next "g" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 119 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "w" map)"¤ò" ))
+ (setf-key-action map 101 (list (list 'top "w" map)"¤ñ" ))
+ (setf-key-action map 117 (list (list 'top "w" map)"¤¦" ))
+ (setf-key-action map 105 (list (list 'top "w" map)"¤ð" ))
+ (setf-key-action map 97 (list (list 'top "w" map)"¤ï" ))
+ (setf-key-action map 119 (list (list 'next "w" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 114 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ry" map)"¤ê¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ry" map)"¤ê¤§" ))
+ (setf-key-action map 117 (list (list 'top "ry" map)"¤ê¤å" ))
+ (setf-key-action map 97 (list (list 'top "ry" map)"¤ê¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "r" map)"¤í" ))
+ (setf-key-action map 101 (list (list 'top "r" map)"¤ì" ))
+ (setf-key-action map 117 (list (list 'top "r" map)"¤ë" ))
+ (setf-key-action map 105 (list (list 'top "r" map)"¤ê" ))
+ (setf-key-action map 97 (list (list 'top "r" map)"¤é" ))
+ (setf-key-action map 114 (list (list 'next "r" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "y" map)"¤è" ))
+ (setf-key-action map 101 (list (list 'top "y" map)"¤¤¤§" ))
+ (setf-key-action map 117 (list (list 'top "y" map)"¤æ" ))
+ (setf-key-action map 105 (list (list 'top "y" map)"¤¤" ))
+ (setf-key-action map 97 (list (list 'top "y" map)"¤ä" ))
+ (setf-key-action map 121 (list (list 'next "y" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 104 (list (let ((map (cons map nil)))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "hy" map)"¤Ò¤ç" ))
+ (setf-key-action map 101 (list (list 'top "hy" map)"¤Ò¤§" ))
+ (setf-key-action map 117 (list (list 'top "hy" map)"¤Ò¤å" ))
+ (setf-key-action map 97 (list (list 'top "hy" map)"¤Ò¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "h" map)"¤Û" ))
+ (setf-key-action map 101 (list (list 'top "h" map)"¤Ø" ))
+ (setf-key-action map 117 (list (list 'top "h" map)"¤Õ" ))
+ (setf-key-action map 105 (list (list 'top "h" map)"¤Ò" ))
+ (setf-key-action map 97 (list (list 'top "h" map)"¤Ï" ))
+ (setf-key-action map 104 (list (list 'next "h" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 116 (list (let ((map (cons map nil)))
+ (setf-key-action map 115 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ts" map)"¤Ä¤©" ))
+ (setf-key-action map 101 (list (list 'top "ts" map)"¤Ä¤§" ))
+ (setf-key-action map 105 (list (list 'top "ts" map)"¤Ä¤£" ))
+ (setf-key-action map 97 (list (list 'top "ts" map)"¤Ä¤¡" ))
+ (setf-key-action map 117 (list (list 'top "ts" map)"¤Ä" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ty" map)"¤Á¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ty" map)"¤Á¤§" ))
+ (setf-key-action map 117 (list (list 'top "ty" map)"¤Á¤å" ))
+ (setf-key-action map 105 (list (list 'top "ty" map)"¤Æ¤£" ))
+ (setf-key-action map 97 (list (list 'top "ty" map)"¤Á¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "t" map)"¤È" ))
+ (setf-key-action map 101 (list (list 'top "t" map)"¤Æ" ))
+ (setf-key-action map 117 (list (list 'top "t" map)"¤Ä" ))
+ (setf-key-action map 105 (list (list 'top "t" map)"¤Á" ))
+ (setf-key-action map 97 (list (list 'top "t" map)"¤¿" ))
+ (setf-key-action map 99 (list (let ((map (cons map nil)))
+ (setf-key-action map 104 (list (list 'next "ch" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 116 (list (list 'next "t" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 115 (list (let ((map (cons map nil)))
+ (setf-key-action map 104 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "sh" map)"¤·¤ç" ))
+ (setf-key-action map 101 (list (list 'top "sh" map)"¤·¤§" ))
+ (setf-key-action map 117 (list (list 'top "sh" map)"¤·¤å" ))
+ (setf-key-action map 105 (list (list 'top "sh" map)"¤·" ))
+ (setf-key-action map 97 (list (list 'top "sh" map)"¤·¤ã" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "sy" map)"¤·¤ç" ))
+ (setf-key-action map 101 (list (list 'top "sy" map)"¤·¤§" ))
+ (setf-key-action map 117 (list (list 'top "sy" map)"¤·¤å" ))
+ (setf-key-action map 97 (list (list 'top "sy" map)"¤·¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "s" map)"¤½" ))
+ (setf-key-action map 101 (list (list 'top "s" map)"¤»" ))
+ (setf-key-action map 117 (list (list 'top "s" map)"¤¹" ))
+ (setf-key-action map 105 (list (list 'top "s" map)"¤·" ))
+ (setf-key-action map 97 (list (list 'top "s" map)"¤µ" ))
+ (setf-key-action map 115 (list (list 'next "s" nil)"¤Ã" )) map)nil ))
+ (setf-key-action map 107 (list (let ((map (cons map nil)))
+ (setf-key-action map 119 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "kw" map)"¤¯¤©" ))
+ (setf-key-action map 101 (list (list 'top "kw" map)"¤¯¤§" ))
+ (setf-key-action map 117 (list (list 'top "kw" map)"¤¯" ))
+ (setf-key-action map 105 (list (list 'top "kw" map)"¤¯¤£" ))
+ (setf-key-action map 97 (list (list 'top "kw" map)"¤¯¤î" )) map)nil ))
+ (setf-key-action map 121 (list (let ((map (cons map nil)))
+ (setf-key-action map 111 (list (list 'top "ky" map)"¤­¤ç" ))
+ (setf-key-action map 101 (list (list 'top "ky" map)"¤­¤§" ))
+ (setf-key-action map 117 (list (list 'top "ky" map)"¤­¤å" ))
+ (setf-key-action map 97 (list (list 'top "ky" map)"¤­¤ã" )) map)nil ))
+ (setf-key-action map 111 (list (list 'top "k" map)"¤³" ))
+ (setf-key-action map 101 (list (list 'top "k" map)"¤±" ))
+ (setf-key-action map 117 (list (list 'top "k" map)"¤¯" ))
+ (setf-key-action map 105 (list (list 'top "k" map)"¤­" ))
+ (setf-key-action map 97 (list (list 'top "k" map)"¤«" ))
+ (setf-key-action map 107 (list (list 'next "k" nil)"¤Ã" )) map)nil ))
+  map) )
diff -arcN emacs-18.55/lisp/eggrc-v3 nemacs-3.3.2/lisp/eggrc-v3
*** emacs-18.55/lisp/eggrc-v3	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/eggrc-v3	Wed Jun  6 03:17:12 1990
***************
*** 0 ****
--- 1,37 ----
+ ;;;
+ ;;;	 Standard Start Up File for EGG
+ ;;;	 Version 1.0
+ ;;;      Copyright 1988 Satoru.Tomura@etl.go.jp
+ ;;;
+ 
+ (set-default-sys-dic-directory "/usr/local/lib/dic/sys/")
+ (set-default-usr-dic-directory "/usr/local/lib/dic/usr/$USER/")
+ 
+ ;;;
+ ;;;  System Dictionary
+ ;;;
+ 
+ (setsysdic "pd-kihon"  "pd-kihon" 5)
+ 
+ (setsysdic "pd-setsuji" "pd-setsuji" 6)
+ 
+ (setsysdic "pd-jinmei" "pd-jinmei" 1)
+ 
+ (setsysdic "pd-chimei" "pd-chimei" 1)
+ 
+ (setsysdic "pd-koyuu" "pd-koyuu" 1)
+ 
+ (setsysdic "pd-computer"  "pd-computer" 10)
+ 
+ (setsysdic "pd-symbol" "pd-symbol" 1)
+ 
+ (setsysdic "pd-tankan" "pd-tankan" 0)
+ 
+ (setsysdic "pd-wnn" "pd-wnn" 5)
+ 
+ ;;;
+ ;;; Private Dictionary
+ ;;;
+ 
+ (setusrdic "my-dict" 5)
+ 
diff -arcN emacs-18.55/lisp/eggrc-v4 nemacs-3.3.2/lisp/eggrc-v4
*** emacs-18.55/lisp/eggrc-v4	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/eggrc-v4	Wed Jun  6 03:17:12 1990
***************
*** 0 ****
--- 1,34 ----
+ ;;;
+ ;;;	 Standard Start Up File for EGG
+ ;;;	 Version 1.0
+ ;;;      Copyright 1988 Satoru.Tomura@etl.jp
+ ;;;      modified for LUNA'default  ryuji@nfa.ncl.omron.junet
+ ;;;
+ ;;;      modified for Wnn V4 - Use conpatible library of Wnn v3
+ ;;;	 Copyright 1989 OMRON Tateisi Electronics, Co.
+ ;;;	 1989 7/12 by H.Kuribayashi kuri@frf.oron.junet
+ 
+ ;;;
+ ;;; Wnn V4
+ ;;;
+ 
+ (set-default-sys-dic-directory "/usr/local/lib/wnn/dic/pubdic/")
+ (set-default-usr-dic-directory "/usr/local/lib/wnn/dic/usr/$USER/")
+ 
+ (setsysdic "kihon.dic"    "kihon.frq" 5  t)
+ (setsysdic "koyuu.dic"    "koyuu.frq" 3  t)
+ (setsysdic "chimei.dic"   "chimei.frq" 3  t)
+ (setsysdic "computer.dic" "computer.frq" 3  t)
+ (setsysdic "jinmei.dic"   "jinmei.frq" 3  t)
+ (setsysdic "setsuji.dic"  "setsuji.frq" 3  t)
+ (setsysdic "special.dic"  "special.frq" 3  t)
+ (setsysdic "symbol.dic"   "symbol.frq" 3  t)
+ (setsysdic "tankan.dic"   "tankan.frq" 3  t)
+ 
+ ;;;
+ ;;; Private Dictionary
+ ;;;
+ 
+ (setusrdic "private" 5 t)
+ 
+ ;;;
diff -arcN emacs-18.55/lisp/fill.el nemacs-3.3.2/lisp/fill.el
*** emacs-18.55/lisp/fill.el	Fri Aug 19 11:37:55 1988
--- nemacs-3.3.2/lisp/fill.el	Wed Jun  6 03:15:47 1990
***************
*** 1,3 ****
--- 1,35 ----
+ ;;;  Fill Commands for Egg on Nemacs
+ ;;;  Modified by Satoru Tomura (tomura@etl.go.jp)
+ 
+ ;;;  Ver.18.55    modified by S. Tomura 89-Nov-15,17
+ ;;;  Ver.18.55    created by S. Tomura 89-Nov-15
+ ;;;  Nemacs Ver. 3.2
+ ;;;  Ver.18.52c   modified by S. Tomura 89-Oct-19
+ ;;;  Ver.18.52b   modified by S. Tomura 89-Oct-2
+ ;;;  Ver.18.52a   modified by S. Tomura 89-Aug-30
+ ;;;               kanji-kanji-* are corrected.
+ ;;;  Ver.18.52    created  by S. Tomura 89-Mar-16
+ ;;;  Ver.18.50f   modified by S. Tomura 88-Aug-25
+ ;;;               See ;; 88-Aug-25
+ ;;;  Ver.18.50e   modified by S. Tomura 88-Aug-24
+ ;;;               constant hiragana-char and katakana-char corrected.
+ ;;;  Ver.18.50d   modified by S. Tomura 88-Jun-30
+ ;;;  Ver.18.50c   modified by S. Tomura 88-Jun-21
+ ;;;  Ver.18.50b   modified by S. Tomura 88-Jun-20
+ ;;;  Ver.18.50a   modified by S. Tomura 88-Jun-16
+ ;;;  Ver.18.50    created by S. Tomura 88-Jun-11
+ ;;;  Nemacs Ver.2.1
+ ;;;  Ver.18.47e   modified by S. Tomura 88-Jun-7
+ ;;;               Kanji justification added.
+ ;;;  Ver.18.47d   modified by S. Tomura 88-Jun-2
+ ;;;               In kanji-mode a space after an English word preserved.
+ ;;;               Some codes become simpler and clearer.
+ ;;;               Same method as simple.el adapted.
+ ;;;  Ver.18.47c   modified by S. Tomura 88-May-25
+ ;;;  Ver.18.47b   modified by S. Tomura 88-Feb-9
+ ;;;; Ver.18.47a   modified by S. Tomura 88-Feb-5
+ ;;;;              Kanji fill region added.
+ 
  ;; Fill commands for Emacs
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 66,75 ****
  
      ;; Make sure sentences ending at end of line get an extra space.
      (goto-char from)
      (while (re-search-forward "[.?!][])""']*$" nil t)
!       (insert ? ))
      ;; The change all newlines to spaces.
!     (subst-char-in-region from (point-max) ?\n ?\ )
      ;; Flush excess spaces, except in the paragraph indentation.
      (goto-char from)
      (skip-chars-forward " \t")
--- 98,133 ----
  
      ;; Make sure sentences ending at end of line get an extra space.
      (goto-char from)
+     ;;;; patch by S.Tomura 88-Jun-30
+     ;;¡ãÅý¹ç¡ä
+     ;; . + CR             ==> . + SPC + SPC 
+     ;; . + SPC + CR +     ==> . + SPC + 
+     ;;(while (re-search-forward "[.?!][])""']*$" nil t)
+     ;;  (insert ? ))
      (while (re-search-forward "[.?!][])""']*$" nil t)
!       (if (eobp)
! 	  nil
!       (delete-char 1)
!       (insert "  "))) ;;; replace CR by two spaces.
!     ;;; end of patch
      ;; The change all newlines to spaces.
!     ;;; patched by S.Tomura 87-Dec-7
!     ;;; bug fixed by S.Tomura 88-May-25
!     ;;; modified by  S.Tomura 88-Jun-21
!     ;;;(subst-char-in-region from (point-max) ?\n ?\ )
!     ;;;ÆüËÜ¸ì¤Î¸ì¤Î¸å¤Ë¤Ï¶õÇò¤Ï¤Ê¤¤¡£
!     (goto-char from)
!     (end-of-line)
!     (while (not (eobp))
!       (delete-char 1)
!       (if (and (< ?  (preceding-char)) ;;; + SPC + CR + X ==> + SPC + X
! 	       (< (preceding-char) 128)
! 	       (<= ?  (following-char))
! 	       (< (following-char) 128))
! 	   (insert ?\  ))
!       (end-of-line))
!     ;;; ¼¡¤Î½èÍý¤ÇÊ¸Ëö¤Ë¤Ïtwo spaces¤¬¤¢¤ê¡¢¤½¤ì°Ê³°¤Ïsingle space¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
!     ;;; end of patch
      ;; Flush excess spaces, except in the paragraph indentation.
      (goto-char from)
      (skip-chars-forward " \t")
***************
*** 87,100 ****
      (goto-char (point-min))
      (let ((prefixcol 0))
        (while (not (eobp))
! 	(move-to-column (1+ fill-column))
  	(if (eobp)
  	    nil
! 	  (skip-chars-backward "^ \n")
! 	  (if (if (zerop prefixcol) (bolp) (>= prefixcol (current-column)))
! 	      (skip-chars-forward "^ \n")
! 	    (forward-char -1)))
! 	(delete-horizontal-space)
  	(insert ?\n)
  	(and (not (eobp)) fill-prefix (not (equal fill-prefix ""))
  	     (progn
--- 145,222 ----
      (goto-char (point-min))
      (let ((prefixcol 0))
        (while (not (eobp))
! 	;;; patched by S.Tomura 88-Jun-2
! 	;;;(move-to-column (1+ fill-column))
! 	(move-to-column fill-column)
! 	;;; end of patch
! 	;;; patched by S.Tomura 88-Jun-16, 89-Oct-2, 89-Oct-19
! 	;;; ´Á»ú¥³¡¼¥É¤Î¾ì¹ç¤Ë¤Ïfill-column¤è¤êÂç¤­¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£
! 	(or (>= fill-column (current-column)) (backward-char 1))
! 	;;; end of patch
  	(if (eobp)
  	    nil
! 	  ;;; patched by S.Tomura 87-Jun-2
! 	  ;;;(skip-chars-backward "^ \n")
! 	  ;;;(if (if (zerop prefixcol) (bolp) (>= prefixcol (current-column)))
! 	  ;;;    (skip-chars-forward "^ \n")
! 	  ;;;  (forward-char -1)))
! 	  ;;; ¸¶Â§¤È¤·¤Æfill-column¤è¤êº¸Â¦¤ËÊ¬³äÅÀ¤òÃµ¤¹¡£
! 	  ;;; Find a point to break lines
! 	     (skip-chars-backward " \t") ;; skip SPC and TAB
! 	     (if (or (<= 128 (preceding-char))
! 		     (<= 128 (following-char)) ;;; 88-Aug-25
! 		     (= (following-char) ? )
! 		     (= (following-char) ?\t))
! 		 (kinsoku-shori)
! 	       (if(re-search-backward "[ \t\n]\\|\\z" ;;; 89-Nov-17
! 				      (point-min) (point-min))
! 		   (forward-char 1))
! 	       (skip-chars-backward " \t")
! 	       (kinsoku-shori))
! 	     ;;; prifixcol¤è¤ê±¦Â¦¤ËÊ¬³äÅÀ¤òÃµ¤¹¡£
! 	     ;;; ¤³¤Î¾ì¹ç¤ÏÊ¬³äÅÀ¤Ïfill-column¤è¤ê±¦Â¦¤Ë¤Ê¤ë¡£
! 	     (if (>= prefixcol (current-column))
! 		 (progn
! 		   (move-to-column prefixcol)
! 		   (if (re-search-forward "[ \t]\\|\\z" ;;; 89-Nov-17
! 					  (point-max) (point-max))
! 		       (backward-char 1))
! 		   (skip-chars-backward " \t")
! 		   (kinsoku-shori)
! 		   ;;; ¤½¤ì¤âÂÌÌÜ¤Ê¤éÊ¬³ä¤òÄü¤á¤ë¡£
! 		   (if (>= prefixcol (current-column)) (goto-char (point-max))))))
! 	;;; end of patch S.Tomura
! 	;;; patch by S. Tomura 88-Jun-20
! 	;;;(delete-horizontal-space)
!         ;;;¡ãÊ¬³ä¡ä
!         ;;; Á´³Ñ | SPC + SPC¡ö   --> Á´³Ñ + SPC + CR
! 	;;; | SPC + SPC* + Á´³Ñ  --> SPC  + CR + Á´³Ñ
!         ;;; . | SPC + SPC +      --> . + CR
!         ;;; . | SPC + nonSPC     --> . + SPC + CR + nonSPC
!         ;;;
!         ;;; . | È¾³Ñ             --> Ê¬³ä¤·¤Ê¤¤
!         ;;; . | Á´³Ñ             --> Ê¬³ä¤·¤Ê¤¤
! 	(if (not kanji-flag) (delete-horizontal-space)
! 	  (let ((start) (end))
! 	    (skip-chars-backward " \t")
! 	    (setq start (point))
! 	    (skip-chars-forward  " \t")
! 	    (setq end (point))
! 	    (delete-region start end)
! 	    (if (and (not
! 		      (and (save-excursion
! 			     (skip-chars-backward " ])\"'")
! 			     (memq (preceding-char) '(?. ?? ?!)))
! 			   (= end (+ start 2))))
! 		     (or (and (or (<= 128 (preceding-char))
! 				  (<= 128 (following-char)))
! 			      (< start end)
! 			      (not (eobp)))
! 			 (and (memq (preceding-char) '(?. ?? ?!))
! 			      (= (1+ start) end)
! 			      (not (eobp)))))
! 		(insert ?  ))))
! 	;;; end of patch
  	(insert ?\n)
  	(and (not (eobp)) fill-prefix (not (equal fill-prefix ""))
  	     (progn
***************
*** 134,139 ****
--- 256,318 ----
  	   (fill-region-as-paragraph (point) end justify-flag)
  	 (goto-char end))))))
  
+ ;;; patch by S.Tomura 88-Jun-2, 89-Nov-15
+ ;;; ÆüËÜ¸ì¤Îjustification¤Ç¤Ï¡¢È¾³Ñ¶õÇò¤òÆþ¤ì¤é¤ì¤ë¾ì½ê¤Ï
+ ;;; "¡£¡¢"¤Î¸å
+ ;;; ""¤ÎÁ°
+ ;;; ±ÑÃ±¸ì¤ÈÆüËÜ¸ì¤È¤Î´Ö
+ ;;; ¤Ç¤¢¤ë¡£
+ 
+ (defvar ascii-char "[\40-\176]")
+ 
+ (defvar ascii-space "[ \t]")
+ (defvar ascii-symbols "[\40-\57\72-\100\133-\140\173-\176]")
+ (defvar ascii-numeric "[\60-\71]")
+ (defvar ascii-English-Upper "[\101-\132]")
+ (defvar ascii-English-Lower "[\141-\172]")
+ 
+ (defvar ascii-alphanumeric "[\60-\71\101-\132\141-\172]")
+ 
+ (defvar kanji-char "\\z")
+ (defvar kanji-space "¡¡")
+ (defvar kanji-symbols "\\cs")
+ (defvar kanji-numeric "[£°-£¹]")
+ (defvar kanji-English-Upper "[£Á-£Ú]")
+ (defvar kanji-English-Lower  "[£á-£ú]")
+ ;;; Bug fixed by Yoshida@CSK on 88-AUG-24
+ (defvar kanji-hiragana "[¤¡-¤ó]")
+ (defvar kanji-katakana "[¥¡-¥ö]")
+ ;;;
+ (defvar kanji-Greek-Upper "[¦¡-¦¸]")
+ (defvar kanji-Greek-Lower "[¦Á-¦Ø]")
+ (defvar kanji-Russian-Upper "[§¡-§Á]")
+ (defvar kanji-Russian-Lower "[§Ñ-§ñ]")
+ (defvar kanji-Kanji-1st-Level  "[°¡-ÏÓ]")
+ (defvar kanji-Kanji-2nd-Level  "[Ð¡-ô¤]")
+ 
+ (defvar kanji-kanji-char "\\(\\ch\\|\\ck\\|\\cc\\)")
+ 
+ (defvar aletter (concat "\\(" ascii-char "\\|" kanji-char "\\)"))
+ 
+ (defvar kanji-space-insertable (concat 
+ 	   "¡¢" aletter                   "\\|"
+ 	   "¡£" aletter                   "\\|"
+ 	   aletter "¡Ê"                   "\\|"
+ 	   "¡Ë" aletter                   "\\|"
+ 	   ascii-alphanumeric  kanji-kanji-char "\\|"
+ 	   kanji-kanji-char    ascii-alphanumeric ))
+ 
+ (defvar space-insertable (concat
+ 	  " " aletter                     "\\|"
+ 	  kanji-space-insertable))
+ 
+ (defun find-space-insertable-point ()
+   (if (re-search-backward space-insertable nil t)
+       (progn (forward-char 1)
+ 	     t)
+     nil))
+ ;;; end of patch
+ 
  (defun justify-current-line ()
    "Add spaces to line point is in, so it ends at fill-column."
    (interactive)
***************
*** 161,174 ****
  	(insert ? ))
        (goto-char (point-max))
        (setq ncols (- fill-column (current-column)))
!       (if (search-backward " " nil t)
  	  (while (> ncols 0)
  	    (let ((nmove (+ 3 (% (random) 3))))
  	      (while (> nmove 0)
! 		(or (search-backward " " nil t)
  		    (progn
  		     (goto-char (point-max))
! 		     (search-backward " ")))
  		(skip-chars-backward " ")
  		(setq nmove (1- nmove))))
  	    (insert " ")
--- 340,362 ----
  	(insert ? ))
        (goto-char (point-max))
        (setq ncols (- fill-column (current-column)))
!       ;;; patch by S.Tomura 88-Jun-7
!       ;;;(if (search-backward " " nil t)
!       (if (find-space-insertable-point)
!       ;;; end of patch
  	  (while (> ncols 0)
  	    (let ((nmove (+ 3 (% (random) 3))))
  	      (while (> nmove 0)
! 		;;; patch by S.Tomura 88-Jun-7
! 		;;;(or (search-backward " " nil t)
! 		(or (find-space-insertable-point)
! 		;;; end of patch
  		    (progn
  		     (goto-char (point-max))
! 		     ;;; patch by S.Tomura 88-Jun-7
! 		     ;;;(search-backward " ")))
! 		     (find-space-insertable-point)))
! 		     ;;; end of patch
  		(skip-chars-backward " ")
  		(setq nmove (1- nmove))))
  	    (insert " ")
diff -arcN emacs-18.55/lisp/isearch.el nemacs-3.3.2/lisp/isearch.el
*** emacs-18.55/lisp/isearch.el	Wed Dec  9 08:11:03 1987
--- nemacs-3.3.2/lisp/isearch.el	Wed Jun  6 03:15:52 1990
***************
*** 1,3 ****
--- 1,5 ----
+ ;;; 88.5.29  modified for Nemacs Ver.2.1 by K.Handa
+ 
  ;; Incremental search
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 58,63 ****
--- 60,71 ----
  ;; whereas this file can optionally be autoloadable.
  ;; This is the only entry point in this file.
  
+ ;;; patch by K.Handa 88.5.28
+ (defconst search-string-char ?\C-k)
+ (defvar search-string-char-prompt "Enter string... ")
+ (defvar current-isearch-message "")
+ ;;; end of patch
+ 
  (defun isearch (forward &optional regexp)
    (let ((search-string "")
  	(search-message "")
***************
*** 142,148 ****
  				    search-last-regexp search-last-string)
  				search-message
  				(mapconcat 'text-char-description
! 					   search-string ""))
  			;; If already have what to search for, repeat it.
  			(or success
  			    (progn (goto-char (if forward (point-min) (point-max)))
--- 150,161 ----
  				    search-last-regexp search-last-string)
  				search-message
  				(mapconcat 'text-char-description
! 					   ;;; original line is
! 					   ;;; search-string ""))
! 					   ;;; and new lines are
! 					   (kanji-word-list search-string)
! 					   ""))
! 			                   ;;; end of patch
  			;; If already have what to search for, repeat it.
  			(or success
  			    (progn (goto-char (if forward (point-min) (point-max)))
***************
*** 179,185 ****
  				 search-message
  				   (concat search-message
  					   (mapconcat 'text-char-description
! 						      word "")))))
  			 ;; Any other control char =>
  			 ;;  unread it and exit the search normally.
  			 ((and search-exit-option
--- 192,213 ----
  				 search-message
  				   (concat search-message
  					   (mapconcat 'text-char-description
! 					   ;;; original line is
! 					   ;;;	      word "")))))
! 					   ;;; and new lines are
! 					   (kanji-word-list word)
! 					   "")))))
! 			                   ;;; end of patch
!  			 ;;; patch by K.Handa 88.5.27
! 			 ((eq char search-string-char)
! 			  (let ((str (save-excursion
! 				       (read-string
! 					(concat search-string-char-prompt
! 						current-isearch-message)))))
! 			    (setq search-string (concat search-string str)
! 				  search-message
! 				    (concat search-message str))))
! 			 ;;; end of patch
  			 ;; Any other control char =>
  			 ;;  unread it and exit the search normally.
  			 ((and search-exit-option
***************
*** 284,289 ****
--- 312,320 ----
  		       (concat " [" invalid-regexp "]")
  		     ""))))
      (aset m 0 (upcase (aref m 0)))
+     ;;; patch by K.Handa 88.5.28
+     (setq current-isearch-message m)
+     ;;; end of patch
      (let ((cursor-in-echo-area ellipsis))
        (if c-q-hack m (message "%s" m)))))
  
diff -arcN emacs-18.55/lisp/kanji-util.el nemacs-3.3.2/lisp/kanji-util.el
*** emacs-18.55/lisp/kanji-util.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/kanji-util.el	Wed Jun  6 03:17:13 1990
***************
*** 0 ****
--- 1,845 ----
+ ;; Kanji Utility commands for Nemacs
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ ;;      and K.Handa, Electrotechnical Lab. (handa@etl.go.jp)
+ 
+ ;; This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+ ;; Nemacs is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;; Ver.1.18  modified by K.Handa 90-Feb-27
+ ;;;	      list-kanji-code-briefly shows FIDP in this order
+ ;;; Ver.1.17  modified by S.Tomura 90-Jan-13
+ ;;;           *-kanji-code-match uses strict-string-match
+ ;;; Ver.1.16  modified by yosikawa@spls8.ccs.mt.nec.co.jp 90-Jan-12
+ ;;;	      Now list-kanji-coded-briefly sees kanji-expected-code
+ ;;;	      change-kanji-expected-code added
+ ;;; Ver.1.15  modified by S.Tomura 90-Jan-9
+ ;;;           (1) in completing-read for kanji-code input, 
+ ;;;           change REQUIRE-MATCH from nil to t
+ ;;;           (2) several *-kanji-code-alist are added.
+ ;;; Ver.1.14  modified by S.Tomura 89-Dec-16
+ ;;;           Bugs in server-kanji-code-match and
+ ;;;           program-kanji-code-match are fixed
+ ;;; Ver.1.13  modified by S.Tomura 89-Dec-15
+ ;;;           server-kanji-code-match and 
+ ;;;           program-kanji-code-match changed 
+ ;;; Ver. 1.12 modified by T. Nakagawa 89-Dec-14
+ ;;;           find-kanji-process-code-env modified
+ ;;; Ver. 1.11 modified by S. Tomura 89-Dec-12
+ ;;;           find-file-read-only modified
+ ;;;           find-file-other-window modified
+ ;;; Ver. 1.10 modified by S. Tomura 89-Dec-11
+ ;;;           find-kanji-file-input-code changed
+ ;;; Ver. 1.9  modified by S. Tomura 89-Dec-11
+ ;;;           find-alternate-file modified
+ ;;; Ver. 1.8  modified by S. Tomura 89-Sep-18
+ ;;;           kanji-file-output-code-query-flag added
+ ;;; Ver. 1.7  modified by S. Tomura 89-Sep-4
+ ;;;           invoke-find-* are added.
+ ;;; Ver. 1.6  modified by S. Tomura 89-Aug-29
+ ;;;           function find-kanji-file-input-code
+ ;;;           function find-kanji-file-output-code added
+ ;;; Ver. 1.5  modified by S. Tomura 89-Aug-21
+ ;;;           function find-kanji-fileio-code added
+ ;;; Ver. 1.4  modified by S. Tomura 89-Aug-18
+ ;;;           functions "get-*" are renamed to "find-*"
+ ;;; Ver. 1.3  modified by S. Tomura 89-Jun-30
+ ;;;           name set-default-kanji-fileio-code fixed.
+ ;;; Ver. 1.2  modified by S. Tomura 89-Apr-20
+ ;;;;          service-kanji-code-match modified.
+ ;;;;          SERIVCE of open-network-stream may be an integer.
+ ;;; Ver. 1.1  modified by S. Tomura 89-Apr-19
+ ;;;;          kanji-code-internal added
+ ;;; Nemacs 3.0 created by S. Tomura 89-Mar-16
+ ;;; Nemacs 2.1 created by S. Tomura 88-Jun-14
+ 
+ (defvar kanji-util-version "1.17")
+ ;;; Last modified date: Sat Jan 13 12:11:03 1990
+ 
+ (defvar kanji-keymap (make-keymap) "Keymap for Kanji manipulation")
+ (fset 'kanji-prefix kanji-keymap)
+ 
+ (define-key ctl-x-map "\C-k" 'kanji-prefix)
+ (define-key kanji-keymap "t" 'toggle-kanji-flag)
+ (define-key kanji-keymap "f" 'change-fileio-code)
+ (define-key kanji-keymap "i" 'change-input-code)
+ (define-key kanji-keymap "d" 'change-display-code)
+ (define-key kanji-keymap "p" 'change-process-code)
+ (define-key kanji-keymap "e" 'change-kanji-expected-code)
+ (define-key kanji-keymap "T" 'toggle-default-kanji-flag)
+ (define-key kanji-keymap "F" 'change-default-fileio-code)
+ (define-key kanji-keymap "P" 'change-default-process-code)
+ (define-key kanji-keymap "c" 'list-kanji-codes-briefly)
+ (define-key kanji-keymap "C" 'list-kanji-codes)
+ 
+ (defun toggle-kanji-flag ()
+   "Toggle kanji-flag."
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq kanji-flag (not kanji-flag))
+   (redraw-display))
+ 
+ (defun toggle-default-kanji-flag ()
+   "Toggle default-kanji-flag."
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq default-kanji-flag (not default-kanji-flag))
+   (redraw-display))
+ 
+ (defun change-fileio-code ()
+   "Change kanji-fileio-code.\n\
+ NIL -> No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> NIL"
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq kanji-fileio-code
+ 	(cond ((not kanji-fileio-code) 0)
+ 	      ((= kanji-fileio-code 3) nil)
+ 	      (t (1+ kanji-fileio-code))))
+   (set-buffer-modified-p (buffer-modified-p)))
+ 
+ (defun change-default-fileio-code ()
+   "Change default-kanji-fileio-code.\n\
+ NIL -> No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> NIL\n\
+ New default-kanji-fileio-code is returned."
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq default-kanji-fileio-code
+ 	(cond ((not default-kanji-fileio-code) 0)
+ 	      ((= default-kanji-fileio-code 3) nil)
+ 	      (t (1+ default-kanji-fileio-code))))
+   (set-buffer-modified-p (buffer-modified-p))
+   default-kanji-fileio-code)
+ 
+ (defun change-input-code ()
+   "Change kanji-input-code.\n\
+ No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> No-conversion(0)"
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq kanji-input-code
+ 	(if (= kanji-input-code 3)
+ 	    0
+ 	  (1+ kanji-input-code)))
+   (set-buffer-modified-p (buffer-modified-p)))
+ 	
+ (defun change-display-code ()
+   "Change kanji-display-code.\n\
+ No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> No-conversion(0)"
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq kanji-display-code
+ 	(if (= kanji-display-code 3)
+ 	    0
+ 	  (1+ kanji-display-code)))
+   (redraw-display))
+ 
+ (defun change-process-code ()
+   "Change kanji code for the current buffers' process.\n\
+ No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> No-conversion(0)"
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (let ((p (get-buffer-process (current-buffer))))
+     (if (not p)
+ 	(error "no process")
+       (let ((code (process-kanji-code p)))
+ 	(set-process-kanji-code
+ 	 p
+ 	 (cond ((= code 3) 0)
+ 	       (t (1+ code)))))))
+   (set-buffer-modified-p (buffer-modified-p)))
+ 
+ (defun change-default-process-code ()
+   "Change default-kanji-process-code.\n\
+ No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> No-conversion(0)\n\
+ New default kanji code for the current process is returned."
+   (interactive)		;;; patch by H.Nakahara 87.6.24
+   (setq default-kanji-process-code
+ 	(cond ((= default-kanji-process-code 3) 0)
+ 	       (t (1+ default-kanji-process-code))))
+   (set-buffer-modified-p (buffer-modified-p))
+   default-kanji-process-code)
+ 
+ ;;; 90.1.12  patch by yosikawa@spls8.ccs.mt.nec.co.jp
+ (defun change-kanji-expected-code ()
+   "Change kanji-expected-code.\n\
+   NIL -> T -> No-conversion(0) -> Shift-JIS(1) -> JIS(2) -> EUC(3) -> NIL\n\
+   New kanji-expected-code is returned."
+   (interactive)
+   (setq kanji-expected-code
+ 	(cond ((null kanji-expected-code) t)
+ 	      ((eq kanji-expected-code t) 0)
+ 	      ((= kanji-expected-code 3) nil)
+ 	      (t (1+ kanji-expected-code))))
+   (set-buffer-modified-p (buffer-modified-p))
+   kanji-expected-code)
+ ;;; end of patch
+ 
+ (defun list-kanji-codes-briefly ()
+   "Display a list of values of kanji-code related valiables\n\
+ with a brief format in mini-buffer."
+   (interactive)
+   (message
+    "global: [FIDP=%c%c%c%c]  local: [FP=%c%c]  expected: [E=%c]"
+    (car (kanji-code-mnemonic-string default-kanji-fileio-code))
+    (car (kanji-code-mnemonic-string kanji-input-code))
+    (car (kanji-code-mnemonic-string kanji-display-code))
+    (car (kanji-code-mnemonic-string default-kanji-process-code))
+    (car (kanji-code-mnemonic-string kanji-fileio-code))
+    (car (kanji-code-mnemonic-string
+ 	 (let (p (get-buffer-process (current-buffer)))
+ 	   (if p (process-kanji-code p)))))
+    (car (kanji-code-mnemonic-string kanji-expected-code))))
+ 
+ (defun list-kanji-codes ()
+   "Display a list of kanji-code related valiables.\n\
+ Inserts the names and values in buffer *Kanji Codes* and displays that."
+   (interactive)
+   (let ((*kanji-fileio-code* kanji-fileio-code)
+ 	(*kanji-process-code* (process-kanji-code)))
+     (with-output-to-temp-buffer "*Kanji Codes*"
+       (save-excursion
+ 	(set-buffer standard-output)
+ 	(insert "* List of kanji-code related variables *\n"
+ 		"Global variables:\n"
+ 		"\tdefault-kanji-fileio-code : "
+ 		(cdr (kanji-code-mnemonic-string default-kanji-fileio-code))
+ 		?\n
+ 		"\tdefault-kanji-process-code : "
+ 		(cdr (kanji-code-mnemonic-string default-kanji-process-code))
+ 		?\n
+ 		"\tkanji-expected-code : "
+ 		(cdr (kanji-code-mnemonic-string kanji-expected-code))
+ 		?\n
+ 		"\tkanji-display-code : "
+ 		(cdr (kanji-code-mnemonic-string kanji-display-code))
+ 		?\n
+ 		"\tkanji-input-code : "
+ 		(cdr (kanji-code-mnemonic-string kanji-input-code))
+ 		?\n
+ 		"Buffer local variable:\n"
+ 		"\tkanji-fileio-code : "
+ 		(cdr (kanji-code-mnemonic-string *kanji-fileio-code*))
+ 		?\n
+ 		"Kanji code for a process of the buffer:\n"
+ 		"\t(process-kanji-code) : "
+ 		(if *kanji-process-code*
+ 		    (cdr (kanji-code-mnemonic-string *kanji-process-code*))
+ 		  "No process")
+ 		?\n)))))
+ 
+ (defun kanji-code-mnemonic-string (code)
+   "Return as a string the meaning of one character mnemonic CODE."
+   (cond ((null code) '(?- . "NIL"))
+ 	((eq code t) '(?T . "T"))
+ 	((eq code 0) '(?N . "No-conversion"))
+ 	((eq code 1) '(?S . "Shift-JIS"))
+ 	((eq code 2) '(?J . "JIS"))
+ 	((eq code 3) '(?E . "EUC"))
+ 	(t '(?  . "Invalid value"))))
+ 
+ (define-key help-map "T" 'help-with-tutorial-for-nemacs)
+ (define-key help-map "N" 'view-nemacs-news)
+ 
+ (defun help-with-tutorial-for-nemacs ()
+   "Select the NEmacs learn-by-doing tutorial."
+   (interactive)
+   (let ((file (expand-file-name "~/NEMACS.tut")))
+     (delete-other-windows)
+     (if (get-file-buffer file)
+ 	(switch-to-buffer (get-file-buffer file))
+       (switch-to-buffer (create-file-buffer "~/NEMACS.tut"))
+       (setq buffer-file-name file)
+       (setq default-directory (expand-file-name "~/"))
+       (setq auto-save-file-name nil)
+       (insert-file-contents (expand-file-name "NEMACS.tut" exec-directory))
+       (goto-char (point-min))
+       (search-forward "\n<<")
+       (beginning-of-line)
+       (delete-region (point) (progn (end-of-line) (point)))
+       (newline (- (window-height (selected-window))
+ 		  (count-lines (point-min) (point))
+ 		  4))
+       (goto-char (point-min))
+       (set-buffer-modified-p nil))))
+ 
+ (defun view-nemacs-news ()
+   "Display info on recent changes to NEmacs."
+   (interactive)
+   (find-file-read-only (expand-file-name "NEMACS.nws" exec-directory)))
+ 
+ (defun kanji-word-list (str)
+   "Convert STRING into a list of integers.  Each integer represents\n\
+ two-byte kanji code as one word."
+   (let ((tem (mapcar '+ str))
+ 	(result nil)
+ 	c1 c2)
+     (while tem
+       (setq c1 (car tem)) (setq c2 (car (cdr tem)))
+       (cond
+        ((or (< c1 128) (not c2) (< c2 128))
+ 	(setq result (nconc result (list c1)))
+ 	(setq tem (cdr tem)))
+        (t
+ 	(setq result (nconc result (list (+ (* c1 256) c2))))
+ 	(setq tem (cdr (cdr tem))))))
+     result))
+ 
+ ;;;
+ ;;; Utility functions for Nemacs
+ ;;;
+ 
+ (defconst kanji-code-alist '(("no conversion" . 0) ("shift jis" . 1) ("jis" . 2) ("euc" . 3) ))
+ 
+ (defconst extended-kanji-code-alist
+   (append '(("nil" . nil)) kanji-code-alist))
+ 
+ (defun kanji-code-internal (code)
+   (let ((case-fold-search t)
+ 	(string (cond ((stringp code) code)
+ 		      ((symbolp code) (symbol-name code))
+ 		      (t ""))))
+     (cond((string-match "s.*jis" string)
+ 	  1)
+ 	 ((string-match "euc" string)
+ 	  3)
+ 	 ((string-match "jis" string )
+ 	  2)
+ 	 (t 0))))
+ 
+ (defun set-kanji-fileio-code (code &optional buffer)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      extended-kanji-code-alist nil t nil)))
+   (or (null code)
+       (if (symbolp code)
+ 	  (setq code (kanji-code-internal code))
+ 	(if (stringp code)
+ 	    (setq code (cdr (assoc code kanji-code-alist))))
+ 	(if (not (kanji-code-p code))
+ 	    (setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						    extended-kanji-code-alist nil t nil)
+ 				   extended-kanji-code-alist))))))
+   (save-excursion
+     (set-buffer (or buffer (current-buffer)))
+     (setq kanji-fileio-code code)
+     (if (interactive-p)
+ 	(set-buffer-modified-p (buffer-modified-p))  ))
+   code)
+ 
+ (defun set-default-kanji-fileio-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      extended-kanji-code-alist nil t nil)))
+   (or (null code)
+       (if (symbolp code)
+ 	  (setq code (kanji-code-internal code))
+ 	(if (stringp code)
+ 	    (setq code (cdr (assoc code kanji-code-alist))))
+ 	(if (not (kanji-code-p code))
+ 	    (setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						    extended-kanji-code-alist nil t nil)
+ 				   extended-kanji-code-alist))))))
+   (setq-default kanji-fileio-code code)
+   )
+ 
+ (defconst expected-kanji-code-alist (append '(("auto" . t)) extended-kanji-code-alist))
+ 
+ (defun set-kanji-expected-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      expected-kanji-code-alist nil t nil)))
+   (or (null code)
+       (eq t code)
+       (if (symbolp code)
+ 	  (setq code (kanji-code-internal code))
+ 	(if (stringp code)
+ 	    (setq code (cdr (assoc code kanji-code-alist))))
+ 	(if (not (kanji-code-p code))
+ 	    (setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						    expected-kanji-code-alist nil t nil)
+ 				   expected-kanji-code-alist))))))
+   (setq kanji-expected-code  code)
+   )
+ 
+ (defun set-kanji-input-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      kanji-code-alist nil t nil)))
+   (if (symbolp code)
+       (setq code (kanji-code-internal code))
+     (if (stringp code)
+ 	(setq code (cdr (assoc code kanji-code-alist))))
+     (if (not (kanji-code-p code))
+ 	(setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						kanji-code-alist nil t nil)
+ 			       kanji-code-alist)))))
+   (setq kanji-input-code code)
+   (set-buffer-modified-p (buffer-modified-p)))
+ 
+ (defun set-kanji-display-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      kanji-code-alist nil t nil)))
+   (if (symbolp code)
+       (setq code (kanji-code-internal code))
+     (if (stringp code)
+ 	(setq code (cdr (assoc code kanji-code-alist))))
+     (if (not (kanji-code-p code))
+ 	(setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						kanji-code-alist nil t nil)
+ 			       kanji-code-alist)))))
+   (if (not (kanji-code-p code))
+       (setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 					      kanji-code-alist nil t nil)
+ 			     kanji-code-alist))))
+   (setq kanji-display-code code)
+   (if (interactive-p)
+       (set-buffer-modified-p (buffer-modified-p)))
+   code)
+ 
+ (defun set-default-kanji-process-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      kanji-code-alist nil t nil)))
+   (if (symbolp code)
+       (setq code (kanji-code-internal code))
+     (if (stringp code)
+ 	(setq code (cdr (assoc code kanji-code-alist))))
+     (if (not (kanji-code-p code))
+ 	(setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						kanji-code-alist nil t nil)
+ 			       kanji-code-alist)))))
+   (setq default-kanji-process-code code)
+   )
+ 
+ (defun set-kanji-process-code (code)
+   (interactive (list (completing-read "Kanji Code System : "
+ 				      kanji-code-alist nil t nil)))
+   (if (symbolp code)
+       (setq code (kanji-code-internal code))
+     (if (stringp code)
+ 	(setq code (cdr (assoc code kanji-code-alist))))
+     (if (not (kanji-code-p code))
+ 	(setq code (cdr (assoc (completing-read "Kanji Code System : "
+ 						kanji-code-alist nil t nil)
+ 			       kanji-code-alist)))))
+   (condition-case ()
+       (set-process-kanji-code nil code)
+     (error nil))
+   (if (interactive-p)
+       (set-buffer-modified-p (buffer-modified-p)))
+   code)
+    
+ ;;;
+ ;;; Standard Kanji Code Decision Procedure
+ ;;; 
+ 
+ ;;;
+ ;;; For kanji-fileio-code
+ ;;;
+ 
+ (defvar kanji-expected-code t 
+   "* Expected Kanji code when a file is read.\n\
+ 0:No-conversion  1:Shift-JIS  2:JIS  3:EUC/AT&T/DEC\n\
+ If T, kanji code is guessed automatically.\n\
+ If NIL, code conversion is done according to kanji-fileio-code.\n\
+ After a file is read, kanji-fileio-code of the buffer is set to\n\
+ the quessed code if kanji-fileio-code is nil.")
+ (set-default 'kanji-expected-code t)
+ 
+ (or (fboundp 'si:find-file)
+     (fset 'si:find-file (symbol-function 'find-file)))
+ 
+ (defun find-file (filename &optional code)
+   "Edit file FILENAME.
+ Switch to a buffer visiting file FILENAME,
+ creating one if none already exists. Optional argument CODE
+ specifies the kanji-expected-code for the FILENAME.\n\
+ If interactive, a numeric argument can be specified.\n\
+ Just C-u means t for kanji-expected-code."
+   (interactive "FFind file: \nP")
+   (let ((kanji-expected-code
+ 	 (cond ((null code) kanji-expected-code)
+ 	       ((eq code '-) nil)
+ 	       ((listp code) t)
+ 	       ((or (<  code 0) (> code 3))
+ 		(error "Invalid argument %s" code))
+ 	       (t code))))
+     (si:find-file filename)))
+ 
+ (or (fboundp 'si:find-alternate-file)
+     (fset 'si:find-alternate-file (symbol-function 'find-alternate-file)))
+ 
+ (defun find-alternate-file (filename &optional code)
+   "Find file FILENAME, select its buffer, kill previous buffer.
+ If the current buffer now contains an empty file that you just visited
+ \(presumably by mistake), use this command to visit the file you really want.
+ Optional argument CODE specifies the kanji-expected-code for the FILENAME.
+ If interactive, a numeric argument can be specified.
+ Just C-u means t for kanji-expected-code."
+   (interactive "FFind alternate file: \nP")
+   (let ((kanji-expected-code
+ 	 (cond ((null code) kanji-expected-code)
+ 	       ((eq code '-) nil)
+ 	       ((listp code) t)
+ 	       ((or (<  code 0) (> code 3))
+ 		(error "Invalid argument %s" code))
+ 	       (t code))))
+     (si:find-alternate-file filename)))
+ 
+ (or (fboundp 'si:find-file-read-only)
+     (fset 'si:find-file-read-only (symbol-function 'find-file-read-only)))
+ 
+ (defun find-file-read-only (filename &optional code)
+   "Edit file FILENAME but don't save without confirmation.\n\
+ Like find-file but marks buffer as read-only.\n\
+ Optional argument CODE specifies the kanji-expected-code for the FILENAME.\n\
+ If interactive, a numeric argument can be specified.\n\
+ Just C-u means t for kanji-expected-code."
+   (interactive "FFind file read-only: \nP")
+   (let ((kanji-expected-code
+ 	 (cond ((null code) kanji-expected-code)
+ 	       ((eq code '-) nil)
+ 	       ((listp code) t)
+ 	       ((or (<  code 0) (> code 3))
+ 		(error "Invalid argument %s" code))
+ 	       (t code))))
+     (si:find-file-read-only filename)))
+ 
+ (or (fboundp 'si:find-file-other-window)
+     (fset 'si:find-file-other-window (symbol-function 'find-file-other-window)))
+ 
+ (defun find-file-other-window (filename &optional code)
+   "Edit file FILENAME, in another window.
+ May create a new window, or reuse an existing one;
+ see the function display-buffer.
+ Optional argument CODE specifies the kanji-expected-code for the FILENAME.\n\
+ If interactive, a numeric argument can be specified.\n\
+ Just C-u means t for kanji-expected-code."
+   (interactive "FFind file in other window: \nP")
+   (let ((kanji-expected-code
+ 	 (cond ((null code) kanji-expected-code)
+ 	       ((eq code '-) nil)
+ 	       ((listp code) t)
+ 	       ((or (<  code 0) (> code 3))
+ 		(error "Invalid argument %s" code))
+ 	       (t code))))
+     (si:find-file-other-window filename)))
+ 
+ (defvar default-kanji-fileio-code-find-file-not-found
+   default-kanji-fileio-code)
+ 
+ (defun find-file-not-found-set-kanji-fileio-code ()
+   (setq kanji-fileio-code 
+ 	default-kanji-fileio-code-find-file-not-found)
+   nil)
+ 
+ (or (memq 'find-file-not-found-set-kanji-fileio-code
+ 	  find-file-not-found-hooks)
+     (setq find-file-not-found-hooks
+ 	  (cons 'find-file-not-found-set-kanji-fileio-code
+ 		find-file-not-found-hooks)))
+ 
+ (defun find-kanji-file-input-code (filename visit start end)
+   (let ((code kanji-expected-code))
+     (if (null code)
+ 	(setq code kanji-fileio-code))
+     (if (or (eq code t) (null code))
+ 	(setq code (check-region-kanji-code start end)))
+     (if (null kanji-fileio-code) 
+ 	(setq kanji-fileio-code code))
+     code))
+ 
+ (fset 'default-find-kanji-file-input-code
+       (symbol-function 'find-kanji-file-input-code))
+ 
+ (setq find-kanji-file-input-code 'find-kanji-file-input-code)
+ 
+ (defvar kanji-file-input-code-alist
+   '( ("\\.el$" . 3)
+      ("/spool/mail/.*$" . convert-mbox-kanji-code )))
+ 
+ (defun find-kanji-file-input-code-from-filename (filename visit start end)
+   (let ((alist kanji-file-input-code-alist)
+ 	(found nil)
+ 	(code nil))
+     (let ((case-fold-search (eq system-type 'vax-vms)))
+       (setq filename (file-name-sans-versions filename))
+       (while (and (not found) alist)
+ 	(if (string-match (car (car alist)) filename)
+ 	    (setq code (cdr (car alist))
+ 		  found t))
+ 	(setq alist (cdr alist))))
+     (if code
+ 	(cond( (numberp code) code)
+ 	     ( (and (symbolp code) (fboundp code))
+ 	       (funcall code filename visit start end))))))
+ 
+ (defun convert-mbox-kanji-code (filename visit start end)
+   (let ((buffer-read-only nil))
+     (save-restriction
+       (narrow-to-region start end)
+       (goto-char (point-min))
+       (while (not (eobp))
+ 	(let ((start (point))
+ 	      code
+ 	      end)
+ 	  (forward-char 1)
+ 	  (if (re-search-forward "^From" nil 'move)
+ 	      (beginning-of-line))
+ 	  (setq end (point))
+ 	  (setq code (check-region-kanji-code start end))
+ 	  (if (and code (or (= code 1) (= code 2)))
+ 	      (convert-region-kanji-code start end code 3)))))))
+ 
+ ;;;
+ ;;; hack from files.el : hack-local-variables
+ ;;;
+ 
+ (defun find-kanji-file-input-code-from-file-variables ()
+   "Parse, and bind or evaluate as appropriate, any local variables
+ for current buffer."
+   ;; Look for "Local variables:" line in last page.
+   (save-excursion
+     (goto-char (point-max))
+     (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
+     (if (let ((case-fold-search t))
+ 	  (search-forward "Local Variables:" nil t))
+ 	(let ((continue t)
+ 	      prefix prefixlen suffix beg)
+ 	  ;; The prefix is what comes before "local variables:" in its line.
+ 	  ;; The suffix is what comes after "local variables:" in its line.
+ 	  (skip-chars-forward " \t")
+ 	  (or (eolp)
+ 	      (setq suffix (buffer-substring (point)
+ 					     (progn (end-of-line) (point)))))
+ 	  (goto-char (match-beginning 0))
+ 	  (or (bolp)
+ 	      (setq prefix
+ 		    (buffer-substring (point)
+ 				      (progn (beginning-of-line) (point)))))
+ 	  (if prefix (setq prefixlen (length prefix)
+ 			   prefix (regexp-quote prefix)))
+ 	  (if suffix (setq suffix (regexp-quote suffix)))
+ 	  (while continue
+ 	    ;; Look at next local variable spec.
+ 	    (if selective-display (re-search-forward "[\n\C-m]")
+ 	      (forward-line 1))
+ 	    ;; Skip the prefix, if any.
+ 	    (if prefix
+ 		(if (looking-at prefix)
+ 		    (forward-char prefixlen)
+ 		  (error "Local variables entry is missing the prefix")))
+ 	    ;; Find the variable name; strip whitespace.
+ 	    (skip-chars-forward " \t")
+ 	    (setq beg (point))
+ 	    (skip-chars-forward "^:\n")
+ 	    (if (eolp) (error "Missing colon in local variables entry"))
+ 	    (skip-chars-backward " \t")
+ 	    (let* ((str (buffer-substring beg (point)))
+ 		   (var (read str))
+ 		  val)
+ 	      ;; Setting variable named "end" means end of list.
+ 	      (if (string-equal (downcase str) "end")
+ 		  (setq continue nil)
+ 		;; Otherwise read the variable value.
+ 		(skip-chars-forward "^:")
+ 		(forward-char 1)
+ 		(setq val (read (current-buffer)))
+ 		(skip-chars-backward "\n")
+ 		(skip-chars-forward " \t")
+ 		(or (if suffix (looking-at suffix) (eolp))
+ 		    (error "Local variables entry is terminated incorrectly"))
+ 		;; Set the variable.  "Variables" mode and eval are funny.
+ 		(if (eq var 'kanji-fileio-code)  (setq kanji-fileio-code val)))))))))
+ 
+ 
+ ;;;
+ ;;; kanji-file-output-code
+ ;;;
+ 
+ (defvar kanji-file-output-code-query-flag nil
+   "*non-nil means that kanji code is queried when kanji-fileio-code is nil.")
+ 
+ (defun find-kanji-file-output-code (start end filename append visit)
+   (if kanji-file-output-code-query-flag
+       (if (null kanji-fileio-code)
+ 	  (setq kanji-fileio-code
+ 		(kanji-code-internal
+ 		 (completing-read
+ 		  (format "Kanji Code System for %s: " filename)
+ 		  kanji-code-alist nil t nil)))))
+   kanji-fileio-code)
+ 
+ (fset 'default-find-kanji-file-output-code
+       (symbol-function 'find-kanji-file-output-code))
+ 
+ (setq find-kanji-file-output-code 'find-kanji-file-output-code)
+ 
+ ;;;
+ ;;; For kanji-process-code
+ ;;;
+ 
+ (defvar default-kanji-process-code 0 
+   "* Default kanji code for process I/O.\n\ 0:No-conversion 1:Shift-JIS
+ 2:JIS 3:EUC/AT&T/DEC\n\ Used when kanji-process-code-hook is not set
+ or the function\n\ set to the variable returns invalid code. ")
+ 
+ (defun find-kanji-process-code (buffer program &optional servicep &rest args)
+  "Arguments are BUFFER, PROGRAM, SERVICEP, and ARGS. BUFFER is output\n\
+ buffer name of a process or nil.  If SERVICEP is nil, PROGRAM is a path name\n\
+ of a program to be executed and ARGS is a list of the arguments.\n\
+ If SERVICEP is not nil, PROGRAM is a name of a service for\n\
+ open-network-stream and ARGS is a list of hosts.\n\
+ Kanji code of the process is set to the return value of this function\n\
+ Please redefine this function as you wish."
+ 
+   (if (null buffer) (setq buffer "")
+     (if (eq buffer t) (setq buffer (buffer-name))))
+ 
+   (let ((place (if servicep
+ 		   (find-service-kanji-code program (car args))
+ 		 (find-program-kanji-code buffer program))))
+     (if place
+ 	(cond( (numberp (cdr place)) (cdr place))
+ 	     ( (null (cdr place)) nil)
+ 	     ( t (condition-case ()
+ 		     (apply (cdr place) buffer program servicep args)
+ 		   (error default-kanji-process-code))))
+       default-kanji-process-code)))
+ 	  
+ (fset 'default-find-kanji-process-code
+       (symbol-function 'find-kanji-process-code))
+ 
+ (setq find-kanji-process-code 'find-kanji-process-code)
+ 
+ ;;;
+ ;;;  program --> kanji code translation
+ ;;;
+ 
+ (defun strict-string-match (regexp string &optional start)
+   (and (eq 0 (string-match regexp string (or start 0)))
+        (eq (match-end 0) (length string))))
+ 
+ (defvar program-kanji-code-alist nil)
+ 
+ (defun define-program-kanji-code (buffer program code)
+   (let* ((key  (cons buffer program))
+ 	 (place (assoc key program-kanji-code-alist)))
+     (if place
+ 	(setcdr place code)
+       (setq place (cons key code)
+ 	    program-kanji-code-alist (cons place program-kanji-code-alist)))
+     place))
+ 
+ (defun find-program-kanji-code (buffer program)
+   (let ((alist program-kanji-code-alist) (place nil))
+     (while (and alist (null place))
+       (if (program-kanji-code-match buffer program (car (car alist)))
+ 	  (setq place (car alist)))
+       (setq alist (cdr alist)))
+     place))
+ 
+ (defun program-kanji-code-match (buffer program patpair)
+   (let ((bpat (car patpair)) (ppat (cdr patpair)))
+     (if (and (symbolp ppat) (boundp ppat)
+ 	     (stringp (symbol-value ppat)))
+ 	(setq ppat (symbol-value ppat)))
+     (and (or (null bpat)
+ 	     (and (stringp bpat) (string-match bpat buffer)))
+ 	 (or (null ppat)
+ 	     (and (stringp ppat)
+ 		  (or
+ 		   (strict-string-match ppat program)
+ 		   (strict-string-match ppat (file-name-nondirectory program))))))))
+   		      
+ (define-program-kanji-code nil "rsh" 'find-kanji-process-code-rsh)
+ 
+ (defun find-kanji-process-code-rsh (buffer rsh
+ 					   &optional servicep host &rest args)
+   (if (equal (car args) "-l")
+       (setq args (cdr (cdr args))))
+   (if (equal (car args) "-n")
+       (setq args (cdr args)))
+   (find-kanji-process-code buffer (car args) nil (cdr args)))
+ 
+ 
+ ;;;
+ ;;; 
+ ;;; 
+ (define-program-kanji-code nil (concat exec-directory "env") 'find-kanji-process-code-env)
+ 
+ ;;;(defun find-kanji-process-code-env (buffer env &optional servicep &rest args)
+ ;;;  (while (string-match "[-=]" (car args))
+ ;;;    (setq args (cdr args)))
+ ;;;  (find-kanji-process-code buffer (car args) nil (cdr args)))
+ 
+ ;;;
+ ;;; coded by nakagawa@titisa.is.titech.ac.jp 1989
+ ;;; modified by tomura@etl.go.jp 
+ ;;;
+ ;;; env command syntax:   See etc/env.c
+ ;;; env [ - ]
+ ;;; ;;; GNU env only
+ ;;;     { variable=value 
+ ;;;      | -u     variable
+ ;;;      | -unset variable
+ ;;;      | -s     variable value 
+ ;;;      | -set   variable value }*
+ ;;;     [ - | -- ] 
+ ;;; ;;; end of GNU env only
+ ;;;      <program> <args>
+ ;;;
+ 
+ (defun find-kanji-process-code-env (buffer env &optional servicep &rest args)
+   (if (string= (car args) "-") (setq args (cdr args)))
+   (while (or (string-match "=" (car args))
+ 	     (string= "-s"     (car args))
+ 	     (string= "-set"   (car args))
+ 	     (string= "-u"     (car args))
+ 	     (string= "-unset" (car args)))
+     (cond((or (string= "-s" (car args))
+ 	      (string= "-set" (car args)))
+ 	  (setq args (cdr(cdr(cdr args)))))
+ 	 ((or (string= "-u" (car args))
+ 	      (string= "-unset" (car args)))
+ 	  (setq args (cdr(cdr args))))
+ 	 (t 
+ 	  (setq args (cdr args)))))
+   (if (or (string= (car args) "-")
+ 	  (string= (car args) "--"))
+       (setq args (cdr args)))
+   (find-kanji-process-code buffer (car args) nil (cdr args)))
+ 
+ ;;;
+ ;;; service --> kanji code translation
+ ;;;
+ 
+ (defvar service-kanji-code-alist nil)
+ 
+ (defun define-service-kanji-code (service host code)
+   (let* ((key (cons service host))
+ 	 (place (assoc key service-kanji-code-alist)))
+     (if place
+ 	(setcdr place code)
+       (setq place (cons key code)
+ 	    service-kanji-code-alist (cons place service-kanji-code-alist)))
+     place))
+ 	
+ (defun find-service-kanji-code (service host)
+   (let ((alist service-kanji-code-alist) (place nil))
+     (while (and alist (null place))
+       (if (service-kanji-code-match service host (car (car alist)))
+ 	  (setq place (car alist)))
+       (setq alist (cdr alist)))
+     place))
+ 
+ (defun service-kanji-code-match (service host patpair)
+   (let ((spat (car patpair)) (hpat (cdr patpair)))
+     (and (or (null spat)
+ 	     (eq service spat)
+ 	     (and (stringp spat) (stringp service)
+ 		  (strict-string-match spat service)))
+ 	 (or (null hpat)
+ 	     (strict-string-match hpat host)))))
+ 
diff -arcN emacs-18.55/lisp/kanji.el nemacs-3.3.2/lisp/kanji.el
*** emacs-18.55/lisp/kanji.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/kanji.el	Wed Jun  6 20:32:24 1990
***************
*** 0 ****
--- 1,194 ----
+ ;; Basic commands for Nemacs
+ ;; Coded by K.Handa, Electrotechnical Lab. (handa@etl.go.jp)
+ ;;      and S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+ ;; Nemacs is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;; 87.6.15  created by K.Handa
+ ;;; 87.6.24  modified by K.Handa & H.Nakahara<a32275@tansei.u-tokyo.junet>
+ ;;; 88.1.18  modified for Nemacs Ver.2.0 by K.Handa
+ ;;; 88.6.19  modified for Nemacs Ver.2.1 by K.Handa
+ ;;; 89.3.14  modified for Nemacs Ver.3.0 by K.Handa
+ ;;; 89.11.17 modified for Nemacs Ver.3.2 by K.Handa and S.Tomura
+ ;;; 90.2.28  modified for Nemacs Ver.3.3.1 by K.Handa
+ ;;; 90.6.6   modified for Nemacs Ver.3.3.2 by K.Handa
+ 
+ (defconst nemacs-version "3.3.2" "\
+ Version numbers of this version of Nemacs.")
+ 
+ (defconst nemacs-version-date "1990.6.6" "\
+ Distribution date of this version of Nemacs.")
+ 
+ (defun nemacs-version () "\
+ Return string describing the version of Nemacs that is running."
+   (interactive)
+   (if (interactive-p)
+       (message "%s" (nemacs-version))
+     (format "Nemacs version %s of %s" nemacs-version nemacs-version-date)))
+   
+ (defconst mode-line-nemacs-header "N")
+ 
+ (setq-default mode-line-format
+   (list (purecopy "")
+    'mode-line-modified
+    'mode-line-nemacs-header
+    'mode-line-buffer-identification
+    (purecopy "   ")
+    'global-mode-string
+    (purecopy "  %[(")
+    '(kanji-flag ("%c" ":"))
+    'mode-name 'minor-mode-alist "%n" 'mode-line-process
+    (purecopy ")%]--")
+    (purecopy '(-3 . "%p"))
+    (purecopy "-%-")))
+ 
+ (defun kanji-code-p (code)
+   (and (numberp code) (<= kanji-code-min code) (<= code kanji-code-max)))
+ 
+ (defun invoke-find-kanji-file-input-code (filename visit start end)
+   (save-excursion
+     (let ((kanji-flag nil)
+ 	  (buffer-read-only t))
+       (condition-case ()
+ 	  (let ((code (funcall find-kanji-file-input-code
+ 			       filename visit start end)))
+ 	    (if (kanji-code-p code) code nil))
+ 	(error nil)))))
+ 
+ (setq find-kanji-file-input-code
+       'find-kanji-file-input-code-by-file-contents)
+ 
+ (defun find-kanji-file-input-code-by-file-contents (filename visit start end)
+   (setq kanji-fileio-code (check-region-kanji-code start end)))
+ 
+ (defun invoke-find-kanji-file-output-code (start end filename append visit)
+   (save-excursion
+     (let ((buffer-read-only t))
+       (condition-case ()
+ 	  (let ((code (funcall find-kanji-file-output-code
+ 			       start end filename append visit)))
+ 	    (if (kanji-code-p code) code nil))
+ 	(error nil)))))
+ 
+ (setq find-kanji-file-output-code 'kanji-fileio-code)
+ 
+ (defun kanji-fileio-code (&rest rest)
+   kanji-fileio-code)
+ 
+ (defun invoke-find-kanji-process-code (buffer program
+ 					      &optional servicep &rest args)
+   (save-excursion
+     (let ((buffer-read-only t))
+       (condition-case ()
+ 	  (let ((code (apply find-kanji-process-code
+ 			     buffer program servicep args)))
+ 	    (if (kanji-code-p code) code nil))
+ 	(error nil)))))
+ 
+ (defconst load-hook 'load-hook   
+   "* Called in `load' before normal loading procedure.\n\
+ Passed two arguments, FILENAME and NOMESSAGE.\n\
+ FILENAME is a really existing filename.\n\
+ If this function returns NIL,\n\
+ `load' proceeds to the rest of normal loading procedure." )
+ 
+ (defun load-hook (file nomessage)
+   "Current definition of this function is that\n\
+ all non *.elc files are at first read in a buffer, the buffer is evaled,\n\
+ and then T is returned.  As for *.elc, NIL is returned."
+   (if (not (string-match "\\.elc$" file))
+       (progn
+ 	(let ((buffer (generate-new-buffer "*load-temp*"))
+ 	      (filename (file-name-nondirectory file))
+ 	      (load-in-progress t)
+ 	      return)
+ 	  (if nomessage nil
+ 	    (message "LOADING %s..." filename)
+ 	    (sit-for 0))
+ 	  (unwind-protect
+ 	      (condition-case err
+ 		  (progn
+ 		    (save-excursion
+ 		      (set-buffer buffer)
+ 		      (insert-file-contents file)
+ 		      (goto-char (point-min)))
+ 		    (while t
+ 		      (eval (read buffer))))
+ 		(end-of-file (setq return t)))
+ 	    (if (and return (not noninteractive) (not nomessage))
+ 		(message "LOADING %s...done" filename))
+ 	    (kill-buffer buffer))
+ 	  t))))
+ 
+ (defun nemacs-lisp-interaction-mode ()
+   "Major mode for typing and evaluating Lisp forms in Nemacs.\n\
+ It first sets lisp-interaction-mode and then sets kanji-flag\n\
+ and kanji-fileio-code to their defautl values.\n\
+ See lisp-interaction-mode for more detail."
+   (funcall 'lisp-interaction-mode)
+   (setq kanji-flag default-kanji-flag)
+   (setq kanji-fileio-code default-kanji-fileio-code))
+ 
+ ;;;
+ ;;;  Modification of kill-all-local-variables  by S.Tomura  89.12.15
+ ;;;
+ ;;;  protect specified local variables from kill-all-local-variables
+ ;;;
+ 
+ (defconst *protected-local-variables* 
+   '(kanji-flag
+     kanji-fileio-code
+     )
+   "*List of buffer local variables protected from 'kill-all-local-variables' ."
+   )
+ 
+ (defun save-protected-local-variables (vlist)
+   (let ((vlist vlist)
+ 	  (alist nil))
+     (while vlist
+       (if (boundp (car vlist))
+ 	  (setq alist (cons (cons (car vlist) (eval (car vlist)))
+ 			alist)))
+       (setq vlist (cdr vlist)))
+     alist))
+ 
+ (defun recover-protected-local-variables (alist)
+   (let ((alist alist))
+     (while alist
+       (set (car (car alist)) (cdr (car alist)))
+       (setq alist (cdr alist)))))
+ 
+ (if (not (fboundp 'si:kill-all-local-variables))
+     (fset 'si:kill-all-local-variables (symbol-function 'kill-all-local-variables)))
+ 
+ (defun kill-all-local-variables ()
+   "Eliminate all the buffer-local variable values of the current buffer\n\
+ except variables in *protected-local-variables* of the current buffer.\n\
+ This buffer will then see the default values of such variables."
+   (let ((alist (save-protected-local-variables *protected-local-variables*)))
+     ;;; We can use "buffer-local-variables". Which is better?
+     (unwind-protect
+ 	(si:kill-all-local-variables)
+       (recover-protected-local-variables alist))))
+ 
+ (defvar self-insert-after-hook nil
+   "Hook to run when extended self insertion command exits. Should take
+ two arguments START and END correspoding to character position.")
+ 
+ (make-variable-buffer-local 'self-insert-after-hook)
diff -arcN emacs-18.55/lisp/kinsoku.el nemacs-3.3.2/lisp/kinsoku.el
*** emacs-18.55/lisp/kinsoku.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/kinsoku.el	Wed Jun  6 03:17:13 1990
***************
*** 0 ****
--- 1,166 ----
+ ;; Kinsoku shori for Egg
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;; Nemacs 3.2 created by S. Tomura 89-Nov-15
+ ;;; Ver. 3.2  3.2 ÂÐ±þ¤ËÊÑ¹¹
+ ;;; Nemacs 3.0 created by S. Tomura 89-Mar-17
+ ;;; Ver. 2.1a modified by S. Tomura 88-Nov-17
+ ;;;           word¤ÎÅÓÃæ¤ÇÊ¬³ä¤·¤Ê¤¤¤è¤¦¤Ë½¤Àµ¤·¤¿¡£
+ ;;; Ver. 2.1  modified by S. Tomura 88-Jun-24
+ ;;;           kinsoku-shori moves the point <= fill-column + kinsoku-nobashi
+ ;;; Nemacs V.2.1
+ ;;; Ver. 1.1  modified by S. Tomura 88-Feb-29
+ ;;;           Bug fix:  regexp-quote is used.
+ ;;; Ver. 1.0  Created by S. Tomura
+ ;;;           ¶ØÂ§½èÍýµ¡Ç½¤òÄó¶¡¤¹¤ë¡£
+ ;;;
+ 
+ (defvar kanji-kinsoku-version "3.21")
+ ;;; Last modified date: Wed Nov 15 11:59:00 1989
+ 
+ ;;; The followings must be merged into kanji.el
+ ;;; patched by S.Tomura 87-Dec-7
+ ;;;    JIS code¤ÎÆÃ¼ìÊ¸»ú¤Î°ìÍ÷É½¤Ç¤¹¡£¡Ê¸ÍÂ¼¡Ë
+ ;;;;     "¡¡¡¢¡£¡¤¡¥¡¦¡§¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯"
+ ;;;;   "¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾¡¿"
+ ;;;;   "¡À¡Á¡Â¡Ã¡Ä¡Å¡Æ¡Ç¡È¡É¡Ê¡Ë¡Ì¡Í¡Î¡Ï"
+ ;;;;   "¡Ð¡Ñ¡Ò¡Ó¡Ô¡Õ¡Ö¡×¡Ø¡Ù¡Ú¡Û¡Ü¡Ý¡Þ¡ß"
+ ;;;;   "¡à¡á¡â¡ã¡ä¡å¡æ¡ç¡è¡é¡ê¡ë¡ì¡í¡î¡ï"
+ ;;;;   "¡ð¡ñ¡ò¡ó¡ô¡õ¡ö¡÷¡ø¡ù¡ú¡û¡ü¡ý¡þ"
+ ;;;;     "¢¡¢¢¢£¢¤¢¥¢¦¢§¢¨¢©¢ª¢«¢¬¢­¢® "
+ ;;;;     "¦¡¦¢¦£¦¤¦¥¦¦¦§¦¨¦©¦ª¦«¦¬¦­¦®¦¯"
+ ;;;;   "¦°¦±¦²¦³¦´¦µ¦¶¦·¦¸"
+ ;;;;     "¦Á¦Â¦Ã¦Ä¦Å¦Æ¦Ç¦È¦É¦Ê¦Ë¦Ì¦Í¦Î¦Ï"
+ ;;;;   "¦Ð¦Ñ¦Ò¦Ó¦Ô¦Õ¦Ö¦×¦Ø"
+ ;;;;     "§¡§¢§£§¤§¥§¦§§§¨§©§ª§«§¬§­§®§¯"
+ ;;;;   "§°§±§²§³§´§µ§¶§·§¸§¹§º§»§¼§½§¾§¿"
+ ;;;;   "§À§Á"
+ ;;;;     "§Ñ§Ò§Ó§Ô§Õ§Ö§×§Ø§Ù§Ú§Û§Ü§Ý§Þ§ß¡É
+ ;;;;   "§à§á§â§ã§ä§å§æ§ç§è§é§ê§ë§ì§í§î§ï"
+ ;;;;   "§ð§ñ"
+ ;;;;    £°£±£²£³£´£µ£¶£·£¸£¹£Á£Â£Ã£Ä£Å£Æ
+ ;;;;   "¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î"
+ ;;;;   "¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö"
+ 
+ (defvar kinsoku-bol-chars 
+   (concat  "!)-_~}]:;',.?"
+ 	   "¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾"
+ 	   "¡¿¡À¡Á¡Â¡Ã¡Ä¡Å¡Ç¡É¡Ë¡Í¡Ï¡Ñ¡Ó¡Õ¡×¡Ù¡Û¡ë¡ì¡í¡î"
+ 	   "¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¤î¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç¥î¥õ¥ö"
+ 	   )
+   "¹ÔÆ¬¶ØÂ§¤ò¹Ô¤Ê¤¦Ê¸»ú¤ò»ØÄê¤¹¤ë¡£
+ ¡ÊEUC¤Î¥³¡¼¥É¤ÎÊ¸»úÎó¤ò»ÈÍÑ¤¹¤ë¡£¡Ë"
+    )
+ 
+ (defvar  kinsoku-eol-chars
+    "({[¡Æ¡È¡Ê¡Ì¡Î¡Ð¡Ò¡Ô¡Ö¡Ø¡Ú¡ë¡ì¡í¡î¡÷¡ø"
+   "¹ÔËö¶ØÂ§¤ò¹Ô¤Ê¤¦Ê¸»ú¤ò»ØÄê¤¹¤ë¡£
+ ¡ÊEUC¤Î¥³¡¼¥É¤ÎÊ¸»úÎó¤ò»ÈÍÑ¤¹¤ë¡£¡Ë"
+   )
+ 
+ ;;;
+ ;;; Buffers for kinsoku-shori
+ ;;;
+ (defvar $kinsoku-buff1$ " "  "¶ØÂ§½èÍý¤Î¤¿¤á¤ÎÈ¾³ÑÊ¸»úÍÑºî¶ÈÎÎ°è")
+ (defvar $kinsoku-buff2$ "  " "¶ØÂ§½èÍý¤Î¤¿¤á¤ÎÁ´³ÑÊ¸»úÍÑºî¶ÈÎÎ°è")
+ 
+ (defun kinsoku-bol-p ()
+   "point¤Ç²þ¹Ô¤¹¤ë¤È¹ÔÆ¬¶ØÂ§¤Ë¿¨¤ì¤ë¤«¤É¤¦¤«¤ò¤«¤¨¤¹¡£
+ ¹ÔÆ¬¶ØÂ§Ê¸»ú¤Ïkinsoku-bol-chars¤Ç»ØÄê¤¹¤ë¡£"
+   (string-match "" "") ;;;¤³¤ì¤Ïregex comp¤Î¥ê¥»¥Ã¥È¤Ç¤¹¡£
+   (string-match 
+    (if (<= 128 (following-char)) 
+        (progn
+ 	 (aset $kinsoku-buff2$ 0 (following-char))
+ 	 (aset $kinsoku-buff2$ 1 (char-after (1+ (point))))
+ 	 $kinsoku-buff2$)
+      (progn
+        (aset $kinsoku-buff1$ 0 (following-char))
+        (regexp-quote $kinsoku-buff1$)))
+    kinsoku-bol-chars))
+ 
+ (defun kinsoku-eol-p ()
+     "point¤Ç²þ¹Ô¤¹¤ë¤È¹ÔËö¶ØÂ§¤Ë¿¨¤ì¤ë¤«¤É¤¦¤«¤ò¤«¤¨¤¹¡£
+ ¹ÔËö¶ØÂ§Ê¸»ú¤Ïkinsoku-eol-chars¤Ç»ØÄê¤¹¤ë¡£"
+     (string-match "" "") ;;;¤³¤ì¤Ïregex comp¤Î¥ê¥»¥Ã¥È¤Ç¤¹¡£
+     (string-match
+      (if (<= 128 (preceding-char))
+ 	 (progn
+ 	   (aset $kinsoku-buff2$ 0 (char-after (- (point) 2)))
+ 	   (aset $kinsoku-buff2$ 1 (preceding-char))
+ 	   $kinsoku-buff2$)
+        (progn
+ 	(aset $kinsoku-buff1$ 0 (preceding-char))
+ 	(regexp-quote $kinsoku-buff1$)))
+      kinsoku-eol-chars))
+ 
+ (defvar kinsoku-nobashi-limit nil
+   "¶ØÂ§½èÍý¤Ç¹Ô¤ò¿­¤Ð¤·¤ÆÎÉ¤¤È¾³ÑÊ¸»ú¿ô¤ò»ØÄê¤¹¤ë¡£
+ ÈóÉéÀ°¿ô°Ê³°¤Î¾ì¹ç¤ÏÌµ¸ÂÂç¤ò°ÕÌ£¤¹¤ë¡£")
+ 
+ (defun kinsoku-shori ()
+   "¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤Ø°ÜÆ°¤¹¤ë¡£
+ point¤¬¹ÔÆ¬¶ØÂ§¤Ë¿¨¤ì¤ë¾ì¹ç¤Ï¹Ô¤ò¿­¤Ð¤·¤Æ¡¢¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤òÃµ¤¹¡£
+ point¤¬¹ÔËö¶ØÂ§¤Ë¿¨¤ì¤ë¾ì¹ç¤Ï¹Ô¤ò½Ì¤á¤Æ¡¢¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤òÃµ¤¹¡£
+ ¤¿¤À¤·¡¢¹Ô¿­¤Ð¤·È¾³ÑÊ¸»ú¿ô¤¬kinsoku-nobashi-limit¤ò±Û¤¨¤ë¤È¡¢
+ ¹Ô¤ò½Ì¤á¤Æ¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤òÃµ¤¹¡£"
+ 
+   (let ((bol-kin nil) (eol-kin nil))
+     (if (and (not (bolp))
+ 	     (not (eolp))
+ 	     (or (setq bol-kin (kinsoku-bol-p))
+ 		 (setq eol-kin (kinsoku-eol-p))))
+ 	(cond(bol-kin (kinsoku-shori-nobashi))
+ 	     (eol-kin (kinsoku-shori-chizime))))))
+ 
+ (defun kinsoku-shori-nobashi ()
+   "¹Ô¤ò¿­¤Ð¤·¤Æ¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤Ø°ÜÆ°¤¹¤ë¡£"
+   (let ((max-column (+ fill-column 
+ 		       (if (and (numberp kinsoku-nobashi-limit)
+ 				(>= kinsoku-nobashi-limit 0))
+ 			   kinsoku-nobashi-limit
+ 			 10000)))) ;;; 10000¤ÏÌµ¸ÂÂç¤Î¤Ä¤â¤ê¤Ç¤¹¡£
+     (while (and (<= (+ (current-column)
+ 		       (if (<= 128 (following-char)) 1 2))
+ 		    max-column)
+ 		(not (bolp))
+ 		(not (eolp))
+ 		(or (kinsoku-eol-p)
+ 		    (kinsoku-bol-p)
+ 	            ;;; English word ¤ÎÅÓÃæ¤Ç¤ÏÊ¬³ä¤·¤Ê¤¤¡£
+ 		    (and (= ?w (char-syntax (preceding-char)))
+ 			 (= ?w (char-syntax (following-char))))))
+       (forward-char))
+     (if (or (kinsoku-eol-p) (kinsoku-bol-p))
+ 	(kinsoku-shori-chizime))))
+ 
+ (defun kinsoku-shori-chizime ()
+   "¹Ô¤ò½Ì¤á¤Æ¶ØÂ§¤Ë¿¨¤ì¤Ê¤¤ÅÀ¤Ø°ÜÆ°¤¹¤ë¡£"
+     (while (and (not (bolp))
+ 		(not (eolp))
+ 		(or (kinsoku-bol-p)
+ 		    (kinsoku-eol-p)
+ 		;;; word ¤ÎÅÓÃæ¤Ç¤ÏÊ¬³ä¤·¤Ê¤¤¡£
+ 		    (and (= ?w (char-syntax (preceding-char)))
+ 			 (= ?w (char-syntax (following-char))))))
+       (backward-char)))
+ 
+ 
diff -arcN emacs-18.55/lisp/loadup.el nemacs-3.3.2/lisp/loadup.el
*** emacs-18.55/lisp/loadup.el	Wed Jul  6 03:00:45 1988
--- nemacs-3.3.2/lisp/loadup.el	Wed Jun  6 03:15:56 1990
***************
*** 1,3 ****
--- 1,7 ----
+ ;;; 87.7.15  modified for Nemacs Ver.2.0 by K.Handa
+ ;;; 89.3.22  modified for Nemacs Ver.3.0 by K.Handa
+ ;;; 90.2.28  modified for Nemacs Ver.3.3.0 by K.Handa
+ 
  ;Load up standardly loaded Lisp files for Emacs.
  ;; This is loaded into a bare Emacs to make a dumpable one.
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
***************
*** 63,68 ****
--- 67,79 ----
      (progn
        (garbage-collect)
        (load "vms-patch")))
+ ;;; patch by K.Handa  87.7.15
+ ;;; modified by K.Handa  88.6.20, 89.3.22
+ (load "kanji")
+ (garbage-collect)
+ (load "kinsoku")
+ (garbage-collect)
+ ;;; end of patch
  
  ;If you want additional libraries to be preloaded and their
  ;doc strings kept in the DOC file rather than in core,
***************
*** 93,98 ****
--- 104,115 ----
        (Snarf-documentation (concat "DOC-" name)))
      (Snarf-documentation "DOC"))
  (message "Finding pointers to doc strings...done")
+ 
+ ;;; 90.2.28  patch by K.Handa
+ ;;; Now we load Nemacs related site configulation file.
+ (load "nemacs-init" t)
+ (garbage-collect)
+ ;;; end of patch
  
  ;Note: You can cause additional libraries to be preloaded
  ;by writing a site-init.el that loads them.
diff -arcN emacs-18.55/lisp/nemacs-init.el nemacs-3.3.2/lisp/nemacs-init.el
*** emacs-18.55/lisp/nemacs-init.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/nemacs-init.el	Wed Jun  6 03:17:14 1990
***************
*** 0 ****
--- 1,106 ----
+ ;; Nemacs site configuration file
+ ;; Coded by K.Handa, Electrotechnical Lab. (handa@etl.go.jp)
+ ;;      and S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+ ;; Nemacs is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ 
+ ;;; 87.6.9   created by K.handa
+ ;;; 87.6.15  modified by K.Handa
+ ;;; 88.1.15  modified for Nemacs Ver.2.0 by K.Handa
+ ;;; 88.5.26  modified for Nemacs Ver.2.1 by K.handa
+ ;;; 88.3.23  modified for Nemacs Ver.3.0 by K.handa
+ ;;; 89.11.21 modified for Nemacs Ver.3.2 by K.Handa and S.Tomura
+ ;;; 89.12.15 modified for Nemacs Ver.3.2.1 by S.Tomura
+ ;;; 90.2.28  copied from site-init.el for Nemacs Ver.3.3.0 by K.Handa
+ 
+ ;;;
+ ;;; Any one can change the following lines if you never key in JIS code
+ ;;; modified by K.handa 88.5.26
+ (defvar esc-dol-map (make-keymap))
+ (defvar esc-par-map (make-keymap))
+ 
+ (define-key esc-map "$" esc-dol-map)
+ (define-key esc-map "(" esc-par-map)
+ 
+ (define-key esc-dol-map "@" 'kanji-jis-start)
+ (define-key esc-dol-map "B" 'kanji-jis-start)
+ 
+ (define-key esc-par-map "B" 'kanji-jis-end)
+ (define-key esc-par-map "H" 'kanji-jis-end)
+ (define-key esc-par-map "J" 'kanji-jis-end)
+ 
+ ;;; Initialization of kanji code related variables for each site
+ ;;; Any one can overwrite the followings in $home/.emacs
+ (define-key esc-map "#" 'spell-word)
+ (define-key esc-map "{" 'insert-parentheses)
+ (setq-default kanji-flag t)
+ ; 0: No-conversion
+ ; 1: Shift-JIS
+ ; 2: JIS
+ ; 3: EUC
+ ; nil: not decided
+ ; t: guess (only for kanji-expected-code)
+ (setq-default kanji-fileio-code nil)
+ (setq default-kanji-process-code 0)
+ (setq kanji-display-code 2)
+ (setq kanji-input-code 2)
+ 
+ (setq to-kanji-display 64)	;ESC-$-@	@=64 / B=66
+ (setq to-ascii-display 74)	;ESC-(-J	B=66 / H=72 / J=74
+ (setq to-kanji-fileio 64)
+ (setq to-ascii-fileio 74)
+ (setq to-kanji-process 64)
+ (setq to-ascii-process 74)
+ 
+ ;;; Convenient Utilities provided by S.Tomura and K.Handa
+ ;;; Change Kanji codes according to your environment
+ (load-library "kanji-util")
+ (define-program-kanji-code nil ".*mail.*" 2)
+ (define-program-kanji-code nil ".*inews.*" 2)
+ (define-service-kanji-code "wnn"  nil 0)
+ (define-service-kanji-code "nntp" nil 0)
+ (garbage-collect)
+ 
+ ;;; For gnus user only
+ ;(setq gnus-your-domain "your.domain.address"
+ ;      gnus-your-organization "Your site name"
+ ;      gnus-use-generic-from t)
+ ;(garbage-collect)
+ 
+ ;;; For EGG user only
+ (if (boundp 'EGG)
+     (progn
+       (if (not (or (boundp 'WNN3) (boundp 'WNN4V3)))
+ 	  (progn
+ 	    (load-library "wnn-client")))
+       (load-library "wnn-egg")
+       (load-library "egg-rkdump")
+       (if (or (boundp 'WNN3) (boundp 'WNN4V3))
+ 	  (load-library "wnnfns"))
+       (if (boundp 'WNN4V3)
+ 	(setq egg-default-startup-file "eggrc-v4")
+ 	  (setq egg-default-startup-file "eggrc-v3"))
+       (garbage-collect)))
+ 
+ ;;; For rnews user only
+ (setq news-inews-program "/usr/lib/news/inews")
+ 
+ ;;; Do not change the following line.
+ (setq initial-major-mode 'nemacs-lisp-interaction-mode)
diff -arcN emacs-18.55/lisp/picture.el nemacs-3.3.2/lisp/picture.el
*** emacs-18.55/lisp/picture.el	Wed Apr 12 23:45:25 1989
--- nemacs-3.3.2/lisp/picture.el	Wed Jun  6 03:16:03 1990
***************
*** 1,3 ****
--- 1,6 ----
+ ;;; 89.3.10  modified for Nemacs Ver.3.0 by K.Handa
+ ;;; 89.9.7   modified for Nemacs Ver.3.2 by K.Handa
+ 
  ;; "Picture mode" -- editing using quarter-plane screen model.
  ;; Copyright (C) 1985 Free Software Foundation, Inc.
  ;; Principal author K. Shane Hartman
***************
*** 22,41 ****
  
  (provide 'picture)
  
! (defun move-to-column-force (column)
    "Move to column COLUMN in current line.
  Differs from move-to-column in that it creates or modifies whitespace
! if necessary to attain exactly the specified column."
    (move-to-column column)
    (let ((col (current-column)))
      (if (< col column)
! 	(indent-to column)
        (if (and (/= col column)
  	       (= (preceding-char) ?\t))
  	  (let (indent-tabs-mode)
  	    (delete-char -1)
!             (indent-to col)
!             (move-to-column column))))))
  
  
  ;; Picture Movement Commands
--- 25,53 ----
  
  (provide 'picture)
  
! (defun move-to-column-force (column &optional force)	; 89.9.7  by K.Handa
    "Move to column COLUMN in current line.
  Differs from move-to-column in that it creates or modifies whitespace
! if necessary to attain exactly the specified column.
! If optional second argument FORCE is not nil and the goal column
! is at a tail of Kanji character, the Kanji is replaced by two spaces
! to locate the cursor at the exact column."
    (move-to-column column)
    (let ((col (current-column)))
      (if (< col column)
! 	(if (eolp)
! 	    (indent-to column)
! 	  (if (and (= (jcode-type (point)) 1) force)
! 	      (progn
! 		(delete-char 2)
! 		(insert "  ")
! 		(forward-char -1))))
        (if (and (/= col column)
  	       (= (preceding-char) ?\t))
  	  (let (indent-tabs-mode)
  	    (delete-char -1)
! 	    (indent-to col)
! 	    (move-to-column column))))))
  
  
  ;; Picture Movement Commands
***************
*** 49,59 ****
    (beginning-of-line)
    (skip-chars-backward " \t" (prog1 (point) (end-of-line))))
  
! (defun picture-forward-column (arg)
    "Move cursor right, making whitespace if necessary.
  With argument, move that many columns."
    (interactive "p")
!   (move-to-column-force (+ (current-column) arg)))
  
  (defun picture-backward-column (arg)
    "Move cursor left, making whitespace if necessary.
--- 61,74 ----
    (beginning-of-line)
    (skip-chars-backward " \t" (prog1 (point) (end-of-line))))
  
! (defun picture-forward-column (arg &optional force) ; 89.9.7  by K.Handa
    "Move cursor right, making whitespace if necessary.
  With argument, move that many columns."
    (interactive "p")
!   (let ((prev-clm (current-column)))
!     (move-to-column-force (+ prev-clm arg) force)
!     (if (and (/= arg 0) (= prev-clm (current-column)))
! 	(move-to-column-force (+ prev-clm (1+ arg))))))
  
  (defun picture-backward-column (arg)
    "Move cursor left, making whitespace if necessary.
***************
*** 61,73 ****
    (interactive "p")
    (move-to-column-force (- (current-column) arg)))
  
! (defun picture-move-down (arg)
    "Move vertically down, making whitespace if necessary.
  With argument, move that many lines."
    (interactive "p")
    (let ((col (current-column)))
      (picture-newline arg)
!     (move-to-column-force col)))
  
  (defconst picture-vertical-step 0
    "Amount to move vertically after text character in Picture mode.")
--- 76,88 ----
    (interactive "p")
    (move-to-column-force (- (current-column) arg)))
  
! (defun picture-move-down (arg &optional force) ; 89.9.7  by K.Handa
    "Move vertically down, making whitespace if necessary.
  With argument, move that many lines."
    (interactive "p")
    (let ((col (current-column)))
      (picture-newline arg)
!     (move-to-column-force col force)))
  
  (defconst picture-vertical-step 0
    "Amount to move vertically after text character in Picture mode.")
***************
*** 101,106 ****
--- 116,143 ----
    (interactive)
    (picture-set-motion 1 0))
  
+ ;;; 89.9.7  by K.Handa
+ (defun picture-movement-wnw ()
+   "Move up and left and left after self-inserting character in Picture mode."
+   (interactive)
+   (picture-set-motion -1 -2))
+ 
+ (defun picture-movement-ene ()
+   "Move up and right and right after self-inserting character in Picture mode."
+   (interactive)
+   (picture-set-motion -1 2))
+ 
+ (defun picture-movement-wsw ()
+   "Move down and left and left after self-inserting character in Picture mode."
+   (interactive)
+   (picture-set-motion 1 -2))
+ 
+ (defun picture-movement-ese ()
+   "Move down and right and right after self-inserting character in Picture mode."
+   (interactive)
+   (picture-set-motion 1 2))
+ ;;; end of patch
+ 
  (defun picture-movement-nw ()
    "Move up and left after self-inserting character in Picture mode."
    (interactive)
***************
*** 128,144 ****
  	picture-horizontal-step horiz)
    (setq mode-name
  	(format "Picture:%s"
! 		(car (nthcdr (+ 1 (% horiz 2) (* 3 (1+ (% vert 2))))
! 			     '(nw up ne left none right sw down se)))))
    ;; Kludge - force the mode line to be updated.  Is there a better
    ;; way to this?
    (set-buffer-modified-p (buffer-modified-p))
    (message ""))
  
! (defun picture-move ()
    "Move in direction of  picture-vertical-step  and  picture-horizontal-step."
!   (picture-move-down picture-vertical-step)
!   (picture-forward-column picture-horizontal-step))
  
  (defun picture-motion (arg)
    "Move point in direction of current picture motion in Picture mode.
--- 165,183 ----
  	picture-horizontal-step horiz)
    (setq mode-name
  	(format "Picture:%s"
! 		(car (nthcdr (+ 2 (% horiz 3) (* 5 (1+ (% vert 2))))
! 			     '(wnw nw up ne ene Left left none right Right
! 				  wsw sw down se ese))))) ; 89.9.7  by K.Handa
    ;; Kludge - force the mode line to be updated.  Is there a better
    ;; way to this?
    (set-buffer-modified-p (buffer-modified-p))
    (message ""))
  
! (defun picture-move (&optional force)	; 89.9.7 by K.Handa
    "Move in direction of  picture-vertical-step  and  picture-horizontal-step."
!   (let ((col (current-column)))
!     (picture-newline picture-vertical-step)
!     (move-to-column-force (+ col picture-horizontal-step) force)))
  
  (defun picture-motion (arg)
    "Move point in direction of current picture motion in Picture mode.
***************
*** 166,179 ****
  with the commands picture-movement-right, picture-movement-up, etc.
  Do \\[command-apropos]  picture-movement  to see those commands."
    (interactive "p")
!   (while (> arg 0)
!     (setq arg (1- arg))
!     (move-to-column-force (1+ (current-column)))
!     (delete-char -1)
!     (insert last-input-char)
!     (forward-char -1)
!     (picture-move)))
  
  (defun picture-clear-column (arg)
    "Clear out ARG columns after point without moving."
    (interactive "p")
--- 205,247 ----
  with the commands picture-movement-right, picture-movement-up, etc.
  Do \\[command-apropos]  picture-movement  to see those commands."
    (interactive "p")
!   (if (> arg 0)				; 89.9.7  by K.Handa
!       (picture-insert-string (make-string arg last-input-char))))
  
+ ;;; 89.9.7  by K.Handa
+ (defun picture-insert-after-hook (begin end)
+   "Called as a hook after a string is inserted into the current buffer.
+ Two arguments BEGIN and END point the head and tail of just inserted string."
+   (let ((str (buffer-substring begin end)))
+     (delete-region begin end)
+     (picture-insert-string str)))
+ 
+ (defun picture-insert-string (str)
+   "Insert STR one character by one in place of character previously
+ at the cursor while moving cursor in the direction you previously specified
+ with the commands picture-movement-right, picture-movement-up, etc.
+ Do \\[command-apropos]  picture-movement  to see those commands."
+   (interactive "sInsert string: ")
+   (let ((len (length str))
+ 	(idx 0)
+ 	n)
+     (while (< idx len)
+       (setq n (if (> (aref str idx) 127) 2 1))
+       (let ((p (point)))
+ 	(move-to-column-force (+ (current-column) n) t)
+ 	(delete-region p (point)))
+       (insert (substring str idx (setq idx (+ idx n))))
+       (forward-char (- 0 n))
+       (let ((picture-horizontal-step
+ 	     (if (and (= picture-vertical-step 0)
+ 		      (= n 2)
+ 		      (and (< -2 picture-horizontal-step)
+ 			   (< picture-horizontal-step 2)))
+ 		 (* picture-horizontal-step 2)
+ 	       picture-horizontal-step)))
+ 	(picture-move (< idx len))))))
+ ;;; end of patch
+ 
  (defun picture-clear-column (arg)
    "Clear out ARG columns after point without moving."
    (interactive "p")
***************
*** 180,186 ****
    (let* ((opoint (point))
  	 (original-col (current-column))
  	 (target-col (+ original-col arg)))
!     (move-to-column-force target-col)
      (delete-region opoint (point))
      (save-excursion
       (indent-to (max target-col original-col)))))
--- 248,254 ----
    (let* ((opoint (point))
  	 (original-col (current-column))
  	 (target-col (+ original-col arg)))
!     (move-to-column-force target-col t)	; 89.9.7 by K.Handa
      (delete-region opoint (point))
      (save-excursion
       (indent-to (max target-col original-col)))))
***************
*** 335,342 ****
      (move-to-column-force target)
      (if arg
  	(let (indent-tabs-mode)
! 	  (delete-region opoint (point))
  	  (indent-to target)))))
  
  ;; Picture Rectangles
  
--- 403,411 ----
      (move-to-column-force target)
      (if arg
  	(let (indent-tabs-mode)
! 	  (delete-region opoint point)
  	  (indent-to target)))))
+ 
  
  ;; Picture Rectangles
  
***************
*** 417,425 ****
  (if (not picture-mode-map)
      (let ((i ?\ ))
        (setq picture-mode-map (make-keymap))
        (while (< i ?\177)
!         (aset picture-mode-map i 'picture-self-insert)
! 	(setq i (1+ i)))
        (define-key picture-mode-map "\C-f" 'picture-forward-column)
        (define-key picture-mode-map "\C-b" 'picture-backward-column)
        (define-key picture-mode-map "\C-d" 'picture-clear-column)
--- 486,500 ----
  (if (not picture-mode-map)
      (let ((i ?\ ))
        (setq picture-mode-map (make-keymap))
+       ;;; 89.9.7 by K.Handa
+       (if (boundp 'EGG)
+ 	  (while (< i ?\177)
+ 	    (aset picture-mode-map i 'egg-self-insert-command)
+ 	    (setq i (1+ i)))
        (while (< i ?\177)
! 	(aset picture-mode-map i 'picture-self-insert)
! 	(setq i (1+ i))))
!       ;;; end of patch
        (define-key picture-mode-map "\C-f" 'picture-forward-column)
        (define-key picture-mode-map "\C-b" 'picture-backward-column)
        (define-key picture-mode-map "\C-d" 'picture-clear-column)
***************
*** 447,452 ****
--- 522,534 ----
        (define-key picture-mode-map "\C-c>" 'picture-movement-right)
        (define-key picture-mode-map "\C-c^" 'picture-movement-up)
        (define-key picture-mode-map "\C-c." 'picture-movement-down)
+       ;;; 89.9.7 by K.Handa
+       (define-key picture-mode-map "\C-ck" 'picture-insert-string)
+       (define-key picture-mode-map "\C-c~" 'picture-movement-wnw)
+       (define-key picture-mode-map "\C-c\"" 'picture-movement-ene)
+       (define-key picture-mode-map "\C-c?" 'picture-movement-wsw)
+       (define-key picture-mode-map "\C-c|" 'picture-movement-ese)
+       ;;; end of patch
        (define-key picture-mode-map "\C-c`" 'picture-movement-nw)
        (define-key picture-mode-map "\C-c'" 'picture-movement-ne)
        (define-key picture-mode-map "\C-c/" 'picture-movement-sw)
***************
*** 531,536 ****
--- 613,623 ----
      (setq picture-tab-chars (default-value 'picture-tab-chars))
      (make-local-variable 'picture-vertical-step)
      (make-local-variable 'picture-horizontal-step)
+     ;;; 89.9.17  patch by K.Handa
+     (make-local-variable 'picutre-old-self-insert-after-hook)
+     (setq picutre-old-self-insert-after-hook self-insert-after-hook)
+     (setq self-insert-after-hook 'picture-insert-after-hook)
+     ;;; end of patch
      (picture-set-motion 0 1)
      (run-hooks 'edit-picture-hook)
      (message
***************
*** 551,556 ****
--- 638,646 ----
      (setq mode-name picture-mode-old-mode-name)
      (use-local-map picture-mode-old-local-map)
      (setq major-mode picture-mode-old-major-mode)
+     ;;; 89.9.17  patch by K.Handa
+     (setq self-insert-after-hook picutre-old-self-insert-after-hook)
+     ;;; end of patch
      (kill-local-variable 'tab-stop-list)
      ;; Kludge - force the mode line to be updated.  Is there a better
      ;; way to do this?
diff -arcN emacs-18.55/lisp/rect.el nemacs-3.3.2/lisp/rect.el
*** emacs-18.55/lisp/rect.el	Wed Oct  1 02:09:19 1986
--- nemacs-3.3.2/lisp/rect.el	Wed Jun  6 03:16:04 1990
***************
*** 1,3 ****
--- 1,6 ----
+ ;;; 89.3.12  modified for Nemacs Ver.3.0 by K.Handa
+ ;;; 89.9.11  modified for Nemacs Ver.3.2 by K.Handa
+ 
  ;; Rectangle functions for GNU Emacs.
  ;; Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 53,58 ****
--- 56,73 ----
  		  (> (current-column) startcol)
  		  (rectangle-coerce-tab startcol))
  	     (setq begextra (- (current-column) startcol))
+ 	     ;;; 89.9.11  by K.Handa
+ 	     (if (and (= begextra -1)
+ 		      (= (jcode-type (point)) 1))
+ 		 (if coerce-tabs
+ 		     (progn
+ 		       (delete-char 2)
+ 		       (insert "  ")
+ 		       (forward-char -1)
+ 		       (setq begextra 0))
+ 		   (forward-char 2)
+ 		   (setq begextra 1)))
+ 	     ;;; end of patch
  	     (setq startpos (point))
  	     (move-to-column endcol)
  	     (if (> (current-column) endcol)
***************
*** 60,65 ****
--- 75,90 ----
  		     (rectangle-coerce-tab endcol)
  		   (forward-char -1)))
  	     (setq endextra (- endcol (current-column)))
+ 	     ;;; 89.9.11  by K.Handa
+ 	     (if (and coerce-tabs
+ 		      (= endextra 1)
+ 		      (= (jcode-type (point)) 1))
+ 		 (progn
+ 		   (delete-char 2)
+ 		   (insert "  ")
+ 		   (forward-char -1)
+ 		   (setq endextra 0)))
+ 	     ;;; end of patch
  	     (if (< begextra 0)
  		 (setq endextra (+ endextra begextra)
  		       begextra 0))
***************
*** 67,74 ****
  	   (forward-line 1))))
      (- endcol startcol)))
  
! (defun delete-rectangle-line (startdelpos ignore ignore)
!   (delete-region startdelpos (point)))
  
  (defun delete-extract-rectangle-line (startdelpos begextra endextra)
    (save-excursion
--- 92,109 ----
  	   (forward-line 1))))
      (- endcol startcol)))
  
! ;;; 89.9.7 by K.Handa
! (defun delete-rectangle-line (startdelpos begextra endextra)
!   (kanji-delete-region
!    (if (and (= begextra 1)
! 	    (= (jcode-type (1- startdelpos)) 2))
!        (1- startdelpos)
!      startdelpos)
!    (if (and (= endextra 1)
! 	    (= (jcode-type (point)) 1))
!        (1+ (point))
!      (point))))
! ;;; end of patch
  
  (defun delete-extract-rectangle-line (startdelpos begextra endextra)
    (save-excursion
***************
*** 173,178 ****
--- 208,218 ----
  (defun open-rectangle-line (startpos begextra endextra)
    (let ((column (+ (current-column) begextra endextra)))
      (goto-char startpos)
+     ;;; 89.3.12, 89.9.11  patch by K.Handa
+     (if (and (= begextra 1)
+ 	     (= (jcode-type (1- startpos)) 2))
+ 	(delete-char -2))
+     ;;; end of patch
      (let ((ocol (current-column)))
        (skip-chars-forward " \t")
        (setq column (+ column (- (current-column) ocol))))
diff -arcN emacs-18.55/lisp/simple.el nemacs-3.3.2/lisp/simple.el
*** emacs-18.55/lisp/simple.el	Fri Jul 22 19:14:42 1988
--- nemacs-3.3.2/lisp/simple.el	Wed Jun  6 03:16:11 1990
***************
*** 1,3 ****
--- 1,25 ----
+ ;;; Basic editing Commands for Egg on Nemacs
+ ;;; Modified by Satoru Tomura(tomura@etl.go.jp)
+ 
+ ;;;;  Ver.18.55    created by S.Tomura 89-Nov-17
+ ;;; Nemacs Ver.3.2
+ ;;;;  Ver.18.52a   modified by S.Tomura 89-Oct-21
+ ;;;;  Ver.18.52    created by S.Tomura 89-Mar-16
+ ;;; Nemacs Ver.3.0
+ ;;;;  Ver.18.50g   modified by S.Tomura 88-Nov-18
+ ;;;;  Ver.18.50f   modified by S.Tomura 88-Aug-25
+ ;;;;  Ver.18.50e   modified by S.Tomura 88-Jul-09
+ ;;;;  Ver.18.50d   modified by S.Tomura 88-Jun-23
+ ;;;;  Ver.18.50c   modified by S.Tomura 88-Jun-20
+ ;;;;  Ver.18.50b   modified by S.Tomura 88-Jun-16
+ ;;;;  Ver.18.50a   modified by S.Tomura 88-Jun-11
+ ;;;;  Ver.18.50    created by S.Tomura 88-Jun-11
+ ;;; Nemacs Ver.2.1  
+ ;;;;  Ver.18.47a2  modified by S.Tomura 88-Jun-2
+ ;;;;  Ver.18.47a1  modified by S.Tomura 88-Feb-9
+ ;;;;  Ver.18.47a   modified by S.Tomura 88-Feb-8
+ ;;;;               Kanji auto-fill added.
+ 
  ;; Basic editing commands for Emacs
  ;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 1093,1114 ****
    (let ((fill-point
  	 (let ((opoint (point)))
  	   (save-excursion
! 	     (move-to-column (1+ fill-column))
! 	     (skip-chars-backward "^ \t\n")
! 	     (if (bolp)
! 		 (re-search-forward "[ \t]" opoint t))
! 	     (skip-chars-backward " \t")
  	     (point)))))
      ;; If there is a space on the line before fill-point,
      ;; and nonspaces precede it, break the line there.
      (if (save-excursion
  	  (goto-char fill-point)
! 	  (not (bolp)))
  	;; If point is at the fill-point, do not `save-excursion'.
  	;; Otherwise, if a comment prefix or fill-prefix is inserted,
  	;; point will end up before it rather than after it.
  	(if (save-excursion
  	      (skip-chars-backward " \t")
  	      (= (point) fill-point))
  	    (indent-new-comment-line)
  	    (save-excursion
--- 1115,1167 ----
    (let ((fill-point
  	 (let ((opoint (point)))
  	   (save-excursion
! 	     ;;; patched by S.Tomura 88-Jun-2
! 	     ;;;(move-to-column (1+ fill-column))
! 	     ;;;(skip-chars-backward "^ \t\n")
! 	     ;;;(if (bolp)
! 	     ;;; (re-search-forward "[ \t]" opoint t))
! 	     ;;; find the point where there is no spaces before and
! 	     ;;; the preceding-char is kanji or the following-char is space.
! 	     (move-to-column fill-column)
! 	     ;;; patched by S. Tomura 88-Jun-16, 89-Oct-21
! 	     ;;; ´Á»ú¥³¡¼¥É¤Î¾ì¹ç¤Ë¤Ïfill-column¤è¤êÂç¤­¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£
! 	     (or (>= fill-column (current-column)) (backward-char 1))
! 	     ;;; end of patch
! 	     (skip-chars-backward " \t") ;; skip SPC and TAB
! 	     (if (or (<= 128 (preceding-char))
! 		     (<= 128 (following-char))  ;;; 88-Aug-25
! 		     (= (following-char) ? )
! 		     (= (following-char) ?\t))
! 		 nil
! 	       (if(re-search-backward "[ \t\n]\\|\\z" ;;; 89-Nov-17
! 				      (point-min) (point-min))
! 		   (forward-char 1))
! 	       (if (or (bobp) (bolp)) 
! 		   (if (re-search-forward "[ \t]\\|\\z" opoint t) ;;; 88-Jun-11 by S.Tomura, 89-Nov-17
! 		       (backward-char 1)))
! 	       (skip-chars-backward " \t"))
! 	     (kinsoku-shori)
! 	     ;;; end of patch
  	     (point)))))
      ;; If there is a space on the line before fill-point,
      ;; and nonspaces precede it, break the line there.
      (if (save-excursion
  	  (goto-char fill-point)
! 	  ;;; patch by S. Tomura 88-Jun-23
! 	  ;;;ÆüËÜ¸ì¤Î¾ì¹ç¡¢¶ØÂ§½èÍý¤ÇÊ¬³äÅÀ¤¬¹ÔËö¤Ë¤¯¤ë¤³¤È¤¬¤¢¤ë¡£
! 	  ;;;(not (bolp)))
! 	  (not (or (bolp) (eolp))))
!           ;;; end of patch 
  	;; If point is at the fill-point, do not `save-excursion'.
  	;; Otherwise, if a comment prefix or fill-prefix is inserted,
  	;; point will end up before it rather than after it.
  	(if (save-excursion
  	      (skip-chars-backward " \t")
+ 	      ;;; patched by S.Tomura 88-Jun-2
+ 	      ;;; patched by S.Tomura 88-Nov-18
+ 	      ;;;(kinsoku-shori)
+ 	      ;;; end of patch
+ 	      ;;; end of patch
  	      (= (point) fill-point))
  	    (indent-new-comment-line)
  	    (save-excursion
***************
*** 1115,1120 ****
--- 1168,1174 ----
  	      (goto-char fill-point)
  	      (indent-new-comment-line))))))
  
+ 
  (defconst comment-multi-line nil
    "*Non-nil means \\[indent-new-comment-line] should continue same comment
  on new line, with no new terminator or starter.")
***************
*** 1125,1133 ****
    (interactive "*")
    (let (comcol comstart)
      (skip-chars-backward " \t")
!     (delete-region (point)
! 		   (progn (skip-chars-forward " \t")
! 			  (point)))
      (insert ?\n)
      (save-excursion
        (if (and comment-start-skip
--- 1179,1208 ----
    (interactive "*")
    (let (comcol comstart)
      (skip-chars-backward " \t")
!     ;;; patched by S.Tomura 88-Jun-2
!     (kinsoku-shori)
!     ;;; end of patch
!     ;;; patched by S.Tomura 88-Jun-20
!     ;;;(delete-region (point)
!     ;;;		   (progn (skip-chars-forward " \t")
!     ;;;			  (point)))
!     ;;; Á´³ÑÊ¸»ú¤ÎÁ°¸å¤ÎÈ¾³Ñ¶õÇò£±Ê¸»ú¤ÏÊÝÂ¸¤¹¤ë¡£
!     (if (not kanji-flag) 
! 	(delete-region (point)
! 		       (progn (skip-chars-forward " \t")
! 			      (point)))
!       (let ((start) (end))
! 	(setq start (point))
! 	(skip-chars-forward  " \t")
! 	(setq end (point))
! 	(delete-region start end)
! 	(if (and (or (<= 128 (preceding-char))
! 		     (<= 128 (following-char)))
! 		 (not (= start end))
! 		 (not (eolp))
! 		 (not (eobp)))
! 	    (insert ?  ))))
!     ;;; end of patch
      (insert ?\n)
      (save-excursion
        (if (and comment-start-skip
***************
*** 1394,1396 ****
--- 1469,1472 ----
  (defconst mode-specific-map (symbol-function 'mode-specific-command-prefix)
    "Keymap for characters following C-c.")
  (define-key global-map "\C-c" 'mode-specific-command-prefix)
+ 
diff -arcN emacs-18.55/lisp/startup.el nemacs-3.3.2/lisp/startup.el
*** emacs-18.55/lisp/startup.el	Sat Apr  8 11:03:10 1989
--- nemacs-3.3.2/lisp/startup.el	Wed Jun  6 03:16:12 1990
***************
*** 1,3 ****
--- 1,5 ----
+ ;;; 88.1.5  modified for Nemacs Ver.2.0 by K.Handa
+ 
  ;; Process Emacs shell arguments
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 190,195 ****
--- 192,207 ----
  You may give out copies of Emacs; type \\[describe-copying] to see the conditions.
  Type \\[describe-distribution] for information on getting the latest version.
  Type \\[help-with-tutorial] for a tutorial on using Emacs.")))
+ ;;; patch by K.Handa  88.1.4
+ 		   (insert "\n\n"
+ 			   (nemacs-version))
+ 		   (insert (substitute-command-keys
+ 			    "
+ Type \\[help-with-tutorial-for-nemacs] for a Japanese tutorial on using Nemacs.
+ For any other Nemacs specific information,
+ please read "))
+ 		   (insert exec-directory "NEMACS.???.")
+ ;;; end of patch
  		   (set-buffer-modified-p nil)
  		   (sit-for 120))
  	     (erase-buffer)
diff -arcN emacs-18.55/lisp/term/x-win.el nemacs-3.3.2/lisp/term/x-win.el
*** emacs-18.55/lisp/term/x-win.el	Wed Jun 21 03:03:45 1989
--- nemacs-3.3.2/lisp/term/x-win.el	Wed Jun  6 03:17:09 1990
***************
*** 1,3 ****
--- 1,8 ----
+ ;; modified by K.Handa  88.1.15
+ ;; Nemacs Ver.2.0
+ 
+ ;;; 89.3.23  modified for Nemacs Ver.3.0 by K.Handa
+ 
  ;; Parse switches controlling how Emacs interfaces with X window system.
  ;; Copyright (C) 1986, 1988 Free Software Foundation, Inc.
  
***************
*** 39,44 ****
--- 44,52 ----
  	  (append '(("-r" . x-handle-switch)
  		    ("-i" . x-handle-switch)
  		    ("-font" . x-handle-switch)
+                     ;;; patch by T.Takada  87.7.9
+ 		    ("-kfont" . x-handle-switch)
+                     ;;; end of patch
  		    ("-w" . x-handle-switch)
  		    ("-b" . x-handle-switch)
  		    ("-ib" . x-handle-switch)
***************
*** 55,60 ****
--- 63,72 ----
  		  ("-rn" . x-ignore-arg)
  		  ("-font" . x-ignore-arg)
  		  ("-fn" . x-ignore-arg)
+ 		  ;;; 89.3.23  patch by K.Handa
+ 		  ("-kfont" . x-ignore-arg)
+ 		  ("-fk" . x-ignore-arg)
+ 		  ;;; end of patch
  		  ("-wn" . x-ignore-arg)
  		  ("-in" . x-ignore-arg)
  		  ("-w" . x-ignore-arg)
***************
*** 86,91 ****
--- 98,108 ----
  	((string= switch "-font")
  	 (x-set-font arg)
  	 t)
+ 	;;; patch by t.Takada 87.7.9
+ 	((string= switch "-kfont")
+ 	 (x-set-kfont arg)
+ 	 t)
+ 	;;; end of patch
  	((string= switch "-b")
  	 (x-set-border-width (string-to-int arg))
  	 t)
***************
*** 156,161 ****
--- 173,182 ----
    (let (value)
      (if (not (string= (setq value (x-get-default "bodyfont")) ""))
  	(x-handle-switch-1 "-font"  value))
+     ;;; 89.3.23  patch by K.Handa
+     (if (not (string= (setq value (x-get-default "bodykfont")) ""))
+ 	(x-handle-switch-1 "-kfont"  value))
+     ;;; end of patch
      (if (string-match "on" (x-get-default "bitmapicon"))
  	(x-handle-switch-1 "-i" t))
      (if (not (string= (setq value (x-get-default "borderwidth")) ""))
diff -arcN emacs-18.55/lisp/texinfmt.el nemacs-3.3.2/lisp/texinfmt.el
*** emacs-18.55/lisp/texinfmt.el	Thu Dec 29 13:11:05 1988
--- nemacs-3.3.2/lisp/texinfmt.el	Wed Jun  6 03:16:17 1990
***************
*** 1,3 ****
--- 1,13 ----
+ ;; Convert Japanese texinfo files to info files for Egg on Nemacs
+ ;; Modified by Satoru Tomura(tomura@etl.go.jp)
+ ;;
+ (defconst jtexinfo-version "1.03")
+ ;; Ver.1.03     modified by M.Nishikimi 89-Dec-14
+ ;; Ver.1.02     modified by S.Tomura 89-Dec-12
+ ;;              a bug fixed
+ ;; Ver.1.01     modified by S.Tomura 89-Dec-7
+ ;;              index related functions modified
+ 
  ;; Convert texinfo files to info files.
  ;; Copyright (C) 1985, 1986, 1988 Free Software Foundation, Inc.
  
***************
*** 292,299 ****
      (texinfo-format-expand-region start (point))
      (setq texinfo-command-end (marker-position marker))
      (move-marker marker nil)
!     (prog1 (buffer-substring start (point))
! 	   (if (eolp) (forward-char 1)))))
  
  (defun texinfo-format-expand-region (start end)
    (save-restriction
--- 302,320 ----
      (texinfo-format-expand-region start (point))
      (setq texinfo-command-end (marker-position marker))
      (move-marker marker nil)
! ;;; jtexinfo patch by S. Tomura 89-Dec-6
! ;;;"    (prog1 (buffer-substring start (point))"
! ;;;"	   (if (eolp) (forward-char 1)))))     "
!     (let ((point (point)))
!       (goto-char start)
!       (prog1 
! 	  (if (re-search-forward "\\(.*\\)\\[\\(.*\\)\\]" point t)
! 	      (cons (buffer-substring (match-beginning 1) (match-end 1))
! 		    (buffer-substring (match-beginning 2) (match-end 2)))
! 	    (buffer-substring start point))
! 	(goto-char point)
! 	(if (eolp) (forward-char 1))))))
! ;;; end of jtexinfo patch	     
  
  (defun texinfo-format-expand-region (start end)
    (save-restriction
***************
*** 862,867 ****
--- 883,901 ----
      ("ky" . texinfo-kindex)))
  
  (put 'printindex 'texinfo-format 'texinfo-format-printindex)
+ ;;; jtexinfo patch by S. Tomura 89-Dec-6
+ ;(defun texinfo-format-printindex ()
+ ;  (let ((indexelts (symbol-value
+ ;		    (cdr (assoc (texinfo-parse-arg-discard)
+ ;				texinfo-indexvar-alist))))
+ ;	opoint)
+ ;    (insert "\n* Menu:\n\n")
+ ;    (setq opoint (point))
+ ;    (texinfo-print-index nil indexelts)
+ ;    (if (eq system-type 'vax-vms) 
+ ;	(texinfo-sort-region opoint (point))
+ ;      (shell-command-on-region opoint (point) "sort -fd" 1))))
+ ;
  (defun texinfo-format-printindex ()
    (let ((indexelts (symbol-value
  		    (cdr (assoc (texinfo-parse-arg-discard)
***************
*** 870,889 ****
      (insert "\n* Menu:\n\n")
      (setq opoint (point))
      (texinfo-print-index nil indexelts)
!     (if (eq system-type 'vax-vms) 
! 	(texinfo-sort-region opoint (point))
!       (shell-command-on-region opoint (point) "sort -fd" 1))))
! 
  (defun texinfo-print-index (file indexelts)
    (while indexelts
!     (if (stringp (car (car indexelts)))
! 	(insert "* " (car (car indexelts))
! 		": " (if file (concat "(" file ")") "")
! 		(nth 1 (car indexelts)) ".\n")
!       ;; index entries from @include'd file
!       (texinfo-print-index (nth 1 (car indexelts))
! 			   (nth 2 (car indexelts))))
      (setq indexelts (cdr indexelts))))
  
  
  ;;;; Lisp Definitions
--- 904,953 ----
      (insert "\n* Menu:\n\n")
      (setq opoint (point))
      (texinfo-print-index nil indexelts)
!     (require 'sort)
!     (save-restriction
!       (narrow-to-region opoint (point))
!       (sort-lines nil (point-min) (point-max))
!       (goto-char (point-min))
!       (while (not (eobp))
! 	(let ((point (point)))
! 	  (search-forward "\0")
! 	  (delete-region point (point)))
! 	(forward-line 1)))))
! ;;; end of jtexinfo patch
! 
! 
! 
! ;;; jtexinfo patch by S. Tomura 89-Dec-6
! ;(defun texinfo-print-index (file indexelts)
! ;  (while indexelts
! ;    (if (stringp (car (car indexelts)))
! ;	(insert "* " (car (car indexelts))
! ;		": " (if file (concat "(" file ")") "")
! ;		(nth 1 (car indexelts)) ".\n")
! ;      ;; index entries from @include'd file
! ;      (texinfo-print-index (nth 1 (car indexelts))
! ;			   (nth 2 (car indexelts))))
! ;    (setq indexelts (cdr indexelts))))
! ;
  (defun texinfo-print-index (file indexelts)
    (while indexelts
!     (cond((stringp (nth 0 (car indexelts)))
! 	  (insert (nth 0 (car indexelts)) "\0") ;;; sort key
! 	  (insert "* " (nth 0 (car indexelts))
! 		  ": " (if file (concat "(" file ")") "")
! 		  (nth 1 (car indexelts)) ".\n"))
! 	 ((consp (nth 0 (car indexelts)))
! 	  (insert (cdr (nth 0 (car indexelts))) "\0") ;;; sort key
! 	  (insert "* " (car (nth 0 (car indexelts)))
! 		  ": " (if file (concat "(" file ")") "")
! 		  (nth 1 (car indexelts)) ".\n"))
! 	 (t
! 	  ;; index entries from @include'd file
! 	  (texinfo-print-index (nth 1 (car indexelts))
! 			       (nth 2 (car indexelts)))))
      (setq indexelts (cdr indexelts))))
+ ;;; end of jtexinfo patch
  
  
  ;;;; Lisp Definitions
***************
*** 909,915 ****
      ;; Delete extra newline inserted after previous header line.
      (if (not first-p)
  	(delete-char -1))
!     (insert "* " type ": " (car args))
      (let ((args (cdr args)))
        (while args
  	(insert " "
--- 973,983 ----
      ;; Delete extra newline inserted after previous header line.
      (if (not first-p)
  	(delete-char -1))
!     ;; patch by M.Nishikimi 89-Dec-14
!     ;; original line is
!     ;; (insert "* " type ": " (car args))
!     ;; and new line is
!     (insert "## " type ": " (car args))
      (let ((args (cdr args)))
        (while args
  	(insert " "
diff -arcN emacs-18.55/lisp/wnn-client.el nemacs-3.3.2/lisp/wnn-client.el
*** emacs-18.55/lisp/wnn-client.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/wnn-client.el	Wed Jun  6 03:17:14 1990
***************
*** 0 ****
--- 1,1199 ----
+ ;; Wnn3 server interface for Egg
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;;
+ ;;; Nemacs - Wnn V3 server interface in elisp
+ ;;;
+ 
+ (provide 'wnn-client)
+ 
+ ;;;
+ ;;;  Wnn deamon command constants
+ ;;;
+ 
+ (defconst JD_OPEN_IN    9  "ÊÑ´¹") ;;; V3.0
+ (defconst JD_OPEN       1  "ÍøÍÑ¼ÔÅÐÏ¿")
+ (defconst JD_CLOSE      2  "ÍøÍÑ¼Ôºï½ü")
+ (defconst JD_BEGIN      3  "ÊÑ´¹³«»Ï")
+ (defconst JD_END        4  "ÉÑÅÙ¹¹¿·")
+ ;;;
+ (defconst JD_NEXT       17 "¼¡¸õÊä") ;;; 0x11
+ (defconst JD_RECONV     18 "ºÆÊÑ´¹¡ÊÊ¸»úÎóÊÑ¹¹¡Ë") ;;; 0x12
+ (defconst JD_TANCONV    19 "ºÆÊÑ´¹¡ÊÊ¸Àá¿­½Ì¡Ë") ;;; 0x13
+ ;;;
+ (defconst JD_UDP        33 "") ;;; 0x21
+ (defconst JD_UDCHG      34 "ÍøÍÑ¼Ô¼­½ñÊÑ¹¹") ;;; 0x22
+ (defconst JD_FREQSV     35 "¼­½ñÂàÈò") ;;; 0x23
+ (defconst JD_DICADD     36 "¼­½ñÄÉ²Ã") ;;; 0x24
+ (defconst JD_DICDEL     37 "¼­½ñºï½ü") ;;; 0x25
+ (defconst JD_DICINFO    38 "¼­½ñ¾ðÊó") ;;; 0x26
+ (defconst JD_DICSTAT    39 "") ;;; 0x27 V3.0
+ 
+ (defconst JD_WDEL       49 "Ã±¸ìºï½ü") ;;; 0x31
+ (defconst JD_WSCH       50 "Ã±¸ì¸¡º÷") ;;; 0x32
+ (defconst JD_WREG       51 "Ã±¸ìÅÐÏ¿") ;;; 0x33
+ (defconst JD_WHDEL      52 "") ;;; 0x34
+ 
+ (defconst JD_SETEVF     65 "ÊÑ´¹Êý¼°ÊÑ¹¹") ;;; 0x41
+ (defconst JD_GETEVF     66 "ÊÑ´¹Êý¼°¾ðÊó") ;;; 0x42
+ 
+ (defconst JD_MKDIR      81 "") ;;;  0x51 V3.0
+ (defconst JD_ACCESS     82 "") ;;;  0x52 V3.0
+ (defconst JD_WHO        83 "ÍøÍÑ¼Ô°ìÍ÷") ;;;  0x53 V3.0
+ (defconst JD_VERSION    84 "") ;;;  0x54 V3.0
+ 
+ 
+ (defvar wnn-server-buffer nil  "Buffer associated with Wnn server process.")
+ 
+ (defvar wnn-server-process nil  "Wnn Kana Kanji hankan process.")
+ 
+ (defvar wnn-command-tail-position nil)
+ (defvar wnn-command-buffer nil)
+ 
+ (defvar wnn-result-buffer nil)
+ (defvar wnn-henkan-string nil)
+ (defvar wnn-bunsetu-suu   nil)
+ 
+ (defvar wnn-return-code nil)
+ (defvar wnn-error-code nil)
+ 
+ ;;;
+ ;;;  Put data into buffer 
+ ;;;
+ 
+ (defun wnn-put-4byte (integer)
+   (insert (if (<= 0 integer) 0 255)
+ 	  (logand 255 (lsh integer -16))
+ 	  (logand 255 (lsh integer -8))
+ 	  (logand 255 integer)))
+ 
+ (defun wnn-put-string (str)
+   (insert str 0))
+ 
+ (defun wnn-put-string* (str)
+   (let ((size (length str))
+ 	(i 0))
+     (while (< i size)
+       (if (<= 128 (aref str i))
+ 	(progn (insert (aref str i) (aref str (1+ i)))
+ 	       (setq i (+ i 2)))
+ 	(progn (insert 0 (aref str i))
+ 	       (setq i (1+ i))))))
+   (insert 0 0))
+ 
+ (defun wnn-put-bit-position  (pos)
+   (if (< pos  24) (wnn-put-4byte (lsh 1 pos))
+     (insert (lsh 1 (- pos 24)) 0 0 0)))
+ 
+ ;;;
+ ;;; Get data from buffer
+ ;;;
+ 
+ (defun wnn-get-4byte ()
+ 
+   (let ((c 0) (point (point)))
+     ;;;(goto-char (point-min))
+     (while (< (point-max) (+ point 4))
+       (accept-process-output)
+       (if (= c 10) (error "Count exceed."))
+       (setq c (1+ c)))
+     (goto-char point))
+ 
+   (let ((point (point)))
+     (if (not (or (and (= (char-after point) 0)
+ 		      (< (char-after (+ point 1)) 128))
+ 		 (and (= (char-after point) 255)
+ 		      (<= 128 (char-after (+ point 1))))))
+ 	(error "wnn-get-4byte: integer range overflow."))
+     (prog1
+ 	(logior 
+ 	 (lsh (char-after point)       24)
+ 	 (lsh (char-after (+ point 1)) 16)
+ 	 (lsh (char-after (+ point 2))  8)
+ 	 (lsh (char-after (+ point 3))  0))
+       (goto-char (+ (point) 4)))))
+ 
+ (defun wnn-peek-4byte ()
+ 
+   (let ((c 0) (point (point)))
+     ;;;(goto-char (point-min))
+     (while (< (point-max) (+ point 4))
+       (accept-process-output)
+       (if (= c 10) (error "Count exceed."))
+       (setq c (1+ c)))
+     (goto-char point))
+ 
+   (let ((point (point)))
+     (if (not (or (and (= (char-after point) 0)
+ 		      (< (char-after (+ point 1)) 128))
+ 		 (and (= (char-after point) 255)
+ 		      (<= 128 (char-after (+ point 1))))))
+ 	(error "wnn-get-4byte: integer range overflow."))
+     (prog1
+ 	(logior 
+ 	 (lsh (char-after point)       24)
+ 	 (lsh (char-after (+ point 1)) 16)
+ 	 (lsh (char-after (+ point 2))  8)
+ 	 (lsh (char-after (+ point 3))  0)))))
+ 
+ 
+ (defun wnn-get-bit-positions ()
+ 
+   (let ((c 0) (point (point)))
+     ;;;(goto-char (point-min))
+     (while (< (point-max) (+ point 4))
+       (accept-process-output)
+       (if (= c 10) (error "Count exceed."))
+       (setq c (1+ c)))
+     (goto-char point))
+ 
+   (let* ((point (point))
+ 	 (left (+ (lsh (char-after point) 8)
+ 		  (char-after (+ point 1))))
+ 	 (right (+ (lsh (char-after (+ point 2)) 8)
+ 		   (char-after (+ point 3))))
+ 	 (result))
+     (forward-char 4)
+     (let ((i 0))
+       (while (< 0 right)
+ 	(if (zerop (logand 1 right)) nil
+ 	  (setq result (cons i result)))
+ 	(setq right (lsh right -1))
+ 	(setq i (1+ i)))
+       (setq i 16)
+       (while (< 0 left)
+ 	(if (zerop (logand 1 left)) nil
+ 	  (setq result (cons i result)))
+ 	(setq left (lsh left -1))
+ 	(setq i (1+ i))))
+     (if (= (length result) 1)
+ 	(car result)
+       (nreverse result))))
+ 
+ (defun wnn-get-string ()
+   (let ((point (point)))
+     (skip-chars-forward "^\0")
+     (let ((c 0))
+       (while (not (= (following-char) 0))
+ 	(forward-char -1)
+ 	(accept-process-output)
+ 	(if (= c 10) (error "Count exceed"))
+ 	(setq c (1+ c))
+ 	(skip-chars-forward "^\0")))
+     (prog1 
+ 	(buffer-substring point (point))
+       (forward-char 1))))
+ 
+ (defun wnn-get-string* ()
+   (let ((point (point)))
+     (let ((c 0))
+       (while (not (search-forward "\0\0" nil t))
+ 	(accept-process-output)
+ 	(goto-char point)
+ 	(if (= c 10) (error "Count exceed"))
+ 	(setq c (1+ c))))
+     (goto-char point)
+     (if (= (following-char) 0) (delete-char 1)
+       (forward-char 1))
+     (while (< 0 (following-char))
+       (forward-char 1)
+       (if (= (following-char) 0) (delete-char 1)
+ 	(forward-char 1)))
+     (prog1 
+ 	(buffer-substring point (point))
+       (forward-char 1))))
+ 
+ ;;;
+ ;;; Wnn Server Command Primitives
+ ;;;
+ 
+ (defun wnn-command-start (command)
+   (set-buffer wnn-command-buffer)
+   (goto-char (point-min))
+   (if (not (= (point-max) (+ wnn-command-tail-position 1024)))
+       (error "wnn command start error"))
+   (delete-region (point-min) wnn-command-tail-position)
+   (wnn-put-4byte command))
+ 
+ (defun wnn-command-reset ()
+   (save-excursion
+     (progn  
+       ;;; for Nemacs 3.0 and later
+       (if (fboundp 'set-process-kanji-code)
+ 	  (set-process-kanji-code wnn-server-process 0))
+       (set-buffer wnn-command-buffer)
+       (setq kanji-flag nil)
+       (setq kanji-fileio-code 0)   ;;; for Nemacs 2.1
+       (buffer-flush-undo wnn-command-buffer)
+       (erase-buffer)
+       (setq wnn-command-tail-position (point-min))
+       (let ((max 1024) (i 0))
+ 	(while (< i max)
+ 	  (insert 0)
+ 	  (setq i (1+ i)))))))
+ 
+ (defun wnn-command-end ()
+   (set-buffer wnn-server-buffer)
+   (erase-buffer)
+   (set-buffer wnn-command-buffer)
+   (setq wnn-command-tail-position (point))
+   (process-send-region wnn-server-process (point-min)
+ 	       (+ (point-min) (lsh (1+ (lsh (- (point) (point-min)) -10)) 10)))
+   )
+ 
+ ;;;
+ ;;; Wnn Server Reply primitives
+ ;;;
+ 
+ (defun wnn-get-result ()
+   (set-buffer wnn-server-buffer)
+   (condition-case ()
+       (accept-process-output wnn-server-process)
+     (error nil))
+   (goto-char (point-min)))
+ 
+ (defun wnn-get-return-code ()
+   (setq wnn-return-code (wnn-get-4byte))
+   (setq wnn-error-code  (if (= wnn-return-code -1)
+ 			    (wnn-error-symbol (wnn-get-4byte))
+ 			  nil))
+   (if wnn-error-code nil
+     wnn-return-code))
+ 
+ ;;;
+ ;;; Wnn Server Interface:  wnn-server-open
+ ;;;
+ 
+ (defvar *wnn-server-max-kana-string-length* 1000)
+ (defvar *wnn-server-max-bunsetu-suu* 1000)
+ 
+ (defvar *wnn-service-name* "wnn")
+ 
+ (defun wnn-server-open (server-host-name login-name)
+   (if (wnn-server-active-p) t
+     (let ((kana_len  *wnn-server-max-kana-string-length*)
+ 	  (klist_len *wnn-server-max-bunsetu-suu*)
+ 	  (jserver_name 
+ 	   (if (or (null  server-host-name)
+ 		   (equal server-host-name "")
+ 		   (equal server-host-name "unix"))
+ 	       (system-name)
+ 	     server-host-name))
+ 	  (user_name
+ 	   (if (or (null login-name) (equal login-name ""))
+ 	       (user-login-name)
+ 	     login-name))
+ 	  (host_name (system-name)))
+       (setq wnn-server-process 
+ 	    (condition-case var
+ 		(open-network-stream "Wnn V3" " [Wnn V3 Output Buffer] "
+ 				     jserver_name *wnn-service-name* )
+ 	      (error 
+ 	        (cond((string-match "Unknown host" (car (cdr var)))
+ 		      (setq wnn-error-code (list ':WNN_UNKNOWN_HOST
+ 						 jserver_name)))
+ 		     ((string-match "Unknown service" (car (cdr var)))
+ 		      (setq wnn-error-code (list ':WNN_UNKNOWN_SERVICE
+ 						 *wnn-service-name*)))
+ 		     (t ;;; "Host ... not respoding"
+ 		      (setq wnn-error-code ':WNN_SOCK_OPEN_FAIL)))
+ 		     nil)))
+       (if (null wnn-server-process) nil
+ 	(setq wnn-server-buffer (get-buffer " [Wnn V3 Output Buffer] "))
+ 	(setq wnn-command-buffer (get-buffer-create " [Wnn V3 Command Buffer] "))
+ 	(setq wnn-result-buffer (get-buffer-create " [Wnn V3 Result Buffer] "))
+ 
+ 	(save-excursion 
+ 	  ;;; for Nemacs 3.0 
+ 	  (if (fboundp 'set-process-kanji-code)
+ 	      (set-process-kanji-code wnn-server-process 0))
+ 	  (progn
+ 	    (set-buffer wnn-server-buffer)
+ 	    (setq kanji-flag nil)
+ 	    ;;; for Nemacs 2.1
+ 	    (setq kanji-fileio-code 0) 
+ 	    (buffer-flush-undo wnn-server-buffer)
+ 	    )
+ 	  (progn
+ 	    (set-buffer wnn-result-buffer)
+ 	    (setq kanji-flag nil)
+ 	    ;;; for Nemacs 2.1 
+ 	    (setq kanji-fileio-code 0)
+ 	    (buffer-flush-undo wnn-result-buffer))
+ 	  (progn  
+ 	    (set-buffer wnn-command-buffer)
+ 	    (setq kanji-flag nil)
+ 	    ;;; for Nemacs 2.1
+ 	    (setq kanji-fileio-code 0)
+ 	    (buffer-flush-undo wnn-command-buffer)
+ 	    (erase-buffer)
+ 	    (setq wnn-command-tail-position (point-min))
+ 	    (let ((max 1024) (i 0))
+ 	      (while (< i max)
+ 		(insert 0)
+ 		(setq i (1+ i)))))
+ 	  (wnn-command-start JD_OPEN_IN)
+ 	  (wnn-put-4byte kana_len)
+ 	  (wnn-put-4byte klist_len)
+ 	  (wnn-put-string user_name)
+ 	  (wnn-put-string host_name)
+ 	  (wnn-command-end)
+ 	  (wnn-get-result)
+ 	  (wnn-get-return-code))))))
+ 
+ (defun wnn-server-active-p ()
+   (and wnn-server-process
+        (eq (process-status wnn-server-process) 'open)))
+ 
+ (defun wnn-connection-error ()
+   (setq wnn-error-code ':wnn-no-connection)
+   (setq wnn-return-code -1)
+   nil)
+ 
+ (defun wnn-zero-arg-command (op)
+   (if (wnn-server-active-p)
+       (save-excursion
+ 	(wnn-command-start op)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code))
+     (wnn-connection-error)))
+ 
+ (defun wnn-server-close ()
+   (wnn-zero-arg-command JD_CLOSE))
+ 
+ (or (fboundp 'si:kill-emacs)
+     (fset 'si:kill-emacs (symbol-function 'kill-emacs)))
+ 
+ (defun kill-emacs (&optional arg)
+   (interactive "P")
+   (if (wnn-server-active-p)
+       (progn
+ 	(wnn-server-dict-save)
+ 	(message "Wnn¤ÎÉÑÅÙ¾ðÊó¡¦¼­½ñ¾ðÊó¤òÂàÈò¤·¤Þ¤·¤¿¡£") (sit-for 0)
+ 	(wnn-server-close)))
+   (si:kill-emacs arg))
+ 
+ (or (fboundp 'si:do-auto-save)
+     (fset 'si:do-auto-save (symbol-function 'do-auto-save)))
+ 
+ (defvar *wnn-do-auto-save-dict* nil)
+ 
+ (defun do-auto-save (&optional nomsg)
+   (interactive)
+   (if (and *wnn-do-auto-save-dict*
+ 	   (wnn-server-dict-save))
+       (progn
+ 	(wnn-serve-dict-save)
+ 	(message "Wnn¤ÎÉÑÅÙ¾ðÊó¡¦¼­½ñ¾ðÊó¤òÂàÈò¤·¤Þ¤·¤¿¡£")
+ 	(sit-for 1)))
+   (si:do-auto-save nomsg))
+ 
+ ;;; Wnn Result Buffer's layout:
+ ;;;
+ ;;; { length:4  kana 0 kouhoSuu:4 kouhoNo:4 
+ ;;;   {jihoNo:4 serialNo:4 jirituGo 0 fuzokuGo 0 } ...
+ ;;; }
+ ;;;   0 0 0 0
+ 
+ (defun wnn-skip-length ()
+   (goto-char (+ (point) 4)))
+ 
+ (defun wnn-skip-4byte ()
+   (goto-char (+ (point) 4)))
+ 
+ (defun wnn-skip-yomi ()
+   (skip-chars-forward "^\0") (forward-char 1))
+ 
+ (defun wnn-skip-kouho ()
+   (goto-char (+ (point) 8))
+   (skip-chars-forward "^\0") (forward-char 1)
+   (skip-chars-forward "^\0") (forward-char 1)
+   )
+ 
+ (defun wnn-forward-char (n)
+   (let ((i 1))
+     (while (<= i n)
+       (if (<= 128 (following-char))
+ 	  (forward-char 2)
+ 	(forward-char 1))
+       (setq i (1+ i)))))
+ 
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-henkan-begin (henkan-string)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(setq wnn-henkan-string henkan-string)
+ 	(set-buffer wnn-result-buffer)
+ 	(erase-buffer)
+ 	(setq wnn-bunsetu-suu 0)
+ 	(goto-char (point-min))
+ 	(wnn-command-start JD_BEGIN)
+ 	(wnn-put-string* henkan-string)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-henkan-recieve)))))
+ 
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-henkan-quit () t)
+ 
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-henkan-end (bunsetu-no)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(let (length jisho-no serial-no  kouho-no p0)
+ 	  (wnn-command-start JD_END)
+ 	  (set-buffer wnn-result-buffer)
+ 	  (goto-char (point-min))
+ 	  (let ((max (if (and (integerp bunsetu-no)
+ 			      (<= 0 bunsetu-no)
+ 			      (<= bunsetu-no wnn-bunsetu-suu))
+ 			 bunsetu-no
+ 		       wnn-bunsetu-suu))
+ 		(i 0))
+ 	    (while (< i max)
+ 	      (setq length (wnn-get-4byte))
+ 	      (setq p0 (point))
+ 	      (wnn-skip-yomi)
+ 	      (wnn-skip-4byte) ;;; kouho suu
+ 	      (setq kouho-no (wnn-get-4byte))
+ 	      (let ((j 0))
+ 		(while (< j kouho-no)
+ 		  (wnn-skip-kouho) 
+ 		  (setq j (1+ j))))
+ 	      (setq jisho-no (wnn-get-4byte))
+ 	      (setq serial-no (wnn-get-4byte))
+ 	      (goto-char (+ p0 length))
+ 	      (set-buffer wnn-command-buffer)
+ 	      (insert 0 )
+ 	      (wnn-put-4byte jisho-no)
+ 	      (wnn-put-4byte serial-no)
+ 	      (set-buffer wnn-result-buffer)
+ 	      (setq i (1+ i)))))
+ 	(set-buffer wnn-command-buffer)
+ 	(insert 255)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun wnn-result-goto-bunsetu (bunsetu-no)
+     (goto-char (point-min))
+     (let (length (i 0))
+       (while (< i bunsetu-no)
+ 	(setq length (wnn-get-4byte))
+ 	(goto-char (+ (point) length))
+ 	(setq i (1+ i)))))
+ 	      
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-henkan-kakutei (bunsetu-no jikouho-no)
+   (cond((not (wnn-server-active-p)) (wnn-connection-error))
+        ((or (< bunsetu-no 0) (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil)
+        (t 
+ 	(let ((inhibit-quit t))
+ 	  (save-excursion
+ 	    (set-buffer wnn-result-buffer)
+ 	    (let (kouho-suu)
+ 	      (wnn-result-goto-bunsetu bunsetu-no)
+ 	      (wnn-skip-length)
+ 	      (wnn-skip-yomi)
+ 	      (setq kouho-suu (wnn-get-4byte))
+ 	      (if (or (< jikouho-no 0) (<= kouho-suu jikouho-no)) nil
+ 		(delete-char 4) (wnn-put-4byte jikouho-no)
+ 		t)))))))
+ 
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-henkan-next (bunsetu-no)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(let (p0 p1 kouho-suu length yomi0 yomi1)
+ 	  (set-buffer wnn-result-buffer)
+ 	  (wnn-result-goto-bunsetu bunsetu-no)
+ 	  (setq length (wnn-get-4byte))
+ 	  (setq p0 (point))
+ 	  (setq p1 (+ p0 length))
+ 	  (setq yomi0 (point))
+ 	  (wnn-skip-yomi)
+ 	  (setq yomi1 (point))
+ 	  (setq kouho-suu (wnn-peek-4byte))
+ 	  (cond((< 1 kouho-suu) t)
+ 	       (t
+ 		(wnn-command-start JD_NEXT)
+ 		(wnn-put-4byte bunsetu-no)
+ 		(wnn-command-end)
+ 		(wnn-get-result)
+ 		(wnn-get-return-code)
+ 		(if (= wnn-return-code -1) wnn-return-code
+ 		  (let (jl jisho-no serial-no kanji)
+ 		    (set-buffer wnn-result-buffer)
+ 		    (delete-region (point) p1)
+ 		    (wnn-put-4byte wnn-return-code)
+ 		    (wnn-put-4byte 0) ;;; current jikouho number
+ 		    (set-buffer wnn-server-buffer)
+ 		    (while (not (= (setq jl (wnn-get-4byte)) -1))
+ 		      (setq jisho-no (wnn-get-4byte)
+ 			    serial-no (wnn-get-4byte)
+ 			    kanji  (wnn-get-string*))
+ 		      (set-buffer wnn-result-buffer)
+ 		      (wnn-put-4byte jisho-no)
+ 		      (wnn-put-4byte serial-no)
+ 		      (insert kanji 0)
+ 		      (let ((p1 (point)) fuzoku)
+ 			(goto-char yomi0)
+ 			(wnn-forward-char jl)
+ 			(setq fuzoku (point))
+ 			(goto-char p1)
+ 			(insert-buffer-substring wnn-result-buffer fuzoku yomi1))
+ 		      (set-buffer wnn-server-buffer))
+ 		    (set-buffer wnn-result-buffer)
+ 		    (setq length (- (point) p0))
+ 		    (goto-char p0) (delete-char -4)
+ 		    (wnn-put-4byte length))
+ 		  t))))))))
+ 
+ (defun jd_reconv (bunsetu-no new-kana)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (if (= bunsetu-no 0) (jd_begin kana)
+       (let ((inhibit-quit t))
+ 	(save-excursion
+ 	  (wnn-command-start JD_RECONV)
+ 	  (wnn-put-4byte bunsetu-no)
+ 	  (wnn-put-string* new-kana)
+ 	  (wnn-command-end)
+ 	  (wnn-get-result)
+ 	  (wnn-henkan-recieve bunsetu-no))))))
+ 
+ ;;;
+ ;;; entry function
+ ;;;
+ (defun wnn-server-bunsetu-henkou (bunsetu-no bunsetu-length)
+   (cond((not (wnn-server-active-p)) (wnn-connection-error))
+        ((or (< bunsetu-no 0) (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil)
+        (t
+ 	(let ((inhibit-quit t))
+ 	  (save-excursion
+ 	    (set-buffer wnn-result-buffer)
+ 	    (wnn-result-goto-bunsetu bunsetu-no)
+ 	    (wnn-command-start JD_TANCONV)
+ 	    (wnn-put-4byte bunsetu-no)
+ 	    (wnn-put-4byte bunsetu-length)
+ 	    (wnn-command-end)
+ 	    (wnn-get-result)
+ 	    (setq wnn-bunsetu-suu bunsetu-no)
+ 	    (wnn-henkan-recieve))))))
+ 
+ (defun wnn-henkan-recieve ()
+   (wnn-get-return-code)
+   (if (= wnn-return-code -1) nil
+     (let (p0 p1 length s-ichi jl fl jisho-no serial-no kanji fuzokugo)
+       (setq wnn-bunsetu-suu (+ wnn-bunsetu-suu wnn-return-code))
+       (if (zerop wnn-return-code) nil
+ 	(setq s-ichi (wnn-peek-4byte))
+ 	(set-buffer wnn-result-buffer)
+ 	(delete-region (point) (point-max))
+ 	(setq p0 (point))
+ 	(insert wnn-henkan-string 0 0 0 0)
+ 	(goto-char p0)
+ 	(wnn-forward-char s-ichi)
+ 	(delete-region p0 (point))
+ 	(set-buffer wnn-server-buffer)
+ 	(while (not (= (setq s-ichi (wnn-get-4byte)) -1))
+ 	  (setq jl (wnn-get-4byte)
+ 		fl (wnn-get-4byte)
+ 		jisho-no (wnn-get-4byte)
+ 		serial-no (wnn-get-4byte)
+ 		kanji (wnn-get-string*))
+ 	  (set-buffer wnn-result-buffer)
+ 	  (setq p0 (point))
+ 	  (wnn-forward-char jl)
+ 	  (setq p1 (point))
+ 	  (wnn-forward-char fl)
+ 	  (setq fuzokugo (buffer-substring p1 (point)))
+ 	  (insert 0) ;;; yomi
+ 	  (wnn-put-4byte 1)	;;; kouho suu
+ 	  (wnn-put-4byte 0)	;;; current kouho number
+ 	  (wnn-put-4byte jisho-no) 
+ 	  (wnn-put-4byte serial-no)
+ 	  (insert kanji 0 fuzokugo 0)
+ 	  (setq length (- (point) p0))
+ 	  (goto-char p0) (wnn-put-4byte length)
+ 	  (goto-char (+ (point) length))
+ 	  (set-buffer wnn-server-buffer)))))
+   wnn-return-code)
+ 
+ (defun wnn-bunsetu-suu () wnn-bunsetu-suu)
+ 
+ (defun wnn-bunsetu-kanji (bunsetu-no &optional buffer)
+   (let ((savebuffer (current-buffer)))
+     (unwind-protect 
+ 	(progn
+ 	  (set-buffer wnn-result-buffer)
+ 	  (if (or (< bunsetu-no 0)
+ 		  (<= wnn-bunsetu-suu bunsetu-no))
+ 	      nil
+ 	    (wnn-result-goto-bunsetu bunsetu-no)
+ 	    (wnn-skip-length)
+ 	    (wnn-skip-yomi)
+ 
+ 	    (wnn-skip-4byte) ;;; kouho-suu
+ 	    (let ((i 0) (max (wnn-get-4byte)))
+ 	      (while (< i max)
+ 		(wnn-skip-kouho)
+ 		(setq i (1+ i))))
+ 	    
+ 	    (let ( p1 p2 p3 )
+ 	      (goto-char (+ (point) 4 4))
+ 	      (setq p1 (point))
+ 	      (skip-chars-forward "^\0") (setq p2 (point))
+ 	      (forward-char 1) (skip-chars-forward "^\0")
+ 	      (setq p3 (point))
+ 	      (if (null buffer)
+ 		  (concat (buffer-substring p1 p2) (buffer-substring (1+ p2) p3))
+ 		(set-buffer buffer)
+ 		(insert-buffer-substring wnn-result-buffer p1 p2)
+ 		(insert-buffer-substring wnn-result-buffer (1+ p2) p3)
+ 		nil))))
+       (set-buffer savebuffer))))
+ 
+ (defun wnn-bunsetu-kanji-length (bunsetu-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (< bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (wnn-skip-yomi)
+ 
+       (wnn-skip-4byte) ;;; kouho-suu
+       (let ((i 0) (max (wnn-get-4byte)))
+ 	(while (< i max)
+ 	  (wnn-skip-kouho)
+ 	  (setq i (1+ i))))
+ 
+       (let ( p1 p3 )
+ 	(goto-char (+ (point) 4 4))
+ 	(setq p1 (point))
+ 	(skip-chars-forward "^\0")(forward-char 1) (skip-chars-forward "^\0")
+ 	(setq p3 (point))
+ 	(- p3 p1 1)))))
+ 
+ (defun wnn-bunsetu-yomi-moji-suu (bunsetu-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (let ((c 0) ch)
+ 	(while (not (zerop (setq ch (following-char))))
+ 	  (if (<= 128 ch) (forward-char 2)
+ 	    (forward-char 1))
+ 	  (setq c (1+ c)))
+ 	c))))
+ 
+ (defun wnn-bunsetu-yomi (bunsetu-no &optional buffer)
+   (let ((savebuff (current-buffer)))
+     (unwind-protect 
+ 	(progn
+ 	  (set-buffer wnn-result-buffer)
+ 	  (if (or (<  bunsetu-no 0)
+ 		  (<= wnn-bunsetu-suu bunsetu-no))
+ 	      nil
+ 	    (wnn-result-goto-bunsetu bunsetu-no)
+ 	    (wnn-skip-length)
+ 	    (let (p1 p2 )
+ 	      (setq p1 (point))
+ 	      (skip-chars-forward "^\0")
+ 	      (if (null buffer ) (buffer-substring p1 (point))
+ 		(setq p2 (point))
+ 		(set-buffer buffer)
+ 		(insert-buffer-substring wnn-result-buffer p1 p2)
+ 		t))))
+       (set-buffer savebuff))))
+ 
+ (defun wnn-bunsetu-yomi-equal (bunsetu-no yomi)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+       (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (looking-at yomi))))
+ 
+ (defun wnn-bunsetu-kouho-suu (bunsetu-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (wnn-skip-yomi)
+       (wnn-get-4byte))))
+ 
+ (defun wnn-bunsetu-kouho-list (bunsetu-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (wnn-skip-yomi)
+       (let ((max (wnn-get-4byte)) (i 0) (result nil) p0 p1)
+ 	(wnn-skip-4byte) ;;; current kouhou number
+ 	(while (< i max)
+ 	  (wnn-skip-4byte) (wnn-skip-4byte)
+ 	  (setq p0 (point))
+ 	  (skip-chars-forward "^\0")
+ 	  (setq p1 (point))
+ 	  (forward-char 1)
+ 	  (skip-chars-forward "^\0")
+ 	  (setq result
+ 		(cons (concat (buffer-substring p0 p1)
+ 			      (buffer-substring (1+ p1) (point)))
+ 		      result))
+ 	  (forward-char 1)
+ 	  (setq i (1+ i)))
+ 	(nreverse result)))))
+ 
+ (defun wnn-bunsetu-kouho-number (bunsetu-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length)
+       (wnn-skip-yomi)
+       (wnn-skip-4byte)
+       (wnn-get-4byte)))
+   )
+ 
+ (defun wnn-bunsetu-kouho-kanji (bunsetu-no kouho-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (wnn-result-goto-bunsetu bunsetu-no)
+       (wnn-skip-length) (wnn-skip-yomi)
+       (let ((kouho-suu (wnn-get-4byte)))
+ 	(if (or (< kouho-no 0) (<= kouho-suu kouho-no))
+ 	    nil
+ 	  (wnn-skip-4byte) ;;; current kouho number
+ 	  (let ((i 0))
+ 	    (while (< i kouho-no)
+ 	      (wnn-skip-kouho)
+ 	      (setq i (1+ i))))
+ 	  (let ( p1 p2 p3 )
+ 	    (goto-char (+ (point) 4 4))
+ 	    (setq p1 (point))
+ 	    (skip-chars-forward "^\0") (setq p2 (point))
+ 	    (forward-char 1) (skip-chars-forward "^\0")
+ 	    (setq p3 (point))
+ 	    (concat (buffer-substring p1 p2) (buffer-substring (1+ p2) p3))))))))
+ 
+ (defun wnn-bunsetu-kouho-inspect (bunsetu-no kouho-no)
+   (save-excursion
+     (set-buffer wnn-result-buffer)
+     (if (or (<  bunsetu-no 0)
+ 	    (<= wnn-bunsetu-suu bunsetu-no))
+ 	nil
+       (let  (p0  p1 kouho-suu jiritugo fuzokugo yomi jishono serial )
+ 	(wnn-result-goto-bunsetu bunsetu-no)
+ 	(wnn-skip-length) 
+ 	(setq p0 (point))
+ 	(wnn-skip-yomi)
+ 	(setq p1 (1- (point)))
+ 	(setq kouho-suu (wnn-get-4byte))
+ 	(if (or (< kouho-no 0) (<= kouho-suu kouho-no))
+ 	    nil
+ 	  (wnn-skip-4byte) ;;; current kouho number
+ 	  (let ((i 0))
+ 	    (while (< i kouho-no)
+ 	      (wnn-skip-kouho)
+ 	      (setq i (1+ i))))
+ 	  (setq jishono (wnn-get-4byte))
+ 	  (setq serial  (wnn-get-4byte))
+ 	  (setq jiritugo (wnn-get-string))
+ 	  (setq fuzokugo (wnn-get-string))
+ 	  (goto-char p1)
+ 	  (if (not (equal "" fuzokugo)) (search-backward fuzokugo p0))
+ 	  (setq yomi (buffer-substring p0 (point)))
+ 	  (list jiritugo fuzokugo yomi jishono serial))))))
+ 
+ (defun wnn-simple-command (op arg)
+   (if (wnn-server-active-p)
+       (let ((inhibit-quit t))
+ 	(save-excursion
+ 	  (wnn-command-start op)
+ 	  (wnn-put-4byte arg)
+ 	  (wnn-command-end)
+ 	  (wnn-get-result)
+ 	  (wnn-get-return-code)))
+     (wnn-connection-error)))
+ 
+ (defun jd_udp (dict-no)
+   (wnn-simpale-command JD_UDP dict-no))
+ 
+ (defun wnn-server-set-current-dict (dict-no)
+   (wnn-simple-command JD_UDCHG dict-no))
+ 
+ (defun wnn-server-dict-save ()
+   (wnn-zero-arg-command JD_FREQSV))
+ 
+ (defun wnn-server-use-dict (dict-file-name hindo-file-name priority readonly-flag)
+   (if (not (wnn-server-active-p))(wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_DICADD)
+ 	(wnn-put-string dict-file-name)
+ 	(wnn-put-string hindo-file-name)
+ 	(wnn-put-4byte priority)
+ 	(wnn-put-4byte (if readonly-flag 1 0))
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun jd_dicdel (dict-no)
+   (wnn-simple-command JD_DICDEL dict-no))
+ 
+ (defun jd_dicinfo ()
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_DICINFO)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(let ((dic-no 0) (result nil))
+ 	  (while (not (= (setq dic-no (wnn-get-4byte)) -1))
+ 	    (setq result
+ 		  (cons (list
+ 			 dic-no
+ 			 (wnn-get-4byte) ;;; ttl_hindo
+ 			 (wnn-get-4byte) ;;; dic_type
+ 			 (wnn-get-4byte) ;;; udp
+ 			 (wnn-get-4byte) ;;; dic_size
+ 			 (wnn-get-4byte) ;;; prioritry
+ 			 (wnn-get-4byte) ;;; readonly no:0 yes:1
+ 			 (wnn-get-string)	;;; dic_name
+ 			 (wnn-get-string)	;;; hindo_name
+ 			 )
+ 			result))
+ 	    (nreverse result)))))))
+ 
+ (defun jd_dicstat (file-name)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_DICSTAT)
+ 	(wnn-put-string file-name)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun wnn-server-dict-delete (serial-no yomi)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_WDEL)
+ 	(wnn-put-4byte serial-no)
+ 	(wnn-put-string* yomi)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun wnn-server-dict-info (yomi)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_WSCH)
+ 	(wnn-put-string* yomi)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)
+ 	(if (= wnn-return-code -1) nil
+ 	  (let ((hindo 0) bunpo jisho serial kanji (result nil))
+ 	    (while (not (= (setq hindo (wnn-get-4byte)) -1))
+ 	      (setq bunpo (wnn-get-bit-positions))
+ 	      (setq jisho (wnn-get-4byte))
+ 	      (setq serial (wnn-get-4byte))
+ 	      (setq kanji (wnn-get-string*))
+ 	      (setq result 
+ 		    (if (integerp bunpo)
+ 			(cons (list kanji bunpo hindo jisho serial)
+ 			      result)
+ 		      (append 
+ 		       (mapcar (function (lambda (x)
+ 					   (list kanji x hindo jisho serial)))
+ 			       bunpo)
+ 		       result))))
+ 	    (nreverse result)))))))
+ 
+ (defun wnn-server-dict-add (kanji yomi bunpo)
+   (if (not (wnn-server-active-p))(wnn-connection-error) 
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_WREG)
+ 	(wnn-put-bit-position bunpo)
+ 	(wnn-put-4byte 129) ;;; 0x81 hindo always 1 with imatukattayo bit.(jl.c)
+ 	(wnn-put-string* kanji)
+ 	(wnn-put-string* yomi)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun jd_whdel (serial-no yomi bunpo)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_WHDEL)
+ 	(wnn-put-4byte serial-no)
+ 	(wnn-put-string* yomi)
+ 	(wnn-put-4byte bunpo)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun jd_setevf (bunsetu-su p1 p2 p3 p4 p5)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+        (wnn-command-start JD_SETEVF)
+        (wnn-put-4byte bunsetu-su)
+        (wnn-put-4byte p1)
+        (wnn-put-4byte p2)
+        (wnn-put-4byte p3)
+        (wnn-put-4byte p4)
+        (wnn-put-4byte p5)
+        (wnn-put-4byte 0);; p6
+        (wnn-put-4byte 0);; p7
+        (wnn-put-4byte 0);; p8
+        (wnn-put-4byte 0);; p9
+        (wnn-put-4byte 0);; p10
+        (wnn-command-end)
+        (wnn-get-result)
+        (wnn-get-return-code)))))
+ 
+ (defun jd_getevf ()
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_GETEVF)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(prog1
+ 	    (list
+ 	     (wnn-get-4byte) ;;; bunsetu-su
+ 	     (wnn-get-4byte) ;;; p1
+ 	     (wnn-get-4byte) ;;; p2
+ 	     (wnn-get-4byte) ;;; p3
+ 	     (wnn-get-4byte) ;;; p4
+ 	     (wnn-get-4byte) ;;; p5
+ 	     )
+ 	  (wnn-get-4byte);; p6
+ 	  (wnn-get-4byte);; p7
+ 	  (wnn-get-4byte);; p8
+ 	  (wnn-get-4byte);; p9
+ 	  (wnn-get-4byte);; p10
+ 	  )))))
+ 
+ (defun wnn-server-make-directory (dir-name)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_MKDIR)
+ 	(wnn-put-string dir-name)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(wnn-get-return-code)))))
+ 
+ (defun wnn-server-file-access (file-name access-mode)
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_ACCESS)
+ 	(wnn-put-4byte access-mode)
+ 	(wnn-put-string file-name)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(setq wnn-return-code (wnn-get-4byte))
+ 	(setq wnn-error-code nil)
+ 	wnn-return-code))))
+ 
+ (defun jd_who ()
+   (if (not (wnn-server-active-p)) (wnn-connection-error)
+     (let ((inhibit-quit t))
+       (save-excursion
+ 	(wnn-command-start JD_WHO)
+ 	(wnn-command-end)
+ 	(wnn-get-result)
+ 	(let ( number user host result)
+ 	  (while (not (= (setq number (wnn-get-4byte)) -1))
+ 	    (setq result
+ 		  (cons 
+ 		   (list number (wnn-get-string) (wnn-get-string))
+ 		   result)))
+ 	  (nreverse result))))))
+ 
+ (defun jd_version ()
+   (wnn-zero-arg-command JD_VERSION))
+ 
+ (defconst *wnn-error-alist*
+   '(
+     (1 :WNN_NO_EXIST     
+        "¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£")
+     (2 :WNN_NOT_USERDICT
+        "Àµ¤·¤¤¥æ¡¼¥¶¡¼¼­½ñ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£")
+     (3 :WNN_MALLOC_ERR
+        "¥á¥â¥êalloc¤Ç¼ºÇÔ¤·¤Þ¤·¤¿¡£")
+     (4 :WNN_NOT_SYSTEM
+        "Àµ¤·¤¤¥·¥¹¥Æ¥à¼­½ñ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£")
+     (5 :WNN_NOT_A_DICT
+        "Àµ¤·¤¤¼­½ñ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£")
+     (6 :WNN_FILE_NO_SPECIFIED
+        "¥Õ¥¡¥¤¥ëÌ¾¤¬»ØÄê¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£")
+     (8 :WNN_HINDO_FILE_NOT_SPECIFIED
+        "¥·¥¹¥Æ¥à¼­½ñ¤ËÂÐ¤·¤Æ¡¢ÉÑÅÙ¥Õ¥¡¥¤¥ë¤Î»ØÄê¤¬¤¢¤ê¤Þ¤»¤ó¡£")
+     (9 :WNN_JISHOTABLE_FULL
+        "¼­½ñ¥Æ¡¼¥Ö¥ë¤¬°ìÇÕ¤Ç¤¹¡£")
+     (10 :WNN_HINDO_NO_MATCH
+ 	"ÉÑÅÙ¥Õ¥¡¥¤¥ë¤¬¡¢»ØÄê¤µ¤ì¤¿¼­½ñ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£")
+     (11 :WNN_PARAMR
+ 	"¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£")
+     (12 :WNN_HJT_FULL
+ 	"¥°¥í¡¼¥Ð¥ëÉÑÅÙ¥Æ¡¼¥Ö¥ë¤¬°ìÇÕ¤Ç¤¹¡£")
+     (13 :WNN_JT_FULL
+ 	"¥°¥í¡¼¥Ð¥ë¼­½ñ¥Æ¡¼¥Ö¥ë¤¬°ìÇÕ¤Ç¤¹¡£")
+     (15 :WNN_PARAMW
+ 	"¥Õ¥¡¥¤¥ë¤ËÂÐ¤¹¤ë½ñ¤­¹þ¤ß¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£")
+     (16 :WNN_OPENF_ERR
+ 	"¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¡£")
+ ;;; ¼­½ñºï½ü´Ø·¸¤Î¥¨¥é¡¼ 
+     (20 :WNN_DICT_NOT_USED
+ 	"¤½¤ÎÈÖ¹æ¤Î¼­½ñ¤Ï¡¢»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£")
+ ;;; ¥æ¡¼¥¶¡¼¼­½ñÊÑ¹¹´Ø·¸¤Î¥¨¥é¡¼ 
+ ;;;
+ ;;;WNN_DICT_NOT_USED
+ ;;;
+     (21 :WNN_NOT_A_USERDICT
+ 	"»ØÄê¤µ¤ì¤Æ¼­½ñ¤Ï¡¢¥æ¡¼¥¶¡¼¼­½ñ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£")
+     (22 :WNN_READONLY
+ 	"¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¼­½ñ¤Ï¡¢¥«¥ì¥ó¥È¥æ¡¼¥¶¡¼¼­½ñ¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó¡£")
+ ;;; ¼­½ñ¥»¡¼¥Ö´Ø·¸¤Î¥¨¥é¡¼ 
+ ;;;
+ ;;; WNN_PARAMW
+ ;;; WNN_OPENF_ERR
+ ;;; ÊÑ´¹»þ¤Î¥¨¥é¡¼ 
+ ;;; jishobiki.c 
+     (30 :WNN_JMT_FULL
+ 	"¼­½ñ¥Æ¡¼¥Ö¥ë¤¬¤¢¤Õ¤ì¤Æ¤¤¤Þ¤¹¡£ ")
+ 
+     (31 :WNN_LONG_MOJIRETSU
+ 	"ÊÑ´¹¤·¤è¤¦¤È¤¹¤ëÊ¸»úÎó¤¬Ä¹²á¤®¤Þ¤¹¡£")
+     (32 :WNN_WKAREA_FULL
+ 	"ÉÕÂ°¸ì²òÀÏÎÎ°è¤¬ÉÔÂ­¤·¤Æ¤¤¤Þ¤¹¡£")
+     (33 :WNN_KAREA_FULL
+ 	"²òÀÏÎÎ°è¤¬ÉÔÂ­¤·¤Æ¤¤¤Þ¤¹¡£")
+ 
+ ;;; Ã±¸ìÅÐÏ¿»þ¤Î¥¨¥é¡¼ 
+     (40 :WNN_YOMI_LONG
+ 	"ÆÉ¤ß¤¬Ä¹²á¤®¤Þ¤¹¡£")
+     (41 :WNN_KANJI_LONG
+ 	"´Á»ú¤¬Ä¹²á¤®¤Þ¤¹¡£")
+     (42 :WNN_BAD_YOMI
+ 	"ÆÉ¤ß¤ËÉÔÅ¬Åö¤ÊÊ¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£")
+     (43  :WNN_NO_YOMI
+ 	 "ÆÉ¤ß¤ÎÄ¹¤µ¤¬0¤Ç¤¹¡£")
+     (44 :WNN_NO_CURRENT
+ 	"¥«¥ì¥ó¥È¼­½ñ¤¬Â¸ºß¤·¤Þ¤»¤ó¡£")
+     (45 :WNN_RDONLY
+ 	"¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¼­½ñ¤ËÅÐÏ¿¤·¤è¤¦¤È¤·¤Þ¤·¤¿¡£")
+ 
+ ;;; Ã±¸ìºï½ü»þ¡¢ÉÊ»ìºï½ü»þ¤Î¥¨¥é¡¼ 
+ ;;;
+ ;;;WNN_NO_CURRENT
+ ;;;WNN_RDONLY
+ ;;;
+     (50 :WNN_WORD_NO_EXIST
+ 	"»ØÄê¤µ¤ì¤¿Ã±¸ì¤¬Â¸ºß¤·¤Þ¤»¤ó¡£")
+ 
+ ;;; ¼¡¸õÊä»þ¤Î¥¨¥é¡¼ 
+     (55 :WNN_JIKOUHO_TOO_MANY
+ 	"¼¡¸õÊä¤Î¥¨¥ó¥È¥ê¡¼¤Î¸Ä¿ô¤¬¤ª¤ª²á¤®¤Þ¤¹¡£")
+ 
+ ;;; ½é´ü²½¤Î»þ¤Î¥¨¥é¡¼ 
+     (60 :WNN_MALLOC_INITIALIZE
+ 	"¥á¥â¥êalloc¤Ç¼ºÇÔ¤·¤Þ¤·¤¿¡£")
+ 
+ ;;; Ã±¸ì¸¡º÷»þ¤Î¥¨¥é¡¼ 
+ ;;;
+ ;;;WNN_BAD_YOMI
+ ;;;WNN_JMT_FULL
+ ;;;
+ 
+     (68 :WNN_SOME_ERROR
+ 	" ²¿¤«¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿¡£")
+     (69 :WNN_SONOTA
+ 	"¥Ð¥°¤¬È¯À¸¤·¤Æ¤¤¤ëÌÏÍÍ¤Ç¤¹¡£")
+     (70 :WNN_JSERVER_DEAD
+ 	"¥µ¡¼¥Ð¤¬»à¤ó¤Ç¤¤¤Þ¤¹¡£")
+     (71 :WNN_ALLOC_FAIL
+ 	"jd_begin¤Çalloc¤Ë¼ºÇÔ")
+     (72 :WNN_SOCK_OPEN_FAIL
+ 	"jd_begin¤Çsocket¤Îopen¤Ë¼ºÇÔ")
+ 
+     (73 :WNN_RCV_SPACE_OVER
+ 	"¼õ¿®¥¹¥Ú¡¼¥¹¤«¤é¥Ç¡¼¥¿¤¬¤Ï¤ß¤À¤·¤¿")
+     (74  :WNN_MINUS_MOJIRETSU
+ 	 "Ê¸»úÎó¤ÎÄ¹¤µ¤Î»ØÄê¤¬Éé¤Ç¤¢¤ë")
+ ;;;	V3.0	
+     (80 :WNN_MKDIR_FAIL
+ 	" ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤êÂ»¤Ê¤Ã¤¿ ")
+     (81 :WNN_BAD_USER
+ 	" ¥æ¡¼¥¶Ì¾¤¬¤Ê¤¤ ")
+     (82 :WNN_BAD_HOST
+ 	" ¥Û¥¹¥ÈÌ¾¤¬¤Ê¤¤ ")
+     ))
+ 
+ (defun wnn-error-symbol (code)
+   (let ((pair (assoc code *wnn-error-alist*)))
+     (if (null pair)
+ 	(list ':wnn-unknown-error-code code)
+       (car (cdr pair)))))
diff -arcN emacs-18.55/lisp/wnn-egg.el nemacs-3.3.2/lisp/wnn-egg.el
*** emacs-18.55/lisp/wnn-egg.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/wnn-egg.el	Wed Jun  6 03:17:17 1990
***************
*** 0 ****
--- 1,4142 ----
+ ;; Japanese Character Input Package for Egg
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;;==================================================================
+ ;;;
+ ;;; ÆüËÜ¸ì´Ä¶­ ¡Ö¤¿¤Þ¤´¡× Âè£²ÈÇ    
+ ;;;
+ ;;;=================================================================== 
+ 
+ ;;;
+ ;;;¡Ö¤¿¤Þ¤´¡×¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤«¤Ê´Á»úÊÑ´¹¥µ¡¼¥Ð¤òÍøÍÑ¤·¡¢Nemacs ¤Ç¤ÎÆüËÜ
+ ;;; ¸ì´Ä¶­¤òÄó¶¡¤¹¤ë¥·¥¹¥Æ¥à¤Ç¤¹¡£¡Ö¤¿¤Þ¤´¡×Âè£²ÈÇ¤Ç¤Ï Wnn V3 ¤ª¤è¤Ó 
+ ;;; Wnn V4 ¤Î¤«¤Ê´Á»úÊÑ´¹¥µ¡¼¥Ð¤ò»ÈÍÑ¤·¤Æ¤¤¤Þ¤¹¡£
+ ;;;
+ 
+ ;;; Ì¾Á°¤Ï ¡ÖÂô»³/ÂÔ¤¿¤»¤Æ/¤´¤á¤ó¤Ê¤µ¤¤¡×¤Î³ÆÊ¸Àá¤ÎÀèÆ¬£±²»¤Ç¤¢¤ë¡Ö¤¿¡×
+ ;;; ¤È¡Ö¤Þ¡×¤È¡Ö¤´¡×¤ò¼è¤Ã¤Æ¡¢¡Ö¤¿¤Þ¤´¡×¤È¸À¤¤¤Þ¤¹¡£ÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê
+ ;;; ¤Î¶Ó¸« Èþµ®»Ò»á¤ÎÌ¿Ì¾¤Ë°Í¤ë¤â¤Î¤Ç¤¹¡£egg ¤Ï¡Ö¤¿¤Þ¤´¡×¤Î±ÑÌõ¤Ç¤¹¡£
+ 
+ ;;;
+ ;;; »ÈÍÑË¡¤Ï etc/NEMACS.egg ¤ò¸«¤Æ²¼¤µ¤¤¡£
+ ;;;
+ 
+ ;;;
+ ;;; ¡Ö¤¿¤Þ¤´¡×¤Ë´Ø¤¹¤ëÄó°Æ¡¢Ãî¾ðÊó¤Ï tomura@etl.junet ¤Ë¤ªÁ÷¤ê²¼¤µ¤¤¡£
+ ;;;
+ 
+ ;;;
+ ;;;                      ¢© 305 °ñ¾ë¸©¤Ä¤¯¤Ð»ÔÇß±à1-1-4
+ ;;;                      ÄÌ»º¾Ê¹©¶Èµ»½Ñ±¡ÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê
+ ;;;                      ¾ðÊó¥¢¡¼¥­¥Æ¥¯¥Á¥ãÉô¸À¸ì¥·¥¹¥Æ¥à¸¦µæ¼¼
+ ;;;
+ ;;;                                                     ¸ÍÂ¼ Å¯  
+ 
+ ;;;
+ ;;; (Ãí°Õ)¤³¤Î¥Õ¥¡¥¤¥ë¤Ï´Á»ú¥³¡¼¥É¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ 
+ ;;;
+ ;;;   Âè£²ÈÇ  £±£¹£¸£¹Ç¯£¶·î  £±Æü
+ ;;;   Âè£±ÈÇ  £±£¹£¸£¸Ç¯£··î£±£´Æü
+ ;;;   »ÃÄêÈÇ  £±£¹£¸£¸Ç¯£¶·î£²£´Æü
+ 
+ ;;;=================================================================== 
+ ;;;
+ ;;; (eval-when (load) (require 'wnn-client))
+ ;;;
+ (provide 'wnn-egg)
+ (if (not (or (boundp 'WNN3) 
+ 	     (boundp 'WNN4V3)))
+     (require 'wnn-client))
+ 
+ (defvar egg-version "2.24" "Version number of this version of Egg. ")
+ ;;; Last modified date: Wed Feb  7 11:22:23 1990
+ 
+ ;;;;  ½¤Àµ¥á¥â¡¨¡¨
+ 
+ ;;;;  Mar-4-90 by K.Handa
+ ;;;;  New variable alphabet-mode-indicator, transparent-mode-indicator,
+ ;;;;  and henkan-mode-indicator.
+ 
+ ;;;;  Feb-27-90 by enami@ptgd.sony.co.jp
+ ;;;;  menu:select-from-menu ¤Ç£²²Õ½ê¤¢¤ë ((and (<= ?0 ch) (<= ch ?9)...
+ ;;;;  ¤Î°ìÊý¤ò ((and (<= ?0 ch) (<= ch ?9)... ¤Ë½¤Àµ
+ 
+ ;;;;  Feb-07-89
+ ;;;;  bunsetu-length-henko ¤ÎÃæ¤Î egg:*attribute-off ¤Î°ÌÃÖ¤ò KKCP ¤ò¸Æ¤ÖÁ°¤Ë
+ ;;;;  ÊÑ¹¹¤¹¤ë¡£ wnn-client ¤Ç¤Ï KKCP ¤ò¸Æ¤Ö¤ÈÊ¸Àá¾ðÊó¤¬ÊÑ²½¤¹¤ë¡£
+ 
+ ;;;;  Feb-01-89
+ ;;;;  henkan-goto-kouho ¤Î egg:set-bunsetu-attribute ¤Î°ú¿ô
+ ;;;;  ¤Î½çÈÖ¤¬´Ö°ã¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ¤·¤¿¡£¡Êtoshi@isvax.isl.melco.co.jp
+ ;;;;  (Toshiyuki Ito)¤Î»ØÅ¦¤Ë¤è¤ë¡£¡Ë
+ 
+ ;;;;  Dec-25-89
+ ;;;;  meta-flag t ¤Î¾ì¹ç¤ÎÂÐ±þ¤òºÆ½¤Àµ¤¹¤ë¡£
+ ;;;;  overwrite-mode ¤Ç¤Î undo ¤ò²þÁ±¤¹¤ë¡£
+ 
+ ;;;;  Dec-21-89
+ ;;;;  bug fixed by enami@ptdg.sony.co.jp
+ ;;;;     (fboundp 'minibuffer-window-selected )
+ ;;;;  -->(boundp  'minibuffer-window-selected )
+ ;;;;  self-insert-after-hook ¤ò buffer local ¤Ë¤·¤ÆÄêµÁ¤ò kanji.el ¤Ø°ÜÆ°¡£
+ 
+ ;;;;  Dec-15-89
+ ;;;;  kill-all-local-variables ¤ÎÄêµÁ¤ò kanji.el ¤Ø°ÜÆ°¤¹¤ë¡£
+ 
+ ;;;;  Dec-14-89
+ ;;;;  meta-flag t ¤Î¾ì¹ç¤Î½èÍý¤ò½¤Àµ¤¹¤ë
+ ;;;;  overwrite-mode ¤ËÂÐ±þ¤¹¤ë¡£
+ 
+ ;;;;  Dec-12-89
+ ;;;;  egg:*henkan-open*, egg:*henkan-close* ¤òÄÉ²Ã¡£
+ ;;;;  egg:*henkan-attribute* ¤òÄÉ²Ã
+ ;;;;  set-egg-fence-mode-format, set-egg-henkan-mode-format ¤òÄÉ²Ã
+ 
+ ;;;;  Dec-12-89
+ ;;;;  *bunpo-code* ¤Ë 1000: "¤½¤ÎÂ¾" ¤òÄÉ²Ã
+ 
+ ;;;;  Dec-11-89
+ ;;;;  egg:*fence-attribute* ¤ò¿·Àß
+ ;;;;  egg:*bunsetu-attribute* ¤ò¿·Àß
+ 
+ ;;;;  Dec-11-89
+ ;;;;  attribute-*-region ¤òÍøÍÑ¤¹¤ë¤è¤¦¤ËÊÑ¹¹¤¹¤ë¡£
+ ;;;;  menu:make-selection-list ¤Ï width ¤¬¾®¤µ¤¤»þ¤Ëloop ¤¹¤ë¡£¤³¤ì¤ò½¤Àµ¤·¤¿¡£
+ 
+ ;;;;  Dec-10-89
+ ;;;;  set-marker-type ¤òÍøÍÑ¤¹¤ëÊý¼°¤ËÊÑ¹¹¡£
+ 
+ ;;;;  Dec-07-89
+ ;;;;  egg:search-path ¤òÄÉ²Ã¡£
+ ;;;;  egg-default-startup-file ¤òÄÉ²Ã¤¹¤ë¡£
+ 
+ ;;;;  Nov-22-89
+ ;;;;  egg-startup-file ¤òÄÉ²Ã¤¹¤ë¡£
+ ;;;;  eggrc-search-path ¤ò egg-startup-file-search-path ¤ËÌ¾Á°ÊÑ¹¹¡£
+ 
+ ;;;;  Nov-21-89
+ ;;;;  Nemacs 3.2 ¤ËÂÐ±þ¤¹¤ë¡£kanji-load* ¤òÇÑ»ß¤¹¤ë¡£
+ ;;;;  wnnfns.c ¤ËÂÐ±þ¤·¤¿½¤Àµ¤ò²Ã¤¨¤ë¡£
+ ;;;;  *Notification* buffer ¤ò¸«¤¨¤Ê¤¯¤¹¤ë¡£
+ 
+ ;;;;  Oct-2-89
+ ;;;;  *zenkaku-alist* ¤Î Ê¸»úÄê¿ô¤Î½ñ¤­Êý¤¬´Ö°ã¤Ã¤Æ¤¤¤¿¡£
+ 
+ ;;;;  Sep-19-89
+ ;;;;  toggle-egg-mode ¤Î½¤Àµ¡Êkanji-flag¡Ë
+ ;;;;  egg-self-insert-command ¤Î½¤Àµ ¡Êkanji-flag¡Ë
+ 
+ ;;;;  Sep-18-89
+ ;;;;  self-insert-after-hook ¤ÎÄÉ²Ã
+ 
+ ;;;;  Sep-15-89
+ ;;;;  EGG:open-wnn bug fix
+ ;;;;  provide wnn-egg feature
+ 
+ ;;;;  Sep-13-89
+ ;;;;  henkan-kakutei-before-point ¤ò½¤Àµ¤·¤¿¡£
+ ;;;;  enter-fence-mode ¤ÎÄÉ²Ã¡£
+ ;;;;  egg-exit-hook ¤ÎÄÉ²Ã¡£
+ ;;;;  henkan-region-internal ¤ÎÄÉ²Ã¡£henkan-region¤Ï point ¤òmark ¤¹¤ë¡£
+ ;;;;  eggrc-search-path ¤ÎÄÉ²Ã¡£
+ 
+ ;;;;  Aug-30-89
+ ;;;;  kanji-kanji-1st ¤òÄûÀµ¤·¤¿¡£
+ 
+ ;;;;  May-30-89
+ ;;;;  EGG:open-wnn ¤Ï get-wnn-host-name ¤¬ nil ¤Î¾ì¹ç¡¢(system-name) ¤ò»ÈÍÑ¤¹¤ë¡£
+ 
+ ;;;;  May-9-89
+ ;;;;  KKCP:make-directory added.
+ ;;;;  KKCP:file-access bug fixed.
+ ;;;;  set-default-usr-dic-directory modified.
+ 
+ ;;;;  Mar-16-89
+ ;;;;  minibuffer-window-selected ¤ò»È¤Ã¤Æ minibuffer ¤Î egg-modeÉ½¼¨µ¡Ç½ÄÉ²Ã
+ 
+ ;;;;  Mar-13-89
+ ;;;;   mode-line-format changed. 
+ 
+ ;;;;  Feb-27-89
+ ;;;;  henkan-saishou-bunsetu added
+ ;;;;  henkan-saichou-bunsetu added
+ ;;;;  M-<    henkan-saishou-bunsetu
+ ;;;;  M->    henkan-saichou-bunsetu
+ 
+ ;;;;  Feb-14-89
+ ;;;;   C-h in henkan mode: help-command added
+ 
+ ;;;;  Feb-7-89
+ ;;;;   egg-insert-after-hook is added.
+ 
+ ;;;;   M-h   fence-hiragana
+ ;;;;   M-k   fence-katakana
+ ;;;;   M->   fence-zenkaku
+ ;;;;   M-<   fence-hankaku
+ 
+ ;;;;  Dec-19-88 henkan-hiragana, henkan-katakara¤òÄÉ²Ã¡§
+ ;;;;    M-h     henkan-hiragana
+ ;;;;    M-k     henkan-katakana
+ 
+ ;;;;  Ver. 2.00 kana2kanji.c ¤ò»È¤ï¤º wnn-client.el ¤ò»ÈÍÑ¤¹¤ë¤è¤¦¤ËÊÑ¹¹¡£
+ ;;;;            ´ØÏ¢¤·¤Æ°ìÉô´Ø¿ô¤òÊÑ¹¹
+ 
+ ;;;;  Dec-2-88 special-symbol-input ¤òÄÉ²Ã¡¨
+ ;;;;    C-^   special-symbol-input
+ 
+ ;;;;  Nov-18-88 henkan-mode-map °ìÉôÊÑ¹¹¡¨
+ ;;;;    M-i  henkan-inspect-bunsetu
+ ;;;;    M-s  henkan-select-kouho
+ ;;;;    C-g  henkan-quit
+ 
+ ;;;;  Nov-18-88 jserver-henkan-kakutei ¤Î»ÅÍÍÊÑ¹¹¤ËÈ¼¤¤¡¢kakutei ¤Î¥³¡¼
+ ;;;;  ¥É¤òÊÑ¹¹¤·¤¿¡£
+ 
+ ;;;;  Nov-17-88 kakutei-before-point ¤Ç point °Ê¹ß¤Î´Ö°ã¤Ã¤¿ÉôÊ¬¤ÎÊÑ´¹
+ ;;;;  ¤¬ÉÑÅÙ¾ðÊó¤ËÅÐÏ¿¤µ¤ì¤Ê¤¤¤è¤¦¤Ë½¤Àµ¤·¤¿¡£¤³¤ì¤Ë¤ÏKKCC:henkan-end 
+ ;;;;  ¤Î°ìÉô»ÅÍÍ¤ÈÂÐ±þ¤¹¤ëkana2kanji.c¤âÊÑ¹¹¤·¤¿¡£
+ 
+ ;;;;  Nov-17-88 henkan-inspect-bunsetu ¤òÄÉ²Ã¤·¤¿¡£
+ 
+ ;;;;  Nov-17-88 ¿·¤·¤¤ kana2kanji.c ¤ËÊÑ¹¹¤¹¤ë¡£
+ 
+ ;;;;  Sep-28-88 defrule¤¬ÃÍ¤È¤·¤Ænil¤òÊÖ¤¹¤è¤¦¤ËÊÑ¹¹¤·¤¿¡£
+ 
+ ;;;;  Aug-25-88 ÊÑ´¹³Ø½¬¤òÀµ¤·¤¯¹Ô¤Ê¤¦¤è¤¦¤ËÊÑ¹¹¤·¤¿¡£
+ ;;;;  KKCP:henkan-kakutei¤ÏKKCP:jikouho-list¤ò¸Æ¤ó¤ÀÊ¸Àá¤ËÂÐ¤·¤Æ¤Î¤ßÅ¬
+ ;;;;  ÍÑ¤Ç¤­¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Î·ë²Ì¤ÏÊÝ¾Ú¤µ¤ì¤Ê¤¤¡£¤³¤Î¾ò·ï¤òËþ¤¿¤¹¤è¤¦
+ ;;;;  ¤ËKKCP:jikouho-list¤ò¸Æ¤ó¤Ç¤¤¤Ê¤¤Ê¸Àá¤ËÂÐ¤·¤Æ¤Ï
+ ;;;;  KKCP:henkan-kakutei¤ò¸Æ¤Ð¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+ 
+ ;;;;  Aug-25-88 egg:do-auto-fill ¤ò½¤Àµ¤·¡¢Ê£¿ô¹Ô¤Ë¤ï¤¿¤ëauto-fill¤òÀµ
+ ;;;;  ¤·¤¯¹Ô¤Ê¤¦¤è¤¦¤Ë½¤Àµ¤·¤¿¡£
+ 
+ ;;;;  Aug-25-88 menu command¤Ë\C-l: redraw ¤òÄÉ²Ã¤·¤¿¡£
+ 
+ ;;;;  Aug-25-88 toroku-region¤ÇÅÐÏ¿¤¹¤ëÊ¸»úÎó¤«¤éno graphic character¤ò
+ ;;;;  ¼«Æ°Åª¤Ë½ü¤¯¤³¤È¤Ë¤·¤¿¡£
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Version control routine
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (and (equal (user-full-name) "Satoru Tomura")
+      (defun egg-version-update (arg)
+        (interactive "P")
+        (if (equal (buffer-name (current-buffer)) "wnn-egg.el")
+ 	   (save-excursion
+ 	    (goto-char (point-min))
+ 	    (re-search-forward "(defvar egg-version \"[0-9]+\\.")
+ 	    (let ((point (point))
+ 		  (minor))
+ 	      (search-forward "\"")
+ 	      (backward-char 1)
+ 	      (setq minor (string-to-int (buffer-substring point (point))))
+ 	      (delete-region point (point))
+ 	      (if (<= minor 8) (insert "0"))
+ 	      (insert  (int-to-string (1+ minor)))
+ 	      (search-forward "Egg last modified date: ")
+ 	      (kill-line)
+ 	      (insert (current-time-string)))
+ 	    (save-buffer)
+ 	    (if arg (byte-compile-file (buffer-file-name)))
+ 	 )))
+      )
+ ;;;
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Utilities
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;; kill-all-local-variables ¤«¤éÊÝ¸î¤¹¤ë local variables ¤ò»ØÄê¤Ç¤­¤ë
+ ;;; ¤è¤¦¤ËÊÑ¹¹¤¹¤ë¡£
+ 
+ (defconst *protected-local-variables* 
+   (append 
+    '(egg:*input-mode* 
+      egg:*mode-on*
+      egg:*current-mode*
+      egg:*current-map*
+      mode-line-egg-mode)
+    *protected-local-variables*)
+   "*List of buffer local variables protected from ""kill-all-local-variables"" ."
+   )
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; 16¿ÊÉ½¸½¤ÎJIS ´Á»ú¥³¡¼¥É¤ò minibuffer ¤«¤éÆÉ¤ß¹þ¤à
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;;
+ ;;; User entry:  jis-code-input
+ ;;;
+ 
+ (defun jis-code-input ()
+   (interactive)
+   (insert-jis-code-from-minibuffer "JIS ´Á»ú¥³¡¼¥É(16¿Ê¿ôÉ½¸½): "))
+ 
+ (defun insert-jis-code-from-minibuffer (prompt)
+   (let ((str (read-from-minibuffer prompt)) val)
+     (while (null (setq val (read-jis-code-from-string str)))
+       (beep)
+       (setq str (read-from-minibuffer prompt str)))
+     (insert (logior (car val) 128)  (logior (cdr val) 128))))
+ 
+ (defun hexadigit-value (ch)
+   (cond((and (<= ?0 ch) (<= ch ?9))
+ 	(- ch ?0))
+        ((and (<= ?a ch) (<= ch ?f))
+ 	(+ (- ch ?a) 10))
+        ((and (<= ?A ch) (<= ch ?F))
+ 	(+ (- ch ?A) 10))))
+ 
+ (defun read-jis-code-from-string (str)
+   (if (and (= (length str) 4)
+ 	   (<= 2 (hexadigit-value (aref str 0)))
+ 	   (hexadigit-value (aref str 1))
+ 	   (<= 2 (hexadigit-value (aref str 2)))
+ 	   (hexadigit-value (aref str 3)))
+   (cons (+ (* 16 (hexadigit-value (aref str 0)))
+ 	       (hexadigit-value (aref str 1)))
+ 	(+ (* 16 (hexadigit-value (aref str 2)))
+ 	   (hexadigit-value (aref str 3))))))
+ 
+ ;;;----------------------------------------------------------------------	
+ ;;;
+ ;;; ¡Ö¤¿¤Þ¤´¡× Notification System
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defconst *notification-window* " *Notification* ")
+ 
+ ;;;(defmacro notify (str &rest args)
+ ;;;  (list 'notify-internal
+ ;;;	(cons 'format (cons str args))))
+ 
+ (defun notify (str &rest args)
+   (notify-internal (apply 'format (cons str args))))
+ 
+ (defun notify-internal (message &optional noerase)
+   (save-excursion
+     (let ((notify-buff (get-buffer-create *notification-window*)))
+       (set-buffer notify-buff)
+       (goto-char (point-max))
+       (setq buffer-read-only nil)
+       (insert (substring (current-time-string) 4 19) ":: " message ?\n )
+       (setq buffer-read-only t)
+       (bury-buffer notify-buff)
+       (message message)
+       (if noerase nil
+ 	(sleep-for 1) (message "")))))
+ 
+ ;;;(defmacro notify-yes-or-no-p (str &rest args)
+ ;;;  (list 'notify-yes-or-no-p-internal 
+ ;;;	(cons 'format (cons str args))))
+ 
+ (defun notify-yes-or-no-p (str &rest args)
+   (notify-yes-or-no-p-internal (apply 'format (cons str args))))
+ 
+ (defun notify-yes-or-no-p-internal (message)
+   (save-window-excursion
+     (pop-to-buffer *notification-window*)
+     (goto-char (point-max))
+     (setq buffer-read-only nil)
+     (insert (substring (current-time-string) 4 19) ":: " message ?\n )
+     (setq buffer-read-only t)
+     (yes-or-no-p "¤¤¤¤¤Ç¤¹¤«¡©")))
+ 
+ (defun notify-y-or-n-p (str &rest args)
+   (notify-y-or-n-p-internal (apply 'format (cons str args))))
+ 
+ (defun notify-y-or-n-p-internal (message)
+   (save-window-excursion
+     (pop-to-buffer *notification-window*)
+     (goto-char (point-max))
+     (setq buffer-read-only nil)
+     (insert (substring (current-time-string) 4 19) ":: " message ?\n )
+     (setq buffer-read-only t)
+     (y-or-n-p "¤¤¤¤¤Ç¤¹¤«¡©")))
+ 
+ (defun select-notification ()
+   (interactive)
+   (pop-to-buffer *notification-window*)
+   (setq buffer-read-only t))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; ¡Ö¤¿¤Þ¤´¡× Menu System
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;;
+ ;;;  minibuffer ¤Ë menu ¤òÉ½¼¨¡¦ÁªÂò¤¹¤ë
+ ;;;
+ 
+ ;;;
+ ;;; menu ¤Î»ØÄêÊýË¡¡§
+ ;;;
+ ;;; <menu item> ::= ( menu <prompt string>  <menu-list> )
+ ;;; <menu list> ::= ( ( <string> . <value> ) ... )
+ ;;;
+ 
+ (defvar menu:*select-items* nil)
+ (defvar menu:*select-menus* nil)
+ (defvar menu:*select-item-no* nil)
+ (defvar menu:*select-menu-no* nil)
+ (defvar menu:*select-menu-stack* nil)
+ (defvar menu:*select-start* nil)
+ (defvar menu:*select-positions* nil)
+ 
+ (defun menu:select-from-menu (menu &optional initial position)
+   (let ((previous-window (selected-window))
+ 	(echo-keystrokes 0)
+ 	(inhibit-quit t)
+ 	value)
+     (select-window (minibuffer-window))
+     (delete-region (point-min) (point-max))
+     (insert (nth 1 menu))
+     (let* ((window-width (window-width (selected-window)))
+ 	   (finished nil))
+       (setq menu:*select-menu-stack* nil
+ 	    menu:*select-positions* nil
+ 	    menu:*select-start* (point)
+ 	    menu:*select-menus*
+ 	    (menu:make-selection-list (nth 2 menu)
+ 				     (- window-width  
+ 					(length (nth 1 menu)))))
+       (if (and (numberp initial)
+ 	       (<= 0 initial)
+ 	       (< initial (length (nth 2 menu))))
+ 	  (menu:select-goto-item-position initial)
+ 	(progn (setq menu:*select-item-no* 0)
+ 	       (menu:select-goto-menu 0)))
+       (while (not finished)
+ 	(let ((ch (read-char)))
+ 	  (setq quit-flag nil)
+ 	  (cond
+ 	   ((= ch ?\C-a)
+ 	    (menu:select-goto-item 0))
+ 	   ((= ch ?\C-e)
+ 	    (menu:select-goto-item (1- (length menu:*select-items*))))
+ 	   ((= ch ?\C-f)
+ 	    ;;(menu:select-goto-item (1+ menu:*select-item-no*))
+ 	    (menu:select-next-item)
+ 	    )
+ 	   ((= ch ?\C-b)
+ 	    ;;(menu:select-goto-item (1- menu:*select-item-no*))
+ 	    (menu:select-previous-item)
+ 	    )
+ 	   ((= ch ?\C-n)
+ 	    (menu:select-goto-menu (1+ menu:*select-menu-no*)))
+ 	   ((= ch ?\C-g)
+ 	    (if menu:*select-menu-stack*
+ 		(let ((save (car menu:*select-menu-stack*)))
+ 		  (setq menu:*select-menu-stack* (cdr menu:*select-menu-stack*))
+ 		  (setq menu:select-menu-items (nth 0 save)
+ 			menu:*select-menus*      (nth 1 save)
+ 			menu:*select-item-no*    (nth 2 save)
+ 			menu:*select-menu-no*    (nth 3 save)
+ 			menu                  (nth 4 save))
+ 		  (setq menu:*select-positions*
+ 			(cdr menu:*select-positions*))
+ 		  (delete-region (point-min) (point-max))
+ 		  (insert (nth 1 menu))
+ 		  (setq menu:*select-start* (point))
+ 		  (menu:select-goto-menu menu:*select-menu-no*)
+ 		  (menu:select-goto-item menu:*select-item-no*)
+ 		  )
+ 	      (setq finished t
+ 		    value nil)))
+ 	   ((= ch ?\C-p)
+ 	    (menu:select-goto-menu (1- menu:*select-menu-no*)))
+ 	   ((= ch ?\C-l)  ;;; redraw menu
+ 	    (menu:select-goto-menu menu:*select-menu-no*))
+ 	   ((and (<= ?0 ch) (<= ch ?9)
+ 		 (<= ch (+ ?0 (1- (length menu:*select-items*)))))
+ 	    (menu:select-goto-item (- ch ?0)))
+ 	   ((and (<= ?a ch) (<= ch ?z)
+ 		 (<= ch (+ ?a (1- (length menu:*select-items*)))))
+ 	    (menu:select-goto-item (+ 10 (- ch ?a))))
+ 	   ((and (<= ?A ch) (<= ch ?Z)	; patch by enami@ptgd.sony.co.jp
+ 		 (<= ch (+ ?A (1- (length menu:*select-items*)))))
+ 	    (menu:select-goto-item (+ 10 (- ch ?A))))
+ 	   ((= ch ?\C-m)
+ 	    (setq value (cdr (nth menu:*select-item-no* 
+ 					   menu:*select-items*)))
+ 	    (setq menu:*select-positions* 
+ 		  (cons (menu:select-item-position)
+ 			menu:*select-positions*))
+ 	    (if (and (listp value)
+ 		     (eq (car value) 'menu))
+ 		(progn
+ 		  (setq menu:*select-menu-stack*
+ 			(cons
+ 			 (list menu:*select-items* menu:*select-menus*
+ 			       menu:*select-item-no* menu:*select-menu-no*
+ 			       menu)
+ 			 menu:*select-menu-stack*))
+ 		  (setq menu value)
+ 		  (delete-region (point-min) (point-max))
+ 		  (insert (nth 1 menu))
+ 		  (setq menu:*select-start* (point))
+ 		  (setq menu:*select-menus*
+ 			(menu:make-selection-list (nth 2 menu)
+ 						 (- window-width
+ 						    (length (nth 1 menu)))))
+ 		  (setq menu:*select-item-no* 0)
+ 		  (menu:select-goto-menu 0)
+ 		  (setq value nil)
+ 		  )
+ 	      (setq finished t)))
+ 	   (t (beep))))))
+     (delete-region (point-min) (point-max))
+     (select-window previous-window)
+     (setq menu:*select-positions*
+ 	  (reverse menu:*select-positions*))
+     (if (null value)
+ 	(setq quit-flag t)
+       (if position
+ 	  (cons value menu:*select-positions*)
+ 	value))))
+ 
+ (defun menu:select-item-position ()
+   (let ((p 0) (m 0))
+     (while (< m menu:*select-menu-no*)
+       (setq p (+ p (length (nth m menu:*select-menus*))))
+       (setq m (1+ m)))
+     (+ p menu:*select-item-no*)))
+     
+ (defun menu:select-goto-item-position (pos)
+   (let ((m 0) (i 0) (p 0))
+     (while (<= (+ p (length (nth m menu:*select-menus*))) pos)
+       (setq p (+ p (length (nth m menu:*select-menus*))))
+       (setq m (1+ m)))
+     (setq menu:*select-item-no* (- pos p))
+     (menu:select-goto-menu m)))
+ 
+ (defun menu:select-goto-menu (no)
+   (setq menu:*select-menu-no*
+ 	(check-number-range no 0 (1- (length menu:*select-menus*))))
+   (setq menu:*select-items* (nth menu:*select-menu-no* menu:*select-menus*))
+   (delete-region menu:*select-start* (point-max))
+   (if (<= (length menu:*select-items*) menu:*select-item-no*)
+       (setq menu:*select-item-no* (1- (length menu:*select-items*))))
+   (goto-char menu:*select-start*)
+   (let ((l menu:*select-items*) (i 0))
+     (while l
+       (insert (if (<= i 9) (format "  %d." i)
+ 		(format "  %c." (+ (- i 10) ?a)))
+ 	      (car (car l)))
+       (setq l (cdr l)
+ 	    i (1+ i))))
+   (menu:select-goto-item menu:*select-item-no*))
+ 
+ (defun menu:select-goto-item (no)
+   (setq menu:*select-item-no* 
+ 	(check-number-range no 0
+ 			    (1- (length menu:*select-items*))))
+   (let ((p (+ 2 menu:*select-start*)) (i 0))
+     (while (< i menu:*select-item-no*)
+       (setq p (+ p (length (car (nth i menu:*select-items*))) 4))
+       (setq i (1+ i)))
+     (goto-char p)))
+     
+ (defun menu:select-next-item ()
+   (if (< menu:*select-item-no* (1- (length menu:*select-items*)))
+       (menu:select-goto-item (1+ menu:*select-item-no*))
+     (progn
+       (setq menu:*select-item-no* 0)
+       (menu:select-goto-menu (1+ menu:*select-menu-no*)))))
+ 
+ (defun menu:select-previous-item ()
+   (if (< 0 menu:*select-item-no*)
+       (menu:select-goto-item (1- menu:*select-item-no*))
+     (progn 
+       (setq menu:*select-item-no* 1000)
+       (menu:select-goto-menu (1- menu:*select-menu-no*)))))
+ 
+ (defun menu:make-selection-list (list width)
+   (let ((whole nil) (line nil) (size 0))
+     (while list
+       (if (<= width (+ size 4 (length (car(car list)))))
+ 	  (if line
+ 	      (setq whole (cons (reverse line) whole)
+ 		    line nil
+ 		    size 0)
+ 	    (setq whole (cons (list (car list)) whole)
+ 		  size 0
+ 		  list (cdr list)))
+ 	(setq line (cons (car list) line)
+ 	      size (+ size 4 (length(car (car list))))
+ 	      list (cdr list))))
+     (if line
+ 	(reverse (cons (reverse line) whole))
+       (reverse whole))))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;;  °ì³ç·¿ÊÑ´¹µ¡Ç½
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defvar ascii-char "[\40-\176]")
+ 
+ (defvar ascii-space "[ \t]")
+ (defvar ascii-symbols "[\40-\57\72-\100\133-\140\173-\176]")
+ (defvar ascii-numeric "[\60-\71]")
+ (defvar ascii-English-Upper "[\101-\132]")
+ (defvar ascii-English-Lower "[\141-\172]")
+ 
+ (defvar ascii-alphanumeric "[\60-\71\101-\132\141-\172]")
+ 
+ (defvar kanji-char "\\z")
+ (defvar kanji-space "¡¡")
+ (defvar kanji-symbols "\\cs")
+ (defvar kanji-numeric "[£°-£¹]")
+ (defvar kanji-English-Upper "[£Á-£Ú]")
+ (defvar kanji-English-Lower  "[£á-£ú]")
+ ;;; Bug fixed by Yoshida@CSK on 88-AUG-24
+ (defvar kanji-hiragana "[¤¡-¤ó]")
+ (defvar kanji-katakana "[¥¡-¥ö]")
+ ;;;
+ (defvar kanji-Greek-Upper "[¦¡-¦¸]")
+ (defvar kanji-Greek-Lower "[¦Á-¦Ø]")
+ (defvar kanji-Russian-Upper "[§¡-§Á]")
+ (defvar kanji-Russian-Lower "[§Ñ-§ñ]")
+ (defvar kanji-Kanji-1st-Level  "[°¡-ÏÓ]")
+ (defvar kanji-Kanji-2nd-Level  "[Ð¡-ô¤]")
+ 
+ (defvar kanji-kanji-char "\\(\\ch\\|\\ck\\|\\cc\\)")
+ 
+ (defvar aletter (concat "\\(" ascii-char "\\|" kanji-char "\\)"))
+ 
+ ;;;
+ ;;; ¤Ò¤é¤¬¤ÊÊÑ´¹
+ ;;;
+ 
+ (defun hiragana-region (start end)
+   (interactive "r")
+   (let ((point (point)))
+     (goto-char start)
+     (while (re-search-forward kanji-katakana end end)
+       (let ((ch2 (preceding-char)))
+ 	(delete-char -1)
+ 	(insert ?\244 ch2)))))
+ 
+ (defun hiragana-paragraph ()
+   "hiragana  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (hiragana-region (point) end ))))
+ 
+ (defun hiragana-sentence ()
+   "hiragana  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (hiragana-region (point) end ))))
+ 
+ ;;;
+ ;;; ¥«¥¿¥«¥ÊÊÑ´¹
+ ;;;
+ 
+ (defun katakana-region (start end)
+   (interactive "r")
+   (let ((point (point)))
+     (goto-char start)
+     (while (re-search-forward kanji-hiragana end end)
+       (let ((ch2 (preceding-char)))
+ 	(delete-char -1)
+ 	(insert ?\245 ch2)))))
+ 
+ (defun katakana-paragraph ()
+   "katakana  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (katakana-region (point) end ))))
+ 
+ (defun katakana-sentence ()
+   "katakana  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (katakana-region (point) end ))))
+ 
+ ;;;
+ ;;; È¾³ÑÊÑ´¹
+ ;;; 
+ 
+ (defun hankaku-region (start end)
+   (interactive "r")
+   (save-restriction
+     (narrow-to-region start end)
+     (goto-char (point-min))
+     (while (re-search-forward "\\cs\\|\\ca" (point-max) (point-max))
+       (let ((ch1 (char-after (- (point) 2)))
+ 	    (ch2 (preceding-char)))
+ 	  (cond((= ?\241 ch1)
+ 		(let ((val (cdr(assq ch2 *hankaku-alist*))))
+ 		  (if val (progn
+ 			    (delete-char -1)
+ 			    (insert val)))))
+ 	       ((= ?\243 ch1)
+ 		(delete-char -1)
+ 		(insert (- ch2 ?\200 ))))))))
+ 
+ (defun hankaku-paragraph ()
+   "hankaku  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (hankaku-region (point) end ))))
+ 
+ (defun hankaku-sentence ()
+   "hankaku  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (hankaku-region (point) end ))))
+ 
+ (defun hankaku-word (arg)
+   (interactive "p")
+   (let ((start (point)))
+     (forward-word arg)
+     (hankaku-region start (point))))
+ 
+ (defvar *hankaku-alist*
+   '(( 161 . ?\  ) 
+     ( 170 . ?\! )
+     ( 201 . ?\" )
+     ( 244 . ?\# )
+     ( 240 . ?\$ )
+     ( 243 . ?\% )
+     ( 245 . ?\& )
+     ( 199 . ?\' )
+     ( 202 . ?\( )
+     ( 203 . ?\) )
+     ( 246 . ?\* )
+     ( 220 . ?\+ )
+     ( 164 . ?\, )
+     ( 221 . ?\- )
+     ( 165 . ?\. )
+     ( 191 . ?\/ )
+     ( 167 . ?\: )
+     ( 168 . ?\; )
+     ( 227 . ?\< )
+     ( 225 . ?\= )
+     ( 228 . ?\> )
+     ( 169 . ?\? )
+     ( 247 . ?\@ )
+     ( 206 . ?\[ )
+     ( 239 . ?\\ )
+     ( 207 . ?\] )
+     ( 176 . ?\^ )
+     ( 178 . ?\_ )
+     ( 208 . ?\{ )
+     ( 195 . ?\| )
+     ( 209 . ?\} )
+     ( 177 . ?\~ )
+     ))
+ 
+ ;;;
+ ;;; Á´³ÑÊÑ´¹
+ ;;;
+ 
+ (defun zenkaku-region (start end)
+   (interactive "r")
+   (save-restriction
+     (narrow-to-region start end)
+     (goto-char (point-min))
+     (while (re-search-forward "[ -~]" (point-max) (point-max))
+       (let ((ch (preceding-char)))
+ 	(if (and (<= ?  ch) (<= ch ?~))
+ 	    (progn (delete-char -1)
+ 		   (let ((zen (cdr (assq ch *zenkaku-alist*))))
+ 		     (if zen (insert zen)
+ 		       (insert ?\243 (+ ?\200 ch))))))))))
+ 
+ (defun zenkaku-paragraph ()
+   "zenkaku  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (zenkaku-region (point) end ))))
+ 
+ (defun zenkaku-sentence ()
+   "zenkaku  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (zenkaku-region (point) end ))))
+ 
+ (defun zenkaku-word (arg)
+   (interactive "p")
+   (let ((start (point)))
+     (forward-word arg)
+     (zenkaku-region start (point))))
+ 
+ (defvar *zenkaku-alist*
+   '((?  . "¡¡") 
+     (?! . "¡ª")
+     (?\" . "¡É")
+     (?# . "¡ô")
+     (?$ . "¡ð")
+     (?% . "¡ó")
+     (?& . "¡õ")
+     (?' . "¡Ç")
+     (?( . "¡Ê")
+     (?) . "¡Ë")
+     (?* . "¡ö")
+     (?+ . "¡Ü")
+     (?, . "¡¤")
+     (?- . "¡Ý")
+     (?. . "¡¥")
+     (?/ . "¡¿")
+     (?: . "¡§")
+     (?; . "¡¨")
+     (?< . "¡ã")
+     (?= . "¡á")
+     (?> . "¡ä")
+     (?? . "¡©")
+     (?@ . "¡÷")
+     (?[ . "¡Î")
+     (?\\ . "¡ï")
+     (?] . "¡Ï")
+     (?^ . "¡°")
+     (?_ . "¡²")
+     (?{ . "¡Ð")
+     (?| . "¡Ã")
+     (?} . "¡Ñ")
+     (?~ . "¡±")))
+ 
+ ;;;
+ ;;; ¥í¡¼¥Þ»ú¤«¤ÊÊÑ´¹
+ ;;;
+ 
+ (defun roma-kana-region (start end )
+   (interactive "r")
+   (let ((egg:*current-map* (egg:get-mode-map "roma-kana")))
+     (save-restriction
+       (narrow-to-region start end)
+       (goto-char (point-min))
+       (while (not (eobp))
+ 	(if (null (get-key-action egg:*current-map* (following-char)))
+ 	    (forward-char 1)
+ 	  ;;; ºÇÄ¹¤ÎÊÑ´¹¤ò°ì¤Ä½èÍý¤¹¤ë¡£
+ 	  (let ((current-map egg:*current-map*)
+ 		(ch nil)
+ 		(action nil)
+ 		(output nil)
+ 		(kana-quit-flag nil)
+ 		(point (1- (point)))
+ 		(start (point)))
+ 	    (while (not kana-quit-flag)
+ 	      (setq point (1+ point))
+ 	      (setq ch (char-after point))
+ 	      (setq action (if (null ch) nil 
+ 			     (get-key-action current-map ch)))
+ 	      (cond((null action)
+ 		    (cond(output 
+ 			  (goto-char point)
+ 			  (delete-region start (point))
+ 			  (insert output)
+ 			  (setq kana-quit-flag t))
+ 			 (t (goto-char point)
+ 			    (setq kana-quit-flag t))))
+ 
+ 		   ((null(action-get-output action))
+ 		    (setq current-map (action-get-map action)))
+ 	       
+ 		   ((symbolp (car (action-get-map action))) ;;; top or next
+ 		    (goto-char (1+ point))
+ 		    (delete-region start (point))
+ 		    (insert (action-get-output action))
+ 		    (setq current-map (action-get-map action))
+ 		    (cond((eq (car current-map) 'top)
+ 			  (setq kana-quit-flag t))
+ 			 ((eq (car current-map) 'next)
+ 			  (setq start (point))
+ 			  (insert (nth 1 current-map))
+ 			  (setq point (1- (point)))
+ 			  (if (null(nth 2 current-map))
+ 			      (setcar (nthcdr 2 current-map)
+ 				      (egg:simulate-input 0 (length (nth 1 current-map))
+ 							  (nth 1 current-map)
+ 							  egg:*current-map*)))
+ 			  (setq current-map (nth 2 current-map)))))
+ 
+ 	       ;;; output is non nil and action is active
+ 		   (t
+ 		    (setq output (action-get-output action)
+ 			  current-map (action-get-map action)))))
+ 	    ))))))
+ 
+ (defun roma-kana-paragraph ()
+   "roma-kana  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (roma-kana-region (point) end ))))
+ 
+ (defun roma-kana-sentence ()
+   "roma-kana  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (roma-kana-region (point) end ))))
+ 
+ ;;;
+ ;;; ¥í¡¼¥Þ»ú´Á»úÊÑ´¹
+ ;;;
+ 
+ (defun roma-kanji-region (start end)
+   (interactive "r")
+   (roma-kana-region start end)
+   (save-restriction
+     (narrow-to-region start (point))
+     (goto-char (point-min))
+     (replace-regexp "\\(¡¡\\| \\)" "")
+     (goto-char (point-max)))
+   (henkan-region-internal start (point)))
+ 
+ (defun roma-kanji-paragraph ()
+   "roma-kanji  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (roma-kanji-region (point) end ))))
+ 
+ (defun roma-kanji-sentence ()
+   "roma-kanji  sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (roma-kanji-region (point) end ))))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; ¡Ö¤¿¤Þ¤´¡×ÆþÎÏÊ¸»úÊÑ´¹·Ï
+ ;;; 
+ ;;;----------------------------------------------------------------------
+ 
+ (defun egg:member (elt list)
+   (while (not (or (null list) (equal elt (car list))))
+     (setq list (cdr list)))
+   list)
+ 
+ ;;;
+ ;;; Mode name --> map
+ ;;;
+ 
+ (defvar egg:*mode-alist* nil)
+ 
+ ;;; egg mode name is a string.
+ 
+ (defun egg:get-mode-map (name)
+   (cdr (assoc name egg:*mode-alist*)))
+ 
+ (defun egg:set-mode-map (name map )
+   (let ((place (assoc name egg:*mode-alist*)))
+     (if place (let ((mapplace (cdr place)))
+ 		(setcar mapplace (car map))
+ 		(setcdr mapplace (cdr map)))
+       (progn (setq place (cons name map))
+ 	     (setq egg:*mode-alist* (cons place egg:*mode-alist*))))))
+ 
+ ;;;
+ ;;; egg mode indicators
+ ;;; Mode name --> indicator
+ ;;;
+ 
+ (defvar egg:*mode-indicator* nil)
+ 
+ (defun egg:get-mode-indicator (name)
+   (if (assoc name egg:*mode-indicator*)
+       (cdr (assoc name egg:*mode-indicator*))
+     name))
+ 
+ (defun egg:set-mode-indicator (name indicator)
+   (if (assoc name egg:*mode-indicator*)
+       (setcdr (assoc name egg:*mode-indicator*) indicator)
+     (setq egg:*mode-indicator* (cons (cons name indicator)
+ 				     egg:*mode-indicator*))))
+ 
+ ;;;
+ ;;; egg mode declaration
+ ;;;
+ 
+ (defvar egg:*processing-map* nil)
+ 
+ (defun define-egg-mode (name &optional reset)
+   (if (null(egg:get-mode-map name))
+       (progn 
+ 	(setq egg:*processing-map* (cons nil nil))
+ 	(egg:set-mode-map name egg:*processing-map*)
+ 	)
+     (progn (setq egg:*processing-map* (egg:get-mode-map name))
+ 	   (if reset
+ 	       (progn
+ 		 (setcar egg:*processing-map* nil)
+ 		 (setcdr egg:*processing-map* nil))))))
+ 
+ ;;; 
+ ;;; ÆþÎÏÊ¸»úÊÑ´¹µ¬Â§¥³¥ó¥Ñ¥¤¥é
+ ;;;
+ ;;; ÊÑ´¹µ¬Â§¡Êdefrule¡Ë¤òÍ­¸Â¾õÂÖ¥ª¡¼¥È¥Þ¥È¥ó¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
+ ;;;
+ 
+ (defun egg:collect-symbols(form)
+   (egg:collect-symbol* form nil))
+ 
+ (defun egg:collect-symbol* (form alist)
+   (cond((null form) alist)
+        ((symbolp form)
+ 	(if (egg:member form alist) alist
+ 	  (cons form alist)))
+        ((consp form)
+ 	(egg:collect-symbol* (car form) 
+ 			 (egg:collect-symbol* (cdr form) alist)))
+        (t alist)))
+ 
+ (defun egg:fetch-value (form alist)
+   (cond ((null form) nil)
+ 	((symbolp form)
+ 	 (cdr (assq form alist)))
+ 	((consp form)
+ 	 (cons (egg:fetch-value (car form) alist)
+ 	       (egg:fetch-value (cdr form) alist)))
+ 	(t form)))
+ 
+ (defun egg:flatten-to-string (form)
+   (cond ((null form) "")
+ 	((stringp form) form)
+ 	((symbolp form) (symbol-name form))
+ 	((numberp form) (make-string 1 form))
+ 	(t (apply 'concat 
+ 		  (mapcar 'egg:flatten-to-string
+ 			  form)))))
+ 
+ (defun egg:generate-all-subst (vars)
+   (cond((null vars) nil)
+        (t (let ((r (egg:generate-all-subst (cdr vars))))
+ 	    (cond ((boundp (car vars))
+ 		   (apply 'append 
+ 			  (mapcar (function (lambda (val)
+ 			      (if r
+ 				  (mapcar (function
+ 					   (lambda (assign)
+ 					     (cons (cons (car vars) val)
+ 						   assign)))
+ 					  r)
+ 				(list (list (cons (car vars) val))))))
+ 				  (and (boundp (car vars))
+ 				       (eval (car vars))))))
+ 		  (t r))))))
+ 
+ ;;;
+ ;;; defrule
+ ;;; 
+ 
+ (defun defrule (input output &optional next)
+   (let* ((vars (egg:collect-symbols (list input output next)))
+ 	 (substs (egg:generate-all-subst vars)))
+     (if substs
+ 	(while substs
+ 	  (let((in  (egg:fetch-value input (car substs)))
+ 	       (out (egg:fetch-value output(car substs)))
+ 	       (next(egg:fetch-value next  (car substs))))
+ 	    (defrule* 0 (egg:flatten-to-string in)
+ 	      (egg:flatten-to-string out)
+ 	      (and next (egg:flatten-to-string next))
+ 	      egg:*processing-map*))
+ 	  (setq substs (cdr substs)))
+       (defrule* 0 (egg:flatten-to-string input)
+ 	(egg:flatten-to-string output)
+ 	(and next (egg:flatten-to-string next))
+ 	egg:*processing-map*))))
+ 
+ (defun defrule* (i input output next map)
+   (let((action 
+ 	(progn
+ 	  (if (null(get-key-action map (aref input i)))
+ 	    (set-key-action map (aref input i) (make-action)))
+ 	  (get-key-action map (aref input i)))))
+     (cond((= (length input) (1+ i))  ;;; end of input
+ 	  (if (action-get-output action)
+ 	      (if (not(and
+ 		       (equal output (action-get-output action))
+ 		       (equal next   (action-get-next   action))))
+ 		  (let ((debug-on-error nil))
+ 		    (error "(defrule ""%s"" ""%s"" ""%s"") is ambiguous" 
+ 			   input output next)))
+ 	    (action-set-output action output))
+ 	  (if next
+ 	      (cond((null (action-get-map action)) 
+ 		    (action-set-next action next))
+ 		   ((not (equal next (action-get-next action)))
+ 		    (let ((debug-on-error nil))
+ 		      (error "(defrule ""%s"" ""%s"" ""%s"") is ambiguous" 
+ 			     input output next))))
+ 	    (if (null (action-get-map action))
+ 		(action-set-top action input map))))
+ 
+ 	 ((action-get-next action)
+ 	  (let ((debug-on-error nil))
+ 	    (error "(defrule ""%s"" ""%s"" ""%s"") is ambiguous" 
+ 		 input output next)))
+ 
+ 	 (t (if (or(null (action-get-map action))
+ 		   (action-get-top action))
+ 		(action-set-map action (cons map nil)))
+ 	    (defrule* (1+ i) input output next
+ 	      (action-get-map (get-key-action map (aref input i)))))))
+   nil ;;; return void value
+   )
+ 
+ ;;;
+ ;;;  Map structure
+ ;;;
+ ;;;  A map is a pair of the upper level map and 
+ ;;;  alist from keys to actions.
+ ;;;
+ ;;; <map> ::=
+ ;;; ( <map> . ( ( <ch1> . <act1> ) ( <ch2> . <act2> ) ..... ))
+ ;;;
+ 
+ (defun make-map (&optional map alist)
+   (cons map alist))
+ 
+ (defun get-key-action (map ch)
+   (cdr (assq ch (cdr map))))
+ 
+ (defun set-key-action (map ch val)
+   (let ((place (assq ch (cdr map))))
+     (if place
+ 	(setcdr place val)
+       (setcdr map (cons (cons ch val) (cdr map))))))
+ 
+ ;;; (null (car map)) means the map is toplevel.
+ 
+ (defun map-toplevelp (map) (null (car map)))
+ 
+ ;;;
+ ;;; Action structure
+ ;;;
+ ;;; An action is a list of a map and an output.
+ ;;;
+ ;;; <action> ::= ( <map>                  <output> )
+ ;;;           |  ( ( top  <input> <map> ) <output> )
+ ;;;           |  ( ( next <next>  nil )   <output> )
+ 
+ (defun make-action (&optional map output) (list map output))
+ 
+ (defun action-get-map (action) (nth 0 action))
+ 
+ (defun action-set-map (action val)
+   (setcar (nthcdr 0 action) val))
+ 
+ (defun action-get-output (action) (nth 1 action))
+ 
+ (defun action-set-output (action output)
+   (setcar (nthcdr 1 action) output))
+ 
+ (defun action-get-top (action)
+   (eq (car (nth 0 action)) 'top))
+ 
+ (defun action-set-top (action input map)
+   (action-set-map action 
+ 		  (list 'top (substring input 0 (1- (length input))) map)))
+ 
+ (defun action-get-next (action) 
+   (and (eq (car(nth 0 action)) 'next)
+        (nth 1 (nth 0 action))))
+ 
+ (defun action-set-next (action next)
+   (action-set-map action (list 'next next nil)))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Runtime translators
+ ;;;
+ ;;;----------------------------------------------------------------------
+       
+ (defun egg:simulate-input (i j  input map)
+   (while (< i j)
+     (setq map (action-get-map  (get-key-action map (aref input i))))
+     (setq i (1+ i)))
+   map)
+ 
+ ;;; meta-flag ¤¬ on ¤Î»þ¤Ë¤Ï¡¢ÆþÎÏ¥³¡¼¥É¤Ë \200 ¤ò or ¤·¤¿¤â¤Î¤¬ÆþÎÏ¤µ
+ ;;; ¤ì¤ë¡£¤³¤ÎÉôÊ¬¤Î»ØÅ¦¤ÏÅì¹©Âç¤ÎÃæÀî µ®Ç·¤µ¤ó¤Ë¤è¤ë¡£
+ ;;; pointted by nakagawa@titisa.is.titech.ac.jp Dec-11-89
+ ;;;
+ ;;; emacs ¤Ç¤Ï Ê¸»ú¥³¡¼¥É¤Ï 0-127 ¤Ç°·¤¦¡£
+ ;;;
+ (defun fence-self-insert-command ()
+   (interactive)
+   (if (or (not egg:*input-mode*)
+ 	  (null (get-key-action egg:*current-map* last-command-char)))
+       (insert last-command-char)
+       (let ((current-map egg:*current-map*)
+ 	    (ch last-command-char)
+ 	    (action nil)
+ 	    (output nil)
+ 	    (start (point))
+ 	    (inhibit-quit t)
+ 	    (kana-quit-flag nil)
+ 	    (echo-keystrokes 0))
+ 	(while (not kana-quit-flag)
+ 	  (setq action (get-key-action current-map ch))
+ 	  (cond((and (null action) (map-toplevelp current-map))
+ 		(setq kana-quit-flag t))
+ 
+ 	       ((and (<= ch 127)
+ 		     (eq (aref fence-mode-map ch)
+ 			 'fence-backward-delete-char) ;;; DEL key?
+ 		     )
+ 		(if (map-toplevelp (car current-map))
+ 		    (setq kana-quit-flag t)
+ 		  (progn
+ 		    (delete-char -1)
+ 		    (setq current-map (car current-map)
+ 			  ch (read-char)))))
+ 
+ 	       ((null action)
+ 		(cond(output 
+ 		      (delete-region start (point))
+ 		      (insert output)
+ 		      (setq kana-quit-flag t))
+ 		     ((and (<= ch 127)
+ 			   (or (eq (aref fence-mode-map ch) 'fence-self-insert-command)
+ 			       (eq (aref fence-mode-map ch) 'undefined)))
+ 		      (beep)(setq ch (read-char)))
+ 		     (t
+ 		      (setq kana-quit-flag t))))
+ 
+ 	       ((null(action-get-output action))
+ 		(insert ch)
+ 		(setq current-map (action-get-map action)
+ 		      ch  (read-char)))
+ 	       
+ 	       ((symbolp (car (action-get-map action))) ;;; top or next
+ 		(delete-region start (point))
+ 		(insert (action-get-output action))
+ 		(setq current-map (action-get-map action))
+ 		(cond((eq (car current-map) 'top)
+ 		      (setq ch (read-char))
+ 		      (if (and (<= ch 127)
+ 			       (eq (aref fence-mode-map ch)
+ 				   'fence-backward-delete-char) ;;; DEL key?
+ 			       )
+ 			  (progn 
+ 			    (if (map-toplevelp (nth 2 current-map))
+ 				(setq kana-quit-flag t)
+ 			      (progn
+ 				(delete-region start (point))
+ 				(insert (nth 1 current-map))
+ 				(setq current-map (nth 2 current-map))
+ 				(setq ch (read-char)))))
+ 			(setq kana-quit-flag t)))
+ 		     ((eq (car current-map) 'next)
+ 		      (setq start (point))
+ 		      (insert (nth 1 current-map))
+ 		      (if (null(nth 2 current-map))
+ 			  (setcar (nthcdr 2 current-map)
+ 				  (egg:simulate-input 0 (length (nth 1 current-map))
+ 						  (nth 1 current-map)
+ 						  egg:*current-map*)))
+ 		      (setq current-map (nth 2 current-map)
+ 			    ch (read-char)))))
+ 	       ;;; output is non nil and action is active
+ 	       (t(insert ch)
+ 		 (setq output (action-get-output action)
+ 		       current-map (action-get-map action)
+ 		       ch (read-char))))
+ 	  )
+ 	(setq unread-command-char ch)))
+   )
+ 
+ ;;;----------------------------------------------------------------------
+ ;;; 
+ ;;; egg-map dump routine:
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;;
+ ;;; Load time support routine
+ ;;;
+ 
+ (defun setf-key-action (map key action)
+   (setcdr map (cons (cons key action) (cdr map))))
+ 
+ ;;;;;
+ ;;;;; User entry: dump-egg-mode-map
+ ;;;;;
+ 
+ (defun dump-egg-mode-map (name filename)
+   (interactive (list (completing-read "EGG mode: " egg:*mode-alist*)
+ 		     (read-file-name "Output file name:" )))
+   (save-excursion 
+     (let ((buff (get-buffer-create "*EggModeDumpBuffer*")))
+       (set-buffer buff)
+       (let ((standard-output buff))
+ 	(setq buffer-read-only nil)
+ 	(erase-buffer)
+ 	(terpri)(princ "(egg:set-mode-indicator ")
+ 	(prin1 name)(princ " ") (prin1 (egg:get-mode-indicator name))
+ 	(princ " )")
+ 	(terpri)
+ 	(terpri)(princ "(egg:set-mode-map ")
+ 	(prin1 name)
+ 	(egg:dump-map (egg:get-mode-map name))
+ 	(princ " )"))
+       (write-region (point-min) (point-max)  (expand-file-name filename))
+       (byte-compile-file (expand-file-name filename)))))
+ 
+ (defun egg:dump-map (map)
+   (if (null (car map))
+       (progn
+ 	(terpri)
+ 	(princ "(let ((map (cons nil nil)))" )
+ 	(egg:dump-map-alist (cdr map))
+ 	(terpri)
+ 	(princ " map)"))
+     (error "ARG map is not toplevel.")))
+ 
+ (defun egg:dump-map-alist (alist )
+   (let ((l alist))
+     (while (not (null l))
+       (let ((ch (car(car l)))
+ 	    (action (cdr (car l))))
+ 	(terpri)
+ 	(princ "(setf-key-action map ")
+ 	;;;(princ (format "?\\%c " ch))
+ 	(princ ch) (princ " ")
+ 	(egg:dump-map-action action)
+ 	(princ ")")
+ 	(setq l (cdr l)))))
+   )
+ 
+ (defun egg:dump-map-action (action)
+   (let ((map (action-get-map action))
+ 	(output (action-get-output action)))
+     (princ "(list ")
+     (cond((null map)
+ 	  (princ "nil "))
+ 	 ((eq (car map) 'next)
+ 	  (princ "(list 'next ")
+ 	  (prin1 (nth 1 map))
+ 	  (princ " nil)"))
+ 	 ((eq (car map) 'top)
+ 	  (princ "(list 'top ")
+ 	  (prin1 (nth 1 map))
+ 	  (princ " map)"))
+ 	 (t 
+ 	  (princ "(let ((map (cons map nil)))")
+ 	  (egg:dump-map-alist (cdr map))
+ 	  (princ " map)")))
+     (prin1 output) (princ " )")))
+ 	  
+ ;;;
+ ;;; EGG mode variables
+ ;;;
+ 
+ (defvar egg:*mode-on* nil "T if egg mode is on.")
+ (make-variable-buffer-local 'egg:*mode-on*)
+ (set-default 'egg:*mode-on* nil)
+ 
+ (defvar egg:*input-mode* t "T if egg map is active.")
+ (make-variable-buffer-local 'egg:*input-mode*)
+ (set-default 'egg:*input-mode* t)
+ 
+ (defvar egg:*in-fence-mode* nil "T if in fence mode.")
+ 
+ (define-egg-mode "roma-kana")
+ (egg:set-mode-indicator "roma-kana" " a¤¢")
+ 
+ (defvar egg:*current-map* nil)
+ (make-variable-buffer-local 'egg:*current-map*)
+ (setq-default egg:*current-map* (egg:get-mode-map "roma-kana"))
+ 
+ (defvar egg:*current-mode* nil)
+ (make-variable-buffer-local 'egg:*current-mode*)
+ (setq-default egg:*current-mode* (egg:get-mode-indicator "roma-kana"))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Mode line control functions;
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defconst mode-line-egg-mode "----")
+ (make-variable-buffer-local 'mode-line-egg-mode)
+ 
+ (defvar   mode-line-egg-mode-in-minibuffer "----" "global variable")
+ (defvar   egg-in-minibuffer nil "global variable")
+ 
+ (defun egg:find-symbol-in-tree (item tree)
+   (if (consp tree)
+       (or (egg:find-symbol-in-tree item (car tree))
+ 	  (egg:find-symbol-in-tree item (cdr tree)))
+     (equal item tree)))
+ 
+ ;;;
+ ;;; nemacs Ver. 3.0 ¤Ç¤Ï Fselect_window ¤¬ÊÑ¹¹¤Ë¤Ê¤ê¡¢minibuffer-window
+ ;;; Â¾¤Î window ¤È¤Î´Ö¤Ç½ÐÆþ¤ê¤¬¤¢¤ë¤È¡¢mode-line ¤Î¹¹¿·¤ò¹Ô¤Ê¤¤¡¢ÊÑ¿ô 
+ ;;; minibuffer-window-selected ¤ÎÃÍ¤¬¹¹¿·¤µ¤ì¤ë
+ ;;;
+ 
+ (or (fboundp 'si:select-window)
+     (fset 'si:select-window (symbol-function 'select-window)))
+ 
+ (defun new:select-window (window)
+   (let ((was-in-minibuf  (eq (selected-window) (minibuffer-window)))
+ 	(enter-minibuf   (eq window (minibuffer-window))))
+     (or (eq was-in-minibuf enter-minibuf)
+ 	(set-buffer-modified-p (buffer-modified-p)))
+     (setq minibuffer-window-selected enter-minibuf)
+     (si:select-window window)))
+ 	
+ (or (fboundp 'si:other-window)
+     (fset 'si:other-window (symbol-function 'other-window)))
+ 
+ (defun new:other-window (arg)
+   (interactive "p")
+   (let ((window (selected-window)))
+     (cond((< arg 0)
+ 	  (while (< arg 0)
+ 	    (setq window (previous-window window))
+ 	    (setq arg (1+ arg))))
+ 	 ((> arg 0)
+ 	  (while (> arg 0)
+ 	    (setq window (next-window window nil))
+ 	    (setq arg  (1- arg)))))
+     (select-window window)
+     nil))
+ 
+ (if (not (boundp 'minibuffer-window-selected))
+     (progn (fset 'select-window (symbol-function 'new:select-window))
+ 	   (fset 'other-window  (symbol-function 'new:other-window))))
+ 
+ (setq minibuffer-window-selected nil)
+ 
+ (defvar display-minibuffer-mode nil)
+ 
+ (defvar *minibuffer-window* (minibuffer-window))
+ 
+ (if (not (egg:find-symbol-in-tree 'mode-line-egg-mode mode-line-format))
+     (setq-default mode-line-format
+ 		  (cons (list 'kanji-flag
+ 			      (list 
+ 			       (list 'minibuffer-window-selected
+ 				     (list 'display-minibuffer-mode
+ 					   "m"
+ 					   " ")
+ 				     " ")
+ 			       "["
+ 			       (list 'minibuffer-window-selected
+ 				     (list 'display-minibuffer-mode
+ 					   'mode-line-egg-mode-in-minibuffer
+ 					   'mode-line-egg-mode)
+ 				     'mode-line-egg-mode)
+ 			       "]"))
+ 			mode-line-format)))
+ 
+ (defun mode-line-egg-mode-update (str)
+   (if (or minibuffer-window-selected
+ 	  (eq (selected-window) *minibuffer-window*))
+       (setq minibuffer-window-selected t
+ 	    display-minibuffer-mode t
+ 	    mode-line-egg-mode-in-minibuffer str)
+     (setq minibuffer-window-selected nil
+ 	  display-minibuffer-mode nil
+ 	  mode-line-egg-mode str))
+   (set-buffer-modified-p (buffer-modified-p)))
+ 
+ (mode-line-egg-mode-update mode-line-egg-mode)
+ 
+ ;;;
+ ;;; egg mode line display
+ ;;;
+ 
+ (defvar alphabet-mode-indicator " a a")
+ (defvar transparent-mode-indicator "----")
+ 
+ (defun egg:mode-line-display ()
+   (mode-line-egg-mode-update 
+    (cond((and egg:*in-fence-mode* (not egg:*input-mode*))
+ 	 alphabet-mode-indicator)
+ 	((and egg:*mode-on* egg:*input-mode*)
+ 	 egg:*current-mode*)
+ 	(t transparent-mode-indicator))))
+ 
+ (defun egg:toggle-egg-mode-on-off ()
+   (interactive)
+   (setq egg:*mode-on* (not egg:*mode-on*))
+   (egg:mode-line-display))
+ 
+ (defun egg:goto-input-mode (name)
+   (interactive (list (completing-read "EGG mode: " egg:*mode-alist*)))
+   (if (egg:get-mode-map name)
+       (progn
+ 	(setq egg:*current-mode* (egg:get-mode-indicator name)
+ 	      egg:*current-map* (egg:get-mode-map name))
+ 	(egg:mode-line-display))
+     (beep))
+   )
+ 
+ (defun toggle-egg-mode ()
+   (interactive)
+   (if kanji-flag 
+       (if egg:*mode-on* (fence-toggle-egg-mode)
+ 	(progn
+ 	  (setq egg:*mode-on* t)
+ 	  (egg:mode-line-display)))))
+ 
+ (defun fence-toggle-egg-mode ()
+   (interactive)
+   (if egg:*current-map*
+       (progn
+ 	(setq egg:*input-mode* (not egg:*input-mode*))
+ 	(egg:mode-line-display))
+     (beep)))
+ 
+ ;;;
+ ;;; Changes on Global map 
+ ;;;
+ 
+ (defvar si:*global-map* (copy-keymap global-map))
+ 
+ (let ((ch 32))
+   (while (< ch 127)
+     (aset global-map ch 'egg-self-insert-command)
+     (setq ch (1+ ch))))
+ 
+ ;;;
+ ;;; Currently entries C-\ and C-^ at global-map are undefined.
+ ;;;
+ 
+ (define-key global-map "\C-\\" 'toggle-egg-mode)
+ 
+ ;;;
+ ;;; C-X SPC is bound to henkan-region
+ ;;;
+ 
+ (define-key ctl-x-map " " 'henkan-region)
+ 
+ ;;;
+ ;;;  Keyboard quit
+ ;;;
+ 
+ (if (not (fboundp 'si:keyboard-quit))
+     (fset 'si:keyboard-quit (symbol-function 'keyboard-quit)))
+ 
+ (defun keyboard-quit ()
+   "See documents for si:keyboard-quit"
+   (interactive)
+   (setq minibuffer-window-selected nil
+ 	display-minibuffer-mode nil)
+   (if egg:*mode-on*
+       (progn
+ 	(setq egg:*mode-on* nil)
+ 	(setq egg:*in-fence-mode* nil)
+ 	(egg:mode-line-display)))
+   (si:keyboard-quit))
+ 
+ ;;;
+ ;;; Abort recursive edit
+ ;;;
+ 
+ (if (not (fboundp 'si:abort-recursive-edit))
+  (fset 'si:abort-recursive-edit (symbol-function 'abort-recursive-edit)))
+ 
+ (defun abort-recursive-edit ()
+   "See documents for si:abort-recursive-edit"
+   (interactive)
+   (setq minibuffer-window-selected nil
+ 	display-minibuffer-mode nil)
+   (if egg:*mode-on*
+       (progn 
+ 	(setq egg:*mode-on* nil)
+ 	(setq egg:*in-fence-mode* nil)
+ 	(egg:mode-line-display))
+     (si:abort-recursive-edit)))
+ 
+ ;;;
+ ;;;  Exit-minibuffer
+ ;;;
+ 
+ (if (not (fboundp 'si:exit-minibuffer))
+  (fset 'si:exit-minibuffer (symbol-function 'exit-minibuffer)))
+ 
+ (defun exit-minibuffer ()
+   "See documents for si:exit-minibuffer"
+   (interactive)
+   (setq egg:*mode-on* nil)
+   (egg:mode-line-display)
+   (setq minibuffer-window-selected nil
+ 	display-minibuffer-mode nil)
+   (si:exit-minibuffer))
+ 
+ ;;;
+ ;;; auto fill controll
+ ;;;
+ 
+ (defun egg:do-auto-fill ()
+   (if (and auto-fill-hook (not buffer-read-only)
+ 	   (> (current-column) fill-column))
+       (let ((ocolumn (current-column)))
+ 	(run-hooks 'auto-fill-hook)
+ 	(while (and (< fill-column (current-column))
+ 		    (< (current-column) ocolumn))
+   	  (setq ocolumn (current-column))
+ 	  (run-hooks 'auto-fill-hook)))))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;;  Egg fence mode
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defconst egg:*fence-open*   "|" "*¥Õ¥§¥ó¥¹¤Î»ÏÅÀ¤ò¼¨¤¹Ê¸»úÎó")
+ (defconst egg:*fence-close*  "|" "*¥Õ¥§¥ó¥¹¤Î½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó")
+ (defconst egg:*fence-attribute* nil  "*¥Õ¥§¥ó¥¹É½¼¨¤ËÍÑ¤¤¤ëattribute ¤Þ¤¿¤Ï nil")
+ 
+ (defvar egg:*attribute-alist* '(("nil" . nil) ("inverse" . inverse) ("underline" . underline)))
+ 
+ (defun set-egg-fence-mode-format (open close &optional attr)
+   "fence mode ¤ÎÉ½¼¨ÊýË¡¤òÀßÄê¤¹¤ë¡£OPEN ¤Ï¥Õ¥§¥ó¥¹¤Î»ÏÅÀ¤ò¼¨¤¹Ê¸»úÎó¤Þ¤¿¤Ï nil¡£\n\
+ CLOSE¤Ï¥Õ¥§¥ó¥¹¤Î½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó¤Þ¤¿¤Ï nil¡£\n\
+ optional ATTR ¤Ï¥Õ¥§¥ó¥¹¶è´Ö¤òÉ½¼¨¤¹¤ëÂ°À­ ¤Þ¤¿¤Ï nil¡Êx11term ¤Î¤ß¤ÇÍ­¸ú¡Ë"
+   (interactive (list (read-string "¥Õ¥§¥ó¥¹³«»ÏÊ¸»úÎó: ")
+ 		     (read-string "¥Õ¥§¥ó¥¹½ªÎ»Ê¸»úÎó: ")
+ 		     (cdr (assoc (completing-read "¥Õ¥§¥ó¥¹É½¼¨Â°À­: " egg:*attribute-alist*)
+ 				 egg:*attribute-alist*))))
+ 
+   (if (and (or (stringp open) (null open))
+ 	   (or (stringp close) (null close))
+ 	   (egg:member attr '(underline inverse nil)))
+       (progn
+ 	(setq egg:*fence-open* (or open "")
+ 	      egg:*fence-close* (or close "")
+ 	      egg:*fence-attribute* attr)
+ 	(if attr (require 'attribute))
+ 	t)
+     (error "Wrong type of argument: %s %s %s" open close attr)))
+ 
+ (defconst egg:*region-start* (make-marker))
+ (defconst egg:*region-end*   (set-marker-type (make-marker) t))
+ (defvar egg:*global-map-backup* nil)
+ (defvar egg:*local-map-backup*  nil)
+ 
+ 
+ ;;;
+ ;;; (defvar disable-undo nil "*Compatibility for Nemacs")
+ ;;;
+ ;;; Moved to kanji.el
+ ;;; (defvar self-insert-after-hook nil
+ ;;;  "Hook to run when extended self insertion command exits. Should take
+ ;;; two arguments START and END correspoding to character position.")
+ 
+ (defun egg-self-insert-command (arg)
+   (interactive "p")
+   (if (and (not buffer-read-only)
+ 	   kanji-flag
+ 	   egg:*mode-on* egg:*input-mode* 
+ 	   (not egg:*in-fence-mode*) ;;; inhibit recursive fence mode
+ 	   (not (= last-command-char  ?  )))
+       (egg:enter-fence-mode-and-self-insert)
+     (progn
+       (self-insert-command arg) 
+       (if egg-insert-after-hook
+ 	  (run-hooks 'egg-insert-after-hook))
+       (if self-insert-after-hook
+ 	  (if (<= 1 arg)
+ 	      (funcall self-insert-after-hook
+ 		       (- (point) arg) (point)))
+ 	(if (= last-command-char ? ) (egg:do-auto-fill))))))
+ 
+ 
+ (defun egg:enter-fence-mode-and-self-insert () 
+   (enter-fence-mode)
+   (setq unread-command-char last-command-char))
+ 
+ (defun egg:fence-attribute-on ()
+   (egg:set-region-attribute egg:*fence-attribute* t))
+ 
+ (defun egg:fence-attribute-off ()
+   (egg:set-region-attribute egg:*fence-attribute* nil))
+ 
+ (defun enter-fence-mode ()
+   ;;;(buffer-flush-undo (current-buffer))
+   (and (boundp 'disable-undo) (setq disable-undo t))
+   (setq egg:*in-fence-mode* t)
+   (egg:mode-line-display)
+   ;;;(setq egg:*global-map-backup* (current-global-map))
+   (setq egg:*local-map-backup*  (current-local-map))
+   ;;;(use-global-map fence-mode-map)
+   ;;;(use-local-map nil)
+   (use-local-map fence-mode-map)
+   (insert egg:*fence-open*)
+   (set-marker egg:*region-start* (point))
+   (insert egg:*fence-close*)
+   (set-marker egg:*region-end* egg:*region-start*)
+   (egg:fence-attribute-on)
+   (goto-char egg:*region-start*)
+   )
+ 
+ (defun henkan-fence-region-or-single-space ()
+   (interactive)
+   (if egg:*input-mode*   
+       (henkan-fence-region)
+     (insert ? )))
+ 
+ (defun henkan-fence-region ()
+   (interactive)
+   (henkan-region-internal egg:*region-start* egg:*region-end* ))
+ 
+ (defun fence-katakana  ()
+   (interactive)
+   (katakana-region egg:*region-start* egg:*region-end* ))
+ 
+ (defun fence-hiragana  ()
+   (interactive)
+   (hiragana-region egg:*region-start* egg:*region-end*))
+ 
+ (defun fence-hankaku  ()
+   (interactive)
+   (hankaku-region egg:*region-start* egg:*region-end*))
+ 
+ (defun fence-zenkaku  ()
+   (interactive)
+   (zenkaku-region egg:*region-start* egg:*region-end*))
+ 
+ (defun fence-backward-char ()
+   (interactive)
+   (if (< egg:*region-start* (point))
+       (backward-char)
+     (beep)))
+ 
+ (defun fence-forward-char ()
+   (interactive)
+   (if (< (point) egg:*region-end*)
+       (forward-char)
+     (beep)))
+ 
+ (defun fence-beginning-of-line ()
+   (interactive)
+   (goto-char egg:*region-start*))
+ 
+ (defun fence-end-of-line ()
+   (interactive)
+   (goto-char egg:*region-end*))
+ 
+ (defun fence-transpose-chars (arg)
+   (interactive "P")
+   (if (and (< egg:*region-start* (point))
+ 	   (< (point) egg:*region-end*))
+       (transpose-chars arg)
+     (beep)))
+ 
+ (defun egg:exit-if-empty-region ()
+   (if (= egg:*region-start* egg:*region-end*)
+       (fence-exit-mode)))
+ 
+ (defun fence-delete-char ()
+   (interactive)
+   (if (< (point) egg:*region-end*)
+       (progn
+ 	(delete-char 1)
+ 	(egg:exit-if-empty-region))
+     (beep)))
+ 
+ (defun fence-backward-delete-char ()
+   (interactive)
+   (if (< egg:*region-start* (point))
+       (progn
+ 	(delete-char -1)
+ 	(egg:exit-if-empty-region))
+     (beep)))
+ 
+ (defun fence-kill-line ()
+   (interactive)
+   (delete-region (point) egg:*region-end*)
+   (egg:exit-if-empty-region))
+ 
+ (defun fence-exit-mode ()
+   (interactive)
+   (delete-region (- egg:*region-start* (length egg:*fence-open*)) egg:*region-start*)
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*fence-close*)))
+   (egg:fence-attribute-off)
+   (egg:quit-egg-mode))
+ 
+ (defvar egg-insert-after-hook nil)
+ (make-variable-buffer-local 'egg-insert-after-hook)
+ 
+ (defvar egg-exit-hook nil
+   "Hook to run when egg exits. Should take two arguments START and END
+ correspoding to character position.")
+ 
+ (defun egg:quit-egg-mode ()
+   ;;;(use-global-map egg:*global-map-backup*)
+   (use-local-map egg:*local-map-backup*)
+   (setq egg:*in-fence-mode* nil)
+   (egg:mode-line-display)
+   (if overwrite-mode
+       (let ((length (- egg:*region-end* egg:*region-start*))
+ 	    (rest (- (save-excursion (end-of-line) (point))
+ 		     egg:*region-end*)))
+ 	(kanji-delete-region egg:*region-end*
+ 			     (+ egg:*region-end* (min rest length)))
+ 	))
+        
+   (if self-insert-after-hook
+       (funcall self-insert-after-hook egg:*region-start* egg:*region-end*)
+     (if egg-exit-hook
+ 	(funcall egg-exit-hook egg:*region-start* egg:*region-end*)
+       (if (not (= egg:*region-start* egg:*region-end*))
+ 	  (egg:do-auto-fill))))
+   (set-marker egg:*region-start* nil)
+   (set-marker egg:*region-end*   nil)
+   ;;;(buffer-enable-undo)
+   ;;;(undo-boundary)
+   (and (boundp 'disable-undo) (setq disable-undo nil))
+   (if egg-insert-after-hook
+       (run-hooks 'egg-insert-after-hook))
+   )
+ 
+ (defun fence-cancel-input ()
+   (interactive)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (fence-exit-mode))
+ 
+ (defvar fence-mode-map (make-keymap))
+ 
+ (defvar fence-mode-esc-map (make-keymap))
+ 
+ (let ((ch 0))
+   (while (<= ch 127)
+     (aset fence-mode-map ch 'undefined)
+     (aset fence-mode-esc-map ch 'undefined)
+     (setq ch (1+ ch))))
+ 
+ (let ((ch 32))
+   (while (< ch 127)
+     (aset fence-mode-map ch 'fence-self-insert-command)
+     (setq ch (1+ ch))))
+ 
+ (define-key fence-mode-map "\e"   fence-mode-esc-map)
+ (define-key fence-mode-map "\eh"  'fence-hiragana)
+ (define-key fence-mode-map "\ek"  'fence-katakana)
+ (define-key fence-mode-map "\e<"  'fence-hankaku)
+ (define-key fence-mode-map "\e>"  'fence-zenkaku)
+ (define-key fence-mode-map " "    'henkan-fence-region-or-single-space)
+ (define-key fence-mode-map "\C-@" 'henkan-fence-region)
+ (define-key fence-mode-map "\C-a" 'fence-beginning-of-line)
+ (define-key fence-mode-map "\C-b" 'fence-backward-char)
+ (define-key fence-mode-map "\C-c" 'fence-cancel-input)
+ (define-key fence-mode-map "\C-d" 'fence-delete-char)
+ (define-key fence-mode-map "\C-e" 'fence-end-of-line)
+ (define-key fence-mode-map "\C-f" 'fence-forward-char)
+ (define-key fence-mode-map "\C-g" 'fence-cancel-input)
+ (define-key fence-mode-map "\C-h" 'help-command)
+ (define-key fence-mode-map "\C-i" 'undefined)  
+ (define-key fence-mode-map "\C-j" 'undefined)  ;;; LFD
+ (define-key fence-mode-map "\C-k" 'fence-kill-line)
+ (define-key fence-mode-map "\C-l" 'fence-exit-mode)
+ (define-key fence-mode-map "\C-m" 'fence-exit-mode)  ;;; RET
+ (define-key fence-mode-map "\C-n" 'undefined)
+ (define-key fence-mode-map "\C-o" 'undefined)
+ (define-key fence-mode-map "\C-p" 'undefined)
+ (define-key fence-mode-map "\C-q" 'undefined)
+ (define-key fence-mode-map "\C-r" 'undefined)
+ (define-key fence-mode-map "\C-s" 'undefined)
+ (define-key fence-mode-map "\C-t" 'fence-transpose-chars)
+ (define-key fence-mode-map "\C-u" 'undefined)
+ (define-key fence-mode-map "\C-v" 'undefined)
+ (define-key fence-mode-map "\C-w" 'henkan-fence-region)
+ (define-key fence-mode-map "\C-x" 'undefined)
+ (define-key fence-mode-map "\C-y" 'undefined)
+ (define-key fence-mode-map "\C-z" 'eval-expression)
+ (define-key fence-mode-map "\C-|" 'fence-toggle-egg-mode)
+ (define-key fence-mode-map "\C-_" 'jis-code-input)
+ (define-key fence-mode-map "\177" 'fence-backward-delete-char)
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Read hiragana from minibuffer
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defvar egg:*minibuffer-local-hiragana-map* (copy-keymap minibuffer-local-map))
+ 
+ (let ((ch 32))
+   (while (< ch 127)
+     (define-key egg:*minibuffer-local-hiragana-map*
+       (make-string 1 ch) 'fence-self-insert-command)
+     (setq ch (1+ ch))))
+ 
+ (defun read-hiragana-string (prompt &optional initial-input)
+   (save-excursion
+     (let ((minibuff (window-buffer (minibuffer-window))))
+       (set-buffer minibuff)
+       (let ((egg:*input-mode* t)
+ 	    (egg:*current-map* (egg:get-mode-map "roma-kana")))
+ 	(read-from-minibuffer prompt initial-input
+ 			      egg:*minibuffer-local-hiragana-map*)))))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; KKCP package: Kana Kanji Conversion Protocol
+ ;;;
+ ;;; KKCP to JSERVER interface; 
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ (defvar *KKCP:error-flag* t)
+ 
+ (defun KKCP:error (errorCode &rest form)
+   (cond((eq errorCode ':WNN_SOCK_OPEN_FAIL)
+ 	(notify "EGG: %s ¾å¤Ë WNN ¤¬¤¢¤ê¤Þ¤»¤ó¡£" (or (get-wnn-host-name) "local"))
+ 	(if debug-on-error
+ 	    (error "EGG: No WNN on %s is running." (or (get-wnn-host-name) "local"))
+ 	  (error  "EGG: %s ¾å¤Ë WNN ¤¬¤¢¤ê¤Þ¤»¤ó¡£" (or (get-wnn-host-name) "local"))))
+        ((eq errorCode ':WNN_JSERVER_DEAD)
+ 	(notify "EGG: %s ¾å¤ÎWNN ¤¬»à¤ó¤Ç¤¤¤Þ¤¹¡£" (or (get-wnn-host-name) "local"))
+ 	(if debug-on-error
+ 	    (error "EGG: WNN on %s is dead." (or (get-wnn-host-name) "local"))
+ 	  (error  "EGG: %s ¾å¤Î WNN ¤¬»à¤ó¤Ç¤¤¤Þ¤¹¡£" (or (get-wnn-host-name) "local"))))
+        ((and (consp errorCode)
+ 	     (eq (car errorCode) ':WNN_UNKNOWN_HOST))
+ 	(notify "EGG: ¥Û¥¹¥È %s ¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£" (car(cdr errorCode)))
+ 	(if debug-on-error
+ 	    (error "EGG: Host %s is unknown." (car(cdr errorCode)))
+ 	  (error "EGG: ¥Û¥¹¥È %s ¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£" (car(cdr errorCode)))))
+        ((and (consp errorCode)
+ 	     (eq (car errorCode) ':WNN_UNKNOWN_SERVICE))
+ 	(notify "EGG: Network service %s ¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£" (car(cdr errorCode)))
+ 	(if debug-on-error
+ 	    (error "EGG: Service %s is unknown." (car(cdr errorCode)))
+ 	  (error "EGG: Network service %s ¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£" (cdr errorCode))))
+        (t
+ 	(notify "KKCP: ¸¶°ø %s ¤Ç %s ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£" errorCode form)
+ 	(if debug-on-error
+ 	    (error "KKCP: %s failed because of %s." form errorCode)
+ 	  (error  "KKCP: ¸¶°ø %s ¤Ç %s ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£" errorCode form)))))
+ 
+ (defun KKCP:server-open (hostname loginname)
+   (let ((result (wnn-server-open hostname loginname)))
+     (cond((null wnn-error-code) result)
+ 	 (t (KKCP:error wnn-error-code 'KKCP:server-open hostname loginname)))))
+ 
+ (defun KKCP:use-dict (dict hindo priority file-mode)
+   (let ((result (wnn-server-use-dict dict hindo  priority file-mode)))
+     (cond((null wnn-error-code) result)
+ 	 ((eq wnn-error-code ':wnn-no-connection)
+ 	  (EGG:open-wnn)
+ 	  (KKCP:use-dict dict hindo priority file-mode))
+ 	 ((null *KKCP:error-flag*) result)
+ 	 (t (KKCP:error wnn-error-code 
+ 			'kkcp:use-dict dict hindo priority file-mode)))))
+ 
+ (defun KKCP:henkan-begin (henkan-string)
+   (let ((result (wnn-server-henkan-begin henkan-string)))
+     (cond((null wnn-error-code) result)
+ 	 ((eq wnn-error-code ':wnn-no-connection)
+ 	  (EGG:open-wnn)
+ 	  (KKCP:henkan-begin henkan-string))
+ 	 ((null *KKCP:error-flag*) result)
+ 	 (t (KKCP:error wnn-error-code 'KKCP:henkan-begin henkan-string)))))
+ 
+ (defun KKCP:henkan-next (bunsetu-no)
+   (let ((result (wnn-server-henkan-next bunsetu-no)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:henkan-next bunsetu-no))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:henkan-next bunsetu-no)))))
+ 
+ (defun KKCP:henkan-inspect (bunsetu-no jikouho-no)
+   (let ((result (wnn-bunsetu-kouho-inspect bunsetu-no jikouho-no)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:henkan-inspect bunsetu-no jikouho-no))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 
+ 			 'KKCP:henkan-inspect bunsetu-no jikouho-no)))))
+ 
+ (defun KKCP:henkan-kakutei (bunsetu-no jikouho-no)
+   ;;; NOTE: ¼¡¸õÊä¥ê¥¹¥È¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³ÎÇ§¤·¤Æ»ÈÍÑ¤¹¤ë¤³¤È¡£
+   (let ((result (wnn-server-henkan-kakutei bunsetu-no jikouho-no)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:henkan-kakutei bunsetu-no jikouho-no))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:henkan-kakutei bunsetu-no jikouho-no)))))
+ 
+ (defun KKCP:bunsetu-henkou (bunsetu-no bunsetu-length)
+   (let ((result (wnn-server-bunsetu-henkou bunsetu-no bunsetu-length)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:bunsetu-henkou bunsetu-no bunsetu-length))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'kkcp:bunsetu-henkou bunsetu-no bunsetu-length)))))
+ 
+ 
+ (defun KKCP:henkan-quit ()
+   (let ((result (wnn-server-henkan-quit)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:henkan-quit))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:henkan-quit)))))
+ 
+ (defun KKCP:henkan-end (&optional bunsetuno)
+   (let ((result (wnn-server-henkan-end bunsetuno)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:henkan-end bunsetuno))	  
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:henkan-end)))))
+ 
+ (defun KKCP:set-current-dict (dict-no)
+   (let ((result (wnn-server-set-current-dict dict-no)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:set-current-dict dict-no))	  
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'kkcp:set-current-dict dict-no)))))
+ 
+ (defun KKCP:dict-add (kanji yomi bunpo)
+   (let ((result (wnn-server-dict-add kanji yomi bunpo)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:dict-add kanji yomi bunpo))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:dict-add kanji yomi bunpo)))))
+ 
+ (defun KKCP:dict-delete (serial-no yomi)
+   (let ((result (wnn-server-dict-delete serial-no yomi)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:dict-delete serial-no yomi))	  
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:dict-delete serial-no yomi)))))
+ 
+ (defun KKCP:dict-info (yomi)
+   (let ((result (wnn-server-dict-info yomi)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:dict-info yomi))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:dict-info yomi)))))
+ 
+ (defun KKCP:make-directory (pathname)
+   (let ((result (wnn-server-make-directory pathname)))
+     (cond ((null wnn-error-code) result)
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:make-directory pathname))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'kkcp:make-directory pathname)))))
+ 
+ (defun KKCP:file-access (pathname mode)
+   (let ((result (wnn-server-file-access pathname mode)))
+     (cond ((null wnn-error-code)
+ 	   (if (= result 0) t nil))
+ 	  ((eq wnn-error-code ':wnn-no-connection)
+ 	   (EGG:open-wnn)
+ 	   (KKCP:file-access pathname mode))
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'kkcp:file-access pathname mode)))))
+ 
+ (defun KKCP:server-close ()
+   (let ((result (wnn-server-close)))
+     (cond ((null wnn-error-code) result)
+ 	  ((null *KKCP:error-flag*) result)
+ 	  (t (KKCP:error wnn-error-code 'KKCP:server-close)))))
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Kana Kanji Henkan 
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;;
+ ;;; Entry functions for egg-startup-file
+ ;;;
+ 
+ (defvar *default-sys-dic-directory* "~/")
+ 
+ (defun set-default-sys-dic-directory (pathname)
+   "¥·¥¹¥Æ¥à¼­½ñ¤ÎÉ¸½àdirectory PATHNAME¤ò»ØÄê¤¹¤ë¡£
+ PATHNAME¤Ï´Ä¶­ÊÑ¿ô¤ò´Þ¤ó¤Ç¤è¤¤¡£"
+ 
+   (setq pathname (substitute-in-file-name pathname))
+ 
+   (if (not (file-name-absolute-p pathname))
+       (error "Default directory must be absolute pathname")
+     (if (null (KKCP:file-access pathname 0))
+ 	(error 
+ 	 (format "System Default directory(%s) ¤¬¤¢¤ê¤Þ¤»¤ó¡£" pathname))
+       (setq *default-sys-dic-directory* (file-name-as-directory pathname)))))
+ 
+ (defvar *default-usr-dic-directory* "~/")
+ 
+ (defun set-default-usr-dic-directory (pathname)
+   "ÍøÍÑ¼Ô¼­½ñ¤ÎÉ¸½àdirectory PATHNAME¤ò»ØÄê¤¹¤ë¡£
+ PATHNAME¤Ï´Ä¶­ÊÑ¿ô¤ò´Þ¤ó¤Ç¤è¤¤¡£"
+ 
+   (setq pathname (file-name-as-directory (substitute-in-file-name pathname)))
+ 
+   (if (not (file-name-absolute-p pathname))
+       (error "Default directory must be absolute pathname")
+     (if (null (KKCP:file-access  pathname 0))
+ 	(let ((updir (file-name-directory (substring pathname 0 -1))))
+ 	  (if (null (KKCP:file-access updir 0))
+ 	      (error 
+ 	       (format "User Default directory(%s) ¤¬¤¢¤ê¤Þ¤»¤ó¡£" pathname))
+ 	    (if (yes-or-no-p (format "User Default directory(%s) ¤òºî¤ê¤Þ¤¹¤«¡©" pathname))
+ 		(progn
+ 		  (KKCP:make-directory pathname)
+ 		  (notify "User Default directory(%s) ¤òºî¤ê¤Þ¤·¤¿¡£" pathname))
+ 	      nil ;;; do nothing
+ 	      ))))
+       (setq *default-usr-dic-directory* pathname)))
+ 
+ (defun setsysdic (dict hindo priority &optional noextend)
+   (let ((dictfile
+ 	 (concat (if (not (file-name-absolute-p dict)) 
+ 		     *default-sys-dic-directory*
+ 		   "")
+ 		 dict
+ 		 (if noextend "" ".sys")))
+ 	(hindofile
+ 	 (concat (if (not (file-name-absolute-p dict)) 
+ 		     *default-usr-dic-directory*
+ 		   "")
+ 		 hindo
+ 		 (if noextend "" ".hindo"))))
+     (egg:setsysdict (expand-file-name dictfile)
+ 		    (expand-file-name hindofile)
+ 		    priority)))
+ 
+ (defun setusrdic (dict priority &optional noextend)
+   (let ((dictfile
+ 	 (concat (if (not (file-name-absolute-p dict))
+ 		     *default-usr-dic-directory*
+ 		   "")
+ 		 dict 
+ 		 (if noextend ""  ".usr")
+ 		 )))
+   (egg:setusrdict (expand-file-name dictfile)
+ 		  priority)))
+ 
+ (defvar egg:*dict-list* nil)
+ 
+ ;;; dict-no --> dict-name
+ (defvar egg:*sys-dict* nil)
+ 
+ (defun egg:setsysdict (dict hindo priority)
+   (cond((assoc (file-name-nondirectory dict) egg:*dict-list*)
+ 	(beep)
+ 	(notify "´û¤ËÆ±Ì¾¤Î¥·¥¹¥Æ¥à¼­½ñ %s ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£"
+ 		(file-name-nondirectory dict))
+ 	)
+        ((null (KKCP:file-access dict 0))
+ 	(beep)
+ 	(notify "¥·¥¹¥Æ¥à¼­½ñ %s ¤¬¤¢¤ê¤Þ¤»¤ó¡£" dict))
+        ((null (KKCP:file-access hindo 0))
+ 	(notify "ÉÑÅÙ¥Õ¥¡¥¤¥ë %s ¤¬¤¢¤ê¤Þ¤»¤ó¡£" hindo)
+ 	(if (yes-or-no-p 
+ 	     (format "ÉÑÅÙ¥Õ¥¡¥¤¥ë %s ¤òºî¤ê¤Þ¤¹¤«¡©" hindo))
+ 	    (let* ((*KKCP:error-flag* nil)
+ 		   (rc (KKCP:use-dict dict hindo priority nil)))
+ 	      (if rc (progn
+ 		       (notify "ÉÑÅÙ¥Õ¥¡¥¤¥ë %s ¤òºî¤ê¤Þ¤·¤¿¡£" hindo)
+ 		       (setq egg:*sys-dict* (cons (cons rc dict) egg:*sys-dict*)))
+ 		(error "EGG: setsysdict failed.: %s" hindo)))))
+        (t(let* ((*KKCP:error-flag* nil)
+ 		(rc (KKCP:use-dict dict hindo priority nil)))
+ 	   (if (null rc)
+ 	       (error "EGG: setsysdict failed. :%s" dict)
+ 	     (progn
+ 	       (setq egg:*sys-dict* (cons (cons rc dict) egg:*sys-dict*))
+ 	       (setq egg:*dict-list*
+ 		     (cons (cons (file-name-nondirectory dict) dict)
+ 			   egg:*dict-list*))))))))
+ 
+ ;;; dict-no --> dict-name
+ (defvar egg:*usr-dict* nil)
+ 
+ ;;; dict-name --> dict-no
+ (defvar egg:*dict-menu* nil)
+ 
+ (defmacro push-end (val loc)
+   (list 'push-end-internal val (list 'quote loc)))
+ 
+ (defun push-end-internal (val loc)
+   (set loc
+        (if (eval loc)
+ 	   (nconc (eval loc) (cons val nil))
+ 	 (cons val nil))))
+ 
+ (defun egg:setusrdict (dict priority)
+   (cond((assoc (file-name-nondirectory dict) egg:*dict-list*)
+ 	(beep)
+ 	(notify "´û¤ËÆ±Ì¾¤ÎÍøÍÑ¼Ô¼­½ñ %s ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£"
+ 		(file-name-nondirectory dict))
+ 	)
+        ((null (KKCP:file-access dict 0))
+ 	(notify "ÍøÍÑ¼Ô¼­½ñ %s ¤¬¤¢¤ê¤Þ¤»¤ó¡£" dict)
+ 	(if (yes-or-no-p (format "ÍøÍÑ¼Ô¼­½ñ %s ¤òºî¤ê¤Þ¤¹¤«¡©" dict))
+ 	    (let* ((*KKCP:error-flag* nil)
+ 		   (dict-no (KKCP:use-dict dict "" priority nil)))
+ 	      (if (numberp dict-no)
+ 		  (progn
+ 		    (notify "ÍøÍÑ¼Ô¼­½ñ %s ¤òºî¤ê¤Þ¤·¤¿¡£" dict)
+ 		    (setq egg:*usr-dict* 
+ 			  (cons (cons dict-no dict) egg:*usr-dict*))
+ 		    (push-end (cons (file-name-nondirectory dict) dict-no)
+ 			      egg:*dict-menu*))
+ 		(error "EGG: setusrdict failed. : %s" dict)))))
+        (t (let* ((*KKCP:error-flag* nil)
+ 		 (dict-no (KKCP:use-dict dict "" priority nil)))
+ 	    (cond((numberp dict-no)
+ 		  (setq egg:*usr-dict* (cons(cons dict-no dict) 
+ 					    egg:*usr-dict*))
+ 		  (push-end (cons (file-name-nondirectory dict) dict-no)
+ 			    egg:*dict-menu*)
+ 		  (setq egg:*dict-list*
+ 			(cons (cons (file-name-nondirectory dict) dict)
+ 			      egg:*dict-list*)))
+ 		 (t (error "EGG: setusrdict failed. : %s" dict)))))))
+ 
+ 
+ ;;;
+ ;;; WNN interface
+ ;;;
+ 
+ (defun get-wnn-host-name ()
+   (cond((and (boundp 'wnn-host-name) (stringp wnn-host-name))
+ 	wnn-host-name)
+        ((and (boundp 'jserver-host-name) (stringp jserver-host-name))
+ 	jserver-host-name)
+        (t(getenv "JSERVER"))))
+ 
+ (fset 'get-jserver-host-name (symbol-function 'get-wnn-host-name))
+ 
+ (defun set-wnn-host-name (name)
+   (interactive "sHost name: ")
+   (let ((*KKCP:error-flag* nil))
+     (disconnect-wnn))
+   (setq wnn-host-name name)
+   )
+ 
+ (defvar egg-default-startup-file "eggrc"
+   "*Egg startup file name (system default)")
+ 
+ (defvar egg-startup-file ".eggrc"
+   "*Egg startup file name.")
+ 
+ (defvar egg-startup-file-search-path (append '("~" ".") load-path)
+   "*List of directories to search for start up file to load.")
+ 
+ (defun egg:search-file (filename searchpath)
+   (let ((result nil))
+     (if (null (file-name-directory filename))
+ 	(let ((path searchpath))
+ 	  (while (and path (null result ))
+ 	    (let ((file (substitute-in-file-name
+ 			 (expand-file-name filename (if (stringp (car path)) (car path) nil)))))
+ 	      (if (file-exists-p file) (setq result file)
+ 		(setq path (cdr path))))))
+       (let((file (substitute-in-file-name (expand-file-name filename))))
+ 	(if (file-exists-p file) (setq result file))))
+     result))
+ 
+ (defun EGG:open-wnn ()
+   (KKCP:server-open (or (get-wnn-host-name) (system-name))
+   		    (user-login-name))
+   (setq egg:*sys-dict* nil
+ 	egg:*usr-dict* nil
+ 	egg:*dict-list* nil
+ 	egg:*dict-menu* nil)
+   (notify "¥Û¥¹¥È %s ¤Î WNN ¤òµ¯Æ°¤·¤Þ¤·¤¿¡£" (or (get-wnn-host-name) "local"))
+   (let ((eggrc (or (egg:search-file egg-startup-file egg-startup-file-search-path)
+ 		   (egg:search-file egg-default-startup-file load-path))))
+     (if eggrc (load-file eggrc)
+       (progn
+ 	(KKCP:server-close)
+ 	(error "eggrc-search-path ¾å¤Ë egg-startup-file ¤¬¤¢¤ê¤Þ¤»¤ó¡£")))))
+ 
+ (defun disconnect-wnn ()
+   (interactive)
+   (KKCP:server-close))
+ 
+ (defun close-wnn ()
+   (interactive)
+   (if (wnn-server-active-p)
+       (progn (wnn-server-dict-save)
+ 	     (message "Wnn¤ÎÉÑÅÙ¾ðÊó¡¦¼­½ñ¾ðÊó¤òÂàÈò¤·¤Þ¤·¤¿¡£")
+ 	     (sit-for 0)))
+   (KKCP:server-close))
+ 
+ ;;;
+ ;;; Kanji henkan
+ ;;;
+ 
+ (defvar egg:*kanji-kanabuff* nil)
+ 
+ (defvar *bunsetu-number* nil)
+ 
+ (defun bunsetu-su ()
+   (wnn-bunsetu-suu))
+ 
+ (defun bunsetu-length (number)
+   (wnn-bunsetu-yomi-moji-suu number))
+ 
+ (defun kanji-moji-suu (str)
+   (let ((max (length str)) (count 0) (i 0))
+     (while (< i max)
+       (setq count (1+ count))
+       (if (< (aref str i) 128) (setq i (1+ i)) (setq i (+ i 2))))
+     count))
+ 
+ (defun bunsetu-position (number)
+   (let ((pos egg:*region-start*) (i 0))
+     (while (< i number)
+       (setq pos (+ pos (bunsetu-kanji-length  i) (length egg:*bunsetu-kugiri*)))
+       (setq i (1+ i)))
+     pos))
+ 
+ (defun bunsetu-kanji-length (bunsetu-no)
+   (wnn-bunsetu-kanji-length bunsetu-no))
+ 
+ (defun bunsetu-kanji (number)
+   (wnn-bunsetu-kanji number))
+ 
+ (defun bunsetu-kanji-insert (bunsetu-no)
+   (wnn-bunsetu-kanji bunsetu-no (current-buffer)))
+ 
+ (defun bunsetu-set-kanji (bunsetu-no kouho-no) 
+   (wnn-server-henkan-kakutei bunsetu-no kouho-no))
+ 
+ (defun bunsetu-yomi  (number) 
+   (wnn-bunsetu-yomi number))
+ 
+ (defun bunsetu-yomi-insert (bunsetu-no)
+   (wnn-bunsetu-yomi bunsetu-no (current-buffer)))
+ 
+ (defun bunsetu-yomi-equal (number yomi)
+   (wnn-bunsetu-yomi-equal number yomi))
+ 
+ (defun bunsetu-kouho-suu (bunsetu-no)
+   (let ((no (wnn-bunsetu-kouho-suu bunsetu-no)))
+     (if (< 1 no) no
+       (KKCP:henkan-next bunsetu-no)
+       (wnn-bunsetu-kouho-suu bunsetu-no))))
+ 
+ (defun bunsetu-kouho-list (number) 
+   (let ((no (bunsetu-kouho-suu number)))
+     (if (= no 1)
+ 	(KKCP:henkan-next number))
+     (wnn-bunsetu-kouho-list number)))
+ 
+ (defun bunsetu-kouho-number (bunsetu-no)
+   (wnn-bunsetu-kouho-number bunsetu-no))
+ 
+ ;;;;
+ ;;;; User entry : henkan-region, henkan-paragraph, henkan-sentence
+ ;;;;
+ 
+ (defun egg:henkan-attribute-on ()
+   (egg:set-region-attribute egg:*henkan-attribute* t))
+ 
+ (defun egg:henkan-attribute-off ()
+   (egg:set-region-attribute egg:*henkan-attribute* nil))
+ 
+ (defun henkan-region (start end)
+   (interactive "r")
+   (if (interactive-p) (set-mark (point))) ;;; to be fixed
+   (henkan-region-internal start end))
+ 
+ (defvar henkan-mode-indicator "´Á»ú")
+ 
+ (defun henkan-region-internal (start end)
+   "region¤ò¤«¤Ê´Á»úÊÑ´¹¤¹¤ë¡£"
+   (setq egg:*kanji-kanabuff* (buffer-substring start end))
+   (setq *bunsetu-number* nil)
+   (let ((result (KKCP:henkan-begin egg:*kanji-kanabuff*)))
+     (if  result
+ 	(progn
+ 	  (mode-line-egg-mode-update henkan-mode-indicator)
+ 	  (goto-char start)
+ 	  (if (null (marker-position egg:*region-start*))
+ 	      (progn
+ 		;;;(setq egg:*global-map-backup* (current-global-map))
+ 		(setq egg:*local-map-backup* (current-local-map))
+ 		(and (boundp 'disable-undo) (setq disable-undo t))
+ 		(goto-char start)
+ 		(delete-region start end)
+ 		(insert egg:*henkan-open*)
+ 		(set-marker egg:*region-start* (point))
+ 		(insert egg:*henkan-close*)
+ 		(set-marker egg:*region-end* egg:*region-start*)
+ 		(egg:henkan-attribute-on)
+ 		(goto-char egg:*region-start*)
+ 		)
+ 	    (progn
+ 	      (egg:fence-attribute-off)
+ 	      (delete-region (- egg:*region-start* (length egg:*fence-open*)) 
+ 			     egg:*region-start*)
+ 	      (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*fence-close*)))
+ 	      (goto-char egg:*region-start*)
+ 	      (insert egg:*henkan-open*)
+ 	      (set-marker egg:*region-start* (point))
+ 	      (goto-char egg:*region-end*)
+ 	      (let ((point (point)))
+ 		(insert egg:*henkan-close*)
+ 		(set-marker egg:*region-end* point))
+ 	      (goto-char start)
+ 	      (delete-region start end)
+ 	      (egg:henkan-attribute-on))
+ 	    )
+ 	  (henkan-insert-kouho 0)
+ 	  (henkan-goto-bunsetu 0)
+ 	  ;;;(use-global-map henkan-mode-map)
+ 	  ;;;(use-local-map nil)
+ 	  (use-local-map henkan-mode-map)
+ 	  )))
+   )
+ 
+ (defun henkan-paragraph ()
+   "Kana-kanji henkan  paragraph at or after point."
+   (interactive )
+   (save-excursion
+     (forward-paragraph)
+     (let ((end (point)))
+       (backward-paragraph)
+       (henkan-region-internal (point) end ))))
+ 
+ (defun henkan-sentence ()
+   "Kana-kanji henkan sentence at or after point."
+   (interactive )
+   (save-excursion
+     (forward-sentence)
+     (let ((end (point)))
+       (backward-sentence)
+       (henkan-region-internal (point) end ))))
+ 
+ ;;;
+ ;;; Kana Kanji Henkan Henshuu mode
+ ;;;
+ 
+ (defconst egg:*bunsetu-kugiri* " " "*Ê¸Àá¤Î¶èÀÚ¤ê¤ò¼¨¤¹Ê¸»úÎó")
+ (defconst egg:*bunsetu-attribute* nil "*Ê¸ÀáÉ½¼¨¤ËÍÑ¤¤¤ëattribute ¤Þ¤¿¤Ï nil")
+ 
+ (defconst egg:*henkan-attribute* nil "*ÊÑ´¹ÎÎ°è¤òÉ½¼¨¤¹¤ëattribute ¤Þ¤¿¤Ï nil")
+ (defconst egg:*henkan-open*  "|" "*ÊÑ´¹¤Î»ÏÅÀ¤ò¼¨¤¹Ê¸»úÎó")
+ (defconst egg:*henkan-close* "|" "*ÊÑ´¹¤Î½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó")
+ 
+ (defun set-egg-henkan-mode-format (open close kugiri &optional attr1 attr2)
+    "ÊÑ´¹ mode ¤ÎÉ½¼¨ÊýË¡¤òÀßÄê¤¹¤ë¡£OPEN ¤ÏÊÑ´¹¤Î»ÏÅÀ¤ò¼¨¤¹Ê¸»úÎó¤Þ¤¿¤Ï nil¡£\n\
+ CLOSE¤ÏÊÑ´¹¤Î½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó¤Þ¤¿¤Ï nil¡£\n\
+ KUGIRI¤ÏÊ¸Àá¤Î¶èÀÚ¤ê¤òÉ½¼¨¤¹¤ëÊ¸»úÎó¤Þ¤¿¤Ï nil¡£\n\
+ optional ATTR1 ¤ÏÊÑ´¹¶è´Ö¤òÉ½¼¨¤¹¤ëÂ°À­ ¤Þ¤¿¤Ï nil¡Êx11term ¤Î¤ß¤ÇÍ­¸ú¡Ë\n\
+ optional ATTR2 ¤ÏÊ¸Àá¶è´Ö¤òÉ½¼¨¤¹¤ëÂ°À­ ¤Þ¤¿¤Ï nil¡Êx11term ¤Î¤ß¤ÇÍ­¸ú¡Ë"
+ 
+   (interactive (list (read-string "ÊÑ´¹³«»ÏÊ¸»úÎó: ")
+ 		     (read-string "ÊÑ´¹½ªÎ»Ê¸»úÎó: ")
+ 		     (read-string "Ê¸Àá¶èÀÚ¤êÊ¸»úÎó: ")
+ 		     (cdr (assoc (completing-read "ÊÑ´¹¶è´ÖÉ½¼¨Â°À­: " egg:*attribute-alist*)
+ 				 egg:*attribute-alist*))
+ 		     (cdr (assoc (completing-read "Ê¸Àá¶è´ÖÉ½¼¨Â°À­: " egg:*attribute-alist*)
+ 				 egg:*attribute-alist*))
+ 		     ))
+ 
+   (if (and (or (stringp open)  (null open))
+ 	   (or (stringp close) (null close))
+ 	   (or (stringp kugiri) (null kugiri))
+ 	   (egg:member attr1 '(underline inverse nil))
+ 	   (egg:member attr2 '(underline inverse nil)))
+       (progn
+ 	(setq egg:*henkan-open* open
+ 	      egg:*henkan-close* close
+ 	      egg:*bunsetu-kugiri* (or kugiri "")
+ 	      egg:*henkan-attribute* attr1
+ 	      egg:*bunsetu-attribute* attr2)
+ 	(if (or attr1 attr2) (require 'attribute))
+ 	nil)
+     (error "Wrong type of arguments: %1 %2 %3 %4 %5" open close kugiri attr1 attr2)))
+ 
+ (defun henkan-insert-kouho (bunsetu-no)
+   (let ((max (bunsetu-su)) (i bunsetu-no))
+     (while (< i max)
+       (bunsetu-kanji-insert i) 
+       (insert  egg:*bunsetu-kugiri* )
+       (setq i (1+ i)))
+     (if (< bunsetu-no max) (delete-char (- (length egg:*bunsetu-kugiri*))))))
+ 
+ (defun henkan-kakutei ()
+   (interactive)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-off)
+   (delete-region (- egg:*region-start* (length egg:*henkan-open*))
+ 		 egg:*region-start*)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*henkan-close*)))
+   (goto-char egg:*region-start*)
+   (let ((i 0) (max (bunsetu-su)))
+     (while (< i max)
+       ;;;(KKCP:henkan-kakutei i (bunsetu-kouho-number i))
+       (bunsetu-kanji-insert i)
+       (if (not overwrite-mode)
+ 	  (undo-boundary))
+       (setq i (1+ i))
+       ))
+   (KKCP:henkan-end)
+   (egg:quit-egg-mode)
+   )
+ 
+ (defun henkan-kakutei-before-point ()
+   (interactive)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-off)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (goto-char egg:*region-start*)
+   (let ((i 0) (max *bunsetu-number*))
+     (while (< i max)
+       ;;;(KKCP:henkan-kakutei i (bunsetu-kouho-number i))
+       (bunsetu-kanji-insert i)
+       (if (not overwrite-mode)
+ 	  (undo-boundary))
+       (setq i (1+ i))
+       ))
+   (KKCP:henkan-end *bunsetu-number*)
+   (delete-region (- egg:*region-start* (length egg:*henkan-open*))
+ 		 egg:*region-start*)
+   (insert egg:*fence-open*)
+   (set-marker egg:*region-start* (point))
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*henkan-close*)))
+   (goto-char egg:*region-end*)
+   (let ((point (point)))
+     (insert egg:*fence-close*)
+     (set-marker egg:*region-end* point))
+   (goto-char egg:*region-start*)
+   (egg:fence-attribute-on)
+   (let ((point (point))
+ 	(i *bunsetu-number*) (max (bunsetu-su)))
+     (while (< i max)
+       (bunsetu-yomi-insert i)
+       (setq i (1+ i)))
+     ;;;(insert "|")
+     ;;;(insert egg:*fence-close*)
+     ;;;(set-marker egg:*region-end* (point))
+     (goto-char point))
+   (setq egg:*mode-on* t)
+   ;;;(use-global-map fence-mode-map)
+   ;;;(use-local-map  nil)
+   (use-local-map fence-mode-map)
+   (egg:mode-line-display))
+ 
+ (defun egg:set-region-attribute (attr on)
+   (if attr 
+       (attribute-on-off-region attr egg:*region-start* egg:*region-end* on)))
+ 
+ (defun egg:set-bunsetu-attribute (no attr switch)
+   (if (and no attr)
+       (attribute-on-off-region
+        attr
+        (if (eq attr 'inverse)
+ 	   (let ((point (bunsetu-position no)))
+ 	     (+ point
+ 		(if (<=  128
+ 			 (char-after (if (markerp point)
+ 					 (marker-position point) 
+ 				       point)))
+ 		    2 1)))
+ 	 (bunsetu-position no))
+ 
+        (if (= no (1- (bunsetu-su)))
+ 	   egg:*region-end*
+ 	 (- (bunsetu-position (1+ no))
+ 	    (length egg:*bunsetu-kugiri*)))
+        switch)))
+ 
+ (defun egg:bunsetu-attribute-on (no)
+   (egg:set-bunsetu-attribute no egg:*bunsetu-attribute* t))
+ 
+ (defun egg:bunsetu-attribute-off (no)
+   (egg:set-bunsetu-attribute no egg:*bunsetu-attribute* nil))
+ 
+ (defun henkan-goto-bunsetu (number)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-on)
+   (setq *bunsetu-number*
+ 	(check-number-range number 0 (1- (bunsetu-su))))
+   (goto-char (bunsetu-position *bunsetu-number*))
+   (egg:set-bunsetu-attribute *bunsetu-number* egg:*henkan-attribute* nil)
+   (egg:bunsetu-attribute-on *bunsetu-number*)
+   )
+ 
+ (defun henkan-forward-bunsetu ()
+   (interactive)
+   (henkan-goto-bunsetu (1+ *bunsetu-number*))
+   )
+ 
+ (defun henkan-backward-bunsetu ()
+   (interactive)
+   (henkan-goto-bunsetu (1- *bunsetu-number*))
+   )
+ 
+ (defun henkan-first-bunsetu ()
+   (interactive)
+   (henkan-goto-bunsetu 0))
+ 
+ (defun henkan-last-bunsetu ()
+   (interactive)
+   (henkan-goto-bunsetu (1- (bunsetu-su)))
+   )
+  
+ (defun check-number-range (i min max)
+   (cond((< i min) max)
+        ((< max i) min)
+        (t i)))
+ 
+ (defun henkan-hiragana ()
+   (interactive)
+   (henkan-goto-kouho (- (bunsetu-kouho-suu *bunsetu-number*) 1)))
+ 
+ (defun henkan-katakana ()
+   (interactive)
+   (henkan-goto-kouho (- (bunsetu-kouho-suu *bunsetu-number*) 2)))
+ 
+ (defun henkan-next-kouho ()
+   (interactive)
+   (henkan-goto-kouho (1+ (bunsetu-kouho-number *bunsetu-number*))))
+ 
+ (defun henkan-previous-kouho ()
+   (interactive)
+   (henkan-goto-kouho (1- (bunsetu-kouho-number *bunsetu-number*))))
+ 
+ (defun henkan-goto-kouho (kouho-number)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-on)
+   (let ((point (point))
+ 	(yomi  (bunsetu-yomi *bunsetu-number*))
+ 	(i *bunsetu-number*)
+ 	(max (bunsetu-su)))
+     (setq kouho-number 
+ 	  (check-number-range kouho-number 
+ 			      0
+ 			      (1- (bunsetu-kouho-suu *bunsetu-number*))))
+     (while (< i max)
+       (if (bunsetu-yomi-equal i yomi)
+ 	  (let ((p1 (bunsetu-position i)))
+ 	    (delete-region p1
+ 			   (+ p1 (bunsetu-kanji-length i)))
+ 	    (goto-char p1)
+ 	    (bunsetu-set-kanji i kouho-number)
+ 	    (bunsetu-kanji-insert i)))
+       (setq i (1+ i)))
+     (goto-char point))
+   (egg:set-bunsetu-attribute *bunsetu-number* egg:*henkan-attribute* nil)
+   (egg:bunsetu-attribute-on *bunsetu-number*))
+ 
+ (defun henkan-bunsetu-chijime ()
+   (interactive)
+   (or (= (bunsetu-length *bunsetu-number*) 1)
+       (bunsetu-length-henko (1-  (bunsetu-length *bunsetu-number*)))))
+ 
+ (defun henkan-bunsetu-nobasi ()
+   (interactive)
+   (if (not (= (1+ *bunsetu-number*) (bunsetu-su)))
+       (bunsetu-length-henko (1+ (bunsetu-length *bunsetu-number*)))))
+ 
+ (defun henkan-saishou-bunsetu ()
+   (interactive)
+   (bunsetu-length-henko 1))
+ 
+ (defun henkan-saichou-bunsetu ()
+   (interactive)
+   (let ((max (bunsetu-su)) (i *bunsetu-number*)
+ 	(l 0))
+     (while (< i max)
+       (setq l (+ l (bunsetu-length i)))
+       (setq i (1+ i)))
+     (bunsetu-length-henko l)))
+ 
+ (defun bunsetu-length-henko (length)
+   (egg:henkan-attribute-off)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (let ((r (KKCP:bunsetu-henkou *bunsetu-number* length)))
+     (cond(r
+ 	  (delete-region 
+ 	   (bunsetu-position *bunsetu-number*) egg:*region-end*)
+ 	  (goto-char (bunsetu-position *bunsetu-number*))
+ 	  (henkan-insert-kouho *bunsetu-number*)
+ 	  (henkan-goto-bunsetu *bunsetu-number*))
+ 	 (t
+ 	  (egg:henkan-attribute-on)
+ 	  (egg:set-bunsetu-attribute *bunsetu-number* egg:*henkan-attribute* nil)
+ 	  (egg:bunsetu-attribute-on *bunsetu-number*)))))
+ 
+ (defun henkan-quit ()
+   (interactive)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-off)
+   (delete-region (- egg:*region-start* (length egg:*henkan-open*))
+ 		 egg:*region-start*)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*henkan-close*)))
+   (goto-char egg:*region-start*)
+   (insert egg:*fence-open*)
+   (set-marker egg:*region-start* (point))
+   (insert egg:*kanji-kanabuff*)
+   (let ((point (point)))
+     (insert egg:*fence-close*)
+     (set-marker egg:*region-end* point)
+     )
+   (goto-char egg:*region-end*)
+   (egg:fence-attribute-on)
+   (KKCP:henkan-quit)
+   (setq egg:*mode-on* t)
+   ;;;(use-global-map fence-mode-map)
+   ;;;(use-local-map  nil)
+   (use-local-map fence-mode-map)
+   (egg:mode-line-display)
+   )
+ 
+ (defun henkan-select-kouho ()
+   (interactive)
+   (if (not (eq (selected-window) (minibuffer-window)))
+       (let ((kouho-list (bunsetu-kouho-list *bunsetu-number*))
+ 	    menu)
+ 	(setq menu
+ 	      (list 'menu "¼¡¸õÊä:"
+ 		    (let ((l kouho-list) (r nil) (i 0))
+ 		      (while l
+ 			(setq r (cons (cons (car l) i) r))
+ 			(setq i (1+ i))
+ 			(setq l (cdr l)))
+ 		      (reverse r))))
+ 	(henkan-goto-kouho 
+ 	 (menu:select-from-menu menu 
+ 			       (bunsetu-kouho-number *bunsetu-number*))))
+     (beep)))
+ 
+ (defun henkan-kakutei-and-self-insert ()
+   (interactive)
+   (setq unread-command-char last-command-char)
+   (henkan-kakutei))
+ 
+ 
+ (defvar henkan-mode-map (make-keymap))
+ 
+ (defvar henkan-mode-esc-map (make-keymap))
+ 
+ (let ((ch 0))
+   (while (<= ch 127)
+     (aset henkan-mode-map ch 'undefined)
+     (aset henkan-mode-esc-map ch 'undefined)
+     (setq ch (1+ ch))))
+ 
+ (let ((ch 32))
+   (while (< ch 127)
+     (aset henkan-mode-map ch 'henkan-kakutei-and-self-insert)
+     (setq ch (1+ ch))))
+ 	
+ (define-key henkan-mode-map "\e"    henkan-mode-esc-map)
+ (define-key henkan-mode-map "\ei"  'henkan-inspect-bunsetu)
+ (define-key henkan-mode-map "\es"  'henkan-select-kouho)
+ (define-key henkan-mode-map "\eh"  'henkan-hiragana)
+ (define-key henkan-mode-map "\ek"  'henkan-katakana)
+ (define-key henkan-mode-map "\e<"  'henkan-saishou-bunsetu)
+ (define-key henkan-mode-map "\e>"  'henkan-saichou-bunsetu)
+ (define-key henkan-mode-map " "    'henkan-next-kouho)
+ (define-key henkan-mode-map "\C-@" 'henkan-next-kouho)
+ (define-key henkan-mode-map "\C-a" 'henkan-first-bunsetu)
+ (define-key henkan-mode-map "\C-b" 'henkan-backward-bunsetu)
+ (define-key henkan-mode-map "\C-c" 'henkan-quit)
+ (define-key henkan-mode-map "\C-d" 'undefined)
+ (define-key henkan-mode-map "\C-e" 'henkan-last-bunsetu)
+ (define-key henkan-mode-map "\C-f" 'henkan-forward-bunsetu)
+ (define-key henkan-mode-map "\C-g" 'henkan-quit)
+ (define-key henkan-mode-map "\C-h" 'help-command)
+ (define-key henkan-mode-map "\C-i" 'henkan-bunsetu-chijime)
+ (define-key henkan-mode-map "\C-j" 'undefined)
+ (define-key henkan-mode-map "\C-k" 'henkan-kakutei-before-point)
+ (define-key henkan-mode-map "\C-l" 'henkan-kakutei)
+ (define-key henkan-mode-map "\C-m" 'henkan-kakutei)
+ (define-key henkan-mode-map "\C-n" 'henkan-next-kouho)
+ (define-key henkan-mode-map "\C-o" 'henkan-bunsetu-nobasi)
+ (define-key henkan-mode-map "\C-p" 'henkan-previous-kouho)
+ (define-key henkan-mode-map "\C-q" 'undefined)
+ (define-key henkan-mode-map "\C-r" 'undefined)
+ (define-key henkan-mode-map "\C-s" 'undefined)
+ (define-key henkan-mode-map "\C-t" 'undefined)
+ (define-key henkan-mode-map "\C-u" 'undefined)
+ (define-key henkan-mode-map "\C-v" 'undefined)
+ (define-key henkan-mode-map "\C-w" 'undefined)
+ (define-key henkan-mode-map "\C-x" 'undefined)
+ (define-key henkan-mode-map "\C-y" 'undefined)
+ (define-key henkan-mode-map "\C-z" 'undefined)
+ (define-key henkan-mode-map "\177" 'henkan-quit)
+ 
+ (defun henkan-help-command ()
+   "Display documentation fo henkan-mode."
+   (interactive)
+   (with-output-to-temp-buffer "*Help*"
+     (princ (substitute-command-keys henkan-mode-document-string))
+     (print-help-return-message)))
+ 
+ (defvar henkan-mode-document-string "´Á»úÊÑ´¹¥â¡¼¥É:
+ Ê¸Àá°ÜÆ°
+   \\[henkan-first-bunsetu]\tÀèÆ¬Ê¸Àá\t\\[henkan-last-bunsetu]\t¸åÈøÊ¸Àá  
+   \\[henkan-backward-bunsetu]\tÄ¾Á°Ê¸Àá\t\\[henkan-forward-bunsetu]\tÄ¾¸åÊ¸Àá
+ ÊÑ´¹ÊÑ¹¹
+   ¼¡¸õÊä    \\[henkan-previous-kouho]  \tÁ°¸õÊä    \\[henkan-next-kouho]
+   Ê¸Àá¿­¤·  \\[henkan-bunsetu-nobasi]  \tÊ¸Àá½Ì¤á  \\[henkan-bunsetu-chijime]
+   ÊÑ´¹¸õÊäÁªÂò  \\[henkan-select-kouho]
+ ÊÑ´¹³ÎÄê
+   Á´Ê¸Àá³ÎÄê  \\[henkan-kakutei]  \tÄ¾Á°Ê¸Àá¤Þ¤Ç³ÎÄê  \\[henkan-kakutei-before-point]
+ ÊÑ´¹Ãæ»ß    \\[henkan-quit]
+ ")
+   
+ 
+ ;;;----------------------------------------------------------------------
+ ;;;
+ ;;; Dictionary management Facility
+ ;;;
+ ;;;----------------------------------------------------------------------
+ 
+ ;;;
+ ;;; ¼­½ñÅÐÏ¿ 
+ ;;;
+ 
+ ;;;;
+ ;;;; User entry: toroku-region
+ ;;;;
+ 
+ (defun remove-regexp-in-string (regexp string)
+   (cond((not(string-match regexp string))
+ 	string)
+        (t(let ((str nil)
+ 	     (ostart 0)
+ 	     (oend   (match-beginning 0))
+ 	     (nstart (match-end 0)))
+ 	 (setq str (concat str (substring string ostart oend)))
+ 	 (while (string-match regexp string nstart)
+ 	   (setq ostart nstart)
+ 	   (setq oend   (match-beginning 0))
+ 	   (setq nstart (match-end 0))
+ 	   (setq str (concat str (substring string ostart oend))))
+ 	 str))))
+ 
+ (defun toroku-region (start end)
+   (interactive "r")
+   (let*((kanji
+ 	 (remove-regexp-in-string "[\0-\37]" (buffer-substring start end)))
+ 	(yomi (read-hiragana-string
+ 	       (format "¼­½ñÅÐÏ¿¡Ø%s¡Ù  ÆÉ¤ß :" kanji)))
+ 	(type (menu:select-from-menu *bunpo-menu*))
+ 	(dict-no 
+ 	 (menu:select-from-menu (list 'menu "ÅÐÏ¿¼­½ñÌ¾:" egg:*dict-menu*))))
+     ;;;(if (string-match "[\0-\177]" kanji)
+     ;;;	(error "Kanji string contains hankaku character. %s" kanji))
+     ;;;(if (string-match "[\0-\177]" yomi)
+     ;;;	(error "Yomi string contains hankaku character. %s" yomi))
+     (KKCP:set-current-dict dict-no)
+     (KKCP:dict-add kanji yomi type)
+     (let ((hinshi (nth 1 (assq type *bunpo-code*)))
+ 	  (gobi   (nth 2 (assq type *bunpo-code*)))
+ 	  (dict-name (cdr (assq dict-no egg:*usr-dict*))))
+       (notify "¼­½ñ¹àÌÜ¡Ø%s¡Ù(%s: %s)¤ò%s¤ËÅÐÏ¿¤·¤Þ¤·¤¿¡£"
+ 	      (if gobi (concat kanji " " gobi) kanji)
+ 	      (if gobi (concat yomi  " " gobi) yomi)
+ 	      hinshi dict-name))))
+ 
+ 
+ 
+ ;;; (lsh 1 18)
+ (defvar *bunpo-menu*
+   '(menu "ÉÊ»ì:"
+    (("Ì¾»ì"      . 18)
+     ("¸ÇÍ­Ì¾»ì"  . 29)
+     ("Æ°»ì"      .
+ 	  (menu "ÉÊ»ì:Æ°»ì:"
+ 		(("¥«¹Ô¸ÞÃÊ¸ì´´"        . 0)   
+ 		 ("¥«¹Ô¸ÞÃÊ¸ì´´(ÆÃ¼ì)"  . 1)   
+ 		 ("¥¬¹Ô¸ÞÃÊ¸ì´´"        . 2)   
+ 		 ("¥µ¹Ô¸ÞÃÊ¸ì´´"        . 3)   
+ 		 ("¥¿¹Ô¸ÞÃÊ¸ì´´"        . 4)   
+ 		 ("¥Ê¹Ô¸ÞÃÊ¸ì´´"        . 5)   
+ 		 ("¥Ð¹Ô¸ÞÃÊ¸ì´´"        . 6)   
+ 		 ("¥Þ¹Ô¸ÞÃÊ¸ì´´"        . 7)   
+ 		 ("¥é¹Ô¸ÞÃÊ¸ì´´"        . 8)   
+ 		 ("¥ï¥¢¹Ô¸ÞÃÊ¸ì´´"      . 9)   
+ 		 ("°ìÃÊÉÔÊÑ²½Éô(ÂÎ¸À)"  . 10)
+ 		 ("°ìÃÊÉÔÊÑ²½Éô(ÈóÂÎ¸À)" . 11)
+ 		 ("¥µÊÑ(Ì¾»ì·¿)¸ì´´"     . 12)
+ 		 ("¥µÊÑ(¤¹¤ë·¿)¸ì´´"     . 13)
+ 		 ("¥µÊÑ(¤º¤ë·¿)¸ì´´"     . 14)
+ 		 ("¥«ÊÑ´Á»úÉô"           . 15)
+ 		 ("¥«ÊÑÆ°»ì(¤­)"         . 22)
+ 		 ("¥«ÊÑÆ°»ì(¤¯)"         . 23)
+ 		 ("¥éÊÑÆ°»ì"             . 28))))
+     ("·ÁÍÆ»ì¸ì´´"     . 16)
+     ("·ÁÍÆÆ°»ì¸ì´´"   . 17)
+     ("Ï¢ÂÎ»ì"         . 19)
+     ("Éû»ì"           . 20)
+     ("ÀÜÂ³»ì¡¦´¶Æ°»ì" . 21)
+     ("ÀÜÆ¬¸ì"         . 24)
+     ("ÀÜÈø¸ì"         . 25)
+     ("½õ¿ô»ì"         . 26)
+     ("¿ô»ì"           . 27)
+     ("Ã±´Á»ú"         . 31))))
+ 
+ (defvar *bunpo-code*
+   '(
+     ( 0   "¥«¹Ô¸ÞÃÊ¸ì´´"         "¤¯" ("¤«¤Ê¤¤" "¤­¤Þ¤¹" "¤¯" "¤¯¤È¤­" "¤±"))   
+     ( 1   "¥«¹Ô¸ÞÃÊ¸ì´´(ÆÃ¼ì)"   "¤¯" ("" "" "" "" ""))   
+     ( 2   "¥¬¹Ô¸ÞÃÊ¸ì´´"         "¤°" ("¤¬¤Ê¤¤" "¤®¤Þ¤¹" "" "" ""))   
+     ( 3   "¥µ¹Ô¸ÞÃÊ¸ì´´"         "¤¹" ("" "" "" "" ""))   
+     ( 4   "¥¿¹Ô¸ÞÃÊ¸ì´´"         "¤Ä" ("" "" "" "" ""))   
+     ( 5   "¥Ê¹Ô¸ÞÃÊ¸ì´´"         "¤Ì" ("" "" "" "" ""))   
+     ( 6   "¥Ð¹Ô¸ÞÃÊ¸ì´´"         "¤Ö" ("" "" "" "" ""))   
+     ( 7   "¥Þ¹Ô¸ÞÃÊ¸ì´´"         "¤à" ("" "" "" "" ""))   
+     ( 8   "¥é¹Ô¸ÞÃÊ¸ì´´"         "¤ë" ("" "" "" "" ""))   
+     ( 9   "¥ï¥¢¹Ô¸ÞÃÊ¸ì´´"       "¤¦" ("" "" "" "" ""))   
+     ( 10  "°ìÃÊÉÔÊÑ²½Éô(ÂÎ¸À)"   "¤ë" ("" "" "" "" ""))
+     ( 11  "°ìÃÊÉÔÊÑ²½Éô(ÈóÂÎ¸À)" "¤ë" ("" "" "" "" ""))
+     ( 12  "¥µÊÑ(Ì¾»ì·¿)¸ì´´"     "¤¹¤ë" ("" "" "" "" ""))
+     ( 13  "¥µÊÑ(¤¹¤ë·¿)¸ì´´"     "¤¹¤ë" ("" "" "" "" ""))
+     ( 14  "¥µÊÑ(¤º¤ë·¿)¸ì´´"     "¤º¤ë" ("" "" "" "" ""))
+     ( 15  "¥«ÊÑ´Á»úÉô"           "¤ë"  ("" "" "" "" ""))
+     ( 16  "·ÁÍÆ»ì¸ì´´"           "¤¤" ("" "" "" "" ""))
+     ( 17  "·ÁÍÆÆ°»ì¸ì´´"         "¤Ë" ("" "" "" "" "") )
+     ( 18  "Ì¾»ì" )
+     ( 19  "Ï¢ÂÎ»ì" )
+     ( 20  "Éû»ì" )
+     ( 21  "ÀÜÂ³»ì¡¦´¶Æ°»ì" )
+     ( 22  "¥«ÊÑÆ°»ì(¤­)"         "¤ë" ("" "" "" "" ""))
+     ( 23  "¥«ÊÑÆ°»ì(¤¯)"         "¤ë" ("" "" "" "" ""))
+     ( 24  "ÀÜÆ¬¸ì" )
+     ( 25  "ÀÜÈø¸ì" )
+     ( 26  "½õ¿ô»ì" )
+     ( 27  "¿ô»ì"   )
+     ( 28  "¥éÊÑÆ°»ì" "¤ë" ("" "" "" "" ""))
+     ( 29  "¸ÇÍ­Ì¾»ì")
+     ( 31  "Ã±´Á»ú"  )
+     ( 1000  "¤½¤ÎÂ¾"  )
+     ))
+ 
+ ;;;
+ ;;; ¼­½ñÊÔ½¸·Ï DicEd
+ ;;;
+ 
+ (defvar *diced-window-configuration* nil)
+ 
+ (defvar *diced-dict-info* nil)
+ 
+ (defvar *diced-yomi* nil)
+ 
+ ;;;;;
+ ;;;;; User entry : edit-dict-item
+ ;;;;;
+ 
+ (defun edit-dict-item (yomi)
+   (interactive (list (read-hiragana-string "¤è¤ß¡§")))
+   (let ((dict-info (KKCP:dict-info yomi  )))
+     (if (null dict-info)
+ 	(message "¡Ø%s¡Ù¤Î¼­½ñ¹àÌÜ¤Ï¤¢¤ê¤Þ¤»¤ó¡£" yomi)
+       (progn
+ 	(setq *diced-yomi* yomi)
+ 	(setq *diced-window-configuration* (current-window-configuration))
+ 	(pop-to-buffer "*Nihongo Dictionary Information*")
+ 	(setq major-mode 'diced-mode)
+ 	(setq mode-name "Diced")
+ 	(setq mode-line-buffer-identification 
+ 	      (concat "DictEd: " yomi
+ 		      (make-string  (max 0 (- 17 (length yomi))) ?  )))
+ 	(sit-for 0) ;; will redislay.
+ 	;;;(use-global-map diced-mode-map)
+ 	(use-local-map diced-mode-map)
+ 	(diced-display dict-info)
+ 	))))
+ 
+ (defun diced-redisplay ()
+   (let ((dict-info (KKCP:dict-info *diced-yomi*)))
+     (if (null dict-info)
+ 	(progn
+ 	  (message "¡Ø%s¡Ù¤Î¼­½ñ¹àÌÜ¤Ï¤¢¤ê¤Þ¤»¤ó¡£" *diced-yomi*)
+ 	  (diced-quit))
+       (diced-display dict-info))))
+ 
+ (defun diced-display (dict-info)
+ 	;;; (values (list (record kanji bunpo hindo dict-no serial-no)))
+ 	;;;                         0     1     2      3       4
+   (setq dict-info
+ 	(sort dict-info
+ 	      (function (lambda (x y)
+ 			  (or (< (nth 1 x) (nth 1 y))
+ 			      (if (= (nth 1 x) (nth 1 y))
+ 				  (or (> (nth 2 x) (nth 2 y))
+ 				      (if (= (nth 2 x) (nth 2 y))
+ 					  (< (nth 3 x) (nth 3 y))))))))))
+   (setq *diced-dict-info* dict-info)
+   (setq buffer-read-only nil)
+   (erase-buffer)
+   (let ((l-kanji 
+ 	 (apply 'max
+ 		(mapcar (function (lambda (l) (length(nth 0 l))))
+ 			dict-info)))
+ 	(l-bunpo
+ 	 (apply 'max
+ 		(mapcar (function(lambda (l)
+ 				   (length (nth 1 (assq (nth 1 l) *bunpo-code*)))))
+ 			dict-info))))
+     (while dict-info
+       (let*((kanji (nth 0 (car dict-info)))
+ 	    (bunpo (nth 1 (car dict-info)))
+ 	    (gobi   (nth 2 (assq bunpo *bunpo-code*)))
+ 	    (hinshi (nth 1 (assq bunpo *bunpo-code*)))
+ 	    (hindo (nth 2 (car dict-info)))
+ 	    (dict-no (nth 3 (car dict-info)))
+ 	    (dict-name (or (cdr (assq dict-no egg:*sys-dict*))
+ 			   (cdr (assq dict-no egg:*usr-dict*))
+ 			   (int-to-string dict-no)))
+ 	    (sys-dict-p (assq dict-no egg:*sys-dict*))
+ 	    (serial-no (nth 4 (car dict-info)))
+ 	    )
+ 	      
+ 
+ 	(insert (if sys-dict-p " *" "  "))
+ 	(insert kanji)
+ 	(if gobi (insert " " gobi))
+ 	(insert-char ?  
+ 		     (- (+ l-kanji 10) (length kanji)
+ 			(if gobi (+ 1 (length gobi)) 0)))
+ 	(insert hinshi)
+ 	(insert-char ?  (- (+ l-bunpo 2) (length hinshi)))
+ 	(insert "¼­½ñ¡§" (file-name-nondirectory dict-name)
+ 		"/" (int-to-string serial-no)
+ 		" ÉÑÅÙ¡§" (int-to-string hindo) ?\n )
+ 	(setq dict-info (cdr dict-info))))
+     (goto-char (point-min)))
+   (setq buffer-read-only t))
+ 
+ (defun diced-add ()
+   (interactive)
+   (diced-execute t)
+   (let*((kanji  (read-from-minibuffer "´Á»ú¡§"))
+ 	(bunpo (menu:select-from-menu *bunpo-menu*))
+ 	(dict-no 
+ 	 (menu:select-from-menu (list 'menu "ÅÐÏ¿¼­½ñÌ¾:" egg:*dict-menu*)))
+ 	(dict-name (cdr (assq dict-no egg:*usr-dict*)))
+ 	(gobi   (nth 2 (assq bunpo *bunpo-code*)))
+ 	(hinshi (nth 1 (assq bunpo *bunpo-code*)))
+ 	(item (if gobi (concat kanji " " gobi) kanji))
+ 	(item-yomi (if gobi (concat *diced-yomi* " " gobi)
+ 		     *diced-yomi*))
+ 	)
+     (if (notify-yes-or-no-p "¼­½ñ¹àÌÜ¡Ø%s¡Ù(%s: %s)¤ò%s¤ËÅÐÏ¿¤·¤Þ¤¹¡£" 
+ 	      item item-yomi hinshi dict-name)
+ 	(progn
+ 	  (KKCP:set-current-dict dict-no)
+ 	  (KKCP:dict-add kanji *diced-yomi* bunpo)
+ 	  (notify "¼­½ñ¹àÌÜ¡Ø%s¡Ù(%s: %s)¤ò%s¤ËÅÐÏ¿¤·¤Þ¤·¤¿¡£" 
+ 		  item item-yomi hinshi dict-name)
+ 	  (diced-redisplay)))))
+ 	      
+ (defun diced-delete ()
+   (interactive)
+   (beginning-of-line)
+   (if (= (char-after (1+ (point))) ?* )
+       (progn (message "¥·¥¹¥Æ¥à¼­½ñ¹àÌÜ¤Ïºï½ü¤Ç¤­¤Þ¤»¤ó¡£") (beep) )
+     (if (= (following-char) ?  )
+ 	(let ((buffer-read-only nil))
+ 	  (delete-char 1) (insert "D") (backward-char 1))
+       )))
+     
+ (defun diced-undelete ()
+   (interactive)
+   (beginning-of-line)
+   (if (= (following-char) ?D)
+       (let ((buffer-read-only nil))
+ 	(delete-char 1) (insert " ") (backward-char 1))
+     (beep)))
+ 
+ (defun diced-quit ()
+   (interactive)
+   (setq buffer-read-only nil)
+   (erase-buffer)
+   (setq buffer-read-only t)
+   (bury-buffer (get-buffer "*Nihongo Dictionary Information*"))
+   (set-window-configuration *diced-window-configuration*)
+   )
+ 
+ (defun diced-execute (&optional display)
+   (interactive)
+   (goto-char (point-min))
+   (let ((no  0))
+     (while (not (eobp))
+       (if (= (following-char) ?D)
+ 	  (let* ((dict-item (nth no *diced-dict-info*))
+ 		 (kanji (nth 0 dict-item))
+ 		 (bunpo (nth 1 dict-item))
+ 		 (gobi   (nth 2 (assq bunpo *bunpo-code*)))
+ 		 (hinshi (nth 1 (assq bunpo *bunpo-code*)))
+ 		 (hindo (nth 2 dict-item))
+ 		 (dict-no (nth 3 dict-item))
+ 		 (dict-name (or (cdr (assq dict-no egg:*sys-dict*))
+ 				(cdr (assq dict-no egg:*usr-dict*))
+ 				(int-to-string dict-no)))
+ 		 (sys-dict-p (assq dict-no egg:*sys-dict*))
+ 		 (serial-no (nth 4 dict-item))
+ 		 (item (if gobi (concat kanji " " gobi) kanji))
+ 		 )
+ 	    (if (notify-yes-or-no-p "¼­½ñ¹àÌÜ%s(%s)¤ò%s¤«¤éºï½ü¤·¤Þ¤¹¡£"
+ 				item hinshi dict-name)
+ 		(progn
+ 		  (KKCP:set-current-dict dict-no)
+ 		  (KKCP:dict-delete serial-no *diced-yomi*)
+ 		  (notify "¼­½ñ¹àÌÜ%s(%s)¤ò%s¤«¤éºï½ü¤·¤Þ¤·¤¿¡£" item hinshi dict-name)
+ 		  ))))
+       (setq no (1+ no))
+       (forward-line 1)))
+   (forward-line -1)
+   (if (not display) (diced-redisplay)))
+ 
+ (defun diced-next-line ()
+   (interactive)
+   (beginning-of-line)
+   (forward-line 1)
+   (if (eobp) (progn (beep) (forward-line -1))))
+ 
+ (defun diced-end-of-buffer ()
+   (interactive)
+   (end-of-buffer)
+   (forward-line -1))
+ 
+ (defun diced-scroll-down ()
+   (interactive)
+   (scroll-down)
+   (if (eobp) (forward-line -1)))
+ 
+ (defun diced-mode ()
+   "Mode for \"editing\" dictionaries.
+ In diced, you are \"editing\" a list of the entries in dictionaries.
+ You can move using the usual cursor motion commands.
+ Letters no longer insert themselves. Instead, 
+ 
+ Type  a to Add new entry.
+ Type  d to flag an entry for Deletion.
+ Type  n to move cursor to Next entry.
+ Type  p to move cursor to Previous entry.
+ Type  q to Quit from DicEd.
+ Type  u to Unflag an entry (remove its D flag).
+ Type  x to eXecute the deletions requested.
+ "
+  )
+ 
+ (defvar diced-mode-map (let ((map (make-keymap))) (suppress-keymap map) map))
+ 
+ (define-key diced-mode-map "a"    'diced-add)
+ (define-key diced-mode-map "d"    'diced-delete)
+ (define-key diced-mode-map "n"    'diced-next-line)
+ (define-key diced-mode-map "p"    'previous-line)
+ (define-key diced-mode-map "q"    'diced-quit)
+ (define-key diced-mode-map "u"    'diced-undelete)
+ (define-key diced-mode-map "x"    'diced-execute)
+ 
+ (define-key diced-mode-map "\C-h" 'help-command)
+ (define-key diced-mode-map "\C-n" 'diced-next-line)
+ (define-key diced-mode-map "\C-p" 'previous-line)
+ (define-key diced-mode-map "\C-v" 'scroll-up)
+ (define-key diced-mode-map "\e<"  'beginning-of-buffer)
+ (define-key diced-mode-map "\e>"  'diced-end-of-buffer)
+ (define-key diced-mode-map "\ev"  'diced-scroll-down)
+ 
+ 
+ ;;;
+ ;;; Pure inspect facility
+ ;;;
+ 
+ (defun henkan-inspect-bunsetu ()
+   (interactive)
+   (let*((info (KKCP:henkan-inspect
+ 	       *bunsetu-number* 
+ 	       (bunsetu-kouho-number *bunsetu-number*)))
+ 	(jiritugo (nth 0 info))
+ 	(fuzokugo (nth 1 info))
+ 	(yomi (nth 2 info))
+ 	(jishono  (nth 3 info))
+ 	(jishoname (file-name-nondirectory 
+ 		    (or (cdr (assq jishono egg:*sys-dict*))
+ 			(cdr (assq jishono egg:*usr-dict*))
+ 			(int-to-string jishono))))
+ 	(serial   (nth 4 info))
+ 	(bunpo    nil)
+ 	(hinshi   nil)
+ 	(hindo    nil))
+     (if (or (= serial -1)
+ 	    (equal yomi ""))
+ 	(notify-internal 
+ 	 (format  "¡Ö%s¡×¡Ê¤Ò¤é¤¬¤Ê¡¦¥«¥¿¥«¥ÊÊÑ´¹¡Ë¡Ü¡Ö%s¡×"
+ 		  jiritugo fuzokugo)
+ 	 t)	
+       (let ((list (KKCP:dict-info yomi)))
+ 	(while (and list (null bunpo))
+ 	  (if (and (equal jiritugo (nth 0 (car list)))
+ 		   (= jishono  (nth 3 (car list)))
+ 		   (= serial   (nth 4 (car list))))
+ 	      (setq bunpo (nth 1 (car list))
+ 		    hindo (nth 2 (car list))))
+ 	  (setq list (cdr list))))
+       (setq hinshi (nth 1 (assq bunpo *bunpo-code*)))
+ 
+       (notify-internal
+        (format "¡Ö%s¡×¡ÊÉÊ»ì¡§%s ¼­½ñ¡§%s ÈÖ¹æ¡§%s ÉÑÅÙ¡§%s ¡Ë¡Ü¡Ö%s¡×"
+ 	       jiritugo hinshi jishoname serial hindo fuzokugo)
+        t))))
+ 
+ 
+ ;;; µ­¹æÆþÎÏ
+ 
+ (defvar *ku1-alist* '(
+ 	 ( "¡¡" . "¡¡")
+ 	 ( "¡¢" . "¡¢")
+ 	 ( "¡£" . "¡£")
+ 	 ( "¡¤" . "¡¤")
+ 	 ( "¡¥" . "¡¥")
+ 	 ( "¡¦" . "¡¦")
+ 	 ( "¡§" . "¡§")
+ 	 ( "¡¨" . "¡¨")
+ 	 ( "¡©" . "¡©")
+ 	 ( "¡ª" . "¡ª")
+ 	 ( "¡«" . "¡«")
+ 	 ( "¡¬" . "¡¬")
+ 	 ( "¡­" . "¡­")
+ 	 ( "¡®" . "¡®")
+ 	 ( "¡¯" . "¡¯")
+ 	 ( "¡°" . "¡°")
+ 	 ( "¡±" . "¡±")
+ 	 ( "¡²" . "¡²")
+ 	 ( "¡³" . "¡³")
+ 	 ( "¡´" . "¡´")
+ 	 ( "¡µ" . "¡µ")
+ 	 ( "¡¶" . "¡¶")
+ 	 ( "¡·" . "¡·")
+ 	 ( "¡¸" . "¡¸")
+ 	 ( "¡¹" . "¡¹")
+ 	 ( "¡º" . "¡º")
+ 	 ( "¡»" . "¡»")
+ 	 ( "¡¼" . "¡¼")
+ 	 ( "¡½" . "¡½")
+ 	 ( "¡¾" . "¡¾")
+ 	 ( "¡¿" . "¡¿")
+ 	 ( "¡À" . "¡À")
+ 	 ( "¡Á" . "¡Á")
+ 	 ( "¡Â" . "¡Â")
+ 	 ( "¡Ã" . "¡Ã")
+ 	 ( "¡Ä" . "¡Ä")
+ 	 ( "¡Å" . "¡Å")
+ 	 ( "¡Æ" . "¡Æ")
+ 	 ( "¡Ç" . "¡Ç")
+ 	 ( "¡È" . "¡È")
+ 	 ( "¡É" . "¡É")
+ 	 ( "¡Ê" . "¡Ê")
+ 	 ( "¡Ë" . "¡Ë")
+ 	 ( "¡Ì" . "¡Ì")
+ 	 ( "¡Í" . "¡Í")
+ 	 ( "¡Î" . "¡Î")
+ 	 ( "¡Ï" . "¡Ï")
+ 	 ( "¡Ð" . "¡Ð")
+ 	 ( "¡Ñ" . "¡Ñ")
+ 	 ( "¡Ò" . "¡Ò")
+ 	 ( "¡Ó" . "¡Ó")
+ 	 ( "¡Ô" . "¡Ô")
+ 	 ( "¡Õ" . "¡Õ")
+ 	 ( "¡Ö" . "¡Ö")
+ 	 ( "¡×" . "¡×")
+ 	 ( "¡Ø" . "¡Ø")
+ 	 ( "¡Ù" . "¡Ù")
+ 	 ( "¡Ú" . "¡Ú")
+ 	 ( "¡Û" . "¡Û")
+ 	 ( "¡Ü" . "¡Ü")
+ 	 ( "¡Ý" . "¡Ý")
+ 	 ( "¡Þ" . "¡Þ")
+ 	 ( "¡ß" . "¡ß")
+ 	 ( "¡à" . "¡à")
+ 	 ( "¡á" . "¡á")
+ 	 ( "¡â" . "¡â")
+ 	 ( "¡ã" . "¡ã")
+ 	 ( "¡ä" . "¡ä")
+ 	 ( "¡å" . "¡å")
+ 	 ( "¡æ" . "¡æ")
+ 	 ( "¡ç" . "¡ç")
+ 	 ( "¡è" . "¡è")
+ 	 ( "¡é" . "¡é")
+ 	 ( "¡ê" . "¡ê")
+ 	 ( "¡ë" . "¡ë")
+ 	 ( "¡ì" . "¡ì")
+ 	 ( "¡í" . "¡í")
+ 	 ( "¡î" . "¡î")
+ 	 ( "¡ï" . "¡ï")
+ 	 ( "¡ð" . "¡ð")
+ 	 ( "¡ñ" . "¡ñ")
+ 	 ( "¡ò" . "¡ò")
+ 	 ( "¡ó" . "¡ó")
+ 	 ( "¡ô" . "¡ô")
+ 	 ( "¡õ" . "¡õ")
+ 	 ( "¡ö" . "¡ö")
+ 	 ( "¡÷" . "¡÷")
+ 	 ( "¡ø" . "¡ø")
+ 	 ( "¡ù" . "¡ù")
+ 	 ( "¡ú" . "¡ú")
+ 	 ( "¡û" . "¡û")
+ 	 ( "¡ü" . "¡ü")
+ 	 ( "¡ý" . "¡ý")
+ 	 ( "¡þ" . "¡þ")
+ ))
+ (defvar *ku2-alist* '(
+ 	 ( "¢¡" . "¢¡")
+ 	 ( "¢¢" . "¢¢")
+ 	 ( "¢£" . "¢£")
+ 	 ( "¢¤" . "¢¤")
+ 	 ( "¢¥" . "¢¥")
+ 	 ( "¢¦" . "¢¦")
+ 	 ( "¢§" . "¢§")
+ 	 ( "¢¨" . "¢¨")
+ 	 ( "¢©" . "¢©")
+ 	 ( "¢ª" . "¢ª")
+ 	 ( "¢«" . "¢«")
+ 	 ( "¢¬" . "¢¬")
+ 	 ( "¢­" . "¢­")
+ 	 ( "¢®" . "¢®")
+ ;	 ( "¢¯" . "¢¯")
+ ;	 ( "¢°" . "¢°")
+ ;	 ( "¢±" . "¢±")
+ ;	 ( "¢²" . "¢²")
+ ;	 ( "¢³" . "¢³")
+ ;	 ( "¢´" . "¢´")
+ ;	 ( "¢µ" . "¢µ")
+ ;	 ( "¢¶" . "¢¶")
+ ;	 ( "¢·" . "¢·")
+ ;	 ( "¢¸" . "¢¸")
+ ;	 ( "¢¹" . "¢¹")
+ 	 ( "¢º" . "¢º")
+ 	 ( "¢»" . "¢»")
+ 	 ( "¢¼" . "¢¼")
+ 	 ( "¢½" . "¢½")
+ 	 ( "¢¾" . "¢¾")
+ 	 ( "¢¿" . "¢¿")
+ 	 ( "¢À" . "¢À")
+ 	 ( "¢Á" . "¢Á")
+ ;	 ( "¢Â" . "¢Â")
+ ;	 ( "¢Ã" . "¢Ã")
+ ;	 ( "¢Ä" . "¢Ä")
+ ;	 ( "¢Å" . "¢Å")
+ ;	 ( "¢Æ" . "¢Æ")
+ ;	 ( "¢Ç" . "¢Ç")
+ ;	 ( "¢È" . "¢È")
+ ;	 ( "¢É" . "¢É")
+ 	 ( "¢Ê" . "¢Ê")
+ 	 ( "¢Ë" . "¢Ë")
+ 	 ( "¢Ì" . "¢Ì")
+ 	 ( "¢Í" . "¢Í")
+ 	 ( "¢Î" . "¢Î")
+ 	 ( "¢Ï" . "¢Ï")
+ 	 ( "¢Ð" . "¢Ð")
+ ;	 ( "¢Ñ" . "¢Ñ")
+ ;	 ( "¢Ò" . "¢Ò")
+ ;	 ( "¢Ó" . "¢Ó")
+ ;	 ( "¢Ô" . "¢Ô")
+ ;	 ( "¢Õ" . "¢Õ")
+ ;	 ( "¢Ö" . "¢Ö")
+ ;	 ( "¢×" . "¢×")
+ ;	 ( "¢Ø" . "¢Ø")
+ ;	 ( "¢Ù" . "¢Ù")
+ ;	 ( "¢Ú" . "¢Ú")
+ ;	 ( "¢Û" . "¢Û")
+ 	 ( "¢Ü" . "¢Ü")
+ 	 ( "¢Ý" . "¢Ý")
+ 	 ( "¢Þ" . "¢Þ")
+ 	 ( "¢ß" . "¢ß")
+ 	 ( "¢à" . "¢à")
+ 	 ( "¢á" . "¢á")
+ 	 ( "¢â" . "¢â")
+ 	 ( "¢ã" . "¢ã")
+ 	 ( "¢ä" . "¢ä")
+ 	 ( "¢å" . "¢å")
+ 	 ( "¢æ" . "¢æ")
+ 	 ( "¢ç" . "¢ç")
+ 	 ( "¢è" . "¢è")
+ 	 ( "¢é" . "¢é")
+ 	 ( "¢ê" . "¢ê")
+ ;	 ( "¢ë" . "¢ë")
+ ;	 ( "¢ì" . "¢ì")
+ ;	 ( "¢í" . "¢í")
+ ;	 ( "¢î" . "¢î")
+ ;	 ( "¢ï" . "¢ï")
+ ;	 ( "¢ð" . "¢ð")
+ ;	 ( "¢ñ" . "¢ñ")
+ 	 ( "¢ò" . "¢ò")
+ 	 ( "¢ó" . "¢ó")
+ 	 ( "¢ô" . "¢ô")
+ 	 ( "¢õ" . "¢õ")
+ 	 ( "¢ö" . "¢ö")
+ 	 ( "¢÷" . "¢÷")
+ 	 ( "¢ø" . "¢ø")
+ 	 ( "¢ù" . "¢ù")
+ ;	 ( "¢ú" . "¢ú")
+ ;	 ( "¢û" . "¢û")
+ ;	 ( "¢ü" . "¢ü")
+ ;	 ( "¢ý" . "¢ý")
+ 	 ( "¢þ" . "¢þ")
+ ))
+ 
+ (defvar egg:*symbol-alist* (append *ku1-alist* *ku2-alist*))
+ 
+ (defvar *ku3-alist* '(
+ ;I	 ( "£¡" . "£¡")
+ ;II	 ( "£¢" . "£¢")
+ ;III	 ( "££" . "££")
+ ;IV	 ( "£¤" . "£¤")
+ ;V       ( "£¥" . "£¥")
+ ;VI	 ( "£¦" . "£¦")
+ ;VII	 ( "£§" . "£§")
+ ;VIII	 ( "£¨" . "£¨")
+ ;IX	 ( "£©" . "£©")
+ ;X	 ( "£ª" . "£ª")
+ ;XI	 ( "£«" . "£«")
+ ;XII	 ( "£¬" . "£¬")
+ ;XIII	 ( "£­" . "£­")
+ ;XIV	 ( "£®" . "£®")
+ ;XV	 ( "£¯" . "£¯")
+ 	 ( "£°" . "£°")
+ 	 ( "£±" . "£±")
+ 	 ( "£²" . "£²")
+ 	 ( "£³" . "£³")
+ 	 ( "£´" . "£´")
+ 	 ( "£µ" . "£µ")
+ 	 ( "£¶" . "£¶")
+ 	 ( "£·" . "£·")
+ 	 ( "£¸" . "£¸")
+ 	 ( "£¹" . "£¹")
+ ;1/2	 ( "£º" . "£º")
+ ;1/3	 ( "£»" . "£»")
+ ;1/4	 ( "£¼" . "£¼")
+ ;2/3	 ( "£½" . "£½")
+ ;3/4	 ( "£¾" . "£¾")
+ ;	 ( "£¿" . "£¿")
+ ;	 ( "£À" . "£À")
+ 	 ( "£Á" . "£Á")
+ 	 ( "£Â" . "£Â")
+ 	 ( "£Ã" . "£Ã")
+ 	 ( "£Ä" . "£Ä")
+ 	 ( "£Å" . "£Å")
+ 	 ( "£Æ" . "£Æ")
+ 	 ( "£Ç" . "£Ç")
+ 	 ( "£È" . "£È")
+ 	 ( "£É" . "£É")
+ 	 ( "£Ê" . "£Ê")
+ 	 ( "£Ë" . "£Ë")
+ 	 ( "£Ì" . "£Ì")
+ 	 ( "£Í" . "£Í")
+ 	 ( "£Î" . "£Î")
+ 	 ( "£Ï" . "£Ï")
+ 	 ( "£Ð" . "£Ð")
+ 	 ( "£Ñ" . "£Ñ")
+ 	 ( "£Ò" . "£Ò")
+ 	 ( "£Ó" . "£Ó")
+ 	 ( "£Ô" . "£Ô")
+ 	 ( "£Õ" . "£Õ")
+ 	 ( "£Ö" . "£Ö")
+ 	 ( "£×" . "£×")
+ 	 ( "£Ø" . "£Ø")
+ 	 ( "£Ù" . "£Ù")
+ 	 ( "£Ú" . "£Ú")
+ ;	 ( "£Û" . "£Û")
+ ;	 ( "£Ü" . "£Ü")
+ ;	 ( "£Ý" . "£Ý")
+ ;	 ( "£Þ" . "£Þ")
+ ;	 ( "£ß" . "£ß")
+ ;	 ( "£à" . "£à")
+ 	 ( "£á" . "£á")
+ 	 ( "£â" . "£â")
+ 	 ( "£ã" . "£ã")
+ 	 ( "£ä" . "£ä")
+ 	 ( "£å" . "£å")
+ 	 ( "£æ" . "£æ")
+ 	 ( "£ç" . "£ç")
+ 	 ( "£è" . "£è")
+ 	 ( "£é" . "£é")
+ 	 ( "£ê" . "£ê")
+ 	 ( "£ë" . "£ë")
+ 	 ( "£ì" . "£ì")
+ 	 ( "£í" . "£í")
+ 	 ( "£î" . "£î")
+ 	 ( "£ï" . "£ï")
+ 	 ( "£ð" . "£ð")
+ 	 ( "£ñ" . "£ñ")
+ 	 ( "£ò" . "£ò")
+ 	 ( "£ó" . "£ó")
+ 	 ( "£ô" . "£ô")
+ 	 ( "£õ" . "£õ")
+ 	 ( "£ö" . "£ö")
+ 	 ( "£÷" . "£÷")
+ 	 ( "£ø" . "£ø")
+ 	 ( "£ù" . "£ù")
+ 	 ( "£ú" . "£ú")
+ ;	 ( "£û" . "£û")
+ ;	 ( "£ü" . "£ü")
+ ;	 ( "£ý" . "£ý")
+ ;	 ( "£þ" . "£þ")
+ ))
+ 
+ (defvar egg:*alphanumeric-alist* *ku3-alist*)
+ 
+ (defvar *ku4-alist* '(
+ 
+ 	 ( "¤¡" . "¤¡")
+ 	 ( "¤¢" . "¤¢")
+ 	 ( "¤£" . "¤£")
+ 	 ( "¤¤" . "¤¤")
+ 	 ( "¤¥" . "¤¥")
+ 	 ( "¤¦" . "¤¦")
+ 	 ( "¤§" . "¤§")
+ 	 ( "¤¨" . "¤¨")
+ 	 ( "¤©" . "¤©")
+ 	 ( "¤ª" . "¤ª")
+ 	 ( "¤«" . "¤«")
+ 	 ( "¤¬" . "¤¬")
+ 	 ( "¤­" . "¤­")
+ 	 ( "¤®" . "¤®")
+ 	 ( "¤¯" . "¤¯")
+ 	 ( "¤°" . "¤°")
+ 	 ( "¤±" . "¤±")
+ 	 ( "¤²" . "¤²")
+ 	 ( "¤³" . "¤³")
+ 	 ( "¤´" . "¤´")
+ 	 ( "¤µ" . "¤µ")
+ 	 ( "¤¶" . "¤¶")
+ 	 ( "¤·" . "¤·")
+ 	 ( "¤¸" . "¤¸")
+ 	 ( "¤¹" . "¤¹")
+ 	 ( "¤º" . "¤º")
+ 	 ( "¤»" . "¤»")
+ 	 ( "¤¼" . "¤¼")
+ 	 ( "¤½" . "¤½")
+ 	 ( "¤¾" . "¤¾")
+ 	 ( "¤¿" . "¤¿")
+ 	 ( "¤À" . "¤À")
+ 	 ( "¤Á" . "¤Á")
+ 	 ( "¤Â" . "¤Â")
+ 	 ( "¤Ã" . "¤Ã")
+ 	 ( "¤Ä" . "¤Ä")
+ 	 ( "¤Å" . "¤Å")
+ 	 ( "¤Æ" . "¤Æ")
+ 	 ( "¤Ç" . "¤Ç")
+ 	 ( "¤È" . "¤È")
+ 	 ( "¤É" . "¤É")
+ 	 ( "¤Ê" . "¤Ê")
+ 	 ( "¤Ë" . "¤Ë")
+ 	 ( "¤Ì" . "¤Ì")
+ 	 ( "¤Í" . "¤Í")
+ 	 ( "¤Î" . "¤Î")
+ 	 ( "¤Ï" . "¤Ï")
+ 	 ( "¤Ð" . "¤Ð")
+ 	 ( "¤Ñ" . "¤Ñ")
+ 	 ( "¤Ò" . "¤Ò")
+ 	 ( "¤Ó" . "¤Ó")
+ 	 ( "¤Ô" . "¤Ô")
+ 	 ( "¤Õ" . "¤Õ")
+ 	 ( "¤Ö" . "¤Ö")
+ 	 ( "¤×" . "¤×")
+ 	 ( "¤Ø" . "¤Ø")
+ 	 ( "¤Ù" . "¤Ù")
+ 	 ( "¤Ú" . "¤Ú")
+ 	 ( "¤Û" . "¤Û")
+ 	 ( "¤Ü" . "¤Ü")
+ 	 ( "¤Ý" . "¤Ý")
+ 	 ( "¤Þ" . "¤Þ")
+ 	 ( "¤ß" . "¤ß")
+ 	 ( "¤à" . "¤à")
+ 	 ( "¤á" . "¤á")
+ 	 ( "¤â" . "¤â")
+ 	 ( "¤ã" . "¤ã")
+ 	 ( "¤ä" . "¤ä")
+ 	 ( "¤å" . "¤å")
+ 	 ( "¤æ" . "¤æ")
+ 	 ( "¤ç" . "¤ç")
+ 	 ( "¤è" . "¤è")
+ 	 ( "¤é" . "¤é")
+ 	 ( "¤ê" . "¤ê")
+ 	 ( "¤ë" . "¤ë")
+ 	 ( "¤ì" . "¤ì")
+ 	 ( "¤í" . "¤í")
+ 	 ( "¤î" . "¤î")
+ 	 ( "¤ï" . "¤ï")
+ 	 ( "¤ð" . "¤ð")
+ 	 ( "¤ñ" . "¤ñ")
+ 	 ( "¤ò" . "¤ò")
+ 	 ( "¤ó" . "¤ó")
+ ;	 ( "¤ô" . "¤ô")
+ ;	 ( "¤õ" . "¤õ")
+ ;	 ( "¤ö" . "¤ö")
+ ;	 ( "¤÷" . "¤÷")
+ ;	 ( "¤ø" . "¤ø")
+ ;	 ( "¤ù" . "¤ù")
+ ;	 ( "¤ú" . "¤ú")
+ ;	 ( "¤û" . "¤û")
+ ;	 ( "¤ü" . "¤ü")
+ ;	 ( "¤ý" . "¤ý")
+ ;	 ( "¤þ" . "¤þ")
+ ))
+ 
+ (defvar egg:*hiragana-alist* *ku4-alist*)
+ 
+ (defvar *ku5-alist* '(
+ 	 ( "¥¡" . "¥¡")
+ 	 ( "¥¢" . "¥¢")
+ 	 ( "¥£" . "¥£")
+ 	 ( "¥¤" . "¥¤")
+ 	 ( "¥¥" . "¥¥")
+ 	 ( "¥¦" . "¥¦")
+ 	 ( "¥§" . "¥§")
+ 	 ( "¥¨" . "¥¨")
+ 	 ( "¥©" . "¥©")
+ 	 ( "¥ª" . "¥ª")
+ 	 ( "¥«" . "¥«")
+ 	 ( "¥¬" . "¥¬")
+ 	 ( "¥­" . "¥­")
+ 	 ( "¥®" . "¥®")
+ 	 ( "¥¯" . "¥¯")
+ 	 ( "¥°" . "¥°")
+ 	 ( "¥±" . "¥±")
+ 	 ( "¥²" . "¥²")
+ 	 ( "¥³" . "¥³")
+ 	 ( "¥´" . "¥´")
+ 	 ( "¥µ" . "¥µ")
+ 	 ( "¥¶" . "¥¶")
+ 	 ( "¥·" . "¥·")
+ 	 ( "¥¸" . "¥¸")
+ 	 ( "¥¹" . "¥¹")
+ 	 ( "¥º" . "¥º")
+ 	 ( "¥»" . "¥»")
+ 	 ( "¥¼" . "¥¼")
+ 	 ( "¥½" . "¥½")
+ 	 ( "¥¾" . "¥¾")
+ 	 ( "¥¿" . "¥¿")
+ 	 ( "¥À" . "¥À")
+ 	 ( "¥Á" . "¥Á")
+ 	 ( "¥Â" . "¥Â")
+ 	 ( "¥Ã" . "¥Ã")
+ 	 ( "¥Ä" . "¥Ä")
+ 	 ( "¥Å" . "¥Å")
+ 	 ( "¥Æ" . "¥Æ")
+ 	 ( "¥Ç" . "¥Ç")
+ 	 ( "¥È" . "¥È")
+ 	 ( "¥É" . "¥É")
+ 	 ( "¥Ê" . "¥Ê")
+ 	 ( "¥Ë" . "¥Ë")
+ 	 ( "¥Ì" . "¥Ì")
+ 	 ( "¥Í" . "¥Í")
+ 	 ( "¥Î" . "¥Î")
+ 	 ( "¥Ï" . "¥Ï")
+ 	 ( "¥Ð" . "¥Ð")
+ 	 ( "¥Ñ" . "¥Ñ")
+ 	 ( "¥Ò" . "¥Ò")
+ 	 ( "¥Ó" . "¥Ó")
+ 	 ( "¥Ô" . "¥Ô")
+ 	 ( "¥Õ" . "¥Õ")
+ 	 ( "¥Ö" . "¥Ö")
+ 	 ( "¥×" . "¥×")
+ 	 ( "¥Ø" . "¥Ø")
+ 	 ( "¥Ù" . "¥Ù")
+ 	 ( "¥Ú" . "¥Ú")
+ 	 ( "¥Û" . "¥Û")
+ 	 ( "¥Ü" . "¥Ü")
+ 	 ( "¥Ý" . "¥Ý")
+ 	 ( "¥Þ" . "¥Þ")
+ 	 ( "¥ß" . "¥ß")
+ 	 ( "¥à" . "¥à")
+ 	 ( "¥á" . "¥á")
+ 	 ( "¥â" . "¥â")
+ 	 ( "¥ã" . "¥ã")
+ 	 ( "¥ä" . "¥ä")
+ 	 ( "¥å" . "¥å")
+ 	 ( "¥æ" . "¥æ")
+ 	 ( "¥ç" . "¥ç")
+ 	 ( "¥è" . "¥è")
+ 	 ( "¥é" . "¥é")
+ 	 ( "¥ê" . "¥ê")
+ 	 ( "¥ë" . "¥ë")
+ 	 ( "¥ì" . "¥ì")
+ 	 ( "¥í" . "¥í")
+ 	 ( "¥î" . "¥î")
+ 	 ( "¥ï" . "¥ï")
+ 	 ( "¥ð" . "¥ð")
+ 	 ( "¥ñ" . "¥ñ")
+ 	 ( "¥ò" . "¥ò")
+ 	 ( "¥ó" . "¥ó")
+ 	 ( "¥ô" . "¥ô")
+ 	 ( "¥õ" . "¥õ")
+ 	 ( "¥ö" . "¥ö")
+ ;	 ( "¥÷" . "¥÷")
+ ;	 ( "¥ø" . "¥ø")
+ ;	 ( "¥ù" . "¥ù")
+ ;	 ( "¥ú" . "¥ú")
+ ;	 ( "¥û" . "¥û")
+ ;	 ( "¥ü" . "¥ü")
+ ;	 ( "¥ý" . "¥ý")
+ ;	 ( "¥þ" . "¥þ")
+ ))
+ 
+ (defvar egg:*katakana-alist* *ku5-alist*)
+ 
+ (defvar *ku6-alist* '(
+ 	 ( "¦¡" . "¦¡")
+ 	 ( "¦¢" . "¦¢")
+ 	 ( "¦£" . "¦£")
+ 	 ( "¦¤" . "¦¤")
+ 	 ( "¦¥" . "¦¥")
+ 	 ( "¦¦" . "¦¦")
+ 	 ( "¦§" . "¦§")
+ 	 ( "¦¨" . "¦¨")
+ 	 ( "¦©" . "¦©")
+ 	 ( "¦ª" . "¦ª")
+ 	 ( "¦«" . "¦«")
+ 	 ( "¦¬" . "¦¬")
+ 	 ( "¦­" . "¦­")
+ 	 ( "¦®" . "¦®")
+ 	 ( "¦¯" . "¦¯")
+ 	 ( "¦°" . "¦°")
+ 	 ( "¦±" . "¦±")
+ 	 ( "¦²" . "¦²")
+ 	 ( "¦³" . "¦³")
+ 	 ( "¦´" . "¦´")
+ 	 ( "¦µ" . "¦µ")
+ 	 ( "¦¶" . "¦¶")
+ 	 ( "¦·" . "¦·")
+ 	 ( "¦¸" . "¦¸")
+ ;	 ( "¦¹" . "¦¹")
+ ;	 ( "¦º" . "¦º")
+ ;	 ( "¦»" . "¦»")
+ ;	 ( "¦¼" . "¦¼")
+ ;	 ( "¦½" . "¦½")
+ ;	 ( "¦¾" . "¦¾")
+ ;	 ( "¦¿" . "¦¿")
+ ;	 ( "¦À" . "¦À")
+ 	 ( "¦Á" . "¦Á")
+ 	 ( "¦Â" . "¦Â")
+ 	 ( "¦Ã" . "¦Ã")
+ 	 ( "¦Ä" . "¦Ä")
+ 	 ( "¦Å" . "¦Å")
+ 	 ( "¦Æ" . "¦Æ")
+ 	 ( "¦Ç" . "¦Ç")
+ 	 ( "¦È" . "¦È")
+ 	 ( "¦É" . "¦É")
+ 	 ( "¦Ê" . "¦Ê")
+ 	 ( "¦Ë" . "¦Ë")
+ 	 ( "¦Ì" . "¦Ì")
+ 	 ( "¦Í" . "¦Í")
+ 	 ( "¦Î" . "¦Î")
+ 	 ( "¦Ï" . "¦Ï")
+ 	 ( "¦Ð" . "¦Ð")
+ 	 ( "¦Ñ" . "¦Ñ")
+ 	 ( "¦Ò" . "¦Ò")
+ 	 ( "¦Ó" . "¦Ó")
+ 	 ( "¦Ô" . "¦Ô")
+ 	 ( "¦Õ" . "¦Õ")
+ 	 ( "¦Ö" . "¦Ö")
+ 	 ( "¦×" . "¦×")
+ 	 ( "¦Ø" . "¦Ø")
+ ;	 ( "¦Ù" . "¦Ù")
+ ;	 ( "¦Ú" . "¦Ú")
+ ;	 ( "¦Û" . "¦Û")
+ ;	 ( "¦Ü" . "¦Ü")
+ ;	 ( "¦Ý" . "¦Ý")
+ ;	 ( "¦Þ" . "¦Þ")
+ ;	 ( "¦ß" . "¦ß")
+ ;	 ( "¦à" . "¦à")
+ ;(a)	 ( "¦á" . "¦á")
+ ;(b)	 ( "¦â" . "¦â")
+ ;(c)	 ( "¦ã" . "¦ã")
+ ;(d)	 ( "¦ä" . "¦ä")
+ ;(e)	 ( "¦å" . "¦å")
+ ;(f)	 ( "¦æ" . "¦æ")
+ ;(g)	 ( "¦ç" . "¦ç")
+ ;(h)	 ( "¦è" . "¦è")
+ ;(i)	 ( "¦é" . "¦é")
+ ;(j)	 ( "¦ê" . "¦ê")
+ ;(k)	 ( "¦ë" . "¦ë")
+ ;(l)	 ( "¦ì" . "¦ì")
+ ;(m)	 ( "¦í" . "¦í")
+ ;(n)	 ( "¦î" . "¦î")
+ ;(o)	 ( "¦ï" . "¦ï")
+ ;(p)	 ( "¦ð" . "¦ð")
+ ;(q)	 ( "¦ñ" . "¦ñ")
+ ;(r)	 ( "¦ò" . "¦ò")
+ ;(s)	 ( "¦ó" . "¦ó")
+ ;(t)	 ( "¦ô" . "¦ô")
+ ;(u)	 ( "¦õ" . "¦õ")
+ ;(v)	 ( "¦ö" . "¦ö")
+ ;(w)	 ( "¦÷" . "¦÷")
+ ;(x)	 ( "¦ø" . "¦ø")
+ ;(y)	 ( "¦ù" . "¦ù")
+ ;(z)	 ( "¦ú" . "¦ú")
+ ;	 ( "¦û" . "¦û")
+ ;	 ( "¦ü" . "¦ü")
+ ;	 ( "¦ý" . "¦ý")
+ ;	 ( "¦þ" . "¦þ")
+ ))
+ 
+ (defvar egg:*greek-alist* *ku6-alist*)
+ 
+ (defvar *ku7-alist* '(
+ 	 ( "§¡" . "§¡")
+ 	 ( "§¢" . "§¢")
+ 	 ( "§£" . "§£")
+ 	 ( "§¤" . "§¤")
+ 	 ( "§¥" . "§¥")
+ 	 ( "§¦" . "§¦")
+ 	 ( "§§" . "§§")
+ 	 ( "§¨" . "§¨")
+ 	 ( "§©" . "§©")
+ 	 ( "§ª" . "§ª")
+ 	 ( "§«" . "§«")
+ 	 ( "§¬" . "§¬")
+ 	 ( "§­" . "§­")
+ 	 ( "§®" . "§®")
+ 	 ( "§¯" . "§¯")
+ 	 ( "§°" . "§°")
+ 	 ( "§±" . "§±")
+ 	 ( "§²" . "§²")
+ 	 ( "§³" . "§³")
+ 	 ( "§´" . "§´")
+ 	 ( "§µ" . "§µ")
+ 	 ( "§¶" . "§¶")
+ 	 ( "§·" . "§·")
+ 	 ( "§¸" . "§¸")
+ 	 ( "§¹" . "§¹")
+ 	 ( "§º" . "§º")
+ 	 ( "§»" . "§»")
+ 	 ( "§¼" . "§¼")
+ 	 ( "§½" . "§½")
+ 	 ( "§¾" . "§¾")
+ 	 ( "§¿" . "§¿")
+ 	 ( "§À" . "§À")
+ 	 ( "§Á" . "§Á")
+ ;(1)	 ( "§Â" . "§Â")
+ ;(2)	 ( "§Ã" . "§Ã")
+ ;(3)	 ( "§Ä" . "§Ä")
+ ;(4)	 ( "§Å" . "§Å")
+ ;(5)	 ( "§Æ" . "§Æ")
+ ;(6)	 ( "§Ç" . "§Ç")
+ ;(7)	 ( "§È" . "§È")
+ ;(8)	 ( "§É" . "§É")
+ ;(9)	 ( "§Ê" . "§Ê")
+ ;(10)	 ( "§Ë" . "§Ë")
+ ;(11)	 ( "§Ì" . "§Ì")
+ ;(12)	 ( "§Í" . "§Í")
+ ;(13)	 ( "§Î" . "§Î")
+ ;(14)	 ( "§Ï" . "§Ï")
+ ;(15)	 ( "§Ð" . "§Ð")
+ 	 ( "§Ñ" . "§Ñ")
+ 	 ( "§Ò" . "§Ò")
+ 	 ( "§Ó" . "§Ó")
+ 	 ( "§Ô" . "§Ô")
+ 	 ( "§Õ" . "§Õ")
+ 	 ( "§Ö" . "§Ö")
+ 	 ( "§×" . "§×")
+ 	 ( "§Ø" . "§Ø")
+ 	 ( "§Ù" . "§Ù")
+ 	 ( "§Ú" . "§Ú")
+ 	 ( "§Û" . "§Û")
+ 	 ( "§Ü" . "§Ü")
+ 	 ( "§Ý" . "§Ý")
+ 	 ( "§Þ" . "§Þ")
+ 	 ( "§ß" . "§ß")
+ 	 ( "§à" . "§à")
+ 	 ( "§á" . "§á")
+ 	 ( "§â" . "§â")
+ 	 ( "§ã" . "§ã")
+ 	 ( "§ä" . "§ä")
+ 	 ( "§å" . "§å")
+ 	 ( "§æ" . "§æ")
+ 	 ( "§ç" . "§ç")
+ 	 ( "§è" . "§è")
+ 	 ( "§é" . "§é")
+ 	 ( "§ê" . "§ê")
+ 	 ( "§ë" . "§ë")
+ 	 ( "§ì" . "§ì")
+ 	 ( "§í" . "§í")
+ 	 ( "§î" . "§î")
+ 	 ( "§ï" . "§ï")
+ 	 ( "§ð" . "§ð")
+ 	 ( "§ñ" . "§ñ")
+ ;i	 ( "§ò" . "§ò")
+ ;ii	 ( "§ó" . "§ó")
+ ;iii	 ( "§ô" . "§ô")
+ ;iv	 ( "§õ" . "§õ")
+ ;v	 ( "§ö" . "§ö")
+ ;vi	 ( "§÷" . "§÷")
+ ;vii	 ( "§ø" . "§ø")
+ ;viii	 ( "§ù" . "§ù")
+ ;ix	 ( "§ú" . "§ú")
+ ;x	 ( "§û" . "§û")
+ ;|	 ( "§ü" . "§ü")
+ ;'	 ( "§ý" . "§ý")
+ ;''	 ( "§þ" . "§þ")
+ ))
+ 
+ (defvar egg:*russian-alist* *ku7-alist*)
+ 
+ (defvar *ku8-alist* '(
+ 	 ( "¨¡" . "¨¡")
+ 	 ( "¨¢" . "¨¢")
+ 	 ( "¨£" . "¨£")
+ 	 ( "¨¤" . "¨¤")
+ 	 ( "¨¥" . "¨¥")
+ 	 ( "¨¦" . "¨¦")
+ 	 ( "¨§" . "¨§")
+ 	 ( "¨¨" . "¨¨")
+ 	 ( "¨©" . "¨©")
+ 	 ( "¨ª" . "¨ª")
+ 	 ( "¨«" . "¨«")
+ 	 ( "¨¬" . "¨¬")
+ 	 ( "¨­" . "¨­")
+ 	 ( "¨®" . "¨®")
+ 	 ( "¨¯" . "¨¯")
+ 	 ( "¨°" . "¨°")
+ 	 ( "¨±" . "¨±")
+ 	 ( "¨²" . "¨²")
+ 	 ( "¨³" . "¨³")
+ 	 ( "¨´" . "¨´")
+ 	 ( "¨µ" . "¨µ")
+ 	 ( "¨¶" . "¨¶")
+ 	 ( "¨·" . "¨·")
+ 	 ( "¨¸" . "¨¸")
+ 	 ( "¨¹" . "¨¹")
+ 	 ( "¨º" . "¨º")
+ 	 ( "¨»" . "¨»")
+ 	 ( "¨¼" . "¨¼")
+ 	 ( "¨½" . "¨½")
+ 	 ( "¨¾" . "¨¾")
+ 	 ( "¨¿" . "¨¿")
+ 	 ( "¨À" . "¨À")
+ ;	 ( "¨Á" . "¨Á")
+ ;	 ( "¨Â" . "¨Â")
+ ;	 ( "¨Ã" . "¨Ã")
+ ;	 ( "¨Ä" . "¨Ä")
+ ;	 ( "¨Å" . "¨Å")
+ ;*	 ( "¨Æ" . "¨Æ")
+ ;*	 ( "¨Ç" . "¨Ç")
+ ;*	 ( "¨È" . "¨È")
+ ;*	 ( "¨É" . "¨É")
+ ;*	 ( "¨Ê" . "¨Ê")
+ ;*	 ( "¨Ë" . "¨Ë")
+ ;*	 ( "¨Ì" . "¨Ì")
+ ;*	 ( "¨Í" . "¨Í")
+ ;*	 ( "¨Î" . "¨Î")
+ ;*	 ( "¨Ï" . "¨Ï")
+ ;*	 ( "¨Ð" . "¨Ð")
+ ;*	 ( "¨Ñ" . "¨Ñ")
+ ;*	 ( "¨Ò" . "¨Ò")
+ ;*	 ( "¨Ó" . "¨Ó")
+ ;*	 ( "¨Ô" . "¨Ô")
+ ;*	 ( "¨Õ" . "¨Õ")
+ ;*	 ( "¨Ö" . "¨Ö")
+ ;*	 ( "¨×" . "¨×")
+ ;*	 ( "¨Ø" . "¨Ø")
+ ;*	 ( "¨Ù" . "¨Ù")
+ ;*	 ( "¨Ú" . "¨Ú")
+ ;*	 ( "¨Û" . "¨Û")
+ ;*	 ( "¨Ü" . "¨Ü")
+ ;*	 ( "¨Ý" . "¨Ý")
+ ;*	 ( "¨Þ" . "¨Þ")
+ ;*	 ( "¨ß" . "¨ß")
+ ;*	 ( "¨à" . "¨à")
+ ;*	 ( "¨á" . "¨á")
+ ;*	 ( "¨â" . "¨â")
+ ;*	 ( "¨ã" . "¨ã")
+ ;*	 ( "¨ä" . "¨ä")
+ ;*	 ( "¨å" . "¨å")
+ ;*	 ( "¨æ" . "¨æ")
+ ;*	 ( "¨ç" . "¨ç")
+ ;*	 ( "¨è" . "¨è")
+ ;*	 ( "¨é" . "¨é")
+ ;*	 ( "¨ê" . "¨ê")
+ ;*	 ( "¨ë" . "¨ë")
+ ;*	 ( "¨ì" . "¨ì")
+ ;*	 ( "¨í" . "¨í")
+ ;*	 ( "¨î" . "¨î")
+ ;*	 ( "¨ï" . "¨ï")
+ ;*	 ( "¨ð" . "¨ð")
+ ;*	 ( "¨ñ" . "¨ñ")
+ ;*	 ( "¨ò" . "¨ò")
+ ;*	 ( "¨ó" . "¨ó")
+ ;*	 ( "¨ô" . "¨ô")
+ ;*	 ( "¨õ" . "¨õ")
+ ;*	 ( "¨ö" . "¨ö")
+ ;*	 ( "¨÷" . "¨÷")
+ ;*	 ( "¨ø" . "¨ø")
+ ;*	 ( "¨ù" . "¨ù")
+ ;*	 ( "¨ú" . "¨ú")
+ ;	 ( "¨û" . "¨û")
+ ;	 ( "¨ü" . "¨ü")
+ ;	 ( "¨ý" . "¨ý")
+ ;	 ( "¨þ" . "¨þ")
+ ))
+ 
+ (defvar egg:*keisen-alist* *ku8-alist*)
+ 
+ (defun make-all-jis-code-alist ()
+   (let ((result nil) (ku 116))
+     (while (<  32 ku)
+       (let ((ten 126))
+ 	(while (< 32 ten)
+ 	  (setq result (cons 
+ 			(let ((str (make-string 2 0)))
+ 			  (aset str 0 (+ 128 ku))
+ 			  (aset str 1 (+ 128 ten))
+ 			  (cons str str))
+ 			result))
+ 	  (setq ten (1- ten))))
+       (setq ku (1- ku)))
+     result))
+ 
+ (defun make-jis-first-level-code-alist ()
+   (let ((result nil) (ku 79))
+     (while (<=  48 ku)
+       (let ((ten 126))
+ 	(while (<= 33 ten)
+ 	  (setq result (cons 
+ 			(let ((str (make-string 2 0)))
+ 			  (aset str 0 (+ 128 ku))
+ 			  (aset str 1 (+ 128 ten))
+ 			  (cons str str))
+ 			result))
+ 	  (setq ten (1- ten))))
+       (setq ku (1- ku)))
+     result))
+ 
+ (defun make-jis-second-level-code-alist ()
+   (let ((result nil) (ku 116))
+     (while (<= 80 ku)
+       (let ((ten 126))
+ 	(while (<= 33 ten)
+ 	  (setq result (cons 
+ 			(let ((str (make-string 2 0)))
+ 			  (aset str 0 (+ 128 ku))
+ 			  (aset str 1 (+ 128 ten))
+ 			  (cons str str))
+ 			result))
+ 	  (setq ten (1- ten))))
+       (setq ku (1- ku)))
+     result))
+ 
+ ;;;(defvar egg:*all-jis-code-alist* (make-all-jis-code-alist))
+ 
+ (defvar egg:*first-level-alist*  (make-jis-first-level-code-alist))
+ (defvar egg:*second-level-alist* (make-jis-second-level-code-alist))
+ 
+ (defvar *symbol-input-menu*
+   (list 'menu "µ­¹æÆþÎÏ:"
+ 	(list 
+ 	 (cons "JISÆþÎÏ"
+ 	       '(jis-code-input))
+ 	 (cons "µ­¹æ"
+ 	       (list 'menu "µ­¹æ:" egg:*symbol-alist*))
+ 	 (cons "±Ñ¿ô»ú"
+ 	       (list 'menu "±Ñ¿ô»ú:" egg:*alphanumeric-alist*))
+ 	 (cons "¤Ò¤é¤¬¤Ê"
+ 	       (list 'menu "¤Ò¤é¤¬¤Ê:" egg:*hiragana-alist*))
+ 	 (cons "¥«¥¿¥«¥Ê"
+ 	       (list 'menu "¥«¥¿¥«¥Ê:" egg:*katakana-alist*))
+ 	 (cons "¥®¥ê¥·¥ãÊ¸»ú"
+ 	       (list 'menu "¥®¥ê¥·¥ãÊ¸»ú:" egg:*greek-alist*))
+ 	 (cons "¥í¥·¥¢Ê¸»ú"
+ 	       (list 'menu "¥í¥·¥¢Ê¸»ú:" egg:*russian-alist*))
+ 	 (cons "·ÓÀþ"
+ 	       (list 'menu "·ÓÀþ:" egg:*keisen-alist*))
+ 	 (cons "Âè°ì¿å½à"
+ 	       (list 'menu "Âè°ì¿å½à:" egg:*first-level-alist*))
+ 	 (cons "ÂèÆó¿å½à"
+ 	       (list 'menu "ÂèÆó¿å½à:" egg:*second-level-alist*))
+ 	;; (cons "Á´¥³¡¼¥É¡Ê¾¯¤·»þ´Ö¤¬³Ý¤«¤ê¤Þ¤¹¡£¡Ë"
+ 	;;       (list 'menu "Á´¥³¡¼¥É:" egg:*all-jis-code-alist*))
+ 	 )))
+ 
+ 
+ (defun special-symbol-input ()
+   (interactive)
+   (let ((code (menu:select-from-menu *symbol-input-menu*)))
+     (cond((stringp code) (insert code))
+ 	 ((consp code) (eval code))
+ 	 )))
+ 
+ (define-key global-map "\C-^"  'special-symbol-input)
+ 
diff -arcN emacs-18.55/lisp/wnnfns.el nemacs-3.3.2/lisp/wnnfns.el
*** emacs-18.55/lisp/wnnfns.el	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/lisp/wnnfns.el	Wed Jun  6 03:17:17 1990
***************
*** 0 ****
--- 1,274 ----
+ ;; wnnfns.c support package for Egg
+ ;; Coded by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp)
+ 
+ ;; This file is part of Egg on Nemacs (Japanese Environment)
+ 
+ ;; Egg is distributed in the forms of patches to GNU
+ ;; Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+ ;; LICENSE which is distributed along with GNU Emacs by the
+ ;; Free Software Foundation.
+ 
+ ;; Egg 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 EMACS GENERAL PUBLIC LICENSE for
+ ;; more details.
+ 
+ ;; You should have received a copy of the GNU EMACS GENERAL
+ ;; PUBLIC LICENSE along with Nemacs; see the file COPYING.
+ ;; If not, write to the Free Software Foundation, 675 Mass
+ ;; Ave, Cambridge, MA 02139, USA.
+ 
+ ;;;
+ ;;;  wnnfns.el  (renamed from wnnfns-support.el)
+ ;;;
+ 
+ ;;;  Written by Satoru Tomura at ElectroTechnical Laboratory
+ ;;;
+ ;;;  Email address: tomura@etl.go.jp
+ 
+ ;;;
+ ;;; ¤³¤Î¥Õ¥¡¥¤¥ë¤Ï wnnfns.c ¤Îµ¡Ç½¤È wnn-egg.el ¤Îµ¡Ç½¤ÎÄ´À°¤ò¤¹¤ë¡£
+ ;;; wnn-egg.el ¤ò load ¤·¤¿¸å¤Ç¥í¡¼¥É¤¹¤ë¡£
+ ;;;
+ 
+ (defvar wnnfns-support-version "1.09")
+ ;;; Last modified date: Mon Dec 25 23:34:00 1989
+ 
+ (defvar egg:*kanji-buffer* nil)
+ 
+ (defun bunsetu-su ()
+   (length egg:*kanji-buffer*))
+   
+ (defun make-bunsetu (kanji yomi)
+   (list kanji yomi nil 0))
+ 
+ (defun bunsetu-length (number)
+   (kanji-moji-suu (bunsetu-yomi number)))
+   
+ (defun bunsetu-position (number)
+   (let ((pos egg:*region-start*) (i 0))
+     (while (< i number)
+       (setq pos (+ pos (length (bunsetu-kanji  i)) (length egg:*bunsetu-kugiri*)))
+       (setq i (1+ i)))
+     pos))
+   
+ (defun bunsetu-kanji (number) (nth 0 (aref egg:*kanji-buffer* number)))
+   
+ (defun bunsetu-set-kanji (number kanji) 
+   (setcar (nthcdr 0 (aref egg:*kanji-buffer* number)) kanji))
+ 
+ (defun bunsetu-yomi  (number) (nth 1 (aref egg:*kanji-buffer* number)))
+ (defun bunsetu-set-yomi (number yomi)
+   (setcar (nthcdr 1 (aref egg:*kanji-buffer* number)) yomi))
+ 
+ (defun bunsetu-kouho-list (number) 
+   (let ((x (nth 2 (aref egg:*kanji-buffer* number))))
+     (or x
+ 	(let((jikouho (KKCP:henkan-next number)))
+ 	  (if jikouho
+ 	      (setcar (nthcdr 2 (aref egg:*kanji-buffer* number))
+ 		      jikouho)
+ 	    (progn (beep) (beep) (beep)
+ 		   (notify 
+ 		    "ÊÑ´¹¸õÊä¤¬Â¿¤¹¤®¤Þ¤¹¡£wnnfsn.c ¤ò½¤Àµ¤·¤Æ nemacs ¤òºî¤êÄ¾¤·¤Æ²¼¤µ¤¤¡£")
+ 		   (setcar (nthcdr 2 (aref egg:*kanji-buffer* number))
+ 			   (list (bunsetu-kanji number)
+ 				 (bunsetu-yomi  number)))))))))
+   
+ (defun bunsetu-kouho-suu (number)
+   (length (bunsetu-kouho-list number)))
+ 
+   
+ (defun bunsetu-set-kouho-list (number kouho-list)
+   (setcar (nthcdr 2 (aref egg:*kanji-buffer* number)) kouho-list))
+ 
+ (defun bunsetu-kouho-number (number) (nth  3  (aref egg:*kanji-buffer* number)))
+ 
+ (defun bunsetu-set-kouho-number (bunsetu-no number)
+   (setcar (nthcdr 3 (aref egg:*kanji-buffer* bunsetu-no)) number))
+ 
+ (defun make-henkan-buffer (list)
+   (let ((buff (make-vector (length list) 0)))
+     (let ((i 0) (max (length list)))
+       (while (< i max)
+ 	(aset buff i (make-bunsetu (car (car list))
+ 				   (cdr (car list))))
+ 	(setq list (cdr list))
+ 	(setq i (1+ i)))
+       buff)))
+ 
+ (defun update-henkan-buffer (buffer from list)
+   (let ((vec (make-vector (length list) 0)))
+     (let ((i 0))
+       (while (< i from)
+ 	(aset vec i (aref buffer i))
+ 	(setq i (1+ i))))
+     (let ((i from) (max (length list)))
+       (while (< i max)
+ 	(aset vec i (make-bunsetu (car (nth i list))
+ 				(cdr (nth i list))))
+ 	(setq i (1+ i))))
+     vec))
+ 
+ (defun henkan-region-internal (start end)
+   "region¤ò¤«¤Ê´Á»úÊÑ´¹¤¹¤ë¡£"
+   (setq egg:*kanji-kanabuff* (buffer-substring start end))
+   (setq *bunsetu-number* nil)
+   (let ((result (KKCP:henkan-begin egg:*kanji-kanabuff*)))
+     (if  result
+ 	(progn
+ 	  (mode-line-egg-mode-update henkan-mode-indicator)
+ 	  (setq egg:*kanji-buffer* (make-henkan-buffer result))
+ 	  (goto-char start)
+ 	  (if (null (marker-position egg:*region-start*))
+ 	      (progn
+ 		;;;(setq egg:*global-map-backup* (current-global-map))
+ 		(setq egg:*local-map-backup* (current-local-map))
+ 		(and (boundp 'disable-undo) (setq disable-undo t))
+ 		(delete-region start end)
+ 		(goto-char start)
+ 		(insert egg:*henkan-open*)
+ 		(set-marker egg:*region-start* (point))
+ 		(insert egg:*henkan-close*)
+ 		(set-marker egg:*region-end* egg:*region-start*)
+ 		(egg:henkan-attribute-on)
+ 		(goto-char egg:*region-start*)
+ 		)
+ 	    (progn
+ 	      (egg:fence-attribute-off)
+ 	      (delete-region (- egg:*region-start* (length egg:*fence-open*)) 
+ 			     egg:*region-start*)
+ 	      (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*fence-close*)))
+ 	      (goto-char egg:*region-start*)
+ 	      (insert egg:*henkan-open*)
+ 	      (set-marker egg:*region-start* (point))
+ 	      (goto-char egg:*region-end*)
+ 	      (let ((point (point)))
+ 		(insert egg:*henkan-close*)
+ 		(set-marker egg:*region-end* point))
+ 	      (goto-char start)
+ 	      (delete-region start end)
+ 	      (egg:henkan-attribute-on))
+ 	    )
+ 	  (henkan-insert-kouho result)
+ 	  (henkan-goto-bunsetu 0)
+ 	  ;;;(use-global-map henkan-mode-map)
+ 	  ;;;(use-local-map nil)
+ 	  (use-local-map henkan-mode-map)
+ 	  )))
+   )
+ 
+ (defun henkan-insert-kouho (list)
+   (let ((l list))
+     (while l
+       (insert (car (car l)) egg:*bunsetu-kugiri* )
+       (setq l (cdr l)))
+     (if list (delete-char (- (length egg:*bunsetu-kugiri*))))))
+   
+ (defun henkan-kakutei ()
+   (interactive)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-off)
+   (delete-region (- egg:*region-start* (length egg:*henkan-open*))
+ 		 egg:*region-start*)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*henkan-close*)))
+   (goto-char egg:*region-start*)
+   (let ((i 0) (max (bunsetu-su)))
+     (while (< i max)
+       (KKCP:henkan-kakutei i (bunsetu-kouho-number i))
+       (insert (bunsetu-kanji i ))
+       (if (not overwrite-mode)
+ 	  (undo-boundary))
+       (setq i (1+ i))
+       ))
+   (KKCP:henkan-end)
+   (egg:quit-egg-mode)
+   )
+ 
+ (defun henkan-kakutei-before-point ()
+   (interactive)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-off)
+   (delete-region egg:*region-start* egg:*region-end*)
+   (goto-char egg:*region-start*)
+   (let ((i 0) (max *bunsetu-number*))
+     (while (< i max)
+       (KKCP:henkan-kakutei i (bunsetu-kouho-number i))
+       (insert (bunsetu-kanji i ))
+       (if (not overwrite-mode)
+ 	  (undo-boundary))
+       (setq i (1+ i))
+       ))
+   (KKCP:henkan-end *bunsetu-number*)
+   (delete-region (- egg:*region-start* (length egg:*henkan-open*))
+ 		 egg:*region-start*)
+   (insert egg:*fence-open*)
+   (set-marker egg:*region-start* (point))
+   (delete-region egg:*region-end* (+ egg:*region-end* (length egg:*henkan-close*)))
+   (goto-char egg:*region-end*)
+   (let ((point (point)))
+     (insert egg:*fence-close*)
+     (set-marker egg:*region-end* point))
+   (goto-char egg:*region-start*)
+   (egg:fence-attribute-on)
+   (let ((point (point))
+ 	(i *bunsetu-number*) (max (bunsetu-su)))
+     (while (< i max)
+       (insert (bunsetu-yomi i))
+       (setq i (1+ i)))
+     ;;;(insert "|")
+     ;;;(insert egg:*fence-close*)
+     ;;;(set-marker egg:*region-end* (point))
+     (goto-char point))
+   (setq egg:*mode-on* t)
+   ;;;(use-global-map fence-mode-map)
+   ;;;(use-local-map  nil)
+   (use-local-map fence-mode-map)
+   (egg:mode-line-display))
+ 
+ (defun henkan-goto-kouho (kouho-number)
+   (egg:bunsetu-attribute-off *bunsetu-number*)
+   (egg:henkan-attribute-on)
+   (let ((point (point))
+ 	(yomi  (bunsetu-yomi *bunsetu-number*))
+ 	(i *bunsetu-number*)
+ 	(max (bunsetu-su)))
+     (setq kouho-number 
+ 	  (check-number-range kouho-number 
+ 			      0
+ 			      (1- (length (bunsetu-kouho-list
+ 					   *bunsetu-number*)))))
+     (while (< i max)
+       (if (equal yomi (bunsetu-yomi i))
+ 	  (progn 
+ 	    (delete-region (bunsetu-position i)
+ 			   (+ (bunsetu-position i)
+ 			      (length (bunsetu-kanji i))))
+ 	    (bunsetu-set-kanji i
+ 			       (nth kouho-number
+ 				    (bunsetu-kouho-list i)))
+ 	    (bunsetu-set-kouho-number i  kouho-number)
+ 	    (goto-char (bunsetu-position i))
+ 	    (insert (bunsetu-kanji i))))
+       (setq i (1+ i)))
+     (goto-char point))
+   (egg:set-bunsetu-attribute *bunsetu-number* egg:*henkan-attribute* nil)
+   (egg:bunsetu-attribute-on *bunsetu-number*))
+   
+ (defun bunsetu-length-henko (length)
+   (let ((r (KKCP:bunsetu-henkou *bunsetu-number* length)))
+     (cond(r
+ 	  (egg:henkan-attribute-off)
+ 	  (egg:bunsetu-attribute-off *bunsetu-number*)
+ 	  (delete-region 
+ 	   (bunsetu-position *bunsetu-number*) egg:*region-end*)
+ 	  (goto-char (bunsetu-position *bunsetu-number*))
+ 	  (henkan-insert-kouho (nthcdr *bunsetu-number* r))
+ 	  (setq egg:*kanji-buffer* 
+ 		(update-henkan-buffer egg:*kanji-buffer* *bunsetu-number*
+ 				      r))
+ 	  (henkan-goto-bunsetu *bunsetu-number*)))))
+ 
+ 
diff -arcN emacs-18.55/man/egg.texinfo nemacs-3.3.2/man/egg.texinfo
*** emacs-18.55/man/egg.texinfo	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/man/egg.texinfo	Wed Jun  6 03:17:54 1990
***************
*** 0 ****
--- 1,1455 ----
+ \kanjifiletype=20
+ \overfullrule=0pt
+ \input texinfo @c -*-texinfo-*-
+ @comment %**start of header
+ @c egg.texinfo version 2.24 90-Jun-6
+ @setfilename egg
+ @settitle ¤¿¤Þ¤´ Version 2.24
+ @comment %**end of header
+ 
+ @titlepage
+ @sp 10
+ @center @titlefont{¤¿¤Þ¤´ Version 2.24 ¥Þ¥Ë¥å¥¢¥ë}
+ @sp 4
+ @center  £±£¹£¹£°Ç¯£¶·î
+ @sp 4
+ @center  ¶Ó¸« Èþµ®»Ò
+ @sp 10
+ @center ÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê
+ @end titlepage
+ @synindex vr fn
+ @parindent=0.0pt
+ 
+ @c ========================================
+ @node Top, ³µÀâ, (dir), (dir)
+ 
+ @menu
+ * Intro: ³µÀâ.		¡Ö¤¿¤Þ¤´¡×¤È¤Ï
+ * Init: ½é´üÀßÄê.	½é´üÀßÄê
+ * HowToUse: ´Á»úÆþÎÏ.	¡Ö¤¿¤Þ¤´¡×¤Î´Á»úÆþÎÏ
+ * Dict: ¼­½ñ´ÉÍý.   	ÍøÍÑ¼Ô¼­½ñ¤Î´ÉÍý
+ * Customization::	¥«¥¹¥¿¥Þ¥¤¥º¤ÎÊýË¡
+ * Sun Key map::		Sun¤Î¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼¤ÎÍøÍÑ
+ * ÉÊ»ì::		¼­½ñÅÐÏ¿¤Î¥Ò¥ó¥È
+ * Concepts: ³µÇ°º÷°ú.
+ * Functions&Variables: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú.
+ 
+ ²¼°Ì¥Î¡¼¥É
+ ³µÀâ
+ * Config: Æ°ºî´Ä¶­.
+ ½é´üÀßÄê
+ * System: ¥·¥¹¥Æ¥à. 	¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ * Server: ¥µ¡¼¥Ð»ØÄê. 	²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ * Dict: ¼­½ñ»ØÄê.	»ÈÍÑ¼­½ñ¤Î»ØÄê
+ ´Á»úÆþÎÏ
+ * Intra: ÂÐÏÃ¼°.		ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ * Batch: °ì³ç¼°. 		ÊÑ´¹µ¡Ç½
+ * Mini: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ.	minibuffer ¤Ç¤Î´Á»úÆþÎÏ
+ ¼­½ñ´ÉÍý
+ * Toroku: ¼­½ñÅÐÏ¿.
+ * Henshu: ¼­½ñÊÔ½¸.	¼­½ñ¹àÌÜÊÔ½¸
+ Customization
+ * global-map::		global-map ¤Î key binding ¤ÎÊÑ¹¹
+ * fence-mode-map:: 	¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * henkan-mode-map::	´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * Roma kana henkan::	¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ @end menu
+ 
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @node ³µÀâ, ½é´üÀßÄê, Top, Top
+ @chapter ¡Ö¤¿¤Þ¤´¡×¤È¤Ï
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @c @dm @multiply@jintercharskip by 30@multiply@jasciikanjiskip by 30
+ @cindex ¤¿¤Þ¤´[¤¿¤Þ¤´]
+ @cindex Nemacs
+ 
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤Ï Nemacs ¤Ë¤ª¤±¤ëÆüËÜ¸ì´Ä¶­¤òÄó¶¡¤¹¤ë¡¥ Nemacs ¤Ï Gnu
+ Emacs ¤ò³ÈÄ¥¤·¡¤´Á»úÉ½¼¨¡¤¥³¡¼¥ÉÊÑ´¹¤Ê¤É¤Î´ðËÜµ¡Ç½¤òÄÉ²Ã¤·¤¿¥·¥¹¥Æ¥à¤Ç¤¢
+ ¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ÏÆüËÜ¸ìÊ¸½ñ½èÍý¤ÈÆüËÜ¸ìÆþÎÏ¤Îµ¡Ç½¤òÄó¶¡¤¹¤ë¡¥ÆüËÜ¸ìÊ¸½ñ½èÍý¤Ë
+ ¤Ï¡¤¶ØÂ§½èÍý¤Ê¤É¤ÎÆüËÜ¸ì¤ËÆÃÍ­¤Ê½èÍý¤¬´Þ¤Þ¤ì¤ë¡¥ÆüËÜ¸ìÆþÎÏµ¡Ç½¤Ï¥Í¥Ã¥È¥ï¡¼
+ ¥¯²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤òÍøÍÑ¤·¡¤¥í¡¼¥Þ»ú´Á»úÊÑ´¹Êý¼°¤ÎÆüËÜ¸ìÆþÎÏ¤òÄó¶¡¤¹¤ë¡¥
+ ¡Ö¤¿¤Þ¤´¡×Âè£²ÈÇ¤Ç¤Ï²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤·¤ÆWnn V3.3°Ê¹ß¤ÎJSERVER¤ò»ÈÍÑ
+ ¤¹¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ÎÌ¾Á°¤Ï¡¤¡ÖÂô»³/ÂÔ¤¿¤»¤Æ/¸æÌÈ¤Ê¤µ¤¤¡¥¡×¤Î³ÆÊ¸Àá¤ÎÀèÆ¬£±²»¤Ç¤¢
+ ¤ë¡Ö¤¿¡×¤È¡Ö¤Þ¡×¤È¡Ö¤´¡×¤ò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡¥EGG¤Ï¡Ö¤¿¤Þ¤´¡×¤Î±ÑÌõ¤Ç¤¢¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡× ¤Ë´Ø¤¹¤ëÄó°Æ¡¤Ãî¾ðÊó¤Ï tomura@@etl.go.jp ¤Þ¤Ç¡¥
+ 
+ @menu
+ * Config: Æ°ºî´Ä¶­.
+ @end menu
+ 
+ @c ============================================================
+ @node Æ°ºî´Ä¶­, ½é´üÀßÄê, ³µÀâ, ³µÀâ
+ @section Æ°ºî´Ä¶­
+ @cindex Æ°ºî´Ä¶­[¤É¤¦¤µ¤«¤ó¤­¤ç¤¦]
+ @cindex Wnn
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤òÆ°ºî¤µ¤»¤ë¤Ë¤Ï¼¡¤Î¤â¤Î¤¬É¬Í×¤Ç¤¢¤ë¡¥
+ 
+ @table @bullet
+ @item ´Á»úÃ¼Ëö¤Þ¤¿¤Ï´Á»úÃ¼Ëö¥¨¥ß¥å¥ì¡¼¥¿
+ X window system ¤ÇÍøÍÑ¤¹¤ë¾ì¹ç¤Ï¡¤´Á»ú¤òÉ½¼¨¤¹¤ë¤¿¤á kterm ¤¢¤ë¤¤¤Ï 
+ Nemacs¤Îx11term¤ò»ÈÍÑ¤¹¤ë¡¥
+ @item nemacs V3.3
+ ¡Ö¤¿¤Þ¤´¡×ÂèÆóÈÇ¤Ç¤Ï¡¤ Wnn V3 ¤Î @code{JSERVER} ¤È¤ÎÄÌ¿®¤Ï emacs lisp ¤Ç
+ ¼Â¸½¤¹¤ëWnn-client¤òÄó¶¡¤¹¤ë¡¥¤³¤Î¤¿¤á¡Ö¤¿¤Þ¤´¡×ÂèÆóÈÇ¤Ï nemacs ¤òÊÑ¹¹¤¹
+ ¤ë¤³¤È¤Ê¤¯Æ°ºî¤¹¤ë¤³¤È¤¬²ÄÇ½¤Ç¤¢¤ë¡¥@refill
+ @item Wnn V3.3 °Ê¹ß
+ Wnn V3 ¤Ï¥¢¥¹¥Æ¥Ã¥¯¤ÎÀ½ÉÊ¤Ç¤¢¤ê¡¤Nemacs¤¢¤ë¤¤¤Ï¡Ö¤¿¤Þ¤´¡×¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡¥
+ ¡Ê¥¢¥¹¥Æ¥Ã¥¯¤«¤éÆþ¼ê¤·¤Æ²¼¤µ¤¤¡¥Wnn ¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¤µ¯Æ°¤Ë¤Ä¤¤¤Æ¤Ï Wnn 
+ ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¸«¤Æ²¼¤µ¤¤¡¥¡Ë
+ @item ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à
+ @end table
+ 
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤é¹½À®¤µ¤ì¤ë¡¥
+ 
+ @table @file
+ @item lisp/wnn-egg.el
+ ¡Ö¤¿¤Þ¤´¡×¤ÎËÜÂÎ
+ @item lisp/wnn-client.el
+ Wnn V3 ¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ 
+ @item lisp/egg-rk.el
+ ¡Ö¤¿¤Þ¤´¡×ÆþÎÏÊ¸»úÊÑ´¹¥·¥¹¥Æ¥à¤Ç¤ÎÉ¸½à¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Êý¼°ÄêµÁ¥Õ¥¡¥¤¥ë
+ @item lisp/egg-rk-dump.elnnn
+ egg-rk.el ¤Î¥À¥ó¥×·Á¼°¥Õ¥¡¥¤¥ë
+ @item man/egg.texinfo
+ ¤³¤Î¥Õ¥¡¥¤¥ë
+ @item lisp/egg-keymap.el
+ Sun/X11 ÍÑ¤Î keymap ÄêµÁ¥Õ¥¡¥¤¥ë
+ @item src/wnnfns.c
+ WnnV3¤ª¤è¤ÓWnnV4¤ÈEmacslisp¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
+ @item lisp/wnnfns-supprt.el
+ wnnfns.c¤Î»Ù±ç¥Ñ¥Ã¥±¡¼¥¸
+ @end table
+ 
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @node ½é´üÀßÄê, ´Á»úÆþÎÏ, ³µÀâ, Top
+ @chapter  ½é´üÀßÄê
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @cindex ½é´üÀßÄê[¤·¤ç¤­¤»¤Ã¤Æ¤¤]
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Î½é´üÀßÄê¤Ï¼¡¤Î£²¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ç¹Ô¤Ê¤¦¡¥
+ 
+ @table @asis
+ @item emacs¤Î½é´üÀßÄê¥Õ¥¡¥¤¥ë @file{~/.emacs}
+ ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß¤È²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥È¤Î»ØÄê¤ò¹Ô¤Ê¤¦¡¥
+ @item ¡Ö¤¿¤Þ¤´¡×¤Î½é´üÀßÄê¥Õ¥¡¥¤¥ë 
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬»ÈÍÑ¤¹¤ë¼­½ñ¤Î»ØÄê¤ò¹Ô¤Ê¤¦¡¥¡Ê@pxref{¼­½ñ»ØÄê}¡Ë
+ @end table
+ 
+ @menu
+ * System: ¥·¥¹¥Æ¥à. 	¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ * Server: ¥µ¡¼¥Ð»ØÄê. 	²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ * Dict: ¼­½ñ»ØÄê.	»ÈÍÑ¼­½ñ¤Î»ØÄê
+ @end menu
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥·¥¹¥Æ¥à, ¥µ¡¼¥Ð»ØÄê, ½é´üÀßÄê, ½é´üÀßÄê
+ @section ¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤ÎÆÉ¤ß¹þ¤ß
+ @c -------------------------------------------------------------------------
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÊýË¡¤Ç»ØÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¡¥
+ 
+ @enumerate
+ @item
+ @file{nemacs-init.el}¤ÎÃæ¤ÇÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ê¤Ã¤¿¾õÂÖ¤Î @file{xemacs}¤òºî¤ë
+ @item
+ ÍøÍÑ¼Ô¤¬nemacs¤Îµ¯Æ°»þ¤Ë@file{~/.emacs}¤ÎÃæ¤ÇÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ê¤¦¡¥
+ ¡Ê@file{nemacs-init.el}¤ÇÆÉ¤ß¹þ¤ß¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤@file{~/.emacs}¤ÇÆÉ
+ ¤ß¹þ¤àÉ¬Í×¤Ï¤Ê¤¤¡¥¡Ë@refill
+ @end enumerate
+ 
+ ÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤Î¤â¤Î¤Ç¤¢¤ë¡¥
+ 
+ @file{nconfig.h}¤Ç WNN3 ¤Þ¤¿¤Ï WNN4V3 ¤ò»ØÄê¤·¤¿¾ì¹ç
+ @itemize @bullet
+ @item
+ "wnn-client"
+ @item
+ "wnn-egg"
+ @item
+ "egg-rk-dump"
+ @end itemize
+ 
+ ¤½¤ì°Ê³°¤Î¾ì¹ç
+ @itemize @bullet
+ @item
+ "wnn-egg"
+ @item
+ "wnnfns"
+ @item
+ "egg-rk-dump"
+ @end itemize
+ 
+ 
+ ¤µ¤é¤ËSun/X11¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¤ÈSun ¤Î¥Õ¥¡¥ó¥¯
+ ¥·¥ç¥ó¥­¡¼¤¬ÍøÍÑ²ÄÇ½¤È¤Ê¤ë¡¥¡Ê@pxref{Sun Key map}¡Ë
+ 
+ @example
+ (load "egg-keymap")
+ @end example
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥µ¡¼¥Ð»ØÄê, ¼­½ñ»ØÄê, ¥·¥¹¥Æ¥à, ½é´üÀßÄê
+ @section ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤Î»ØÄê
+ @c -------------------------------------------------------------------------
+ @cindex ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð[¤«¤Ê¤«¤ó¤¸¤Ø¤ó¤«¤ó¤µ¡¼¤Ð]
+ @findex wnn-host-name
+ @findex disconnect-wnn
+ @findex set-wnn-host-name
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬Æ°ºî¤·¤Æ¤¤¤ë¥Û¥¹¥È¤ÎÌ¾Á°¤ÏÊÑ¿ô @code{wnn-host-name} 
+ ¤Þ¤¿¤Ï´Ä¶­ÊÑ¿ô @code{JSERVER}¤ËÊ¸»úÎó¤Ç»ØÄê¤¹¤ë¡¥¥Û¥¹¥È¤Î»ØÄê¤¬¤µ¤ì¤Æ¤¤
+ ¤Ê¤¤¾ì¹ç¡¤¤Þ¤¿¤Ï @code{nil} ¤¬»ØÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï local host ¤¬»ØÄê¤µ¤ì
+ ¤¿¤È¤ß¤Ê¤¹¡¥@refill
+ 
+ ²¾Ì¾´Á»ú¥µ¡¼¥Ð¥Û¥¹¥È¤òÊÑ¹¹¤¹¤ë¤Ë¤Ï¡¤@kbd{M-x set-wnn-host-name}¤ò¼Â¹Ô¤·
+ ¤Æ¿·¤·¤¤¥µ¡¼¥Ð¥Û¥¹¥È¤ò»ØÄê¤¹¤ë¡¥@refill
+ 
+ @defvar wnn-host-name
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥ÈÌ¾¤òÊ¸»úÎó¤Ç»ØÄê¤¹¤ë¡¥ÃÍ¤¬@code{nil}¤Î¾ì¹ç¤Ï¡¤¥í¡¼
+ ¥«¥ë¥Û¥¹¥È¤ò»ØÄê¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹¡¥¤¿¤È¤¨¤Ð¡¤²¾Ì¾´Á»ú¥µ¡¼¥Ð¡¼¥Û¥¹¥È¤¬ 
+ @code{TAISHO} ¤Î¾ì¹ç¡¤@file{~/.emacs}¤Ë¼¡¤Î¹Ô¤òÄÉ²Ã¤¹¤ë¡¥
+ @example
+ (setq wnn-host-name "TAISHO" )
+ @end example
+ @end defvar
+ 
+ @deffn Command disconnect-wnn
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤Î¥³¥Í¥¯¥·¥ç¥ó¤ò²òÊü¤¹¤ë¡¥
+ @end deffn
+ 
+ @deffn Command set-wnn-host-name host-name
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¥Û¥¹¥È¤òÀßÄê¤¹¤ë¡¥
+ @end deffn
+ 
+ @c -------------------------------------------------------------------------
+ @node ¼­½ñ»ØÄê, ´Á»úÆþÎÏ, ¥µ¡¼¥Ð»ØÄê, ½é´üÀßÄê
+ @section »ÈÍÑ¼­½ñ¤Î»ØÄê
+ @c -------------------------------------------------------------------------
+ @cindex ¼­½ñ[¤¸¤·¤ç]
+ @cindex ¥·¥¹¥Æ¥à¼­½ñ[¤·¤¹¤Æ¤à¤¸¤·¤ç]
+ @cindex ÍøÍÑ¼Ô¼­½ñ[¤ê¤è¤¦¤·¤ã¤¸¤·¤ç]
+ @cindex ÉÑÅÙ¥Õ¥¡¥¤¥ë[¤Ò¤ó¤É¤Õ¤¡¤¤¤ë]
+ @findex egg-startup-file-name
+ @findex egg-startup-file-search-path
+ @findex egg-default-startup-file-name
+ @findex set-default-sys-dic-directory
+ @findex set-default-usr-dict-directory 
+ @findex setsysdic
+ @findex setusrdic
+ 
+ °Ê²¼¤Ç¤Ï nemacs¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤ò@file{$NEMACS}¤Ç¼¨¤¹¡¥@refill
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ï²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤ò³«»Ï¤¹¤ë¤È½é´üÀßÄê¥Õ¥¡¥¤¥ë¤òÃµº÷
+ ¼Â¹Ô¤·¤Æ´Ä¶­ÀßÄê¤ò¹Ô¤Ê¤¦¡¥½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ÎÃµº÷¤Ï¤Þ¤º
+ @code{egg-startup-file-name}¤È@code{egg-startup-file-search-path}¤òÍÑ¤¤
+ ¤Æ¹Ô¤Ê¤¦¡¥¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï@code{egg-default-startup-file-name}¤È
+ @code{load-path}¤òÍÑ¤¤¤ÆÃµº÷¤¹¤ë¡¥@code{egg-startup-file-name}¤ÎÉ¸½àÀßÄê
+ ¤Ï@file{.eggrc}¤Ç¤¢¤ë¡¥@refill
+ 
+ site ¤Ç»ÈÍÑ¤¹¤ëÉ¸½à½é´üÀßÄê¥Õ¥¡¥¤¥ë¤Ï WNN3¤Î¾ì¹ç¤Ï 
+ @file{$NEMACS/lisp/eggrc-v3}¡¤WNN4V3 ¤Î¾ì¹ç¤Ë¤Ï
+ @file{$NEMACS/lisp/eggrc-v4}¤Ç¤¢¤ë¡¥@refill
+ 
+ ½é´üÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¤²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤¬»ÈÍÑ¤¹¤ë¼­½ñ¤ÎÀßÄê¤ò¹Ô¤Ê¤¦¡¥
+ Wnn V3 ¤Î¼­½ñ¤Ë¤Ï¥·¥¹¥Æ¥à¼­½ñ¡¤ÍøÍÑ¼Ô¼­½ñ¤Î£²¼ïÎà¤¬¤¢¤ë¡¥¥·¥¹¥Æ¥à¼­½ñ¤Î
+ ÆâÍÆ¤ÏÊÑ¹¹¤Ç¤­¤Ê¤¤¡¥ÍøÍÑ¼Ô¼­½ñ¤ÏÆâÍÆ¤ÎÊÑ¹¹¤¬²ÄÇ½¤Ç¤¢¤ë¡¥¥·¥¹¥Æ¥à¼­½ñ¤ÎÍø
+ ÍÑÉÑÅÙ¾ðÊó¤Ï¡¤¼­½ñ¤È¤ÏÊÌ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤Ëµ­²±¤¹¤ë¡¥ÍøÍÑ¼Ô¼­½ñ¤ÎÉÑÅÙ¾ðÊó¤Ï¡¤
+ ¼­½ñ¤Ëµ­²±¤¹¤ë¡¥
+ 
+ ¼­½ñ¡¦ÉÑÅÙ¥Õ¥¡¥¤¥ë¤Î´ÉÍý¤Ï¼¡¤Î£²¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÊ¬¤±¤Æ¹Ô¤Ê¤¦¡¥
+ @enumerate
+ @item
+ ¥·¥¹¥Æ¥à¶¦ÄÌ¤Î¥·¥¹¥Æ¥à¼­½ñ¤òÃÖ¤¯¥·¥¹¥Æ¥à¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê
+ @item
+ ÍøÍÑ¼ÔËè¤Ë°Û¤Ê¤ë¡¤¥·¥¹¥Æ¥à¼­½ñ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤ÈÍøÍÑ¼Ô¼­½ñ¤òÃÖ¤¯ÍøÍÑ¼Ô¼­½ñ
+ ¥Ç¥£¥ì¥¯¥È¥ê
+ @end enumerate
+ 
+ @defvar egg-startup-file-name
+ ½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ÎÌ¾Á°¤ò»ØÄê¤¹¤ë¡¥
+ @end defvar
+ 
+ @defvar egg-startup-file-search-path
+ Ãµº÷¤ò¹Ô¤Ê¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò»ØÄê¤¹¤ë¡¥@code{egg-startup-file-name}
+ ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¤³¤ÎÃµº÷¥Ñ¥¹¾å¤Î¥Õ¥¡¥¤¥ë¤òÃµ¤¹¡¥
+ @end defvar
+ 
+ @defvar egg-default-startup-file-name
+ site ¤Ç¶¦ÄÌ¤Ë»ÈÍÑ¤¹¤ë½é´üÀßÄê¥Õ¥¡¥¤¥ë¤ò»ØÄê¤¹¤ë¡¥¥Õ¥¡¥¤¥ëÌ¾¤¬¥Ç¥£¥ì¥¯¥È
+ ¥ê¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï@code{load-path}¾å¤Î¥Õ¥¡¥¤¥ë¤òÃµ¤¹¡¥
+ @end defvar
+ 
+ @defun set-default-sys-dic-directory directory
+ ¥·¥¹¥Æ¥à¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ @var{directory} ¤ò»ØÄê¤¹¤ë¡¥
+ @example
+ (set-default-sys-dic-directory "/usr/local/lib/dic/sys/")
+ @end example
+ @end defun
+ 
+ @defun set-default-usr-dict-directory directory
+ ÍøÍÑ¼Ô¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ @var{directory} ¤ò»ØÄê¤¹¤ë¡¥
+ @example
+ (set-default-usr-dic-directory "/usr/local/lib/dic/usr/$USER/")
+ @end example
+ @end defun
+ 
+ @c ¡ÊÃí°Õ1¡Ë¤³¤ÎÎã¤Ç»ÈÍÑ¤·¤¿ "/usr/local/lib/dic/sys/"
+ @c  "/usr/local/lib/dic/usr/$USER/" ¤ÏsiteËè¤Ë°Û¤Ê¤ê¤Þ¤¹¡¥ ³Æsite ¤ÎWnn Ã´Åö
+ @c  ¼Ô¤Ë³ÎÇ§¤·¤Æ²¼¤µ¤¤¡¥
+ 
+ @c ¡ÊÃí°Õ2¡Ë¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÏJSERVER¤¬Æ°¤¤¤Æ¤¤¤ë¥Û¥¹¥È¤Îroot¥×¥í¥»¥¹¤Ç
+ @c  ½ñ¤­¹þ¤á¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡ÊWnn V3¤Î¾ì¹ç¡Ë¡¥¤¿¤À¤·ÍøÍÑ¼Ô
+ @c  ¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤ëÉ¬Í×¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
+ 
+ @defun setsysdic jisho hindo priority &optional flag
+ ¥·¥¹¥Æ¥à¼­½ñ @var{jisho} ¤òÍ¥Àè½ç°Ì @var{priority}¤Ç»ÈÍÑ¤·¡¤¤³¤Î¥·¥¹¥Æ¥à
+ ¼­½ñ¤ÎÉÑÅÙ¥Õ¥¡¥¤¥ë¤Ë @var{hindo} ¤ò»ØÄê¤¹¤ë¡¥@var{jisho},@var{hindo}¤¬Àä
+ ÂÐ¥Ñ¥¹Ì¾¡Ê@file{/}¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¡Ë¤Ç¤Ê¤¤¾ì¹ç¤Ï¥Ñ¥¹Ì¾¤ÎÀèÆ¬¤Ë¥·¥¹¥Æ¥à¼­½ñ
+ ¥Ç¥£¥ì¥¯¥È¥ê¤òÄÉ²Ã¤·¤¿¥Ñ¥¹Ì¾¤ò»ÈÍÑ¤¹¤ë¡¥@var{flag}¤¬@code{t}¤Ç¤Ê¤¤¾ì¹ç¤Ï
+ @var{jindo}¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥»Ò@file{.sys}¤È¡¤¤Þ¤¿@var{hindo}¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥
+ »Ò@file{.hindo}¤òÄÉ²Ã¤¹¤ë¡¥@refill
+ 
+ @example
+ (setsysdic "pd-kihon" "pd-kihon" 5)
+ (setsysdic "kihon.sysdic" "kihon.freq" 5 t)
+ @end example
+ @end defun
+ 
+ @defun setusrdic jisho hindo priority &optional flag
+ ÍøÍÑ¼Ô¼­½ñ @var{jisho} ¤òÍ¥Àè½ç°Ì @var{priority} ¤Ç»ÈÍÑ¤¹¤ë¤³¤È¤ò»ØÄê¤¹
+ ¤ë¡¥@var{jisho}¤¬ÀäÂÐ¥Ñ¥¹Ì¾¡Ê@file{/}¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¡Ë¤Ç¤Ê¤¤¾ì¹ç¤Ï¥Ñ¥¹Ì¾
+ ¤ÎÀèÆ¬¤ËÍøÍÑ¼Ô¼­½ñ¥Ç¥£¥ì¥¯¥È¥ê¤òÄÉ²Ã¤·¤¿¥Ñ¥¹Ì¾¤ò»ÈÍÑ¤¹¤ë¡¥@var{flag}¤¬
+ @code{t}¤Ç¤Ê¤¤¾ì¹ç¤Ï@var{jindo}¤Î¥Ñ¥¹Ì¾¤Ë³ÈÄ¥»Ò@file{.usr}¤òÄÉ²Ã¤¹¤ë¡¥
+ @refill
+ 
+ @code{setsysdic}, @code{setusrdic} ¤Î»È¤¤Êý¤ÏWnn¤Î@file{.wnnrc}¤ÈÆ±ÍÍ¤Ç
+ ¤¢¤ë¡¥@code{setsysdic}¤Ï¥·¥¹¥Æ¥à¼­½ñ¤ÈÉÑÅÙ¥Õ¥¡¥¤¥ë¤ò»ØÄê¤·¡¤
+ @code{setusrdic}¤ÏÍøÍÑ¼Ô¼­½ñ¤ò»ØÄê¤¹¤ë¡¥@refill
+ 
+ @example
+ (setusrdic "my-dict" 5)
+ (setusrdic "our-dict.dat"  5 t)
+ @end example
+ @end defun
+ 
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @node ´Á»úÆþÎÏ, ¼­½ñ´ÉÍý, ½é´üÀßÄê, Top
+ @chapter ¡Ö¤¿¤Þ¤´¡× ¤Î´Á»úÆþÎÏ
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @cindex ´Á»úÆþÎÏ[¤«¤ó¤¸¤Ë¤å¤¦¤ê¤ç¤¯]
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Î´Á»úÆþÎÏÊýË¡¤Ë¤Ï¼¡¤Î£²¼ïÎà¤¬¤¢¤ë¡¥
+ 
+ @enumerate
+ @item
+ uum ¤ÈÆ±ÍÍ¤ÊÂÐÏÃ¼°´Á»úÆþÎÏÊýË¡
+ @item
+ emacs ¤Î@kbd{M-x}¥³¥Þ¥ó¥É¤Ë¤è¤ë°ì³çÊÑ´¹ÊýË¡
+ @end enumerate
+ 
+ @menu
+ * Intra: ÂÐÏÃ¼°.		ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ * Batch: °ì³ç¼°. 		ÊÑ´¹µ¡Ç½
+ * Mini: ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ.	minibuffer ¤Ç¤Î´Á»úÆþÎÏ
+ @end menu
+ 
+ @c --------------------------------------------------------------------------
+ @node ÂÐÏÃ¼°, °ì³ç¼°, ´Á»úÆþÎÏ, ´Á»úÆþÎÏ
+ @section  ÂÐÏÃ¼°´Á»úÆþÎÏË¡
+ @c --------------------------------------------------------------------------
+ 
+ @cindex ÂÐÏÃ¼°´Á»úÆþÎÏ[¤¿¤¤¤ï¤·¤­¤«¤ó¤¸¤Ë¤å¤¦¤ê¤ç¤¯]
+ ÂÐÏÃ¼°´Á»úÆþÎÏ¤Ë¤Ï¼¡¤Î£²¤Ä¤Îµ¡Ç½¤¬¤¢¤ë¡¥
+ 
+ @itemize @bullet
+ @item
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤ò»ÈÍÑ¤·¤Ê¤¤ÆþÎÏÊ¸»úÊÑ´¹µ¡Ç½(ÄÌ¾ï¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¤ò¹Ô
+ ¤Ê¤¦)
+ @item
+ ²¾Ì¾´Á»úÊÑ´¹¥µ¡¼¥Ð¤ò»ÈÍÑ¤¹¤ë²¾Ì¾´Á»úÊÑ´¹µ¡Ç½
+ @end itemize
+ 
+ ÂÐÏÃ¼°´Á»úÆþÎÏ¤Ç¤Ï¡¤°Ê²¼¤Î£´¤Ä¤Î¥â¡¼¥É¤ò°ÜÆ°¤·¤Ê¤¬¤éÆþÎÏ¤ò¹Ô¤Ê¤¦¡¥
+ 
+ @menu
+ * trans: Æ©²á¥â¡¼¥É. 	Æ©²á¥â¡¼¥É
+ * romakana:  ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É.  	¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É
+ * fence: ¥Õ¥§¥ó¥¹¥â¡¼¥É. 		¥Õ¥§¥ó¥¹¥â¡¼¥É
+ * kanji: ÊÑ´¹¥â¡¼¥É. 		´Á»úÊÑ´¹¥â¡¼¥É
+ @end menu
+ 
+ @c --------------------------------------------------------------------------
+ @node Æ©²á¥â¡¼¥É, ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É, ÂÐÏÃ¼°, ÂÐÏÃ¼°
+ @subsection Æ©²á¥â¡¼¥É
+ @c --------------------------------------------------------------------------
+ 
+ @cindex Æ©²á¥â¡¼¥É[¤È¤¦¤«¤â¡¼¤É]
+ 
+ Nemacs ¤òµ¯Æ°¤·¡¤¡Ö¤¿¤Þ¤´¡×¥·¥¹¥Æ¥à¤¬¥í¡¼¥É¤µ¤ì¤ë¤È¥â¡¼¥É¥é¥¤¥ó¤¬¼¡¤Î¤è
+ ¤¦¤ËÉ½¼¨¤µ¤ì¤ë¡¥¤³¤Î¤È¤­¤Î¥â¡¼¥É¤¬Æ©²á¥â¡¼¥É¤Ç¤¢¤ë¡¥
+ 
+ @example
+ [----] ---- NEmacs: *scratch*         (Lisp Interaction)---All---[JJJ-]
+  ^^^^
+ @end example
+ 
+ Æ©²á¥â¡¼¥É¤ÏÄÌ¾ï¤ÎNemacs¤ÈÆ±¤¸µ¡Ç½¤ò»ý¤Ä¡¥
+ 
+ ¡ÊÃí°Õ¡ËÎ©¤Á¤¢¤²¤¿»þ¤Ë @code{Error in init file} ¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
+ ¤¬ minibuffer¤ËÉ½¼¨¤µ¤ì¤ë»þ¤Ï¡¤@file{$NEMACS/lisp/egg.elc}¤«¡¤
+ @file{$NEMACS/lisp/egg-rk-dump.elc}¤¬Ìµ¤¤¤³¤È¤¬¹Í¤¨¤é¤ì¤ë¡¥¤³¤Î
+ ¾ì¹ç¤Ë¤Ï¡¤Nemacs¤ÎÃ´Åö¼Ô¤ËÏ¢Íí¤¹¤ë¡¥@refill
+ 
+ Æ©²á¥â¡¼¥É¤ò´Þ¤à¤¹¤Ù¤Æ¤Î¥â¡¼¥É¤Ç¡¤@kbd{C-^}¡Ê¥³¥Þ¥ó¥É
+ @strong{special-symbol-input}¡Ë¤Ë¤è¤Ã¤ÆÆÃ¼ìµ­¹æ¤ò´Þ¤àµ­¹æÆþÎÏ¤ò¹Ô¤Ê¤¦¤³
+ ¤È¤¬¤Ç¤­¤ë¡¥¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÉ½¼¨¤µ¤ì¤ë¥á¥Ë¥å¡¼Ãæ¤«¤é¡¤µ­¹æ¤Î¼ïÎà¡¤µ­¹æ¤ò½ç
+ ¤Ë@kbd{RET}¤Ë¤è¤Ã¤ÆÁªÂò¤¹¤ë¡¥@refill
+ 
+ @c --------------------------------------------------------------------------
+ @node ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É, ¥Õ¥§¥ó¥¹¥â¡¼¥É, Æ©²á¥â¡¼¥É, ÂÐÏÃ¼°
+ @subsection ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É
+ @c --------------------------------------------------------------------------
+ 
+ @cindex ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É[¤í¡¼¤Þ¤¸¤«¤Ê¤â¡¼¤É]
+ @cindex ¥Õ¥§¥ó¥¹[¤Õ¤§¤ó¤¹]
+ @findex  set-egg-fence-mode-format
+ @findex  toggle-egg-code
+ 
+ Æ©²á¥â¡¼¥É¤Ç @kbd{C-\} ¡Ê¥³¥Þ¥ó¥É@strong{toggle-egg-mode}¡Ë¤òÂÇ¤Ä¤È¡¤¥í¡¼
+ ¥Þ»ú²¾Ì¾¥â¡¼¥É¤ËÆþ¤ê¡¤¥â¡¼¥É¥é¥¤¥ó¤¬¼¡¤Î¤è¤¦¤ËÊÑ¤ï¤ë¡¥@refill
+ 
+ @example
+ [ a¤¢] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+  ^^^^
+ @end example
+ 
+ Æ©²á¥â¡¼¥É¤ËÌá¤ë¤Ë¤Ï¡¤¤â¤¦°ìÅÙ@kbd{C-\}¤òÂÇ¤Ä¡¥@refill
+ 
+ ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ç¤Î¥³¥ó¥È¡¼¥ë¥­¡¼¤ä¥á¥¿¥­¡¼¤ÏÄÌ¾ï¤Î°ÕÌ£¤ò»ý¤Ä¤Î¤Ç¡¤¥«¡¼
+ ¥½¥ë°ÜÆ°¤Ê¤É¤Ï¡¤¤³¤Î¥â¡¼¥É¤Î¤Þ¤Þ¤Ç¼Â¹Ô¤Ç¤­¤ë¡¥ÄÌ¾ïÊ¸»ú¤òÆþÎÏ¤¹¤ë¤È¥«¡¼¥½
+ ¥ë¤Î°ÌÃÖ¤Ë½ÄËÀ @kbd{|} £²¤Ä¤¬¸½¤ì¡¤¤½¤Î´Ö¤ËÆþÎÏ¤ò¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¤·¤¿¤Ò
+ ¤é¤¬¤Ê¤¬É½¼¨¤µ¤ì¤ë¡¥Wnn¤Ç¤ª¤Ê¤¸¤ß¤ÎÊÑ´¹Îã¡¤¡Ö»ä¤ÎÌ¾Á°¤ÏÃæÌî¤Ç¤¹¡×¤Î¥í¡¼
+ ¥Þ»úÉ½µ­@refill
+ 
+ @example
+ watasinonamaehanakanodesu
+ @end example
+ 
+ ¤òÆþÎÏ¤¹¤ë¤È
+ 
+ @example
+ |¤ï¤¿¤·¤Î¤Ê¤Þ¤¨¤Ï¤Ê¤«¤Î¤Ç¤¹|
+ @end example
+ 
+ ¤ÈÊÑ´¹¤µ¤ì¤ÆÉ½¼¨¤µ¤ì¤ë¡¥¤³¤Î½ÄËÀ¤ò¥Õ¥§¥ó¥¹¤È¸Æ¤Ó¡¤¤³¤Î¾õÂÖ¤ò¥Õ¥§¥ó¥¹¥â¡¼
+ ¥É¤È¤¤¤¦¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É¤ò¼¨¤¹ÊýË¡¡Ê½ÄËÀ¤Ê¤É¡Ë¤Ï¡¤¥³¥Þ¥ó¥É
+ @strong{set-egg-fence-mode-format}¤ÇÊÑ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ @deffn Command set-egg-fence-mode-format OPEN CLOSE &optional ATTR
+ OPEN,CLOSE¤Ï¤½¤ì¤¾¤ìÎÎ°è¤Î»ÏÅÀ¤È½ªÅÀ¤ò¼¨¤¹Ê¸»úÎó¡¥ATTR¤Ï¥Õ¥§¥ó¥¹ÎÎ°è¤ËÀß
+ Äê¤µ¤ì¤ëattribute¡Êx11term¤Ç¤Î¤ßÍ­¸ú¡Ë¡¥É¸½à¤Î¾õÂÖ¤Ç¤Ï¡¤@refill @*
+ @code{(set-egg-fence-mode-format "|" "|" nil)}¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥@refill
+ @end deffn
+ 
+ @deffn Command toggle-egg-code
+ Æ©²á¥â¡¼¥É¤È¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÎÀÚÂØ¤ò¹Ô¤Ê¤¦¡¥
+ ¥Õ¥§¥ó¥¹¥â¡¼¥ÉÃæ¤Ç¤Ï¡¤¥í¡¼¥Þ»ú¤«¤ÊÆþÎÏ¥â¡¼¥É¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤òÀÚÂØ¤¨¤ë¡¥
+ @end deffn
+ 
+ @c --------------------------------------------------------------------------
+ @node ¥Õ¥§¥ó¥¹¥â¡¼¥É, ÊÑ´¹¥â¡¼¥É, ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É, ÂÐÏÃ¼°
+ @subsection ¥Õ¥§¥ó¥¹¥â¡¼¥É
+ @c --------------------------------------------------------------------------
+ 
+ @cindex ¥Õ¥§¥ó¥¹¥â¡¼¥É[¤Õ¤§¤ó¤¹¤â¡¼¤É]
+ @cindex £±£¶¿ÊÆþÎÏ[£±£¶¤·¤ó¤Ë¤å¤¦¤ê¤ç¤¯]
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤ÏÊ¸»úÆþÎÏ¤È¥Õ¥§¥ó¥¹¥â¡¼¥ÉÊÔ½¸¥³¥Þ¥ó¥É¤Ë¤è¤ëÊÔ½¸¤Î¤ß¤¬¹Ô
+ ¤Ê¤¨¤ë¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤Ï°Ê²¼¤ÎÊÔ½¸¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ @table @kbd
+ @item ! .. ~
+ ¥í¡¼¥Þ»ú¤ò²¾Ì¾¤ËÊÑ´¹
+ @item @key{SPC}
+ ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ @item C-@@
+ ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ @item C-a
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÀèÆ¬¤ÎÊ¸»ú¤Ø°ÜÆ°
+ @item C-b
+ fenceÆâ¤Ç°ìÊ¸»úÊ¬Á°¤Ø
+ @item C-c
+ ÆþÎÏ¤òÃæ»ß¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ @item C-d
+ °ìÊ¸»úºï½ü
+ @item C-e
+ ¥Õ¥§¥ó¥¹Æâ¤ÎºÇ¸å¤ÎÊ¸»ú¤Ø°ÜÆ°
+ @item C-f
+ fenceÆâ¤Ç°ìÊ¸»úÊ¬¸å¤í¤Ø
+ @item C-g
+ ÆþÎÏ¤òcancel¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ @item C-k
+ ¥Õ¥§¥ó¥¹Æâ¤Î¥«¡¼¥½¥ë¤«¤é¸å¤í¤òºï½ü
+ @item C-l
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÆþÎÏ¤ò³ÎÄê¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ @item RET
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÆþÎÏ¤ò³ÎÄê¤·¡¤¥Õ¥§¥ó¥¹¥â¡¼¥É¤«¤éÈ´¤±¤ë
+ @item C-T
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ÎÅ¾ÃÖ
+ @item C-W
+ ²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ @item C-_
+ JIS ¥³¡¼¥ÉÆþÎÏ
+ @item M-h
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{fence-hiragana}¡Ë
+ @item M-k
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{fence-katakana}¡Ë
+ @item M->
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{fence-zenkaku}¡Ë
+ @item M-<
+ ¥Õ¥§¥ó¥¹Æâ¤ÎÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{fence-hankaku}¡Ë
+ @end table
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç@kbd{C-\} ¤ò¥¿¥¤¥×¤¹¤ë¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤ËÀÚ¤êÂØ¤ï¤ê¡¤È¾³Ñ
+ Ê¸»ú¤¬ÆþÎÏ¤Ç¤­¤ë¡¥¤â¤¦£±ÅÙ@kbd{C-\} ¤òÃ¡¤¯¤È¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤ËÌá¤ë¡¥
+ @refill
+ 
+ ¥â¡¼¥É¥é¥¤¥ó¤Ï
+ @example
+ [ a a] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+  ^^^^
+ @end example
+ 
+ ¤È¤Ê¤ë¡¥
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÇJIS code¤òÄ¾ÀÜÆþÎÏ¤¹¤ë¤Ë¤Ï@kbd{C-_}¡Ê¥³¥Þ¥ó¥É
+ @strong{jis-code-input}¤ÈÂÇ¤Ä¡¥minibuffer ¤Ë @code{JIS code:}@: ¤ÈÉ½¼¨¤µ
+ ¤ì¡¤£±£¶¿Ê¿ôÆþÎÏ¤ò¼õ¤±ÉÕ¤±¤ë¡¥@refill
+ 
+ @ifinfo
+ @deffn Command toggle-egg-code
+ Æ©²á¥â¡¼¥É¤È¥Õ¥§¥ó¥¹¥â¡¼¥É¤ÎÀÚÂØ¤ò¹Ô¤Ê¤¦¡¥
+ ¥Õ¥§¥ó¥¹¥â¡¼¥ÉÃæ¤Ç¤Ï¡¤¥í¡¼¥Þ»ú¤«¤ÊÆþÎÏ¥â¡¼¥É¤ÈÈ¾³ÑÆþÎÏ¥â¡¼¥É¤òÀÚÂØ¤¨¤ë¡¥
+ @end deffn
+ @end ifinfo
+ 
+ @c --------------------------------------------------------------------------
+ @node ÊÑ´¹¥â¡¼¥É, ÊÑ´¹¥³¥Þ¥ó¥É, ¥Õ¥§¥ó¥¹¥â¡¼¥É, ÂÐÏÃ¼°
+ @subsection ´Á»úÊÑ´¹¥â¡¼¥É
+ @c --------------------------------------------------------------------------
+ 
+ @cindex ´Á»úÊÑ´¹¥â¡¼¥É[¤«¤ó¤¸¤Ø¤ó¤«¤ó¤â¡¼¤É]
+ @cindex ²¾Ì¾´Á»úÊÑ´¹[¤«¤Ê¤«¤ó¤¸¤Ø¤ó¤«¤ó]
+ @cindex JSERVER
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤Ï¡¤@kbd{C-w}¡¤@kbd{C-@@}¡¤@kbd{SPC}¤Î¤¤¤Å¤ì¤«¤Ë¤è¤Ã¤Æ¡¤
+ ´Á»úÊÑ´¹¥â¡¼¥É¤ËÆþ¤ê¡¤²¾Ì¾´Á»úÊÑ´¹¤¬³«»Ï¤µ¤ì¤ë¡¥¥â¡¼¥É¥é¥¤¥ó¤Ï¼¡¤Î¤è¤¦¤Ë
+ ¤Ê¤ë¡¥@refill
+ 
+ @example
+ [´Á»ú] ---- NEmacs: *scratch*          (Lisp Interaction)---All---[JJJ-]
+  ^^^^
+ @end example
+ 
+ 
+ ²¾Ì¾´Á»ú¥â¡¼¥É¤ËÆþ¤Ã¤¿»þ½é¤á¤Æ¡¤¡Ö¤¿¤Þ¤´¡×¤ÏJSERVER¤È¤Î¥³¥Í¥¯¥·¥ç¥ó¤ò³«
+ ¤­¡¤
+ 
+ @example
+ ¥Û¥¹¥È etlcom ¤ÎJSERVER¤òµ¯Æ°¤·¤Þ¤·¤¿¡¥
+ @end example
+ 
+ ¤È¤¤¤¦ message ¤ò minibuffer ¤ËÉ½¼¨¤·¡¤¼­½ñÀßÄê¤Î¤¿¤á¤Ë@file{.eggrc}¤òÆÉ
+ ¤ß¹þ¤à¡¥ÉÑÅÙ¾ðÊó¥Õ¥¡¥¤¥ë¤ä¸Ä¿Í¼­½ñ¤¬¤Ê¤¤¾ì¹ç¤Ï¤½¤ì¤é¤òºîÀ®¤¹¤ë¤«¤É¤¦¤«¤ò
+ ¼ÁÌä¤¹¤ë¡¥@refill
+ 
+ ¤â¤·JSERVER¤¬Æ°¤¤¤Æ¤¤¤Ê¤¤¤È¡¤
+ 
+ @example
+ etlcom ¾å¤ËJSERVER¤¬¤¢¤ê¤Þ¤»¤ó¡¥
+ @end example
+ 
+ ¤È¤¤¤¦error message¤òminibuffer¤ËÉ½¼¨¤¹¤ë¡¥¡Ê¤³¤Î¾ì¹ç¤Ë¤Ï¥Û¥¹¥È¤ÎWnnÃ´Åö
+ ¼Ô¤ËÏ¢Íí¤ò¤·¤ÆJSERVER¤òµ¯Æ°¤·¤Æ¤â¤é¤Ã¤Æ²¼¤µ¤¤¡¥¡Ë
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤«¤é¤Î message ¤Ï¤¹¤Ù¤Æ @code{*Notification*} ¤È¤¤¤¦ buffer ¤Ë
+ ÊÝÂ¸¤µ¤ì¤ë¡¥@kbd{M-x select-notification} ¤ò¼Â¹Ô¤¹¤ë¤ÈÁªÂò¤µ¤ì¤ë¡¥@refill
+ 
+ @node   ÊÑ´¹¥³¥Þ¥ó¥É, ¥á¥Ë¥å¡¼ÁªÂò, ÊÑ´¹¥â¡¼¥É, ÊÑ´¹¥â¡¼¥É
+ @subsubsection ÊÑ´¹¥³¥Þ¥ó¥É
+ 
+ @cindex ²¾Ì¾´Á»úÊÑ´¹¥³¥Þ¥ó¥É[¤«¤Ê¤«¤ó¤¸¤Ø¤ó¤«¤ó¤³¤Þ¤ó¤É]
+ @findex set-egg-henkan-mode-format
+ 
+ ÊÑ´¹¥â¡¼¥É¤Ç¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ @table @kbd
+ @item @key{SPC}
+ ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ @item C-@key{SPC}
+ ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ @item C-a
+ ÀèÆ¬Ê¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ @item C-b
+ Ä¾Á°¤ÎÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ @item C-c
+ ÊÑ´¹¤òÃæ»ß¤·¡¤²¾Ì¾¥â¡¼¥É¤Ë¤â¤É¤ë
+ @item C-e
+ ºÇ½ªÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ @item C-f
+ Ä¾¸å¤ÎÊ¸Àá¤Ø¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë
+ @item C-g
+ ´Á»úÊÑ´¹¥â¡¼¥É¤òÃæ»ß¤¹¤ë
+ @item C-h
+ ´Á»úÊÑ´¹¥â¡¼¥É¥³¥Þ¥ó¥É¤òÉ½¼¨¤¹¤ë
+ @item C-i
+ Ê¸Àá¤ÎÄ¹¤µ¤òÃ»¤¯¤¹¤ë
+ @item C-k
+ ¥«¡¼¥½¥ë¤Î¤¢¤ëÊ¸Àá¤è¤êÁ°¤ò³ÎÄê¤·¡¤¥«¡¼¥½¥ë¤ò´Þ¤àÊ¸Àá°Ê¹ß¤ò²¾Ì¾¥â¡¼¥É¤ËÌá¤¹
+ @item C-l
+ ¤¹¤Ù¤Æ¤ÎÊÑ´¹¤ò³ÎÄê¤¹¤ë
+ @item @key{RET}
+ ¤¹¤Ù¤Æ¤ÎÊÑ´¹¤ò³ÎÄê¤¹¤ë
+ @item C-n
+ ¼¡¸õÊä¤òÉ½¼¨¤¹¤ë
+ @item C-o
+ Ê¸Àá¤ÎÄ¹¤µ¤òÄ¹¤¯¤¹¤ë
+ @item C-p
+ Á°¸õÊäÉ½¼¨¤¹¤ë
+ @item M-s
+ ÊÑ´¹¸õÊä°ìÍ÷¤ò¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÉ½¼¨¤·¡¤ÁªÂò²ÄÇ½¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É
+ @strong{henkan-select-kouho}¡Ë
+ @item M-h
+ Ê¸Àá¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{henkan-hiragana}¡Ë
+ @item M-i
+ Ê¸Àá¤ÎÊÑ´¹¾ðÊó¤òÉ½¼¨¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{henkan-inspect-bunsetu}¡Ë
+ @item M-k
+ Ê¸Àá¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{henkan-katakana}¡Ë
+ @item M-<
+ Ê¸Àá¤ÎÄ¹¤µ¤òºÇÂç¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{henkan-saichou-bunsetu}¡Ë
+ @item M->
+ Ê¸Àá¤ÎÄ¹¤µ¤òºÇ¾®¤Ë¤¹¤ë¡Ê¥³¥Þ¥ó¥É@strong{henkan-sanshou-bunsetu}¡Ë
+ @end table
+ 
+ Îã¤ò¤ß¤Æ¤ß¤è¤¦¡¥
+ 
+ @example
+ |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ @end example
+ 
+ ³ÆÊ¸Àá¤Ï¡¤°ì¸Ä¤ÎÈ¾³Ñ¶õÇò¤Ç¶èÀÚ¤é¤ì¤ë¡¥¡ÊÊÑ´¹¥â¡¼¥É¤Ç¤ÎÉ½¼¨¤ÎÊýË¡¤Ï¡¤¥³¥Þ
+ ¥ó¥É@strong{set-egg-henkan-mode-format}¤ÇÊÑ¹¹¤Ç¤­¤ë¡¥¡ËÊÑ´¹´Ö°ã¤¤¤ÏÊ¸Àá
+ Ëè¤ËºÆÊÑ´¹¤·¤Æ½¤Àµ¤¹¤ë¡¥Ê¸Àá¤ÎÀÚ¤êÊý¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤@kbd{C-i}¤Ë¤è¤Ã
+ ¤Æ¥«¡¼¥½¥ë¤Î¤¢¤ëÊ¸Àá¤òÃ»¤¯¤¹¤ë¤«¡¤@kbd{C-o}¤Ë¤è¤Ã¤Æ¥«¡¼¥½¥ë¤¬¤¢¤ëÊ¸Àá¤ò
+ Ä¹¤¯¤·¤Æ½¤Àµ¤¹¤ë¡¥
+ @refill
+ 
+ Ê¸ÀáËè¤ÎºÆÊÑ´¹¤Ï¡¤@kbd{C-@@} ¡¤@kbd{SPC} ¤Þ¤¿¤Ï@kbd{C-n}¤Ë¤è¤Ã¤Æ¼¡¸õÊä¤ò
+ ½Ð¤¹¡¤@kbd{C-p}¤Ë¤è¤Ã¤ÆÄ¾Á°¤Î¸õÊä¤ò½Ð¤¹¡¤@kbd{M-s} ¤Ë¤è¤Ã¤Æ minibuffer 
+ ¤Ç¸õÊä°ìÍ÷¤«¤éÁª¤Ö¤Ê¤É¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥Ê£¿ô¤Î¸õÊä°ìÍ÷¤¬¤¢¤ë¾ì¹ç¤Ï¡¤
+ @kbd{C-n}¤Ç¼¡¤Î¸õÊä°ìÍ÷¤¬¡¤¤Þ¤¿@kbd{C-p}¤ÇÁ°¤Î¸õÊä°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥
+ @kbd{C-f}¤Ç¥«¡¼¥½¥ë¤¬¼¡¸õÊä¤Ë¡¤@kbd{C-b}¤Ç¥«¡¼¥½¥ë¤¬Á°¤Î¸õÊä¤Ë°ÜÆ°¤¹¤ë¡¥
+ ¸õÊä·èÄê¤Ë¤Ï@key{RET}¡¤¸õÊä°ìÍ÷¤Î¾õÂÖ¤«¤éÈ´¤±¤ë¤Ë¤Ï@kbd{C-g}¤ò¥¿¥¤¥×¤¹¤ì
+ ¤Ð¤è¤¤¡¥@refill
+ 
+ ¤Ò¤é¤¬¤ÊÆþÎÏ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤@kbd{C-c}¤òÃ¡¤¯¤È¡¤¤Ò¤é¤¬¤ÊÆþÎÏ¾õÂÖ
+ ¤ËÌá¤ë¡¥¤Þ¤¿ÀèÆ¬¤Î¤¤¤¯¤Ä¤«¤ÎÊ¸Àá¤ò³ÎÄê¤·¡¤»Ä¤ê¤ÎÉôÊ¬¤ò¤Ò¤é¤¬¤Ê¤ËÌá¤·¤ÆÊÔ
+ ½¸¤¹¤ë¤Ë¤Ï¡¤@kbd{C-k}¤ò¥¿¥¤¥×¤¹¤ë¤È¡¤¥«¡¼¥½¥ë¤Î¤¤¤ëÊ¸Àá¤ÎÄ¾Á°¤Þ¤Ç¤¬³ÎÄê
+ ¤·¡¤»Ä¤ê¤¬¤Ò¤é¤¬¤Ê¤ËÌá¤ë¡¥@refill
+ 
+ @deffn Command set-egg-henkan-mode-format OPEN CLOSE KUGIRI &optional ATTR1 ATTR2
+ ÊÑ´¹¥â¡¼¥É¤ÎÉ½¼¨ÊýË¡¤òÀßÄê¤¹¤ë¡¥OPEN,CLOSE,KUGIRI¤Ï¤½¤ì¤¾¤ìÊÑ´¹¤Î»ÏÅÀ¡¤
+ ½ªÅÀ¡¤Ê¸Àá¶èÀÚ¤ê¤ò¼¨¤¹Ê¸»úÎó¤¢¤ë¤¤¤Ïnil¡¥ATTR1,ATTR2¤Ï¤½¤ì¤¾¤ìÊÑ´¹¶è´Ö¡¤
+ Ê¸Àá¶è´Ö¤ËÀßÄê¤µ¤ì¤ëÂ°À­¤¢¤ë¤¤¤Ïnil¡Êx11term¤Ç¤Î¤ßÍ­¸ú¡Ë¡¥É¸½à¤Î¾õÂÖ¤Ç¤Ï¡¤
+ @* @refill
+ @code{(set-egg-henkan-mode-format "|" "|" " " nil nil)}¤Ç¤¢¤ë¡¥
+ @end deffn
+ @ignore
+ 
+ ¥â¡¼¥ÉÁ«°Ü¿Þ¡§
+ 
+ 		     ############################################
+                      #                                          #
+ 		     #			C-\			#
+ 		     #	      +<---<---<---<---<-----+		#
+         +---->---->--#	      |			     ^		#
+         ^            #	      V		C-\          |		#
+ 	|            # ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É--->--->Æ©²á¥â¡¼¥É	#
+         |            #    [ a¤¢] (1)              [----] (2)	#
+         ^            #       |                                  #
+ 	|            ########|###################################
+ 	|		     V
+ 	|		     |¥í¡¼¥Þ»ú¤òÆþÎÏ¤¹¤ë¤È¡¤
+ 	^		     | ¥Õ¥§¥ó¥¹¤¬¸½¤ì¤Þ¤¹¡¥
+ 	|	Fence mode   V
+ 	|	     ########|###################################
+ 	|	     #	     |          			#
+ 	^	     #	     V		  C-\         		#
+ 	|	     # ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É--->---È¾³ÑÆþÎÏ¥â¡¼¥É	#
+ 	+<---<---<---#    [ a¤¢] (3)              [ a a] (4)	#
+         ^            #       ^                       |          #
+         |            #       |        C-\            V          #
+ 	|	     #	     +<---<---<---<---<---<--+		#
+         |            #                                          #
+ 	|	     ############################################
+ 	^				|
+ 	|				|C-w
+ 	|		C-l		V
+ 	+<---<---<---<---<---<<---´Á»úÊÔ½¸¥â¡¼¥É
+ 				      [´Á»ú] (5)
+ 
+ 
+ ¥â¡¼¥ÉÊÌÍøÍÑ²ÄÇ½¥³¥Þ¥ó¥É°ìÍ÷¡¨
+ 
+    State 1: [ a¤¢] ¡§ ¥í¡¼¥Þ»ú¤òÆþÎÏ¤¹¤ë¤È¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ë¤Ê¤ë¡¥
+ 
+    State 2: [----] ¡§ ÄÌ¾ï¤Înemacs¤ÈÆ±¤¸¡¥
+ 
+    State 3: [ a¤¢] ¡§ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤Î¤Ò¤é¤¬¤ÊÆþÎÏ¡¥
+ 
+ @end ignore
+ 
+ 
+ @ignore
+    State 4: [ a a]  ¡§ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Ç¤ÎÈ¾³ÑÆþÎÏ¡¥
+ 
+ SPC .. ~ ¤½¤ÎÊ¸»ú¼«¿È¤òÁÞÆþ¤¹¤ë¡¥
+ C-@	²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ C-a	fence¤ÎÀèÆ¬¤Ø°ÜÆ°
+ C-b	fenceÆâ¤Ç°ìÊ¸»úÊ¬Á°¤Ø
+ C-c	ÆþÎÏ¤òcancel¤·¡¤fence mode¤«¤éÈ´¤±¤ë¡¥
+ C-d	°ìÊ¸»úºï½ü
+ C-e	fence¤ÎºÇ¸å¤Ø°ÜÆ°
+ C-f	fenceÆâ¤Ç°ìÊ¸»úÊ¬¸å¤í¤Ø
+ C-g	ÆþÎÏ¤òcancel¤·¡¤fence mode¤«¤éÈ´¤±¤ë¡¥
+ C-k	fenceÆâ¤Î¥«¡¼¥½¥ë¤«¤é¸å¤í¤òºï½ü
+ C-l	fenceÆâ¤ÎÆþÎÏ¤·¡¤fence mode¤«¤éÈ´¤±¤ë¡¥
+ RET	fenceÆâ¤ÎÆþÎÏ¤·¡¤fence mode¤«¤éÈ´¤±¤ë¡¥
+ C-T	fenceÆâ¤ÎÊ¸»ú¤ÎÅ¾ÃÖ
+ C-W	²¾Ì¾´Á»úÊÑ´¹³«»Ï
+ C-_     JIS ¥³¡¼¥ÉÆþÎÏ
+ 
+    State 5: [´Á»ú]  ¡§ ´Á»úÊÑ´¹¥â¡¼¥É
+ 
+ @end ignore
+ 
+ @node ¥á¥Ë¥å¡¼ÁªÂò, °ì³ç¼°, ÊÑ´¹¥³¥Þ¥ó¥É, ÊÑ´¹¥â¡¼¥É
+ @subsubsection ¥á¥Ë¥å¡¼¤ÎÁªÂòË¡
+ 
+ minibuffer ¤òÍøÍÑ¤·¤¿¥á¥Ë¥å¡¼¥·¥¹¥Æ¥à¤Ç¤ÎÊÑ´¹¸õÊä¤ÎÁªÂòÊýË¡¤Ï¼¡¤ÎÄÌ¤ê¤Ç
+ ¤¢¤ë¡¥
+ 
+ @table @kbd
+ @item C-n
+ ¼¡¤Î¸õÊä°ìÍ÷
+ @item C-p
+ Á°¤Î¸õÊä°ìÍ÷
+ @item C-f
+ ¥«¡¼¥½¥ë¤ò¼¡¤Î¸õÊä¤Ë°ÜÆ°
+ @item C-b
+ ¥«¡¼¥½¥ë¤òÁ°¤Î¸õÊä¤Ë°ÜÆ°
+ @item C-g
+ ¥á¥Ë¥å¡¼ÁªÂò¤òÃæ»ß¤¹¤ë
+ @item RET
+ ¥«¡¼¥½¥ë¤Î¤¤¤ë¹àÌÜ¤òÁªÂò¤¹¤ë
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node °ì³ç¼°, ¼­½ñ´ÉÍý, ÂÐÏÃ¼°, ´Á»úÆþÎÏ
+ @section °ì³çÊÑ´¹µ¡Ç½
+ @c -------------------------------------------------------------------------
+ 
+ @cindex °ì³ç¼°ÊÑ´¹[¤¤¤Ã¤«¤Ä¤·¤­¤Ø¤ó¤«¤ó]
+ @menu
+ * JIS: JIS ÆþÎÏ.
+ * Zenkaku: Á´³ÑÊÑ´¹.
+ * Hankaku: È¾³ÑÊÑ´¹.
+ * Hiragana: ¤Ò¤é¤¬¤ÊÊÑ´¹.
+ * Katanaka: ¥«¥¿¥«¥ÊÊÑ´¹.
+ * RomaHira: ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹.
+ * RomaKanji: ¥í¡¼¥Þ»ú´Á»úÊÑ´¹.
+ * Kanji: ´Á»úÊÑ´¹.
+ @end menu
+ 
+ @c -------------------------------------------------------------------------
+ @node JIS ÆþÎÏ, Á´³ÑÊÑ´¹, °ì³ç¼°, °ì³ç¼°
+ @subsection JIS¥³¡¼¥ÉÆþÎÏ
+ @c -------------------------------------------------------------------------
+ 
+ @kbd{M-x jis-code-input}¤Ë¤è¤Ã¤ÆJIS¥³¡¼¥ÉÆþÎÏ¤¬¹Ô¤Ê¤¨¤ë¡¥minibuffer¤Ë
+ 
+ @example
+ JIS code: 
+ @end example
+ 
+ ¤È¥×¥í¥ó¥×¥È¤¬½Ð¤ë¤Î¤Ç16¿Ê¥³¡¼¥É¤ÇJIS¥³¡¼¥É¤òÆþÎÏ¤¹¤ë¡¥Îã¤¨¤Ð
+ 
+ @example
+ JIS code: 2170
+ @end example
+ 
+ ¤ÈÆþÎÏ¤¹¤ë¤È¡¤¥«¡¼¥½¥ë¤Î°ÌÃÖ¤Ë¡ð¤¬É½¼¨¤µ¤ì¤ë¡¥¡Ê16¿Ê¿ô¤ÎÂçÊ¸»ú¡¦¾®Ê¸»ú¤Î
+ ¶èÊÌ¤Ï¤Ê¤¤¡¥¡Ë
+ 
+ @c -------------------------------------------------------------------------
+ @node Á´³ÑÊÑ´¹, È¾³ÑÊÑ´¹, JIS ÆþÎÏ, °ì³ç¼°
+ @subsection Á´³ÑÊÑ´¹
+ @c -------------------------------------------------------------------------
+ @cindex Á´³ÑÊÑ´¹[¤¼¤ó¤«¤¯¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç±Ñ¿ô»ú¤äµ­¹æ¤Ê¤É¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ 
+ @table @kbd
+ @item M-x zenkaku-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x zenkaku-word
+ Ä¾¸å¤Î word ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x zenkaku-paragraph
+ Ä¾¸å¤Î paragraph ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x zenkaku-sentence
+ Ä¾¸å¤Î sentence ¤ÎÈ¾³ÑÊ¸»ú¤òÁ´³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node È¾³ÑÊÑ´¹, ¤Ò¤é¤¬¤ÊÊÑ´¹, Á´³ÑÊÑ´¹, °ì³ç¼°
+ @subsection È¾³ÑÊÑ´¹
+ @c -------------------------------------------------------------------------
+ 
+ @cindex È¾³ÑÊÑ´¹[¤Ï¤ó¤«¤¯¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç±Ñ¿ô»ú¤äµ­¹æ¤Ê¤É¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ ¡ÊÆüËÜ¸ìÊ¸»ú¤Ê¤É¤ÏÁ´³Ñ¤Î¤Þ¤ÞÊÑ´¹¤µ¤ì¤Ê¤¤¡Ë
+ 
+ @table @kbd
+ @item M-x hankaku-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x hankaku-word
+ Ä¾¸å¤Î word ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x hankaku-paragraph
+ Ä¾¸å¤Î paragraph ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @item M-x hankaku-sentence
+ Ä¾¸å¤Î sentence ¤ÎÁ´³ÑÊ¸»ú¤òÈ¾³ÑÊ¸»ú¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node ¤Ò¤é¤¬¤ÊÊÑ´¹, ¥«¥¿¥«¥ÊÊÑ´¹, È¾³ÑÊÑ´¹, °ì³ç¼°
+ @subsection ¤Ò¤é¤¬¤ÊÊÑ´¹
+ @c-------------------------------------------------------------------------
+ @cindex ¤Ò¤é¤¬¤ÊÊÑ´¹[¤Ò¤é¤¬¤Ê¤Ø¤ó¤«¤ó]
+ 
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ @table @kbd
+ @item M-x hiragana-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x hiragana-word
+ Ä¾¸å¤Î word ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x hiragana-paragraph
+ Ä¾¸å¤Î paragraph ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x hiragana-sentence
+ Ä¾¸å¤Î sentence ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥«¥¿¥«¥ÊÊÑ´¹, ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹, ¤Ò¤é¤¬¤ÊÊÑ´¹, °ì³ç¼°
+ @subsection ¥«¥¿¥«¥ÊÊÑ´¹
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¥«¥¿¥«¥ÊÊÑ´¹[¤«¤¿¤«¤Ê¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ @table @kbd
+ @item M-x katakana-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ @item M-x katakana-word
+ Ä¾¸å¤Î word ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ @item M-x katakana-paragraph
+ Ä¾¸å¤Î paragraph ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ @item M-x katakana-sentence
+ Ä¾¸å¤Î sentence ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹, ¥í¡¼¥Þ»ú´Á»úÊÑ´¹, ¥«¥¿¥«¥ÊÊÑ´¹, °ì³ç¼°
+ @subsection ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹[¤í¡¼¤Þ¤¸¤Ò¤é¤¬¤Ê¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ Îã¤¨¤Ð¥í¡¼¥Þ»úÊ¸»úÎó
+ @example
+ koreharo-majidesu.
+ @end example
+ ¤Ï¤Ò¤é¤¬¤ÊÊ¸»úÎó
+ @example
+ ¤³¤ì¤Ï¤í¡¼¤Þ¤¸¤Ç¤¹¡¥
+ @end example
+ ¤ËÊÑ´¹¤µ¤ì¤ë¡¥
+ 
+ @table @kbd
+ @item M-x roma-kana-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x roma-kana-word
+ Ä¾¸å¤Î word ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x roma-kana-paragraph
+ Ä¾¸å¤Î paragraph ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @item M-x roma-kana-sentence
+ Ä¾¸å¤Î sentence ¤Î¥í¡¼¥Þ»ú¤ò¤Ò¤é¤¬¤Ê¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥í¡¼¥Þ»ú´Á»úÊÑ´¹, ´Á»úÊÑ´¹, ¥í¡¼¥Þ»ú¤Ò¤é¤¬¤ÊÊÑ´¹, °ì³ç¼°
+ @subsection ¥í¡¼¥Þ»ú´Á»úÊÑ´¹
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¥í¡¼¥Þ»ú´Á»úÊÑ´¹[¤í¡¼¤Þ¤¸¤«¤ó¤¸¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¥í¡¼¥Þ»ú¤ò´Á»ú¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ @table @kbd
+ @item M-x roma-kanji-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x roma-kanji-word
+ Ä¾¸å¤Î word ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x roma-kanji-paragraph
+ Ä¾¸å¤Î paragraph ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x roma-kanji-sentence
+ Ä¾¸å¤Î sentence ¤Î¥í¡¼¥Þ»ú¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ Îã¤¨¤Ð¥í¡¼¥Þ»úÊ¸»úÎó
+ @example
+ watashino namaeha nakano desu.
+ @end example
+ ¤Ï¡¤
+ @example
+ |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ @end example
+ ¤Ë¤Ê¤ê¡¤´Á»úÊÑ´¹¥â¡¼¥É¤ËÆþ¤ë¡¥¡Ê¥ê¡¼¥¸¥ç¥óÆâ¤Î¶õÇòÊ¸»ú¤Ïºï½ü¤µ¤ì¤ë¡¥¡Ë
+ 
+ @c -------------------------------------------------------------------------
+ @node ´Á»úÊÑ´¹, ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ, ¥í¡¼¥Þ»ú´Á»úÊÑ´¹, °ì³ç¼°
+ @subsection ´Á»úÊÑ´¹
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¤Ò¤é¤¬¤Ê´Á»úÊÑ´¹[¤Ò¤é¤¬¤Ê¤«¤ó¤¸¤Ø¤ó¤«¤ó]
+ °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¤Ò¤é¤«¤Ê¤ò´Á»ú¤ËÊÑ´¹¤¹¤ë¡¥
+ 
+ @table @kbd
+ @item M-x henkan-region
+ »ØÄê¤·¤¿¥ê¡¼¥¸¥ç¥ó¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x henkan-word
+ Ä¾¸å¤Î word ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x henkan-paragraph
+ Ä¾¸å¤Î paragraph ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @item M-x henkan-sentence
+ Ä¾¸å¤Î sentence ¤Î¤Ò¤é¤¬¤Ê¤ò´Á»ú¤Ë¤¹¤ë¡¥
+ @end table
+ 
+ Îã¤¨¤Ð¤Ò¤é¤¬¤ÊÊ¸»úÎó
+ @example
+ ¤ï¤¿¤·¤Î¤Ê¤Þ¤¨¤Ï¤Ê¤«¤Î¤Ç¤¹¡¥
+ @end example
+ ¤Ï¡¤
+ @example
+ |»ä¤Î¤Ê Á°¤Ï ÃæÌî¤Ç¤¹|
+ @end example
+ ¤Ë¤Ê¤ê¡¤´Á»úÊÑ´¹¥â¡¼¥É¤ËÆþ¤ë¡¥
+ 
+ @c -------------------------------------------------------------------------
+ @node ¥ß¥Ë¥Ð¥Ã¥Õ¥¡ÆþÎÏ, ¼­½ñ´ÉÍý, ´Á»úÊÑ´¹, ´Á»úÆþÎÏ
+ @section ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç¤Î´Á»úÆþÎÏÊýË¡
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¥ß¥Ë¥Ð¥Ã¥Õ¥¡[¤ß¤Ë¤Ð¤Ã¤Õ¤¡]
+ minibufferÆâ¤Ç¤âÆþÎÏÊ¸»úÊÑ´¹¡¤²¾Ì¾´Á»úÊÑ´¹¤¬¤Ç¤­¤ë¡¥bufferÃæ¤ÈÆ±ÍÍ¤Ë
+ @kbd{C-\}¤òÂÇ¤Ä¤³¤È¤Ë¤è¤Ã¤Æ¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ë¤Ê¤ë¡¥¥â¡¼¥É¤ÏÁ´¤Æ¤Î
+ buffer ¤Î¥â¡¼¥É¥é¥¤¥ó¤Ë@code{m}¡Êfor Minibuffer¡Ë¤¬ÀèÆ¬¤Ë¤Ä¤¤¤¿·Á¤ÇÉ½¼¨
+ ¤µ¤ì¤ë¡¥@refill
+ 
+ @example
+ m[ a¤¢]-----NEmacs: wnn-egg.el         (Emacs-Lisp)---- 3%---[JJJ-]
+ ^ ^^^^
+ @end example
+ 
+ @c -------------------------------------------------------------------------
+ @node ¼­½ñ´ÉÍý, Customization, ´Á»úÆþÎÏ, Top
+ @chapter  ÍøÍÑ¼Ô¼­½ñ´ÉÍý
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ÍøÍÑ¼Ô¼­½ñ[¤ê¤è¤¦¤·¤ã¤¸¤·¤ç]
+ ¡Ö¤¿¤Þ¤´¡×¤Ï¡¤ÍøÍÑ¼Ô¼­½ñ¤Î´ÉÍý¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¼­½ñÅÐÏ¿¤È¼­½ñÊÔ½¸¤Î£²¤Ä¤Î
+ µ¡Ç½¤òÄó¶¡¤¹¤ë¡¥
+ 
+ @menu
+ * Toroku: ¼­½ñÅÐÏ¿.
+ * Henshu: ¼­½ñÊÔ½¸.	¼­½ñ¹àÌÜÊÔ½¸
+ @end menu
+ 
+ @c -------------------------------------------------------------------------
+ @node ¼­½ñÅÐÏ¿, ¼­½ñÊÔ½¸, ¼­½ñ´ÉÍý, ¼­½ñ´ÉÍý
+ @section  ¼­½ñÅÐÏ¿
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¼­½ñÅÐÏ¿[¤¸¤·¤ç¤È¤¦¤í¤¯]
+ @findex toroku-region
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤ÏbufferÃæ¤ÎÊ¸»úÎó¤òÍÑ¤¤¤ÆÍøÍÑ¼Ô¼­½ñ¤ËÃ±¸ì¤òÅÐÏ¿¤Ç¤­¤ë¡¥
+ 
+ @deffn Command toroku-region start end yomi hinshi jisho
+ ¥ê¡¼¥¸¥ç¥ó(@var{start},@var{end})¤Ç»ØÄê¤µ¤ì¤¿ÅÐÏ¿Ê¸»úÎó¤òÆÉ¤ßÊ¸»úÎó
+ @var{yomi}¤ÇÉÊ»ì@var{hinshi}¤Î¸ì¤È¤·¤Æ¼­½ñ@var{jisho}¤ËÅÐÏ¿¤¹¤ë¡¥
+ @end deffn
+ 
+ Îã¤¨¤Ð¡¤bufferÃæ¤Î¡ØÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¡Ù¤È¤¤¤¦Ã±¸ì¤ò¼­½ñ¤ËÅÐÏ¿¤¹¤ë¼ê½ç¤Ï
+ ¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
+ 
+ @enumerate
+ @item
+ ÅÐÏ¿Ê¸»úÎó¤ò»ØÄê¤¹¤ë¡¥ÅÐÏ¿¤¹¤ë¸ì¤ÎÈÏ°Ï¤ò¥ê¡¼¥¸¥ç¥ó¤Ç»ØÄê¤·¡¤@kbd{M-X
+ toroku-region}¤ò¼Â¹Ô¤¹¤ë¡¥
+ @item 
+ ÆÉ¤ß¤ò»ØÄê¤¹¤ë¡¥minibuffer¤Ë
+ @example
+ ¼­½ñÅÐÏ¿¡ØÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¡Ù ÆÉ¤ß¡§
+ @end example
+ ¤¬É½¼¨¤µ¤ì¤ë¡¥ÆÉ¤ß¤ò¥í¡¼¥Þ»ú¤ÇÆþÎÏ¤·¡Ê¼«Æ°Åª¤Ë¤Ò¤é¤¬¤Ê¤ËÊÑ´¹¤¹¤ë¡Ë
+ @key{RET}¤ÇÆÉ¤ß¤ÎÆþÎÏ¤ò½ªÎ»¤¹¤ë¡¥
+ @item
+ ÉÊ»ì¤ò»ØÄê¤¹¤ë¡¥minibuffer¤ËÉÊ»ì°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥¡Ê@pxref{ÉÊ»ì}¡Ë
+ @example
+ ÉÊ»ì:  0.Ì¾»ì  1.¸ÇÍ­Ì¾»ì  2.Æ°»ì  3.·ÁÍÆ»ì¸ì´´  4.·ÁÍÆÆ°»ì¸ì´´  5.Ï¢ÂÓ»ì
+ @end example
+ @kbd{C-F}¤Ç¥«¡¼¥½¥ë¤¬±¦¤Ë°ÜÆ°¤·¡¤@kbd{C-B}¤Ç¥«¡¼¥½¥ë¤¬º¸¤Ë°ÜÆ°¤¹¤ë¡¥
+ @kbd{C-N}¤Ç¼¡¤ÎÉÊ»ì°ìÍ÷¤¬É½¼¨¤µ¤ì¤ë¡¥
+ @example
+ ÉÊ»ì:  0.Éû»ì  1.ÀÜÂ³»ì¡¦´¶Æ°»ì  2.ÀÜÆ¬¸ì  3.ÀÜÈø¸ì  4.½õ¿ô»ì  5.¿ô»ì  6.Ã±´Á»ú
+ @end example
+ @kbd{C-P}¤ÇÁ°¤ÎÉÊ»ì°ìÍ÷¤ËÌá¤ë¡¥@*
+ ÌÜÅª¤ÎÉÊ»ì¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°¤·¡¤@key{RET}¤Ë¤è¤Ã¤ÆÉÊ»ì¤òÁªÂò¤¹¤ë¡¥
+ Æ°»ì¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¼ïÎà¤¬¤¢¤ë¤¿¤á¡¤Îã¤¨¤Ð¡Ö¥µÊÑ¡ÊÌ¾»ì·¿¡Ë¸ì´´¡×¤òÁªÂò¤¹¤ë
+ ¤Ë¤Ï¡¤¤Þ¤º¡ÖÆ°»ì¡×¤òÁªÂò¤·¡¤¼¡¤ÎÁªÂò¥ê¥¹¥È¤«¤é¡¤¡Ö¥µÊÑ¡ÊÌ¾»ì·¿¡Ë¸ì´´¡×¤ò
+ Ãµ¤·¡¤ÁªÂò¤¹¤ë¡¥@*  
+ Îã¤Î¾ì¹ç¡¤ÅÅ»Òµ»½ÑÁí¹ç¸¦µæ½ê¤Ï¸ÇÍ­Ì¾»ì¤Ê¤Î¤Ç¡¤¡Ö¸ÇÍ­Ì¾»ì¡×¤òÁª¤Ö¡¥  
+ @item
+ ÅÐÏ¿¤¹¤ë¼­½ñ¤ò»ØÄê¤¹¤ë¡¥Æ±ÍÍ¤Ë@kbd{C-F}, @kbd{C-B}, @kbd{C-N}, @kbd{C-P}
+ Åù¤ò»È¤Ã¤Æ¥«¡¼¥½¥ë¤òÅÐÏ¿¤·¤¿¤¤¼­½ñ¤Ë°ÜÆ°¤·ÁªÂò¤¹¤ë¡¥@key{RET}¤òÂÇ¤Ä¤È
+ Ã±¸ì¤òÅÐÏ¿¤¹¤ë¡¥@refill
+ @end enumerate
+ 
+ @c -------------------------------------------------------------------------
+ @node ¼­½ñÊÔ½¸, Customization, ¼­½ñÅÐÏ¿, ¼­½ñ´ÉÍý
+ @section ¼­½ñ¹àÌÜÊÔ½¸¡¡DicEd
+ @c -------------------------------------------------------------------------
+ 
+ @cindex ¼­½ñÊÔ½¸[¤¸¤·¤ç¤Ø¤ó¤·¤å¤¦]
+ @findex edit-dict-item 
+ ¸½ºß»ÈÍÑ¤·¤Æ¤¤¤ë¼­½ñ¤Î¼­½ñ¹àÌÜ¤ò¡¤ÆÉ¤ß¤ò»ØÄê¤·¤ÆÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥
+ 
+ @deffn Command edit-dict-item yomi
+ @end deffn
+ 
+ ÍøÍÑ¼Ô¼­½ñ¤ÎÅÐÏ¿¹àÌÜ¤ò½¤Àµ¤¹¤ë¤Ë¤Ï@kbd{M-x edit-dict-item}¤òÆþÎÏ¤·¡¤
+ minibuffer ¤Ç¹àÌÜ¤ÎÆÉ¤ß¤ò»ØÄê¤¹¤ë¡¥¤¹¤ë¤È @code{*Nihongo Dictionary
+ Information*} ¤È¤¤¤¦buffer¤¬ºî¤é¤ì¡¤¤¿¤È¤¨¤Ð°Ê²¼¤Î¤è¤¦¤ËÉ½¼¨¤µ¤ì¤ë¡¥
+ 
+ @example
+  *ÏÃ ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14434 ÉÑÅÙ¡§46
+  *Î¥ ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14433 ÉÑÅÙ¡§18
+  *Êü ¤¹         ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14432 ÉÑÅÙ¡§2
+  *¤Ï¤Ê ¤¹       ¥µ¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14428 ÉÑÅÙ¡§1
+  *Êü ¤Ä         ¥¿¹Ô¸ÞÃÊ¸ì´´  ¼­½ñ¡§pd-kihon.sys/14432 ÉÑÅÙ¡§2
+  *²Ö            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14429 ÉÑÅÙ¡§12
+  *É¡            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14431 ÉÑÅÙ¡§4
+  *¤Ï¤Ê          Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14427 ÉÑÅÙ¡§1
+  *²Ú            Ì¾»ì          ¼­½ñ¡§pd-kihon.sys/14430 ÉÑÅÙ¡§1
+  *¥Ï¥Ê          ¸ÇÍ­Ì¾»ì      ¼­½ñ¡§pd-jinmei.sys/1581 ÉÑÅÙ¡§0
+  *È¹            Ã±´Á»ú        ¼­½ñ¡§pd-tankan.sys/1959 ÉÑÅÙ¡§0
+ @end example
+ 
+ ¹ÔÆ¬¤Î¡Ö*¡×¤Ï¤½¤Î¼­½ñ¹àÌÜ¤¬¥·¥¹¥Æ¥à¼­½ñ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Æ½üµî¤Ç¤­¤Ê¤¤¤³¤È
+ ¤ò¼¨¤¹¡¥ÍøÍÑ¼Ô¼­½ñ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼­½ñ¹àÌÜ¤Ç¤Ï * ¤ÎÂå¤ï¤ê¤Ë¶õÇò¤òÉ½¼¨¤¹
+ ¤ë¡¥
+ 
+ ¡ÖÏÃ ¤¹¡×¤Ï¼­½ñ¹àÌÜ¤Î¸«½Ð¤·¸ì¤Ç¡¤¸ì´´¡Ê¡ÖÏÃ¡×¡Ë¤È³èÍÑ¸ìÈø¡Ê¡Ö¤¹¡×¡Ë¤È¤ò¶õ
+ ÇòÊ¸»ú¤ÇÊ¬¤±¤ÆÉ½¼¨¤¹¤ë¡¥  
+ 
+ ¡Ö¥µ¹Ô¸ÞÃÊ¸ì´´¡×¤Ï¼­½ñ¹àÌÜ¤ÎÉÊ»ì¤Ç¤¢¤ë¡¥ºÇ¸å¤Î¹àÌÜ¤ÏÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼­½ñÌ¾¡¤
+ ¹àÌÜÈÖ¹æ¡¤ÉÑÅÙ¤Ç¤¢¤ë¡¥
+ 
+ Diced ¤Ï¡¤Dired¤ÈÆ±ÍÍ¤Ë¤·¤Æ»ÈÍÑ¤Ç¤­¤ë¡¥ÄÌ¾ï¤Î¥«¡¼¥½¥ë°ÜÆ°¥³¥Þ¥ó¥É¤ÎÂ¾¤Ë
+ ¼¡¤Î¥³¥Þ¥ó¥É¤¬»ÈÍÑ¤Ç¤­¤ë¡¥
+ 
+ @table @kbd
+ @item  n
+ ¥«¡¼¥½¥ë¤ò²¼¤Ë°ÜÆ°¤¹¤ë¡¥
+ @item p
+ ¥«¡¼¥½¥ë¤ò¾å¤Ë°ÜÆ°¤¹¤ë¡¥
+ @item  a
+ ¼­½ñ¹àÌÜ¤òÄÉ²Ã¤¹¤ë¡¥
+ @item d
+ ¥«¡¼¥½¥ë¤Î¼­½ñ¹àÌÜ¤òºï½ü»ØÄê¤¹¤ë¡¥ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤Ï¹Ô¤ÎÀèÆ¬ 
+ ¤Ë @code{D} ¤òÉ½¼¨¤¹¤ë¡¥
+ @item u
+ ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤Îºï½ü»ØÄê¤ò²ò½ü¤¹¤ë¡¥
+ @item x
+ ºï½ü»ØÄê¤µ¤ì¤¿¼­½ñ¹àÌÜ¤ò¼ÂºÝ¤Ëºï½ü¤¹¤ë¡¥
+ @item q
+ ÊÔ½¸¤ò½ªÎ»¤¹¤ë¡¥ºï½ü¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡¥
+ @end table
+ 
+ 
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @node Customization, Sun Key map, ¼­½ñ´ÉÍý, Top
+ @chapter ¥«¥¹¥¿¥Þ¥¤¥º
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 
+ @menu
+ * global-map::		global-map ¤Î key binding ¤ÎÊÑ¹¹
+ * fence-mode-map:: 	¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * henkan-mode-map::	´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ * Roma kana henkan::	¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ @end menu
+ 
+ @c -------------------------------------------------------------------------
+ @node global-map, fence-mode-map, Customization, Customization
+ @section global-map ¤Î key binding ¤ÎÊÑ¹¹
+ @c -------------------------------------------------------------------------
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤ÏÄÌ¾ï»ÈÍÑ¤·¤Æ¤¤¤ëglobal-map¤òÊÑ¹¹¤·¤Æ¤ª¤ê¡¤¸µ¤Îglobal-map¤Ï
+ @code{si:*global-map*}¤ËÂàÈò¤µ¤ì¤Æ¤¤¤ë¡¥
+ 
+ ¡Ö¤¿¤Þ¤´¡×¤Ç¤Îglobal-map¤ÎÊÑ¹¹ÅÀ¤Ï¼¡¤ÎÄÌ¤ê¡¥
+ 
+ @enumerate
+ @item
+ @code{self-insert-command}¤ò@code{egg-self-insert-command}¤ËÊÑ¹¹¤·¤¿¡¥
+ @item
+ @code{(define-key global-map "\C-\\" 'toggle-egg-mode)}@*
+ @code{(define-key ctl-x-map  " " 'henkan-region)}@*
+ @code{(define-key global-map "\C-^" 'special-symbol-input)}@*
+ ¤òÄÉ²Ã¤·¤¿¡¥
+ @end enumerate
+ 
+ @c -------------------------------------------------------------------------
+ @node fence-mode-map, henkan-mode-map, global-map, Customization
+ @section ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ @c -------------------------------------------------------------------------
+ 
+ ¥Õ¥§¥ó¥¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹¤ÏÄÌ¾ï¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥¥Õ¥§¥ó¥¹¥â¡¼¥É
+ ¤Î keymap ¤Ë¤Ï¡¤ @code{fence-mode-map} ¤ò»ÈÍÑ¤¹¤ë¡¥¥Ç¥Õ¥©¥ë¥È¤Î key
+ binding ¤Ï¼¡¤ÎÄÌ¤ê¡¥
+ 
+ @example
+ (define-key fence-mode-map "\C-@@" 'henkan-fence-region)
+ (define-key fence-mode-map "\C-a" 'fence-beginning-of-line)
+ (define-key fence-mode-map "\C-b" 'fence-backward-char)
+ (define-key fence-mode-map "\C-c" 'fence-cancel-input)
+ (define-key fence-mode-map "\C-d" 'fence-delete-char)
+ (define-key fence-mode-map "\C-e" 'fence-end-of-line)
+ (define-key fence-mode-map "\C-f" 'fence-forward-char)
+ (define-key fence-mode-map "\C-g" 'fence-cancel-input)
+ (define-key fence-mode-map "\C-h" 'help-command)
+ (define-key fence-mode-map "\C-i" 'undefined)  
+ (define-key fence-mode-map "\C-j" 'undefined)  ;;; LFD
+ (define-key fence-mode-map "\C-k" 'fence-kill-line)
+ (define-key fence-mode-map "\C-l" 'fence-exit-mode)
+ (define-key fence-mode-map "\C-m" 'fence-exit-mode)  ;;; RET
+ (define-key fence-mode-map "\C-n" 'undefined)
+ (define-key fence-mode-map "\C-o" 'undefined)
+ (define-key fence-mode-map "\C-p" 'undefined)
+ (define-key fence-mode-map "\C-q" 'undefined)
+ (define-key fence-mode-map "\C-r" 'undefined)
+ (define-key fence-mode-map "\C-s" 'undefined)
+ (define-key fence-mode-map "\C-t" 'fence-transpose-chars)
+ (define-key fence-mode-map "\C-u" 'undefined)
+ (define-key fence-mode-map "\C-v" 'undefined)
+ (define-key fence-mode-map "\C-w" 'henkan-fence-region)
+ (define-key fence-mode-map "\C-x" 'undefined)
+ (define-key fence-mode-map "\C-y" 'undefined)
+ (define-key fence-mode-map "\C-z" 'eval-expression)
+ (define-key fence-mode-map "\C-|" 'fence-toggle-egg-mode)
+ (define-key fence-mode-map "\C-_" 'jis-code-input)
+ (define-key fence-mode-map " "    'henkan-fence-region-or-single-space)
+ (define-key fence-mode-map "!"	  'fence-insert-self-command)
+ .....
+ .....
+ (define-key fence-mode-map "~"	  'fence-insert-self-command)
+ (define-key fence-mode-map "\177" 'fence-backward-delete-char)
+ @end example
+ 
+ @c -------------------------------------------------------------------------
+ @node henkan-mode-map, Roma kana henkan, fence-mode-map, Customization
+ @section ²¾Ì¾´Á»úÊÑ´¹¥â¡¼¥É¤Î key binding ¤ÎÊÑ¹¹
+ @c -------------------------------------------------------------------------
+ 
+ ²¾Ì¾´Á»úÊÑ´¹¥â¡¼¥É ¤Î key binding ¤ÎÊÑ¹¹¤ÏÄÌ¾ï¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¡¥²¾Ì¾´Á»úÊÑ
+ ´¹¥â¡¼¥É¤Î keymap ¤Ë¤Ï¡¤ @kbd{henkan-mode-map} ¤ò»ÈÍÑ¤¹¤ë¡¥default ¤Î 
+ key binding ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
+ 
+ @example
+ (define-key henkan-mode-map "\C-@@" 'henkan-next-kouho)
+ (define-key henkan-mode-map "\C-a" 'henkan-first-bunsetu)
+ (define-key henkan-mode-map "\C-b" 'henkan-backward-bunsetu)
+ (define-key henkan-mode-map "\C-c" 'henkan-quit)
+ (define-key henkan-mode-map "\C-d" 'undefined)
+ (define-key henkan-mode-map "\C-e" 'henkan-last-bunsetu)
+ (define-key henkan-mode-map "\C-f" 'henkan-forward-bunsetu)
+ (define-key henkan-mode-map "\C-g" 'henkan-select-kouho)
+ (define-key henkan-mode-map "\C-h" 'undefined)
+ (define-key henkan-mode-map "\C-i" 'henkan-bunsetu-chijime)
+ (define-key henkan-mode-map "\C-j" 'undefined)
+ (define-key henkan-mode-map "\C-k" 'henkan-kakutei-before-point)
+ (define-key henkan-mode-map "\C-l" 'henkan-kakutei)
+ (define-key henkan-mode-map "\C-m" 'henkan-kakutei)
+ (define-key henkan-mode-map "\C-n" 'henkan-next-kouho)
+ (define-key henkan-mode-map "\C-o" 'henkan-bunsetu-nobasi)
+ (define-key henkan-mode-map "\C-p" 'henkan-previous-kouho)
+ (define-key henkan-mode-map "\C-q" 'undefined)
+ (define-key henkan-mode-map "\C-r" 'undefined)
+ (define-key henkan-mode-map "\C-s" 'undefined)
+ (define-key henkan-mode-map "\C-t" 'undefined)
+ (define-key henkan-mode-map "\C-u" 'undefined)
+ (define-key henkan-mode-map "\C-v" 'undefined)
+ (define-key henkan-mode-map "\C-w" 'undefined)
+ (define-key henkan-mode-map "\C-x" 'undefined)
+ (define-key henkan-mode-map "\C-y" 'undefined)
+ (define-key henkan-mode-map "\C-z" 'undefined)
+ (define-key henkan-mode-map " "    'henkan-next-kouho)
+ (define-key henkan-mode-map "!"	   'henkan-kakutei-and-self-insert)
+ ....
+ ....
+ (define-key henkan-mode-map "~"	   'henkan-kakutei-and-self-insert)
+ (define-key henkan-mode-map "\177" 'henkan-quit)
+ @end example
+ 
+ @c -------------------------------------------------------------------------
+ @node Roma kana henkan, Sun Key map, henkan-mode-map, Customization
+ @section ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡¤ÎÊÑ¹¹
+ @c -------------------------------------------------------------------------
+ @cindex ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹Ë¡[¤í¡¼¤Þ¤¸¤«¤Ê¤Ø¤ó¤«¤ó¤Û¤¦]
+ @findex define-egg-mode mode-string
+ @findex defrule
+ @findex dump-egg-mode-map
+ ¡Ö¤¿¤Þ¤´¡×¤Î¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹ÊýË¡¤Ï¡¤@file{egg-rk.el}¥Õ¥¡¥¤¥ëÃæ¤Ç
+ ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥¤³¤ÎÄêµÁÊýË¡¤ÏWnn¤Îromkan¤ò´ÊÃ±¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡¥
+ 
+ @defun define-egg-mode mode-string flag
+ ¤³¤ì¤«¤é@code{defrule}¤¬ÄêµÁ¤¹¤ë egg-mode ¤òÀë¸À¤¹¤ë¡¥@var{mode-string}
+ ¤Ï¤³¤Î¥â¡¼¥É¤ÎÌ¾Á°¤Ç¤¢¤ê¡¤¤³¤Î¥â¡¼¥É¤¬ÁªÂò¤µ¤ì¤¿»þ¤Ë¥â¡¼¥É¥é¥¤¥ó¤ËÉ½¼¨¤µ
+ ¤ì¤ëÊ¸»úÎó¤Ç¤¢¤ë¡¥@var{flag}¤¬@code{nil}¤Ç¤Ê¤¤¾ì¹ç¤Ï egg-mode ¤Î½é´ü²½¤ò
+ ¹Ô¤Ê¤¦¡¥
+ @example
+ 	(define-egg-mode "roma-kana" t)
+ @end example
+ ¤Ï¡¤egg-mode ¤È¤·¤Æ @code{"roma-kana"} ¤òÄêµÁ¤¹¤ë¤³¤È¤òÀë¸À¤¹¤ë¡¥
+ @code{t} ¤Ï egg-mode @code{"roma-kana"} ¤ò clear ¤¹¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡¥ 
+ @code{nil} ¤Î¾ì¹ç¤ÏÄêµÁ¤ÎÄÉ²Ã¤Ç¤¢¤ë¡¥
+ @end defun
+ 
+ @defun defrule input output next
+ Âè£±°ú¿ô¤ÏÆþÎÏÊ¸»úÎó¤ò¡¤Âè£²°ú¿ô¤Ï¤½¤ì¤ËÂÐ¤¹¤ëÊÑ´¹½ÐÎÏÊ¸»úÎó¤ò¼¨¤¹¡¥
+ @example
+ 	(defrule "a" "¤¢")
+ @end example
+ ¤Ï¡¤@kbd{a}¤ò"¤¢"¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥¡Ö¤¿¤Þ¤´¡× ¤Ç¤ÏÆþÎÏ¤ÎÂçÊ¸»ú¾®
+ Ê¸»ú¤ò¶èÊÌ¤¹¤ë¤Î¤Ç¡¤¤³¤ÎÄêµÁ¤Ï@kbd{A}¤ò"¤¢"¤ËÊÑ´¹¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Ê¤¤¡¥
+ 
+ Âè£³°ú¿ô¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¤Âè£±°ú¿ô¤ÎÆþÎÏ¤¬¤¢¤ë¤È¡¤Âè£²°ú¿ô¤òÊÑ´¹¤Î½ÐÎÏ¤È¤·¡¤
+ ¤µ¤é¤ËÂè£³°ú¿ô¤¬ÆþÎÏ¤È¤·¤Æ¤¢¤Ã¤¿¤â¤Î¤È¤·¤ÆÊÑ´¹¤òÂ³¤±¤ë¡¥
+ 
+ @example
+ 	(defrule  "tch" "¤Ã" "ch")
+ @end example
+ ¤Ï¡¤ÆþÎÏ @kbd{tcha}¤ËÂÐ¤·¤Æ "¤Ã" ¤ò½ÐÎÏ¤·¤¿¾å¤Ç¡¤@kbd{cha} ¤ÎÊÑ´¹¤ò¹Ô¤Ê
+ ¤¦¡¥
+ 
+ @example
+ 	(defvar aa '("k" "s" "t" "h" "y" "r" "w" "g" "z" "d" "b"
+ 			 "p" "c" "f" "j" "v"))
+ @end example
+ ÊÑ¿ô¤ÏÃÍ¤¬Ê¸»úÎó¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¤Ê¸»úÎó¤Î¥»¥Ã¥È¤òÉ½¤¹¡¥¤³¤Î¾ì¹ç¡¤ÊÑ¿ô 
+ @code{aa} ¤Ï @code{defrule} ¤ÎÃæ¤Ç¤Ï @kbd{k} ... @kbd{v} ¤Î¤É¤ì¤«¤òÉ½¤¹
+ ¤³¤È¤Ë¤Ê¤ë¡¥
+ @example
+ 	(defrule  '(aa aa) "¤Ã" '(aa))
+ @end example
+ ¤³¤Î @code{defrule} ¤Ï¡¤°ú¿ô¤ÎÃæ¤Ë¸½¤ì¤ëÊÑ¿ô @code{aa} ¤òÊÑ¿ô @code{aa} 
+ ¤¬¼è¤ê¤¦¤ëÃÍ¤ÎÊ¸»úÎó¤Ë°ìÀÆ¤ËÃÖ¤­´¹¤¨¤ÆÆÀ¤é¤ì¤ëÊ¸»úÎó¤¹¤Ù¤Æ¤ËÂÐ¤·¤Æ 
+ @code{defrule} ¤¹¤ë¤³¤È¤òÉ½¤¹¡¥@refill
+ @example
+ 	(defrule "kk" "¤Ã" "k")
+ 	(defrule "ss" "¤Ã" "s")
+ 	....
+ 	(defrule "vv" "¤Ã" "v")
+ @end example
+ ¤ÈÆ±¤¸¡¥
+ 
+ Îã¤¨¤Ð¥í¡¼¥Þ»ú²¾Ì¾¥â¡¼¥É¤Ç¿ô»ú¤òÆþÎÏ¤·¤¿»þ¤ËÁ´³Ñ¿ô»ú¤Ç¤Ê¤¯È¾³Ñ¿ô»ú¤Ë¤¹¤ë
+ ¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤ò¹Ô¤Ê¤¦¡¥¤Þ¤º@file{$NEAMCS/lisp/egg-rk.el}¤ò¼«Ê¬ÍÑ¤Î
+ @file{egg-rk.el}¤Ë¥³¥Ô¡¼¤·¡¤°Ê²¼¤ÎÉôÊ¬¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤¹¤ë¡¥@refill
+ @example
+ 	(defrule   "1"   "£±")
+ 	(defrule   "2"   "£²")
+ 	(defrule   "3"   "£³")
+ 	(defrule   "4"   "£´")
+ 	(defrule   "5"   "£µ")
+ 	(defrule   "6"   "£¶")
+ 	(defrule   "7"   "£·")
+ 	(defrule   "8"   "£¸")
+ 	(defrule   "9"   "£¹")
+ 	(defrule   "0"   "£°")
+ @end example
+ ¤½¤Îbuffer¤Ç@kbd{M-x eval-current-buffer}¤ò¼Â¹Ô¤·¡¤mode-map ¤ò½¤Àµ¤¹¤ë¡¥
+ @end defun
+ 
+ @deffn Command dump-egg-mode-map mode-string dump-file-name
+ mode-map ¤ò¥Õ¥¡¥¤¥ë¤ËÂàÈò¤¹¤ë¡¥minibuffer ¤Ç ¥×¥í¥ó¥×¥È @code{EGG
+ Mode:}@:¤ËÂÐ¤·¤Æ@kbd{roma-kana}¤ò»ØÄê¤¹¤ë¡¥¡Ê@key{SPC}¤òÆþÎÏ¤¹¤ë¤È
+ comletion¤·¤Þ¤¹¡¥¡Ë¥×¥í¥ó¥×¥È@code{Output file name:}@: ¤ËÂÐ¤·¤Æ¤Ï
+ @file{egg-romkana-dump.el}¤ò»ØÄê¤¹¤ë¡¥¤³¤ÎÁàºî¤Çsource file
+ @file{egg-romkana-dump.el}¤È¤½¤ì¤ò byte compile ¤·¤¿ object file
+ @file{egg-romkana-dump.elc} ¤¬¤Ç¤­¤ë¡¥@refill
+  
+ ¡ÊÃí°Õ¡ËÌÞÏÀÄ¾ÀÜegg-romkana¤òkanji-load¤·¤Æ¤âÎÉ¤¤¤¬¡¤load¤Ë»þ´Ö¤¬³Ý¤«¤ë¡¥
+ egg-romkana-dump¤Ï¹âÂ®¤Ëload¤Ç¤­¤ë¡¥
+ @end deffn
+ 
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ @node Sun Key map, ÉÊ»ì, Customization, Top
+ @appendix  X11¤Ë¤ª¤±¤ë¥­¡¼³ä¤êÅö¤Æ
+ @c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 
+ sun¾å¤ÇX11¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¡¤@file{$NEMACS/lisp/egg-keymap.el}¤ò¥í¡¼¥É¤¹¤ë
+ ¤³¤È¤Ë¤è¤ê¡ÊÎã¤¨¤Ð¡¤@file{.emacs}¤ÎÃæ¤Ç @code{(load "egg-keymap")}¤ò¼Â¹Ô
+ ¤¹¤ë¤È¡ËSun¤Î¥Õ¥¡¥ó¥¯¥·¥ç¥ó¡¦¥­¡¼¤¬»ÈÍÑ¤Ç¤­¤ë¡¥¥­¡¼³ä¤êÅö¤Æ¤Ï°Ê²¼¤Î¤È¤ª
+ ¤ê¡¥
+ 
+ @table @asis
+ @item F1
+ ¥Õ¥¡¥¤¥ëI/O¥â¡¼¥ÉÊÑ¹¹(@code{change-fileio-code})¡¥F1¤ò²¡¤¹Ëè ¤Ë¡¤JIS ->
+ EUC -> Shift-JIS -> EUC ->..... ¤ÈÊÑ²½¤¹¤ë
+ @item F2
+ ¼­½ñ¹àÌÜÊÔ½¸(@code{edit-dict-item})
+ @item F3
+ JIS¥³¡¼¥ÉÆþÎÏ(@code{jis-cide-input})
+ @item F4
+ ¼­½ñÅÐÏ¿(@code{toroku-region})
+ @item F5
+ ¥ê¡¼¥¸¥ç¥óÃæ¤ÎÈ¾³Ñ¤òÁ´³Ñ¤ËÊÑ¤¨¤ë(@code{zenkaku-region})
+ @item F6
+ ¥ê¡¼¥¸¥ç¥óÃæ¤ÎÁ´³Ñ¤òÈ¾³Ñ¤ËÊÑ¤¨¤ë(@code{hankaku-region})
+ @item F7
+ ¥ê¡¼¥¸¥ç¥óÃæ¤Î¤Ò¤é¤¬¤Ê¤ò¥«¥¿¥«¥Ê¤ËÊÑ¤¨¤ë(@code{katakana-region})
+ @item F8
+ ¥ê¡¼¥¸¥ç¥óÃæ¤Î¥«¥¿¥«¥Ê¤ò¤Ò¤é¤¬¤Ê¤ËÊÑ¤¨¤ë(@code{hiragana-region})
+ @item F9
+ ¥ê¡¼¥¸¥ç¥ó¤Î²¾Ì¾´Á»úÊÑ´¹(@code{henkan-region})
+ @item L1
+ buffer¤ÎÆâÍÆ¤ò¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ËÁÞÆþ¤¹¤ë(@code{insert-buffer})
+ @item L2
+ ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ò¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ËÁÞÆþ¤¹¤ë(@code{insert-file})
+ @item L3
+ ¥ê¡¼¥¸¥ç¥ó¤òÉ¾²Á¤¹¤ë(@code{eval-region})
+ @item L4
+ ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤òÉ¾²Á¤¹¤ë(@code{eval-current-buffer})	
+ @item L5
+ ¥¦¥¤¥ó¥É¥¦¤ÎÂç¤­¤µ¤òÂç¤­¤¯¤¹¤ë(@code{enlarge-window})
+ @item L6
+ ¥¦¥¤¥ó¥É¥¦¤ÎÂç¤­¤µ¤ò¾®¤µ¤¯¤¹¤ë(@code{shrink-window})
+ @item L7
+ ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤Î¥Æ¥­¥¹¥È¤ÎÊÑ¹¹¤ò¼è¤ê¾Ã¤¹(@code{revert-buffer})
+ @item L8
+ ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤Î¥Æ¥­¥¹¥È¤ÎÊÑ¹¹¤ò¼è¤ê¾Ã¤¹(@code{revert-buffer})
+ @item L9
+ ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ÎÀèÆ¬¤Ë¥«¡¼¥½¥ë¤ò¤â¤Ã¤Æ¤¤¤¯(@code{beggining-of-buffer})
+ @item L10
+ ¸½ºß¥¢¥¯¥Æ¥£¥Ö¤Êbuffer¤ÎºÇ¸å¤Ë¥«¡¼¥½¥ë¤ò¤â¤Ã¤Æ¤¤¤¯(@code{end-of-buffer})
+ @end table
+ 
+ @node     ÉÊ»ì, ³µÇ°º÷°ú , Sun Key map, Top
+ @comment  node-name,  next,  previous,  up
+ @appendix ÉÊ»ì¤Î°·¤¤¤Ë¤Ä¤¤¤Æ
+ 
+ ¼­½ñÅÐÏ¿¤Ë¤ª¤±¤ëÉÊ»ì¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¡¤pubdic¥Þ¥Í¥¸¥ã¤Ç¤¢¤ëµÌ¤µ¤ó¤¬pubdic»²
+ ²Ã¼Ô¤Ë°¸¤Æ¤¿e-mail¤Î°ìÉô¤ò°Ê²¼¤ËÅ¾ºÜ¤·¤Þ¤¹¡¥»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡¥
+ 
+ @table @asis
+ @item Ì¾»ì
+ ¤³¤ì¤Ï¸À¤¦¤Þ¤Ç¤â¤Ê¤¤¤È»×¤¤¤Þ¤¹¡¥¤¿¤À¤·¡¤¸ÇÍ­Ì¾»ì¡¤
+ "¤¹¤ë" ¤¬ÉÕ¤¯¤ÈÆ°»ì¤Ë¤Ê¤ë¤â¤Î¤Ë¤Ï»È¤ï¤Ê¤¤¤Ç²¼¤µ¤¤¡¥
+ @item Ì¾»ì(¤¹¤ë)
+ "¸¡Æ¤" ¤Î¤è¤¦¤ËÌ¾»ì¤À¤¬¡¤"¤¹¤ë" ¤òÉÕ¤±¤ë¤È
+ Æ°»ì¤Ë¤Ê¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥
+ @item Æ°»ì
+ @table @asis
+ @item ¸ÞÃÊ
+ "½ñ¤«/¤Ê¤¤", "½ñ¤­/¤Þ¤¹", "½ñ¤¯", "½ñ¤±/¤Ð", "½ñ¤³/¤¦"
+ ¤Î¤è¤¦¤Ë¸ÞÃÊ³èÍÑ¤¹¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥ÅÐÏ¿¤¹¤ë»þ¤Ï
+ "½ñ" ¤ò "¤«" ¤À¤±¤ÇÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item °ìÃÊ(ÂÎ)
+ »È¤ï¤Ê¤¤¤Ç²¼¤µ¤¤¡¥
+ @item °ìÃÊ(ÈóÂÎ)
+ "Íî¤Á/¤Ê¤¤", "Íî¤Á/¤Þ¤¹", "Íî¤Á¤ë", "Íî¤Á¤ì/¤Ð",
+ "Íî¤Á¤í" ¤Î¤è¤¦¤Ê°ìÃÊ³èÍÑÆ°»ì¤ÎÊÑ²½¤·¤Ê¤¤ÉôÊ¬
+ "Íî¤Á" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item ¥µÊÑ(¤¹¤ë)
+ "Ã£¤·/¤Ê¤¤", "Ã£¤·/¤Þ¤¹", "Ã£¤¹¤ë", "Ã£¤¹¤ì/¤Ð",
+ "Ã£¤»¤è" ¤Î¤è¤¦¤Ê¥µ¹ÔÊÑ³Ê³èÍÑ¤¹¤ëÆ°»ì¤Ë»È¤¤¤Þ¤¹¡¥
+ "Ã£" ¤ò "¤¿¤Ã" ¤ÇÅÐÏ¿¤·¤Þ¤¹¡¥¸ì´´¤¬Ì¾»ì¤Ç¤¢¤ë¤â¤Î¤Ï
+ Ì¾»ì(¤¹¤ë) ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡¥
+ @item ¥µÊÑ(¤º¤ë)
+ ´ðËÜÅª¤Ë¾å¤ÈÆ±¤¸¤Ç¤¹¤¬¡¤"ÏÀ¤º¤ë" ¤Î¤è¤¦¤Ë¥¶¹Ô¤Ç
+ ³èÍÑ¤¹¤ë¤â¤Î¤Ë»È¤¤¤Þ¤¹¡¥
+ @item ¤½¤ÎÂ¾
+ pd-wnn ¤È´Ø·¸¤·¤Þ¤¹¤¬¡¤»È¤¦É¬Í×¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡¥
+ @end table
+ @item ·ÁÍÆÆ°»ì
+ @table @asis
+ @item ¥À¥Ê·¿
+ "´ÊÃ±¤Ê", "´ÊÃ±¤À" ¤Î¤è¤¦¤ÊÉáÄÌ¤Î·ÁÍÆÆ°»ì¤Î¸ì´´
+ "´ÊÃ±" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥Ì¾»ì¤È¤À¤Ö¤ë¤â¤Î¤âÂ¿¤¤¤Ç¤¹¤¬¡¤
+ ¤½¤¦¤¤¤¦¾ì¹ç¤ÏÎ¾Êý¤ËÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item ¥È¥¿¥ë·¿
+ "µ£Á³¤È/¤·¤¿", "µ£Á³¤¿¤ë" ¤Î¤è¤¦¤ÊÊ¸¸ìÅª·ÁÍÆÆ°»ì
+ ¤Ë»È¤¤¤Þ¤¹¡¥
+ @end table
+ @item ·ÁÍÆ»ì
+ "Èþ¤·¤«¤Ã/¤¿", "Èþ¤·¤¯/¤Ê¤¤", "Èþ¤·¤¤", "Èþ¤·¤±¤ì/¤Ð"
+ ¤Î¤è¤¦¤Ê·ÁÍÆ»ì¤Î¸ì´´ "Èþ¤·" ¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item Ï¢ÂÎ»ì
+ "¤³¤Î" (¤È¤Ã¤µ¤ËÂ¾¤ÎÎã¤¬»×¤¤Éâ¤«¤Ð¤Ê¤¤)¤Î¤è¤¦¤ËÂÎ¸À¤Ë
+ ¤«¤«¤ë³èÍÑ¤·¤Ê¤¤¸ì¤òÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item Éû»ì
+ "¤À¤ó¤À¤ó", "¤»¤á¤Æ" ¤Î¤è¤¦¤ËÍÑ¸À¤Ë³Ý¤«¤ë³èÍÑ¤·¤Ê¤¤¸ì¤ò
+ ÅÐÏ¿¤·¤Þ¤¹¡¥
+ @item ÀÜÂ³»ì
+ @itemx ´¶Æ°»ì
+ "¤·¤«¤·", "¤ä¤Ï¤ê", "¤Ø¤¨", "¤Õ¡¼¤ó" ¤Ê¤É¤Ç¤¹¡¥
+ @item Ã±´Á»ú
+ °ì¤Ä¤Î´Á»ú¤«¤é¹½À®¤µ¤ì¤ë¸ì¤Ç¤â¡¤¤Á¤ã¤ó¤ÈÌ¾»ì¤È¤«ÀÜÈø¸ì¤È¤«
+ »È¤¦¤è¤¦¤Ë¡¥
+ @item ÀÜÆ¬¸ì
+ "½õ"(´ÆÆÄ,¶µ¼ø¤Ê¤É), "Âç"(ÀëÅÁ,²þ³×¤Ê¤É), "¥¦¥ë¥È¥é" ¤Ê¤É
+ @item ÀÜÈø¸ì
+ "¼Ô"(Ã´Åö,»¿À®¤Ê¤É), "¶è"(ÉÊÀî,¿·½É¤Ê¤É), "¥Þ¥ó" ¤Ê¤É
+ @item ½õ¿ô»ì
+ ÀÜÈø¸ì¤È»÷¤Æ¤¤¤ë¤¬¡¤"±ß", "Ç¯" ¤Ê¤É¿ô»ú¤Î¸å¤ËÉÕ¤¯¤â¤Î
+ @item ¿ô»ì
+ ¸½ºß»ÈÍÑ¤·¤Æ¤¤¤Þ¤»¤ó¡¥
+ @end table
+ 
+ @node ³µÇ°º÷°ú, ´Ø¿ô¡¦ÊÑ¿ôº÷°ú ,ÉÊ»ì , Top
+ @unnumbered ³µÇ°º÷°ú
+ 
+ @printindex cp
+ 
+ @node ´Ø¿ô¡¦ÊÑ¿ôº÷°ú, , ³µÇ°º÷°ú , Top
+ @unnumbered ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ 
+ @printindex fn
+ 
+ @contents
+ @bye
diff -arcN emacs-18.55/man/nemacs.texinfo nemacs-3.3.2/man/nemacs.texinfo
*** emacs-18.55/man/nemacs.texinfo	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/man/nemacs.texinfo	Wed Jun  6 03:17:54 1990
***************
*** 0 ****
--- 1,1928 ----
+ \kanjifiletype=20
+ \overfullrule=0pt
+ \input texinfo @c -*-texinfo-*-
+ @comment %**start of header
+ @setfilename nemacs
+ @settitle Nemacs Version 3.3
+ @comment %**end of header
+ 
+ @titlepage
+ @sp 10
+ @center @titlefont{Nemacs Version 3.3 ¥Þ¥Ë¥å¥¢¥ë}
+ @sp 4
+ @center  £±£¹£¹£°Ç¯£¶·î
+ @sp 4
+ @center  ¶Ó¸« Èþµ®»Ò
+ @end titlepage
+ @synindex vr fn
+ 
+ @node Top, NemacsUsers, (dir), (dir)
+ @comment  node-name,  next,  previous,  up
+ 
+ @menu
+ * NemacsUsers::	       ¥æ¡¼¥¶¡¼¥º¥Þ¥Ë¥å¥¢¥ë
+ * NemacsLispers::      EmacsLisp¤Î³ÈÄ¥
+ * (EGG)::              ÆüËÜ¸ìÆþÎÏ¥Ä¡¼¥ë
+ @end menu
+ 
+ @node NemacsUsers, ³µÀâ , , Top
+ 
+ @menu
+ * Overview: ³µÀâ.              Nemacs¤Ã¤Æ¤É¤ó¤Ê¤â¤Î¡©
+ * Jcode: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É.     Nemacs¤¬¤É¤¦ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò°·¤¦¤«
+ * Functions: µ¡Ç½.	       NemacsÆÃÍ­¤Îµ¡Ç½
+ * Misc: ¤½¤ÎÂ¾.                Nemacs¤Ë´Ø¤¹¤ë¤µ¤Þ¤¶¤Þ¤Ê¾ðÊó
+ * (EGG)::                      ÆüËÜ¸ìÆþÎÏ¥Ä¡¼¥ë
+ * NemacsLispers::              EmacsLisp¤Î³ÈÄ¥
+ * Commands: ¥³¥Þ¥ó¥É°ìÍ÷.
+ * Concepts: ³µÇ°º÷°ú.
+ * Functions&Variables: ´Ø¿ô¡¦ÊÑ¿ôº÷°ú.
+ 
+ ³Æ¥Î¡¼¥É¤Î²¼°Ì¥Î¡¼¥É
+ 
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ * Jsystems: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.  ¤µ¤é¤ËÆüËÜ¸ì¥³¡¼¥É¤Ë¤Ä¤¤¤Æ
+ * Buffer: ¥Ð¥Ã¥Õ¥¡´ÉÍý.            Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ò¤É¤¦°·¤¦¤«
+ * Input: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.           ÆüËÜ¸ì¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ * Display: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.       ÆüËÜ¸ì¤ÎÉ½¼¨
+ * FileI/O: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.         ÆüËÜ¸ì¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¼è¤ê°·¤¤
+ * Process: ¥×¥í¥»¥¹´ÖÄÌ¿®.         ÆüËÜ¸ì¤ò´Þ¤à¥×¥í¥»¥¹´ÖÄÌ¿®
+ 
+ µ¡Ç½
+ * Jcodefunc: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô. ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ë´Ø¿ô
+ * Jtextfunc: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½. Ê¸½ñÊÔ½¸¤Îµ¡Ç½
+ * Enhancemnet: ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥.
+ 
+ ¤½¤ÎÂ¾
+ * Documents: ¥É¥­¥å¥á¥ó¥È.  ¥É¥­¥å¥á¥ó¥È¤Îºß½è
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°.  ¥­¡¼¥Þ¥Ã¥×¤ÎÊÑ¹¹ÅÀ
+ 
+ NemacsLispers
+ * Marker: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * Attribute: Â°À­¤ÎÉÕÍ¿.
+ 
+ GNU Emacs¤«¤é¤ÎÊÑ¹¹ÅÀ¡Ê³ÈÄ¥ÅÀ¤Ï½ü¤­¤Þ¤¹¡Ë
+ * Search:  Ãµº÷.             Àµµ¬É½¸½¤¬³ÈÄ¥¤µ¤ì°ìÉôÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°. ispell-word¤Èinsert-parenthese¤Î¥­¡¼¤¬ÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+ @end menu
+ 
+ @node ³µÀâ, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, NemacsUsers, NemacsUsers
+ @chapter Nemacs Version 3.3
+ @cindex Nemacs
+ 
+ Nemacs ¤Ï GNU Emacs¤Ë´ð¤Å¤¯ÆüËÜ¸ì¥¨¥Ç¥£¥¿¤Ç¤¹¡¥Nemacs ¤Ï GNU
+ Emacs/Nemacs¤Ø¤Î¥Ñ¥Ã¥Á¤Î·Á¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥ºÇ¿·ÈÇ¤ÏNemacs Ver.3.3.2
+ (1990.6.6) ¤Ç, Nemacs 3.3.1 ¤Ø¤Î¥Ñ¥Ã¥Á¤Ç¤¹¡¥ @refill
+ 
+ Nemacs¤ÎÆÃÄ§¤Ï¼¡¤Î£³¤Ä¤Ç¤¹¡¥
+ @itemize @bullet
+ @item
+ Nemacs¤Ï´Á»ú¤«¤Êº®¤¸¤êÊ¸¡¤¤Ä¤Þ¤êÉáÄÌ¤ÎÆüËÜ¸ì¤ÎÊ¸¤ò¥Ð¥Ã¥Õ¥¡¤ËÊÝ»ý¤Ç¤­¡¤¥¹
+ ¥¯¥ê¡¼¥ó¤ËÉ½¼¨¤Ç¤­¤Þ¤¹¡¥¤µ¤é¤ËÆüËÜ¸ìÊ¸¤òÊÔ½¸¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄó¶¡¤·¤Þ¤¹¡¥
+ @item
+ ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¡¤¥×¥í¥»¥¹´ÖÄÌ¿®, ¥¹¥¯¥ê¡¼¥óÉ½¼¨¡¤¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤Î¤½¤ì¤¾¤ì
+ ¤Ë¤Ä¤¤¤ÆÆÈÎ©¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤òÀßÄê¤Ç¤­¤Þ¤¹¡¥»ÈÍÑ¤Ç¤­¤ë¥³¡¼¥ÉÂÎ·Ï¤Ï
+ JIS, ¥·¥Õ¥ÈJIS, EUC¤Î£³¤Ä¤Ç¤¹¡¥
+ @item
+ ÆüËÜ¸ì¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¥ª¥ê¥¸¥Ê¥ë¤ÎGNU Emacs¤ÈÆ±ÍÍ¤Ë»È¤¨¤Þ¤¹¡¥
+ @end itemize
+ 
+ Nemacs¤Î¥Á¥å¥È¥ê¥¢¥ë¤Ï¥³¥Þ¥ó¥É@kbd{C-h T}
+ (@strong{help-with-tutorial-for-nemacs})¤Çµ¯Æ°¤Ç¤­¤Þ¤¹¡¥Nemacs¤Î¥Ð¡¼¥¸¥ç
+ ¥ó¤Ï@strong{nemacs-version}¤Ç¡¤ºÇ¶á¤ÎÊÑ¹¹ÅÀ¤Ï@strong{view-nemacs-news}¤Ç
+ ÃÎ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥@refill 
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É¡§
+ @deffn Command help-with-tutorial-for-nemacs
+ Nemacs¤ÎÆüËÜ¸ìÈÇ¥Á¥å¥È¥ê¥¢¥ë¤òµ¯Æ°¤¹¤ë¡¥
+ @end deffn
+ @deffn Command view-nemacs-news
+ Nemacs¤ÎºÇ¿·¤ÎÊÑ¹¹ÅÀ¤òÉ½¼¨¤¹¤ë.
+ @end deffn
+ @deffn Command nemacs-version
+ Nemacs¤Î¥Ð¡¼¥¸¥ç¥ó¤òÉ½¼¨¤¹¤ë¡¥
+ @end deffn
+ 
+ @node ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É,ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï, ³µÀâ, NemacsUsers
+ @chapter ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ÎÂÎ·Ï
+ @cindex ´Á»ú[¤«¤ó¤¸]
+ @cindex ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É[¤Ð¤Ã¤Õ¤¡¤«¤ó¤¸¤³¡¼¤É]
+ @cindex ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É[¤Õ¤¡¤¤¤ë¤«¤ó¤¸¤³¡¼¤É]
+ @cindex ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É[¤×¤í¤»¤¹¤«¤ó¤¸¤³¡¼¤É]
+ @cindex ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É [¤Ç¤£¤¹¤×¤ì¤¤¤«¤ó¤¸¤³¡¼¤É]
+ @cindex ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É[¤­¡¼¤Ü¡¼¤É¤«¤ó¤¸¤³¡¼¤É]
+ 
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¤ÆüËÜ¸ì¥â¡¼¥É¤ÇÆüËÜ¸ì¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ì¥â¡¼
+ ¥É¤Ë¤¹¤ë¤Ë¤Ï¡¤¥³¥Þ¥ó¥É@kbd{C-x C-k t}¡Ê@strong{toggle-kanji-flag}¡Ë¤ÇÊÑ
+ ¿ô@code{kanji-flag}¤ò @kbd{t} ¤Ë¤·¤Þ¤¹¡¥ÊÑ¿ô@code{kanji-flag}¤Î¥Ç¥Õ¥©¡¼
+ ¥ë¥ÈÃÍ¤ÏÊÑ¿ô@code{default-kanji-flag}¤ËÊÝ»ý¤µ¤ì¡¤¥³¥Þ¥ó¥É@kbd{C-x C-k T}
+ ¡Ê@strong{toggle-default-kanji-flag}¡Ë¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥@refill
+ 
+ Nemacs ¤Ï£³¼ïÎà¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥»ÈÍÑ¤Ç¤­
+ ¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ÏJIS, ¥·¥Õ¥ÈJIS, EUC¤Ç¤¹¡¥ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Î
+ ¤³¤È¤ò´Á»ú¥³¡¼¥É¡¤¤¢¤ë¤¤¤ÏÃ±¤Ë¥³¡¼¥É¤È¸Æ¤Ö¤³¤È¤¬¤¢¤ê¤Þ¤¹¡¥Nemacs¤Ï¡¤ÆüËÜ
+ ¸ìÊ¸½ñ¤ÎÆâÉôÉ½¸½¡Ê¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¡Ë¤È¤·¤ÆEUC¥³¡¼¥É¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @noindent
+ ÄêµÁ:
+ @table @strong
+ @item ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É
+ Nemacs¤¬¥Ð¥Ã¥Õ¥¡¤ÎÆâÉôÉ½¸½¤È¤·¤ÆÍÑ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¡ÊEUC¡Ë
+ @item ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É
+ Ê¸½ñ¥Õ¥¡¥¤¥ë¤ÇÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+ @item ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É
+ Nemacs¤È³°Éô¥×¥í¥»¥¹¤ÎÄÌ¿®¤ËÍÑ¤¤¤é¤ì¤ë¥³¡¼¥ÉÂÎ·Ï
+ @item ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É
+ Nemacs¤¬Ã¼ËöÉ½¼¨ÍÑ¤ËÁ÷¿®¤¹¤ë¥³¡¼¥ÉÂÎ·Ï
+ @item ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É
+ Nemacs¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+ @end table
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Local Variable}  kanji-flag
+ @table @asis
+ @item nil
+ ÆüËÜÊ¸»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+ @item t
+ ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ @end table
+ @end defvr
+ @defvr {Global Variable} default-kanji-flag
+ kanji-flag¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¡¥
+ @end defvr
+ @noindent
+ 
+ ¥³¥Þ¥ó¥É:
+ @deffn Command toggle-kanji-flag
+ @kbd{kanji-flag}¤ÎÃÍ¤ò¡¤@kbd{t}¤«¤é@kbd{nil}¡¤@kbd{nil}¤«¤é@kbd{t}¤ËÀÚÂØ
+ ¤¨¤ë¡¥
+ @end deffn
+ @deffn Command toggle-default-kanji-flag
+ @kbd{default-kanji-flag}¤ÎÃÍ¤ò¡¤@kbd{t}¤«¤é@kbd{nil}¡¤@kbd{nil}¤«¤é
+ @kbd{t}¤ËÀÚÂØ¤¨¤ë¡¥
+ @end deffn
+ 
+ @menu
+ * Jsystems: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï.  ¤µ¤é¤ËÆüËÜ¸ì¥³¡¼¥É¤Ë¤Ä¤¤¤Æ
+ * Buffer: ¥Ð¥Ã¥Õ¥¡´ÉÍý.            Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ò¤É¤¦°·¤¦¤«
+ * Input: ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ.	   ÆüËÜ¸ì¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ * Display: ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨.       ÆüËÜ¸ì¤ÎÉ½¼¨
+ * FileI/O: ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ.	   ÆüËÜ¸ì¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¼è¤ê°·¤¤
+ * Process: ¥×¥í¥»¥¹´ÖÄÌ¿®.	   ÆüËÜ¸ì¤ò´Þ¤à¥×¥í¥»¥¹´ÖÄÌ¿®
+ @end menu
+ 
+ @node ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï, ¥Ð¥Ã¥Õ¥¡´ÉÍý, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É,ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+ @cindex ´Á»ú¥³¡¼¥É[¤«¤ó¤¸¤³¡¼¤É]
+ @cindex ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É[¤Ë¤Û¤ó¤´¤â¤¸¤³¡¼¤É]
+ @cindex EUC ¥³¡¼¥É[EUC¤³¡¼¤É]
+ @cindex JIS ¥³¡¼¥É[JIS¤³¡¼¤É]
+ @cindex ¥·¥Õ¥ÈJIS ¥³¡¼¥É[¤·¤Õ¤ÈJIS¤³¡¼¤É]
+ 
+ ÄÌ¿®ÍÑÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ÏJIS (ÆüËÜ¹©¶Èµ¬³Ê¡Ë6226¤ÇÄê¤á¤é¤ì¤Æ¤¤¤Þ¤¹¤¬¡¤¸½
+ ºß°Ê²¼¤Î£³¼ïÎà¤Î¥³¡¼¥ÉÂÎ·Ï¤¬¶¦Â¸¤·¤Æ»ÈÍÑ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @itemize @bullet
+ @item
+ 7bit JIS ¥³¡¼¥É
+ @item
+ 8bit ¥·¥Õ¥ÈJIS ¥³¡¼¥É
+ @item
+ 8bit EUC ¥³¡¼¥É
+ @end itemize
+ 
+ JIS¥³¡¼¥É¤Ï£·¥Ó¥Ã¥È¤Ç¤¢¤ê¡¤¥Í¥Ã¥È¥ï¡¼¥¯·ÐÍ³¤ÎÄÌ¿®¥×¥í¥»¥¹¡ÊÅÅ»Ò¥á¥¤¥ë¤Ê
+ ¤É¡Ë¤Ï£¸¥Ó¥Ã¥È¤òÄÌ¤µ¤Ê¤¤¤³¤È¤¬Â¿¤¤¤¿¤á¡¤¥Í¥Ã¥È¥ï¡¼¥¯·ÐÍ³¤ÇÂ¾¤Î·×»»µ¡¤ÈÄÌ
+ ¿®¤ò¹Ô¤Ê¤¦¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ËÂ¿ÍÑ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¤Þ¤¿¡¤·×»»µ¡¤ÈÆüËÜ¸ìÃ¼Ëö´Ö
+ ¤Î¥·¥ê¥¢¥ë¥é¥¤¥óÄÌ¿®¤Ë¤â¹­¤¯ÍÑ¤¤¤é¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É¤ÈEUC¥³¡¼¥É¤Ï¡¤ÆüËÜ¸ì¤ò¥µ¥Ý¡¼¥È¤¹¤ëOS¤Î¤Û¤È¤ó¤É¤Ë¤ª¤¤¤Æ¡¤
+ Ê¸½ñ¥Õ¥¡¥¤¥ë¤Î¥³¡¼¥É¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÆâÉôÉ½¸½¤È¤·¤Æ»È¤ï¤ì¤Æ
+ ¤¤¤Þ¤¹¡¥
+ 
+ ¤Ä¤Þ¤ê¡¤JIS¥³¡¼¥É¤ÎÅÅ»Ò¥á¥¤¥ë¤ò¼õ¤±¼è¤ê¡¤¤½¤ì¤ò¥Õ¥¡¥¤¥ë¤Ë¤·¤Þ¤¦¤¿¤á¤Ë¥·
+ ¥Õ¥ÈJIS¤ËÊÑ´¹¤·¡¤¤µ¤é¤ËÃ¼Ëö¤ËÉ½¼¨¤¹¤ë¤¿¤á¤Ë¤Þ¤¿JIS¥³¡¼¥É¤ËÌá¤¹¤È¤¤¤Ã¤¿Áà
+ ºî¤¬Æü¾ïÅª¤Ë¹Ô¤Ê¤ï¤ì¤ë¤ï¤±¤Ç¤¹¡¥¤³¤Î¤è¤¦¤Ê¸½¼Â¤ËÂÐ±þ¤¹¤ë¤¿¤á¡¤Nemacs¤Ç¤Ï
+ ¼¡¤Î£´¼ïÎà¤Î½èÍý¤ËÂÐ¤·¤ÆÆÈÎ©¤Î¥³¡¼¥É¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @itemize @bullet
+ @item
+ ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
+ @item
+ ¥×¥í¥»¥¹´ÖÄÌ¿®
+ @item
+ ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨
+ @item
+ ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ @end itemize
+ 
+ ¤³¤ì¤é¤Î½èÍý¤Ë¤½¤ì¤¾¤ì¤É¤Î¥³¡¼¥É¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¤«¤Ï¡¤@kbd{C-x C-k C}
+ (@strong{list-kanji-code})¤Þ¤¿¤Ï@kbd{C-x C-k c}
+ (@strong{list-kanji-code-briefly})¤ÇÃÎ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥@refill
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command list-kanji-code
+ @code{*Kanji Codes*}¤È¤¤¤¦¥Ð¥Ã¥Õ¥¡¤òºî¤ê¡¤¤½¤³¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ëÊÑ
+ ¿ô¤òÉ½¼¨¤¹¤ë¡¥
+ @end deffn
+ @deffn Command list-kanji-code-briefly
+ ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ëÊÑ¿ô¤òÉ½¼¨¤¹¤ë¡¥
+ @end deffn
+ 
+ @node ¥Ð¥Ã¥Õ¥¡´ÉÍý, ¥Ð¥Ã¥Õ¥¡À¸À®, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section Nemacs¤Î¥Ð¥Ã¥Õ¥¡
+ @cindex ¥Ð¥Ã¥Õ¥¡[¤Ð¤Ã¤Õ¤¡]
+ @cindex alphanumerics
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¤£²¥Ð¥¤¥È¤ÎÆüËÜ¸ìÊ¸»ú¤ÈASCII¤Î¤è¤¦¤Ê£±¥Ð¥¤¥ÈÊ¸»ú¤¬
+ ¶¦Â¸¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸»ú¤È¤ÏEUC¡¤JIS¡¤¥·¥Õ¥ÈJIS¤Î¤¤¤º¤ì¤«¤Î¥³¡¼¥ÉÂÎ·Ï¤Ë
+ ´Þ¤Þ¤ì¤Æ¤¤¤ëÊ¸»ú¤ò»Ø¤·¤Þ¤¹¡¥£±¥Ð¥¤¥ÈÊ¸»ú¤òalphanumerics¤È¸Æ¤Ó¤Þ¤¹¡¥¡ÊÃí
+ °Õ¡§£²¥Ð¥¤¥ÈÆüËÜ¸ìÊ¸»úÃæ¤Î±Ñ¿ô»ú¤Èalphanumerics¤ÏÊÌ¤Î¤â¤Î¤Ç¤¹¡¥¡Ë
+ 
+ @menu
+ * Internal:	 ÆâÉôÉ½¸½.  Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï¤É¤¦É½¸½¤µ¤ì¤ë¤«
+ * BufferGen: 	¥Ð¥Ã¥Õ¥¡À¸À®. ¥Ð¥Ã¥Õ¥¡À¸À®»þ¤Ë²¿¤ò¤¹¤ë¤«
+ @end menu
+ 
+ @node ÆâÉôÉ½¸½, ¥Ð¥Ã¥Õ¥¡À¸À®, ¥Ð¥Ã¥Õ¥¡´ÉÍý, ¥Ð¥Ã¥Õ¥¡´ÉÍý
+ @subsection ÆüËÜ¸ìÊ¸»ú¤ÎÆâÉôÉ½¸½
+ @cindex ¥Ð¥Ã¥Õ¥¡ÆâÉôÉ½¸½[¤Ð¤Ã¤Õ¤¡¤Ê¤¤¤Ö¤Ò¤ç¤¦¤²¤ó]
+ 
+ Nemacs¤Î¥Ð¥Ã¥Õ¥¡¤Ï£¸¥Ó¥Ã¥ÈÊ¸»ú¤Î¥¢¥ì¥¤¤È¤·¤ÆÉ½¸½¤µ¤ì¤Þ¤¹¡¥alphanumeric¤Ï
+ £¸¥Ó¥Ã¥È¤ÇÉ½¤µ¤ì¡¤ÆüËÜ¸ìÊ¸»ú¤Î¥³¡¼¥É¤Ï£²¤Ä¤ÎÏ¢Â³¤¹¤ë£¸¥Ó¥Ã¥È¤òÍÑ¤¤¤ÆÉ½¤µ
+ ¤ì¤Æ¤¤¤Þ¤¹¡¥@*
+ 
+ alphanumeric ¤ÎÆâÉôÉ½¸½¤Ï@kbd{0XXXXXXX}¡Êalphanumeric£±Ê¸»ú¤Ï£·¥Ó¥Ã¥È¤Ç
+ É½¸½¤Ç¤­¤ë¡Ë¡¤@*ÆüËÜ¸ìÊ¸»ú¤ÎÆâÉôÉ½¸½¤Ï@kbd{1XXXXXXX 1XXXXXXX}¤Ç¤¹¡¥
+ 
+ @node ¥Ð¥Ã¥Õ¥¡À¸À®, ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ, ÆâÉôÉ½¸½, ¥Ð¥Ã¥Õ¥¡´ÉÍý
+ @subsection ¥Ð¥Ã¥Õ¥¡À¸À®
+ @cindex ¥Ð¥Ã¥Õ¥¡À¸À®[¤Ð¤Ã¤Õ¤¡¤»¤¤¤»¤¤]
+ @cindex ¥â¡¼¥É¥é¥¤¥ó[¤â¡¼¤É¤é¤¤¤ó]
+ 
+   ¿·µ¬¥Ð¥Ã¥Õ¥¡À¸À®»þ¤Ë¤Ï¡¤Nemacs¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@code{kanji-flag}¤ËÊÑ¿ô
+ @code{default-kanji-flag}¤ÎÃÍ¤òÀßÄê¤·¤Þ¤¹.
+ @refill
+ 
+ ÊÑ¿ô@code{kanji-flag}¤¬ @kbd{t}¤Î»þ¡¤¤Ä¤Þ¤ê¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤¤ÆüËÜ¸ì¤òÉ½
+ ¼¨¤¹¤ë»þ¤Ë¤Ï, ¥â¡¼¥É¥é¥¤¥ó¤Î±¦Ã¼¤Ë°Ê²¼¤Î¤è¤¦¤Ê´Á»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬¸½
+ ¤ì¤Þ¤¹¡¥@refill
+ 
+ @example
+ --**-NEmacs: Nemacs.text (Text)--Top-- [-JJN]---
+                                         ^^^^
+ @end example
+ 
+ É½¼¨¤µ¤ì¤ë¥³¡¼¥É¤Ïº¸¤«¤é½ç¤Ë
+ @table @asis
+ @item kanji-fileio-code
+ ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥³¡¼¥É¡Ê@pxref{¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ}¡Ë
+ @item kanji-input-code
+ ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥É¡Ê@pxref{¥­¡¼¥Ü¡¼¥ÉÆþÎÏ}¡Ë
+ @item kanji-display-code
+ Ã¼ËöÉ½¼¨¤ËÍÑ¤¤¤Æ¤¤¤ë¥³¡¼¥É¡Ê@pxref{¥Ç¥£¥¹¥×¥ì¥¤É½¼¨}¡Ë
+ @item process-kanji-code
+ ¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤È¤ÎÄÌ¿®¤ËÍÑ¤¤¤Æ¤¤¤ë¥³¡¼¥É¡Ê@pxref{¥×¥í¥»¥¹´ÖÄÌ¿®}¡Ë
+ @end table
+ ¤Ç¤¹¡¥
+ 
+ ¤Þ¤¿¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï¤½¤ì¤¾¤ì
+ @table @asis
+ @item -
+ Ì¤ÀßÄê
+ @item N
+ ÌµÊÑ´¹
+ @item J
+ JIS¥³¡¼¥É
+ @item S
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item E
+ EUC¥³¡¼¥É
+ @end table
+ ¤òÉ½¤·¤Þ¤¹¡¥
+ 
+ @noindent
+ @ifinfo
+ ÊÑ¿ô:
+ @defvr {Local Variable}  kanji-flag
+ @table @asis
+ @item nil
+ ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+ @item t
+ ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ @end table
+ @end defvr
+ @defvr {Global Variable} default-kanji-flag
+ kanji-flag¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ.
+ @end defvr
+ @end ifinfo
+ 
+ @node ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ, ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨, ¥Ð¥Ã¥Õ¥¡´ÉÍý, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ
+ @cindex ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ[¤­¡¼¤Ü¡¼¤É¤Ë¤å¤¦¤ê¤ç¤¯]
+ 
+ ¥­¡¼¥Ü¡¼¥É¤«¤éÆüËÜ¸ì¤òÆþÎÏ¤¹¤ë¤Ë¤Ï¡¤£³¼ïÎà¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Î¤¦¤Á°ì¤Ä¤ò
+ »È¤¤¤Þ¤¹¡¥¤É¤Î¥³¡¼¥É¤ò»È¤¤¤¿¤¤¤«¤Ï¤¢¤é¤«¤¸¤áNemacs¤Ë¶µ¤¨¤Æ¤ä¤ëÉ¬Í×¤¬¤¢¤ê
+ ¤Þ¤¹¡¥¤³¤ì¤Ï¥³¥Þ¥ó¥É@strong{set-kanji-input-code}¤ò¸Æ¤Ö¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤Ê
+ ¤¨¤Þ¤¹¡¥@kbd{C-x C-k i}¡Ê¥³¥Þ¥ó¥É@strong{change-input-code}¡Ë¤ò»È¤¦¤³¤È
+ ¤â¤Ç¤­¤Þ¤¹¡¥
+ @refill
+ 
+ ÁªÂò¤·¤¿¥³¡¼¥É¤Ï@code{kanji-input-code}¤ÎÃÍ¤È¤·¤ÆÊÝ»ý¤µ¤ì¡¤Nemacs¤ÏÆþÎÏ
+ ¤ò¤½¤Î¥³¡¼¥É¤À¤È»×¤Ã¤Æ¼õ¤±¼è¤ê¡¤ÆâÉô¥³¡¼¥É¡ÊEUC¡Ë¤ËÊÑ´¹¤·¤Þ¤¹¡¥£±¤Ä¤ÎÆü
+ ËÜ¸ìÊ¸»ú¤Ï£²¥Ð¥¤¥È¤ÇÉ½¸½¤µ¤ì¤ë¤Î¤Ç¡¤Nemacs¤ÏÆüËÜ¸ì¥³¡¼¥É¤ÎºÇ½é¤Î£±¥Ð¥¤¥È
+ ¤ò¼¡¤Î¥Ð¥¤¥È¤¬Íè¤ë¤Þ¤Ç¼è¤Ã¤Æ¤ª¤­¡¤£²¥Ð¥¤¥ÈÂ·¤Ã¤¿¤È¤³¤í¤ÇÆâÉô¥³¡¼¥É¤ËÊÑ´¹
+ ¤·¤Æ¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤·¤Þ¤¹¡¥@refill
+ 
+ JIS¥³¡¼¥É¤ò»È¤¦»þ¤Ë¤Ï¡¤£²¼ïÎà¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¡ÊÄÌ¾ï@kbd{ ESC $
+ @@ }¤È @kbd{ ESC ( J }¤ò»È¤¤¤Þ¤¹¡Ë¤Ë¤è¤Ã¤Æ¡¤ÆüËÜ¸ìÊ¸»ú¤Èalphanumeric¤ÎÀÚÂØ
+ ¤¨¤ò¹Ô¤Ê¤¤¤Þ¤¹.  ¤³¤ì¤é¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤Ï¤½¤ì¤¾¤ì¥³¥Þ¥ó¥É
+ @strong{kanji-jis-start}¤È @strong{kanji-jis-end}¤òµ¯Æ°¤¹¤ë¥­¡¼¥·¡¼¥¯¥¨
+ ¥ó¥¹¤Ç¤¹¡¥@refill
+ 
+ ¥³¥Þ¥ó¥É@strong{jis-code-input}¤ò¸Æ¤Ö¤È¡¤16¿ÊÉ½¸½¤ÎJIS¥³¡¼¥É¤Ë¤è¤ëÆþÎÏ¤¬¤Ç¤­
+ ¤Þ¤¹¡¥¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ë¥³¡¼¥É¤òÆþÎÏ¤·¤Æ@kbd{RET}¥­¡¼¤ò²¡¤·¤Æ²¼¤µ¤¤¡¥¥Ý¥¤¥ó
+ ¥È¤Î°ÌÃÖ¤ËÂÐ±þ¤¹¤ëÊ¸»ú¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¡¥
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Global Variable} kanji-input-code
+ Nemacs¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆÍ½´ü¤·¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï
+ @table @asis
+ @item  0
+ ÌµÊÑ´¹
+ @item  1
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2
+ JIS¥³¡¼¥É
+ @item 3
+ EUC¥³¡¼¥É
+ @end table
+ @end defvr
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-kanji-input-code CODE
+ kanji-input-code¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï¡¤
+ @table @asis
+ @item  0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item  1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item  2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item  3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command kanji-jis-start
+ ¥Õ¥é¥°@kbd{kanji-JIS-flag}¤ò@kbd{t}¤Ë¤¹¤ë¡¥
+ @end deffn
+ @deffn Command kanji-jis-end
+ ¥Õ¥é¥°@kbd{kanji-JIS-flag}¤ò@kbd{nil}¤Ë¤¹¤ë¡¥
+ @end deffn
+ @deffn Command change-input-code
+ @code{kanji-input-code}¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥@* NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµ
+ ÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ @deffn Command jis-code-input
+ jis¥³¡¼¥É¤Ë¤è¤ëÄ¾ÀÜÆþÎÏ¡¥
+ @end deffn
+ 
+ @node ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨, ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section ¥Ç¥£¥¹¥×¥ì¥¤¤Ø¤ÎÉ½¼¨
+ @cindex ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨ [¤Ç¤£¤¹¤×¤ì¤¤¤Ò¤ç¤¦¤¸]
+ @cindex É½¼¨[¤Ò¤ç¤¦¤¸]
+ @cindex ¥Õ¥©¥ó¥È[¤Õ¤©¤ó¤È]
+ 
+ Nemacs¤Ï¡¤ÊÑ¿ô@code{kanji-display-code}¤ÎÃÍ¤Ç»ØÄê¤µ¤ì¤¿¥³¡¼¥É¤ËÆüËÜ¸ìÊ¸
+ »ú¤òÊÑ´¹¤·¤Æ¥Ç¥£¥¹¥×¥ì¥¤¤ËÁ÷¤ê¤Þ¤¹¡¥ÊÑ¿ô@code{kanji-display-code}¤Ï¥³¥Þ
+ ¥ó¥É@strong{set-kanji-display-code}¤ò¸Æ¤Ö¤³¤È¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥@kbd{C-x
+ C-k d} (@strong{change-display-code})¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥ @refill
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¤Î¥Õ¥©¥ó¥È¤È¤·¤Æalphanumeric¤Î¥Õ¥©¥ó¥È¤ÈÆ±¤¸¹â¤µ¤Ç£²ÇÜ
+ ¤ÎÉý¤ò»ý¤Ä¤â¤Î¤ò»È¤¤¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤£²¥Ð¥¤¥È¥³¡¼¥É¤Ï£±¥Ð¥¤¥È¥³¡¼¥É¤Î¤Á¤ç¤¦
+ ¤É£²ÇÜ¤ÎÉý¤ò»ý¤Ä¤ï¤±¤Ç¤¹¡¥@*
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Global Variable} kanji-display-code
+ Nemacs¤¬Ã¼ËöÉ½¼¨ÍÑ¤ËÁ÷¿®¤¹¤ë¥³¡¼¥ÉÂÎ·Ï
+ @table @asis
+ @item  0
+ ÌµÊÑ´¹
+ @item  1
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2
+ JIS¥³¡¼¥É
+ @item 3
+ EUC¥³¡¼¥É
+ @end table
+ @end defvr
+ @defvr {Global Variable} to-ascii-display
+ ¡ÊJIS¥³¡¼¥É¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë¥Ç¥£¥¹¥×¥ì¥¤¤ËASCIIÊ¸»ú¤òÁ÷¤ë¤è
+ ¤¦¤ËÀÚÂØ¤¨¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ @end defvr
+ @defvr {Global Variable} to-kanji-display
+ ¡ÊJIS¥³¡¼¥É¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë¥Ç¥£¥¹¥×¥ì¥¤¤ËÆüËÜ¸ìÊ¸»ú¤òÁ÷¤ë
+ ¤è¤¦¤ËÀÚÂØ¤¨¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥¯¥¨¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ @end defvr
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-kanji-display-code CODE
+ @kbd{kanji-display-code}¤òCODE¤ËÀßÄê¤¹¤ë.
+ @table @asis
+ @item  0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item  1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item  2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item  3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command change-display-code
+ @kbd{kanji-display-code}¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥@* NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0
+ ¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ @deffn Command x-set-kfont
+ X window¤Ç»ÈÍÑ¤¹¤ëÆüËÜ¸ìÊ¸»ú¥Õ¥©¥ó¥È¤òÀßÄê¤¹¤ë¡¥
+ @end deffn
+ 
+ @node ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, ¥×¥í¥»¥¹´ÖÄÌ¿®, ¥Ç¥£¥¹¥×¥ì¥¤É½¼¨, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section ¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß½ñ¤­
+ @cindex ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ[¤Õ¤¡¤¤¤ë¤Ë¤å¤¦¤·¤å¤Ä¤ê¤ç¤¯]
+ 
+ Nemacs¤Î³Æ¥Ð¥Ã¥Õ¥¡¤Ï£²¤Ä¤ÎÊÑ¿ô@code{kanji-flag}¤È
+ @code{kanji-fileio-code}¤ò»ý¤Á¤Þ¤¹.  £±¤Ä¤á¤Î@code{kanji-flag}¤Ï¤½¤Î¥Ð¥Ã
+ ¥Õ¥¡¤¬ÆüËÜ¸ìÊ¸»ú¤ò´Þ¤à¤«¤É¤¦¤«¤ò¼¨¤·¤Þ¤¹¡¥¤Ä¤Þ¤ê@code{kanji-flag}¤¬nil¤Ê
+ ¤é¤Ð¡¤ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¤¬¤¢¤é¤ï¤ì¤Ê¤¤¤È»×¤¤¡¤´ðËÜÅª¤ËGNU Emacs¤ÈÆ±¤¸¤è
+ ¤¦¤Ë¿¶Éñ¤¤¤Þ¤¹.¤³¤Î¾ì¹ç¤Ë¤ÏNemacs¤òÍÑ¤¤
+ ¤Æ£¸¥Ó¥Ã¥È¥Ç¡¼¥¿¤ÎÊÔ½¸¤¬¤Ç¤­¤Þ¤¹¡¥@refill
+ 
+ £²¤Ä¤á¤ÎÊÑ¿ô@code{kanji-fileio-code}¤Ï¡¤ Nemacs¤¬¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß½ñ¤­¤Ë»È
+ ¤¦ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ò¼¨¤·¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Ï´Ø¿ô
+ @strong{set-kanji-fileio-code}¤ä@strong{change-fileio-code}(@kbd{C-x C-k
+ f})¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡¥¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï@code{default-kanji-fileio-code}
+ ¤ËÊÝ»ý¤µ¤ì¡¤´Ø¿ô
+ @kbd{set-default-fileio-code},@kbd{change-default-fileio-code}(@kbd{C-x
+ C-k F})¤Ë¤è¤Ã¤ÆÊÑ¹¹²ÄÇ½¤Ç¤¹¡¥@refill
+ 
+ Nemacs¤Ï¥Õ¥¡¥¤¥ë¤òÆÉ¤à»þ¤Ë¤Ï¥Õ¥¡¥¤¥ë¤¬@code{kanji-fileio-code}¤Ë¤è¤Ã¤Æ»Ø
+ Äê¤µ¤ì¤ë¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤ÆÆÉ¤ß¹þ¤ß¡¤¤Þ¤¿¥Õ¥¡¥¤¥ë¤ËÊ¸½ñ¤ò½ñ¤­
+ ½Ð¤¹Á°¤Ë¤ÏÊ¸½ñ¤ò@code{kanji-fileio-code}
+ ¤Ç»ØÄê¤µ¤ì¤ë¥³¡¼¥É¤ËÊÑ´¹¤·¤Þ¤¹¡¥@refill 
+ 
+ @noindent
+ ÊÑ¿ô:
+ @ifinfo
+ @defvr {Local Variable}  kanji-flag
+ @table @asis
+ @item nil
+ ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¤äÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡¥GNU Emacs¤ÈÆ±¤¸.
+ @item t
+ ´Á»ú¥³¡¼¥É¤Ø¤ÎÊÑ´¹¡¤ÆüËÜ¸ìÉ½¼¨¤ò¹Ô¤Ê¤¦¡¥
+ @end table
+ @end defvr
+ @end ifinfo
+ @defvr {Local Variable} kanji-fileio-code
+ ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥½¡¼¥¹¡¿¥¿¡¼¥²¥Ã¥È´Á»ú¥³¡¼¥É¡¥¥Õ¥¡¥¤¥ëÆþÎÏ»þ¤Ë
+ ¤Ï¡¤@code{kanji-expected-code}¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @defvr {Global Variable} default-kanji-fileio-code
+ ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@code{kanji-fileio-code}¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+ @table @asis
+ @item 	nil
+ Ì¤ÀßÄê
+ @item  0
+ ÌµÊÑ´¹
+ @item  1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @defvr {Global Variable} to-ascii-fileio
+ ASCIIÊ¸»ú¤òÁªÂò¤¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡ÊJIS¥³¡¼¥É¤¬Áª¤Ð¤ì¤Æ
+ ¤¤¤ë»þ¤Î¤ßÍ­¸ú¡Ë @refill
+ @end defvr
+ @defvr {Global Variable} to-kanji-fileio
+ ÆüËÜ¸ìÊ¸»ú¤òÁªÂò¤¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡ÊJIS¥³¡¼¥É¤¬Áª¤Ð¤ì
+ ¤Æ¤¤¤ë»þ¤Î¤ßÍ­¸ú¡Ë @refill
+ @end defvr
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-kanji-fileio-code CODE
+ @code{kanji-fileio-code}¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¡¥
+ @table @asis
+ @item 	nil
+ Ì¤ÀßÄê
+ @item  0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item  1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item  2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item  3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command change-fileio-code
+ @kbd{kanji-fileio-code}¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ
+ ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ @deffn Command set-default-fileio-code CODE
+ @code{default-kanji-fileio-code}¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º¤ì
+ ¤«¡¥
+ @table @asis
+ @item 	nil
+ Ì¤ÀßÄê
+ @item  0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item  1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item  2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item  3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command change-default-fileio-code
+ @code{default-kanji-fileio-code}¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥@* NIL¡ÊÌ¤ÀßÄê¡Ë
+ ¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ 
+ @menu
+ * FileInput:	 ¥Õ¥¡¥¤¥ëÆþÎÏ.  ÆþÎÏ»þ¤Ë¥³¡¼¥ÉÂÎ·Ï¤ò¤É¤¦·è¤á¤ë¤«.
+ * FileOutput:   ¥Õ¥¡¥¤¥ë½ÐÎÏ. ½ÐÎÏ»þ¤Ë²¿¤ò¤¹¤ë¤«.
+ @end menu
+ 
+ @node ¥Õ¥¡¥¤¥ëÆþÎÏ, ¥Õ¥¡¥¤¥ë½ÐÎÏ, ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
+ @subsection ¥Õ¥¡¥¤¥ëÆþÎÏ
+ @cindex ¥Õ¥¡¥¤¥ëÆþÎÏ[¤Õ¤¡¤¤¤ë¤Ë¤å¤¦¤ê¤ç¤¯]
+ @cindex ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É[¤Õ¤¡¤¤¤ë¤«¤ó¤¸¤³¡¼¤É]
+ 
+ ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@code{kanji-flag}¤ÎÃÍ¤¬t¤Î»þ¤Ï¡¤Nemacs¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß
+ ¹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï´Á»ú¥³¡¼¥É¤ò´Þ¤à¤³¤È¤ò´üÂÔ¤·¤Þ¤¹¡¥Nemacs¤Ï£³¼ïÎà¤Î´Á»ú
+ ¥³¡¼¥É¤òÃÎ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¤ÆþÎÏ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬£³¤Ä¤Î¤¦¤Á¤Î¤É¤Î¥³¡¼¥É¤Ç½ñ¤«
+ ¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥³¡¼¥É¤ò¤½
+ ¤Î¥Õ¥¡¥¤¥ë¤Î@strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}¤È¸Æ¤Ó¤Þ¤¹¡¥ @refill
+ 
+ Nemacs¤ÏÊÑ¿ô@code{kanji-expected-code}¤ÈÊÑ¿ô @code{kanji-fileio-code}¤Ë
+ ¤·¤¿¤¬¤Ã¤Æ@strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}¤ò·èÄê¤·¤Þ¤¹¡¥¤³¤ì¤é¤ÎÊÑ¿ô¤Ï´Ø¿ô
+ @strong{set-kanji-expected-code}¤È´Ø¿ô@strong{set-kanji-fileio-code}¤Ë¤è¤Ã
+ ¤ÆÀßÄê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥@refill
+ 
+ @strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æ·è¤á¤é¤ì¤Þ¤¹¡¥
+ 
+ ÊÑ¿ô@code{kanji-expected-code}¤¬ @kbd{nil} ¤Ç¤â@kbd{t} ¤Ç¤â¤Ê¤±¤ì¤Ð¡¤¤½¤ÎÃÍ
+ ¤¬@strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡¥@refill
+ 
+ ÊÑ¿ô@code{kanji-expected-code}¤¬ @kbd{nil} ¤Ç¤«¤ÄÊÑ¿ô
+ @code{kanji-fileio-code}¤¬ @kbd{nil} °Ê³°¤Ê¤é¤Ð¡¤
+ @code{kanji-fileio-code}¤ÎÃÍ¤¬@strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}
+ ¤È¤Ê¤ê¤Þ¤¹¡¥@refill
+ 
+ ÊÑ¿ô@code{kanji-expected-code}¤¬ @kbd{t}¡¤¤¢¤ë¤¤¤Ï
+ @code{kanji-expected-code}¤È @code{kanji-fileio-code} ¤¬Î¾Êý¤È¤â 
+ @kbd{nil} ¤Ê¤é¤Ð¡¤Nemacs¤Ï¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¡¤»È¤ï¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¤ò¿äÂ¬¤·
+ ¡¤¤½¤ì¤ò@strong{¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É}¤È¤·¤Þ¤¹¡¥@refill
+ 
+ ¤³¤ÎºÝ@code{kanji-expected-code}¤¬@kbd{nil}¤Ê¤é¤Ð¡¤¿äÂ¬¤·¤¿¥³¡¼
+ ¥É¤ò@code{kanji-fileio-code}¤ËÀßÄê¤·¤Þ¤¹¡¥ÊÑ¿ô@code{kanji-fileio-code}¤Î
+ ÃÍ¤È¤·¤Æ²ÄÇ½¤ÊÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Î°ÕÌ£¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥ @refill @*
+ @noindent
+ @table @asis
+ @item nil
+ ÌµÀßÄê
+ @item 0
+ ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¤ÈÆ±¤¸¡ÊÌµÊÑ´¹¡Ë
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ 
+ @menu
+ * File-insertion: ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ. ´ûÂ¸¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤¹¤ë¾ì¹ç¤Î¥³¡¼¥É
+ * Read-in: ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß. ¥³¡¼¥ÉÂÎ·Ï¤ò¤òÆÉ¤ß¹þ¤ß»þ¤Ë»ØÄê¤¹¤ë
+ * Find-new-file: ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ. ¥Õ¥¡¥¤¥ëºîÀ®»þ¤Î¥³¡¼¥É
+ @end menu
+ 
+ @node ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ, ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß, ¥Õ¥¡¥¤¥ëÆþÎÏ, ¥Õ¥¡¥¤¥ëÆþÎÏ 
+ @subsubsection ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ
+ @cindex ¥Õ¥¡¥¤¥ëÁÞÆþ[¤Õ¤¡¤¤¤ë¤½¤¦¤Ë¤å¤¦]
+ 
+ ´ûÂ¸¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥Õ¥¡¥¤¥ë¤ò@strong{insert-file}¤Ê¤É¤ÇÁÞÆþ¤¹¤ë»þ¤Ë¤Ï¡¤
+ Nemacs ¤Ï¤Þ¤º¤½¤Î¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@code{kanji-fileio-code} ¤¬ @kbd{nil} °Ê
+ ³°¤ÎÍ­¸ú¤ÊÃÍ¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤Þ¤¹¡¥@kbd{nil}¤Ç¤Ê¤±¤ì¤Ð¡¤ÁÞÆþ¤µ¤ì¤ë¥Õ¥¡
+ ¥¤¥ë¤Ï¤½¤Î¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Æ¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤ß¤Þ¤¹¡¥ÊÑ¿ô
+ @code{kanji-fileio-code}¤¬ @kbd{nil} ¤Î»þ¡¤¤Ä¤Þ¤ê¥Ð¥Ã¥Õ¥¡¤¬£±¥Ð¥¤¥ÈÊ¸»ú
+ ¤À¤±¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¤ÁÞÆþ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï
+ @code{kanji-expected-code}¤Ç¼¨¤µ¤ì¤ë¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤È¤·¤ÆÆÉ¤ß¹þ¤ß¤ò
+ ¹Ô¤Ê¤¤¤Þ¤¹¡¥@refill @*
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Global Variable} kanji-expected-code
+ Nemacs ¤¬¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à»þ¤ËÍ½´ü¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+ @table @asis
+ @item nil
+ ÊÑ¿ô @code{kanji-fileio-code}¤ÎÃÍ
+ @item t
+ ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+ @item 0
+ ¥Ð¥Ã¥Õ¥¡´Á»ú¥³¡¼¥É¤ÈÆ±¤¸¡ÊÌµÊÑ´¹¡Ë
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @ifinfo
+ @defvr {Global Variable} default-kanji-fileio-code
+ ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@kbd{kanji-fileio-code}¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @end ifinfo
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-kanji-expected-code VAL
+ @code{kanji-expected-code} ¤ÎÃÍ¤ò VAL¤ËÀßÄê¤¹¤ë¡¥
+ @table @asis
+ @item nil
+ ÊÑ¿ô @code{kanji-fileio-code}¤ÎÃÍ
+ @item t
+ ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+ @item 0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item 1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item 3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command set-kanji-fileio-code CODE
+ kanji-fileio-code ¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item 1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item 3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ 
+ @node ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß, ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ, ¥Õ¥¡¥¤¥ë¤ÎÁÞÆþ, ¥Õ¥¡¥¤¥ëÆþÎÏ
+ @subsubsection ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß
+ @cindex find file
+ @findex find-file
+ @findex find-alternate-file
+ @findex find-file-other-window
+ 
+ @strong{find-file},@strong{find-alternate-file},@strong{find-file-other-window}
+ ¤Î¤¤¤º¤ì¤«¤ò¹Ô¤Ê¤Ã¤Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¾ì¹ç¤Ë¡¤¿ô°ú¿ô¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ
+ °ì»þÅª¤Ë@code{kanji-expected-code}¤ò»ØÄê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+ @code{kanji-expected-code}¤ò¹±µ×Åª¤ËÊÑ¤¨¤Æ¤·¤Þ¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤´Ø¿ô
+ @strong{set-kanji-expected-code}¤ò»È¤Ã¤Æ²¼¤µ¤¤¡¥@refill
+ 
+ @table @kbd
+ @item C-u -   C-x C-f
+ @itemx C-u -   C-x C-v
+ @itemx C-u -   C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï nil¡¤¤Ä¤Þ¤êÊÑ¿ô@kbd{kanji-fileio-code}¤ÎÃÍ¡¥
+ @item C-u     C-x C-f
+ @itemx C-u     C-x C-v
+ @itemx C-u     C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï t¡¤¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¿äÂ¬¤¹¤ë¡¥
+ @item C-u 0   C-x C-f
+ @itemx C-u 0   C-x C-v
+ @itemx C-u 0   C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï 0¡¤¤Ä¤Þ¤ê¥¢¥¹¥­¡¼Ê¸»ú¤Î¤ß¡¥
+ @item C-u 1   C-x C-f
+ @itemx C-u 1   C-x C-v
+ @itemx C-u 1   C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï 1¡¤¤Ä¤Þ¤ê¥·¥Õ¥ÈJIS¡¥
+ @item C-u 2   C-x C-f
+ @itemx C-u 2   C-x C-v
+ @itemx C-u 2   C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï 2¡¤¤Ä¤Þ¤êJIS¡¥
+ @item C-u 3   C-x C-f
+ @itemx C-u 3   C-x C-v
+ @itemx C-u 3   C-x 4 C-f
+ @kbd{kanji-expected-code}¤Ï 3¡¤¤Ä¤Þ¤êEUC¡¥
+ @end table
+ 
+ @ifinfo
+ ÊÑ¿ô¡§
+ @defvr {Global Variable} kanji-expected-code
+ Nemacs ¤¬¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à»þ¤ËÍ½´ü¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï
+ @table @asis
+ @item nil
+ ÊÑ¿ô @code{kanji-fileio-code}¤ÎÃÍ
+ @item t
+ ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¡¼¥É¤ò¿äÂ¬¤¹¤ë
+ @item 0
+ ¥¢¥¹¥­¡¼¡¤¤Ä¤Þ¤êÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-kanji-expected-code VAL
+ @kbd{kanji-expected-code}¤ò VAL ¤ËÀßÄê¤¹¤ë¡¥
+ @end deffn
+ @end ifinfo
+ 
+ @node     ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®»þ, ¥Õ¥¡¥¤¥ë½ÐÎÏ , ´Á»ú¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß,  ¥Õ¥¡¥¤¥ëÆþÎÏ
+ @subsubsection ¿·µ¬¥Õ¥¡¥¤¥ëºîÀ®
+ 
+ ¿·µ¬¤ËºîÀ®¤·¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¤Ï¡¤ÊÑ¿ô
+ @code{default-kanji-fileio-code-find-file-not-found}¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡¥¤³¤Î
+ ÊÑ¿ô¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¤Ï¡¤ÊÑ¿ô@code{default-kanji-fileio-code}¤ÎÃÍ¤Ç¤¹¡¥
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Local Variable} default-kanji-fileio-code-find-file-not-found
+ ¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ¡¥¥Õ¥¡¥¤¥ëÆþ
+ ÎÏ»þ¤Ë¤Ï¡¤@kbd{kanji-expected-code}¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ 
+ @node ¥Õ¥¡¥¤¥ë½ÐÎÏ, ¥×¥í¥»¥¹´ÖÄÌ¿® , ¥Õ¥¡¥¤¥ëÆþÎÏ, ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
+ @subsection ¥Õ¥¡¥¤¥ë½ÐÎÏ
+ @cindex ¥Õ¥¡¥¤¥ë½ÐÎÏ[¤Õ¤¡¤¤¤ë¤·¤å¤Ä¤ê¤ç¤¯]
+ 
+ ¥Ð¥Ã¥Õ¥¡¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹»þ¤Ë¤Ï¡¤Nemacs¤Ï¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÊ¸½ñ¤òÊÑ¿ô
+ @code{kanji-fileio-code}¤Ë¼¨¤µ¤ì¤¿¥³¡¼¥É¤ËÊÑ´¹¤·¤¿¾å¤Ç¡¤½ñ¤­½Ð¤·¤ò¹Ô¤Ê¤¤
+ ¤Þ¤¹¡¥
+ 
+ @ifinfo
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Local Variable} kanji-fileio-code
+ ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ¤ËÍÑ¤¤¤é¤ì¤ë¥½¡¼¥¹¡¿¥¿¡¼¥²¥Ã¥È´Á»ú¥³¡¼¥É¡¥¥Õ¥¡¥¤¥ëÆþÎÏ»þ¤Ë
+ ¤Ï¡¤@kbd{kanji-expected-code}¤¬nil¤Î¾ì¹ç¤Ë¤Î¤ß»ÈÍÑ¤µ¤ì¤ë¡¥
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @defvr {Global Variable} default-kanji-fileio-code
+ ¥Ð¥Ã¥Õ¥¡¤ÎÊÑ¿ô@kbd{kanji-fileio-code}¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+ @table @asis
+ @item nil
+ Ì¤ÀßÄê
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @end ifinfo
+ 
+ @node ¥×¥í¥»¥¹´ÖÄÌ¿®,µ¡Ç½, ¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É
+ @section ³°Éô¥×¥í¥»¥¹¤È¤ÎÄÌ¿®
+ @cindex ¥×¥í¥»¥¹´ÖÄÌ¿®[¤×¤í¤»¤¹¤«¤ó¤Ä¤¦¤·¤ó]
+ @cindex ³°Éô¥×¥í¥»¥¹[¤¬¤¤¤Ö¤×¤í¤»¤¹]
+ @cindex ¥µ¡¼¥Ð¥×¥í¥»¥¹[¤µ¡¼¤Ð¤×¤í¤»¤¹]
+ @cindex ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É[¤×¤í¤»¤¹¤«¤ó¤¸¤³¡¼¤É]
+ @findex call-process-region
+ @findex call-process
+ @findex open-network-stream
+ @findex start-process
+ 
+ Nemacs ¤Ï³°Éô¥×¥í¥»¥¹¤ä¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥µ¡¼¥Ð¥×¥í¥»¥¹¤òµ¯Æ°¤·¡¤¤½¤ì¤é¤È
+ ÄÌ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤ÏÆÈ¼«¤Î@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼
+ ¥É}¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡¥´Ø¿ô @strong{process-kanji-code}¤Ë¤è¤Ã¤Æ³Æ¥×¥í¥»¥¹¤Î
+ @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÃÎ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ Nemacs ¤Ï»ØÄê¤µ¤ì¤¿ÆüËÜ¸ì
+ Ê¸»ú¥³¡¼¥É¤Ë¥Æ¥­¥¹¥È¤òÊÑ´¹¤·¤Æ³°Éô¥×¥í¥»¥¹¤ä¥µ¡¼¥Ð¥×¥í¥»¥¹¤ÈÄÌ¿®¤·¡¤³°Éô
+ ¥×¥í¥»¥¹¤ä¥µ¡¼¥Ð¥×¥í¥»¥¹¤«¤é¼õ¤±¼è¤Ã¤¿¥Æ¥­¥¹¥È¤òNemacs¤ÎÆâÉôÉ½¸½¤ËÊÑ´¹¤·
+ ¤Þ¤¹¡¥ @refill
+ 
+ ´Ø¿ô@strong{start-process}¤ä@strong{open-network-stream}¤Ë¤è¤Ã¤Æ³°Éô¥×¥í
+ ¥»¥¹¤òµ¯Æ°¤·¤¿¤ê¡¤@strong{call-process}¤ä @strong{call-process-region}¤Ë
+ ¤è¤Ã¤Æ¼Â¹Ô¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤ Nemacs ¤Ï¥Õ¥Ã¥¯
+ @strong{find-kanji-process-code}¤ò¸Æ¤Ó¡¤·ë²Ì¤ò@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}
+ ¤ËÀßÄê¤·¤Þ¤¹¡¥´Ø¿ô@strong{set-process-kanji-code}¤Ë¤è¤Ã¤Æ@strong{¥×¥í¥»
+ ¥¹´Á»ú¥³¡¼¥É}¤òÄ¾ÀÜÀßÄê¤·¤¿¤ê¡¤´Ø¿ô@strong{change-process-code}
+ (@kbd{C-x C-k p})¤Ë¤è¤Ã¤Æ@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÊÑ¹¹¤¹¤ë¤³¤È¤â¤Ç¤­
+ ¤Þ¤¹¡¥¤µ¤é¤Ë¡¤¥Õ¥Ã¥¯@strong{find-kanji-process-code}¤ÎÃÍ¤òÊÑ¹¹¤·¤Æ 
+ Nemacs¤¬@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤ò¸«¤Ä¤±¤ëÊýË¡¤ò¥æ¡¼¥¶Ëè¤ËÊÑ¹¹¤¨¤¿¤ê
+ ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥¡Ê@xref{¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È}¡Ë@refill @*
+ 
+ @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï
+ @code{default-process-kanji-code}¤ËÊÝ»ý¤µ¤ì¡¤´Ø¿ô
+ @strong{change-default-process-code}(@kbd{C-x C-k P})¤ä
+ @strong{set-default-kanji-process-code}¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡¥ @refill @*
+ 
+ @noindent
+ ÊÑ¿ô:
+ @defvr {Hook} find-kanji-process-code BUFFER/SERVICE PROGRAM/HOST CODE
+ ¥Ð¥Ã¥Õ¥¡BUFFER¤Î¥×¥í¥°¥é¥àPROGRAM¤Þ¤¿¤Ï¥Û¥¹¥ÈHOST¤Î¥µ¡¼¥Ó¥¹SERVICE¤Î
+ @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÊÖ¤¹¡¥CODE¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defvr
+ @defvr {Global Variable} default-kanji-process-code
+ @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+ @end defvr
+ @defvr {Global Variable} to-ascii-process
+ ¥¢¥¹¥­¡¼Ê¸»ú¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ ¡ÊJIS¥³¡¼¥É¤¬ÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë
+ @end defvr
+ @defvr {Global Variable} to-kanji-process
+ ÆüËÜ¸ìÊ¸»ú¤òÁªÂò¤¹¤ë¤¿¤á¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÎºÇ¸å¤ÎÊ¸»ú¡¥
+ ¡ÊJIS¥³¡¼¥É¤¬ÍÑ¤¤¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍ­¸ú¡Ë
+ @end defvr
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @defun process-kanji-code &optional PROCESS
+ ¥×¥í¥»¥¹PROCESS¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òÊÖ¤¹¡¥°ú¿ô¤Ê¤·¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ë¤Ï¡¤ ¸½
+ ºß¤Î¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤Î@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÊÖ¤¹¡¥@strong{¥×¥í¥»¥¹´Á»ú
+ ¥³¡¼¥É}¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defun
+ @deffn Command change-process-code
+ @emph{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥@*
+ NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC
+ ¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ @deffn Command set-process-kanji-code PROCESS CODE
+ ¥×¥í¥»¥¹PROCESS¤Î@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òCODE¤ËÀßÄê¤¹¤ë¡¥PROCESS ¤¬NIL
+ ¤Î¾ì¹ç¤Ë¤Ï¡¤¸½ºß¤Î¥Ð¥Ã¥Õ¥¡¥×¥í¥»¥¹¤Î @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÀßÄê¤¹¤ë¡¥
+ @table @asis
+ @item 0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item 1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item 3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @deffn Command change-default-process-code
+ @kbd{default-kanji-process-code}¤ÎÃÍ¤ò¼¡¤Î½ç½ø¤ÇÀÚÂØ¤¨¤ë¡¥@*
+ NIL¡ÊÌ¤ÀßÄê¡Ë¢ª0¡ÊÌµÊÑ´¹¡Ë¢ª1¡Ê¥·¥Õ¥ÈJIS¥³¡¼¥É¡Ë¢ª2¡ÊJIS¥³¡¼¥É¡Ë¢ª3¡ÊEUC
+ ¥³¡¼¥É¡Ë¢ªNIL
+ @end deffn
+ @deffn Command set-default-kanji-process-code CODE
+ @code{default-kanji-process-code}¤ÎÃÍ¤òCODE¤ËÀßÄê¤¹¤ë¡¥CODE¤Ï°Ê²¼¤Î¤¤¤º
+ ¤ì¤«¡¥
+ @table @asis
+ @item 0 ¤Þ¤¿¤Ï 'noconv ¤Þ¤¿¤Ï "NOCONV"
+ ÌµÊÑ´¹
+ @item 1 ¤Þ¤¿¤Ï 'shift-JIS ¤Þ¤¿¤Ï "SHIFT-JIS"
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2 ¤Þ¤¿¤Ï 'JIS ¤Þ¤¿¤Ï "JIS"
+ JIS¥³¡¼¥É
+ @item 3 ¤Þ¤¿¤Ï 'euc ¤Þ¤¿¤Ï "EUC"
+ EUC¥³¡¼¥É
+ @end table
+ @end deffn
+ @noindent
+ 
+ @menu
+ * MoreProcess: ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È. Nemacs¤Ï¤É¤¦¤ä¤Ã¤Æ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ò·è¤á¤ë¤«
+ @end menu
+ 
+ @node ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È, µ¡Ç½ , ¥×¥í¥»¥¹´ÖÄÌ¿®, ¥×¥í¥»¥¹´ÖÄÌ¿®
+ @subsection ¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È
+ @cindex ¥×¥í¥»¥¹´ÖÄÌ¿®[¤×¤í¤»¤¹¤«¤ó¤Ä¤¦¤·¤ó]
+ 
+ @code{(load-library "kanji-util")}¤ò¹Ô¤Ê¤¦¤È¡¤Nemacs¤¬@strong{¥×¥í¥»¥¹´Á
+ »ú¥³¡¼¥É}¤ò·è¤á¤ëÊýË¡¤òÊÑ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥´Ø¿ô
+ @strong{define-program-kanji-code}¤Ï³°Éô¥×¥í¥»¥¹¤Î@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼
+ ¥É}¤òÀë¸À¤·¡¤´Ø¿ô @strong{define-service-kanji-code}¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥µ¡¼
+ ¥Ð¤Î@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÀë¸À¤·¤Þ¤¹¡¥¤³¤ì¤é¤ÎÀë¸À¤ò¤ª¤³¤Ê¤¦¤È¡¤
+ @strong{find-kanji-process-code}¤ÏÀë¸À¤Ë±è¤Ã¤¿ÃÍ¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥´Ø
+ ¿ô@strong{find-kanji-process-code} ¤¬Å¬Åö¤ÊÃÍ¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¤
+ Nemacs¤ÏÂå¤ï¤ê¤ËÊÑ¿ô @code{default-kanji-process-code} ¤ÎÃÍ¤òÍÑ¤¤¤Æ¥×¥í
+ ¥»¥¹ÄÌ¿®¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥ @refill
+ 
+ @noindent
+ ´Ø¿ô:
+ @ifinfo
+ @defun find-kanji-process-code BUFFER/SERVICE PROGRAM/HOST CODE
+ ¥Ð¥Ã¥Õ¥¡BUFFER¤Î¥×¥í¥°¥é¥àPROGRAM¤Þ¤¿¤Ï¥Û¥¹¥ÈHOST¤Î¥µ¡¼¥Ó¥¹SERVICE¤Î
+ @strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤òÊÖ¤¹¡¥CODE¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ @end defun
+ @end ifinfo
+ @defun define-program-kanji-code BUFFER PROGRAM CODE
+ BUFFER¤ÈPROGRAM ¤ÏÀµµ¬É½¸½ ¤« NIL¡¥ NIL ¤ÏÇ¤°Õ¤Î¥¹¥È¥ê¥ó¥°¤È¥Þ¥Ã¥Á¤¹¤ë¡¥
+ CODE¤Ï¥·¥ó¥Ü¥ë¤«ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥
+ @strong{find-kanji-process-code}¤¬BUFFER¤ÈPROGRAM¤Î£²¤Ä¤Î°ú¿ô¤Ç¸Æ¤Ð¤ì¤¿
+ ¾ì¹ç¤Ë¡¤@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}¤ò·èÄê¤¹¤ëCODE¤òÄêµÁ¤¹¤ë¡¥CODE ¤¬¥·¥ó
+ ¥Ü¥ë¤Ê¤é¤ÐCODE ¤Î´Ø¿ôÄêµÁ¤¬¸Æ¤Ð¤ì¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬ÊÖ¤ë¡¥
+ @refill
+ ¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ ¤¿¤È¤¨¤Ð¡¤@code{(define-program-kanji-code ".*shell.*" nil 2)} ¤Ï¥Ð¥Ã¥Õ¥¡
+ Ì¾¤¬"shell"¤ò´Þ¤à¾ì¹ç¤Ë¤ÏJIS¥³¡¼¥É¤ò»È¤¦¤è¤¦¤Ë¡¤
+ @strong{find-kanji-process-code} ¤òÊÑ¹¹¤¹¤ë¡¥ @refill
+ @end defun
+ @defun define-service-kanji-code SERVICE HOST CODE
+ SERVICE¤ÈHOST ¤ÏÀµµ¬É½¸½¤«NIL.  NIL ¤ÏÇ¤°Õ¤Î¥¹¥È¥ê¥ó¥°¤È¥Þ¥Ã¥Á¤¹¤ë¡¥CODE
+ ¤Ï¥·¥ó¥Ü¥ë¤«ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥@strong{find-kanji-process-code}
+ ¤¬SERVICE¤ÈHOST¤Î£²¤Ä¤Î°ú¿ô¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ë¡¤@strong{¥×¥í¥»¥¹´Á»ú¥³¡¼¥É}
+ ·èÄê¤¹¤ëCODE¤òÄêµÁ¤¹¤ë¡¥CODE ¤¬¥·¥ó¥Ü¥ë¤Ê¤é¤ÐCODE ¤Î´Ø¿ôÄêµÁ¤¬¸Æ¤Ð¤ì¡¤Æü
+ ËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤¬ÊÖ¤ë¡¥ @refill
+ ¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ ¤¿¤È¤¨¤Ð¡¤ @code{(define-service-kanji-code "wnn" nil 0)}¤ÏNemacs¤¬¥µ¡¼
+ ¥Ó¥¹"wnn"¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤ï¤Ê¤¤¤³¤È¤òÀë¸À¤¹¤ë¡¥
+ @refill
+ @end defun
+ 
+ @node µ¡Ç½, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É, NemacsUsers
+ @chapter Nemacs¤Îµ¡Ç½
+ @cindex ÆüËÜ¸ì[¤Ë¤Û¤ó¤´]
+ @cindex ÆüËÜ¸ì½èÍý[¤Ë¤Û¤ó¤´¤·¤ç¤ê]
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñÊÔ½¸¤ÎÍÍ¡¹¤Êµ¡Ç½¤òÄó¶¡¤·¤Þ¤¹¡¥
+ 
+ @menu
+ * Jcodefunc: ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô. ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Ø¤¹¤ë´Ø¿ô
+ * Jtextfunc: ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½.         Ê¸½ñÊÔ½¸¤Îµ¡Ç½
+ * Enhance:   ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥.
+ @end menu
+ 
+ @node ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô, ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, µ¡Ç½, µ¡Ç½
+ @section ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É´ØÏ¢¤Î´Ø¿ô
+ @cindex ÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÊÑ´¹[¤Ë¤Û¤ó¤´¤â¤¸¤³¡¼¤É¤Ø¤ó¤«¤ó]
+ @cindex ¥³¡¼¥ÉÊÑ´¹¥³¥Þ¥ó¥É[¤³¡¼¤É¤Ø¤ó¤«¤ó¤³¤Þ¤ó¤É]
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´ØÏ¢¤·¤Æ°Ê²¼¤Î´Ø¿ô¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é
+ ¤Ë¤è¤Ã¤Æ¡¤¥Ð¥Ã¥Õ¥¡Ãæ¤Î¥Æ¥­¥¹¥È¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤òÊÑ´¹¤¹¤ë¤³¤È¤Ê¤É¤¬
+ ²ÄÇ½¤Ç¤¹¡¥
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command convert-region-kanji-code SOURCE TARGET
+ SOURCE¤ÈTARGET¤ÏÊ¸»ú¥³¡¼¥É¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¡¥
+ @table @asis
+ @item 0
+ ÌµÊÑ´¹
+ @item 1
+ ¥·¥Õ¥ÈJIS¥³¡¼¥É
+ @item 2
+ JIS¥³¡¼¥É
+ @item 3
+ EUC¥³¡¼¥É
+ @end table
+ ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò¡¤SOURCE¤«¤é
+ TARGET¤ËÊÑ´¹¤¹¤ë¡¥
+ @end deffn
+ @deffn Command kanji-delete-region
+ ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤òºï½ü¤¹¤ë¡¥@code{kanji-flag}¤¬@kbd{t}¤Ç
+ ¥Ý¥¤¥ó¥È¤¢¤ë¤¤¤Ï¥Þ¡¼¥¯¤¬£²¥Ð¥¤¥ÈÊ¸»ú¤Î´Ö¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ïºï½ü¤µ¤ì¤Ê¤«¤Ã¤¿£±
+ ¥Ð¥¤¥È¤ò£±¥Ð¥¤¥È¤Î¶õÇòÊ¸»ú¤ÇÃÖ¤­´¹¤¨¤ë¡¥
+ @end deffn
+ 
+ @noindent
+ ´Ø¿ô:
+ @defun convert-string-kanji-code STRING SOURCE TARGET
+ STRING¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òSOURCE¤«¤éTARGET¤ËÊÑ´¹¤·¡¤¤½¤Î·ë²Ì¤òÊÖ¤¹¡¥
+ @end defun
+ @defun check-region-kanji-code
+ ¥Ý¥¤¥ó¥È¤«¤é¥Þ¡¼¥¯¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤Î¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¥Ë¡¼¥â¥Ë¥Ã¥¯¤òÊÖ¤¹¡¥
+ ¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item nil
+ ¥ê¡¼¥¸¥ç¥ó¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡¥
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ Nemacs¤¬EUC¤È¥·¥Õ¥ÈJIS¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«È½ÃÇ¤Ç¤­¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¤ EUC¡Ê¥Ë¡¼
+ ¥â¥Ë¥Ã¥¯¤Ï£³¡Ë¤¬ÊÖ¤ë¡¥
+ @end defun
+ @defun check-string-kanji-code STRING
+ STRING¤ÎÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤òÊÖ¤¹¡¥¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item nil
+ STRING¤ËÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡¥
+ @item 1
+ ¥·¥Õ¥ÈJIS
+ @item 2
+ JIS
+ @item 3
+ EUC
+ @end table
+ Nemacs¤¬EUC¤È¥·¥Õ¥ÈJIS¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«È½ÃÇ¤Ç¤­¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¤ EUC¡Ê¥Ë¡¼
+ ¥â¥Ë¥Ã¥¯¤Ï£³¡Ë¤¬ÊÖ¤ë¡¥
+ @end defun
+ @defun kanji-char-after POS
+ °ú¿ô POS¤Ï¿ô¡¥¸½ºß¤Î¥Ð¥Ã¥Õ¥¡Ãæ¤Îposition POS¤Ë¤¢¤ëÆüËÜ¸ìÊ¸»ú¤ÎEUC¥³¡¼¥É
+ ¤òinteger¤ÇÊÖ¤¹¡¥Ê¸»ú¤¬ÆüËÜ¸ìÊ¸»ú¤Ç¤Ê¤±¤ì¤Ð¡¤¤½¤ÎÊ¸»ú¤Înormal code¤òÊÖ¤¹¡¥
+ POS¤¬ÎÎ°è³°¤Ç¤¢¤ì¤Ð¡¤NIL¤òÊÖ¤¹¡¥
+ @end defun
+ @defun jcode-type POS
+ position POS¤ÎÊ¸»ú¤ÎÊ¸»ú¼ï¤òÊÖ¤¹¡¥Ê¸»ú¼ï¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°Ê²¼¤ÎÄÌ¤ê¡¥
+ @table @asis
+ @item 0
+ ÆüËÜ¸ìÊ¸»ú°Ê³°
+ @item 1
+ ÆüËÜ¸ìÊ¸»ú¤ÎÂè°ì¥Ð¥¤¥È
+ @item 2
+ ÆüËÜ¸ìÊ¸»ú¤ÎÂèÆó¥Ð¥¤¥È
+ @item nil
+ POS¤¬ÎÎ°è³°
+ @end table
+ @end defun
+ 
+ @node ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½, ÆüËÜ¸ìÀµ½ñË¡, ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤ò°·¤¦´Ø¿ô, µ¡Ç½
+ @section ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ @cindex ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½[¤Ë¤Û¤ó¤´¤Ö¤ó¤·¤ç¤Ø¤ó¤·¤å¤¦¤­¤Î¤¦]
+ 
+ Nemacs ¤ÏÊ¸Àá¡Ê@pxref{ÆüËÜ¸ìÀµ½ñË¡}¡ËÃ±°Ì¤Î¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤äÆüËÜ¸ì¥Æ¥­¥¹
+ ¥È¤ÎÃµº÷¡¤ÃÖ´¹¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸½ñ¤Ë¤ª¤¤¤Æ¤Ï¸ìÃ±°Ì¤ÎÁàºî¤è
+ ¤ê¡¤Ê¸ÀáÃ±°Ì¤ÎÁàºî¤ÎÊý¤¬°ìÈÌÅª¤Ç¤¢¤ë¤È¤¤¤¦È½ÃÇ¤Ë´ð¤Å¤¤¤Æ¡¤Nemacs¤Ç¤ÏÆüËÜ
+ ¸ìÊ¸»ú¤Ë¤Ä¤¤¤Æ¤Ïµ¿»÷Åª¤ÊÊ¸ÀáÃ±°Ì¤ÎÁàºî¤ò¹Ô¤Ê¤¦¤è¤¦¤Ë¸ì¤Î³µÇ°¤ò³ÈÄ¥¤·¤Æ¤¤
+ ¤Þ¤¹¡¥¡ÊÆüËÜ¸ìÊ¸½ñ°Ê³°¤Î¥Æ¥­¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¤¥ª¥ê¥¸¥Ê¥ë¤ÎGNU Emacs¤¬Äó¶¡
+ ¤¹¤ë¸ìÃ±°Ì¤ÎÁàºî¤ÈÆ±Åù¤Ç¤¹¡¥@xref {¥·¥ó¥¿¥Ã¥¯¥¹}¡ËÆüËÜ¸ì¤Ë¤ÏÊ¸Àá¶­³¦¤ò¼¨
+ ¤¹µ­Ë¡¤Ï¤Ê¤¤¤Î¤Ç¡¤Nemacs¤Ï¤¹¤Ù¤Æ¤ÎÊ¸»ú¤ËÂÐ¤·¤Æ¥«¥Æ¥´¥ê¤òÄêµÁ¤·¡¤¤³¤ì¤òÍÑ
+ ¤¤¤ÆÊ¸Àá¶­³¦¤ò¿äÂ¬¤·¡¤µ¿»÷Ê¸Àá¤òÀÚ¤ê½Ð¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @menu
+ * Ontho: ÆüËÜ¸ìÀµ½ñË¡.      ÆüËÜ¸ì¤Î½ñ¤­Êý¤Ë¤Ä¤¤¤Æ
+ * Syntax: ¥·¥ó¥¿¥Ã¥¯¥¹.  ÆüËÜ¸ìÊ¸»ú¤Î¥·¥ó¥¿¥Ã¥¯¥¹
+ * Bunsetsu: µ¿»÷Ê¸Àá.    ¸ì¤Î³µÇ°¤Î³ÈÄ¥
+ * Search: Ãµº÷.	ÆüËÜ¸ìÊ¸½ñ¤ÎÃµº÷¤ÈÃÖ´¹
+ * Fill&Justify: ¹ÔµÍ¤á¤È¹ÔÂ·¤¨.
+ @end menu
+ 
+ @node ÆüËÜ¸ìÀµ½ñË¡, ¥·¥ó¥¿¥Ã¥¯¥¹,ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½ , ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ @subsection ÆüËÜ¸ìÀµ½ñË¡
+ @cindex ÆüËÜ¸ìÀµ½ñË¡[¤Ë¤Û¤ó¤´¤»¤¤¤·¤ç¤Û¤¦]
+ @cindex ¤Ò¤é¤¬¤Ê[¤Ò¤é¤¬¤Ê]
+ @cindex ¤«¤¿¤«¤Ê[¤«¤¿¤«¤Ê]
+ @cindex ´Á»ú[¤«¤ó¤¸]
+ @cindex ¤«¤Ê[¤«¤Ê]
+ @cindex Ê¸Àá[¤Ö¤ó¤»¤Ä]
+ 
+ ÆüËÜ¸ì¤ÎÊ¸½ñ¤Ï£µ¼ïÎà¤ÎÊ¸»ú¤«¤é¹½À®¤µ¤ì¤Þ¤¹¡¥£µ¼ïÎà¤ÎÊ¸»ú¤È¤Ï¡¤¤Ò¤é¤¬¤Ê¡¤
+ ¤«¤¿¤«¤Ê¡¤´Á»ú¡¤µ­¹æ¤È±Ñ¿ô»ú¤Ç¤¹¡¥¤Ò¤é¤¬¤Ê¤È¤«¤¿¤«¤Ê¤òÁí¾Î¤·¤Æ¤«¤Ê¤È¸Æ¤Ó
+ ¤Þ¤¹¡¥¤Ò¤é¤¬¤Ê¤È¤«¤¿¤«¤Ê¤ÏÉ½²»Ê¸»ú¤Ç¡¤´Á»ú¤ÏÉ½°ÕÊ¸»ú¤Ç¤¹¡¥ÆüËÜ¸ì¤Ë¤ÏÂ¿¤¯
+ ¤ÎÆ±²»°ÕµÁ¸ì¤¬¤¢¤ê¡¤¤ª¤Ê¤¸È¯²»¤È¤ª¤Ê¤¸¤«¤ÊÉ½µ­¤ò»ý¤Ä´Á»ú¤Î¸ì¤¬¤¿¤¯¤µ¤ó¤¢
+ ¤ê¤Þ¤¹¡¥¤«¤Ê¤Ï¡¤¥í¡¼¥Þ»ú¤È¸Æ¤Ð¤ì¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÉ½µ­¤¬¤¢¤ê¤Þ¤¹¤¬¡¤¤³¤ÎÉ½
+ µ­Ë¡¤ÏÉáÄÌ¤ÎÆüËÜ¸ìÊ¸½ñ¤Ë¤Ï¤Û¤È¤ó¤ÉÍÑ¤¤¤é¤ì¤Þ¤»¤ó¡¥
+ 
+ ÆüËÜ¸ì¤ÎÊ¸¤Ï£±¤Ä°Ê¾å¤Î¶ç¤«¤é¤Ç¤­¡¤¶ç¤Ï£±¤Ä°Ê¾å¤Î@emph{Ê¸Àá}¤«¤é¤Ç¤­¤Æ¤¤
+ ¤Þ¤¹¡¥Ê¸Àá¤Ï³µÎ¬¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡¥
+ @enumerate
+ @item
+ ½õ»ì¤ä½õÆ°»ì¤ò½ü¤¯¸ì
+ @item
+ Á°¹à¤Î¤â¤Î¤Ë£±¤Ä°Ê¾å¤Î½õ»ì¤¢¤ë¤¤¤Ï½õÆ°»ì¤¬Â³¤¤¤¿¤â¤Î
+ @end enumerate
+ ÆÉÅÀ¡Ê¡£¡Ë¤¬Ê¸¤Î¶èÀÚ¤ê¤ò¼¨¤·¡¤¶çÅÀ¡Ê¡¢¡Ë¤¬¶ç¤Î¶èÀÚ¤ê¤ò¼¨¤·¤Þ¤¹¡¥Ê¸Àá¤ä¸ì
+ ¤Î¶èÀÚ¤ê¤ò¼¨¤¹µ­Ë¡¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
+ 
+ @node ¥·¥ó¥¿¥Ã¥¯¥¹,µ¿»÷Ê¸Àá, ÆüËÜ¸ìÀµ½ñË¡, ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ @comment  node-name,  next,  previous,  up
+ @subsection ÆüËÜ¸ìÊ¸»ú¤Î¥·¥ó¥¿¥Ã¥¯¥¹
+ 
+ GNU Emacs¤Ç¤Ï³Æ¥Ð¥¤¥È¤ËÂÐ¤·¤Æ@code{char-syntax}¤¬ÄêµÁ¤Ç¤­¤Þ¤¹¡¥GNU Emacs
+ ¤Î@strong{char-syntax} ¤ò³ÈÄ¥¤·¤Æ¡¤Nemacs¤Ç¤ÏÆüËÜ¸ìÊ¸»ú¥³¡¼¥É¤Î£²¤Ä¤Î¥Ð
+ ¥¤¥È¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¥Ë¡¼¥â¥Ë¥Ã¥¯@kbd{j}¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã
+ ¤Æ¤¤¤Þ¤¹¡Ê@pxref{char-syntax}¡Ë¡¥
+ 
+ ¤µ¤é¤ËNemacs¤Ç¤Ï@strong{char-syntax}¤ò£²¥Ð¥¤¥ÈÊ¸»ú¤Ë³ÈÄ¥¤·¤¿
+ @strong{char-category}¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡¥@strong{char-category}¤Ï¡¤£²¥Ð¥¤
+ ¥ÈÊ¸»ú¡ÊÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤Ë´Þ¤Þ¤ì¤ëÊ¸»ú¡Ë¤òµ­¹æ¡¤±Ñ¿ô»ú¡¤¤Ò¤é¤¬¤Ê¡¤ÆÃ
+ ¼ì¤Ò¤é¤¬¤Ê¡¤¤«¤¿¤«¤Ê¡¤ÆÃ¼ì¤«¤¿¤«¤Ê¡¤¥®¥ê¥·¥ãÊ¸»ú¡¤¥í¥·¥¢Ê¸»ú¡¤Ì¤ÄêµÁ¡¤´Á
+ »ú¡¤ÆÃ¼ì´Á»ú¤Î£±£±¼ïÎà¤ËÊ¬Îà¤·¤Þ¤¹¡¥¡Ê@xref{char-category}¡¥¡Ë ¤³¤ÎÊ¬Îà
+ ¤Ë´ð¤Å¤¤¤ÆNemacs¤ÏÊ¸Àá¤Îµ¿»÷Åª¤ÊÀÚ¤ê½Ð¤·¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥¤Þ¤¿¤³¤ÎÊ¬Îà¤Ë´ð¤Å
+ ¤¤¤Æ¡¤Àµµ¬É½¸½¤¬³ÈÄ¥¤ª¤è¤ÓÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥@refill
+ 
+ @noindent
+ ´Ø¿ô:
+ @defun char-syntax CHAR
+ CHAR¤Îsyntax¥³¡¼¥É¤òÊÖ¤¹¡¥
+ @end defun
+ @defun char-category POS/STRING
+ °ÌÃÖPOS¤ÎÊ¸»ú¤Þ¤¿¤Ï¥¹¥È¥ê¥ó¥°STRING¤ÎºÇ½é¤ÎÊ¸»ú¤Î¡¤category¥³¡¼¥É¤òÊÖ¤¹¡¥
+ POS¤¬ÎÎ°è³°¤Þ¤¿¤ÏSTRING¤¬NULL¤Î¾ì¹ç¤Ï@kbd{nil}¤òÊÖ¤¹¡¥
+ @end defun
+ 
+ @node char-syntax, char-category , ,¥·¥ó¥¿¥Ã¥¯¥¹
+ @comment  node-name,  next,  previous,  up
+ @subsubsection char-syntax
+ @cindex char-syntax
+ @cindex whitespace syntax
+ @cindex word constituent
+ @cindex symbol constituent
+ @cindex punctuation
+ @cindex open parenthesis
+ @cindex close parenthesis
+ @cindex string quote
+ @cindex character quote
+ @cindex paired delimiter
+ @cindex expression prefix operator
+ @cindex comment starter
+ @cindex comment ender
+ @cindex first or second byte of a Japanese character
+ 
+ Nemacs¤Ç¤Ï¼¡¤Îchar-syntax¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ syntax¤Î¥³¡¼¥É:
+ @table @kbd
+ @item SPC
+ whitespace syntax.
+ @item w
+ word constituent.
+ @item _
+ symbol constituent.
+ @item .
+ punctuation.
+ @item (
+ open parenthesis.
+ @item )
+ close parenthesis.
+ @item "
+ string quote.
+ @item \
+ character quote.
+ @item $
+ paired delimiter.
+ @item '
+ expression prefix operator.
+ @item <
+ comment starter.
+ @item >
+ comment ender.
+ @item j
+ first or second byte of Jcode
+ @end table
+ 
+ @node     char-category, µ¿»÷Ê¸Àá, char-syntax,¥·¥ó¥¿¥Ã¥¯¥¹
+ @subsubsection char-category
+ @cindex char-category
+ @cindex µ­¹æ[¤­¤´¤¦]
+ @cindex ±Ñ¿ô»ú[¤¨¤¤¤¹¤¦¤¸]
+ @cindex ¤Ò¤é¤¬¤Ê[¤Ò¤é¤¬¤Ê]
+ @cindex ÆÃ¼ì¤Ò¤é¤¬¤Ê[¤È¤¯¤·¤å¤Ò¤é¤¬¤Ê]
+ @cindex ¤«¤¿¤«¤Ê[¤«¤¿¤«¤Ê]
+ @cindex ÆÃ¼ì¤«¤¿¤«¤Ê[¤È¤¯¤·¤å¤«¤¿¤«¤Ê]
+ @cindex ¥®¥ê¥·¥ãÊ¸»ú[¤®¤ê¤·¤ã¤â¤¸]
+ @cindex ¥í¥·¥¢Ê¸»ú[¤í¤·¤¢¤â¤¸]
+ @cindex Ì¤ÄêµÁ[¤ß¤Æ¤¤¤®]
+ @cindex ´Á»ú[¤«¤ó¤¸]
+ @cindex ÆÃ¼ì´Á»ú[¤È¤¯¤·¤å¤«¤ó¤¸]
+ 
+ Nemacs¤Ç¤Ï¡¤¤¹¤Ù¤Æ¤Î¡Ê£±¥Ð¥¤¥È¤È£²¥Ð¥¤¥È¤Î¡ËÊ¸»ú¤ËÂÐ¤·¤Æchar-category¤¬
+ ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ char-category¤Î¥³¡¼¥É:@*
+ £±¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¡§
+ @table @kbd
+ @item SPC
+ whitespace syntax.
+ @item w
+ word constituent.
+ @item _
+ symbol constituent.
+ @item .
+ punctuation.
+ @item (
+ open-parenthesis.
+ @item )
+ close parenthesis.
+ @item "
+ string quote.
+ @item \
+ character quote.
+ @item $
+ paired delimiter.
+ @item '
+ expression prefix operator.
+ @item <
+ comment starter.
+ @item >
+ comment ender.
+ @end table
+ £²¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¡§
+ @table @kbd
+ @item s
+ µ­¹æ¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£±¡¢£²¡¢£¸¶è¤Î¤â¤Î¡¥
+ @item a
+ ±Ñ¿ô»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£³¶è¤Î¤â¤Î¡¥
+ @item h
+ ¤Ò¤é¤¬¤Ê¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£´¶è¤Î¤â¤Î¡¥ÆÃ¼ì¤Ò¤é¤¬¤Ê¤ò½ü¤¯¡¥
+ @item H
+ ÆÃ¼ì¤Ò¤é¤¬¤Ê¡¥"¡³", "¡´", "¡µ", "¡¶"
+ @item k
+ ¤«¤¿¤«¤Ê¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£µ¶è¤Î¤â¤Î¡¥ÆÃ¼ì¤«¤¿¤«¤Ê¤ò½ü¤¯¡¥
+ @item K
+ ÆÃ¼ì¤«¤¿¤«¤Ê¡¥"¡¼"
+ @item g
+ ¥®¥ê¥·¥ãÊ¸»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£¶¶è¤Î¤â¤Î¡¥
+ @item r
+ ¥í¥·¥¢Ê¸»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£·¶è¤Î¤â¤Î¡¥
+ @item u
+ Ì¤ÄêµÁ¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£¹¡Á£±£µ¶è¤Î¤â¤Î¡¥
+ @item c
+ ´Á»ú¡¥´Á»ú¥³¡¼¥É¤Î¶èÅÀ¤¬£±£¶¶è°Ê¾å¤Î¤â¤Î¡¥ÆÃ¼ì´Á»ú¤ò½ü¤¯¡¥
+ @item C
+ ÆÃ¼ì´Á»ú¡¥ "¡¸", "¡¹", "¡º", "¡»"
+ @end table
+ 
+ @node µ¿»÷Ê¸Àá, Ãµº÷, ¥·¥ó¥¿¥Ã¥¯¥¹, ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ @subsection Ê¸Àá¡á³ÈÄ¥word
+ @cindex ¸ì[¤´]
+ @cindex µ¿»÷Ê¸Àá[¤®¤¸¤Ö¤ó¤»¤Ä]
+ @cindex ³ÈÄ¥word[¤«¤¯¤Á¤ç¤¦word]
+ 
+ Nemacs¤Ï£±¥Ð¥¤¥È¥³¡¼¥É¤ò12¤Î¥«¥Æ¥´¥ê¤Ë¡¤ÆüËÜ¸ìÊ¸»ú¥³¡¼¥É ¡Ê£²¥Ð¥¤¥È¥³¡¼
+ ¥É¡Ë¤ò11¤Î¥«¥Æ¥´¥ê¤ËÊ¬¤±¤Æ¤¤¤Þ¤¹¡Ê@pxref{char-category}¡Ë¡¥ GNU Emacs¤Ç
+ ¤Ï¡Ö¸ì¡×¤Ï¡¤word constituent¤ÎÊÂ¤Ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥Nemacs¤Ç¤Ï¡¤Æü
+ ËÜ¸ìÊ¸»ú¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤³¤ÎÄêµÁ¤ò³ÈÄ¥¤·¡¤¼¡¤Î¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡¥@refill
+ @table @asis
+ @item ³ÈÄ¥¤Ò¤é¤¬¤Ê ::=
+ ( ¤Ò¤é¤¬¤Ê | ÆÃ¼ì¤Ò¤é¤¬¤Ê )
+ @item ³ÈÄ¥¤«¤¿¤«¤Ê ::=
+ ( ¤«¤¿¤«¤Ê | ÆÃ¼ì¤«¤¿¤«¤Ê )
+ @item ³ÈÄ¥´Á»ú ::=
+ ( ´Á»ú | ÆÃ¼ì´Á»ú )
+ @item ³ÈÄ¥word  ::=
+ ( word@*
+ | ( ±Ñ¿ô»ú | ³ÈÄ¥¤Ò¤é¤¬¤Ê | ³ÈÄ¥¥«¥¿¥«¥Ê | ¥®¥ê¥·¥ãÊ¸»ú@*
+ | ¥í¥·¥¢Ê¸»ú | ³ÈÄ¥´Á»ú )+ ³ÈÄ¥¤Ò¤é¤¬¤Ê )
+ @item ³ÈÄ¥¥«¥Æ¥´¥ê ::=
+ ( ³ÈÄ¥¤Ò¤é¤¬¤Ê | ³ÈÄ¥¤«¤¿¤«¤Ê |³ÈÄ¥´Á»ú )
+ @end table
+ 
+ ¤Ä¤Þ¤ê¡¤Nemacs¤Ï¼¡¤Î¤è¤¦¤ÊÊ¸»ú¤Î¥·¡¼¥±¥ó¥¹¤ò£±¤Ä¤Î³ÈÄ¥word¤È¤ß¤Ê¤·¤Þ¤¹¡¥
+ @enumerate
+ @item
+ Ï¢Â³¤¹¤ëword constituents
+ @item
+ Ï¢Â³¤¹¤ëÆ±°ì¤Î³ÈÄ¥¥«¥Æ¥´¥ê¤ËÂ°¤¹¤ëÆüËÜ¸ìÊ¸»ú
+ @item
+ Á°¹à¤Î¤â¤Î¤Ë£±¤Ä°Ê¾å¤Î³ÈÄ¥¤Ò¤é¤¬¤Ê¤¬Â³¤¤¤¿¤â¤Î
+ @end enumerate
+ 
+ ¤³¤Î³ÈÄ¥word¤Ï¡¤ÆüËÜ¸ìÊ¸Ãæ¤Ç¤Ï¤Û¤ÜÊ¸Àá¤ËÂÐ±þ¤·¡¤£±¥Ð¥¤¥ÈÊ¸»ú¥·¡¼¥±¥ó¥¹Ãæ
+ ¤Ç¤Ïword¤ÈÆ±¤¸¤â¤Î¤Ç¤¹¡¥
+ 
+ @node Ãµº÷, ¹ÔµÍ¤á¤È¹ÔÂ·¤¨, µ¿»÷Ê¸Àá, ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½
+ @subsection ÆüËÜ¸ì¥¹¥È¥ê¥ó¥°¤ÎÃµº÷¤ÈÃÖ´¹
+ @cindex Ãµº÷[¤¿¤ó¤µ¤¯]
+ @cindex ÃÖ´¹[¤Á¤«¤ó]
+ @findex isearch-backward-regexp
+ @findex isearch-backward
+ @findex isearch-forward-regexp
+ @findex isearch-forward
+ @findex isearch
+ @findex re-search-backward
+ @findex re-search-forward
+ @findex replace-regexp
+ @findex replace-string
+ @findex search-backward
+ @findex search-forward
+ 
+ ÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤âÃµº÷¥³¥Þ¥ó¥É @strong{search-forward},
+ @strong{search-backward},
+ @strong{isearch-forward},@strong{isearch-backward},
+ @strong{re-search-forward},@strong{re-search-backward},
+ @strong{isearch-forward-regexp},@strong{isearch-backward-regexp}¤äÃÖ´¹
+ ¥³¥Þ¥ó¥É@strong{replace-string},@strong{replace-regexp}¤ò»È¤¦¤³¤È¤¬¤Ç
+ ¤­¤Þ¤¹¡¥@refill
+ 
+ ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ëÃµº÷(@strong{isearch})Ãæ¤Ë¥¹¥È¥ê¥ó¥°ÆþÎÏ¤ò¹Ô¤Ê¤¦¤Ë¤Ï¡¤
+ @kbd{C-k}¤ò¥¿¥¤¥×¤·¤Æ²¼¤µ¤¤¡¥¤³¤Î¥â¡¼¥É¤Ç¤Ï¥ß¥Ë¥Ð¥Ã¥Õ¥¡Ãæ¤ÇÆüËÜ¸ì¥¹¥È¥ê
+ ¥ó¥°¤ÎÆþÎÏ¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¥¹¥È¥ê¥ó¥°ÆþÎÏ¤¬½ª¤Ã¤¿¤é¡¤@key{RET}¥­
+ ¥¤¤ò²¡¤·¤Æ²¼¤µ¤¤¡¥Nemacs¤Ï@strong{isearch}¤òºÆ³«¤·¤Þ¤¹¡¥@refill
+ 
+ Ãµº÷¤äÃÖ´¹¤ËÍÑ¤¤¤ëÀµµ¬É½¸½¤Ï¡¤³ÈÄ¥word¤ächar-category¤ËÂÐ±þ¤·¤Æ³ÈÄ¥¤ª¤è
+ ¤ÓÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥@*
+ 
+ @menu
+ RegExp: ÆüËÜ¸ìÀµµ¬É½¸½. 
+ @end menu
+ 
+ @node ÆüËÜ¸ìÀµµ¬É½¸½, ¹ÔµÍ¤á¤È¹ÔÂ·¤¨, Ãµº÷, Ãµº÷
+ @cindex Àµµ¬É½¸½[¤»¤¤¤­¤Ò¤ç¤¦¤²¤ó]
+ 
+ Ãµº÷¤äÃÖ´¹¤ËÍÑ¤¤¤ëÀµµ¬É½¸½¤Ï¡¤³ÈÄ¥word¤ächar-category¤ËÂÐ±þ¤·¤Æ¼¡¤Î¤è
+ ¤¦¤Ë³ÈÄ¥¤ª¤è¤ÓÊÑ¹¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥@*
+ 
+ @noindent
+ ³ÈÄ¥¡§
+ @table @asis
+ @item \cCATEGORY
+ char-category ¤¬ CATEGORY ¤ÎÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item \CCATEGORY
+ char-category ¤¬ CATEGORY ¤Ç¤Ê¤¤Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item \h
+ ²þ¹Ô¤ò½ü¤¯£±¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item \z
+ ¤¹¤Ù¤Æ¤Î£²¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item [...]
+ ³Æ¥³¡¼¥É¤ÈÅù¤·¤¤£±¥Ð¥¤¥È¤â¤·¤¯¤Ï£²¥Ð¥¤¥ÈÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item normal code
+ ¤½¤ì¤ÈÅù¤·¤¤£±¥Ð¥¤¥È¤â¤·¤¯¤Ï£²¥Ð¥¤¥ÈÊ¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @end table
+ @noindent
+ ÊÑ¹¹¡§
+ @table @asis
+ @item .
+ ²þ¹ÔÊ¸»ú¤ò½ü¤¯£±¥Ð¥¤¥ÈÊ¸»ú£±Ê¸»ú¤Þ¤¿¤Ï¤¹¤Ù¤Æ¤Î£²¥Ð¥¤¥ÈÊ¸
+ »ú£±Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥@refill
+ @item \w
+ ³ÈÄ¥word¤Î¹½À®Í×ÁÇ¤ÎÊ¸»ú¤È¹çÃ×¤¹¤ë¡£¤¹¤Ê¤ï¤Á£±¥Ð¥¤¥È
+ Ê¸»ú¤Î¾ì¹ç¤Ï syntax-table ¤Î char-syntax ¤¬ "w" ¤Î¤â¤Î¡¢£²
+ ¥Ð¥¤¥ÈÊ¸»ú¤Î¾ì¹ç¤ÏÊ¸»ú¤ÎÊ¬Îà¤¬±Ñ¿ô»ú¡¢³ÈÄ¥¤Ò¤é¤¬¤Ê¡¢³ÈÄ¥¥«¥¿¥«
+ ¥Ê¡¢¥®¥ê¥·¥ãÊ¸»ú¡¢¥í¥·¥¢Ê¸»ú¡¢³ÈÄ¥´Á»ú¤Î¤â¤Î¤È¹çÃ×¤¹¤ë¡¥
+ \(\sw\|\ca\|\ch|\cH\|\ck|\cK\|\cg\|\cr\|\cc|\cC\)¤ÈÅù²Á¡¥@refill
+ @item \W
+ ³ÈÄ¥word¤Î¹½À®Í×ÁÇ¤Ç¤Ê¤¤Ê¸»ú¤È¹çÃ×¤¹¤ë¡¥
+ @item \b
+ ³ÈÄ¥word¤ÎÁ°¸å¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ @item \B
+ ³ÈÄ¥word¤ÎÁ°¸å¤Ë¤Ê¤¤¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ @item \<
+ ³ÈÄ¥word¤ÎÁ°¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ @item \>
+ ³ÈÄ¥word¤Î¸å¤Ë¤¢¤ë¶õ¤ÎÊ¸»úÎó¤È¹çÃ×¤¹¤ë¡¥
+ @end table
+ 
+ Ãí°Õ: \sw (\Sw) ¤Ï GNU Emacs ¤Ç¤Ï \w (\W) ¤ÈÅù²Á¤Ç¤¹¤¬¡¤Nemacs¤Ç¤ÏÅù²Á
+ ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥\sw (\Sw) ¤Ï³ÈÄ¥word ¤Ç¤Ï¤Ê¤¯ word ¤Î¹½À®Í×ÁÇ¡Ê¤¢¤ë¤¤
+ ¤Ï¤½¤ì°Ê³°¡Ë¤È¤Î¤ß¹çÃ×¤·¤Þ¤¹¡¥@refill
+ 
+ @node ¹ÔµÍ¤á¤È¹ÔÂ·¤¨,  ¹ÔµÍ¤á, Ãµº÷, ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½    
+ @subsection ¹ÔµÍ¤á¤È¹ÔÂ·¤¨
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¹ÔµÍ¤á¤È¹ÔÂ·¤¨¤Îµ¡Ç½¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @menu
+ * Fill: ¹ÔµÍ¤á.	   ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔµÍ¤á
+ * Justify: ¹ÔÂ·¤¨. ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔÂ·¤¨
+ @end menu
+ 
+ @node ¹ÔµÍ¤á, ¹ÔÂ·¤¨, , ¹ÔµÍ¤á¤È¹ÔÂ·¤¨    
+ @subsubsection ¹ÔµÍ¤á
+ @cindex ¹ÔµÍ¤á[¤®¤ç¤¦¤Ä¤á]
+ @findex fill-paragrap
+ @cindex ¶ØÂ§[¤­¤ó¤½¤¯]
+ @cindex ¤Ö¤é²¼¤²½èÍý[¤Ö¤é¤µ¤²¤·¤ç¤ê]
+ @cindex ÄÉ¤¤¤À¤·½èÍý[¤ª¤¤¤À¤·¤·¤ç¤ê]
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¡¤¥³¥Þ¥ó¥É@strong{fill-paragraph}¤Ë¤è¤ë¹ÔµÍ
+ ¤á¤ä¡¤@kbd{auto-fill-mode}¤Ë¤ª¤±¤ë¼«Æ°¹ÔµÍ¤áµ¡Ç½¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥@refill
+ 
+ ÆüËÜ¸ìÊ¸½ñ¤Ç¤Ï¡¤¸ì¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤Ï¤Ê¤¯¹Ô¤Ï°ìÄê¤ÎÄ¹¤µ¤ÇÀÞ¤êÊÖ¤µ¤ì¤ë¤Î¤¬Éá
+ ÄÌ¤Ç¤¹¡¥¤·¤«¤·ÆüËÜ¸ìÊ¸»ú¤Î¤¦¤Á¤Î°ìÉô¤ÎÊ¸»ú¡Ê¤Û¤È¤ó¤Éµ­¹æ¤Ç¤¹¡Ë¤Ï¹ÔÆ¬¤ä¹Ô
+ Ëö¤Ë¸½¤ì¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡¥¤³¤Î¤è¤¦¤ÊÊ¸»ú¤òÀµ¤·¤¯°·¤¦¤¿¤á¤Ë¡¤Nemacs¤Ï¹Ô
+ ¤ÎÄ¹¤µ¤òÊÑ¤¨¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡¥ÆüËÜ¸ìÊ¸½ñ¤Î¹ÔµÍ¤á¤Ï¥ª¥ê¥¸¥Ê¥ë¤ÎText Filling
+ ¤Î³ÈÄ¥¤È¤·¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤
+ ±ÑÊ¸»úÃ±¸ìÃæ¤Ç¹Ô¤¬½ª¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡¥@refill
+ 
+ ¹ÔÆ¬µÚ¤Ó¹ÔËö¶ØÂ§¤Î°ìÈÌµ¬Â§¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
+ 
+ @table @strong
+ @item ¹ÔÆ¬¶ØÂ§Ê¸»ú
+ Ê¸¡¿¶ç¤Î½ª¤ê¤ò¼¨¤¹µ­¹æ¤Ï¹ÔÆ¬¤Ë¸½¤ì¤Ê¤¤¡¥¤³¤Î¤è¤¦¤Êµ­¹æ¤È¤·¤Æ¤Ï¶çÅÀ¡Ê¡¢¡Ë
+ ÆÉÅÀ¡Ê¡£¡Ë¤Ê¤É¤¬¤¢¤ë¡¥ÊÑ¿ô @kbd{kinsoku-bol-chars} ¤Ï¤³¤Î¤è¤¦¤ÊÊ¸»ú¤Î¥ê
+ ¥¹¥È¤òÊÝ»ý¤¹¤ë¡¥@refill
+ @item ¹ÔËö¶ØÂ§Ê¸»ú
+ Ê¸¡¿¶ç¤Î»Ï¤Þ¤ê¤ò¼¨¤¹µ­¹æ¤Ï¹ÔËö¤Ë¸½¤ì¤Ê¤¤¡¥¤³¤Î¤è¤¦¤Êµ­¹æ¤È¤·¤Æ¤Ï¤«¤®³ç¸Ì
+ ³«¤±¡Ê¡Ö¡Ë¡¤³ç¸Ì³«¤±¡Ê¡Ê¡Ë¤Ê¤É¤¬¤¢¤ë¡¥ÊÑ¿ô @kbd{kinsoku-eol-chars} ¤Ï¤³
+ ¤Î¤è¤¦¤ÊÊ¸»ú¤Î¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¡¥@refill
+ @end table
+ 
+ Nemacs¤Ï¡¤°Ê²¼¤Î¤É¤Á¤é¤«¤ÎÊýË¡¡Ê¶ØÂ§½èÍý¡Ë¤ò»È¤Ã¤Æ¹Ô¤ÎÄ¹¤µ¤òÊÑ¤¨¡¤¹ÔÆ¬¹Ô
+ Ëö¶ØÂ§¤Îµ¬Â§¤ò¼é¤ê¤Þ¤¹¡¥
+ 
+ @table @strong
+ @item ¤Ö¤é²¼¤²½èÍý
+ ¹Ô¤ÎÄ¹¤µ¤ò£±¤Ê¤¤¤·Ê£¿ôÊ¸»úÊ¬¿­¤Ð¤¹¡¥ÊÑ¿ô@kbd{kinsoku-nobashi-limit}¤¬¿­
+ ¤Ð¤·ÆÀ¤ëºÇÂçÊ¸»ú¿ô¤ò¼¨¤·¤Þ¤¹¡¥
+ @item ÄÉ¤¤¤À¤·½èÍý
+ ¹Ô¤ÎÄ¹¤µ¤ò£±¤Ê¤¤¤·Ê£¿ôÊ¸»úÊ¬Ã»¤¯¤¹¤ë¡¥
+ @end table
+ 
+ Nemacs¤Ï¼¡¤Î¾ì¹ç¤Ë¸Â¤êÄÉ¤¤½Ð¤·¤ò¡¤¤½¤ì°Ê³°¤Î¾ì¹ç¤Ö¤é²¼¤²¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+ @itemize @bullet
+ @item
+ ¶ØÂ§½èÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¹ÔËö¤¬¹ÔËö¶ØÂ§Ê¸»ú¤Ç¤¢¤ê¡¤¤½¤Î¼¡¤ÎÊ¸»ú¤¬¹ÔËö¶ØÂ§¤Ç
+ ¤Ê¤¤¾ì¹ç¡¥
+ @item
+ ¹ÔËö¶ØÂ§Ê¸»ú¤¬¹ÔËöÉÕ¶á¤ÇÂ³¤­¡¤ÊÑ¿ô@kbd{kinsoku-nobashi-limit}¤Ç¼¨¤µ¤ì¤ë
+ °Ê¾å¤Ë¤Ö¤é²¼¤²¤ëÉ¬Í×¤¬¤¢¤ë¾ì¹ç¡¥
+ @end itemize
+ 
+ @noindent
+ ÊÑ¿ô¡§
+ @defvr {Global Variable} kinsoku-bol-chars
+ ¹ÔÆ¬¶ØÂ§Ê¸»ú¤Î¥ê¥¹¥È¡¥
+ @end defvr
+ @defvr {Global Variable} kinsoku-eol-chars
+ ¹ÔËö¶ØÂ§Ê¸»ú¤Î¥ê¥¹¥È¡¥
+ @end defvr
+ @defvr {Global Variable} kinsoku-nobashi-limit
+ ¤Ö¤é²¼¤²½èÍý¤Ë¤è¤Ã¤Æ¿­¤Ð¤·ÆÀ¤ëÊ¸»ú¿ô¡Ê£±¥Ð¥¤¥ÈÊ¸»ú¡Ë¤ÎºÇÂçÃÍ¡¥
+ @end defvr
+ 
+ @node ¹ÔÂ·¤¨, ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, ¹ÔµÍ¤á, ¹ÔµÍ¤á¤È¹ÔÂ·¤¨    
+ @subsubsection ¹ÔÂ·¤¨
+ @cindex ¹ÔÂ·¤¨[¤®¤ç¤¦¤½¤í¤¨]
+ 
+ Nemacs¤ÏÆüËÜ¸ìÊ¸½ñ¤Ë¤Ä¤¤¤Æ¤â¹ÔÂ·¤¨¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥±ÑÊ¸¤Î¾ì¹ç¤Ë¤Ï¸ì¤Î´Ö
+ ¤Î¶õÇòÊ¸»ú¤òÁý¤ä¤¹¤³¤È¤Ë¤è¤Ã¤Æ¹ÔÂ·¤¨¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡¥ÆüËÜ¸ì¤Î¾ì¹ç¤Ë¤Ï
+ ¸ì´Ö¤Ë¤Ï¶õÇòÊ¸»ú¤ò¤¤¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¡¤¶çÆÉÅÀ¤Î¸å¤í¤È alphanumerics ¤È
+ ÆüËÜ¸ìÊ¸»ú¤Î´Ö¤Ë¶õÇòÊ¸»ú¤òÁÞÆþ¤·¤Æ¹ÔÂ·¤¨¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡¥
+ @refill
+ 
+ @node ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥, ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É , ÆüËÜ¸ìÊ¸½ñÊÔ½¸µ¡Ç½,µ¡Ç½
+ @section ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ 
+ ÆüËÜ¸ì½èÍý¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¡¤¶ë·ÁÎÎ°è½èÍý¡¤Î¬¾ÎÅ¸³«
+ (dynamic abbreviation)¤Î£³ÅÀ¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @menu
+ * PictureMode: ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É.
+ * Rectangle: ¶ë·ÁÎÎ°è¤Î½èÍý.
+ * Abbrev: Æ°Åª¤ÊÎ¬¾ÎÅ¸³«.
+ @end menu
+ 
+ @node ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, ¶ë·ÁÎÎ°è¤Î½èÍý ,ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥ , ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ @subsection ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É
+ @cindex ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É[¤Ô¤¯¤Á¤å¤¢¤â¡¼¤É]
+ 
+ Nemacs ¤Ë¤ª¤±¤ë¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ï¥Õ¥¡¥¤¥ë@file{picture.el} ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë
+ ¤è¤Ã¤Æ¡¤Ê¸»ú¤ÎÁÞÆþÊý¸þ¡¤ÆüËÜ¸ìÆþÎÏ¤ÎÊýË¡¤Î£²ÅÀ¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥@refill
+ 
+ @menu
+ * Direction:  Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥.
+ * InputInPic: ÆüËÜ¸ìÆþÎÏ.
+ @end menu
+ 
+ @node     Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥, ÆüËÜ¸ìÆþÎÏ, ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É
+ @subsubsection Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥
+ 
+ Emacs¤Î¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ç¤Ï¡¤£±Ê¸»úÁÞÆþ¤µ¤ì¤¿¸å¤Î¥«¡¼¥½¥ë¤Î°ÜÆ°Êý¸þ¤ò¾å
+ ²¼º¸±¦¼Ð¤á¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡¥¼Ð¤á¤ò»ØÄê¤·¤¿¾ì¹ç¤Ë¤Ï¡¤½Ä²£³ÆÊý¸þ¤Ë¤½¤ì¤¾¤ì£±
+ ¥«¥é¥à¡Ê¹Ô¡Ë°ÜÆ°¤·¤Þ¤¹¡¥¼Ð¤á»ØÄê¤Î¾õÂÖ¤Ï¥â¡¼¥É¥é¥¤¥ó¾å¤Î`nw', `ne',
+ `sw', `se' ¤Ê¤É¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯É½¼¨¤Ç¼¨¤µ¤ì¤Þ¤¹¡¥
+ 
+ Nemacs ¤Ç¤ÏÆüËÜ¸ìÊ¸»ú¤ÏÄÌ¾ï¤Î¥¢¥¹¥­¡¼Ê¸»ú¤Î£²ÇÜ¤ÎÊ¸»úÉý¤ò»ý¤Ä¤Î¤Ç¡¤¾åµ­
+ ¤Ë²Ã¤¨£²¥«¥é¥à¤È£±¹Ô¼Ð¤á¤È¤¤¤¦»ØÄê¤¬¹Ô¤Ê¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥»ØÄê¾õÂÖ
+ ¤Ï¡¤`wnw', `ene', `wsw', `ese'
+ ¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤ÇÉ½¼¨¤µ¤ì¤Þ¤¹¡¥
+ 
+ `se' ¤È `ese' »ØÄê»þ¤Î¥«¡¼¥½¥ë¤Î°ÜÆ°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥@*
+ @group
+ @example
+ s
+  e
+   »Ø
+    Äê
+     »þ
+ 
+ s
+   e
+     s
+       »Ø
+         Äê
+           »þ
+ @end example
+ @end group
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command picture-movement-wnw
+ @kbd{C-c ~}¡¥ÁÞÆþ¸å¡¤º¸¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ @end deffn
+ @deffn Command picture-movement-ene
+ @kbd{C-c \}¡¥ÁÞÆþ¸å¡¤±¦¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ @end deffn
+ @deffn Command picture-movement-wsw
+ @kbd{C-c ?}¡¥ÁÞÆþ¸å¡¤º¸¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ @end deffn
+ @deffn Command picture-movement-ese
+ @kbd{C-c |}¡¥ÁÞÆþ¸å¡¤±¦¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô°ÜÆ°¤¹¤ë¡¥
+ @end deffn
+ 
+ @node     ÆüËÜ¸ìÆþÎÏ, ¶ë·ÁÎÎ°è¤Î½èÍý, Ê¸»ú¤ÎÁÞÆþÊý¸þ¤Î³ÈÄ¥, ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É
+ @subsubsection ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É¤Ç¤ÎÆüËÜ¸ìÆþÎÏ
+ @findex egg-self-insert-command
+ @findex self-insert-after-hook
+ 
+ Emacs ¤Î picture¥â¡¼¥É¤Ç¤Ï¡¤ÄÌ¾ï¤ÎÊ¸»ú¤ÏÁ´¤Æ@strong{picture-self-insert} 
+ ¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ë³ä¤êÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡¥Nemacs ¤Ç¤Ï¡Ö¤¿¤Þ¤´¡×¤Ë¤è¤ëÆüËÜ¸ì
+ ÆþÎÏ¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¡¤¡Ö¤¿¤Þ¤´¡× »ÈÍÑ»þ¤Ë¤ÏÄÌ¾ïÊ¸»ú¤òÁ´¤Æ
+ @strong{egg-self-insert-command} ¤Ë³ä¤êÉÕ¤±¤Þ¤¹¡¥¡Ö¤¿¤Þ¤´¡× ¤¬Ê¸»úÎó¤ò³Î
+ Äê¤·¤¿¸å¤Ë¸Æ¤Ö@strong{self-insert-after-hook} ¤Ë¤Ï
+ @strong{picture-insert-after-hook} ¤¬³ä¤êÉÕ¤±¤é¤ì¡¤¤³¤Î´Ø¿ô¤¬Ê¸»úÎó¤ÎÆþ
+ ÎÏ½èÍý¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥@refill
+ 
+ EGG °Ê³°¤ÎÆüËÜ¸ìÆþÎÏÊý¼° (SKK Åù) ¤òÍÑ¤¤¤ë¾ì¹ç¤Ï¡¤´Ø¿ô
+ @kbd{picture-insert-string} ¡Ê@kbd{C-c k}¡Ë¤ò¼Â¹Ô¤·¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤éÆü
+ ËÜ¸ìÊ¸»úÎó¤òÆÉ¤ß¹þ¤Þ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡¥@refill @*
+ 
+ @noindent
+ ´Ø¿ô:
+ @defun picture-insert-after-hook BEGIN END
+ ¸½ºß¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥¹¥È¥ê¥ó¥°¤òÁÞÆþ¤·¤¿¸å¼Â¹Ô¤µ¤ì¤ëhook.
+ £²°ú¿ôBEGIN¤ÈEND¤ÏÁÞÆþ¤·¤¿¥¹¥È¥ê¥ó¥°¤ÎÀèÆ¬¤ÈºÇ¸å¤Î°ÌÃÖ¤ò¼¨¤¹¡¥
+ @end defun
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command picture-insert-string STR
+ @kbd{picture-movement}¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ»ØÄê¤µ¤ì¤¿Êý¸þ¤Ø¥Ý¥¤¥ó¥È¤ò°ÜÆ°¤µ¤»
+ ¤Ê¤¬¤é¡¤¥¹¥È¥ê¥ó¥°STR¤Î¹½À®Ê¸»ú¤ò°ìÊ¸»ú¤º¤ÄÁÞÆþ¤¹¤ë¡¥
+ @end deffn
+ 
+ @node ¶ë·ÁÎÎ°è¤Î½èÍý , Æ°Åª¤ÊÎ¬¾ÎÅ¸³«, ¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É, ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ @subsection ¶ë·ÁÎÎ°è¤Î½èÍý
+ @cindex ¶ë·ÁÎÎ°è[¤¯¤±¤¤¤ê¤ç¤¦¤¤¤­]
+ 
+ ¶ë·ÁÎÎ°è (rectangle) ¤Î½èÍý¤Ï¥Õ¥¡¥¤¥ë@file{rect.el} ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ³È
+ Ä¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ GNU Emacs ¤Ï¥Ð¥Ã¥Õ¥¡Æâ¤Î¶ë·ÁÎÎ°è¤ËÂÐ¤·¤Æ¤µ¤Þ¤¶¤Þ¤Ê½èÍý¤ò¹Ô¤Ê¤¦´Ø¿ô¤ò»ý¤Ã
+ ¤Æ¤¤¤Þ¤¹¡¥¤·¤«¤·Nemacs ¤Ç¤Ï ¶ë·ÁÎÎ°è¤Î¶­³¦¤Ë¤Þ¤¿¤¬¤Ã¤ÆÆüËÜ¸ìÊ¸»ú¤¬Â¸ºß¤¹
+ ¤ë²ÄÇ½À­¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤ì¤ËÂÐ½è¤¹¤ë¤¿¤á¡¤¶­³¦¾å¤ÎÆüËÜ¸ìÊ¸»ú¤Ï¥¢¥¹¥­¡¼¤Î¥¹
+ ¥Ú¡¼¥¹£²Ê¸»ú¤ËÃÖ¤­´¹¤¨¤¿¾å¤Ç½èÍý¤ò¹Ô¤Ê¤¤¤Þ¤¹¡¥
+ 
+ @ifinfo
+ ¤³¤Î¤¿¤á¡¤
+ @example
+ 		        ¢­
+ 		¤³¤ì¤Ï rectangle ¤Î
+ 		¶­³¦¤Ë,ÆüËÜ¸ìÊ¸»ú¤¬Â¸
+ 		ºß¤¹¤ë¾ì¹ç¤Î½èÍý¤ÎÎã
+ 		¤Ç¤¹¡£test test test
+ 			     ¢¬
+ @end example
+ 
+ ¾å¤Î¤è¤¦¤Ê£²ÅÀ¤Ç»ØÄê¤µ¤ì¤¿¶ë·ÁÎÎ°è¤ËÂÐ¤·¤Æ @kbd{kill-rectangle}¤ò¹Ô¤Ê¤¦
+ ¤È¡¤@refill
+ 
+ @example
+ 		        ¢­
+ 		¤³¤ì¤Ï rele ¤Î
+ 		¶­³¦¤Ë,Æü »ú¤¬Â¸
+ 		ºß¤¹¤ë¾ì Íý¤ÎÎã
+ 		¤Ç¤¹¡£test test
+ 			¢¬
+ @end example
+ 
+ ¤È¤¤¤¦¤è¤¦¤Ë£²¹ÔÌÜ¤Î¡ÖÊ¸¡×¤È£³¹ÔÌÜ¤Î¡Ö¹ç¡×¤Î£²Ê¸»ú¤¬ºï½ü¤µ¤ì¤Þ¤¹¡¥¤Þ¤¿¡¤
+ @kbd{yank-rectangle} ¤ò¹Ô¤Ê¤Ã¤Æ¤â¡¤
+ 
+ @example
+ 		        ¢­
+ 		¤³¤ì¤Ï rectangle ¤Î
+ 		¶­³¦¤Ë,ÆüËÜ¸ì  »ú¤¬Â¸
+ 		ºß¤¹¤ë¾ì  ¤Î½èÍý¤ÎÎã
+ 		¤Ç¤¹¡£test test test
+ 			     ¢¬
+ @end example
+ 
+ ¾åµ­¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¸µÄÌ¤ê¤Ë¤ÏÉü¸µ¤·¤Þ¤»¤ó¡¥
+ @end ifinfo
+ 
+ @node Æ°Åª¤ÊÎ¬¾ÎÅ¸³«, ¤½¤ÎÂ¾, ¶ë·ÁÎÎ°è¤Î½èÍý , ÆüËÜ¸ì½èÍý¤Î¤¿¤á¤Î³ÈÄ¥
+ @subsection Æ°Åª¤ÊÎ¬¾ÎÅ¸³«
+ 
+ ¥Õ¥¡¥¤¥ë@file{dabbrev.el} ¤Ø¤Î¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ¡¤ÆüËÜ¸ì¤Ë¤Ä¤¤¤Æ¤âÆ°ÅªÎ¬¾ÎÅ¸
+ ³«(dynamic abbreviation)¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¥ï¡¼¥É¤ÎÀÚ¤ê½Ð¤·¤Ï
+ ³ÈÄ¥word¤Ë½¾¤¤¤Þ¤¹¡¥
+ 
+ @node ¤½¤ÎÂ¾, ¥É¥­¥å¥á¥ó¥È, µ¡Ç½, NemacsUsers
+ @chapter  Nemacs ¤Ë¤Ä¤¤¤Æ¤¤¤í¤¤¤í
+ @menu
+ * Documents: ¥É¥­¥å¥á¥ó¥È.  ¥É¥­¥å¥á¥ó¥È¤Îºß½è
+ * Keymaps: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°.  ¥­¡¼¥Þ¥Ã¥×¤ÎÊÑ¹¹ÅÀ
+ @end menu
+ 
+ @node ¥É¥­¥å¥á¥ó¥È, ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°, , ¤½¤ÎÂ¾
+ @section Nemacs ¤Î¥É¥­¥å¥á¥ó¥È
+ @cindex ¥É¥­¥å¥á¥ó¥È[¤É¤­¤å¤á¤ó¤È]
+ Nemacs¤Ë´ØÏ¢¤¹¤ë¥É¥­¥å¥á¥ó¥È¤Ï¼¡¤Î¤â¤Î¤¬ (NEMACS)/etc ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê
+ ¤Þ¤¹¡¥
+ 
+ @table @asis
+ @item NEMACS.tut
+ ÆüËÜ¸ì Nemacs ¥Á¥å¡¼¥È¥ê¥¢¥ë¡¥ @kbd{C-h T}
+ (@kbd{help-with-tutorial-for-nemacs})¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥±Ñ¸ìÈÇ¤Ï 
+ @kbd{C-h t}¤Çµ¯Æ°¤µ¤ì¤Þ¤¹¡¥ @refill
+ @item NEMACS.log
+ Nemacs Ver.3.2.°Ê¹ß¤ÎÊÑ¹¹¡¥
+ @end table
+ 
+ °Ê²¼¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï (NEMACS)/man ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡¥
+ 
+ @table @asis
+ @item nemacs.texinfo
+ ¤³¤Îinfo¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡¥
+ @item egg.texinfo
+ "EGG"¥·¥¹¥Æ¥àÍÑinfo¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡¥
+ @end table
+ 
+ @node ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°, ¥³¥Þ¥ó¥É°ìÍ÷, ¥É¥­¥å¥á¥ó¥È, ¤½¤ÎÂ¾
+ @section ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤ÎÊÑ¹¹
+ @cindex key maps
+ 
+ Nemacs ¤Ï@kbd{M-$}¤ò @kbd{esc-dol-map}¤Ë¡¤ @kbd{M-(}¤ò
+ @kbd{esc-par-map} ¤Ë¤½¤ì¤¾¤ì³ä¤êÉÕ¤±¤Æ¤¤¤Þ¤¹¡¥ @refill
+ 
+ @example
+ (define-key esc-map "$" esc-dol-map)
+ (define-key esc-map "(" esc-par-map)
+ (define-key esc-dol-map "@@" 'kanji-jis-start)
+ (define-key esc-dol-map "B" 'kanji-jis-start)
+ (define-key esc-par-map "B" 'kanji-jis-end)
+ (define-key esc-par-map "H" 'kanji-jis-end)
+ (define-key esc-par-map "J" 'kanji-jis-end)
+ @end example
+ 
+ ¤·¤¿¤¬¤Ã¤Æ¡¤¥ª¥ê¥¸¥Ê¥ëGNU Emacs¤Ç@kbd{M-$}¤¢¤ë¤¤¤Ï @kbd{M-(}¤¬³ä¤êÉÕ¤±¤é
+ ¤ì¤Æ¤¤¤¿°Ê²¼¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¿·¤¿¤Ê¥­¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥ @refill
+ 
+ @example
+ (define-key esc-map "#" 'spell-word)
+ (define-key esc-map "@{" 'insert-parentheses)
+ @end example
+ 
+ ¥­¡¼¥Ü¡¼¥ÉÆþÎÏ¤È¤·¤ÆJIS¥³¡¼¥É¤ò¼õ¤±ÉÕ¤±¤ë¾ì¹ç¤Ë¤Ï¡¤Nemacs¤Ï´Ø¿ô
+ @kbd{kanji-jis-start} ¤È´Ø¿ô @kbd{kanji-jis-end}¤ò¸Æ¤Ó¤Þ¤¹¡¥JIS¥³¡¼¥É¤ò
+ »ÈÍÑ¤¹¤ë¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Î¥­¡¼¥Þ¥Ã¥×¤òÊÑ¤¨¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡¥
+ @refill
+ 
+ @node NemacsLispers , ¥Þ¡¼¥«¤Î³ÈÄ¥ , , Top
+ @unnumbered NemacsLisp
+ 
+ EmacsLisp¤Ë´Ø¤·¤Æ¤¤¤¯¤Ä¤«¤Î³ÈÄ¥¤¬¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ 
+ @menu
+ * Marker: ¥Þ¡¼¥«¤Î³ÈÄ¥.
+ * Attribute: Â°À­¤ÎÉÕÍ¿.
+ @end menu
+ 
+ @node ¥Þ¡¼¥«¤Î³ÈÄ¥, Â°À­¤ÎÉÕÍ¿, , NemacsLispers
+ @unnumberedsec ¥Þ¡¼¥«¤Î³ÈÄ¥
+ @cindex ¥Þ¡¼¥«[¤Þ¡¼¤«]
+ 
+ Nemacs¤Ç¤Ï`point-type'¤È¤¤¤¦¿·¤·¤¤¥¿¥¤¥×¤Î¥Þ¡¼¥«¤òÄó¶¡¤·¤Æ¤¤¤Þ¤¹¡¥¤³¤Î¥¿
+ ¥¤¥×¤Î¥Þ¡¼¥«¤Î°ÌÃÖ¤Ø¤ÎÁÞÆþ¤Ï¡¤¤½¤Î¥Þ¡¼¥«¤ò¥Ý¥¤¥ó¥È¤Î¤è¤¦¤ËÁÞÆþ¤µ¤ì¤¿¥¹¥È
+ ¥ê¥ó¥°¤ÎÄ¾¸å¤Ë°ÜÆ°¤·¤Þ¤¹¡¥ÀèÆ¬¤Ë¥ª¥ê¥¸¥Ê¥ë¤Î¥Þ¡¼¥«¡¤ºÇ¸åÈø¤Ë¤³¤Î¿·¤·¤¤¥Þ¡¼
+ ¥«¤ò¤ª¤¯¤³¤È¤ÇÀßÄê¤µ¤ì¤ëÎÎ°è¤Ï¡¤ÎÎ°è¤ÎÁ´¥¹¥È¥ê¥ó¥°¤Îºï½ü¤äºÇ¸åÈø¤Ø¤Î¥¹¥È
+ ¥ê¥ó¥°¤ÎÁÞÆþ¤Ê¤É¤Ë¤Ä¤¤¤ÆÆÃÊÌ¤ÊÇÛÎ¸¤òÉ¬Í×¤È¤·¤Þ¤»¤ó¡¥@*
+ 
+ @noindent
+ ¥³¥Þ¥ó¥É:
+ @deffn Command set-marker-type MARKER POINT-TYPE
+ POINT-TYPE¤¬NIL¤Ç¤Ê¤±¤ì¤Ð¡¤¥Þ¡¼¥«MARKER¤Î¥¿¥¤¥×¤ò`point-type'¤ËÀßÄê¤¹¤ë¡¥
+ NIL¤Ê¤é¤Ð¥ª¥ê¥¸¥Ê¥ë¤Î¥¿¥¤¥×¤ËÀßÄê¤¹¤ë¡¥MARKER¤òÊÖ¤¹¡¥
+ @end deffn
+ 
+ @noindent
+ ´Ø¿ô:
+ @defun insert-after-markers STRING/CHAR
+ °ú¿ô¤È¤·¤Æ¥¹¥È¥ê¥ó¥°¤«Ê¸»ú¡Ê¤¤¤¯¤Ä¤Ç¤â¡Ë¤ò¤È¤ë¡¥¥¹¥È¥ê¥ó¥°¡¿Ê¸»ú¡Ê¤¿¤Á¡Ë
+ ¤ò¥Ý¥¤¥ó¥È¤Î¸å¤í¤ËÁÞÆþ¤·¡¤ÁÞÆþ°ÌÃÖ¤ò»Ø¤·¤Æ¤¤¤ë`point-type'¤Î¥Þ¡¼¥«¤òÁÞÆþ
+ ¤µ¤ì¤¿¥Æ¥­¥¹¥È¤ÎÄ¾Á°¤Ë°ÜÆ°¤¹¤ë¡¥
+ @end defun
+ 
+ @node  Â°À­¤ÎÉÕÍ¿, , ¥Þ¡¼¥«¤Î³ÈÄ¥, NemacsLispers
+ @unnumberedsec Â°À­¤ÎÉÕÍ¿
+ @cindex ²¼Àþ[¤«¤»¤ó]
+ @cindex È¿Å¾[¤Ï¤ó¤Æ¤ó]
+ ¥Ð¥Ã¥Õ¥¡Ãæ¤ÎÎÎ°è¤Ë¤Ä¤¤¤Æ¡¤É½¼¨¤Ë´Ø¤¹¤ëÂ°À­¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥Â°À­¤Ï
+ X-Window¾å¤Ç¤Î¤ßÍ­¸ú¤Ç¤¹¡¥¸½ºßÄó¶¡¤µ¤ì¤Æ¤¤¤ëÂ°À­¤Ï²¼Àþ¤ÈÈ¿Å¾¤Ç¤¹¡¥
+ 
+ ´Ø¿ô:
+ @deffn Command attribute-on-region ATTR &optional FROM TO
+ ÎÎ°èÆâ¤ÎÂ°À­ATTR¤òon¤Ë¤¹¤ë¡¥ATTR¤Ï'underline'¤Þ¤¿¤Ï'inverse'¡¥
+ ¥×¥í¥°¥é¥à¤«¤é¸Æ¤Ö¾ì¹ç¤Ï¤µ¤é¤Ë£²°ú¿ôFROM¤ÈTO¤ò¤È¤ë¡¥FROM¤¬NIL¤Î¾ì¹ç¤Ë¤Ï
+ (point-min)¡¤TO¤¬NIL¤Î¾ì¹ç¤Ë¤Ï(point-max)¤¬ÍÑ¤¤¤é¤ì¤ë¡¥
+ @end deffn
+ @deffn Command attribute-off-region ATTR &optional FROM TO
+ ÎÎ°èÆâ¤ÎÂ°À­ATTR¤òoff¤Ë¤¹¤ë¡¥ATTR¤Ï'underline'¤Þ¤¿¤Ï'inverse'¡¥
+ @end deffn
+ @defun attribute-get-attribute &optional POS
+ °ÌÃÖPOS¤Îattribute range¤òÊÖ¤¹¡¥POS¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï¥«¥ì¥ó¥È¥Ý¥¤¥ó¥È¡¥
+ attribute range¤Ï¡¤attribute type¡¤¤½¤Î»ÏÅÀ¡¤½ªÅÀ¤Î¥ê¥¹¥È¡¥
+ @end defun
+ 
+ 
+ @node ¥³¥Þ¥ó¥É°ìÍ÷, ³µÇ°º÷°ú, ,NemacsUsers
+ @comment  node-name,  next,  previous,  up
+ @unnumbered ¥³¥Þ¥ó¥É¥«¡¼¥É
+ 
+ @noindent
+ @strong{¥Á¥å¡¼¥È¥ê¥¢¥ë}
+ @table @asis
+ @item ÆüËÜ¸ìÈÇ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òµ¯Æ°
+ @kbd{C-h T}
+ @end table
+ 
+ @noindent
+ @strong{ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¤ÎÀßÄê}
+ @table @asis
+ @item ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¢Îalphanumerics¥â¡¼¥É¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k t}
+ @item ÆüËÜ¸ìÊ¸»ú¥â¡¼¥É¢Îalphanumerics¥â¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k T}
+ @end table
+ 
+ @noindent
+ @strong{»ÈÍÑ¤¹¤ëÆüËÜ¸ìÊ¸»ú¥³¡¼¥ÉÂÎ·Ï¤ÎÀßÄê}
+ @table @asis
+ @item ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É¤ÎÀßÄê
+ @kbd{M-x set-kanji-input-code}
+ @item ¥­¡¼¥Ü¡¼¥É´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k i}
+ @item ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É¤ÎÀßÄê
+ @kbd{M-x set-kanji-displkay-code}
+ @item ¥Ç¥£¥¹¥×¥ì¥¤´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k d}
+ @item ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤ÎÀßÄê
+ @kbd{M-x set-kanji-fileio-code}
+ @item ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k f}
+ @item ¥Õ¥¡¥¤¥ëÆÉ¤ß¹þ¤ß»þ¤Î¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î°ì»þÅªÀÚÂØ¤¨
+ @kbd{C-u}@var{n}@kbd{C-x C-f}
+ @item ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ÎÀßÄê
+ @kbd{M-x set-process-kanji-code}
+ @item ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k p}
+ @item ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥³¡¼¥ÉÂÎ·Ï¤òÉ½¼¨
+ @kbd{C-x C-k C}¤Þ¤¿¤Ï@kbd{C-x C-k c}
+ @item ¥Õ¥¡¥¤¥ë´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k F}
+ @item ¥×¥í¥»¥¹´Á»ú¥³¡¼¥É¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤ÎÀÚÂØ¤¨
+ @kbd{C-x C-k P}
+ @end table
+ 
+ @noindent
+ @strong{¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ëÃµº÷}
+ @table @asis
+ @item ¥¹¥È¥ê¥ó¥°ÆþÎÏ
+ ¡Ê@kbd{C-s},@kbd{C-r}¤Ê¤É¤Î¸å¡Ë@kbd{C-k}@var{string}@key{RET}
+ @end table
+ 
+ @noindent
+ @strong{¥Ô¥¯¥Á¥å¥¢¥â¡¼¥É}
+ @table @asis
+ @item º¸¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+ @kbd{C-c ~}
+ @item ±¦¤Ø£²¥«¥é¥à¡¤¾å¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+ @kbd{C-c \}
+ @item º¸¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+ @kbd{C-c ?}
+ @item ±¦¤Ø£²¥«¥é¥à¡¤²¼¤Ø£±¹Ô¥«¡¼¥½¥ë°ÜÆ°
+ @kbd{C-c |}
+ @end table
+ 
+ @noindent
+ @strong{ÊÑ¹¹}
+ @table @asis
+ @item ¥Ý¥¤¥ó¥È¤Î¤¢¤ëÃ±¸ì¤ÎÄÖ¤ê¥Á¥§¥Ã¥¯
+ @kbd{M-#}
+ @item ¤«¤Ã¤³¤ÎÁÞÆþ
+ @kbd{M-@{}
+ @end table
+ @noindent
+ 
+ @node ³µÇ°º÷°ú, ´Ø¿ô¡¦ÊÑ¿ôº÷°ú ,¥³¥Þ¥ó¥É°ìÍ÷ , Top
+ @unnumbered ³µÇ°º÷°ú
+ 
+ @printindex cp
+ 
+ @node ´Ø¿ô¡¦ÊÑ¿ôº÷°ú,³µÇ°º÷°ú , , Top
+ @unnumbered ´Ø¿ô¡¦ÊÑ¿ôº÷°ú
+ 
+ @printindex fn
+ 
+ @contents
+ @bye
+ 
diff -arcN emacs-18.55/man/texindex.c nemacs-3.3.2/man/texindex.c
*** emacs-18.55/man/texindex.c	Tue Jul 12 07:04:07 1988
--- nemacs-3.3.2/man/texindex.c	Wed Jun  6 03:17:47 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 89.11.23 modified for Nemacs Ver.3.2 by K.Handa
+    to handle Japanese code (EUC).  */
+ 
  /* Prepare Tex index dribble output into an actual index.
     Copyright (C) 1987 Free Software Foundation, Inc.
  
***************
*** 123,128 ****
--- 126,135 ----
  #define L_XTND 2
  #endif
  
+ /* patch by K.Handa  89.11.23 */
+ #define EUC_P(c) ((unsigned char)c >= 0xa1 && (unsigned char)c <= 0xfe)
+ /* end of patch */
+ 
  /* When sorting in core, this structure describes one line
   and the position and length of its first keyfield.  */
  
***************
*** 726,731 ****
--- 733,743 ----
      char_order[i] = 512 + i;
      char_order[i + 'A' - 'a'] = 512 + i;
    }
+ /* patch by K.Handa  89.11.23 */
+   for (i = 0xa1; i <= 0xfe; i++)
+     char_order[i] = 512 + i;
+   char_order[0xa4] = char_order[0xa5];
+ /* end of patch */
  }
  
  /* Compare two fields (each specified as a start pointer and a character count)
***************
*** 757,766 ****
      }
    else
      {
!       char *p1 = start1;
!       char *p2 = start2;
!       char *e1 = start1 + length1;
!       char *e2 = start2 + length2;
  
        int fold_case = keyfield->fold_case;
  
--- 769,781 ----
      }
    else
      {
! /* patch by K.Handa  89.11.23 */
! /* original types are 'char' */
!       unsigned char *p1 = (unsigned char *)start1;
!       unsigned char *p2 = (unsigned char *)start2;
!       unsigned char *e1 = (unsigned char *)start1 + length1;
!       unsigned char *e2 = (unsigned char *)start2 + length2;
! /* end of patch */
  
        int fold_case = keyfield->fold_case;
  
***************
*** 775,786 ****
  
  	  if (char_order[c1] != char_order[c2])
  	    return char_order[c1] - char_order[c2];
  	  if (!c1) break;
  	}
  
        /* Strings are equal except possibly for case.  */
!       p1 = start1;
!       p2 = start2;
        while (1)
  	{
  	  int c1, c2;
--- 790,816 ----
  
  	  if (char_order[c1] != char_order[c2])
  	    return char_order[c1] - char_order[c2];
+ /* patch by K.Handa  89.11.23 */
+ 	  if (EUC_P(c1) && c2) {
+ 	    c1 = *p1++;
+ 	    c2 = *p2++;
+ 	    if (*(p1-2) == 0xa3) {
+ 	      if (0xe1 <= c1 && c1 <= 0xfa) c1 -= 0x20;
+ 	      if (0xe1 <= c2 && c2 <= 0xfa) c2 -= 0x20;
+ 	      if (c1 != c2) return c2 - c1;
+ 	    } else if (c1 != c2)
+ 	      return c1 - c2;
+ 	  }
+ /* end of patch */
  	  if (!c1) break;
  	}
  
        /* Strings are equal except possibly for case.  */
!       /* ... and for Hiragana-Katakana. */ /* patch by K.Handa  89.11.23 */
! /* type casting patch by K.Handa  89.11.23 */
!       p1 = (unsigned char *)start1;
!       p2 = (unsigned char *)start2;
! /* end of patch */
        while (1)
  	{
  	  int c1, c2;
***************
*** 793,798 ****
--- 823,836 ----
  	  if (c1 != c2)
  	    /* Reverse sign here so upper case comes out last.  */
  	    return c2 - c1;
+ /* patch by K.Handa  89.11.23 */
+ 	  if (EUC_P(c1) && c2) {
+ 	    c1 = *p1++;
+ 	    c2 = *p2++;
+ 	    if (*(p1-2) == 0xa3) return c2 - c1;
+ 	    else return c1 - c2;
+ 	  }
+ /* end of patch */
  	  if (!c1) break;
  	}
  
***************
*** 1143,1149 ****
--- 1181,1192 ----
  /* When we need a string of length 1 for the value of lastinitial,
     store it here.  */
  
+ /* patch by K.Handa  89.11.23 */
+ /* original line is
  char lastinitial1[2];
+    and new line is */
+ char lastinitial1[3];
+ /* end of patch */
  
  /* Initialize static storage for writing an index */
  
***************
*** 1154,1159 ****
--- 1197,1203 ----
    lastinitial = lastinitial1;
    lastinitial1[0] = 0;
    lastinitial1[1] = 0;
+   lastinitial1[2] = 0;		/* patch by K.Handa  89.11.23 */
    lastinitiallength = 0;
    lastprimarylength = 100;
    lastprimary = (char *) xmalloc (lastprimarylength + 1);
***************
*** 1176,1182 ****
--- 1220,1231 ----
    int nosecondary;
    int initiallength;
    char *initial;
+ /* patch by K.Handa  89.11.23 */
+ /* original line is
    char initial1[2];
+    and new line is */
+   char initial1[3];
+ /* end of patch */
    register char *p;
  
    /* First, analyze the parts of the entry fed to us this time */
***************
*** 1193,1203 ****
--- 1242,1265 ----
      {
        initial = initial1;
        initial1[0] = *p;
+ /* patch by K.Handa  89.11.23 */
+       if (EUC_P (*p)) {
+ 	initial1[1] = *(p+1);
+ 	initial1[2] = 0;
+ 	initiallength = 2;
+ 	if ((unsigned char)*p == 0xa4) initial1[0] = (char)0xa5;
+ 	else if ((unsigned char)*p == 0xa3
+ 		 && (unsigned char)initial1[1] >= 0xe1
+ 		 && (unsigned char)initial1[1] <= 0xfa)
+ 	  initial1[1] -= 0x20;
+       } else {
+ /* end of patch */
        initial1[1] = 0;
        initiallength = 1;
  
        if (initial1[0] >= 'a' && initial1[0] <= 'z')
  	initial1[0] -= 040;
+       }				/* patch by K.Handa  89.11.23 */
      }
  
    pagenumber = find_braced_pos (line, 1, 0, 0);
***************
*** 1234,1239 ****
--- 1296,1302 ----
  	    {
  	      lastinitial = lastinitial1;
  	      *lastinitial1 = *initial1;
+ 	      lastinitial1[1] = initial1[1]; /* patch by K.Handa  89.11.23 */
  	    }
  	  else
  	    {
diff -arcN emacs-18.55/man/texinfo.tex nemacs-3.3.2/man/texinfo.tex
*** emacs-18.55/man/texinfo.tex	Wed Jul  5 10:49:43 1989
--- nemacs-3.3.2/man/texinfo.tex	Wed Jun  6 03:17:48 1990
***************
*** 1,3 ****
--- 1,6 ----
+ %% TeX macros to handle Japanese texinfo files for Egg
+ %% Modified by Satoru Tomura(tomura@etl.go.jp)
+ 
  %% TeX macros to handle texinfo files
  
  %   Copyright (C) 1985, 1986, 1988 Free Software Foundation, Inc.
***************
*** 23,28 ****
--- 26,37 ----
  
  \def\texinfoversion{1.26}
  \message{Loading texinfo package [Version \texinfoversion]:}
+ %*********************************************
+ %* jtexinfo patch by S.Tomura 89-Dec-7
+ \def\Jtexinfoversion{1.03}
+ \message{   with jtexinfo extension [Version \Jtexinfoversion]:}
+ %* end of patch
+ %*********************************************
  \message{}
  
  % Save some parts of plain tex whose names we will redefine.
***************
*** 396,401 ****
--- 405,414 ----
  \font\tenit=cmti10 scaled \magstephalf
  \font\tensl=cmsl10 scaled \magstephalf
  \font\tensf=cmss10 scaled \magstephalf
+ %**  for jtex 1.01 not 1.01e
+ \jfont\tendm=dm10 scaled {\magstephalf}
+ \jfont\tendg=dg10 scaled {\magstephalf}
+ %**
  \def\li{\sf}
  \font\tensc=cmcsc10 scaled \magstephalf
  
***************
*** 406,416 ****
  
  % Font for title
  \font\titlerm = cmbx10 scaled \magstep5
! 
  % Fonts for indices
  \font\indit=cmti9 \font\indrm=cmr9
  \def\indbf{\indrm} \def\indsl{\indit}
! \def\indexfonts{\let\it=\indit \let\sl=\indsl \let\bf=\indbf \let\rm=\indrm}
  
  % Fonts for headings
  \font\chaprm=cmbx10 scaled \magstep3
--- 419,437 ----
  
  % Font for title
  \font\titlerm = cmbx10 scaled \magstep5
! %**
! \jfont\titledm = dm10 scaled \magstep5
! \jfont\titledg = dg10 scaled \magstep5
! %**
  % Fonts for indices
  \font\indit=cmti9 \font\indrm=cmr9
+ %**
+ \jfont\inddm=dm9
+ \jfont\inddg=dg9
+ %**
  \def\indbf{\indrm} \def\indsl{\indit}
! \def\indexfonts{\let\it=\indit \let\sl=\indsl \let\bf=\indbf
! \let\rm=\indrm \let\dm=\inddm}
  
  % Fonts for headings
  \font\chaprm=cmbx10 scaled \magstep3
***************
*** 419,425 ****
  \font\chaptt=cmtt10 scaled \magstep3
  \font\chapsf=cmss10 scaled \magstep3
  \let\chapbf=\chaprm
! 
  \font\secrm=cmbx10 scaled \magstep2
  \font\secit=cmti10 scaled \magstep2
  \font\secsl=cmsl10 scaled \magstep2
--- 440,449 ----
  \font\chaptt=cmtt10 scaled \magstep3
  \font\chapsf=cmss10 scaled \magstep3
  \let\chapbf=\chaprm
! %**
! \jfont\chapdm=dm10 scaled \magstep3
! \jfont\chapdg=dg10 scaled \magstep3
! %**
  \font\secrm=cmbx10 scaled \magstep2
  \font\secit=cmti10 scaled \magstep2
  \font\secsl=cmsl10 scaled \magstep2
***************
*** 426,451 ****
  \font\sectt=cmtt10 scaled \magstep2
  \font\secsf=cmss10 scaled \magstep2
  \let\secbf=\secrm
  
! % \font\ssecrm=cmbx10 scaled \magstep1    % This size an fontlooked bad.
! % \font\ssecit=cmti10 scaled \magstep1    % The letters were too crowded.
! % \font\ssecsl=cmsl10 scaled \magstep1
! % \font\ssectt=cmtt10 scaled \magstep1
! % \font\ssecsf=cmss10 scaled \magstep1
! 
! \font\ssecrm=cmb10 at 13pt	% Note the use of cmb rather than cmbx.
! \font\ssecit=cmti10 at 13pt	% Also, the size is a little larger than
! \font\ssecsl=cmsl10 at 13pt	% being scaled magstep1.
! \font\ssectt=cmtt10 at 13pt
! \font\ssecsf=cmss10 at 13pt
  
  \let\ssecbf=\ssecrm
  
  \def\textfonts{\let\rm=\tenrm\let\it=\tenit\let\sl=\tensl\let\bf=\tenbf%
! \let\smallcaps=\tensc\let\sf=\tensf}
! \def\chapfonts{\let\rm=\chaprm\let\it=\chapit\let\sl=\chapsl\let\bf=\chapbf\let\tt=\chaptt\let\sf=\chapsf}
! \def\secfonts{\let\rm=\secrm\let\it=\secit\let\sl=\secsl\let\bf=\secbf\let\tt=\sectt\let\sf=\secsf}
! \def\subsecfonts{\let\rm=\ssecrm\let\it=\ssecit\let\sl=\ssecsl\let\bf=\ssecbf\let\tt=\ssectt\let\sf=\ssecsf}
  % Count depth in font-changes, for error checks
  \newcount\fontdepth \fontdepth=0
  
--- 450,483 ----
  \font\sectt=cmtt10 scaled \magstep2
  \font\secsf=cmss10 scaled \magstep2
  \let\secbf=\secrm
+ %**
+ \jfont\secdm=dm10 scaled \magstep2
+ \jfont\secdg=dg10 scaled \magstep2
+ %**
  
! \font\ssecrm=cmbx10 scaled \magstep1    % This size an fontlooked bad.
! \font\ssecit=cmti10 scaled \magstep1    % The letters were too crowded.
! \font\ssecsl=cmsl10 scaled \magstep1
! \font\ssectt=cmtt10 scaled \magstep1
! \font\ssecsf=cmss10 scaled \magstep1
! 
! % \font\ssecrm=cmb10 at 13pt	% Note the use of cmb rather than cmbx.
! % \font\ssecit=cmti10 at 13pt	% Also, the size is a little larger than
! % \font\ssecsl=cmsl10 at 13pt	% being scaled magstep1.
! % \font\ssectt=cmtt10 at 13pt
! % \font\ssecsf=cmss10 at 13pt
  
  \let\ssecbf=\ssecrm
+ %**
+ \jfont\ssecdm=dm10 scaled \magstep1
+ \jfont\ssecdg=dg10 scaled \magstep1
+ %**
  
  \def\textfonts{\let\rm=\tenrm\let\it=\tenit\let\sl=\tensl\let\bf=\tenbf%
! \let\smallcaps=\tensc\let\sf=\tensf\let\dm=\tendm\let\dg=\tendg\dm}
! \def\chapfonts{\let\rm=\chaprm\let\it=\chapit\let\sl=\chapsl\let\bf=\chapbf\let\tt=\chaptt\let\sf=\chapsf\let\dm=\chapdm\let\dg=\chapdg\dg}
! \def\secfonts{\let\rm=\secrm\let\it=\secit\let\sl=\secsl\let\bf=\secbf\let\tt=\sectt\let\sf=\secsf\let\dm=\secdm\let\dg=\secdg\dg}
! \def\subsecfonts{\let\rm=\ssecrm\let\it=\ssecit\let\sl=\ssecsl\let\bf=\ssecbf\let\tt=\ssectt\let\sf=\ssecsf\let\dm=\ssecdm\let\dg=\ssecdg\dm}
  % Count depth in font-changes, for error checks
  \newcount\fontdepth \fontdepth=0
  
***************
*** 455,467 ****
  %% Add scribe-like font environments, plus @l for inline lisp (usually sans
  %% serif) and @ii for TeX italic
  
! \def\i#1{{\sl #1}}
  \let\var=\i
  \let\dfn=\i
  \let\emph=\i
  \let\cite=\i
  
! \def\b#1{{\bf #1}}
  \let\strong=\b
  
  \def\t#1{{\tt \rawbackslash \frenchspacing #1}\null}
--- 487,509 ----
  %% Add scribe-like font environments, plus @l for inline lisp (usually sans
  %% serif) and @ii for TeX italic
  
! %*********************************************
! %* jtexinfo patch by S.Tomura 89-Dec-7
! %\def\i#1{{\sl #1}}
! \def\i#1{{\sl\dg #1}}
! %* end of patch
! %*********************************************
  \let\var=\i
  \let\dfn=\i
  \let\emph=\i
  \let\cite=\i
  
! %*********************************************
! %* jtexinfo patch by S.Tomura 89-Dec-7
! %\def\b#1{{\bf #1}}
! \def\b#1{{\bf\dg #1}}
! %* end of patch
! %*********************************************
  \let\strong=\b
  
  \def\t#1{{\tt \rawbackslash \frenchspacing #1}\null}
***************
*** 480,486 ****
  \def\sc#1{{\\smallcaps #1}}	% smallcaps font
  \def\ii#1{{\it #1}}		% italic font
  
! \def\titlefont#1{{\titlerm #1}}
  
  % Make altmode in file print out right
  
--- 522,528 ----
  \def\sc#1{{\\smallcaps #1}}	% smallcaps font
  \def\ii#1{{\it #1}}		% italic font
  
! \def\titlefont#1{{\titlerm\titledm #1}}
  
  % Make altmode in file print out right
  
***************
*** 856,861 ****
--- 898,916 ----
  \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
  \def\singleindexer #1{\doind{\indexname}{#1}}
  
+ %*********************************************
+ %*** jtexinfo patch by S.Tomura 89-Dec-7
+ \def\Jempty{}
+ \def\singleindexer #1{\singleindexerB#1[]\singleindexerA}
+ \def\singleindexerB#1[#2]{\edef\Jone{#1}\edef\Jtwo{#2}%
+ \ifx\Jempty\Jtwo\let\Jnext=\relax\let\singleindexerA=\singleindexerD%
+ \else\let\Jnext=\singleindexerC\let\singleindexerA=\singleindexerE\fi%
+ \Jnext}
+ \def\singleindexerC#1[]{}
+ \def\singleindexerD{\doind{\indexname}{\Jone}}
+ \def\singleindexerE{\Jdoind{\indexname}{\Jone}{\Jtwo}}
+ %**** end of patch
+ %*********************************************
  % like the previous two, but they put @code around the argument.
  \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
  \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
***************
*** 959,964 ****
--- 1014,1045 ----
  \gdef\cindexsub "#1" #2^^M{\endgroup %
  \dosubind{cp}{#2}{#1}}}
  
+ %*********************************************
+ %*** jtexinfo patch  by S.Tomura 89-Nov-23
+ %***
+ \def\Jdoind #1#2#3{%
+ {\indexdummies % Must do this here, since \bf, etc expand at this stage
+ \count10=\lastpenalty %
+ \escapechar=`\\%
+ {\let\folio=0% Expand all macros now EXCEPT \folio
+ \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash in the indx.
+ %
+ % Now process the index-string once, with all font commands turned off,
+ % to get the string to sort the index by.
+ {\indexnofonts
+ \xdef\temp1{#3}%
+ }%
+ % Now produce the complete index entry.  We process the index-string again,
+ % this time with font commands expanded, to get what to print in the index.
+ \edef\temp{%
+ \write \csname#1indfile\endcsname{%
+ \realbackslash entry {\temp1}{\folio}{#2}}}%
+ \temp }%
+ \penalty\count10}}
+ %*** end of patch
+ %*********************************************
+ 
  % Define the macros used in formatting output of the sorted index material.
  
  % This is what you call to cause a particular index to get printed.
***************
*** 990,999 ****
  
  \outer\def\initial #1{%
  {\let\tentt=\sectt \let\sf=\sectt
  \ifdim\lastskip<\initialskipamount
  \removelastskip \penalty-200 \vskip \initialskipamount\fi
! \line{\secbf#1\hfill}\kern 2pt\penalty3000}}
! 
  \outer\def\entry #1#2{
  {\parfillskip=0in \parskip=0in \parindent=0in
  \hangindent=1in \hangafter=1%
--- 1071,1084 ----
  
  \outer\def\initial #1{%
  {\let\tentt=\sectt \let\sf=\sectt
+ %****
+ \let\dm=\secdm\let\dg=\secdg\dg
+ %****
  \ifdim\lastskip<\initialskipamount
  \removelastskip \penalty-200 \vskip \initialskipamount\fi
! %****
! \line{\secbf\secdg#1\hfill}\kern 2pt\penalty3000}}
! %****
  \outer\def\entry #1#2{
  {\parfillskip=0in \parskip=0in \parindent=0in
  \hangindent=1in \hangafter=1%
***************
*** 2118,2124 ****
  \global\pagewidth=\hsize
  \global\pageheight=\vsize
  \global\font\ninett=cmtt9
! 
  \global\let\smalllisp=\smalllispx
  \global\let\smallexample=\smalllispx
  \global\def\Esmallexample{\Esmalllisp}
--- 2203,2211 ----
  \global\pagewidth=\hsize
  \global\pageheight=\vsize
  \global\font\ninett=cmtt9
! %**
! \global\jfont\ninedm=dm9
! %**
  \global\let\smalllisp=\smalllispx
  \global\let\smallexample=\smalllispx
  \global\def\Esmallexample{\Esmalllisp}
diff -arcN emacs-18.55/src/Makefile nemacs-3.3.2/src/Makefile
*** emacs-18.55/src/Makefile	Tue Aug  8 10:12:47 1989
--- nemacs-3.3.2/src/Makefile	Wed Jun  6 03:19:11 1990
***************
*** 1,3 ****
--- 1,6 ----
+ # 90.2.27  modified for Nemacs Ver.3.3 by K.Handa
+ #	add dependency on nconfig.h to xmakefile
+ 
  CPP = cc -E
  MAKE = make  # BSD doesn't have it as a default.
  #Note: an alternative is  CPP = /lib/cpp
***************
*** 28,34 ****
  
  # If you have a problem with cc -E here, changing
  # the definition of CPP above may fix it.
! xmakefile: ymakefile config.h
  	rm -f xmakefile
  	cp ymakefile junk.c
  	$(CPP) junk.c | sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$$//' -e 's/^ /	/' | \
--- 31,37 ----
  
  # If you have a problem with cc -E here, changing
  # the definition of CPP above may fix it.
! xmakefile: ymakefile config.h nconfig.h
  	rm -f xmakefile
  	cp ymakefile junk.c
  	$(CPP) junk.c | sed -e 's/^#.*//' -e 's/^[ \f\t][ \f\t]*$$//' -e 's/^ /	/' | \
diff -arcN emacs-18.55/src/alloc.c nemacs-3.3.2/src/alloc.c
*** emacs-18.55/src/alloc.c	Mon Feb 13 19:23:35 1989
--- nemacs-3.3.2/src/alloc.c	Wed Jun  6 03:18:07 1990
***************
*** 393,398 ****
--- 393,400 ----
    p->bufpos = 0;
    p->modified = 0;
    p->chain = Qnil;
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+   p->type = MARKER_OLD_TYPE;
    consing_since_gc += sizeof (struct Lisp_Marker);
    return val;
  }
diff -arcN emacs-18.55/src/buffer.c nemacs-3.3.2/src/buffer.c
*** emacs-18.55/src/buffer.c	Fri Jul 21 07:36:02 1989
--- nemacs-3.3.2/src/buffer.c	Wed Jun  6 03:18:07 1990
***************
*** 1,3 ****
--- 1,10 ----
+ /* 87.12.9  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.2.1   modified by K.Handa */
+ /* 89.3.10  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.24 modified for attribute of characters by K.Handa */
+ /* 90.1.12  modified for Nemacs Ver.3.3.1 by K.Handa
+ 		'validate_region' is changed. */
+ 
  /* Buffer manipulation primitives for GNU Emacs.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 35,40 ****
--- 42,50 ----
  #include "commands.h"
  #include "buffer.h"
  #include "syntax.h"
+ #ifdef NEMACS  /* 87.12.9  by K. Handa */
+ #include "kanji.h"
+ #endif
  
  struct buffer *bf_cur;		/* the current buffer */
  
***************
*** 98,103 ****
--- 108,117 ----
  /* For debugging; temporary.  See SetBfp.  */
  /* Lisp_Object Qlisp_mode, Vcheck_symbol; */
  
+ #ifdef NEMACS  /* 89.3.20  by K.Handa, S.Tomura */
+ Lisp_Object Qkanji_fileio_code;
+ #endif
+ 
  nsberror (spec)
       Lisp_Object spec;
  {
***************
*** 239,244 ****
--- 253,262 ----
    b->auto_save_modified = 0;
    b->auto_save_file_name = Qnil;
    b->read_only = Qnil;
+ /* patch for attribute of characters by K.Handa 89.11.21 */
+   b->underlined_region = Qnil;
+   b->inversed_region = Qnil;
+ /* end of patch */
    reset_buffer_local_variables(b);
  }
  
***************
*** 953,958 ****
--- 971,980 ----
        XFASTINT (*e) = i;	/* because this is all we do with i.  */
      }
  
+ #ifdef NEMACS  /* 89.3.10, 90.1.12  by K.Handa */
+   if (kanji_point(XFASTINT(*b)) == 2) XFASTINT(*b)--;
+   if (kanji_point(XFASTINT(*e)) == 2) XFASTINT(*e)++;
+ #endif
    if (!(FirstCharacter <= XINT (*b) && XINT (*b) <= XINT (*e)
          && XINT (*e) <= 1 + NumCharacters))
      args_out_of_range (*b, *e);
***************
*** 1100,1106 ****
    XFASTINT (buffer_defaults.tab_width) = 8;
    buffer_defaults.truncate_lines = Qnil;
    buffer_defaults.ctl_arrow = Qt;
! 
    XFASTINT (buffer_defaults.fill_column) = 70;
    XFASTINT (buffer_defaults.left_margin) = 0;
  
--- 1122,1131 ----
    XFASTINT (buffer_defaults.tab_width) = 8;
    buffer_defaults.truncate_lines = Qnil;
    buffer_defaults.ctl_arrow = Qt;
! #ifdef NEMACS  /* 87.12.9, 89.2.26  by K.Handa */
!   buffer_defaults.kanji_flag = Qt;
!   buffer_defaults.kanji_fileio_code = Qnil;
! #endif
    XFASTINT (buffer_defaults.fill_column) = 70;
    XFASTINT (buffer_defaults.left_margin) = 0;
  
***************
*** 1122,1127 ****
--- 1147,1157 ----
    XFASTINT (buffer_local_flags.read_only) = -1;
    XFASTINT (buffer_local_flags.major_mode) = -1;
    XFASTINT (buffer_local_flags.mode_name) = -1;
+ /* patch for attribute of characters by K.Handa 89.11.21 */
+   XFASTINT (buffer_local_flags.underlined_region) = -1;
+   XFASTINT (buffer_local_flags.inversed_region) = -1;
+ /* end of patch */
+ 
    
    XFASTINT (buffer_local_flags.mode_line_format) = 1;
    XFASTINT (buffer_local_flags.abbrev_mode) = 2;
***************
*** 1136,1141 ****
--- 1166,1175 ----
    XFASTINT (buffer_local_flags.fill_column) = 0x400;
    XFASTINT (buffer_local_flags.left_margin) = 0x800;
    XFASTINT (buffer_local_flags.abbrev_table) = 0x1000;
+ #ifdef NEMACS  /* 88.2.25, 89.12.15  by K.Handa */
+   XFASTINT (buffer_local_flags.kanji_flag) = 0x2000;
+   XFASTINT (buffer_local_flags.kanji_fileio_code) = 0x4000;
+ #endif
  
    Vbuffer_alist = Qnil;
    bf_cur = 0;
***************
*** 1234,1239 ****
--- 1268,1285 ----
      "Default case-fold-search for buffers that do not override it.\n\
  This is the same as (default-value 'case-fold-search).");
  
+ #ifdef NEMACS  /* 87.12.9  by K.Handa */
+   DEFVAR_LISP_NOPRO ("default-kanji-flag",
+ 	      &buffer_defaults.kanji_flag,
+     "Default kanji-flag for buffers that do not override it.\n\
+ This is the same as (default-value 'kanji-flag).");
+ 
+   DEFVAR_LISP_NOPRO ("default-kanji-fileio-code",
+               &buffer_defaults.kanji_fileio_code,
+     "Default kanji-fileio-code for buffers that do not override it.\n\
+ This is the same as (default-value 'kanji-fileio-code).");
+ #endif
+ 
    DEFVAR_PER_BUFFER ("mode-line-format", &bf_cur->mode_line_format, 0);
  
  /* This doc string is too long for cpp; cpp dies.
***************
*** 1260,1265 ****
--- 1306,1312 ----
    %s -- print process status.   %M -- print value of global-mode-string. (obs)\n\
    %p -- print percent of buffer above top of window, or top, bot or all.\n\
    %n -- print Narrow if appropriate.\n\
+   %c -- print kanji code for fileio, input, and display.\n\
    %[ -- print one [ for each recursive editing level.  %] similar.\n\
    %% -- print %.   %- -- print infinitely many dashes.\n\
  Decimal digits after the % specify field width to which to pad.");
***************
*** 1309,1314 ****
--- 1356,1386 ----
  Note that this is overridden by the variable\n\
  truncate-partial-width-windows if that variable is non-nil\n\
  and this buffer is not full-screen width.");
+ 
+ #ifdef NEMACS  /* 87.12.9, 89.3.10  by K.Handa */
+   DEFVAR_PER_BUFFER ("kanji-flag", &bf_cur->kanji_flag,
+     "*non-nil means that this buffer recognizes kanji-code.");
+ 
+   DEFVAR_PER_BUFFER ("kanji-fileio-code", &bf_cur->kanji_fileio_code,
+     "*kanji-code for file and process input/output .\n\
+ 0:EUC/AT&T/DEC  1:Shift-JIS  2:JIS");
+ 
+   Qkanji_fileio_code = intern("kanji-fileio-code");
+ #endif
+ 
+ /* patch for attribute of characters by K.Handa 89.11.21 */
+   DEFVAR_PER_BUFFER ("underlined-region", &bf_cur->underlined_region,
+     "*Underlined region of current buffer.  Should be a list of\n\
+ LENGTH and several numbers of MARKER_i, where MARKER_i indicates\n\
+ underline starting point if 'i' is even and underline ending point\n\
+ if 'i' is odd.  LENGTH is a length of this list.");
+ 
+   DEFVAR_PER_BUFFER ("inversed-region", &bf_cur->inversed_region,
+     "*Inversed region of current buffer.  Should be a list of\n\
+ LENGTH and several numbers of MARKER_i, where MARKER_i indicates\n\
+ inverse starting point if 'i' is even and inverse ending point\n\
+ if 'i' is odd.  LENGTH is a length of this list.");
+ /* end of patch */
  
    DEFVAR_PER_BUFFER ("default-directory", &bf_cur->directory,
      "Name of default directory of current buffer.  Should end with slash.");
diff -arcN emacs-18.55/src/buffer.h nemacs-3.3.2/src/buffer.h
*** emacs-18.55/src/buffer.h	Sun Feb  8 23:35:54 1987
--- nemacs-3.3.2/src/buffer.h	Wed Jun  6 03:18:16 1990
***************
*** 1,3 ****
--- 1,8 ----
+ /* 87.5.1   modified by K.Handa */
+ /* 87.12.9  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.3.10  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.21 modified for attribute of characters by K.Handa */
+ 
  /* Header file for the buffer manipulation primitives.
     Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 24,33 ****
--- 29,45 ----
  #endif /* lint */
  
  
+ #ifdef NEMACS  /* 87.5.1  by K.Handa */
+ #define SetPoint(n)  point = set_point(n)
+ 
+ #define PointRight(n)  point = set_point(point + n)
+ #define PointLeft(n)  point = set_point(point - n)
+ #else  /* not NEMACS */
  #define SetPoint  point =
  
  #define PointRight  point +=
  #define  PointLeft  point -=
+ #endif  /* not NEMACS */
  
  struct buffer_text
    {
***************
*** 153,158 ****
--- 165,178 ----
      Lisp_Object overwrite_mode;
      /* non-nil means abbrev mode is on.  Expand abbrevs automatically. */
      Lisp_Object abbrev_mode;
+ #ifdef NEMACS  /* 87.12.9, 89.3.10  by K.Handa */
+     Lisp_Object kanji_flag;
+     Lisp_Object kanji_fileio_code;
+ #endif
+ /* patch for attribute of characters by K.Handa 89.11.21 */
+     Lisp_Object underlined_region;
+     Lisp_Object inversed_region;
+ /* end of patch */
  };
  
  extern struct buffer *bf_cur;		/* points to the current buffer */
***************
*** 191,196 ****
--- 211,220 ----
     that don't have such names.  */
  
  extern struct buffer buffer_local_symbols;
+ 
+ #ifdef NEMACS  /* 89.3.20  by K.Handa */
+ extern Lisp_Object Qkanji_fileio_code;
+ #endif
  
  /* Some aliases for info about the current buffer.  */
  
diff -arcN emacs-18.55/src/bytecode.c nemacs-3.3.2/src/bytecode.c
*** emacs-18.55/src/bytecode.c	Wed Mar 18 04:15:16 1987
--- nemacs-3.3.2/src/bytecode.c	Wed Jun  6 03:18:16 1990
***************
*** 1,3 ****
--- 1,5 ----
+ /* 90.3.27  modified by toshiki@sm.sony.co.jp */
+ 
  /* Execution of byte code produced by bytecomp.el.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 269,274 ****
--- 271,279 ----
  	     cause disasters.  */
  	  gcpro3.nvars = &TOP - stack - 1;
  	  TOP = Ffuncall (op + 1, &TOP);
+ /* patched by toshiki 90/3/27 */
+ 	  bzero (&TOP+1, (stacke - &TOP) * sizeof (Lisp_Object));
+ /* end of patch */
  	  gcpro3.nvars = XFASTINT (maxdepth);
  	  break;
  
diff -arcN emacs-18.55/src/callproc.c nemacs-3.3.2/src/callproc.c
*** emacs-18.55/src/callproc.c	Thu Jul 20 14:15:50 1989
--- nemacs-3.3.2/src/callproc.c	Wed Jun  6 03:18:15 1990
***************
*** 1,3 ****
--- 1,13 ----
+ /* modified by A.Kato(kato@koudai.cs.titech.junet)  87.7.7 */
+ /* 87.7.7   modified by K.Handa */
+ /* 87.12.10 modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.1.25  modified by K.Handa according to a patch by Mr.Sanewo (88.3.6) */
+ /* 88.5.25  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 88.3.23  modified for Nemacs Ver.3.0 by K.Handa, S.Tomura */
+ /* 89.9.12  modified for Nemacs Ver.3.2 by S.Tomura */
+ /* 90.2.28  modified for Nemacs Ver.3.3.1 by K.Handa
+ 	do GCPRO (proc) before Ffuncall */
+ 
  /* Synchronous subprocess invocation for GNU Emacs.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 42,47 ****
--- 52,63 ----
  #include "commands.h"
  #include "buffer.h"
  #include "paths.h"
+ #ifdef NEMACS  /* 89.2.23, 89.3.20  by K.Handa */
+ #include "kanji.h"
+ #include "process.h"
+ 
+ Lisp_Object just_decided_kanji_process_code;
+ #endif
  
  #define max(a, b) ((a) > (b) ? (a) : (b))
  
***************
*** 238,244 ****
--- 254,295 ----
    {
      register int nread;
  
+ #ifdef NEMACS  /* 87.7.7  by A.Kato, 87.12.10, 88.5.25, 89.2.22 by K.Handa */
+     int kanji = 0, i;
+     unsigned char *name = XSTRING (args[0])->data;
+     Lisp_Object code = just_decided_kanji_process_code;
+     /* 89.9.12 by S. Tomura */
+     if (NULL (code) &&
+ 	EQ (Fboundp (Qfind_kanji_process_code), Qt) ) {
+       Lisp_Object *newargs
+ 	  = (Lisp_Object *) alloca ((sizeof (Lisp_Object *))
+ 				   * ((nargs > 4) ? nargs : 4));
+       if (!newargs) memory_full();
+       newargs[0] = Qinvoke_find_kanji_process_code;
+       newargs[1] = (!XFASTINT(buffer) || NULL(buffer))
+ 	? Qnil
+ 	  : (EQ (buffer, Qt) ? Qt : Fbuffer_name(buffer));
+       newargs[2] = args[0];
+       newargs[3] = Qnil;
+       if (nargs > 4) {
+ 	for (i = 4; i < nargs; i++) newargs[i] = args[i];
+       } else
+ 	nargs = 4;
+       code = Ffuncall (nargs, newargs);
+     } else
+       just_decided_kanji_process_code = Qnil;
+     if (XTYPE(code) != Lisp_Int) code = make_number (NOCONV);
+ 
+   retry:
+     while ((nread =
+ 	    (NULL(code) || XFASTINT(code) == EUC || XFASTINT(code) == NOCONV)
+ 	    ? (nread = read(fd[0], buf, sizeof buf)) ? nread : -1
+ 	    : kanji_read_from_process(fd[0], buf, 0,
+ 				      sizeof buf, &kanji,
+ 				      XFASTINT(code))) > 0)
+ #else  /* not NEMACS */
      while ((nread = read (fd[0], buf, sizeof buf)) > 0)
+ #endif
        {
  	immediate_quit = 0;
  	if (!NULL (buffer))
***************
*** 248,255 ****
  	immediate_quit = 1;
  	QUIT;
        }
-   }
  
    /* Wait for it to terminate, unless it already has.  */
    wait_for_termination (pid);
  
--- 299,309 ----
  	immediate_quit = 1;
  	QUIT;
        }
  
+ #ifdef NEMACS  /* 88.5.25, 89.3.21  by K.Handa */
+     if (!NULL(code) && XFASTINT(code) != EUC && nread == 0) goto retry;
+ #endif
+   }
    /* Wait for it to terminate, unless it already has.  */
    wait_for_termination (pid);
  
***************
*** 275,281 ****
--- 329,339 ----
       int nargs;
       register Lisp_Object *args;
  {
+ #ifdef NEMACS  /* 90.3.1  by K.Handa */
+   Lisp_Object filename_string, start, end;
+ #else
    register Lisp_Object filename_string, start, end;
+ #endif
    char tempfile[20];
  
    strcpy (tempfile, "/tmp/emacsXXXXXX");
***************
*** 284,290 ****
--- 342,382 ----
    filename_string = build_string (tempfile);
    start = args[0];
    end = args[1];
+ #ifdef NEMACS  /* 89.3.8  by K.Handa 89.9.12 by S.Tomura*/
+   {
+     int count = specpdl_ptr - specpdl;
+     unsigned char *name = XSTRING (args[2])->data;
+     Lisp_Object code = Qnil;
+     if ( EQ ( Fboundp (Qfind_kanji_process_code), Qt ) )
+       {
+ 	int nnewargs = (nargs > 6) ? nargs - 2 : 4;
+ 	Lisp_Object *newargs
+ 	  = (Lisp_Object *) alloca ((sizeof (Lisp_Object *)) * nnewargs);
+ 	struct gcpro gcpro1, gcpro2, gcpro3; /* 90.2.28  by K.Handa */
+ 	if (!newargs) memory_full();
+ 	newargs[0] = Qinvoke_find_kanji_process_code;
+ 	newargs[1] = (NULL(args[4]) || !XFASTINT(args[4]))
+ 	  ? Qnil
+ 	    : ((EQ (args[4], Qt)) ? Qt : Fbuffer_name (args[4]));
+ 	newargs[2] = args[2];
+ 	newargs[3] = Qnil;
+ 	if (nargs > 6) {
+ 	  int i;
+ 	  for (i = 6; i < nargs; i++) newargs[i-2] = args[i];
+ 	}
+ 	GCPRO3 (start, end, filename_string); /* 90.2.28  by K.Handa */
+ 	code = Ffuncall (nnewargs, newargs);
+ 	UNGCPRO;		/* 90.2.28  by K.Handa */
+       }
+     if (XTYPE(code) != Lisp_Int) code = make_number (NOCONV);
+     specbind(Qkanji_fileio_code, code);
+ #endif
    Fwrite_region (start, end, filename_string, Qnil, Qlambda);
+ #ifdef NEMACS  /* 89.3.8  by K.Handa */
+     unbind_to (count);
+     just_decided_kanji_process_code = code;
+   }
+ #endif
  
    if (!NULL (args[3]))
      Fdelete_region (start, end);
***************
*** 437,442 ****
--- 529,537 ----
        Vprocess_environment = Fcons (build_string (*envp),
  				    Vprocess_environment);
  #endif /* MAINTAIN_ENVIRONMENT */
+ #ifdef NEMACS  /* 89.3.21  by K.Handa */
+   just_decided_kanji_process_code = Qnil;
+ #endif
  }
  
  syms_of_callproc ()
diff -arcN emacs-18.55/src/cmds.c nemacs-3.3.2/src/cmds.c
*** emacs-18.55/src/cmds.c	Thu Dec 29 13:09:21 1988
--- nemacs-3.3.2/src/cmds.c	Wed Jun  6 03:18:15 1990
***************
*** 1,3 ****
--- 1,8 ----
+ /* 87.6.10  modified by K.Handa */
+ /* 88.1.5   modified for Nemacs Ver.2.0 by K.Handa */
+ /* 90.3.2   modified for Nemacs Ver.3.3.1 by K.Handa
+ 	overwrite mode for Japanese */
+ 
  /* Simple built-in editing commands.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 24,29 ****
--- 29,37 ----
  #include "commands.h"
  #include "buffer.h"
  #include "syntax.h"
+ #ifdef NEMACS  /* 90.3.2  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  Lisp_Object Qkill_forward_chars, Qkill_backward_chars, Vblink_paren_hook;
  
***************
*** 34,39 ****
--- 42,50 ----
    (n)
       Lisp_Object n;
  {
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+   int saved_point = point;
+ #endif
    if (NULL (n))
      XFASTINT (n) = 1;
    else
***************
*** 40,45 ****
--- 51,59 ----
      CHECK_NUMBER (n, 0);
  
    SetPoint (point + XINT (n));
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+   if (point == saved_point &&  n > 0) point += 2;
+ #endif  /* NEMACS */
    if (point < FirstCharacter)
      {
        SetPoint (FirstCharacter);
***************
*** 254,260 ****
--- 268,279 ----
    int hairy = 0;
    Lisp_Object tem;
    register enum syntaxcode synt;
+ #ifdef NEMACS  /* 87.6.10  by K.Handa */
+   register int c = (unsigned char)c1;
+   unsigned char c2 = CharAt (point); /* 90.3.2  by K.Handa */
+ #else
    register int c = c1;
+ #endif
  
    if (!NULL (bf_cur->overwrite_mode)
        && point <= NumCharacters
***************
*** 263,268 ****
--- 282,295 ----
  	  || XINT (bf_cur->tab_width) <= 0
  	  || !((current_column () + 1) % XFASTINT (bf_cur->tab_width))))
      {
+ #ifdef NEMACS  /* 90.3.2  by K.Handa */
+       if (EUC_P(c2)) {
+ 	del_range (point, point + 2);
+ 	c2 = ' ';
+ 	InsCStr (&c2, 1);
+ 	PointLeft (1);
+       } else
+ #endif  /* NEMACS */
        del_range (point, point + 1);
        hairy = 1;
      }
***************
*** 275,281 ****
--- 302,312 ----
        if (!NULL (tem))
  	hairy = 1;
      }
+ #ifdef NEMACS  /* 88.1.15  by K.Handa */
+   if ((c == ' ' || c == '\n' || c >= 0200)
+ #else
    if ((c == ' ' || c == '\n')
+ #endif
        && !noautofill
        && !NULL (bf_cur->auto_fill_hook)
        && current_column () > XFASTINT (bf_cur->fill_column))
diff -arcN emacs-18.55/src/config.h-dist nemacs-3.3.2/src/config.h-dist
*** emacs-18.55/src/config.h-dist	Thu Apr 21 17:18:33 1988
--- nemacs-3.3.2/src/config.h-dist	Wed Jun  6 03:18:41 1990
***************
*** 1,3 ****
--- 1,5 ----
+ /* 90.2.27  modified for Nemacs Ver.3.3.1 by K.Handa */
+ 
  /* GNU Emacs site configuration template file.
     Copyright (C) 1988 Free Software Foundation, Inc.
  
***************
*** 19,25 ****
  and this notice must be preserved on all copies.  */
  
  
- 
  /* Include here a s- file that describes the system type you are using.
     See the file ../etc/MACHINES for a list of systems and
     the names of the s- files to use for them.
--- 21,26 ----
***************
*** 106,111 ****
--- 107,121 ----
  #define PURESIZE 118000
  #endif
  #endif
+ 
+ /* 90.2.27  patch by K.Handa */
+ /* define NEMACS if you want to make Nemacs */
+ #define NEMACS
+ #ifdef NEMACS
+ #include "nconfig.h"
+ #include "puresize.h"
+ #endif
+ /* end of patch */
  
  /* Define HIGHPRI as a negative number
     if you want Emacs to run at a higher than normal priority.
diff -arcN emacs-18.55/src/dispextern.h nemacs-3.3.2/src/dispextern.h
*** emacs-18.55/src/dispextern.h	Thu Dec 11 13:39:55 1986
--- nemacs-3.3.2/src/dispextern.h	Wed Jun  6 03:18:54 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /* 89.2.9   modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.24 modified for attribute of characters by K.Handa */
+ /* Currently supported attributes are underline and inverse. */
+ 
  /* Interface definitions for display code.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 61,66 ****
--- 65,74 ----
      struct display_line *next;	/* Chain for free lines. */
      short   length;		/* the number of valid characters in body */
      char    highlighted;	/* 1 means write this line in standout mode */
+     char    kanji_flag;		/* 1 means the kanji_flag of the
+ 				   buffer of this line is T */
+ /* patch for attribute by K.Handa  89.11.21 */
+     char    attribute[MScreenWidth + 4]; /* attribute of each character */
      char    physical;		/* Mark bit for gc'ing, in update_screen */
      char    body[MScreenWidth + 4];	/* the actual text of the line */
  };
***************
*** 69,71 ****
--- 77,85 ----
   to start output in it at `hpos' (origin 0, may be negative) */
  
  struct display_line *get_display_line (), *new_display_line ();
+ 
+ /* patch for attribute by K.Handa  89.11.21 */
+ #define ATTR_UNDERLINE	1
+ #define ATTR_INVERSE	2
+ extern char *attribute_p;	/* oops! */
+ /* end of patch */
diff -arcN emacs-18.55/src/dispnew.c nemacs-3.3.2/src/dispnew.c
*** emacs-18.55/src/dispnew.c	Sun Aug 13 01:30:37 1989
--- nemacs-3.3.2/src/dispnew.c	Wed Jun  6 03:18:18 1990
***************
*** 1,3 ****
--- 1,9 ----
+ /* 87.5.28  modified by K.Handa */
+ /* 89.3.23  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.24 modified for attribute of characters by K.Handa */
+ /* 90.2.27  modified for Nemacs Ver.3.3 by K.Handa
+ 	Attribute related bugs are fixed in update_line. */
+ 
  /* Newly written part of redisplay code.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 60,65 ****
--- 66,74 ----
  #include "buffer.h"
  #include "window.h"
  #include "commands.h"
+ #ifdef NEMACS  /* 89.2.9  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  #define max(a, b) ((a) > (b) ? (a) : (b))
  #define min(a, b) ((a) < (b) ? (a) : (b))
***************
*** 71,76 ****
--- 80,92 ----
  #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
  #endif
  
+ /* patch for attribute of characters  by K.Handa 89.11.21 */
+ /* Global variable to notify writechars (in x11term.c) the current address
+    of corresponding attribute.
+    What a smart solution! :-( :-( :-( */
+ char *attribute_p;
+ /* end of patch */
+ 
  /* Nonzero means do not assume anything about current
   contents of actual terminal screen */
  
***************
*** 324,330 ****
--- 340,354 ----
        hpos -= line->length;
        line->length += hpos;
        while (--hpos >= 0)
+ /* patch for attribute by K.Handa  89.11.21 */
+ /* original line is
  	*p++ = ' ';
+    and new lines are */
+ 	{
+ 	  line->attribute[p - line->body] = 0;
+ 	  *p++ = ' ';
+ 	}
+ /* end of patch */
      }
  
    DesiredScreen[vpos + 1] = line;
***************
*** 402,407 ****
--- 426,433 ----
  	  if (start > 0)
  	    {
  	      bcopy (l2->body, l1->body, start);
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	      bcopy (l2->attribute, l1->attribute, start);
  	      if (l1->length < start && l1->length < l2->length)
  		l1->length = min (start, l2->length);
  	    }
***************
*** 408,414 ****
--- 434,449 ----
  	  if (l2->length > end && l1->length < l2->length)
  	    {
  	      while (l1->length < end)
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
  		l1->body[l1->length++] = ' ';
+    and new lines are */
+  		{
+ 		  l1->attribute[l1->length] = 0;
+ 		  l1->body[l1->length++] = ' ';
+ 		}
+ 	      bcopy (l2->attribute+end, l1->attribute+end, l2->length-end);
+ /* end of patch */
  	      bcopy (l2->body + end, l1->body + end, l2->length - end);
  	      l1->length = l2->length;
  	    }
***************
*** 444,450 ****
--- 479,494 ----
  	      fin = l2->length;
  	      if (fin > end) fin = end;
  	      while (l1->length < start)
+ /* patch for attribute by K.Handa  89.11.24, 90.2.27 */
+ /* original line is
  		l1->body[l1->length++] = ' ';
+    and new lines are */
+ 		{
+ 		  l1->attribute[l1->length] = 0;
+ 		  l1->body[l1->length++] = ' ';
+ 		}
+ 	      bcopy (l2->attribute+start, l1->attribute+start, fin-start);
+ /* end of patch */
  	      bcopy (l2->body + start, l1->body + start, fin - start);
  	      l1->length = fin;
  	    }
***************
*** 522,527 ****
--- 566,573 ----
    XFASTINT (w->last_modified) = bf_modified;
  
    reassert_line_highlight (0, cursY);
+ /* patch for attribute by K.Handa  89.11.24 */
+   attribute_p = p->attribute + hpos;
    write_chars (p->body + hpos, 1);
    fflush (stdout);
    ++cursX;
***************
*** 788,796 ****
--- 834,850 ----
       int vpos;
  {
    register char *obody, *nbody, *op1, *op2, *np1;
+ /* patch for attribute  by K.Handa 89.11.25 */
+   register char *oattr, *nattr;
    int tem;
    int osp, nsp, m1, m2, olen, nlen;
    int save;
+ #ifdef NEMACS  /* 87.6.9, 89.2.9  by K.Handa*/
+   int flag = 0;
+ 
+ /* to notify write_chars () that the line has Japanese codes */
+   current_kanji_flag = new->kanji_flag;
+ #endif
  
    if (old == new)
      return;
***************
*** 814,824 ****
--- 868,884 ----
      {
        obody = old -> body;
        olen = old->length;
+ /* patch for attribute  by K.Handa 89.11.25 */
+       oattr = old -> attribute;
        if (! old->highlighted)
  	{
  	  /* Note obody[-1] is old->physical, which is always 0 or 1.  */
  	  if (!must_write_spaces)
+ /* patch for attribute  by K.Handa 89.11.25 */
+ /* original line is
  	    while (obody[olen - 1] == ' ')
+    and new line is */
+ 	    while (obody[olen - 1] == ' ' && oattr[olen - 1] == 0)
  	      olen--;
  	}
        else
***************
*** 839,844 ****
--- 899,906 ----
  
    nbody = new -> body;
    nlen = new->length;
+ /* patch for attribute  by K.Handa 89.11.25 */
+   nattr = new -> attribute;
  
    /* Pretend trailing spaces are not there at all,
       unless for one reason or another we must write all spaces.  */
***************
*** 847,853 ****
--- 909,919 ----
    if (! new->highlighted)
      {
        if (!must_write_spaces)
+ /* patch for attribute  by K.Handa 89.11.25, 90.2.27 */
+ /* original line is
  	while (nbody[nlen - 1] == ' ')
+    and new line is */
+ 	while (nbody[nlen - 1] == ' ' && nattr[nlen - 1] == 0)
  	  nlen--;
      }
    else
***************
*** 864,883 ****
--- 930,980 ----
      {
        int i,j;
  
+ #ifdef NEMACS  /* 89.2.27  by K.Handa */
+       /* 89.2.27  by K.Handa suggested by hoshino@star.tt.kubota.junet */
+       int kolen = 0, knlen = 0;
+ #endif
        for (i = 0; i < nlen; i++)
  	{
+ #ifdef NEMACS  /* 89.2.27  by K.Handa */
+ 	  if (i >= olen || nbody[i] != obody[i]
+ /* patch for attribute  by K.Handa 89.11.25 */
+ 	      || nattr[i] != oattr[i]
+ 	      || (nbody[i] & 0x80 && nbody[i+1] != obody[i+1]))
+ #else
  	  if (i >= olen || nbody[i] != obody[i])
+ #endif
  	    {
  	      /* We found a non-matching char.  */
  	      topos (vpos, i);
+ #ifdef NEMACS  /* 89.2.27  by K.Handa */
+ 	      j = i;
+ 	      do {
+ 		if (nbody[j] & 0x80) knlen++; else knlen = 0;
+ 		if (j < olen && obody[j] & 0x80) kolen++; else kolen = 0;
+ 		j++;
+ 	      } while (j < nlen &&
+ 		       (j >= olen || nbody[j] != obody[j]
+ /* patch for attribute  by K.Handa 89.11.25 */
+ 			|| nattr[j] != oattr[j]
+ 			|| knlen & 1 || kolen & 1));
+ 	      j -= i;
+ #else  /* not NEMACS */
  	      for (j = 1; (i + j < nlen &&
  			   (i + j >= olen || nbody[i+j] != obody[i+j]));
  		   j++);
+ #endif  /* not NEMACS */
  	      /* Output this run of non-matching chars.  */ 
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	      attribute_p = nattr + i;
  	      write_chars (nbody + i, j);
  	      i += j - 1;
  	      /* Now find the next non-match.  */
  	    }
+ #ifdef NEMACS  /* 89.2.27  by K.Handa */
+ 	  else
+ 	    if (nbody[i] & 0x80 && i < nlen) i++;
+ #endif
  	}
        /* Clear the rest of the line, or the non-clear part of it.  */
        if (olen > nlen)
***************
*** 895,900 ****
--- 992,999 ----
        if (nlen > nsp)
  	{
  	  topos (vpos, nsp);
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	  attribute_p = nattr + nsp;
  	  write_chars (nbody + nsp, nlen - nsp);
  	}
        return;
***************
*** 905,918 ****
--- 1004,1029 ----
    nbody[nlen] = 0;
  
    /* Compute number of leading blanks in old and new contents.  */
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
    osp = count_blanks (obody);
+    and new line is */
+   osp = count_blanks2 (obody, oattr);
    if (!new->highlighted)
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
      nsp = count_blanks (nbody);
+    and new line is */
+     nsp = count_blanks2 (nbody, nattr);
    else
      nsp = 0;
  
    /* Compute number of matching chars starting with first nonblank.  */
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
    m1 = count_match (obody + osp, nbody + nsp);
+    and new line is */
+   m1 = count_match2 (obody + osp, oattr + osp, nbody + nsp, nattr + nsp);
  
    /* Spaces in new match implicit space past the end of old.  */
    /* A bug causing this to be a no-op was fixed in 18.29.  */
***************
*** 919,925 ****
--- 1030,1040 ----
    if (!must_write_spaces && osp + m1 == olen)
      {
        np1 = nbody + nsp;
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
        while (np1[m1] == ' ')
+    and new line is */
+       while (np1[m1] == ' ' && nattr[nsp+m1] == 0)
  	m1++;
      }
  
***************
*** 933,943 ****
--- 1048,1067 ----
    op1 = obody + olen;
    np1 = nbody + nlen;
    op2 = op1 + m1 - min (olen - osp, nlen - nsp);
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
    while (op1 > op2 && op1[-1] == np1[-1])
+    and new line is */
+   while (op1 > op2 && op1[-1] == np1[-1] && oattr[op1-obody-1] == nattr[np1-nbody-1])
      {
        op1--;
        np1--;
+ #ifdef NEMACS  /* 87.5.28, 89.2.27  by K.Handa  */
+       if (EUC_P((unsigned char)*op1) && *(--op1) != *(--np1)) {
+ 	op1 += 2; break;
      }
+ #endif
+     }
    m2 = obody + olen - op1;
  
    /* Put correct value back in nbody[nlen].
***************
*** 999,1004 ****
--- 1123,1130 ----
  	     going to be "at the margin" after the text is done) */
  	  if (nlen == screen_width)
  	    olen = 0;
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	  attribute_p = new->attribute + nsp + m1;
  	  write_chars (nbody + nsp + m1, nlen - tem);
  #ifdef obsolete
  /* the following code loses disastrously if tem == nlen.
***************
*** 1011,1033 ****
--- 1137,1188 ----
  	  if (nlen == screen_width && fast_clear_end_of_line && olen > nlen)
  	    {
  	      /* m2 must be zero, and tem must equal nsp + m1 */
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	      attribute_p = nattr + tem;
  	      write_chars (nbody + tem, nlen - tem - 1);
  	      clear_end_of_line (olen);
  	      olen = 0;		/* Don't let it be cleared again later */
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	      attribute_p = nattr + nlen - 1;
  	      write_chars (nbody + nlen - 1, 1);
  	    }
  	  else
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
  	    write_chars (nbody + nsp + m1, nlen - tem);
+    and new lines are */
+ 	    {
+ 	      attribute_p = nattr + nsp + m1;
+ 	      write_chars (nbody + nsp + m1, nlen - tem);
+ 	    }
+ /* end of patch */
  #endif
  	}
        else if (nlen > olen)
  	{
+ #ifdef NEMACS  /* 89.2.27  by K.Handa  */
+ 	  int flag = 0, len = olen - tem;
+ 	  char *i = nbody + nsp + m1;
+ 	  
+ 	  while(len--) {
+ 	    if (EUC_P((unsigned char)*i)) flag++; else flag = 0;
+ 	    i++;
+ 	  }
+ 	  if (flag & 1) olen--;
+ #endif  /* NEMACS */
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	  attribute_p = nattr + nsp + m1;
  	  write_chars (nbody + nsp + m1, olen - tem);
+ #ifdef NEMACS  /* 89.2.27  by K.Handa  */
+ 	  if (flag & 1) delete_chars (1);
+ #endif
  	  insert_chars (nbody + nsp + m1 + olen - tem, nlen - olen);
  	  olen = nlen;
  	}
        else if (olen > nlen)
  	{
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	  attribute_p = nattr + nsp + m1;
  	  write_chars (nbody + nsp + m1, nlen - tem);
  	  delete_chars (olen - nlen);
  	  olen = nlen;
***************
*** 1056,1064 ****
--- 1211,1254 ----
  {
    register char *p1 = str1;
    register char *p2 = str2;
+ #ifdef NEMACS  /* 87.5.29, 89.2.27  by K.Handa */
+   register char c;
+   while ((c = *p1++) == *p2++)
+     if (EUC_P((unsigned char)c) && *p1++ != *p2++) {
+       p1--; break;
+     }
+ #else  /* not NEMACS */
    while (*p1++ == *p2++);
+ #endif  /* not NEMACS */
+   return p1 - str1 - 1;
+ }
+ 
+ /* patch for attribute by K.Handa  89.11.24 */
+ count_blanks2 (str, attr)
+      char *str, *attr;
+ {
+   register char *p = str;
+   while (*str++ == ' ' && *attr++ == 0);
+   return str - p - 1;
+ }
+ 
+ count_match2 (str1, attr1, str2, attr2)
+      char *str1, *attr1, *str2, *attr2;
+ {
+   register char *p1 = str1;
+   register char *p2 = str2;
+ #ifdef NEMACS  /* 87.5.29, 89.2.27  by K.Handa */
+   register char c;
+   while ((c = *p1++) == *p2++ && *attr1++ == *attr2)
+     if (EUC_P((unsigned char)c) && *p1++ != *p2++) {
+       p1--; break;
+     }
+ #else  /* not NEMACS */
+   while (*p1++ == *p2++ && *attr1++ == *attr2++);
+ #endif  /* not NEMACS */
    return p1 - str1 - 1;
  }
+ /* end of patch */
  
  DEFUN ("open-termscript", Fopen_termscript, Sopen_termscript,
    1, 1, "FOpen termscript file: ",
diff -arcN emacs-18.55/src/editfns.c nemacs-3.3.2/src/editfns.c
*** emacs-18.55/src/editfns.c	Sat Jul 22 03:21:32 1989
--- nemacs-3.3.2/src/editfns.c	Wed Jun  6 03:18:18 1990
***************
*** 452,462 ****
--- 452,476 ----
    return build_string (tem);
  }
  
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ extern int InsCStr (), insert_before_markers (), insert_after_markers ();
+ /* end of patch */
+ 
  DEFUN ("insert", Finsert, Sinsert, 0, MANY, 0,
    "Any number of args, strings or chars.  Insert them after point, moving point forward.")
    (nargs, args)
       int nargs;
       register Lisp_Object *args;
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ {
+   insert_with_specified_function (InsCStr, nargs, args);
+   return Qnil;
+ }
+ 
+ insert_with_specified_function (func, nargs, args)
+      int (*func)(), nargs;
+      register Lisp_Object *args;
+ /* end of patch */
  {
    register int argnum;
    register Lisp_Object tem;
***************
*** 469,479 ****
--- 483,501 ----
        if (XTYPE (tem) == Lisp_Int)
  	{
  	  str[0] = XINT (tem);
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ /* original line is
  	  InsCStr (str, 1);
+    and new line is */
+ 	  (*func) (str, 1);
  	}
        else if (XTYPE (tem) == Lisp_String)
  	{
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ /* original line is
  	  InsCStr (XSTRING (tem)->data, XSTRING (tem)->size);
+    and new line is */
+ 	  (*func) (XSTRING (tem)->data, XSTRING (tem)->size);
  	}
        else
  	{
***************
*** 481,487 ****
  	  goto retry;
  	}
      }
!   return Qnil;
  }
  
  DEFUN ("insert-before-markers", Finsert_before_markers, Sinsert_before_markers, 0, MANY, 0,
--- 503,510 ----
  	  goto retry;
  	}
      }
! /* patch for point_type_marker by K.Handa 89.11.30 */
! /*  return Qnil; */
  }
  
  DEFUN ("insert-before-markers", Finsert_before_markers, Sinsert_before_markers, 0, MANY, 0,
***************
*** 491,496 ****
--- 514,521 ----
    (nargs, args)
       int nargs;
       register Lisp_Object *args;
+ /* patch for point_type_marker by K.Handa  89.11.30 */
+ /* original lines are
  {
    register int argnum;
    register Lisp_Object tem;
***************
*** 517,522 ****
--- 542,567 ----
      }
    return Qnil;
  }
+    and new lines are */
+ {
+   insert_with_specified_function (insert_before_markers, nargs, args);
+   return Qnil;
+ }
+ /* end of patch */
+ 
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ DEFUN ("insert-after-markers", Finsert_after_markers, Sinsert_after_markers, 0, MANY, 0,
+   "Any number of args, strings or chars.  Insert them after point,\n\
+ moving point forward.  Also, any markers of point_type pointing at\n\
+ the insertion point get relocated to point before the newly inserted text.")
+   (nargs, args)
+      int nargs;
+      register Lisp_Object *args;
+ {
+   insert_with_specified_function (insert_after_markers, nargs, args);
+   return Qnil;
+ }
+ /* end of patch */
  
  DEFUN ("insert-char", Finsert_char, Sinsert_char, 2, 2, 0,
    "Insert COUNT (second arg) copies of CHAR (first arg).\n\
***************
*** 1014,1019 ****
--- 1059,1067 ----
    defsubr (&Schar_after);
    defsubr (&Sinsert);
    defsubr (&Sinsert_before_markers);
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+   defsubr (&Sinsert_after_markers);
+ /* end of patch */
    defsubr (&Sinsert_char);
  
    defsubr (&Suser_login_name);
diff -arcN emacs-18.55/src/emacs.c nemacs-3.3.2/src/emacs.c
*** emacs-18.55/src/emacs.c	Tue Mar 14 06:41:29 1989
--- nemacs-3.3.2/src/emacs.c	Wed Jun  6 03:18:06 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /* 87.6.9   modified by K.Handa */
+ /* 88.1.10  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.6.20  modified for Nemacs Ver.2.1 by K.Handa */
+ 
  /* Fully extensible Emacs, running on Unix, intended for GNU.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 325,330 ****
--- 329,337 ----
  
    if (!initialized)
      {
+ #ifdef NEMACS	/* 89.7.26  by K.Handa */
+       init_kanji ();
+ #endif
        init_alloc_once ();
        init_obarray ();
        init_eval_once ();
***************
*** 431,436 ****
--- 438,456 ----
        SYMS_MACHINE;
  #endif
  
+ #ifdef NEMACS  /* 87.6.8  by K.Handa */
+       syms_of_kanji ();
+ #ifdef EGG
+ #ifdef WNN3
+       syms_of_wnn ();
+ #else  /* not WNN3 */
+ #ifdef WNN4V3
+       syms_of_wnn ();
+ #endif  /* WNN4V3 */
+ #endif  /* not WNN3 */
+ #endif  /* EGG */
+ #endif  /* NEMACS */
+ 
        keys_of_casefiddle ();
        keys_of_cmds ();
        keys_of_buffer ();
***************
*** 494,499 ****
--- 514,528 ----
  	      NULL (answer)))
  	return Qnil;
  #endif /* subprocesses */
+ #ifdef EGG
+ #ifdef WNN3
+       wnn_exit();
+ #else  /* not WNN3 */
+ #ifdef WNN4V3
+       wnn_exit();
+ #endif
+ #endif /* not WNN3 */
+ #endif /* EGG */
      }
  
  #ifdef subprocesses
diff -arcN emacs-18.55/src/fileio.c nemacs-3.3.2/src/fileio.c
*** emacs-18.55/src/fileio.c	Wed Jul  5 10:00:25 1989
--- nemacs-3.3.2/src/fileio.c	Wed Jun  6 03:18:19 1990
***************
*** 1,3 ****
--- 1,11 ----
+ /* 87.4.29  modified by K.Handa */
+ /* 87.12.10 modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.3.23  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.9.12  modified for Nemacs Ver.3.2 by S.Tomura */
+ /* 89.12.29 modified for Nemacs Ver.3.3.1 by S.Tomura */
+ /* 90.2.28  modified for Nemacs Ver.3.3.1 by abe@sunrise.hallab.co.jp
+ 	do GCPRO (filename) before Ffuncall */
+ 
  /* File IO for GNU Emacs.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 64,69 ****
--- 72,81 ----
  #include <netio.h>
  #include <errnet.h>
  #endif
+ #ifdef NEMACS  /* 87.6.8  by K.Handa */
+ #include "kanji.h"
+ #include "syntax.h"		/* 89.11.17  by K.Handa */
+ #endif
  
  #define min(a, b) ((a) < (b) ? (a) : (b))
  #define max(a, b) ((a) > (b) ? (a) : (b))
***************
*** 1460,1465 ****
--- 1472,1482 ----
    close (XFASTINT (fd));
  }
  
+ #ifdef NEMACS /* 89.9.1 by S.Tomura */
+ Lisp_Object Qfind_kanji_file_input_code;
+ Lisp_Object Qinvoke_find_kanji_file_input_code;
+ #endif
+ 
  DEFUN ("insert-file-contents", Finsert_file_contents, Sinsert_file_contents,
    1, 2, 0,
    "Insert contents of file FILENAME after point.\n\
***************
*** 1476,1481 ****
--- 1493,1501 ----
    register int size = 0;
    register int i;
    int count = specpdl_ptr - specpdl;
+ #ifdef NEMACS /* 89.1.10  by K.Handa */
+   unsigned char *saved_p;
+ #endif
  
    if (!NULL (bf_cur->read_only))
      Fbarf_if_buffer_read_only();
***************
*** 1514,1519 ****
--- 1534,1543 ----
    if (bf_gap < st.st_size)
      make_gap (st.st_size);
      
+ #ifdef NEMACS /* 88.1.10  by K.Handa */
+   saved_p = bf_p1 + bf_s1 + 1;
+ #endif
+ 
    size = 0;
    while ((i = read (fd, bf_p1 + bf_s1 + 1, st.st_size - size)) > 0)
      {
***************
*** 1523,1528 ****
--- 1547,1590 ----
        size += i;
      }
  
+ #ifdef NEMACS /* 89.9.1  by S. Tomura */
+   if (!NULL (bf_cur->kanji_flag) &&
+       EQ(Fboundp (Qfind_kanji_file_input_code), Qt)) {
+     Lisp_Object code, args[5];
+     int saved_s1 = bf_s1;
+     struct gcpro gcpro1;	/* 90.2.28  patch by S.Abe */
+     code = Qnil; 
+     args[0] = Qinvoke_find_kanji_file_input_code;
+     args[1] = filename ;
+     args[2] = visit ;
+     args[3] = make_number ( point );
+     args[4] = make_number ( point + size );
+     GCPRO1 (filename);		/* 90.2.28  patch by S.Abe */
+     code = Ffuncall (5, args);
+     UNGCPRO;			/* 90.2.28  patch by S.Abe */
+     if (bf_s1 != saved_s1) move_gap(saved_s1);
+     if (XTYPE(code) != Lisp_Int) code = make_number ( NOCONV );
+ 
+     switch (XFASTINT (code)) {
+     case JIS:
+       {
+ 	int reduced_size =
+ 	  size - convert_kanji_code(size, saved_p, saved_p, JIS, EUC);
+ 	bf_s1 -= reduced_size;
+ 	bf_gap += reduced_size;
+ 	bf_p2 += reduced_size;
+ 	size -= reduced_size;
+       }
+       break;
+     case Shift_JIS:
+       convert_kanji_code(size, saved_p, saved_p, Shift_JIS, EUC);
+       break;
+     default:			/* EUC */
+       break;
+     }
+   }
+ #endif /* NEMACS */
+ 
    if (size > 0)
      bf_modified++;
    record_insert (point, size);
***************
*** 1561,1566 ****
--- 1623,1633 ----
    return Fcons (filename, Fcons (make_number (size), Qnil));
  }
  
+ #ifdef NEMACS /* 89.9.1 by S.Tomura*/
+ Lisp_Object Qfind_kanji_file_output_code;
+ Lisp_Object Qinvoke_find_kanji_file_output_code;
+ #endif
+ 
  DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 5,
    "r\nFWrite region to file: ",
    "Write current region into specified file.\n\
***************
*** 1696,1701 ****
--- 1763,1792 ----
    failure = 0;
    if (XINT (start) != XINT (end))
      {
+ #ifdef NEMACS /* 89.9.1, 89.12.29  by S. Tomura */
+       Lisp_Object savep = Qnil;
+       Lisp_Object kanji_fileio_code;
+   if (!NULL (bf_cur->kanji_flag) &&
+       EQ(Fboundp(Qfind_kanji_file_output_code),Qt)) {
+     Lisp_Object code, args[6];
+     struct gcpro gcpro1;	/* patch by S.Abe */
+     code = Qnil; 
+     args[0] = Qinvoke_find_kanji_file_output_code;
+     args[1] = start;
+     args[2] = end; 
+     args[3] = filename;
+     args[4] = append;
+     args[5] = visit;
+     GCPRO1 (filename);		/* patch by S.Abe */
+     code = Ffuncall (6, args);
+     UNGCPRO;			/* patch by S.Abe */
+     if (XTYPE(code) != Lisp_Int) code = make_number ( NOCONV );
+     savep = Qt;
+     kanji_fileio_code = bf_cur->kanji_fileio_code;
+     bf_cur->kanji_fileio_code = code;
+   }
+ #endif /* NEMACS */
+ 
        if (XINT (start) - 1 < bf_s1)
  	{
  	  register int end1 = XINT (end);
***************
*** 1710,1715 ****
--- 1801,1810 ----
  	  tem = max (tem, bf_s1 + 1);
  	  failure = 0 > e_write (fd, &CharAt (tem), XINT (end) - tem);
  	}
+ #ifdef NEMACS /* 89.9.3 by S. Tomura */
+       if (EQ(savep, Qt)) 
+ 	bf_cur->kanji_fileio_code = kanji_fileio_code;
+ #endif /* NEMACS */
      }
  
  #ifndef USG
***************
*** 1796,1802 ****
--- 1891,2005 ----
       int fd;
       register char *addr;
       register int len;
+ #ifdef NEMACS /* 88.2.29, 89.2.27  by K.Handa */
+ /* Big change for handling selective_display. */
  {
+   unsigned char **buf;
+   int maxidx = 0;
+   int result = 0, i, idx = 0;
+   register unsigned char *p = (unsigned char *)addr;
+   register unsigned char *pend = (unsigned char *)addr + len;
+   unsigned char *buf2;  /* 89.2.27  by K.Handa */
+ 
+   if (EQ (bf_cur->selective_display, Qt)) {
+     if ((buf = (unsigned char **)malloc((maxidx = 256) * sizeof p))
+ 	== (unsigned char **)0)
+       memory_full ();
+     while (p < pend) {
+       if (*p == '\015') {
+ 	*p = '\n';
+ 	buf[idx++] = p;
+ 	if (idx >= maxidx) {
+ 	  maxidx += 256;
+ 	  if ((buf = (unsigned char **)realloc(buf, (maxidx * sizeof p)))
+ 	      == (unsigned char **)0)
+ 	    memory_full();
+ 	}
+       }
+       p++;
+     }
+   }
+ 
+ /* 89.2.27, 89.11.17  patch by K.Handa */
+   if (!NULL (bf_cur->kanji_flag)
+       && !NULL (bf_cur->kanji_fileio_code)
+       && XFASTINT (bf_cur->kanji_fileio_code) != EUC
+       && XFASTINT (bf_cur->kanji_fileio_code) != NOCONV) {
+ 				/* We needs code conversion. */
+     unsigned char *q = (unsigned char *)kanji_work_area;
+     unsigned char *qend = q + KANJI_WORK_SIZE - 9;
+     unsigned char c1, c2;
+     int kflag = 0;
+ 
+     p = (unsigned char *)addr;
+     pend--;
+     switch (XFASTINT(bf_cur->kanji_fileio_code)) {
+     case JIS:
+       while (p < pend) {
+ 	if (q >= qend) {
+ 	  result = (write(fd, kanji_work_area, (char *)q - kanji_work_area)
+ 		    == (char *)q - kanji_work_area) ? 0 : -1;
+ 	  if (result < 0) break;
+ 	  q = (unsigned char *)kanji_work_area;
+ 	}
+ 	if (kflag) {
+ 	  if (JCODEP(p)) {
+ 	    *q++ = *p++ & 0x7f; *q++ = *p++ & 0x7f;
+ 	  } else {
+ 	    *q++ = ESC_CODE; *q++ = '('; *q++ = to_ascii_fileio;
+ 	    *q++ = *p++;
+ 	    kflag = 0;
+ 	  }
+ 	} else {
+ 	  if (JCODEP(p)) {
+ 	    *q++ = ESC_CODE; *q++ = '$'; *q++ = to_kanji_fileio;
+ 	    *q++ = *p++ & 0x7f; *q++ = *p++ & 0x7f;
+ 	    kflag = 1;
+ 	  } else {
+ 	    *q++ = *p++;
+ 	  }
+ 	}
+       }
+       if (kflag) {
+ 	*q++ = ESC_CODE; *q++ = '('; *q++ = to_ascii_fileio;
+       }
+       break;
+     case Shift_JIS:
+       while (p < pend) {
+ 	if (q >= qend) {
+ 	  result = (write(fd, kanji_work_area, (char *)q - kanji_work_area)
+ 		    == (char *)q - kanji_work_area) ? 0 : -1;
+ 	  if (result < 0) break;
+ 	  q = (unsigned char *)kanji_work_area;
+ 	}
+ 	if (JCODEP(p)) {
+ 	  c1 = *p++; c2 = *p++;
+ 	  E2S (c1, c2, *q++, *q++);
+ 	} else {
+ 	  *q++ = *p++;
+ 	}
+       }
+       break;
+     }
+     if (result >= 0) {
+       if (p == pend) *q++ = *p++;
+       result = (write(fd, kanji_work_area, (char *)q - kanji_work_area)
+ 		== (char *)q - kanji_work_area)
+ 		? 0 : -1;
+     }
+   } else
+     result = (write (fd, addr, len) == len) ? 0 : -1;
+ /* end of patch */
+ 
+   if (EQ (bf_cur->selective_display, Qt)) {
+     for (i=0; i<idx; i++) *buf[i] = '\015';
+     free(buf);
+   }
+ 
+   return result;
+ }
+ #else /* not NEMACS */
+ {
    char buf[16 * 1024];
    register char *p, *end;
  
***************
*** 1824,1829 ****
--- 2027,2033 ----
      }
    return 0;
  }
+ #endif /* not NEMACS */
  
  DEFUN ("verify-visited-file-modtime", Fverify_visited_file_modtime,
    Sverify_visited_file_modtime, 1, 1, 0,
***************
*** 2126,2131 ****
--- 2330,2346 ----
    staticpro (&Qfile_error);
    Qfile_already_exists = intern("file-already-exists");
    staticpro (&Qfile_already_exists);
+ 
+ #ifdef NEMACS /* 89.9.1 by S.Tomura*/
+   Qfind_kanji_file_input_code = intern ("find-kanji-file-input-code");
+   staticpro (&Qfind_kanji_file_input_code);
+   Qinvoke_find_kanji_file_input_code = intern ("invoke-find-kanji-file-input-code");
+   staticpro (&Qinvoke_find_kanji_file_input_code);
+   Qfind_kanji_file_output_code = intern ("find-kanji-file-output-code");
+   staticpro (&Qfind_kanji_file_output_code);
+   Qinvoke_find_kanji_file_output_code = intern ("invoke-find-kanji-file-output-code");
+   staticpro (&Qinvoke_find_kanji_file_output_code);
+ #endif
  
    Fput (Qfile_error, Qerror_conditions,
  	Fcons (Qfile_error, Fcons (Qerror, Qnil)));
diff -arcN emacs-18.55/src/indent.c nemacs-3.3.2/src/indent.c
*** emacs-18.55/src/indent.c	Tue Aug 16 11:51:14 1988
--- nemacs-3.3.2/src/indent.c	Wed Jun  6 03:18:37 1990
***************
*** 1,3 ****
--- 1,14 ----
+ /* 87.4.16  modified by K.Handa */
+ /* 87.7.12  modified by K.Handa */
+ /* 87.12.10 modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.5.30  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.3.10  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.9.7   modified for Nemacs Ver.3.2 by K.Handa */
+ /* 89.12.23 modified for Nemacs Ver.3.2.3 by K.Handa
+ 	In compute_motion, fixed a bug of handling truncated lines. */
+ /* 90.4.10  modified for Nemacs Ver.3.3.2 by K.Handa
+ 	Make compatible with original when kanji-flag is off. */
+ 
  /* Indentation functions.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 26,31 ****
--- 37,45 ----
  #include "window.h"
  #include "termchar.h"
  #include "termopts.h"
+ #ifdef NEMACS  /* 88.5.30  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  #define CR '\015'
  
***************
*** 68,73 ****
--- 82,90 ----
    register int post_tab;
    register int tab_width = XINT (bf_cur->tab_width);
    int ctl_arrow = !NULL (bf_cur->ctl_arrow);
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+   int kflag = !NULL(bf_cur->kanji_flag);
+ #endif
  
    if (point == last_known_column_point
        && bf_modified == last_known_column_modified)
***************
*** 95,100 ****
--- 112,124 ----
  	{
  	  col++;
  	}
+ #ifdef NEMACS  /* 87.5.1  by K.Handa */
+ /* modified by K.Handa  88.5.30 */
+       else if (kflag && EUC_P(c))
+ 	{
+ 	  col++;
+ 	}
+ #endif  /* NEMACS */
        else if (c == '\n')
  	break;
        else if (c == '\r' && EQ (bf_cur->selective_display, Qt))
***************
*** 232,237 ****
--- 256,264 ----
    register int end = NumCharacters;
    register int tab_width = XINT (bf_cur->tab_width);
    register int ctl_arrow = !NULL (bf_cur->ctl_arrow);
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+   int kflag = !NULL(bf_cur->kanji_flag);
+ #endif
  
    Lisp_Object val;
  
***************
*** 260,271 ****
--- 287,305 ----
  	}
        else if (ctl_arrow && (c < 040 || c == 0177))
          col++;
+ #ifndef NEMACS  /* 89.9.7, 90.4.10  by K.Handa */
        else if (c < 040 || c >= 0177)
+ #else
+       else if (c < 040 || (c >= 0177 && !(kflag && EUC_P(c))))
+ #endif
          col += 3;
      }
  
    SetPoint (pos);
  
+ #ifdef NEMACS  /* 87.7.15  by K.Handa */
+   col += point - pos;
+ #endif
    last_known_column = col;
    last_known_column_point = point;
    last_known_column_modified = bf_modified;
***************
*** 307,312 ****
--- 341,349 ----
    register int c;
    register int tab_width = XFASTINT (bf_cur->tab_width);
    register int ctl_arrow = !NULL (bf_cur->ctl_arrow);
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+   int kflag = !NULL(bf_cur->kanji_flag);
+ #endif
    int selective
      = XTYPE (bf_cur->selective_display) == Lisp_Int
        ? XINT (bf_cur->selective_display)
***************
*** 320,325 ****
--- 357,372 ----
        c = CharAt (pos);
        if (c >= 040 && c < 0177)
  	cpos++;
+ #ifdef NEMACS  /* 87.5.1  by K.Handa */
+ /* modified by K.Handa  87.7.15 */
+ /* modified by K.Handa  88.5.30, 89.3.10 */
+       else if (kflag && EUC_P(c)
+ 	       && pos < NumCharacters && EUC_P(CharAt(pos+1)))
+ 	{
+ 	  cpos += 2;
+ 	  pos++;
+ 	}
+ #endif  /* NEMACS */
        else if (c == '\t')
  	{
  	  cpos += tab_width
***************
*** 394,399 ****
--- 441,470 ----
  	    }
  
  	}
+ #ifdef NEMACS  /* 87.7.12  by K.Handa */
+ /* 88.5.30, 89.3.10, 89.12.23  modified by K.Handa */
+       else if (kflag
+ 	       && HPOS (cpos) == width - 1
+ 	       && pos < NumCharacters - 1
+ 	       && EUC_P(CharAt (pos+1)) && EUC_P(CharAt (pos+2)))
+ 	{
+ 	  if (cpos >= target)
+ 	    break;
+ 	  if (hscroll
+ 	      || (truncate_partial_width_windows
+ 		  && width + 1 < screen_width)
+ 	      || !NULL (bf_cur->truncate_lines))
+ 	    {
+ 	      while (pos < to && CharAt(pos) != '\n') pos++;
+ 	      pos--;
+ 	    }
+ 	  else
+ 	    {
+ 	      cpos += (1 << SHORTBITS) - (width - 1);
+ 	      tab_offset += (width - 1);
+ 	    }
+ 	}
+ #endif
      }
  
    val_compute_motion.bufpos = pos;
diff -arcN emacs-18.55/src/insdel.c nemacs-3.3.2/src/insdel.c
*** emacs-18.55/src/insdel.c	Fri Feb  5 01:59:34 1988
--- nemacs-3.3.2/src/insdel.c	Wed Jun  6 03:18:38 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 87.5.1   modified by K.Handa */
+ /* 87.12.10 modified for Nemacs Ver.2.0 by K.Handa */
+ 
  /* Buffer insertion/deletion and gap motion for GNU Emacs.
     Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 164,169 ****
--- 167,180 ----
  
  adjust_markers (from, to, amount)
       register int from, to, amount;
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ {
+   adjust_markers2 (from, to, amount, MARKER_ALL_TYPE);
+ }
+ 
+ adjust_markers2 (from, to, amount, marker_type)
+      register int from, to, amount, marker_type;
+ /* end of patch */
  {
    Lisp_Object marker;
    register struct Lisp_Marker *m;
***************
*** 177,190 ****
--- 188,207 ----
        mpos = m->bufpos;
        if (amount > 0)
  	{
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ 	  if (m->type & marker_type)
  	  if (mpos > to && mpos < to + amount)
  	    mpos = to + amount;
  	}
        else
  	{
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ 	  if (m->type & marker_type)
  	  if (mpos > from + amount && mpos <= from)
  	    mpos = from + amount;
  	}
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+       if (m->type & marker_type)
        if (mpos > from && mpos <= to)
  	mpos += amount;
        if (m->bufpos != mpos)
***************
*** 253,258 ****
--- 270,286 ----
  /* Insert a string of specified length before point */
  
  InsCStr (string, length)
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+      register unsigned char *string;
+      register length;
+ {
+   register int opoint = point;
+   InsCStr2 (string, length);
+   adjust_markers2 (opoint - 1, opoint, length, MARKER_POINT_TYPE);
+ }
+ 
+ InsCStr2 (string, length)
+ /* end of patch */
       register unsigned char *string;
       register length;
  {
***************
*** 285,293 ****
--- 313,334 ----
       register int length;
  {
    register int opoint = point;
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ /* original line is
    InsCStr (string, length);
+    and new line is */
+   InsCStr2 (string, length);
    adjust_markers (opoint - 1, opoint, length);
  }
+ 
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ insert_after_markers (string, length)
+      unsigned char *string;
+      register int length;
+ {
+   InsCStr2 (string, length);
+ }
+ /* end of patch */
  
  /* Delete characters in current buffer
    from `from' up to (but not incl) `to' */
***************
*** 302,307 ****
--- 343,352 ----
      from = FirstCharacter;
    if (to > NumCharacters)
      to = NumCharacters + 1;
+ #ifdef NEMACS  /* 87.5.1, 89.3.10  by K.Handa */
+   if (kanji_point (from) == 2) from--;
+   if (kanji_point (to) == 2) to++;
+ #endif
  
    if ((numdel = to - from) <= 0)
      return;
diff -arcN emacs-18.55/src/kanji.c nemacs-3.3.2/src/kanji.c
*** emacs-18.55/src/kanji.c	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/src/kanji.c	Wed Jun  6 03:19:19 1990
***************
*** 0 ****
--- 1,758 ----
+ /* Fundamental subroutines for handling Japanese code in Nemacs.
+    Coded by K.Handa, Electrotechnical Lab. (handa@elt.go.jp)
+ 
+ 
+    This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA. */
+ 
+ /* 87.6.7   created by K.Handa */
+ /* 87.7.12  modified by K.Handa */
+ /* 87.12.9  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.5.19  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.2.22  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.9.3   modified by S. Tomura */
+ /* 89.12.23 modified for Nemacs Ver.3.2.3 by K.Handa
+ 	'kanji_read_from_process' handles invalid kanji sequence correctly. */
+ /* 90.1.26  modified for Nemacs Ver.3.3.1 by nomura@ws.sony.co.jp
+ 	kanji-char-after returns correct value when pointed the 2nd char. */
+ 
+ #include <stdio.h>
+ 
+ #include "config.h"
+ #undef NULL
+ #include "lisp.h"
+ #include "buffer.h"
+ #include "syntax.h"
+ #include "kanji.h"
+ 
+ Lisp_Object VNEMACS, VEGG, VWNN3, VWNN4V3, VWNN4;
+ 
+ int kanji_code_min;
+ int kanji_code_max;
+ int kanji_input_code;
+ int kanji_display_code;
+ int default_kanji_process_code;
+ int to_kanji_display;
+ int to_ascii_display;
+ int to_kanji_fileio;
+ int to_ascii_fileio;
+ int to_kanji_process;
+ int to_ascii_process;
+ Lisp_Object Qkanji_self_insert;
+ int kanji_JIS_flag;
+ int current_kanji_flag;
+ unsigned char jcode_table[256];
+ 
+ DEFUN ("jcode-type", Fkanji_point, Skanji_point, 1, 2, 0,
+   "Return the type of character code at POS.\n\
+ 0: not Jcode, 1: 1st char of Jcode, 2: 2nd char of Jcode.\n\
+ If POS is out of range, the value is NIL.\n\
+ If POS is surely at a correct character boundary,\n\
+ you can give an optional non-NIL arguments for speed-up.")
+   (pos, onboundary)
+      register Lisp_Object pos, onboundary;
+ {
+   register Lisp_Object type;
+   register int n = XINT (pos);
+   CHECK_NUMBER (pos, 0);
+   if (n < FirstCharacter || n > NumCharacters) return Qnil;
+   XFASTINT (type) = NULL(onboundary) ? kanji_point(n) : JCODE(CharAt (n));
+   return type;
+ }
+ 
+ kanji_point(p)
+      register int p;
+ {
+   register int start = p;
+ 
+   if (p <= NumCharacters && !NULL(bf_cur->kanji_flag) && JCODE(CharAt (p))) {
+     p--;
+     while (p >= FirstCharacter && JCODE(CharAt (p))) p--;
+     return ((start - p)%2 ? 1 : 2);
+   } else
+     return 0;
+ }
+ 
+ set_point(np)
+      int np;	/* new point */
+ {
+   if (NULL (bf_cur->kanji_flag)) return np;
+   if (kanji_point(np) == 2) np--;  /* 89.3.10 patch by K.Handa */
+   return np;
+ }
+ 
+ /* 89.3.1  patch by K.Handa */
+ DEFUN ("kanji-char-after", Fkanji_char_after, Skanji_char_after, 1, 1, 0,
+   "One arg, POS, a number.  Return the euc code of kanji character\n\
+ in the current buffer at position POS.\n\
+ If the character is not kanji, return normal code of that charcter\n\
+ If POS is out of range, the value is NIL.")
+   (pos)
+      Lisp_Object pos;
+ {
+   register Lisp_Object val;
+   register int n = XINT (pos);
+   CHECK_NUMBER (pos, 0);
+   if (n < FirstCharacter || n > NumCharacters) return Qnil;
+ 
+   switch (kanji_point(n)) {
+   case 0:
+     XFASTINT (val) = CharAt (n);
+     break;
+   case 1:
+     if (n > NumCharacters) return Qnil;
+     XFASTINT (val) = (CharAt (n) << 8) | CharAt (n+1);
+     break;
+   case 2:
+     if (n < FirstCharacter) return Qnil;
+     XFASTINT (val) = (CharAt (n-1) << 8) | CharAt (n); /* 90.1.26 */
+     break;
+   }
+   return val;
+ }
+ 
+ DEFUN ("kanji-delete-region", Fkanji_delete_region, Skanji_delete_region,
+   2, 2, "r",
+   "Delete the text between point and mark.\n\
+ If kanji-flag is T and point or mark is in the midst of kanji character,\n\
+ nondeleted half of 2 byte code is replaced with a space.\n\
+ When called from a program, expects two arguments,\n\
+ character numbers specifying the stretch to be deleted.")
+   (b, e)
+      Lisp_Object b, e;
+ {
+ /* 89.9.7 by K.Handa */
+   int beg, end, spaces = 0, saved_p;
+ 
+   validate_region(&b, &e);
+   beg = XFASTINT (b); end = XFASTINT (e);
+   if (!NULL(bf_cur->kanji_flag) && beg != end) {
+     if (kanji_point (beg) == 2) { beg--; spaces++;}
+     if (kanji_point (end) == 2) { end++; spaces++;}
+   }
+   del_range(beg, end);
+   if (spaces) {
+     saved_p = point;
+     SetPoint (beg);
+     InsCStr ("  ", spaces);
+     SetPoint (saved_p);
+   }
+   return Qnil;
+ }
+ /* end of patch */
+ 
+ s2e(n, sbuf, ebuf)
+      int n;
+      unsigned char *sbuf, *ebuf;
+ {
+   unsigned char *endp = sbuf + n - 1;
+   unsigned char *startp = ebuf;
+   unsigned char i1, i2;
+ 
+   while (sbuf < endp) {
+     if (Shift_JIS_P(*sbuf)) {
+       i1 = *sbuf++; i2 = *sbuf++;
+       S2E (i1, i2, *ebuf++, *ebuf++);
+     } else
+       *ebuf++ = *sbuf++;
+   }
+   if (sbuf == endp) *ebuf++ = *sbuf++;
+   return (ebuf - startp);
+ }
+ 
+ e2s(n, ebuf, sbuf)
+      int n;
+      unsigned char *ebuf, *sbuf;
+ {
+   unsigned char *endp = ebuf + n - 1;
+   unsigned char *startp = sbuf;
+   unsigned char i1, i2;
+ 
+   while (ebuf < endp) {
+     if (EUC_P(*ebuf)) {
+       i1 = *ebuf++; i2 = *ebuf++;
+       E2S (i1, i2, *sbuf++, *sbuf++);
+     } else
+ 	*sbuf++ = *ebuf++;
+   }
+   if (ebuf == endp) *sbuf++ = *ebuf++;
+   return (sbuf - startp);
+ }
+ 
+ j2e(n, jbuf, ebuf)
+      int n;
+      unsigned char *jbuf, *ebuf;
+ {
+   unsigned char *endp = jbuf + n - 2;
+   unsigned char *startp = ebuf;
+   int kanji = 0;
+ 
+   while (jbuf < endp) {
+     if (to_kanji(jbuf)) {
+       kanji = 1; jbuf += 3;
+     } else if (to_ascii(jbuf)) {
+       kanji = 0; jbuf += 3;
+     } else if (kanji && JIS_P(*jbuf) && JIS_P(*(jbuf + 1)) ) {
+       *ebuf++ = *jbuf++ | 0x80;
+       *ebuf++ = *jbuf++ | 0x80;
+     } else
+       *ebuf++ = *jbuf++;
+   }
+   if (jbuf == endp) {
+     if (kanji && JIS_P(*jbuf) && JIS_P(*(jbuf + 1)) ) {
+       *ebuf++ = *jbuf++ | 0x80;
+       *ebuf++ = *jbuf++ | 0x80;
+     } else {
+       *ebuf++ = *jbuf++;
+       *ebuf++ = *jbuf++;
+     }
+   } else if (jbuf == endp + 1)
+     *ebuf++ = *jbuf++;
+   return (ebuf - startp);
+ }
+ 
+ e2j(n, ebuf, jbuf, to_kanji_code, to_ascii_code)
+      int n;
+      unsigned char *ebuf, *jbuf, to_kanji_code, to_ascii_code;
+ {
+   unsigned char *endp = ebuf + n - 1;
+   unsigned char *startp = jbuf;
+   int kanji = 0;
+ 
+   while (ebuf < endp) {
+     if (kanji) {
+       if (EUC_P(*ebuf)) {
+ 	*jbuf++ = *ebuf++ & 0x7f;
+ 	*jbuf++ = *ebuf++ & 0x7f;
+       } else {
+ 	*jbuf++ = ESC_CODE; *jbuf++ = '('; *jbuf++ = to_ascii_code;
+ 	*jbuf++ = *ebuf++;
+ 	kanji = 0;
+       }
+     } else {
+       if (EUC_P(*ebuf)) {
+ 	*jbuf++ = ESC_CODE; *jbuf++ = '$'; *jbuf++ = to_kanji_code;
+ 	*jbuf++ = *ebuf++ & 0x7f;
+ 	*jbuf++ = *ebuf++ & 0x7f;
+ 	kanji = 1;
+       } else
+ 	*jbuf++ = *ebuf++;
+     }
+   }
+   if (kanji) {
+     *jbuf++ = ESC_CODE; *jbuf++ = '('; *jbuf++ = to_ascii_code;
+   }
+   if (ebuf == endp) *jbuf++ = *ebuf++;
+   return (jbuf - startp);
+ }
+ 
+ s2j(n, buf1, buf2, to_kanji_code, to_ascii_code)
+      int n;
+      unsigned char *buf1, *buf2, to_kanji_code, to_ascii_code;
+ {
+   unsigned char *endp = buf1 + n - 1, *startp = buf2, i1, i2;
+   int kanji = 0;
+ 
+   while (buf1 < endp) {
+     if (kanji) {
+       if (Shift_JIS_P(*buf1)) {
+ 	i1 = *buf1++; i2 = *buf1++;
+ 	S2J(i1, i2, *buf2++, *buf2++);
+       } else {
+ 	*buf2++ = ESC_CODE; *buf2++ = '('; *buf2++ = to_ascii_code;
+ 	*buf2++ = *buf1++;
+ 	kanji = 0;
+       }
+     } else {
+       if (Shift_JIS_P(*buf1)) {
+ 	*buf2++ = ESC_CODE; *buf2++ = '$'; *buf2++ = to_kanji_code;
+ 	i1 = *buf1++; i2 = *buf1++;
+ 	S2J(i1, i2, *buf2++, *buf2++);
+ 	kanji = 1;
+       } else
+ 	*buf2++ = *buf1++;
+     }
+   }
+   if (kanji) {
+     *buf2++ = ESC_CODE; *buf2++ = '('; *buf2++ = to_ascii_code;
+   }
+   if (buf2 == endp) *buf2++ = *buf1++;
+   return (buf2 - startp);
+ }
+ 
+ j2s(n, buf1, buf2)
+      int n;
+      unsigned char *buf1, *buf2;
+ {
+   unsigned char *endp = buf1 + n - 2, *startp = buf2, i1,i2;
+   int kanji = 0;
+ 
+   while (buf1 < endp) {
+     if (to_kanji(buf1)) {
+       kanji = 1; buf1 += 3;
+     } else if (to_ascii(buf1)) {
+       kanji = 0; buf1 += 3;
+     } else if (kanji && JIS_P(*buf1) && JIS_P(*(buf1 + 1)) ) {
+       i1 = *buf1++; i2 = *buf1++;
+       J2S(i1, i2, *buf2++, *buf2++);
+     } else
+       *buf2++ = *buf1++;
+   }
+   if (buf1 == endp) {
+     if (kanji && JIS_P(*buf1) && JIS_P(*(buf1 + 1)) ) {
+       i1 = *buf1++; i2 = *buf1++;
+       J2S(i1, i2, *buf2++, *buf2++);
+     } else
+       *buf2++ = *buf1++;
+       *buf2++ = *buf1++;
+   } else if (buf1 == endp + 1)
+     *buf2++ = *buf1++;
+   return (buf2 - startp);
+ }
+ 
+ to_kanji(buf)
+      unsigned char *buf;
+ {
+   return (*buf++ == ESC_CODE &&
+ 	  *buf++ == '$' &&
+ 	  (*buf == '@' || *buf == 'B'));
+ }
+ 
+ to_ascii(buf)
+      unsigned char *buf;
+ {
+   return (*buf++ == ESC_CODE &&
+ 	  *buf++ == '(' &&
+ 	  (*buf == 'J' || *buf == 'B' || *buf == 'H'));
+ }
+ 
+ char kanji_work_area[KANJI_WORK_SIZE];
+ char *malloced_area;
+ 
+ char *
+ get_kanji_work_area(len, code)
+      int len, code;
+ {
+   free_kanji_work_area();
+   if (code == JIS) len = len * 3 + 2;
+   if (len > KANJI_WORK_SIZE)
+     if ((malloced_area = malloc(len)) == (char *)0) {
+       malloced_area = kanji_work_area;
+       memory_full ();
+     }
+   return malloced_area;
+ }
+ 
+ free_kanji_work_area()
+ {
+   if (malloced_area != kanji_work_area) {
+     free(malloced_area);
+     malloced_area = kanji_work_area;
+   }
+ }
+ 
+ DEFUN ("convert-region-kanji-code", Fconvert_region_kanji_code,
+        Sconvert_region_kanji_code, 4, 4, "r\nnSource code: \nnTarget code: ",
+   "Convert kanji code of the text between point and mark\n\
+ from SOURCE code to TARGET code.\n\
+ When called from a program, takes four args:\n\
+ STAER, END, SOURCE, and TARGET.")
+   (b, e, src, tgt)
+       Lisp_Object b, e, src, tgt;
+ {
+   int len, beg, end;
+   char *p;
+ 
+   CHECK_NUMBER(src, 0); CHECK_NUMBER(tgt, 0);
+   if (EQ (src,tgt)) error ("no need of converion");
+ 
+   validate_region (&b, &e);
+   beg = XINT (b);
+   end = XINT (e);
+   len = end - beg;
+   prepare_to_modify_buffer ();
+   record_change (beg, len);
+ /* patch 89-09-03 by S. Tomura */
+   if (beg <= bf_s1 && end > (bf_s1 + 1))
+ /* end of patch */
+     move_gap (beg);
+ 
+   if (XFASTINT(tgt) == JIS) {
+     if (!(p = malloc(len * 3 + 2))) memory_full();
+   } else {
+     p = (char *)&CharAt(beg);
+   }
+   len = convert_kanji_code(len, &CharAt(beg), p,
+ 			   XFASTINT(src), XFASTINT(tgt),
+ 			   to_kanji_fileio, to_ascii_fileio);
+   if (XFASTINT(src) == JIS && len < end - beg) {
+     del_range(beg + len, end);
+   } else if (XFASTINT(tgt) == JIS) {
+     del_range(beg, end);
+     InsCStr(p, len);
+     free(p);
+   }
+   modify_region(beg, beg + len);
+ 
+   return Qnil;
+ }
+ 
+ DEFUN ("convert-string-kanji-code", Fconvert_string_kanji_code,
+        Sconvert_string_kanji_code, 3, 3, 0,
+   "Convert kanji code in STRING from SOURCE code to TARGET code,\n\
+ and return the result string.")
+   (str, src, tgt)
+       Lisp_Object str, src, tgt;
+ {
+   int len;
+   char *p;
+   Lisp_Object newstr;
+ 
+   CHECK_STRING(str, 0); CHECK_NUMBER(src, 0); CHECK_NUMBER(tgt, 0);
+   len = XSTRING(str)->size;
+   if (EQ (src,tgt)) error ("no need of converion");
+   if (XFASTINT(src) == JIS) {
+     if (!(p = malloc(len))) memory_full();
+   } else if (XFASTINT(tgt) == JIS) {
+     len = len * 3 + 2;
+     if (!(p = malloc(len))) memory_full();
+   } else {
+     newstr = make_string(XSTRING(str)->data, len);
+     p = (char *)XSTRING(newstr)->data;
+   }
+   len = convert_kanji_code(XSTRING(str)->size, XSTRING(str)->data, p,
+ 			   XFASTINT(src), XFASTINT(tgt),
+ 			   to_kanji_fileio, to_ascii_fileio);
+   if (XFASTINT (src) == JIS || XFASTINT (tgt) == JIS) {
+     newstr = make_string(p, len);
+     free(p);
+   }
+   return newstr;
+ }
+ 
+ convert_kanji_code(n, buf1, buf2, code1, code2, to_kanji, to_ascii)
+      int n, code1, code2;
+      unsigned char *buf1, *buf2;
+ {
+   if (!n || code1 == code2) return n;
+ 
+   switch (code1) {
+   case EUC:
+     n = (code2 == Shift_JIS) ? e2s(n, buf1, buf2)
+ 			     : e2j(n, buf1, buf2, to_kanji, to_ascii);
+     break;
+   case Shift_JIS:
+     n = (code2 == EUC) ? s2e(n, buf1, buf2)
+ 		       : s2j(n, buf1, buf2, to_kanji, to_ascii);
+     break;
+   case JIS:
+     n = (code2 == EUC) ? j2e(n, buf1, buf2) : j2s(n, buf1, buf2);
+     break;
+   }
+   return n;
+ }
+ 
+ DEFUN ("check-region-kanji-code", Fcheck_region_kanji_code,
+        Scheck_region_kanji_code, 2, 2, "r",
+   "Return kanji code of the text between point and mark.\n\
+ If no kanji code is in the string, NIL is returned.\n\
+ If both EUC and Shift-JIS is possible, 0 is returned.\n\
+ When called from a program, takes two args START and END.")
+   (b, e)
+       Lisp_Object b, e;
+ {
+   int beg, end, code;
+ 
+   validate_region (&b, &e);
+   beg = XINT (b);
+   end = XINT (e);
+ /* patch 89-09-03 by S. Tomura */
+   if (beg <= bf_s1 && end > (bf_s1+1))
+ /* end of patch */
+     move_gap (beg);
+ 
+   code = check_kanji_code(&CharAt(beg), end - beg);
+   return ((code < 0) ? Qnil : make_number(code));
+ }
+ 
+ DEFUN ("check-string-kanji-code", Fcheck_string_kanji_code,
+        Scheck_string_kanji_code, 1, 1, 0,
+   "Return kanji code of STRING.\n\
+ If no kanji code is in the string, NIL is returned.\n\
+ If both EUC and Shift-JIS is possible, 0 is returned.")
+   (str)
+       Lisp_Object str;
+ {
+   int code;
+ 
+   CHECK_STRING(str, 0);
+   code = check_kanji_code(XSTRING(str)->data, XSTRING(str)->size);
+   return ((code < 0) ? Qnil : make_number(code));
+ }
+ 
+ 
+ check_kanji_code(buf, n)
+      int n;
+      unsigned char *buf;
+ {
+   unsigned char c, *endp = buf + n - 1;
+   int assume_euc = 0;
+ 
+   while(buf < endp) {
+     c = *buf++;
+     if (c == ESC_CODE && *buf == '$'&& !assume_euc) return JIS;
+     if (c & 0x80) {
+       if (c < 0xa0) return Shift_JIS;
+       else if (c < 0xe0 || c > 0xef) return EUC;
+       c = *buf++;
+       if (c < 0xa1) return Shift_JIS;
+       else if (c > 0xfc) return EUC;
+       assume_euc = 1;
+     }
+   }
+   return (assume_euc ? 0 : -1);
+ }
+ 
+ /* patch by A.Kato(kato@koudai.cs.titech.junet)  87.7.7 */
+ /* modified by K.Handa  87.12.9 */
+ /* modified by K.Handa 88.1.19  according to patch by Mr.Sanewo (88.3.6) */
+ kanji_read_from_process(d, buf, preceding, nbytes, kanji, code)
+      int d, preceding, nbytes, *kanji, code;
+      unsigned char *buf;
+ {
+   int n;
+   unsigned char *ebuf, *endp, i1, i2, preceding_char = *buf;
+   unsigned char *startp = buf;
+ 
+   if (!nbytes) return 0;
+   
+   switch (KANJI_MODE_PENDING(*kanji)) {
+   case KANJI_MODE_PENDING_CHAR:
+     *buf++ = KANJI_MODE_CHAR(*kanji);
+     nbytes--;
+     break;
+   case KANJI_MODE_PENDING_ESC:
+     *buf++ = ESC_CODE;
+     *buf++ = KANJI_MODE_CHAR(*kanji);
+     nbytes -= 2;
+     break;
+   }
+   if (preceding) {
+     *buf++ = preceding_char;
+     nbytes--;
+   }
+ 
+   if ((n = read(d, buf, nbytes)) <= 0 && !preceding) return -1;
+ 
+   endp = buf + n;
+ 
+   switch (code) {
+   case EUC:
+     if (EUC_P(*(endp - 1))) {
+       buf = endp;
+       while (--buf >= startp && EUC_P(*buf));
+       if ((endp - buf) % 2 == 0) {
+ 	KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_CHAR);
+ 	KANJI_MODE_CHAR_SET(*kanji, *(endp-1));
+ 	endp--;
+       } else
+ 	KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_NONE);
+     } else
+       KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_NONE);
+     break;
+   case Shift_JIS:
+     buf = startp;
+     endp--;
+     while (buf < endp) {
+       if (Shift_JIS_P(*buf)) {
+ 	S2E (*buf, *(buf+1), *buf, *(buf+1));
+ 	buf += 2;
+       } else
+ 	buf++;
+     }
+     if (buf > endp || !Shift_JIS_P(*buf)) {
+       KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_NONE);
+       endp++;
+     } else {
+       KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_CHAR);
+       KANJI_MODE_CHAR_SET(*kanji, *buf);
+     }
+     break;
+   case JIS:
+     buf = (ebuf = startp);
+     endp -= 2;
+     while (buf < endp) {
+       if (to_kanji(buf)) {
+ 	KANJI_MODE_FLAG_SET(*kanji, KANJI_MODE_KANJI);
+ 	buf += 3;
+       } else if (to_ascii (buf)) {
+ 	KANJI_MODE_FLAG_SET(*kanji, KANJI_MODE_NORMAL);
+ 	buf += 3;
+       } else {
+ 	if (KANJI_MODE_FLAG(*kanji) == KANJI_MODE_NORMAL
+ 	    || !JIS_P(*buf) || !JIS_P(*(buf+1))) {
+ 	  *ebuf++ = *buf++;
+ 	} else {
+ 	  *ebuf++ = *buf++ | 0x80;
+ 	  *ebuf++ = *buf++ | 0x80;
+ 	}
+       }
+     }
+     if (buf == endp) {
+       if (*buf == ESC_CODE) {
+ 	KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_ESC);
+ 	KANJI_MODE_CHAR_SET(*kanji, *(buf+1));
+       } else {
+ 	if (KANJI_MODE_FLAG(*kanji) == KANJI_MODE_NORMAL
+ 	    || !JIS_P(*buf) || !JIS_P(*(buf+1))) {
+ 	  *ebuf++ = *buf++;
+ 	} else {
+ 	  *ebuf++ = *buf++ | 0x80;
+ 	  *ebuf++ = *buf++ | 0x80;
+ 	}
+       }
+     }
+     if (buf == endp + 1) {
+       if (*buf == ESC_CODE) {
+ 	KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_CHAR);
+ 	KANJI_MODE_CHAR_SET(*kanji, ESC_CODE);
+       } else {
+ 	if (KANJI_MODE_FLAG(*kanji) == KANJI_MODE_NORMAL || !JIS_P(*buf)) {
+ 	  *ebuf++ = *buf++;
+ 	} else {
+ 	  KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_CHAR);
+ 	  KANJI_MODE_CHAR_SET(*kanji, *buf);
+ 	}
+       }
+     }
+     if (buf == endp + 2)
+       KANJI_MODE_PENDING_SET(*kanji, KANJI_MODE_PENDING_NONE);
+ 
+     endp = ebuf;
+     break;
+   }
+   return (endp - startp);
+ }
+ 
+ DEFUN ("kanji-jis-start", Fkanji_jis_start, Skanji_jis_start, 0, 0, "",
+   "Set flag kanji_JIS_flag to t.")
+   ()
+ {
+ /* modified by K.Handa 88.5.26 */
+   if (!NULL(bf_cur->kanji_flag) && XFASTINT(kanji_input_code) == JIS) {
+     kanji_JIS_flag = 1;
+   }
+   return Qnil;
+ }
+ 
+ DEFUN ("kanji-jis-end", Fkanji_jis_end, Skanji_jis_end, 0, 0, "",
+   "Set kanji_JIS_flag to nil.")
+   ()
+ {
+ /* modified by K.Handa 88.5.26 */
+   if (!NULL(bf_cur->kanji_flag) && XFASTINT(kanji_input_code) == JIS) {
+     kanji_JIS_flag = 0;
+   }
+   return Qnil;
+ }
+ 
+ init_kanji()
+ {
+   int i;
+ 
+   bzero(jcode_table, 256);
+   for (i = 0x80; i <= 0x9f; i++) jcode_table[i] |= 1;
+   for (i = 0xe0; i <= 0xef; i++) jcode_table[i] |= 1;
+   for (i = 0x21; i < 0x7f; i++) jcode_table[i] |= 2;
+   for (i = 0xa1; i < 0xff; i++) jcode_table[i] |= 4;
+   malloced_area = kanji_work_area;
+ }
+ 
+ syms_of_kanji ()
+ {
+   defsubr (&Skanji_point);
+   defsubr (&Skanji_char_after);
+   defsubr (&Skanji_delete_region);
+   defsubr (&Skanji_jis_start);
+   defsubr (&Skanji_jis_end);
+   defsubr (&Sconvert_region_kanji_code);
+   defsubr (&Sconvert_string_kanji_code);
+   defsubr (&Scheck_region_kanji_code);
+   defsubr (&Scheck_string_kanji_code);
+ 
+   DEFVAR_INT ("kanji-code-min", &kanji_code_min,
+     "* Minimum value of valid kanji code.");
+   kanji_code_min = NOCONV;
+ 
+   DEFVAR_INT ("kanji-code-max", &kanji_code_max,
+     "* Maximum value of valid kanji code.");
+   kanji_code_max = EUC;
+ 
+   DEFVAR_INT ("to-kanji-display", &to_kanji_display,
+     "* The last character of ESC sequence to go to Kanji in display");
+   to_kanji_display = '@';
+ 
+   DEFVAR_INT ("to-ascii-display", &to_ascii_display,
+     "* The last character of ESC sequence to go to Ascii in display");
+   to_ascii_display = 'J';
+ 
+   DEFVAR_INT ("to-kanji-fileio", &to_kanji_fileio,
+      "* The last character of ESC sequence to go to Kanji in fileio");
+   to_kanji_fileio = '@';
+ 
+   DEFVAR_INT ("to-ascii-fileio", &to_ascii_fileio,
+     "* The last character of ESC sequence to go to Ascii in fileio");
+   to_ascii_fileio = 'J';
+ 
+   DEFVAR_INT ("to-kanji-process", &to_kanji_process,
+      "* The last character of ESC sequence to go to Kanji in process I/O.");
+   to_kanji_process = '@';
+ 
+   DEFVAR_INT ("to-ascii-process", &to_ascii_process,
+     "* The last character of ESC sequence to go to Ascii in process I/O.");
+   to_ascii_process = 'J';
+ 
+   DEFVAR_INT ("kanji-input-code", &kanji_input_code,
+     "0:No-conversion  1:Shift-JIS  2:JIS  3:EUC/AT&T/DEC");
+   kanji_input_code = JIS;
+ 
+   DEFVAR_INT ("kanji-display-code", &kanji_display_code,
+     "0:No-conversion  1:Shift-JIS  2:JIS  3:EUC/AT&T/DEC");
+   kanji_display_code = JIS;
+ 
+ /* patch by K.Handa  89.11.25 */
+   DEFVAR_LISP ("NEMACS", &VNEMACS, "");
+   VNEMACS = Qt;
+ 
+ #ifdef EGG
+   DEFVAR_LISP ("EGG", &VEGG, "");
+   VEGG = Qt;
+ #endif
+ #ifdef WNN3
+   DEFVAR_LISP ("WNN3", &VWNN3, "");
+   VWNN3 = Qt;
+ #endif
+ #ifdef WNN4V3
+   DEFVAR_LISP ("WNN4V3", &VWNN4V3, "");
+   VWNN4V3 = Qt;
+ #endif
+ #ifdef WNN4
+   DEFVAR_LISP ("WNN4", &VWNN4, "");
+   VWNN4 = Qt;
+ #endif
+ }
diff -arcN emacs-18.55/src/kanji.h nemacs-3.3.2/src/kanji.h
*** emacs-18.55/src/kanji.h	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/src/kanji.h	Wed Jun  6 03:19:20 1990
***************
*** 0 ****
--- 1,149 ----
+ /* Fundamental definitions for Nemacs.
+    Coded by K.Handa, Electrotechnical Lab. (handa@elt.go.jp)
+ 
+ 
+    This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA. */
+ 
+ /* 87.6.5   created by K.Handa */
+ /* 87.12.9  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.5.25  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.2.22  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.17 modified for Nemacs Ver.3.2 by K.Handa */
+ /* 89.12.15 modified for Nemacs Ver.3.2.1 by S. Tomura */
+ 
+ #define ESC_CODE 033
+ 
+ #define S2E(i1, i2, c1, c2) \
+ { \
+   if (i2 >= 0x9f) { \
+     if (i1 >= 0xe0) c1 = i1*2 - 0xe0; \
+     else c1 = i1*2 - 0x60; \
+     c2 = i2 + 2; \
+   } else { \
+     if (i1 >= 0xe0) c1 = i1*2 - 0xe1; \
+     else c1 = i1*2 - 0x61; \
+     if (i2 >= 0x7f) c2 = i2 + 0x60; \
+     else c2 = i2 +  0x61; \
+   } \
+ }
+ 
+ #define E2S(i1, i2, c1, c2) \
+ { \
+   if (i1 & 1) { \
+     if (i1 < 0xdf) c1 = i1/2 + 0x31; \
+     else c1 = i1/2 + 0x71; \
+     if (i2 >= 0xe0) c2 = i2 - 0x60; \
+     else c2 = i2 - 0x61; \
+   } else {			 \
+     if (i1 < 0xdf) c1 = i1/2 + 0x30; \
+     else  c1 = i1/2 + 0x70; \
+     c2 = i2 - 2; \
+   } \
+ }
+ 
+ #define S2J(i1, i2, c1, c2) \
+ { \
+   if (i2 >= 0x9f) { \
+     c1 = (i1 * 2 - ((i1 >= 0xe0) ? 0xe0 : 0x60)) & 0x7f; \
+     c2 = i2 - 0x7e; \
+   } else { \
+     c1 = (i1 * 2 - ((i1 >= 0xe0) ? 0xe1 : 0x61)) & 0x7f; \
+     c2 = (i2 + ((i2 >= 0x7f) ? 0x60 : 0x61)) & 0x7f; \
+   } \
+ }
+ 
+ #define J2S(i1, i2, c1, c2) \
+ { \
+   i1 |= 0x80; i2 |= 0x80; \
+   if (i1 & 1) { \
+     c1 = i1/2 + ((i1 < 0xdf) ? 0x31 : 0x71); \
+     c2 = i2 - ((i2 >= 0xe0) ? 0x60 : 0x61); \
+   } else { \
+     c1 = i1/2 + ((i1 < 0xdf) ? 0x30 : 0x70); \
+     c2 = i2 - 2; \
+   } \
+ }
+ 
+ #ifdef emacs
+ 
+ extern unsigned char jcode_table[256];
+ #define Shift_JIS_P(c) (jcode_table[(unsigned char)c] & 1)
+ #define JIS_P(c) (jcode_table[(unsigned char)c] & 2)
+ #define EUC_P(c) (jcode_table[(unsigned char)c] & 4)
+ #define JCODE(c) EUC_P(c)
+ #define JCODEP(p) (JCODE(*p) && JCODE(*(p+1)))
+ 
+ #define NOCONV 0
+ #define Shift_JIS 1
+ #define JIS 2
+ #define EUC 3
+ 
+ extern int kanji_code_min;		/* = NOCONV */
+ extern int kanji_code_max;		/* = EUC */
+ extern int kanji_input_code;		/* One of above */
+ extern int kanji_display_code;		/* One of above */
+ extern int default_kanji_process_code; /* One of above */
+ 
+ extern int kanji_JIS_flag;	/* Flag: JIS code is being read */
+ extern int to_kanji_display;	/* ESC sequence to go to Kanji */
+ extern int to_ascii_display;	/* ESC sequence to go to Ascii */
+ extern int to_kanji_fileio;	/* ESC sequence to go to Kanji */
+ extern int to_ascii_fileio;	/* ESC sequence to go to Ascii */
+ extern int to_kanji_process;	/* ESC sequence to go to Kanji */
+ extern int to_ascii_process;	/* ESC sequence to go to Ascii */
+ 
+ extern Lisp_Object Qkanji_self_insert;	/* Command for Kanji insert */
+ 
+ extern Lisp_Object Fkanji_jis_start(), Fkanji_jis_end(), Fkanji_point();
+ extern Lisp_Object Fconvert_region_kanji_code(), Fconvert_string_kanji_code();
+ extern Lisp_Object Fcheck_region_kanji_code(), Fcheck_string_kanji_code();
+ 
+ extern char *get_kanji_work_area();
+ extern int convert_kanji_code();
+ 
+ /* Used to notify write_chars() the kanji-flag
+    of the currently drawing buffer */
+ extern int current_kanji_flag;
+ 
+ /* patch by K.Handa  88.5.23 based on the idea of Mr. sanewo 88.3.8 */
+ #define KANJI_MODE_CHAR_MASK	0x00ff
+ #define KANJI_MODE_CHAR(m)	((m) & KANJI_MODE_CHAR_MASK)
+ #define KANJI_MODE_CHAR_SET(m,c) ((m) = ((m) & ~KANJI_MODE_CHAR_MASK) \
+ 				         | ((c) &  KANJI_MODE_CHAR_MASK))
+ #define KANJI_MODE_PENDING_MASK	0x0f00
+ #define KANJI_MODE_PENDING(m)	((m) & KANJI_MODE_PENDING_MASK)
+ #define KANJI_MODE_PENDING_NONE 0x0000
+ #define KANJI_MODE_PENDING_CHAR 0x0100
+ #define KANJI_MODE_PENDING_ESC  0x0200
+ #define KANJI_MODE_PENDING_SET(m,s) ((m) = ((m) & ~KANJI_MODE_PENDING_MASK) \
+ 				            | ((s) &  KANJI_MODE_PENDING_MASK))
+ #define KANJI_MODE_FLAG_MASK	0xf000
+ #define KANJI_MODE_FLAG(m)	((m) & KANJI_MODE_FLAG_MASK)
+ #define KANJI_MODE_NORMAL	0x0000
+ #define KANJI_MODE_KANJI	0x1000
+ #define KANJI_MODE_FLAG_SET(m,f) ((m) = ((m) & ~KANJI_MODE_FLAG_MASK) \
+ 				         | ((f) &  KANJI_MODE_FLAG_MASK))
+ /* end of patch */
+ 
+ /* patch by K.Handa  89.11.17 */
+ #define KANJI_WORK_SIZE 1024
+ extern char kanji_work_area[KANJI_WORK_SIZE];
+ /* end of patch */
+ 
+ #endif  /* emacs */
diff -arcN emacs-18.55/src/keyboard.c nemacs-3.3.2/src/keyboard.c
*** emacs-18.55/src/keyboard.c	Thu Jul 20 14:32:59 1989
--- nemacs-3.3.2/src/keyboard.c	Wed Jun  6 03:18:09 1990
***************
*** 1,3 ****
--- 1,12 ----
+ /* 87.6.6   modified by K.Handa */
+ /* 87.6.13  modified by K.Handa */
+ /* 87.12.19 modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.4.27  modified by Y.Ishikawa */
+ /* 88.5.26  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.2.10  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.12.20 modified for Nemacs Ver.3.2.3 by K.Handa
+ 	Handle C-g correctly when kanji-input-code is Shift-JIS */
+ 
  /* Keyboard input; editor command loop.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 39,44 ****
--- 48,57 ----
  
  extern int errno;
  
+ #ifdef NEMACS  /* 87.6.5  by K.Handa */
+ #include "kanji.h"
+ #endif
+ 
  /* Get FIONREAD, if it is available.  */
  #ifdef USG
  #include <termio.h>
***************
*** 204,209 ****
--- 217,225 ----
  #undef SIGIO
  #endif
  #endif
+ #ifdef NEMACS  /* by Y.Ishikawa */
+ int DisableUndo;
+ #endif
  
  /* Function for init_keyboard to call with no args (if nonzero).  */
  void (*keyboard_init_hook) ();
***************
*** 488,494 ****
--- 504,515 ----
    Lisp_Object cmd;
    int lose;
    int nonundocount;
+ #ifdef NEMACS  /* 87.6.6  by K.Handa */
+   unsigned char keybuf[30];
+   int kanji1, kanji2;
+ #else
    char keybuf[30];
+ #endif
    int i;
    int no_redisplay;
    int no_direct;
***************
*** 559,564 ****
--- 580,589 ----
  
        last_command_char = keybuf[i - 1];
        
+ #ifdef NEMACS  /* 87.6.6  by K.Handa */
+       kanji1 = keybuf[0];  kanji2 = keybuf[1];
+ #endif
+ 
        cmd = read_key_sequence_cmd;
        if (!NULL (Vexecuting_macro))
  	{
***************
*** 591,598 ****
--- 616,629 ----
  	    {
  	      if (EQ (cmd, Qforward_char) && point <= NumCharacters)
  		{
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+ 		  int saved_point = point;
+ #endif NEMACS
  		  lose = CharAt (point);
  		  SetPoint (point + 1);
+ #ifdef NEMACS  /* 89.3.10  by K.Handa */
+ 		  if (point == saved_point) point += 2;
+ #endif
  		  if (lose >= ' ' && lose < 0177
  		      && (XFASTINT (XWINDOW (selected_window)->last_modified)
  			  >= bf_modified)
***************
*** 621,632 ****
--- 652,672 ----
  		    no_redisplay = direct_output_forward_char (-1);
  		  goto directly_done;
  		}
+ #ifdef NEMACS  /* 87.6.2  by K.Handa */
+    	      else if (EQ (cmd, Qself_insert_command) ||
+ 		       EQ (cmd, Qkanji_self_insert))
+ #else
  	      else if (EQ (cmd, Qself_insert_command))
+ #endif
  		{
  		  if (NULL (Vexecuting_macro) &&
  		      !EQ (minibuf_window, selected_window))
  		    {
+ #ifdef NEMACS  /* by Y.Ishikawa */
+ 		      if (!DisableUndo && (!nonundocount || nonundocount >= 20))
+ #else
  		      if (!nonundocount || nonundocount >= 20)
+ #endif
  			{
  			  Fundo_boundary ();
  			  nonundocount = 0;
***************
*** 642,652 ****
--- 682,707 ----
  		    || !EQ (bf_cur->selective_display, Qnil)
  		    || detect_input_pending ()
  		    || !NULL (Vexecuting_macro);
+ #ifdef NEMACS  /* 87.6.6  by K.Handa */
+ 		  if (EQ (cmd, Qkanji_self_insert)) {
+ /* modified by K.Handa  87.6.13 */
+ /* modified by K.Handa  87.12.10 */
+ 		    SelfInsert (kanji1, 1);
+ 		    lose = 0;
+ 		    if (SelfInsert (kanji2, 0)) {
+ 		      lose = 1;
+ 		      nonundocount = 0;
+ 		    }
+ 		  } else {
+ #endif  /* NEMACS */
  		  if (SelfInsert (last_command_char, 0))
  		    {
  		      lose = 1;
  		      nonundocount = 0;
  		    }
+ #ifdef NEMACS  /* 87.6.6  by K.Handa */
+   		  }
+ #endif
  		  if (!lose
  		      && (point == NumCharacters + 1 || CharAt (point) == '\n')
  		      && last_command_char >= ' '
***************
*** 660,666 ****
--- 715,725 ----
  	  /* Here for a command that isn't executed directly */
  
  	  nonundocount = 0;
+ #ifdef NEMACS  /* by Y.Ishikawa */
+ 	  if (!DisableUndo && NULL (Vprefix_arg) && NULL (Vexecuting_macro) &&
+ #else
  	  if (NULL (Vprefix_arg) && NULL (Vexecuting_macro) &&
+ #endif
  	      !EQ (minibuf_window, selected_window))
  	    Fundo_boundary ();
  	  Fcommand_execute (cmd, Qnil);
***************
*** 807,813 ****
--- 866,879 ----
  
    if (c < 0) return -1;
  
+ #ifdef NEMACS  /* 87.6.2  by K.Handa */
+   c &= (MetaFlag
+ 	|| (!NULL(bf_cur->kanji_flag)
+ 	    && XFASTINT (kanji_input_code) != JIS
+ 	    && XFASTINT (kanji_input_code) != NOCONV) ? 0377 : 0177);
+ #else
    c &= MetaFlag ? 0377 : 0177;
+ #endif
  
    if (XTYPE (Vkeyboard_translate_table) == Lisp_String
        && XSTRING (Vkeyboard_translate_table)->size > c)
***************
*** 893,900 ****
--- 959,974 ----
  {
    c &= 0377;
  
+ #ifdef NEMACS  /* 87.6.2, 89.12.20  by K.Handa */
    if (c == Ctl ('g')
+       || ((c == (0200 | Ctl ('g')))
+ 	  && !MetaFlag
+ 	  && (NULL (bf_cur->kanji_flag)
+ 	      || XFASTINT (kanji_input_code) != Shift_JIS)))
+ #else
+   if (c == Ctl ('g')
        || ((c == (0200 | Ctl ('g'))) && !MetaFlag))
+ #endif
      {
        interrupt_signal ();
        return;
***************
*** 978,984 ****
--- 1052,1064 ----
    input_pending = --kbd_count > 0;
    c = *kbd_ptr;			/* *kbd_ptr++ would have a timing error. */
    kbd_ptr++;			/* See kbd_buffer_store_char. */
+ #ifdef NEMACS  /* 88.1.4, 88.5.26  by K.Handa */
+   return (c & ((MetaFlag
+ 		|| (XFASTINT(kanji_input_code) != JIS
+ 		    && XFASTINT(kanji_input_code) != NOCONV)) ? 0377 : 0177));
+ #else
    return (c & (MetaFlag ? 0377 : 0177)); /* Clean up if sign was extended. */
+ #endif
  }
  
  /* Force an attempt to read input regardless of what FIONREAD says.  */
***************
*** 1299,1304 ****
--- 1379,1411 ----
      EchoThem (1);
  
    nextc = get_char (nodisplay ? -1 : !prompt);
+ #ifdef NEMACS  /* 87.6.2, 87.12.10  by K.Handa */
+   if ((!NULL (bf_cur->kanji_flag)
+        && XFASTINT(kanji_input_code) != JIS
+        && XFASTINT(kanji_input_code) != NOCONV
+        && nextc >= 0x80)
+ /* modified by K.Handa  88.5.26 */
+       || (kanji_JIS_flag && JIS_P(nextc))) {
+     switch (XFASTINT (kanji_input_code)) {
+     case EUC:
+       keybuf[0] = (unsigned char)nextc;
+       keybuf[1] = (unsigned char)get_char (-1);
+       break;
+     case Shift_JIS:
+       c = get_char (-1);	/* patch by t-ishii@srash.sra.junet */
+       S2E (nextc, c, keybuf[0], keybuf[1]);
+       break;
+     case JIS:
+       keybuf[0] = (unsigned char)nextc | 0x80;
+       keybuf[1] = (unsigned char)get_char (-1) | 0x80;
+       break;
+     }
+     read_key_sequence_cmd = Qkanji_self_insert;
+     keys_prompt = 0;
+     Vquit_flag = Qnil;
+     return 2;
+   }
+ #endif  /* NEMACS */
    nextlocal = bf_cur->keymap;
    XSET (nextglobal, Lisp_Vector, CurrentGlobalMap);
  
***************
*** 1994,1999 ****
--- 2101,2112 ----
  Each character is looked up in this string and the contents used instead.\n\
  If string is of length N, character codes N and up are untranslated."); 
    Vkeyboard_translate_table = Qnil;
+ #ifdef NEMACS  /* by Y.Ishikawa */
+   DEFVAR_BOOL ("disable-undo", &DisableUndo,
+     "*Nil means undo facility is active.\n\
+ This feature is only available in Nemacs.");
+   DisableUndo = 0;
+ #endif  /* NEMACS */
  }
  
  keys_of_keyboard ()
diff -arcN emacs-18.55/src/keymap.c nemacs-3.3.2/src/keymap.c
*** emacs-18.55/src/keymap.c	Fri Feb 24 20:36:05 1989
--- nemacs-3.3.2/src/keymap.c	Wed Jun  6 03:18:10 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /* 88.5.28  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 88.12.14 modified for Nemacs Ver.3.2.1 by K.Handa
+ 	In Ftext_char_description, '& 0377' is omitted. */
+ 
  /* Manipulation of keymaps
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 716,721 ****
--- 720,731 ----
       register unsigned int c;
       register char *p;
  {
+ #ifdef NEMACS  /* 88.5.28  by K.Handa */
+   if (c >= 0400) {
+     *p++ = c >> 8;
+     *p++ = c & 0377;
+   } else {
+ #endif
    if (c >= 0200)
      {
        *p++ = 'M';
***************
*** 734,739 ****
--- 744,752 ----
      }
    else
      *p++ = c;
+ #ifdef NEMACS  /* 88.5.28  by K.Handa */
+   }
+ #endif
    return p;  
  }
  
***************
*** 747,753 ****
--- 760,770 ----
  
    CHECK_NUMBER (chr, 0);
  
+ #ifdef NEMACS  /* 89.12.14  by K.Handa */
+   *push_text_char_description (XINT (chr), tem) = 0;
+ #else
    *push_text_char_description (XINT (chr) & 0377, tem) = 0;
+ #endif
  
    return build_string (tem);
  }
diff -arcN emacs-18.55/src/lisp.h nemacs-3.3.2/src/lisp.h
*** emacs-18.55/src/lisp.h	Wed Mar 30 15:42:49 1988
--- nemacs-3.3.2/src/lisp.h	Wed Jun  6 03:18:13 1990
***************
*** 470,476 ****
--- 470,483 ----
      Lisp_Object chain;
      int bufpos;
      int modified;
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+     int type;
    };
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ #define MARKER_OLD_TYPE 1
+ #define MARKER_POINT_TYPE 2
+ #define MARKER_ALL_TYPE  (MARKER_OLD_TYPE | MARKER_POINT_TYPE)
+ /* end of patch */
  
  /* Data type checking */
  
diff -arcN emacs-18.55/src/lread.c nemacs-3.3.2/src/lread.c
*** emacs-18.55/src/lread.c	Tue Aug  2 10:43:43 1988
--- nemacs-3.3.2/src/lread.c	Fri Jun  8 00:50:16 1990
***************
*** 1,3 ****
--- 1,9 ----
+ /* 89.10.24 modified for Nemacs Ver.3.2 by K.Handa */
+ /* 90.1.26  modified for Nemacs Ver.3.3.1 by K.Handa
+ 		close 'fd' after load-hook */
+ /* 90.6.6   modified for Nemacs Ver.3.3.2 by abe@sunrise.hallab.co.jp
+ 	'GCPRO2(str, f)' in Fload() */
+ 
  /* Lisp parsing and input streams.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 58,63 ****
--- 64,74 ----
  /* For use within read-from-string (this reader is non-reentrant!!) */
  static int read_from_string_index;
  static int read_from_string_limit;
+ 
+ #ifdef NEMACS	/* 89.10.24  by K.Handa */
+ /* Hook run by `load' before it does really loading.  */
+ Lisp_Object Vload_hook;
+ #endif
  
  /* Handle unreading and rereading of characters.
   Write READCHAR to read a character, UNREAD(c) to unread c to be read again. */
***************
*** 187,192 ****
--- 198,207 ----
    register FILE **ptr;
    int count = specpdl_ptr - specpdl;
    struct gcpro gcpro1;
+ #ifdef NEMACS	/* 89.10.24  by K.Handa */
+   struct gcpro gcpro2;		/* 90.6.6 by abe@sunrise.hallab.co.jp */
+   Lisp_Object f;
+ #endif
  
    CHECK_STRING (str, 0);
    str = Fsubstitute_in_file_name (str);
***************
*** 195,201 ****
--- 210,220 ----
       since it would try to load a directory as a Lisp file */
    if (XSTRING (str)->size > 0)
      {
+ #ifdef NEMACS	/* 89.10.24  by K.Handa */
+       fd = openp (Vload_path, str, !NULL (nosuffix) ? "" : ".elc:.el:", &f, 0);
+ #else
        fd = openp (Vload_path, str, !NULL (nosuffix) ? "" : ".elc:.el:", 0, 0);
+ #endif
      }
  
    if (fd < 0)
***************
*** 215,226 ****
--- 234,252 ----
    if (NULL (nomessage))
      message ("Loading %s...", XSTRING (str)->data);
  
+ #ifdef NEMACS   /* 90.6.6  by abe@sunrise.hallab.co.jp */
+   GCPRO2 (str, f);
+ #else
    GCPRO1 (str);
+ #endif
    ptr = (FILE **) xmalloc (sizeof (FILE *));
    *ptr = stream;
    XSET (lispstream, Lisp_Internal_Stream, (int) ptr);
    record_unwind_protect (load_unwind, lispstream);
    load_in_progress++;
+ #ifdef NEMACS	/* 89.10.24, 90.1.26  by K.Handa */
+   if (NULL(Vload_hook) || NULL(call2(Vload_hook, f, nomessage)))
+ #endif	/* NEMACS */
    readevalloop (Qget_file_char, stream, Feval, 0);
    unbind_to (count);
    UNGCPRO;
***************
*** 1294,1299 ****
--- 1320,1333 ----
  Initialized based on EMACSLOADPATH environment variable, if any,\n\
  otherwise to default specified in by file paths.h when emacs was built.");
  
+ #ifdef NEMACS	/* 89.10.22  by K.Handa */
+   Vload_hook = Qnil;
+ 
+   DEFVAR_LISP ("load-hook", &Vload_hook,
+     "Function called, if non-nil, before loading\n\
+ with two arguments, FILENAME and NOMESSAGE.\n\
+ If this function returns nil, normal loading procedure is executed.");
+ #endif
    DEFVAR_BOOL ("load-in-progress", &load_in_progress,
      "Non-nil iff inside of  load.");
  
diff -arcN emacs-18.55/src/marker.c nemacs-3.3.2/src/marker.c
*** emacs-18.55/src/marker.c	Thu Oct  2 11:59:17 1986
--- nemacs-3.3.2/src/marker.c	Wed Jun  6 03:18:35 1990
***************
*** 139,144 ****
--- 139,170 ----
    return marker;
  }
  
+ /* patch for point_type_marker by K.Handa  89.11.30 */
+ DEFUN ("set-marker-type", Fset_marker_type, Sset_marker_type, 2, 2, 0,
+   "Set type of marker MARKER to point_type if POINT_TYPE is not\n\
+ NIL, otherwise set to conventional type.  Returns MARKER.\n\
+ 'point_type' means that 'insert' at that type of marker moves\n\
+ the marker forward (i.e. to the tail of text) just like 'point'.")
+   (marker, type)
+      Lisp_Object marker, type;
+ {
+   CHECK_MARKER (marker, 0);
+   XMARKER (marker)->type = (NULL(type)) ? MARKER_OLD_TYPE : MARKER_POINT_TYPE;
+   return marker;
+ }
+ 
+ DEFUN ("marker-point-type", Fmarker_point_type, Smarker_point_type, 1, 1, 0,
+   "T if type of marker MARKER is point_type, otherwize NIL.")
+   (marker)
+      Lisp_Object marker;
+ {
+   CHECK_MARKER (marker, 0);
+   if (XMARKER (marker)->type == MARKER_POINT_TYPE) return Qt;
+   else return Qnil;
+ }
+ 
+ /* end of patch */
+ 
  /* This is called during garbage collection,
   so we must be careful to ignore and preserve mark bits,
   including those in chain fields of markers.  */
***************
*** 232,237 ****
--- 258,265 ----
  		       ((XTYPE (marker) == Lisp_Marker)
  			? Fmarker_buffer (marker)
  			: Qnil));
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+ 	  XMARKER (new)->type = XMARKER (marker)->type;
  	  return new;
  	}
        else
***************
*** 244,248 ****
--- 272,280 ----
    defsubr (&Smarker_position);
    defsubr (&Smarker_buffer);
    defsubr (&Sset_marker);
+ /* patch for point_type_marker by K.Handa 89.11.30 */
+   defsubr (&Sset_marker_type);
+   defsubr (&Smarker_point_type);
+ /* end of patch */
    defsubr (&Scopy_marker);
  }
diff -arcN emacs-18.55/src/nconfig.h nemacs-3.3.2/src/nconfig.h
*** emacs-18.55/src/nconfig.h	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/src/nconfig.h	Wed Jun  6 03:19:20 1990
***************
*** 0 ****
--- 1,47 ----
+ /* Nemacs site configuration file
+    Coded by K.Handa, Electrotechnical Lab. (handa@elt.go.jp)
+ 
+    This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA. */
+ 
+ /* 90.2.27  created for Nemacs Ver.3.3.1 by K.Handa */
+ 
+ #ifdef NEMACS
+ 
+ /* define EGG if you want to use EGG */
+ #define EGG
+ 
+ #ifdef EGG
+ /* define one of WNN3, WNN4, and WNN4V3 */
+ #define WNN4V3
+ #endif
+ 
+ #ifdef WNN4V3
+ #define LIBWNN /usr/local/wnn4/jlib.V3/libjd.a
+ #define INCWNN -I/usr/local/wnn4/include
+ #else   /* not WNN4V3 */
+ #ifdef WNN3
+ #define LIBWNN /usr/local/wnn3/jlib/libjd.a
+ #define INCWNN -I/usr/local/wnn3/include
+ #else   /* not WNN4V3 nor WNN3 */
+ #define LIBWNN
+ #define INCWNN
+ #endif  /* not WNN3 */
+ #endif  /* not WNN4V3 */
+ 
+ #endif  /* NEMACS */
diff -arcN emacs-18.55/src/process.c nemacs-3.3.2/src/process.c
*** emacs-18.55/src/process.c	Mon Aug  7 07:01:31 1989
--- nemacs-3.3.2/src/process.c	Wed Jun  6 03:18:26 1990
***************
*** 1,3 ****
--- 1,12 ----
+ /* modified by A.Kato(kato@koudai.cs.titech.junet)  87.7.7 */
+ /* 88.1.20  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.1.19  modified by K.Handa according to a patch by Mr.Sanewo (88.3.6) */
+ /* 88.5.19  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.3.23  modified for Nemacs Ver.3.0 by K.Handa, S.Tomura */
+ /* 89.9.12  modified for nemacs Ver.3.2 by S.Tomura */
+ /* 90.2.28  modified for Nemacs Ver.3.3.1 by abe@sunrise.hallab.co.jp
+ 	do GCPRO (proc) before Ffuncall */
+ 
  /* Asynchronous subprocess control for GNU Emacs.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 90,95 ****
--- 99,107 ----
  #include "termhooks.h"
  #include "termopts.h"
  #include "commands.h"
+ #ifdef NEMACS  /* 89.2.22  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  /* a process object is a network connection when its childp field is neither
     Qt nor Qnil but is instead a string (name of foreign host we
***************
*** 223,228 ****
--- 235,247 ----
     Always -1 on systems that support FIONREAD.  */
  
  int proc_buffered_char[MAXDESC];
+ 
+ #ifdef NEMACS  /* 87.7.7 by A.Kato  89.2.21 by K.Handa */
+ Lisp_Object Qinvoke_find_kanji_process_code;
+ Lisp_Object Qfind_kanji_process_code;
+ 
+ int kanji_mode[MAXDESC];
+ #endif
  
  #ifdef HAVE_PTYS
  
***************
*** 885,890 ****
--- 904,930 ----
    XPROCESS (proc)->sentinel = Qnil;
    XPROCESS (proc)->filter = Qnil;
    XPROCESS (proc)->command = Flist (nargs - 2, args + 2);
+ #ifdef NEMACS  /* 89.2.10  by K.Handa, S.Tomura 89.9.12 by S.Tomura */
+   {
+     Lisp_Object code = Qnil;
+     if (EQ (Fboundp(Qfind_kanji_process_code), Qt)) {
+       int i;
+       struct gcpro gcpro1;	/* 90.2.28  by S.Abe */
+       Lisp_Object *newargs
+ 	= (Lisp_Object *) alloca((sizeof (Lisp_Object *)) * (nargs + 1));
+       newargs[0] = Qinvoke_find_kanji_process_code;
+       newargs[1] = NULL(buffer) ? Qnil : Fbuffer_name(buffer);
+       newargs[2] = program;
+       newargs[3] = Qnil;
+       for (i = 3; i < nargs; i++) newargs[i+1] = args[i];
+       GCPRO1 (proc);		/* 90.2.28  by S.Abe */
+       code = Ffuncall (nargs + 1, newargs);
+       UNGCPRO;			/* 90.2.28  by S.Abe */
+     }
+     if (XTYPE(code) != Lisp_Int) code = make_number (NOCONV);
+     XPROCESS (proc)->kanji_code = code;
+   }
+ #endif
  
    create_process (proc, new_argv);
  
***************
*** 1193,1198 ****
--- 1233,1257 ----
    XFASTINT (XPROCESS (proc)->infd) = s;
    XFASTINT (XPROCESS (proc)->outfd) = outch;
    XFASTINT (XPROCESS (proc)->flags) = RUNNING;
+ #ifdef NEMACS  /* 89.2.10  by K.Handa 89.9.12 by S.Tomura */
+   {
+     Lisp_Object code = Qnil;
+     if (EQ (Fboundp (Qfind_kanji_process_code), Qt)) {
+       Lisp_Object args[5];
+       struct gcpro gcpro1;	/* 90.2.28  by S.Abe */
+       args[0] = Qinvoke_find_kanji_process_code;
+       args[1] = NULL(buffer) ? Qnil : Fbuffer_name(buffer);
+       args[2] = service;
+       args[3] = Qt;
+       args[4] = host;
+       GCPRO1 (proc);		/* 90.2.28  by S.Abe */
+       code = Ffuncall (5, args);
+       UNGCPRO;			/* 90.2.28  by S.Abe */
+     }
+     if (XTYPE(code) != Lisp_Int) code = make_number (NOCONV);
+     XPROCESS (proc)->kanji_code = code;
+   }
+ #endif
    input_wait_mask |= ChannelMask (inch);
    return proc;
  }
***************
*** 1218,1223 ****
--- 1277,1285 ----
        XFASTINT (p->infd) = 0;
        XFASTINT (p->outfd) = 0;
        chan_process[inchannel] = Qnil;
+ #ifdef NEMACS  /* 88.5.19  by K.Handa */
+       kanji_mode[inchannel] = 0;
+ #endif
        input_wait_mask &= ~ChannelMask (inchannel);
      }
  }
***************
*** 1553,1558 ****
--- 1615,1634 ----
     If you want to read all available subprocess output,
     you must call it repeatedly until it returns zero.  */
  
+ /* patch by A.Kato  87.7.7
+  * #ifdef KANJI
+  * #endif
+  * is provided to handle kanji code conversion.
+  *                              -- kato@cs.titech.junet
+  * The convention described above is changed into conventional nemacs
+  * patch style.  K.Handa  88.5.19.
+  * And now modified again as follows:
+  * #ifdef NEMACS
+  * #endif
+  * read_process_output returns 1 if there's real output from process but
+  * it must be pended until next one or two chars are received.
+  * end of patch */
+ 
  read_process_output (proc, channel)
       Lisp_Object proc;
       register int channel;
***************
*** 1564,1583 ****
--- 1640,1686 ----
    register struct Lisp_Process *p = XPROCESS (proc);
    register int opoint;
  
+ #ifdef NEMACS  /* by A.Kato, sanewo,  89.2.21 by K.Handa */
+   Lisp_Object code = XPROCESS (proc)->kanji_code;
+ 
+   if (proc_buffered_char[channel] < 0) {
+     if (NULL (code) || XFASTINT (code) == 0) {
+       nchars = read (channel, chars, sizeof chars);
+       if (nchars == 0) nchars = -1;  /* to show no pending input */
+     } else
+       nchars = kanji_read_from_process (channel, chars, 0,
+ 					sizeof chars, &kanji_mode[channel],
+ 					XFASTINT(code));
+   } else
+ #else  /* not NEMACS */
    if (proc_buffered_char[channel] < 0)
      nchars = read (channel, chars, sizeof chars);
    else
+ #endif  /* not NEMACS */
      {
        chars[0] = proc_buffered_char[channel];
        proc_buffered_char[channel] = -1;
+ #ifdef NEMACS  /* by sanewo,  89.2.21 by K.Handa */
+       if (NULL (code) || XFASTINT (code) == 0) {
+ #endif
        nchars = read (channel, chars + 1, sizeof chars - 1);
        if (nchars < 0)
  	nchars = 1;
        else
  	nchars = nchars + 1;
+ #ifdef NEMACS /* by A.Kato,  89.2.21 by K.Handa */
+       } else
+ 	nchars = kanji_read_from_process (channel, chars, 1,
+ 					  sizeof chars-1, &kanji_mode[channel],
+ 					  XFASTINT(code));
+ #endif
      }
  
+ #ifdef NEMACS  /* 88.5.19  by K.Handa */
+   if (nchars == 0) return 1; else if (nchars < 0) return 0;
+ #else
    if (nchars <= 0) return 0;
+ #endif
  
    outstream = p->filter;
    if (!NULL (outstream))
***************
*** 1647,1656 ****
--- 1750,1774 ----
    /* Don't use register vars; longjmp can lose them.  */
    int rv;
    unsigned char *procname = XSTRING (XPROCESS (proc)->name)->data;
+ #ifdef NEMACS  /* 89.2.22  by K.Handa */
+   char *buf2;
+ #endif
  
    if ((XFASTINT (XPROCESS (proc)->flags) & PROC_STATUS) != RUNNING)
      error ("Process %s not running", procname);
  
+ #ifdef NEMACS  /* 89.2.22  by K.Handa */
+   if (!NULL (XPROCESS(proc)->kanji_code)
+       && XFASTINT(XPROCESS(proc)->kanji_code) != EUC
+       && XFASTINT(XPROCESS(proc)->kanji_code) != NOCONV) {
+     buf2 = get_kanji_work_area(len,
+ 			       XFASTINT(XPROCESS(proc)->kanji_code));
+     len = convert_kanji_code(len, buf, buf2,
+ 			     EUC, XFASTINT(XPROCESS(proc)->kanji_code),
+ 			     to_kanji_process, to_ascii_process);
+     buf = buf2;
+   }
+ #endif
  
    if (!setjmp (send_process_frame))
      while (len > 0)
***************
*** 1684,1689 ****
--- 1802,1810 ----
        deactivate_process (proc);
        error ("SIGPIPE raised on process %s; closed it", procname);
      }
+ #ifdef NEMACS  /* 89.2.22  by K.Handa */
+   free_kanji_work_area();
+ #endif
  }
  
  /*** Is it really safe for this to get an error ?  */
***************
*** 2166,2171 ****
--- 2287,2322 ----
    call2 (sentinel, proc, reason);
    p->sentinel = sentinel;
  }
+ 
+ #ifdef NEMACS  /* 89.2.10  by K.Handa */
+ DEFUN ("process-kanji-code", Fprocess_kanji_code, Sprocess_kanji_code, 0,1,"",
+   "Return kanji code of PROCESS.\n\
+ 0:No-conversion  1:Shift-JIS  2:JIS  3:EUC/AT&T/DEC\n\
+ If no argument, kanji code of the current buffer's process are returned.\n\
+ If PROCESS is not a valid process, NIL is returned.")
+   (proc)
+      register Lisp_Object proc;
+ {
+   if (NULL (proc)) proc = Fget_buffer_process(bf_cur->name);
+   if (XTYPE (proc) != Lisp_Process) return Qnil;
+   return XPROCESS (proc)->kanji_code;
+ }
+ 
+ DEFUN ("set-process-kanji-code", Fset_process_kanji_code,
+        Sset_process_kanji_code, 1, 2, "",
+   "Set PROCESS's kanji code to CODE.\n\
+ 0:No-conversion  1:Shift-JIS  2:JIS  3:EUC/AT&T/DEC\n\
+ If PROCESS is NIL, current buffer's process is applied.")
+   (proc, code)
+      register Lisp_Object proc, code;
+ {
+   if (NULL (proc)) proc = Fget_buffer_process(bf_cur->name);
+   CHECK_PROCESS (proc, 0);
+   CHECK_NUMBER (code, 0);
+   XSET(XPROCESS (proc)->kanji_code, Lisp_Int, XINT (code));
+   return Qnil;
+ }
+ #endif  /* NEMACS */
  
  init_process ()
  {
***************
*** 2184,2189 ****
--- 2335,2343 ----
      {
        chan_process[i] = Qnil;
        proc_buffered_char[i] = -1;
+ #ifdef NEMACS  /* 89.2.10  by K.Handa */
+       kanji_mode[i] = 0;
+ #endif
      }
  }
  
***************
*** 2194,2199 ****
--- 2348,2360 ----
  
    staticpro (&Vprocess_alist);
  
+ #ifdef NEMACS  /* 89.2.10  by K.Handa */
+   Qinvoke_find_kanji_process_code = intern ("invoke-find-kanji-process-code");
+   staticpro (&Qinvoke_find_kanji_process_code);
+   Qfind_kanji_process_code = intern ("find-kanji-process-code");
+   staticpro (&Qfind_kanji_process_code);
+ #endif
+ 
    DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
      "*Non-nil means delete processes immediately when they exit.\n\
  nil means don't delete them until `list-processes' is run.");
***************
*** 2239,2244 ****
--- 2400,2409 ----
    defsubr (&Scontinue_process);
    defsubr (&Sprocess_send_eof);
    defsubr (&Swaiting_for_user_input_p);
+ #ifdef NEMACS  /* 89.2.10  by K.Handa */
+   defsubr (&Sprocess_kanji_code);
+   defsubr (&Sset_process_kanji_code);
+ #endif
  }
  
  #endif subprocesses
diff -arcN emacs-18.55/src/process.h nemacs-3.3.2/src/process.h
*** emacs-18.55/src/process.h	Tue Sep 30 07:42:41 1986
--- nemacs-3.3.2/src/process.h	Wed Jun  6 03:18:43 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /*  89.3.23  modified for Nemacs Ver.3.0 by K.Handa, S.Tomura */
+ /*  89.9.12  modified for Nemacs Ver.3.2 by S.Tomura */
+ 
  /* Definitions for asynchronous process control in GNU Emacs.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 59,64 ****
--- 62,70 ----
      Lisp_Object mark;
      /* Non-nil means kill silently if Emacs is exited.  */
      Lisp_Object kill_without_query;
+ #ifdef NEMACS  /* 89.2.9  by K.Handa */
+     Lisp_Object kanji_code;
+ #endif
  };
  
  /* Process status, found in the flags component */
***************
*** 77,79 ****
--- 83,90 ----
  
  
  #define ChannelMask(n) (1<<(n))
+ 
+ #ifdef NEMACS  /* 89.3.20  by K.Handa */
+ extern Lisp_Object Qfind_kanji_process_code;
+ extern Lisp_Object Qinvoke_find_kanji_process_code;
+ #endif
diff -arcN emacs-18.55/src/puresize.h nemacs-3.3.2/src/puresize.h
*** emacs-18.55/src/puresize.h	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/src/puresize.h	Wed Jun  6 03:19:20 1990
***************
*** 0 ****
--- 1,39 ----
+ /* PURESIZE definition file
+    Coded by K.Handa, Electrotechnical Lab. (handa@elt.go.jp)
+ 
+    This file is part of Nemacs (Japanese version of GNU Emacs).
+ 
+    Nemacs is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Nemacs 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA. */
+ 
+ /* 90.2.27  created for Nemacs Ver.3.3.1 by K.Handa */
+ 
+ #ifdef NEMACS
+ #undef PURESIZE
+ #ifdef EGG
+ #ifdef HAVE_X_WINDOWS
+ #define PURESIZE 200000
+ #else
+ #define PURESIZE 199000
+ #endif
+ #else  /* not EGG */
+ #ifdef HAVE_X_WINDOWS
+ #define PURESIZE 146000
+ #else
+ #define PURESIZE 142000
+ #endif
+ #endif  /* not EGG */
+ #endif  /* not NEMACS */
diff -arcN emacs-18.55/src/regex.c nemacs-3.3.2/src/regex.c
*** emacs-18.55/src/regex.c	Fri Aug 19 03:24:38 1988
--- nemacs-3.3.2/src/regex.c	Wed Jun  6 03:18:22 1990
***************
*** 1,3 ****
--- 1,10 ----
+ /* 88.1.5   modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.10.19 modified for Nemacs Ver.3.2 by K.Handa */
+ /* 90.1.25  modified for Nemacs Ver.3.3.1 by K.Handa
+ 		correct re_search when kanji-flag is nil */
+ /* 90.4.10  modified for Nemacs Ver.3.3.2 by enami@ptgd.sony.co.jp
+ 	bug fix of re_search with [...] structure */
+ 
  /* Extended regular expression matching and search.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 118,123 ****
--- 125,133 ----
  #include "lisp.h"
  #include "buffer.h"
  #include "syntax.h"
+ #ifdef NEMACS  /* 89.9.14  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  #else  /* not emacs */
  
***************
*** 225,230 ****
--- 235,251 ----
    c = * (unsigned char *) p++; \
    if (translate) c = translate[c]; }
  
+ #ifdef NEMACS  /* 89.12.4 by K.Handa */
+ #define PATFETCH2(c1,c2) \
+  {PATFETCH (c2); \
+   if (JCODE(c2)) { \
+     c1 = (c2 &= 0x7f); \
+     PATFETCH (c2); \
+     c2 &= 0x7f; \
+   } else \
+     c1 = 0; }
+ #endif  /* NEMACS */
+ 
  #define PATFETCH_RAW(c) \
   {if (p == pend) goto end_of_pattern; \
    c = * (unsigned char *) p++; }
***************
*** 311,316 ****
--- 332,342 ----
  
    int regnum = 1;
  
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+   int bf_kanji = !NULL(bf_cur->kanji_flag);
+   int jcode_set;
+ #endif
+ 
    bufp->fastmap_accurate = 0;
  
  #ifndef emacs
***************
*** 469,474 ****
--- 495,519 ----
  	  break;
  
  	case '[':
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	  {
+ 	    char *pp = p;
+ 	    jcode_set = 0;
+ 	    if (bf_kanji)
+ 	      while (pp < pend && *pp != ']') {
+ 		if (JCODE((unsigned char)*pp++)) {
+ 		  jcode_set = 1;
+ 		  break;
+ 		}
+ 	      }
+ 	  }
+ 	  if (jcode_set) {	/* If any Japanese code is in the set,
+ 				   we need a large map. */
+ 	    while (b - bufp->buffer
+ 		   > bufp->allocated - 4 - ((1 << 14) / BYTEWIDTH))
+ 	      EXTEND_BUFFER;
+ 	  } else
+ #endif  /* NEMACS */
  	  while (b - bufp->buffer
  		 > bufp->allocated - 3 - (1 << BYTEWIDTH) / BYTEWIDTH)
  	    /* Note that EXTEND_BUFFER clobbers c */
***************
*** 481,486 ****
--- 526,584 ----
  	    PATPUSH (charset);
  	  p1 = p;
  
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	  if (jcode_set) {
+ 	    int maxcc = 0, c11, c12, c21, c22;
+ 	    PATPUSH (0);	/* If (!jcode_set) this value is set smaller
+ 				   than 32 [= (1<<BYTEWIDTH)/BYTEWIDTH], and
+ 				   it's a real length of the map.
+ 				   But if (jcode_set) this value is set greater
+ 				   than 33 [= 0x21],
+ 				   and it represents (length_of_map/16). */
+ 	    bzero (b, (1 << 14) / BYTEWIDTH); /* clear the whole map */
+ 	    while (1) {
+ 	      int c11 = 0, c21 = 0;
+ 	      PATFETCH2 (c11,c12);
+ 	      if (c11 > maxcc) maxcc = c11;
+ 	      /* patch by enami@ptgd.sony.co.jp 90/4/10 */
+ #if 0
+ 	      /* orignal code was */
+ 	      if (c12 == ']' && p != p1 + 1) break;
+ #else
+ 	      if (c12 == ']' && !c11 && p != p1 + 1) break;
+ #endif
+ 	      if (*p == '-' && p[1] != ']') {
+ 		unsigned char *bb = (unsigned char *)&b[c11 * 16];
+ 		int ctemp;
+ 
+ 		PATFETCH (c22);	/* discard '-' */
+ 		PATFETCH2 (c21,c22);
+ 		if (c21 > maxcc) maxcc = c21;
+ 		if (c11 < c21) {
+ 		  while (c12 < 0x7f) bb[c12 / 8] |= 1 << (c12 % 8), c12++;
+ 		  c12 = 0x21;
+ 		  bb += 16;
+ 		  c11++;
+ 		}
+ 		while (c11 < c21) {
+ 		  bb[0] = bb[1] = 0; bb[2] = 0xfe; /* to start from 0x21 */
+ 		  for (ctemp = 3; ctemp < 15; ctemp++) bb[ctemp] = 255;
+ 		  bb[15] = 0x7f; /* to end at 0x7e */
+ 		  bb += 16;
+ 		  c11++;
+ 		}
+ 		if (c11 == c21)
+ 		  while (c12 <= c22) {
+ 		    bb[c12 / 8] |= 1 << (c12 % 8);
+ 		    c12++;
+ 		  }
+ 	      } else {
+ 		b[c11 * 16 + c12 / 8] |= 1 << (c12 % 8);
+ 	      }
+ 	    }
+ 	    b[-1] = ++maxcc;
+ 	  } else {
+ #endif  /* NEMACS */
  	  PATPUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
  	  /* Clear the whole map */
  	  bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH);
***************
*** 503,508 ****
--- 601,614 ----
  	    }
  	  /* Discard any bitmap bytes that are all 0 at the end of the map.
  	     Decrement the map-length byte too. */
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	  }
+ 	  if (b[-1] > 32) {	/* in Nemacs, (b[-1] > 32) means jcode_set,
+ 				   and hence can not reduce the map */
+ 	    b += (int)b[-1] * 16;
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
  	    b[-1]--;
  	  b += b[-1];
***************
*** 596,601 ****
--- 702,733 ----
  	      PATPUSH (at_dot);
  	      break;
  
+ #ifdef NEMACS  /* 88.6.2, 89.9.19  by K.Handa */
+ 	    case 'c':	
+ 	      laststart = b;
+ 	      PATPUSH (categoryspec);
+ 	      PATFETCH_RAW (c);
+ 	      PATPUSH (category_spec_code[c]);
+ 	      break;
+ 
+ 	    case 'C':
+ 	      laststart = b;
+ 	      PATPUSH (notcategoryspec);
+ 	      PATFETCH_RAW (c);
+ 	      PATPUSH (category_spec_code[c]);
+ 	      break;
+ 
+ 	    case 'h':
+ 	      laststart = b;
+ 	      PATPUSH (onebyte);
+ 	      break;
+ 
+ 	    case 'z':
+ 	      laststart = b;
+ 	      PATPUSH (twobyte);
+ 	      break;
+ #endif  /* NEMACS */
+ 
  	    case 's':	
  	      laststart = b;
  	      PATPUSH (syntaxspec);
***************
*** 775,781 ****
--- 907,918 ----
  {
    unsigned char *pattern = (unsigned char *) bufp->buffer;
    int size = bufp->used;
+ #ifdef NEMACS  /* 89.9.17  by K.Handa */
+   register unsigned char *fastmap = (unsigned char *)bufp->fastmap;
+   int bf_kanji = !NULL(bf_cur->kanji_flag);
+ #else
    register char *fastmap = bufp->fastmap;
+ #endif
    register unsigned char *p = pattern;
    register unsigned char *pend = pattern + size;
    register int j, k;
***************
*** 881,886 ****
--- 1018,1030 ----
  	  break;
  
  	case wordchar:
+ #ifdef NEMACS  /* 89.9.17  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    for (j = 0xa1; j < 0xff; j++)
+ 	      if (CTGJWORD(category_table[j]))
+ 		fastmap[j] = 1;
+ 	  }
+ #endif
  	  for (j = 0; j < (1 << BYTEWIDTH); j++)
  	    if (SYNTAX (j) == Sword)
  	      fastmap[j] = 1;
***************
*** 890,898 ****
--- 1034,1083 ----
  	  for (j = 0; j < (1 << BYTEWIDTH); j++)
  	    if (SYNTAX (j) != Sword)
  	      fastmap[j] = 1;
+ #ifdef NEMACS  /* 89.9.17  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    for (j = 0xa1; j < 0xff; j++)
+ 	      if (CTGJWORD(category_table[j]))
+ 		fastmap[j] = 0;
+ 	    break;
+ 	  }
+ #endif
  	  break;
  
  #ifdef emacs
+ #ifdef NEMACS  /* 88.6.1  by K.Handa */
+ 	case onebyte:
+ 	  for (j = 0; j < (1 << BYTEWIDTH); j++)
+ 	    fastmap[j] = 1;
+ 	  fastmap['\n'] = 0;
+ 	  break;
+ 	  
+ 	case twobyte:
+ 	  for (j = 0xa1; j < 0xff; j++)
+ 	    fastmap[j] = 1;
+ 	  break;
+ 
+ 	case categoryspec:
+ 	  k = *p++;
+ 	  if (CTGSPECIAL(k))
+ 	    fastmap[0xa1] = 1;
+ 	  else 
+ 	    for (j = 0; j < (1 << BYTEWIDTH); j++)
+ 	      if (category_table[j] == k)
+ 		fastmap[j] = 1;
+ 	  break;
+ 
+ 	case notcategoryspec:
+ 	  k = *p++;
+ 	  if (CTGSPECIAL((enum categorycode) k)) {
+ 	    continue;
+ 	  } else
+ 	    for (j = 0; j < (1 << BYTEWIDTH); j++)
+ 	      if (category_table[j] !=  k)
+ 		fastmap[j] = 1;
+ 	  break;
+ #endif  /* NEMACS */
+ 
  	case syntaxspec:
  	  k = *p++;
  	  for (j = 0; j < (1 << BYTEWIDTH); j++)
***************
*** 909,914 ****
--- 1094,1123 ----
  #endif emacs
  
  	case charset:
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	  if (*p > 32) {
+ 	    int j;
+ 	    j = (int)*p++ * 16 - 1;
+ 	    while (j >= 16 * 0x21) {
+ 	      if (p[j]) {
+ 		if (translate)
+ 		  fastmap[translate[(j / 16) | 0x80]] = 1;
+ 		else
+ 		  fastmap[(j / 16) | 0x80] = 1;
+ 		j = j / 16 * 16;
+ 	      }
+ 	      j--;
+ 	    }
+ 	    for (j = 255; j >= 0; j--)
+ 	      if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) {
+ 		if (translate)
+ 		  fastmap[translate[j]] = 1;
+ 		else
+ 		  fastmap[j] = 1;
+ 	      }
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
  	    if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
  	      {
***************
*** 920,925 ****
--- 1129,1162 ----
  	  break;
  
  	case charset_not:
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	  if (*p > 32) {
+ 	    int j;
+ 	    j = (int)*p++ * 16 - 1;
+ 	    while (j >= 0) {
+ 	      if (p[j])	{
+ 		j = j / 16 * 16 - 1;
+ 		continue;
+ 	      }
+ 	      if (j % 16 == 0) {
+ 		if (translate)
+ 		  fastmap[translate[(j / 16) | 0x80]] = 1;
+ 		else
+ 		  fastmap[(j / 16) | 0x80] = 1;
+ 	      }
+ 	      j--;
+ 	    }
+ 	    for (j = 255; j >= 0; j--)
+ 	      if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
+ 		{
+ 		  if (translate)
+ 		    fastmap[translate[j]] = 1;
+ 		  else
+ 		    fastmap[j] = 1;
+ 		}
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  /* Chars beyond end of map must be allowed */
  	  for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
  	    if (translate)
***************
*** 975,981 ****
--- 1212,1223 ----
  int
  re_search_2 (pbufp, string1, size1, string2, size2, startpos, range, regs, mstop)
       struct re_pattern_buffer *pbufp;
+ #ifdef NEMACS  /* 88.6.9  by K.Handa */
+      unsigned char *string1, *string2;	/* We assume that the end of string1 */
+      					/* doesn't violate kanji-border. */
+ #else
       char *string1, *string2;
+ #endif
       int size1, size2;
       int startpos;
       register int range;
***************
*** 986,991 ****
--- 1228,1236 ----
    register unsigned char *translate = (unsigned char *) pbufp->translate;
    int total = size1 + size2;
    int val;
+ #ifdef NEMACS  /* 88.6.9  by K.Handa */
+   int bf_kanji = !NULL(bf_cur->kanji_flag);
+ #endif
  
    /* Update the fastmap now if not correct already */
    if (fastmap && !pbufp->fastmap_accurate)
***************
*** 1017,1022 ****
--- 1262,1270 ----
  	      register int lim = 0;
  	      register unsigned char *p;
  	      int irange = range;
+ #ifdef NEMACS  /* 88.6.9  by K.Handa */
+ 	      register int illegal_kanji_border = 0;
+ #endif
  	      if (startpos < size1 && startpos + range >= size1)
  		lim = range - (size1 - startpos);
  
***************
*** 1025,1038 ****
--- 1273,1311 ----
  
  	      if (translate)
  		{
+ #ifdef NEMACS  /* 88.1.5, 88.6.6  by K.Handa */
+ 		  while (range > lim && (!fastmap[translate[*p]]
+ 					 || bf_kanji && illegal_kanji_border))
+ 		    {
+ 		      if (*p++ & 0x80)
+ 			illegal_kanji_border = !illegal_kanji_border;
+ 		      else
+ 			illegal_kanji_border = 0;
+ 		      range--;
+ 		    }
+ #else
  		  while (range > lim && !fastmap[translate[*p++]])
  		    range--;
+ #endif
  		}
  	      else
  		{
+ #ifdef NEMACS  /* 88.1.5, 88.6.6  by K.Handa */
+ 		  while (range > lim && (!fastmap[*p]
+ 					 || bf_kanji && illegal_kanji_border))
+ 		    {
+ 		      if (*p++ & 0x80)
+ 			illegal_kanji_border = !illegal_kanji_border;
+ 		      else
+ 			illegal_kanji_border = 0;
+ 		      range--;
+ 		    }
+ 		}
+ #else
  		  while (range > lim && !fastmap[*p++])
  		    range--;
  		}
+ #endif
  	      startpos += irange - range;
  	    }
  	  else
***************
*** 1066,1072 ****
--- 1339,1360 ----
  
      advance:
        if (!range) break;
+ #ifdef NEMACS  /* 88.1.9, 88.6.6, 89.9.15  by K.Handa */
+       if (range > 0) {
+ 	if ((startpos >= size1 ? string2 - size1 : string1)[startpos] & 0x80
+ 	    && range >= 2)
+ 	  range -= 2, startpos += 2;
+ 	else
+ 	  range--, startpos++;
+       } else {
+ 	range++, startpos--;
+ 	if ((startpos >= size1 ? string2 - size1 : string1)[startpos] & 0x80
+ 	    && range <= -1)
+ 	  range++, startpos--;
+       }
+ #else
        if (range > 0) range--, startpos++; else range++, startpos--;
+ #endif
      }
    return -1;
  }
***************
*** 1122,1127 ****
--- 1410,1420 ----
    /* Pointer just past last char to consider matching */
    unsigned char *end_match_1, *end_match_2;
    register unsigned char *d, *dend;
+ #ifdef NEMACS  /* 88.1.5,  89.9.17, 89.9.19  by K.Handa */
+   int bf_kanji = !NULL(bf_cur->kanji_flag);
+   unsigned char *d_1, chr1, chr2;
+   enum categorycode ctg1, ctg2;
+ #endif
    register int mcnt;
    unsigned char *translate = (unsigned char *) pbufp->translate;
  
***************
*** 1195,1200 ****
--- 1488,1521 ----
    else
      d = string2 + pos - size1, dend = end_match_2;
  
+ #ifdef NEMACS  /* 89.9.14, 89.10.22, 90.1.25 */
+ #define D_INCRE \
+   { \
+     if (SYNTAX(*d++) == Sjapanese && bf_kanji \
+ 	&& d != dend && SYNTAX(*d) == Sjapanese) d++; \
+   }
+ #define CATEGORY_SET1 \
+   { \
+     d_1 = d - 1; \
+     chr1 = translate ? translate[*d_1] : *d_1; \
+     if (d_1 == string1 || d_1 == string2 || SYNTAX(chr1) != Sjapanese) \
+       ctg1 = (enum categorycode) SYNTAX(chr1); \
+     else { \
+       d_1--; \
+       ctg1 = CATEGORY(*d_1, chr1); \
+     } \
+   }
+ #define CATEGORY_SET2 \
+   { \
+     d_1 = (d == end1) ? string2 : d; \
+     chr1 = translate ? translate[*d_1++] : *d_1++; \
+     if (d_1 == dend || SYNTAX(chr1) != Sjapanese) \
+       ctg2 = (enum categorycode) SYNTAX(chr1); \
+     else \
+       ctg2 = CATEGORY(chr1, *d_1); \
+   }
+ #endif
+ 
  /* Write PREFETCH; just before fetching a character with *d.  */
  #define PREFETCH \
   while (d == dend)						    \
***************
*** 1306,1313 ****
--- 1627,1642 ----
  	  /* fetch a data character */
  	  PREFETCH;
  	  /* Match anything but a newline.  */
+ #ifdef NEMACS  /* 89.9.14, 89.10.20  by K.Handa */
+ 	  if ((translate ? translate[*d] : *d) == '\n') {
+ 	    d++;
+ 	    goto fail;
+ 	  }
+ 	  D_INCRE;
+ #else
  	  if ((translate ? translate[*d++] : *d++) == '\n')
  	    goto fail;
+ #endif
  	  break;
  
  	case charset:
***************
*** 1327,1332 ****
--- 1656,1674 ----
  	    else
  	      c = *d;
  
+ #ifdef NEMACS  /* 89.11.14  by K.Handa */
+ 	    if (*p > 32) {
+ 	      int cc = 0;
+ 	      if (JCODE(c)) cc = c & 0x7f, c = *(d + 1) & 0x7f;
+ 	      if (cc < *p
+ 		  && p[1 + cc * 16 + c / 8] & (1 << (c % 8)))
+ 		not = !not;
+ 	      p += 1 + (int)*p * 16;
+ 	      if (!not) goto fail;
+ 	      D_INCRE;
+ 	      break;
+ 	    }
+ #endif  /* NEMACS */
  	    if (c < *p * BYTEWIDTH
  		&& p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
  	      not = !not;
***************
*** 1334,1340 ****
--- 1676,1686 ----
  	    p += 1 + *p;
  
  	    if (!not) goto fail;
+ #ifdef NEMACS  /* 89.9.14, 89.10.20  by K.Handa */
+ 	    D_INCRE;
+ #else
  	    d++;
+ #endif
  	    break;
  	  }
  
***************
*** 1459,1464 ****
--- 1805,1821 ----
  	      || d == end2  /* Points to end */
  	      || (d == end1 && size2 == 0)) /* Points to end */
  	    break;
+ #ifdef NEMACS  /* 89.9.14, 89.9.20  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    CATEGORY_SET1;
+ 	    CTGEXTEND(ctg1);
+ 	    CATEGORY_SET2;
+ 	    CTGEXTEND(ctg2);
+ 	    if (CTGHIRA(ctg2) && CTGJWORD(ctg1)) goto fail;
+ 	    if (ctg1 != ctg2 && (CTGWORD(ctg1) || CTGWORD(ctg2))) break;
+ 	    goto fail;
+ 	  }
+ #endif  /* NEMACS */
  	  if ((SYNTAX (d[-1]) == Sword)
  	      != (SYNTAX (d == end1 ? *string2 : *d) == Sword))
  	    break;
***************
*** 1469,1474 ****
--- 1826,1842 ----
  	      || d == end2  /* Points to end */
  	      || (d == end1 && size2 == 0)) /* Points to end */
  	    goto fail;
+ #ifdef NEMACS  /* 89.9.14, 89.9.20  by K.Handa */
+           if (bf_kanji) {
+ 	    CATEGORY_SET1;
+ 	    CTGEXTEND(ctg1);
+ 	    CATEGORY_SET2;
+ 	    CTGEXTEND(ctg2);
+ 	    if (CTGHIRA(ctg2) && CTGJWORD(ctg1)) break;
+ 	    if (ctg1 != ctg2 && (CTGWORD(ctg1) || CTGWORD(ctg2))) goto fail;
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  if ((SYNTAX (d[-1]) == Sword)
  	      != (SYNTAX (d == end1 ? *string2 : *d) == Sword))
  	    goto fail;
***************
*** 1475,1480 ****
--- 1843,1862 ----
  	  break;
  
  	case wordbeg:
+ #ifdef NEMACS  /* 89.9.14  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    if (d == end2 || (d == end1 && size2 == 0)) goto fail;
+ 	    CATEGORY_SET2;
+ 	    CTGEXTEND(ctg2);
+ 	    if (!CTGWORD(ctg2)) goto fail;
+ 	    if (d == string1) break;
+ 	    CATEGORY_SET1;
+ 	    CTGEXTEND(ctg1);
+ 	    if (ctg1 == ctg2
+ 		|| (CTGHIRA(ctg2) && CTGJWORD(ctg1))) goto fail;
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  if (d == end2  /* Points to end */
  	      || (d == end1 && size2 == 0) /* Points to end */
  	      || SYNTAX (* (d == end1 ? string2 : d)) != Sword) /* Next char not a letter */
***************
*** 1485,1490 ****
--- 1867,1886 ----
  	  goto fail;
  
  	case wordend:
+ #ifdef NEMACS  /* 89.9.14  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    if (d == string1) goto fail;
+ 	    CATEGORY_SET1;
+ 	    CTGEXTEND(ctg1);
+ 	    if (!CTGWORD(ctg1)) goto fail;
+ 	    if (d == end2 || (d == end1 && size2 == 0)) break;
+ 	    CATEGORY_SET2;
+ 	    CTGEXTEND(ctg2);
+ 	    if (ctg1 == ctg2
+ 		|| (CTGHIRA(ctg2) && CTGJWORD(ctg1))) goto fail;
+ 	    break;
+ 	  }
+ #endif  /* NEMACS */
  	  if (d == string1  /* Points to first char */
  	      || SYNTAX (d[-1]) != Sword)  /* prev char not letter */
  	    goto fail;
***************
*** 1516,1522 ****
--- 1912,1960 ----
  	    goto fail;
  	  break;
  
+ #ifdef NEMACS  /* 88.6.2, 89.9.17  by K.Handa */
+ 	case categoryspec:
+ 	  mcnt = *p++;
+ 	  CATEGORY_SET2;
+ 	  PREFETCH;
+ 	  D_INCRE;
+ 	  if (ctg2 != (enum categorycode) mcnt) goto fail;
+ 	  break;
+ 	  
+ 	case notcategoryspec:
+ 	  mcnt = *p++;
+ 	  CATEGORY_SET2;
+ 	  PREFETCH;
+ 	  D_INCRE;
+ 	  if (ctg2 == (enum categorycode) mcnt) goto fail;
+ 	  break;
+ 
+ 	case onebyte:
+ 	  PREFETCH;
+ 	  if ((translate ? translate[*d] : *d) == '\n') goto fail;
+ 	  d_1 = d;
+ 	  D_INCRE;
+ 	  if (d - d_1 == 2) goto fail;
+ 	  break;
+ 
+ 	case twobyte:
+ 	  PREFETCH;
+ 	  d_1 = d;
+ 	  D_INCRE;
+ 	  if (++d_1 == d) goto fail;
+ 	  break;
+ #endif
+ 
  	case wordchar:
+ #ifdef NEMACS  /* 89.9.17, 89.9.20  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    CATEGORY_SET2;
+ 	    PREFETCH;
+ 	    D_INCRE;
+ 	    if (CTGWORD(ctg2)) break;
+ 	    goto fail;
+ 	  }
+ #endif
  	  mcnt = (int) Sword;
  	  goto matchsyntax;
  
***************
*** 1524,1533 ****
--- 1962,1987 ----
  	  mcnt = *p++;
  	matchsyntax:
  	  PREFETCH;
+ #ifdef NEMACS  /* 89.9.17, 89.9.20  by K.Handa */
+ 	  d_1 = d;
+ 	  D_INCRE;
+ 	  if (d - d_1 == 2
+ 	      || SYNTAX (*d_1) != (enum syntaxcode) mcnt) goto fail;
+ #else
  	  if (SYNTAX (*d++) != (enum syntaxcode) mcnt) goto fail;
+ #endif
  	  break;
  	  
  	case notwordchar:
+ #ifdef NEMACS  /* 89.9.17, 89.10.20  by K.Handa */
+ 	  if (bf_kanji) {
+ 	    CATEGORY_SET2;
+ 	    PREFETCH;
+ 	    D_INCRE;
+ 	    if (CTGWORD(ctg2)) goto fail;
+ 	    break;
+ 	  }
+ #endif
  	  mcnt = (int) Sword;
  	  goto matchnotsyntax;
  
***************
*** 1535,1541 ****
--- 1989,2002 ----
  	  mcnt = *p++;
  	matchnotsyntax:
  	  PREFETCH;
+ #ifdef NEMACS  /* 89.9.17, 89.9.20  by K.Handa */
+ 	  d_1 = d;
+ 	  D_INCRE;
+ 	  if (d - d_1 != 2
+ 	      && SYNTAX (*d_1) == (enum syntaxcode) mcnt) goto fail;
+ #else
  	  if (SYNTAX (*d++) == (enum syntaxcode) mcnt) goto fail;
+ #endif
  	  break;
  #else
  	case wordchar:
***************
*** 1563,1573 ****
--- 2024,2041 ----
  	  /* Match the next few pattern characters exactly.
  	     mcnt is how many characters to match. */
  	  mcnt = *p++;
+ #ifdef NEMACS	/* 89.10.22  by K.Handa */
+ 	  {  int jcnt = 0;
+ #endif
  	  if (translate)
  	    {
  	      do
  		{
  		  PREFETCH;
+ #ifdef NEMACS	/* 89.10.22  by K.Handa */
+ 		  if (SYNTAX(translate[*d]) == Sjapanese) jcnt++;
+ 		  else jcnt = 0;
+ #endif
  		  if (translate[*d++] != *p++) goto fail;
  		}
  	      while (--mcnt);
***************
*** 1577,1586 ****
--- 2045,2062 ----
  	      do
  		{
  		  PREFETCH;
+ #ifdef NEMACS	/* 89.10.22  by K.Handa */
+ 		  if (SYNTAX(*d) == Sjapanese) jcnt++;
+ 		  else jcnt = 0;
+ #endif
  		  if (*d++ != *p++) goto fail;
  		}
  	      while (--mcnt);
  	    }
+ #ifdef NEMACS	/* 89.10.22  by K.Handa */
+ 	  if (jcnt % 2 == 1 && SYNTAX(*d) == Sjapanese) goto fail;
+ 	  }
+ #endif
  	  break;
  	}
        continue;    /* Successfully matched one pattern command; keep matching */
diff -arcN emacs-18.55/src/regex.h nemacs-3.3.2/src/regex.h
*** emacs-18.55/src/regex.h	Sun Aug 14 03:15:10 1988
--- nemacs-3.3.2/src/regex.h	Wed Jun  6 03:18:22 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 88.6.2   modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.10.19 modified for Nemacs Ver.3.2 by K.Handa */
+ 
  /* Definitions for data structures callers pass the regex library.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 247,252 ****
--- 250,262 ----
      wordend,	 /* Succeeds if at word end */
      wordbound,   /* Succeeds if at a word boundary */
      notwordbound, /* Succeeds if not at a word boundary */
+ #ifdef NEMACS  /* 88.6.2, 89.9.19   by K.Handa */
+     categoryspec, /* Matches any character whose category is specified.
+ 		    followed by a byte which contains a wordcode, CJalpha or such like */
+     notcategoryspec, /* Matches any character whose category differs from the specified. */
+     onebyte,  /* Matches any 1-byte character */
+     twobyte,  /* Matches any 2-byte character */
+ #endif
      syntaxspec,  /* Matches any character whose syntax is specified.
  		    followed by a byte which contains a syntax code, Sword or such like */
      notsyntaxspec /* Matches any character whose syntax differs from the specified. */
diff -arcN emacs-18.55/src/search.c nemacs-3.3.2/src/search.c
*** emacs-18.55/src/search.c	Thu Aug  3 15:05:06 1989
--- nemacs-3.3.2/src/search.c	Wed Jun  6 03:18:22 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /* 88.1.7   modified for Nemacs Ver.2.0 by K.Handa */
+ /* 90.2.27  modified for Nemacs Ver.3.3 by K.Handa
+ 	Fouth argument of search_buffer is corrected. */
+ 
  /* String search routines for GNU Emacs.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 25,30 ****
--- 29,37 ----
  #include "buffer.h"
  #include "commands.h"
  #include "regex.h"
+ #ifdef NEMACS  /* 89.9.13  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  #define max(a, b) ((a) > (b) ? (a) : (b))
  #define min(a, b) ((a) < (b) ? (a) : (b))
***************
*** 360,366 ****
    if (forwardp)
      {
        while (point < XINT (lim) && fastmap[CharAt (point)])
! 	PointRight (1);
      }
    else
      {
--- 367,377 ----
    if (forwardp)
      {
        while (point < XINT (lim) && fastmap[CharAt (point)])
! #ifdef NEMACS  /* 89.9.13  by K.Handa */
! 	PointRight (((EUC_P(CharAt (point))) ? 2 : 1));
! #else
!         PointRight (1);
! #endif
      }
    else
      {
***************
*** 386,391 ****
--- 397,405 ----
      {
        CHECK_NUMBER (count, 3);
        n *= XINT (count);
+ #ifdef NEMACS  /* 90.2.27  by K.Handa & enami@ptgd.sony.co.jp */
+       direction = n > 0 ? 1 : -1;
+ #endif
      }
  
    CHECK_STRING (string, 0);
***************
*** 403,410 ****
--- 417,444 ----
  	lim = FirstCharacter;
      }
  
+ #ifdef NEMACS  /* 88.5.30  by K.Handa */
+   if (NULL(bf_cur->kanji_flag) || RE)
+ #endif
    np = search_buffer (string, point, lim, n, RE,
  		      !NULL (bf_cur->case_fold_search) ? downcase_table : 0);
+ #ifdef NEMACS  /* 88.5.30, 89.8.24  by K.Handa */
+   else {
+     np = point;
+     while (FirstCharacter <= np && np <= NumCharacters + 1 && n != 0) {
+       np = search_buffer (string, np, lim, direction, RE,
+ 		      !NULL (bf_cur->case_fold_search) ? downcase_table : 0);
+       if (n > 0) {
+ 	if (kanji_point(np - XSTRING(string)->size) < 2) n--;
+ 	else np -= XSTRING(string)->size - 1;
+       } else {
+ 	if (kanji_point(np) < 2) n++;
+       }
+     }
+   }
+   if (kanji_point(np) == 2) np += direction;
+ #endif  /* NEMACS */
+ 
    if (np <= 0)
      {
        if (NULL (noerror))
diff -arcN emacs-18.55/src/syntax.c nemacs-3.3.2/src/syntax.c
*** emacs-18.55/src/syntax.c	Tue Jan 19 20:49:45 1988
--- nemacs-3.3.2/src/syntax.c	Fri Jun  8 19:56:51 1990
***************
*** 1,3 ****
--- 1,16 ----
+ /* 88.1.5   modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.6.1   modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.9.19  modified for Nemacs Ver.3.2 by K.Handa */
+ /* 89.12.12 modified for Nemacs Ver.3.2.1 by K.Handa
+ 	Numeric argument of minus value is handled
+ 	correctly in scan_words. */
+ /* 90.4.25  modified for Nemacs Ver.3.3.2 by Y.Ogawa
+ 	Handle Sjapanese in scan_lists and scan_sexps_forward correctly. */
+ /* 90.6.6   modified for Nemacs Ver.3.3.2 by abe@sunrise.hallab.co.jp
+ 	'unsigned char prev;' in scan_sexps_forward */
+ /* 90.6.9   modified for Nemacs Ver.3.3.2 by takagi@sdl.hitachi.co.jp
+ 	SWITCH_ENUM_BUG	is considered */
+ 
  /* GNU Emacs routines to deal with syntax tables; also word and list parsing.
     Copyright (C) 1985, 1987 Free Software Foundation, Inc.
  
***************
*** 25,30 ****
--- 38,49 ----
  #include "commands.h"
  #include "buffer.h"
  #include "syntax.h"
+ #ifdef NEMACS  /* 88.1.4, 89.9.19  by K.Handa.4 */
+ #include "kanji.h"
+ 
+ unsigned char category_table[0400];
+ unsigned char ex_category_table[0200];
+ #endif  /* NEMACS */
  
  Lisp_Object Qsyntax_table_p, Vstandard_syntax_table;
  
***************
*** 126,132 ****
--- 145,155 ----
      0377, 0377, 0377, 0377, 0377, 0377, 0377, (char) Sword,
      0377, 0377, 0377, 0377, (char) Sescape, 0377, 0377, (char) Ssymbol,
      0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,   /* `, a, ... */
+ #ifdef NEMACS  /* 89.9.19  by K.Handa */
+     0377, 0377, (char) Sjapanese, 0377, 0377, 0377, 0377, 0377,
+ #else
      0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+ #endif
      0377, 0377, 0377, 0377, 0377, 0377, 0377, (char) Sword,
      0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377
    };
***************
*** 133,143 ****
  
  /* Indexed by syntax code, give the letter that describes it. */
  
  char syntax_code_spec[13] =
    {
      ' ', '.', 'w', '_', '(', ')', '\'', '\"', '$', '\\', '/', '<', '>'
    };
! 
  DEFUN ("char-syntax", Fchar_syntax, Schar_syntax, 1, 1, 0,
    "Return the syntax code of CHAR, described by a character.\n\
  For example, if CHAR is a word constituent, ?w is returned.\n\
--- 156,173 ----
  
  /* Indexed by syntax code, give the letter that describes it. */
  
+ #ifdef NEMACS  /* 89.9.19  by K.Handa */
+ char syntax_code_spec[14] =
+   {
+     ' ', '.', 'w', '_', '(', ')', '\'', '\"', '$', '\\', '/', '<', '>', 'j'
+   };
+ #else
  char syntax_code_spec[13] =
    {
      ' ', '.', 'w', '_', '(', ')', '\'', '\"', '$', '\\', '/', '<', '>'
    };
! #endif
! 
  DEFUN ("char-syntax", Fchar_syntax, Schar_syntax, 1, 1, 0,
    "Return the syntax code of CHAR, described by a character.\n\
  For example, if CHAR is a word constituent, ?w is returned.\n\
***************
*** 150,155 ****
--- 180,251 ----
    return make_number (syntax_code_spec[(int) SYNTAX (0xFF & XINT (ch))]);
  }
  
+ #ifdef NEMACS  /* 88.1.18, 88.6.1, 89.9.19  by K.Handa */
+ /* Convert a letter which signifies a category code
+  into the code it signifies. */
+ 
+ char category_spec_code[0200] =
+   { 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     (char) Cwhitespace, 0377, (char) Cstring, 0377,
+         (char) Cmath, 0377, 0377, (char) Cquote,
+     (char) Copen, (char) Cclose, 0377, 0377,
+ 	0377, (char) Cwhitespace, (char) Cpunct, (char) Ccharquote,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377,
+ 	(char) Ccomment, 0377, (char) Cendcomment, 0377,
+     0377, 0377, 0377, (char) CJspkanji,			/* @, A, ... */
+         0377, 0377, 0377, 0377,
+     (char) CJsphira, 0377, 0377, (char) CJspkata,
+         0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+     0377, 0377, 0377, 0377, (char) Cescape, 0377, 0377, (char) Csymbol,
+     0377, (char) CJalpha, 0377, (char) CJkanji,		/* `, a, ... */
+         0377, 0377, 0377, (char) CJgreek,
+     (char) CJhira, 0377, 0377, (char) CJkata, 0377, 0377, 0377, 0377,
+     0377, 0377, (char) CJrussian, (char) CJsymbol,
+         0377, (char) CJundef, 0377, (char) Cword,
+     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+   };
+ 
+ /* Indexed by category code, give the letter that describes it. */
+ 
+ char category_code_spec[24] =
+   {
+     ' ', '.', 'w', '_', '(', ')', '\'', '\"', '$', '\\', '/', '<', '>',
+     's', 'u', 'a', 'h', 'H', 'k', 'K', 'g', 'r', 'c', 'C'
+   };
+ 
+ DEFUN ("char-category", Fchar_category, Schar_category, 1, 1, 0,
+   "One argument, POS or STRING.\n\
+ Return the category code of the character at POS\n\
+ or the first charater of STRING, described by a character.\n\
+ For example, if the character is a Hiragana, ?h is returned.\n\
+ The characters that correspond to various category codes\n\
+ are listed in the entry INFO documentation.\n\
+ Return NIL if POS is out of range or STRING is NULL.")
+   (arg)
+      Lisp_Object arg;
+ {
+   register Lisp_Object val;
+   register unsigned char c1, c2;
+ 
+   if (XTYPE ((arg)) != Lisp_String) {
+     CHECK_NUMBER_COERCE_MARKER (arg, 0);
+     if (XINT(arg) < FirstCharacter || XINT(arg) > NumCharacters) return Qnil;
+     c1 = CharAt(XINT(arg));
+     c2 = (XINT(arg) == NumCharacters) ? 0 : CharAt(XINT(arg+1));
+   } else {
+     if (XSTRING(arg)->size == 0) return Qnil;
+     c1 = *(XSTRING(arg)->data);
+     c2 = (XSTRING(arg)->size == 1) ? 0 : *(XSTRING(arg)->data + 1);
+   }
+   return make_number (category_code_spec[(int) CATEGORY(c1, c2)]);
+ }
+ #endif  /* NEMACS */
+ 
  /* This comment supplies the doc string for modify-syntax-entry,
     for make-docfile to see.  We cannot put this in the real DEFUN
     due to limits in the Unix cpp.
***************
*** 312,317 ****
--- 408,417 ----
        InsStr ("comment"); break;
      case Sendcomment:
        InsStr ("endcomment"); break;
+ #ifdef NEMACS  /* 89.9.19  by K.Handa */
+     case Sjapanese:
+       InsStr ("Japanese"); break;
+ #endif
      default:
        InsStr ("invalid");
        return;
***************
*** 365,375 ****
--- 465,488 ----
     If that many words cannot be found before the end of the buffer, return 0.
     `count' negative means scan backward and stop at word beginning.  */
  
+ #ifdef NEMACS  /* 89.9.14  by K.Handa */
+ #define Scan_Hiragana { \
+   while ((from += 2) < end) { \
+ 	category1 = CATEGORY(CharAt (from), CharAt (from + 1)); \
+ 	if (!CTGHIRA(category1)) break; \
+   } \
+ }
+ #endif
+ 
  scan_words (from, count)
       register int from, count;
  {
    register int beg = FirstCharacter;
    register int end = NumCharacters + 1;
+ #ifdef NEMACS  /* 88.1.4, 89.9.19  by K.Handa */
+   register enum categorycode category1, category2;
+   register unsigned char c1, c2;
+ #endif
  
    immediate_quit = 1;
    QUIT;
***************
*** 384,392 ****
--- 497,566 ----
  	      return 0;
  	    }
  	  if (SYNTAX(CharAt (from)) == Sword)
+ #ifdef NEMACS  /* 88.1.4, 89.9.14, 89.10.19  by K.Handa */
+ 	    {
+ 	      category1 = Cword;
+ 	      break;
+ 	    }
+ 	  if (from == end - 1)
+ 	    {
+ 	      immediate_quit = 0;
+ 	      return 0;
+ 	    }
+ 	  c1 = CharAt (from); c2 = CharAt (from + 1);
+ 	  category1 = CATEGORY(c1, c2);
+ 	  if (CTGWORD(category1)) break;
+ 	  if ((int) category1 >= (int) CJsymbol) from++;
+ #else
  	    break;
+ #endif
  	  from++;
  	}
+ #ifdef NEMACS  /* 88.1.4, 89.9.14, 89.10.19  by K.Handa */
+ #ifdef SWITCH_ENUM_BUG	/* 1990-mar-30 by takagi@sdl.hitachi.co.jp */
+       switch ((int)category1) {
+ #else
+       switch (category1) {
+ #endif
+       case Cword:	/* if normal ascii word */
+ 	while (++from < end && SYNTAX(CharAt (from)) == Sword);
+ 	break;
+       case CJsphira:
+       case CJspkata:
+       case CJspkanji:
+ 	category1 = (enum categorycode) ((int) category1 - 1);
+       case CJhira:
+       case CJkata:
+       case CJkanji:
+ 	end--;
+ 	while ((from += 2) < end) {
+ 	  c1 = CharAt (from); c2 = CharAt (from + 1);
+ 	  category2 = CATEGORY(c1, c2);
+ 	  if (CTGHIRA(category2)) {
+ 	    Scan_Hiragana;
+ 	    break;
+ 	  }
+ 	  if (category2 != category1
+ 	      && category2 != (enum categorycode) ((int) category1 + 1)) {
+ 	    break;
+ 	  }
+ 	}
+ 	break;
+       default:
+ 	end--;
+ 	while ((from += 2) < end) {
+ 	  c1 = CharAt (from); c2 = CharAt (from + 1);
+ 	  category2 = CATEGORY(c1, c2);
+ 	  if (CTGHIRA(category2)) {
+ 	    Scan_Hiragana;
+ 	    break;
+ 	  } else if (category2 != category1) {
+ 	    break;
+ 	  }
+ 	}
+         break;
+       }
+ #else  /* not NEMACS */
        while (1)
  	{
  	  if (from == end) break;
***************
*** 394,399 ****
--- 568,574 ----
  	    break;
  	  from++;
  	}
+ #endif  /* not NEMACS */
        count--;
      }
    while (count < 0)
***************
*** 405,414 ****
--- 580,660 ----
  	      immediate_quit = 0;
  	      return 0;
  	    }
+ #ifdef NEMACS  /* 88.1.4, 89.9.14, 89.10.19  by K.Handa */
+ 	  if (kanji_point(--from) == 2) {
+ 	    from--;
+ 	    c1 = CharAt (from); c2 = CharAt (from + 1);
+ 	    category1 = CATEGORY(c1, c2);
+ 	    if (CTGWORD(category1)) break;
+ 	  } else {
+ 	    if (SYNTAX(CharAt (from)) == Sword) {
+ 	      category1 = Cword;
+ 	      break;
+ 	    }
+ 	  }
+ #else
  	  if (SYNTAX(CharAt (from - 1)) == Sword)
  	    break;
  	  from--;
+ #endif
+ 	}
+ #ifdef NEMACS  /* 88.1.4  by K.Handa */
+       if (category1 == Cword) {
+ 	while (from > beg && SYNTAX(CharAt (from - 1)) == Sword) from--;
+       } else if (CTGHIRA(category1)) {
+ 	while (from > beg + 1) {
+ 	  c2 = CharAt (from - 1);
+ 	  if (SYNTAX(c2) == Sjapanese) {
+ 	    c1 = CharAt (from - 2); 
+ 	    category1 = CATEGORY(c1, c2);
+ 	    if (!CTGHIRA(category1)) break;
+ 	    from -= 2;
+ 	  } else {
+ 	    category1 = CATEGORY(c2, 0);
+ 	    break;
+ 	  }
+ 	}
+       }
+ #ifdef SWITCH_ENUM_BUG	/* 1990-mar-30 by takagi@sdl.hitachi.co.jp */
+       switch ((int)category1) {
+ #else
+       switch (category1) {
+ #endif
+       case CJspkata:
+       case CJspkanji:
+ 	category1 = (enum categorycode) ((int) category1 - 1);
+       case CJkata:
+       case CJkanji:
+ 	while (from > beg + 1) {
+ 	  c2 = CharAt (from - 1);
+ 	  if (SYNTAX(c2) == Sjapanese) {
+ 	    c1 = CharAt (from - 2);
+ 	    category2 = CATEGORY(c1, c2);
+ 	    if (category2 != category1
+ 		&& category2 != (enum categorycode) ((int) category1 + 1))
+ 	      break;
+ 	    from -= 2;
+ 	  } else
+ 	    break;
+ 	}
+ 	break;
+       case CJalpha:
+       case CJgreek:
+       case CJrussian:
+ 	while (from > beg + 1) {
+ 	  c2 = CharAt (from - 1);
+ 	  if (SYNTAX(c2) == Sjapanese) {
+ 	    c1 = CharAt (from - 2);
+ 	    if (category1 != CATEGORY(c1, c2)) break;
+ 	    from -= 2;
+ 	  } else
+ 	    break;
  	}
+ 	break;
+       default:
+ 	break;
+       }
+ #else  /* not NEMACS */
        while (1)
  	{
  	  if (from == beg) break;
***************
*** 416,421 ****
--- 662,668 ----
  	    break;
  	  from--;
  	}
+ #endif  /* not NEMACS */
        count++;
      }
  
***************
*** 490,495 ****
--- 737,745 ----
  	      from++;
  	      /* treat following character as a word constituent */
  	    case Sword:
+ #ifdef NEMACS	/* 90/04/25 by Y.Ogawa */
+ 	    case Sjapanese:
+ #endif
  	    case Ssymbol:
  	      if (depth || !sexpflag) break;
  	      /* This word counts as a sexp; return at end of it. */
***************
*** 507,512 ****
--- 757,765 ----
  		      if (from == stop) goto lose;
  		      break;
  		    case Sword:
+ #ifdef NEMACS	/* 90/04/25 by Y.Ogawa */
+ 		    case Sjapanese:
+ #endif
  		    case Ssymbol:
  		      break;
  		    default:
***************
*** 611,616 ****
--- 864,872 ----
  #endif
  	    {
  	    case Sword:
+ #ifdef NEMACS	/* 90/04/25 by Y.Ogawa */
+ 	    case Sjapanese:
+ #endif
  	    case Ssymbol:
  	      if (depth || !sexpflag) break;
  	      /* This word counts as a sexp; count object finished after passing it. */
***************
*** 804,810 ****
--- 1060,1070 ----
    struct level levelstart[100];
    register struct level *curlevel = levelstart;
    struct level *endlevel = levelstart + 100;
+ #ifdef NEMACS  /* 90.6.6  by abe@sunrise.hallab.co.jp */
+   unsigned char prev;
+ #else
    char prev;
+ #endif
    register int depth;	/* Paren depth of current scanning location.
  			   level - levelstart equals this except
  			   when the depth becomes negative.  */
***************
*** 881,886 ****
--- 1141,1149 ----
  	  goto symstarted;
  	  /* treat following character as a word constituent */
  	case Sword:
+ #ifdef NEMACS	/* 90/04/25 by Y.Ogawa */
+ 	case Sjapanese:
+ #endif
  	case Ssymbol:
  	  if (stopbefore) goto stop;  /* this arg means stop at sexp start */
  	  curlevel->last = from - 1;
***************
*** 899,904 ****
--- 1162,1170 ----
  		  if (from == end) goto endquoted;
  		  break;
  		case Sword:
+ #ifdef NEMACS	/* 90/04/25 by Y.Ogawa */
+ 		case Sjapanese:
+ #endif
  		case Ssymbol:
  		  break;
  		default:
***************
*** 1096,1101 ****
--- 1362,1404 ----
  
    for (i = 0; i < 12; i++)
      XFASTINT (v->contents[".,;:?!#@~^'`"[i]]) = (int) Spunct;
+ 
+ #ifdef NEMACS  /* 88.1.4, 89.9.17  by K.Handa */
+   for (i = 0x80; i < 0xa1; i++)
+     XFASTINT (v->contents[i]) = (int) Spunct;
+   for (i = 0xa1; i < 0xff; i++)
+     XFASTINT (v->contents[i]) = (int) Sjapanese;
+   XFASTINT (v->contents[0xff]) = (int) Spunct;
+ 
+   for (i = 0; i < 0x80; i++)
+     category_table[i] = (unsigned char) XFASTINT (v->contents[i]);
+   for (i = 0x80; i < 0xa1; i++) category_table[i] = (unsigned char) Cpunct;
+   category_table[0xa1] = (unsigned char) CJsymbol;
+   category_table[0xa2] = (unsigned char) CJsymbol;
+   category_table[0xa3] = (unsigned char) CJalpha;
+   category_table[0xa4] = (unsigned char) CJhira;
+   category_table[0xa5] = (unsigned char) CJkata;
+   category_table[0xa6] = (unsigned char) CJgreek;
+   category_table[0xa7] = (unsigned char) CJrussian;
+   category_table[0xa8] = (unsigned char) CJsymbol;
+   for (i = 0xa9; i<0xb0; i++) category_table[i] = (unsigned char) CJundef;
+   for (i = 0xb0; i<0xff; i++) category_table[i] = (unsigned char) CJkanji;
+   category_table[0xff] = (unsigned char) Cpunct;
+ 
+   for (i = 0; i < 0x33; i++) ex_category_table[i] = (unsigned char) CJsymbol;
+   ex_category_table[0x33] = (unsigned char) CJsphira;
+   ex_category_table[0x34] = (unsigned char) CJsphira;
+   ex_category_table[0x35] = (unsigned char) CJsphira;
+   ex_category_table[0x36] = (unsigned char) CJsphira;
+   ex_category_table[0x37] = (unsigned char) CJsymbol;
+   ex_category_table[0x38] = (unsigned char) CJspkanji;
+   ex_category_table[0x39] = (unsigned char) CJspkanji;
+   ex_category_table[0x3a] = (unsigned char) CJspkanji;
+   ex_category_table[0x3b] = (unsigned char) CJspkanji;
+   ex_category_table[0x3c] = (unsigned char) CJspkata;
+   for (i = 0x3d; i <= 0x7f; i++)
+     ex_category_table[i] = (unsigned char) CJsymbol;
+ #endif  /* NEMACS */
  }
  
  syms_of_syntax ()
***************
*** 1122,1127 ****
--- 1425,1433 ----
    defsubr (&Scopy_syntax_table);
    defsubr (&Sset_syntax_table);
    defsubr (&Schar_syntax);
+ #ifdef NEMACS  /* 88.1.18,  89.9.19  by K.Handa */
+   defsubr (&Schar_category);
+ #endif
    defsubr (&Smodify_syntax_entry);
    defsubr (&Sdescribe_syntax);
  
diff -arcN emacs-18.55/src/syntax.h nemacs-3.3.2/src/syntax.h
*** emacs-18.55/src/syntax.h	Tue Sep 30 07:44:35 1986
--- nemacs-3.3.2/src/syntax.h	Wed Jun  6 03:18:37 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /* 88.1.3  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.6.1  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.9.19 modified for Nemacs Ver.3.2 by K.Handa */
+ 
  /* Declarations having to do with GNU Emacs syntax tables.
     Copyright (C) 1985 Free Software Foundation, Inc.
  
***************
*** 18,24 ****
  file named COPYING.  Among other things, the copyright notice
  and this notice must be preserved on all copies.  */
  
- 
  extern Lisp_Object Qsyntax_table_p;
  extern Lisp_Object Fsyntax_table_p (), Fsyntax_table (), Fset_syntax_table ();
  
--- 22,27 ----
***************
*** 44,49 ****
--- 47,55 ----
      Scharquote,  /* for a character that quotes the following character */
      Scomment,    /* for a comment-starting character */
      Sendcomment, /* for a comment-ending character */
+ #ifdef NEMACS  /* 89.10.19  by K.Handa */
+     Sjapanese,	 /* for a first char of Japanese code */
+ #endif
      Smax	 /* Upper bound on codes that are meaningful */
    };
  
***************
*** 50,55 ****
--- 56,116 ----
  #define SYNTAX(c) \
    ((enum syntaxcode) (XINT (bf_cur->syntax_table_v->contents[c]) & 0377))
  
+ #ifdef NEMACS  /* 88.1.5, 89.9.17, 89.10.19  by K.Handa */
+ enum categorycode {
+   /* For 1-byte code */
+   Cwhitespace,	/* for a whitespace character */
+   Cpunct,	/* for random punctuation characters */
+   Cword,	/* for a word constituent */
+   Csymbol,	/* symbol constituent but not word constituent */
+   Copen,	/* for a beginning delimiter */
+   Cclose,	/* for an ending delimiter */
+   Cquote,	/* for a prefix character like Lisp ' */
+   Cstring,	/* for a string-grouping character like Lisp " */
+   Cmath,	/* for delimiters like $ in Tex. */
+   Cescape,	/* for a character that begins a C-style escape */
+   Ccharquote,	/* for a character that quotes the following character */
+   Ccomment,	/* for a comment-starting character */
+   Cendcomment,	/* for a comment-ending character */
+   /* For Japanese code */
+   CJsymbol,
+   CJundef,
+   CJalpha,
+   CJhira,
+   CJsphira,
+   CJkata,
+   CJspkata,
+   CJgreek,
+   CJrussian,
+   CJkanji,
+   CJspkanji,
+   Cmax		/* Upper bound on codes that are meaningful */
+ };
+ 
+ extern unsigned char category_table[0400];	/* patch by sanewo  88.5.25 */
+ extern unsigned char ex_category_table[0200];
+ #define CATEGORY(c1, c2) \
+   (((SYNTAX(c1)==Sjapanese) && (SYNTAX(c2)==Sjapanese) \
+ 			? ((c1 == 0xa1) \
+ 			  ? (enum categorycode) ex_category_table[c2 & 0177] \
+ 			  : (enum categorycode) category_table[c1]) \
+ 			: (enum categorycode) SYNTAX(c1)))
+ #define CTGJCODE(ctg) ((int)ctg >= (int)CJsymbol && (int)ctg < (int)Cmax)
+ #define CTGHIRA(ctg) \
+   ((enum categorycode)ctg == CJhira || (enum categorycode)ctg == CJsphira)
+ #define CTGKATA(ctg) \
+   ((enum categorycode)ctg == CJkata || (enum categorycode)ctg == CJspkata)
+ #define CTGKANJI(ctg) \
+   ((enum categorycode)ctg == CJkanji || (enum categorycode)ctg == CJspkanji)
+ #define CTGSPECIAL(ctg) \
+   ((enum categorycode)ctg == CJsphira \
+    || (enum categorycode)ctg == CJspkata \
+    || (enum categorycode)ctg == CJspkanji)
+ #define CTGJWORD(ctg) ((int)ctg > (int)CJundef && (int)ctg < (int)Cmax)
+ #define CTGWORD(ctg) ((enum categorycode)ctg == Cword || CTGJWORD (ctg))
+ #define CTGEXTEND(ctg) (ctg = (enum categorycode) ((int)ctg - CTGSPECIAL(ctg)))
+ #endif  /* NEMACS */
+ 
  /* The next 8 bits of the number is a character,
   the matching delimiter in the case of Sopen or Sclose. */
  
***************
*** 81,83 ****
--- 142,148 ----
   (enum syntaxcode) syntax_spec_code['w'] is Sword. */
  
  extern char syntax_spec_code[0400];
+ 
+ #ifdef NEMACS  /* 88.1.17, 88.6.2, 89.9.19  by K.Handa */
+ extern char category_spec_code[0200];
+ #endif  /* NEMACS */
diff -arcN emacs-18.55/src/sysdep.c nemacs-3.3.2/src/sysdep.c
*** emacs-18.55/src/sysdep.c	Tue Aug  8 10:50:43 1989
--- nemacs-3.3.2/src/sysdep.c	Wed Jun  6 03:18:32 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 90.1.31  modified for Nemacs Ver.3.3.1 by K.Handa
+  	LPASS8 is set in child process for 8 bit transmission. */
+ 
  /* Interfaces to system-dependent kernel and library entries.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 469,474 ****
--- 472,485 ----
  
  #else /* not HAVE_TERMIO */
    s.sg_flags &= ~(ECHO | CRMOD | ANYP | ALLDELAY | RAW | LCASE | CBREAK | TANDEM);
+ #ifdef NEMACS  /* 90.1.31  by K.Handa */
+ #ifdef LPASS8  /*  Effective, at least, on SunOS 3.?, 4.?, and 4.3bsd */
+   {
+     int arg=LPASS8;
+     ioctl (out, TIOCLBIS, &arg);
+   }
+ #endif /* LPASS8 */
+ #endif /* NEMACS */
  #endif /* not HAVE_TERMIO */
  
    ioctl (out, TIOCSETN, &s);
diff -arcN emacs-18.55/src/term.c nemacs-3.3.2/src/term.c
*** emacs-18.55/src/term.c	Thu Mar 30 00:49:32 1989
--- nemacs-3.3.2/src/term.c	Wed Jun  6 03:18:14 1990
***************
*** 1,3 ****
--- 1,8 ----
+ /* 87.6.5   modified by K.Handa */
+ /* 87.12.10 modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.2.22  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 90.1.6   modified for Nemacs Ver.3.3.1 by Sanewo (sanewo@sony.co.jp) */
+ 
  /* terminal control module for terminals described by TERMCAP
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
  
***************
*** 26,31 ****
--- 31,42 ----
  #include "termchar.h"
  #include "termopts.h"
  #include "cm.h"
+ #ifdef NEMACS  /* 87.6.5  by K.Handa */
+ #undef NULL
+ #include "lisp.h"
+ #include "buffer.h"
+ #include "kanji.h"
+ #endif  /* NEMACS */
  
  #define max(a, b) ((a) > (b) ? (a) : (b))
  #define min(a, b) ((a) < (b) ? (a) : (b))
***************
*** 573,578 ****
--- 584,592 ----
    register char *buf;
    register int c;
    char *first_check;
+ #ifdef NEMACS  /* 89.2.22  by K.Handa */
+   char *buf2;
+ #endif  /* NEMACS */
  
    if (write_chars_hook)
      {
***************
*** 587,599 ****
--- 601,639 ----
  
    if (AutoWrap && curY + 1 == screen_height
        && curX + len - (chars_wasted[curY] & 077) == screen_width)
+ #ifndef NEMACS  /* 90.1.6 by Sanewo */
      len --;
+ #else
+     {
+       len --;
+       if (current_kanji_flag && JCODE(start[len]))
+ 	/* Last char was 2nd byte of kanji.  So shrink one byte more */
+ 	len --;
+     }
+ #endif  /* NEMACS */
  
    cmplus (len);
  
+ #ifdef NEMACS  /* 89.2.9 by K.Handa */
+   if (current_kanji_flag
+       && kanji_display_code != EUC
+       && kanji_display_code != NOCONV) {
+     buf2 = get_kanji_work_area(len, kanji_display_code);
+     len = convert_kanji_code(len, start, buf2,
+ 			     EUC, kanji_display_code,
+ 			     to_kanji_display, to_ascii_display);
+     start = buf2;
+   }
+ #endif  /* NEMACS */
+ 
    first_check = start;
  
+ #ifdef NEMACS  /* 89.2.9  by K.Handa */
+   if ((RPov > len && !TF_underscore && !TF_hazeltine)
+       || current_kanji_flag)
+ #else
    if (RPov > len && !TF_underscore && !TF_hazeltine)
+ #endif
      {
        fwrite (start, 1, len, stdout);
        if (ferror (stdout))
***************
*** 641,646 ****
--- 681,689 ----
  	  fputc (c, termscript);
  	putchar (c);
        }
+ #ifdef NEMACS  /* 89.2.9 by K.Handa */
+   free_kanji_work_area();
+ #endif  /* NEMACS */
  }
  
  /* If start is zero, insert blanks instead of a string at start */
***************
*** 651,656 ****
--- 694,702 ----
  {
    register char *buf;
    register int c;
+ #ifdef NEMACS  /* 89.2.9  by K.Handa */
+   char *buf2;
+ #endif  /* NEMACS */  
  
    if (insert_chars_hook)
      {
***************
*** 669,679 ****
--- 715,754 ----
        return;
      }
  
+ #ifdef NEMACS  /* 89.9.17  by K.Handa */
+   if (TS_ins_char && current_kanji_flag) {
+     int len2 = len;
+     while (len2--) OUTPUT1_IF(TS_ins_char);
+     if (start)
+       write_chars (start, len);
+     return;
+   }
+ #endif
+ 
    turn_on_insert ();
    cmplus (len);
  
+ #ifdef NEMACS  /* 89.2.9 by K.Handa */
+   if (current_kanji_flag
+       && start	/* 89.8.24 by K.Handa */
+       && kanji_display_code != EUC
+       && kanji_display_code != NOCONV) {
+     buf2 = get_kanji_work_area(len, kanji_display_code);
+     len = convert_kanji_code(len, start, buf2,
+ 			     EUC, kanji_display_code,
+ 			     to_kanji_display, to_ascii_display);
+     start = buf2;
+   }
+ #endif  /* NEMACS */
+ 
+ #ifdef NEMACS  /* 89.2.9, 89.8.30  by K.Handa */
+   if (start && ((!TF_underscore && !TF_hazeltine
+ 		 && TS_pad_inserted_char == 0 && TS_ins_char == 0)
+ 		|| current_kanji_flag))
+ #else
    if (!TF_underscore && !TF_hazeltine && start
        && TS_pad_inserted_char == 0 && TS_ins_char == 0)
+ #endif
      {
        fwrite (start, 1, len, stdout);
        if (termscript)
***************
*** 696,701 ****
--- 771,779 ----
  	putchar (c);
  	OUTPUT1_IF (TS_pad_inserted_char);
      }
+ #ifdef NEMACS  /* 89.2.9 by K.Handa */
+   free_kanji_work_area();
+ #endif  /* NEMACS */
  }
  
  delete_chars (n)
diff -arcN emacs-18.55/src/window.c nemacs-3.3.2/src/window.c
*** emacs-18.55/src/window.c	Fri Jun 10 22:07:24 1988
--- nemacs-3.3.2/src/window.c	Wed Jun  6 03:18:15 1990
***************
*** 1,3 ****
--- 1,5 ----
+ /* 89.3.15   modified for Nemacs Ver.3.0 by K.Handa */
+ 
  /* Window creation, deletion and examination for GNU Emacs.
     Does not include redisplay.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
***************
*** 75,80 ****
--- 77,86 ----
  /* Incremented for each window created.  */
  
  static int sequence_number;
+ 
+ #ifdef NEMACS  /* 89.3.13  by K.Handa */
+ Lisp_Object Vminibuf_window_selected, Qminibuf_window_selected;
+ #endif
  
  DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0,
    "Returns t if OBJ is a window.")
***************
*** 901,906 ****
--- 907,921 ----
    register struct window *ow = XWINDOW (selected_window);
  
    CHECK_WINDOW (window, 0);
+ #ifdef NEMACS  /* 89.3.13  by K.Handa, S.Tomura */
+   if (minibuf_window == selected_window &&  minibuf_window != window) {
+     Vminibuf_window_selected = Qnil;
+     RedoModes++;
+   } else if (minibuf_window != selected_window && minibuf_window == window) {
+     Vminibuf_window_selected = Qt;
+     RedoModes++;
+   }
+ #endif  /* NEMACS */
  
    w = XWINDOW (window);
  
***************
*** 1944,1949 ****
--- 1959,1972 ----
    DEFVAR_INT ("window-min-width", &window_min_width,
      "*Delete any window less than this wide.");
    window_min_width = 10;
+ 
+ #ifdef NEMACS  /* 89.3.13  by K.Handa */
+   DEFVAR_LISP ("minibuffer-window-selected", &Vminibuf_window_selected,
+     "T means that minibuffer-window is selected.");
+   Vminibuf_window_selected = Qnil;
+   Qminibuf_window_selected = intern ("minibuffer-window-selected");
+   staticpro (&Qminibuf_window_selected);
+ #endif  /* NEMACS */
  
    defsubr (&Sselected_window);
    defsubr (&Sminibuffer_window);
diff -arcN emacs-18.55/src/wnnfns.c nemacs-3.3.2/src/wnnfns.c
*** emacs-18.55/src/wnnfns.c	Thu Jan  1 09:00:00 1970
--- nemacs-3.3.2/src/wnnfns.c	Wed Jun  6 03:19:21 1990
***************
*** 0 ****
--- 1,1588 ----
+ /*      Jserver Interface for Nemacs
+         Coded by Yutaka Ishikawa at ETL (yisikawa@etl.go.jp)
+                  Satoru Tomura   at ETL (tomura@etl.go.jp)
+ 
+ 
+    This file is part of Egg on Nemacs (Japanese environment)
+ 
+    Egg is distributed in the forms of patches to GNU
+    Emacs under the terms of the GNU EMACS GENERAL PUBLIC
+    LICENSE which is distributed along with GNU Emacs by the
+    Free Software Foundation.
+ 
+    Egg 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 EMACS GENERAL PUBLIC LICENSE for
+    more details.
+ 
+    You should have received a copy of the GNU EMACS GENERAL
+    PUBLIC LICENSE along with Nemacs; see the file COPYING.
+    If not, write to the Free Software Foundation, 675 Mass
+    Ave, Cambridge, MA 02139, USA. */
+ 
+ /*
+  *      CHANGE LOG
+  *
+  *      1989.12.12 in makeBunsetsu and makeKouho, call wcstrlen2 by K.Handa
+  *      1989.12.12 bitPos modified and renamed to bunpoCode
+  *      1989.12.06 a bug fixed by S.T.
+  *      1989.11.25 wnn-server-*evf added by S.T.
+  *      1989.11.21 jserver-* are renamed to wnn-* by S.T.
+  *      1988.11.17 jserver-inspect-henkan is added by S.T.
+  *      1988.11.17 jserver-make-directory is added by S.T.
+  *      1988.11.08 jserver-dict-save is added: save current dictionary and
+  *                 frequency information of system dictionaries by S.T. 
+  *      1988.11.08 jserver-open: when jserver-host-name is nil, 
+  *                 it means local host by S.T.
+  *	1988.07.14 Enable to add alphabetical "yomi" into a dictionary by Y.I.
+  *	1988.07.14 Bug for vax is fixed by atarashi@cslv4.nec.junet.
+  *	-----------------------------------------------------------------------
+  *	1988.06.09
+  *	1988.01.26
+  *	1988.01.12
+  *	-----------------------------------------------------------------------
+  *
+  *	Functions defined in this file are
+  *	   (wnn-server-open wnn-host-name login-name)
+  *		wnn-host-name: STRING or NIL
+  *		login-name: STRING
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *		You must call this function before using jserver.
+  *	   (wnn-server-close)
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *		You should call this function when you stop using jserver.
+  *		If you have not called it and are going to exit emacs,
+  *		wnn-server-close is automatically invoked.
+  *	   (wnn-server-use-dict dict-file-name hindo-file-name priority file-mode)
+  *		dict-file-name: STRING
+  *		hindo-file-name: STRING or NULL-STRING
+  *		priority: INTEGER
+  *		readonly-flag: BOOLEAN
+  *		DESCRIPTION:
+  *		After calling the wnn-server-open, you must assert dictionaries
+  *		which you use in jserver.
+  *		Dictionary files are devided into two categories:
+  *		system and user. System dictionary files are read-only while
+  *		user dictionary files are writable.
+  *		If the dict-file-name denotes a system dictionary,
+  *		hindo-file-name must be filled. If the dict-file-name denotes
+  *		a user dictionary, hindo-file-name is omitted.
+  *	   (wnn-server-henkan-begin henkan-string)
+  *		henkan-string: STRING
+  *		RETURNS: a LIST of pairs of bunsetu-kanji and bunsetu-yomi.
+  *		DESCRIPTION:
+  *		This function is called if you want to change Kana-string to
+  *		Kanji-string. The Kana-string must be filled in henkan-string.
+  *	   (wnn-server-henkan-next bunsetu-no )
+  *		bunsetu-no: INTEGER
+  *		RETURNS: a LIST of pairs of bunsetu-kanji and bunsetu-yomi.
+  *		DESCRIPTION:
+  *		return candidates for bunsetsu pointed by bunsetsu-no.
+  *	   (wnn-server-henkan-kakutei bunsetsu-no kouho-no)
+  *		bunsetsu-no: INTEGER
+  *		kouho-no: INTEGER
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *		word pointed by kouho-no is chosen for bunsetsu pointed by
+  *		bunsetsu-no.
+  *	   (wnn-server-bunsetu-henkou bunsetu-no bunsetu-length)
+  *		bunsetu-no: INTEGER
+  *		bunsetu-length: INTEGER
+  *		RETURNS:
+  *		DESCRIPTION:
+  *		bunsetsu is changed.
+  *         (wnn-bunsetu-kouho-inspect bunsetu-no kouho-no)
+  *              bunsetu-no: INTEGER
+  *              kouho-no: INTEGER
+  *              RETURNS: a LIST of jiritugo, fuzokugo, yomi, jisho-no, serial-no.
+  *	   (wnn-server-henkan-quit)
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *	
+  *	   (wnn-server-henkan-end &optional bunsetu-no)
+  *              bunsetu-no: INTEGER
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *
+  *	   (wnn-server-set-current-dict dict-no)
+  *		dict-no: INTEGER
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *
+  *	   (wnn-server-dict-add tango yomi bunpo-type)
+  *		tamgo: STRING
+  *		yoni: STRING
+  *		bunpo-type: INTEGER
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *
+  *	   (wnn-server-dict-delete no yomi)
+  *		no: INTEGER
+  *		yomi: STRING
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *
+  *	   (wnn-server-dict-info yomi)
+  *		yomi: STRING
+  *		RETURNS: a LIST of dict-joho
+  *		DESCRIPTION:
+  *
+  *	   (wnn-server-file-access file-name file-mode)
+  *		file-name: STRING
+  *		file-mode: INTEGER
+  *		RETURNS: INTEGER
+  *		DESCRIPTION:
+  *
+  *         (wnn-server-make-directory pathname)
+  *              pathname: STRING
+  *              RETURNS: BOOLEAN
+  *              DESCRIPTION:
+  *
+  *	   (wnn-dict-satus file-name)
+  *		file-name: STRING
+  *		RETURNS: BOOLEAN
+  *		DESCRIPTION:
+  *
+  *         (wnn-server-dict-save)
+  *              RETURNS: BOOLEAN
+  *              DESCRIPTION:
+  *
+  */
+ 
+ #include "config.h"
+ 
+ #ifdef WNN4V3
+ #include "commonhd.h"
+ #include "jlib.h"
+ #else
+ #ifdef WNN3
+ #include "commonheader.h"
+ #endif WNN3
+ #endif WNN4V3
+ 
+ #ifdef NULL
+ #undef NULL
+ #endif NULL
+ #include "lisp.h"
+ #include "buffer.h"
+ #include "window.h"
+ 
+ 
+ /*
+ #define	KANA_LEN		500
+ #define	KLIST_LEN		50
+ #define	KANJI_LEN		500
+ #define	JI_KANJI_LEN		200
+ #define	JI_KOUHO_ENT_LEN	100
+ #define	JISHO_BUF_SIZE		200
+ */
+ #define	KANA_LEN		1000
+ #define	KLIST_LEN		100
+ #define	KANJI_LEN		1000
+ #define	JI_KANJI_LEN		1000
+ #define	JI_KOUHO_ENT_LEN	150
+ #define	JISHO_BUF_SIZE		400
+ #define	MAX_BUNSETSU_SUU	50
+ 
+ typedef struct J_JOHO {
+         int             ent;
+ 	wchar		j_kbuf[JI_KANJI_LEN];
+  	JIKOUHO_ENT	j_ent[JI_KOUHO_ENT_LEN];
+ } J_JOHO;
+ 
+ struct bunjoho	*jd_open();
+ struct bunjoho	*jd_open_in();
+ 
+ Lisp_Object	makeBunsetsu();
+ Lisp_Object	makeKouho();
+ Lisp_Object     makeInspect();
+ Lisp_Object     makeInspectKp();
+ Lisp_Object	makeJishoJoho();
+ 
+ static struct bunjoho	*bjp;
+ static int		bunsetsuNo;
+ static int		wnnExist;
+ static J_JOHO		jj[MAX_BUNSETSU_SUU];
+ static wchar		kanjibuf[MAX_BUNSETSU_SUU][30];
+ static JIKOUHOJOHO	whereToGo;
+ 
+ /* Lisp Variables and Constants Definition */
+ Lisp_Object	Vwnn_error_code;
+ Lisp_Object	Qwnn_dead;
+ Lisp_Object	Qwnn_already_exist;
+ Lisp_Object	Qwnn_no_connection;
+ Lisp_Object	Qwnn_arguments_missmatch;
+ Lisp_Object	Qwnn_alloc_fail;
+ Lisp_Object	Qwnn_open_fail;
+ Lisp_Object	Qwnn_save_fail;
+ Lisp_Object	Qwnn_close_fail;
+ Lisp_Object	Qwnn_too_many_bunsetsu;
+ Lisp_Object	Qwnn_no_exist;
+ Lisp_Object	Qwnn_not_a_dict;
+ Lisp_Object	Qwnn_user_dict;
+ Lisp_Object	Qwnn_system_dict;
+ 
+ Lisp_Object	Qwnn_no_exist_file;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_valid_user_dict;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_system_dict;
+ #endif WNN3
+ 
+ /* Lisp_Object	Qwnn_not_a_dict; */
+ #ifdef WNN3
+ Lisp_Object	Qwnn_no_spec_file;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_no_spec_hindo_file;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_full_jisho_table;
+ Lisp_Object	Qwnn_bad_hindo_file;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_cannot_read_file;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_overflow_global_hindo_table;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_overflow_global_jisho_table;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_cannot_write_file;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_cannot_open_file;
+ Lisp_Object	Qwnn_not_use_dict_no;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_userdict;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_cannot_change_current_dict;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_overflow_jisho_table;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_too_many_moji;
+ Lisp_Object	Qwnn_overflow_wk_area;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_overflow_k_area;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_too_long_yomi;
+ Lisp_Object	Qwnn_too_long_kanji;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_bad_yomi;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_dict_no_yomi;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_specified_dict;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_cannot_registered_in_the_dict;
+ Lisp_Object	Qwnn_not_exist_word;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_too_many_jikouho;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_some_error;
+ Lisp_Object	Qwnn_have_some_bugs;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_no_more_buf_area;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_minus_mojiretsu;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_cannot_mkdir;
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_a_username;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ Lisp_Object	Qwnn_not_a_hostname;
+ #endif WNN3
+ 
+ Lisp_Object	Qwnn_unknown_fail;
+ 
+ #define IS_WNN_DEAD						\
+ {								\
+      jd_server_dead_env_flg = 1;				\
+      if(setjmp(jd_server_dead_env) == 666) {/* Wnn dead */	\
+ 	 wnnExist = 0;					\
+ 	 Vwnn_error_code = Qwnn_dead;			\
+ 	 return Qnil;						\
+      }								\
+ }
+ 
+ 
+ /* Lisp functions definition */
+ DEFUN ("wnn-server-open", Fwnn_open, Swnn_open, 2, 2, 0,
+ 	"For Wnn.")
+ 	(hname, lname)
+ register Lisp_Object hname, lname;
+ {
+ 	if ( 
+ 	    (hname != Qnil  &&  XTYPE (hname) != Lisp_String)
+ 	    ||
+ 	     XTYPE(lname) != Lisp_String
+ 	    ){
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	      }
+ 	if(wnnExist) {
+ 		Vwnn_error_code = Qwnn_already_exist;
+ 		return Qnil;
+ 	}
+         if (hname == Qnil) {
+            if(!(bjp = jd_open_in(KANA_LEN, KLIST_LEN, KANJI_LEN,
+                               "",
+ 			      XSTRING(lname)->data, 0))) {
+ 		errorSet();
+ 		return Qnil;
+ 	      }
+ 	 } else 
+ 	if(!(bjp = jd_open_in(KANA_LEN, KLIST_LEN, KANJI_LEN,
+ 			      XSTRING(hname)->data, 
+ 			      XSTRING(lname)->data, 0))) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	wnnExist = 1;
+ 	return Qt;
+ }
+ 
+ 
+ DEFUN ("wnn-server-close", Fwnn_close, Swnn_close, 0, 0, 0,
+ 	"For Wnn.")
+ 	()
+ {
+ 	int	val;
+ 
+ 	/* Vwnn_error_code will be assigned in wnn_exit */
+ 	if((val = wnn_exit()) < 0)
+ 		return Qnil;
+ 	else
+ 		return Qt;
+ }
+ 
+ DEFUN ("wnn-server-use-dict", Fwnn_use_dict, Swnn_use_dict, 4, 4, 0,
+ 	"For Wnn.")
+ 	(dfname, hfname, prio, readonly)
+ register Lisp_Object dfname, hfname, prio, readonly;
+ {
+ 	Lisp_Object	val;
+ 	int	v, rflag;
+ 
+ 	if (XTYPE (dfname) != Lisp_String
+ 	    || XTYPE(hfname) != Lisp_String
+ 	    || XTYPE(prio) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	rflag = (readonly == Qnil)?0:1;
+ 	if((v = jd_dicadd(XSTRING(dfname)->data,
+ 	             XSTRING(hfname)->data, XINT(prio), rflag)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	XSETTYPE (val, Lisp_Int);
+ 	XFASTINT (val) = v;
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ DEFUN ("wnn-server-henkan-begin", Fwnn_begin_henkan, Swnn_begin_henkan, 
+        1, 1, 0,
+ 	"For Wnn.")
+ 	(hstring)
+ register Lisp_Object hstring;
+ {
+ 	register int		i;
+ 	register KOUHO_ENT	*kp;
+ 	register Lisp_Object val;
+ 
+ 	if (XTYPE (hstring) != Lisp_String) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	c2w(XSTRING(hstring)->data, bjp->kana_buf);
+ 	if((bunsetsuNo = jd_reconv(0, kanjibuf[0], KANJI_LEN)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	if(bunsetsuNo > MAX_BUNSETSU_SUU) {/* Too many bunsetsu */
+ 		Vwnn_error_code = Qwnn_too_many_bunsetsu;
+ 		return Qnil;
+ 	}
+ 	
+         for(i=0; i < bunsetsuNo ; i++) jj[i].ent = -1;
+ 	
+ 	val = Qnil;
+ 	for(i = bunsetsuNo, kp = &bjp->klist[bunsetsuNo - 1]; i > 0; --i, --kp) {
+ 		val = Fcons(makeBunsetsu(kp), val);
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ DEFUN ("wnn-server-henkan-next", Fwnn_jikouho, Swnn_jikouho, 1, 1, 0,
+ 	"For Wnn.")
+ 	(bunNo)
+ register Lisp_Object bunNo;
+ {
+ 	Lisp_Object	val;
+ 	JIKOUHO_ENT	*jp;
+ 	int		no;
+ 	int		ent;
+ 
+ 	if( XTYPE(bunNo) != Lisp_Int  ||
+ 	    XINT(bunNo) < 0 || bunsetsuNo <= XINT(bunNo) ) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	no = XINT(bunNo);
+ 
+ 	if ( jj[no].ent == -1 ) {
+ 	  whereToGo.jlist = jj[no].j_ent;
+ 	  whereToGo.jlist_size = JI_KOUHO_ENT_LEN;
+ 	  whereToGo.kanji_buf = jj[no].j_kbuf;
+ 	  whereToGo.kanji_buf_size = JI_KANJI_LEN;
+ 	  if((ent = jd_next(no, &whereToGo)) < 0) {
+ 	    errorSet();
+ 	    return Qnil;
+ 	  }
+ 	  jj[no].ent = ent; 
+ 	} else {
+ 	  ent = jj[no].ent ;
+ 	}
+ 	jp = &jj[no].j_ent[ent];
+ 	val = Qnil;
+ 	while(ent--) {
+ 		val = Fcons(makeKouho(--jp, no), val);
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ DEFUN ("wnn-server-henkan-kakutei", Fwnn_kakutei, Swnn_kakutei, 2, 2, 0,
+ 	"For Wnn.")
+ 	(bunNo, kouhoNo)
+ register Lisp_Object bunNo, kouhoNo;
+ {
+ 	int		bno, kno;
+ 	Lisp_Object	val;
+ 	JIKOUHO_ENT	*jp;
+ 	KOUHO_ENT	*kp;
+ 
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	bno = XINT(bunNo);
+ 	kno = XINT(kouhoNo);
+ 	
+ 	if( bno < 0 || bunsetsuNo <= bno ||
+ 	    kno < 0 || 
+            ( 0 < kno && ( jj[bno].ent == -1 ||
+ 			  jj[bno].ent <= kno ))){
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if ( jj[bno].ent != -1 ) {
+ 	  kp = &bjp->klist[bno];
+ 	  jp = &jj[bno].j_ent[kno];
+ 	  kp->fl = kp->fl + kp->jl - jp->jl;
+ 	  kp->jl = jp->jl;
+ 	  kp->jishono = jp->jishono;
+ 	  kp->serial = jp->serial;
+ 	  kp->k_data = jp->k_data;
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return Qt;
+ }
+ 
+ DEFUN ("wnn-bunsetu-kouho-inspect", Fwnn_inspect_henkan, Swnn_inspect_henkan,
+        2, 2, 0,
+ 	"For Wnn.")
+ 	(bunNo, kouhoNo)
+ register Lisp_Object bunNo, kouhoNo;
+ {
+         Lisp_Object     val;
+ 	int		bno, kno;
+ 	int             ent;
+ 	JIKOUHO_ENT	*jp;
+ 	KOUHO_ENT	*kp;
+ 
+ 	if(XTYPE(bunNo) != Lisp_Int || XTYPE(kouhoNo) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	bno = XINT(bunNo);
+ 	kno = XINT(kouhoNo);
+ 
+ 	if ( bno < 0 || bunsetsuNo <= bno ||
+ 	    kno < 0 || 
+            ( 0 < kno && ( jj[bno].ent == -1 ||
+ 			  jj[bno].ent <= kno ))){
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if ( jj[bno].ent == -1 ) {
+ 	  val = makeInspectKp(bno);
+ 	} else {
+ 	  jp = &jj[bno].j_ent[kno];
+ 	  val = makeInspect(jp, bno);
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ 
+ DEFUN ("wnn-server-bunsetu-henkou", Fwnn_bunsetu_henkou, Swnn_bunsetu_henkou,
+        2, 2, 0,
+ 	"For Wnn.")
+ 	(bunNo, len)
+ register Lisp_Object bunNo, len;
+ {
+ 	Lisp_Object	val;
+ 	KOUHO_ENT	*kp;
+ 	int		no, l, i;
+ 
+ 	if(XTYPE(bunNo) != Lisp_Int || XTYPE(len) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	no = XINT(bunNo);
+ 	l = XINT(len);
+ 	if((bunsetsuNo = jd_tanconv(no, l, kanjibuf[no], KANJI_LEN)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	bunsetsuNo += no;
+ 
+ 	for (i = no ; i < bunsetsuNo ; i++) jj[i].ent = -1 ;
+ 
+ 	val = Qnil;
+ 	for(i = bunsetsuNo, kp = &bjp->klist[bunsetsuNo - 1]; i > 0; --i, --kp) {
+ 		val = Fcons(makeBunsetsu(kp), val);
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ DEFUN ("wnn-server-henkan-quit", Fwnn_quit_henkan, Swnn_quit_henkan, 0, 0, 0,
+ 	"For Wnn.")
+ 	()
+ {
+ 	Vwnn_error_code = Qnil;
+ 	return Qt;
+ }
+ 
+ DEFUN ("wnn-server-henkan-end", Fwnn_end_henkan, Swnn_end_henkan, 0, 1, 0,
+ 	"For Wnn.")
+ 	(bunNo)
+ Lisp_Object  bunNo;
+ {
+ 	if(XTYPE(bunNo) != Lisp_Int && bunNo != Qnil){
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+         if (bunNo != Qnil) {
+ 	  int      bno;
+ 	  bno = XINT (bunNo);
+ 	  if ( 0 <= bno && bno < bunsetsuNo) {
+             bjp->kana_buf[ bjp->klist[bno].s_ichi ] = 0;
+ 	    if((jd_reconv(bno, kanjibuf[bno], KANJI_LEN)) < 0) {
+ 	      errorSet();
+ 	      return Qnil;
+ 	    }
+ 	  }
+ 	}
+ 
+ 	if(jd_end() < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ DEFUN ("wnn-server-set-current-dict", Fwnn_set_current_dict, Swnn_set_current_dict, 1, 1, 0,
+ 	"For Wnn.")
+ 	(dno)
+ register Lisp_Object dno;
+ {
+ 	if(XTYPE(dno) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	if(jd_udchg(XINT(dno)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ DEFUN ("wnn-server-dict-add", Fwnn_dict_toroku, Swnn_dict_toroku, 3, 3, 0,
+ 	"For Wnn.")
+ 	(kanji, yomi, bunpo)
+ register Lisp_Object kanji, yomi, bunpo;
+ {
+ 	char	*yp, *kp;
+ 	int	ret, ysize, ksize, btype;
+ 
+ 	if(XTYPE(kanji) != Lisp_String
+ 	  || XTYPE(yomi) != Lisp_String
+ 	  || XTYPE(bunpo) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	ksize = XSTRING(kanji)->size << 1; /* multipied by 2 */
+ 	kp = (char *) alloca(ksize + 2);
+ 	c2w(XSTRING(kanji)->data, kp);
+ 
+ 	ysize = XSTRING(yomi)->size << 1; /* multipied by 2 */
+ 	yp = (char *) alloca(ysize + 2);
+ 	c2w(XSTRING(yomi)->data, yp);
+ 
+ 	btype = 1 << XINT(bunpo);
+ 	if((ret = jd_wreg(kp, yp, btype)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ 
+ DEFUN ("wnn-server-dict-delete", Fwnn_dict_sakujo, Swnn_dict_sakujo, 2, 2, 0,
+ 	"For Wnn.")
+ 	(no, yomi)
+ register Lisp_Object no, yomi;
+ {
+ 	int	ysize, ret;
+ 	char	*yp;
+ 
+ 	if(XTYPE(no) != Lisp_Int
+ 	  || XTYPE(yomi) != Lisp_String) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	ysize = XSTRING(yomi)->size << 1; /* multipied by 2 */
+ 	yp = (char *) alloca(ysize + 2);
+ 	c2w(XSTRING(yomi)->data, yp);
+ 
+ 	if((ret = jd_wdel(XINT(no), yp)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ 
+ DEFUN ("wnn-server-dict-info", Fwnn_dict_joho, Swnn_dict_joho, 1, 1, 0,
+ 	"For Wnn.")
+ 	(yomi)
+ register Lisp_Object yomi;
+ {
+ 	JISHOJOHO	jbuf[JISHO_BUF_SIZE];
+ 	wchar		kbuf[KANJI_LEN];
+ 	JISHOJOHO	*jp;
+ 	int		count, ysize;
+ 	char		*yp;
+ 	Lisp_Object	val;
+ 
+ 	if(XTYPE(yomi) != Lisp_String) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	ysize = XSTRING(yomi)->size << 1; /* multipied by 2 */
+ 	yp = (char *) alloca(ysize + 2);
+ 	c2w(XSTRING(yomi)->data, yp);
+ 	count = jd_wsch(yp, jbuf, JISHO_BUF_SIZE, kbuf, KANJI_LEN);
+ 	if(count < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	val = Qnil;
+ 	for(count, jp = jbuf; count > 0; --count, jp++) {
+ 		val = Fcons(makeJishoJoho(jp), val);
+ 	}
+ 	Vwnn_error_code = Qnil;
+ 	return val;
+ }
+ 
+ DEFUN ("wnn-server-getevf", Fwnn_getevf, Swnn_getevf, 0, 0, 0,	"For Wnn.")
+ 	()
+ {
+         int             p0, p1, p2, p3, p4, p5;
+         int             rc;
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	rc = jd_getevf(&p0, &p1, &p2, &p3, &p4, &p5);
+ 	if(rc < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	return Fcons(make_number(p0),
+ 	       Fcons(make_number(p1),
+                Fcons(make_number(p2),
+ 	       Fcons(make_number(p3),
+ 	       Fcons(make_number(p4),
+                Fcons(make_number(p5),Qnil))))));
+ }
+ 
+ DEFUN ("wnn-server-setevf", Fwnn_setevf, Swnn_setevf, 6, MANY, 0, "For Wnn.")
+       (nargs, args)
+      int nargs;
+      register Lisp_Object *args;
+ {
+         int             rc;
+ 
+ 	if(nargs != 6 ||
+ 	   XTYPE(args[0]) != Lisp_Int ||
+ 	   XTYPE(args[1]) != Lisp_Int ||
+ 	   XTYPE(args[2]) != Lisp_Int ||
+ 	   XTYPE(args[3]) != Lisp_Int ||
+ 	   XTYPE(args[4]) != Lisp_Int ||
+ 	   XTYPE(args[5]) != Lisp_Int ) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	      }
+ 
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	rc = jd_setevf(XINT(args[0]), XINT(args[1]), XINT(args[2]),
+ 		       XINT(args[3]), XINT(args[4]), XINT(args[5]));
+ 
+ 	if(rc < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	}
+ 	return Qt;
+ }
+ 
+ 
+ DEFUN ("wnn-server-file-access", Fwnn_file_access, Swnn_file_access, 2, 2, 0,
+ 	"For Wnn.")
+ 	(fname, fmode)
+ register Lisp_Object fname, fmode;
+ {
+ 
+ 	if(XTYPE(fname) != Lisp_String
+ 	   || XTYPE(fmode) != Lisp_Int) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ /*
+ 	if(jd_access(XSTRING(fname)->data, XINT(fmode)) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ */
+ 	Vwnn_error_code = Qnil;
+ 	return make_number(jd_access(XSTRING(fname)->data, XINT(fmode)));
+ 
+ }
+ 
+ 
+ DEFUN ("wnn-server-make-directory", Fwnn_make_directory,
+          Swnn_make_directory, 1, 1, 0,
+ 	"For Wnn.")
+ 	(pathname)
+ register Lisp_Object pathname;
+ {
+ 
+ 	if(XTYPE(pathname) != Lisp_String) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	if(jd_mkdir(XSTRING(pathname)->data) < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ 
+ 
+ DEFUN ("wnn-dict-status", Fwnn_dict_satus, Swnn_dict_satus, 1, 1, 0,
+ 	"For Wnn.")
+ 	(fname)
+ register Lisp_Object fname;
+ {
+ 	int	ret;
+ 
+ 	if(XTYPE(fname) != Lisp_String) {
+ 		Vwnn_error_code = Qwnn_arguments_missmatch;
+ 		return Qnil;
+ 	}
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	ret = jd_dicstatus(XSTRING(fname)->data);
+ 	wnn_errorno = ret;
+ 	errorSet();
+ 	return Qt;
+ }
+ 
+ DEFUN ("wnn-server-dict-save", Fwnn_dict_save, Swnn_dict_save, 0, 0, 0,
+ 	"For Wnn.")
+ 	()
+ {
+ 	if(!wnnExist) {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 		return Qnil;
+ 	}
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	if(jd_freqsv() < 0) {
+ 		errorSet();
+ 		return Qnil;
+ 	} else {
+ 		Vwnn_error_code = Qnil;
+ 		return Qt;
+ 	}
+ }
+ 
+ Lisp_Object
+ makeBunsetsu(kp)
+ KOUHO_ENT	*kp;
+ {
+ 	Lisp_Object	val1, val2;
+ 	int		kanalen;
+ 	wchar		*kanjip, *kanap;
+ 	wchar		*bunp;
+ 
+ 	/* make kanji with kana */
+ 	kanap = bjp->kana_buf + kp->s_ichi + kp->jl;
+ 	val1 = make_string(bjp->kana_buf,
+ 			   wcstrlen(kp->k_data) + wcstrlen2(kanap, kp->fl));
+ 	bunp = (wchar *) XSTRING(val1)->data;
+ 	*bunp = 0;
+ 	w2c(kp->k_data, bunp, 0);
+ 	if(kp->fl) {
+ 		w2c(kanap, bunp, kp->fl);
+ 	}
+ 
+ 	/* make kana */
+ 	kanalen = wcstrlen2(bjp->kana_buf + kp->s_ichi, kp->jl + kp->fl);
+ 	val2 = make_string(bjp->kana_buf, kanalen);
+ 	bunp = (wchar *) XSTRING(val2)->data;
+ 	*bunp = 0;
+ 	w2c(bjp->kana_buf + kp->s_ichi, bunp, kp->jl + kp->fl);
+ 	return Fcons(val1, val2);
+ }
+ 
+ Lisp_Object
+ makeKouho(jp, no)
+ JIKOUHO_ENT	*jp;
+ int		no;
+ {
+ 	Lisp_Object	val;
+ 	int		fl;
+ 	KOUHO_ENT	*kp;
+ 	wchar		*kanap, *bunp;
+ 
+ 	kp = &bjp->klist[no];
+ 	fl = kp->fl + kp->jl - jp->jl;
+ 	kanap = bjp->kana_buf + kp->s_ichi + jp->jl;
+ 	val = make_string(bjp->kana_buf,
+ 			  wcstrlen(jp->k_data) + wcstrlen2(kanap, fl));
+ 	bunp = (wchar *) XSTRING(val)->data;
+ 	*bunp = 0;
+ 	w2c(jp->k_data, bunp, 0);
+ 	if(fl) {
+ 		w2c(kanap, bunp, fl);
+ 	};
+ 	return val;
+ }      
+ 
+ 
+ Lisp_Object
+ makeInspect(jp, no)
+ JIKOUHO_ENT	*jp;
+ int		no;
+ {
+ 	int		fl;
+ 	KOUHO_ENT	*kp;
+ 	wchar		*kanap, *bunp;
+         Lisp_Object     jishono, serial;
+         Lisp_Object     kanji,kana,fuzoku;
+ 	int             kanalen;
+ 	kp = &bjp->klist[no];
+ 	fl = kp->fl + kp->jl - jp->jl;
+ 	kanji = make_string(jp->k_data, wcstrlen(jp->k_data));
+ 	bunp = (wchar *) XSTRING(kanji)->data;
+ 	*bunp = 0;
+ 	w2c(jp->k_data, bunp, 0);
+ 
+ 	kanalen = wcstrlen2(bjp->kana_buf + kp->s_ichi, jp->jl);
+ 	kana = make_string(bjp->kana_buf, kanalen);
+ 	bunp = (wchar *) XSTRING(kana)->data;
+ 	*bunp = 0;
+ 	if(jp->jl){
+ 		kanap = bjp->kana_buf + kp->s_ichi;
+ 		w2c(kanap, bunp, jp->jl);
+ 	      }
+ 
+ 	kanalen = wcstrlen2(bjp->kana_buf + kp->s_ichi + jp->jl, fl);
+ 	fuzoku = make_string(bjp->kana_buf, kanalen);
+ 	bunp = (wchar *) XSTRING(fuzoku)->data;
+ 	*bunp = 0;
+ 	if(fl){
+ 	        kanap = bjp->kana_buf + kp->s_ichi + jp->jl;
+ 		w2c(kanap, bunp, fl);
+ 	      }
+ 
+ 	XSET (jishono, Lisp_Int, jp->jishono);
+ 	XSET (serial,  Lisp_Int, jp->serial);
+ 	return Fcons (kanji, Fcons (fuzoku , Fcons (kana, 
+ 		       Fcons (jishono, Fcons ( serial, Qnil)))));
+ }
+ 
+ Lisp_Object
+ makeInspectKp(bno)
+ int             bno;
+ {
+         KOUHO_ENT	*kp;
+ 	int		kanalen;
+ 	wchar		*kanjip, *kanap;
+ 	wchar		*bunp;
+ 	Lisp_Object     kanji, kana, fuzoku;
+ 	Lisp_Object     jishono, serial;
+ 
+ 	kp = &bjp->klist[bno];
+ 	kanji = make_string(kp->k_data, wcstrlen(kp->k_data));
+ 	bunp = (wchar *) XSTRING(kanji)->data;
+ 	*bunp = 0;
+ 	w2c(kp->k_data, bunp, 0);
+ 
+ 	kanalen = wcstrlen2(bjp->kana_buf + kp->s_ichi, kp->jl );
+ 	kana = make_string(bjp->kana_buf, kanalen);
+ 	bunp = (wchar *) XSTRING(kana)->data;
+ 	*bunp = 0;
+ 	if(kp->jl){
+ 		kanap = bjp->kana_buf + kp->s_ichi;
+ 		w2c(kanap, bunp, kp->jl);
+ 	      }
+ 
+ 	kanalen = wcstrlen2(bjp->kana_buf + kp->s_ichi + kp->jl, kp->fl);
+ 	fuzoku = make_string(bjp->kana_buf, kanalen);
+ 	bunp = (wchar *) XSTRING(fuzoku)->data;
+ 	*bunp = 0;
+ 	if(kp->fl){
+ 	        kanap = bjp->kana_buf + kp->s_ichi + kp->jl;
+ 		w2c(kanap, bunp, kp->fl);
+ 	      }
+ 
+ 	  XSET (jishono, Lisp_Int, kp->jishono);
+ 	  XSET (serial,  Lisp_Int, kp->serial);
+ 	  return Fcons (kanji,Fcons (fuzoku, Fcons (kana, 
+ 		       Fcons (jishono, Fcons (serial, Qnil)))));
+ }
+ 
+ 
+ Lisp_Object
+ makeJishoJoho(jp)
+ JISHOJOHO	*jp;
+ {
+ 	char		*cp;
+ 	Lisp_Object	str, bumpo, hindo, jisho, serial, val;
+ 
+ 	cp = (char *) alloca(wcstrlen(jp->k_data) + 1);
+ 	*cp = 0;
+ 	w2c(jp->k_data, cp, 0);
+ 	str = make_string(cp, strlen(cp));
+ 	XFASTINT(bumpo) = bunpoCode(jp->bumpo);
+ 	XFASTINT(hindo) = jp->hindo;
+ 	XFASTINT(jisho) = jp->jisho;
+ 	XFASTINT(serial) = jp->serial;
+ 	val = Fcons(serial, Qnil);
+ 	val = Fcons(jisho, val);
+ 	val = Fcons(hindo, val);
+ 	val = Fcons(bumpo, val);
+ 	val = Fcons(str, val);
+ 	return val;
+ }
+ 
+ wnn_exit()
+ {
+ 	int	ret1, ret2;
+ 
+ 	IS_WNN_DEAD;
+ 
+ 	if(wnnExist) {
+ 		Vwnn_error_code = Qnil;
+ 		if((ret1 = jd_freqsv()) < 0)
+ 			errorSet();
+ 		if((ret2 = jd_close()) < 0)
+ 			errorSet();
+ 		wnnExist = 0;
+ 		return ret1|ret2;
+ 	} else {
+ 		Vwnn_error_code = Qwnn_no_connection;
+ 	}
+ 	return -2;
+ }
+ 
+ syms_of_wnn()
+ {
+ 	defsubr(&Swnn_open);
+ 	defsubr(&Swnn_close);
+ 	defsubr(&Swnn_use_dict);
+ 	defsubr(&Swnn_begin_henkan);
+ 	defsubr(&Swnn_jikouho);
+ 	defsubr(&Swnn_kakutei);
+ 	defsubr(&Swnn_inspect_henkan);
+ 	defsubr(&Swnn_bunsetu_henkou);
+ 	defsubr(&Swnn_quit_henkan);
+ 	defsubr(&Swnn_end_henkan);
+ 	defsubr(&Swnn_set_current_dict);
+ 	defsubr(&Swnn_dict_toroku);
+ 	defsubr(&Swnn_dict_sakujo);
+ 	defsubr(&Swnn_dict_joho);
+ 	defsubr(&Swnn_file_access);
+         defsubr(&Swnn_getevf);
+ 	defsubr(&Swnn_setevf);
+         defsubr(&Swnn_make_directory);
+ 	defsubr(&Swnn_dict_satus);
+         defsubr(&Swnn_dict_save);
+ 
+ 	DEFVAR_LISP ("wnn-error-code", &Vwnn_error_code, "For wnn");
+ 	Vwnn_error_code = Qnil;
+ 
+ 	Qwnn_dead = intern (":wnn-dead");
+ 	Qwnn_already_exist = intern (":already-exist");
+ 	Qwnn_no_connection = intern (":wnn-no-connection");
+ 	Qwnn_arguments_missmatch = intern(":arguments-missmatch");
+ 	Qwnn_alloc_fail = intern(":alloc-fail");
+ 	Qwnn_open_fail = intern(":open-fail");
+ 	Qwnn_save_fail = intern(":save-fail");
+ 	Qwnn_close_fail = intern(":close-fail");
+ 	Qwnn_too_many_bunsetsu = intern(":too-many-bunsetsu");
+ 	Qwnn_no_exist = intern(":no-exist");
+ 	Qwnn_not_a_dict = intern(":not-a-dict");
+ 	Qwnn_user_dict = intern(":user-dict");
+ 	Qwnn_system_dict = intern(":system-dict");
+ 
+ 	Qwnn_no_exist_file = intern(":no-exist-file");
+ 
+ #ifdef WNN3
+ 	Qwnn_not_valid_user_dict = intern(":not-valid-user-dict");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_not_system_dict = intern(":not-system-dict");
+ #endif WNN3
+ 
+ /*	Qwnn_not_a_dict = intern(":not-a-dict"); */
+ #ifdef WNN3
+ 	Qwnn_no_spec_file = intern(":no-spec-file");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_no_spec_hindo_file = intern(":no-spec-hindo-file");
+ #endif WNN3
+ 
+ 	Qwnn_full_jisho_table = intern(":full-jisho-table");
+ 	Qwnn_bad_hindo_file = intern(":bad-hindo-file");
+ #ifdef WNN3
+ 	Qwnn_cannot_read_file = intern(":cannot-read-file");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_overflow_global_hindo_table = intern(":overflow-global-hindo-table");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_overflow_global_jisho_table = intern(":overflow-global-jisho-table");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_cannot_write_file = intern(":cannot-write-file");
+ #endif WNN3
+ 
+ 	Qwnn_cannot_open_file = intern(":cannot-open-file");
+ 	Qwnn_not_use_dict_no = intern(":not-use-dict-no");
+ 
+ #ifdef WNN3
+ 	Qwnn_not_userdict = intern(":not-userdict");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_cannot_change_current_dict = intern(":cannot-change-current-dict");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_overflow_jisho_table = intern(":overflow-jisho-table");
+ #endif WNN3
+ 
+ 	Qwnn_too_many_moji = intern(":too-many-moji");
+ 	Qwnn_overflow_wk_area = intern(":overflow-wk-area");
+ 
+ #ifdef WNN3
+ 	Qwnn_overflow_k_area = intern(":overflow-k-area");
+ #endif WNN3
+ 
+ 	Qwnn_too_long_yomi = intern(":too-long-yomi");
+ 	Qwnn_too_long_kanji = intern(":too-long-kanji");
+ 
+ #ifdef WNN3
+ 	Qwnn_bad_yomi = intern(":bad-yomi");
+ #endif WNN3
+ 
+ 	Qwnn_dict_no_yomi = intern(":dict-no-yomi");
+ 
+ #ifdef WNN3
+ 	Qwnn_not_specified_dict = intern(":not-specified-dict");
+ #endif WNN3
+ 
+ 	Qwnn_cannot_registered_in_the_dict = intern(":cannot-registered-in-the-dict");
+ 	Qwnn_not_exist_word = intern(":not-exist-word");
+ 
+ #ifdef WNN3
+ 	Qwnn_too_many_jikouho = intern(":too-many-jikouho");
+ #endif WNN3
+ 
+ 	Qwnn_some_error = intern(":some-error");
+ 	Qwnn_have_some_bugs = intern(":have-some-bugs");
+ 
+ #ifdef WNN3
+ 	Qwnn_no_more_buf_area = intern(":no-more-buf-area");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_minus_mojiretsu = intern(":minus-mojiretsu");
+ #endif WNN3
+ 
+ 	Qwnn_cannot_mkdir = intern(":cannot-mkdir");
+ 
+ #ifdef WNN3
+ 	Qwnn_not_a_username = intern(":not-a-username");
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	Qwnn_not_a_hostname = intern(":not-a-hostname");
+ #endif WNN3
+ 
+ 	Qwnn_unknown_fail = intern(":unknown-fail");
+ }
+ 
+ w2c(wp, cp, len)
+ wchar	*wp;
+ char	*cp;
+ int	len; /* length of go */
+ {
+ 	wchar	wc;
+ 
+ 	while(*cp) cp++;
+ 	while(wc = *wp++) {
+ 		if(wc & 0x8000)
+ 			*cp++ = (wc & 0xff00) >> 8;
+ 		*cp++ = wc & 0x00ff;
+ 		if(len && --len == 0)
+ 			break;
+ 	}
+ 	*cp = 0;
+ }
+ 
+ wcstrlen(wp)
+ wchar	*wp;
+ {
+ 	wchar	wc;
+ 	int	len = 0;
+ 
+ 	while(wc = *wp++) {
+ 		if(wc & 0x8000)
+ 			len += 2;
+ 		else
+ 			len++;
+ 	}
+ 	return len;
+ }
+ 
+ wcstrlen2(wp, wsize)
+ wchar	*wp;
+ int	wsize;	/* wchar size */
+ {
+ 	wchar	wc;
+ 	int	len = 0;
+ 
+ 	if(!wsize) return 0;
+ 	while(wsize--) {
+ 		if(*wp++ & 0x8000)
+ 			len += 2;
+ 		else
+ 			len++;
+ 	}
+ 	return len;
+ }
+ 
+ c2w(cp, wp)
+ unsigned char	*cp;
+ wchar	*wp;
+ {
+ 	unsigned char	ch;
+ 
+ 	while(ch = *cp++) {
+ 		if(ch & 0x80) {
+ 			*wp++ = (((wchar) ch) << 8) | *cp++;
+ 		} else {
+ /*
+ 			*wp++ = (((wchar) ch) << 8) | ch;
+ */
+ 			*wp++ = (wchar) ch;
+ 		}
+ 	}
+ 	*wp = 0;
+ }
+ 
+ /* Return bit position as bunpo code index:
+ for unknown value, return 1000; 89-Dec-12 */
+ bunpoCode(val)
+ int	val;
+ {
+ 	int	ret = 0;
+ 
+ 	if(val <= 0) return 1000; 
+ 	while((val & 1)==0) {
+ 		ret++;
+ 		val >>= 1;
+ 	}
+ 	if ((val>>1)==0) return ret;
+ 	else return 1000;
+ }
+ 
+ errorSet()
+ {
+ 	switch(wnn_errorno) {
+ 	case WNN_NO_EXIST:
+ 		Vwnn_error_code = Qwnn_no_exist_file;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_NOT_USERDICT:
+ 		Vwnn_error_code = Qwnn_not_valid_user_dict;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_NOT_SYSTEM:
+ 		Vwnn_error_code = Qwnn_not_system_dict;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_NOT_A_DICT:
+ 		Vwnn_error_code = Qwnn_not_a_dict;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_FILE_NO_SPECIFIED:
+ 		Vwnn_error_code = Qwnn_no_spec_file;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_HINDO_FILE_NOT_SPECIFIED:
+ 		Vwnn_error_code = Qwnn_no_spec_hindo_file;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_JISHOTABLE_FULL:
+ 		Vwnn_error_code = Qwnn_full_jisho_table;
+ 		break;
+ 	case WNN_HINDO_NO_MATCH:
+ 		Vwnn_error_code = Qwnn_bad_hindo_file;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_PARAMR:
+ 		Vwnn_error_code = Qwnn_cannot_read_file;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_HJT_FULL:
+ 		Vwnn_error_code = Qwnn_overflow_global_hindo_table;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_JT_FULL:
+ 		Vwnn_error_code = Qwnn_overflow_global_jisho_table;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_PARAMW:
+ 		Vwnn_error_code = Qwnn_cannot_write_file;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_OPENF_ERR:
+ 		Vwnn_error_code = Qwnn_cannot_open_file;
+ 		break;
+ 	case WNN_DICT_NOT_USED:
+ 		Vwnn_error_code = Qwnn_not_use_dict_no;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_NOT_A_USERDICT:
+ 		Vwnn_error_code = Qwnn_not_userdict;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_READONLY:
+ 		Vwnn_error_code = Qwnn_cannot_change_current_dict;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_JMT_FULL:
+ 		Vwnn_error_code = Qwnn_overflow_jisho_table;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_LONG_MOJIRETSU:
+ 		Vwnn_error_code = Qwnn_too_many_moji;
+ 		break;
+ 	case WNN_WKAREA_FULL:
+ 		Vwnn_error_code = Qwnn_overflow_wk_area;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_KAREA_FULL:
+ 		Vwnn_error_code = Qwnn_overflow_k_area;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_YOMI_LONG:
+ 		Vwnn_error_code = Qwnn_too_long_yomi;
+ 		break;
+ 	case WNN_KANJI_LONG:
+ 		Vwnn_error_code = Qwnn_too_long_kanji;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_BAD_YOMI:
+ 		Vwnn_error_code = Qwnn_bad_yomi;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_NO_YOMI:
+ 		Vwnn_error_code = Qwnn_dict_no_yomi;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_NO_CURRENT:
+ 		Vwnn_error_code = Qwnn_not_specified_dict;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_RDONLY:
+ 		Vwnn_error_code = Qwnn_cannot_registered_in_the_dict;
+ 		break;
+ 	case WNN_WORD_NO_EXIST:
+ 		Vwnn_error_code = Qwnn_not_exist_word;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_JIKOUHO_TOO_MANY:
+ 		Vwnn_error_code = Qwnn_too_many_jikouho;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_SOME_ERROR:
+ 		Vwnn_error_code = Qwnn_some_error;
+ 		break;
+ 	case WNN_SONOTA:
+ 		Vwnn_error_code = Qwnn_have_some_bugs;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_JSERVER_DEAD:
+ 		Vwnn_error_code = Qwnn_dead;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_ALLOC_FAIL:
+ 	case WNN_MALLOC_INITIALIZE:
+ 	case WNN_MALLOC_ERR:
+ 		Vwnn_error_code = Qwnn_alloc_fail;
+ 		break;
+ 	case WNN_SOCK_OPEN_FAIL:
+ 		Vwnn_error_code = Qwnn_open_fail;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_RCV_SPACE_OVER:
+ 		Vwnn_error_code = Qwnn_no_more_buf_area;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_MINUS_MOJIRETSU:
+ 		Vwnn_error_code = Qwnn_minus_mojiretsu;
+ 		break;
+ #endif WNN3
+ 
+ 	case WNN_MKDIR_FAIL:
+ 		Vwnn_error_code = Qwnn_cannot_mkdir;
+ 		break;
+ 
+ #ifdef WNN3
+ 	case WNN_BAD_USER:
+ 		Vwnn_error_code = Qwnn_not_a_username;
+ 		break;
+ #endif WNN3
+ 
+ #ifdef WNN3
+ 	case WNN_BAD_HOST:
+ 		Vwnn_error_code = Qwnn_not_a_hostname;
+ 		break;
+ #endif WNN3
+ 
+ 	default:
+ /*		Vwnn_error_code = Qwnn_unknown_fail; */
+ 		Vwnn_error_code = make_number( wnn_errorno);
+ 	}
+ }
diff -arcN emacs-18.55/src/x11fns.c nemacs-3.3.2/src/x11fns.c
*** emacs-18.55/src/x11fns.c	Mon Aug 14 04:54:21 1989
--- nemacs-3.3.2/src/x11fns.c	Wed Jun  6 03:18:42 1990
***************
*** 1,3 ****
--- 1,7 ----
+ /*           modified for Nemacs Ver.2.1  by A.Kato */
+ /*  89.3.13  modified for Nemacs Ver.3.0  by K.Handa */
+ /*  89.4.17  modified for Nemacs Ver.3.2.1 by T.Hasei */
+ 
  /* Functions for the X window system.
     Copyright (C) 1988 Free Software Foundation.
  
***************
*** 43,48 ****
--- 47,56 ----
  
  #ifdef HAVE_X_WINDOWS
  
+ #ifdef NEMACS
+ #include "kanji.h"
+ #endif
+ 
  #define abs(x) ((x < 0) ? ((x)) : (x))
  #define sgn(x) ((x < 0) ? (-1) : (1))
  #define min(a,b) ((a) < (b) ? (a) : (b))
***************
*** 85,90 ****
--- 93,105 ----
  extern GC XXgc_norm,XXgc_rev,XXgc_curs,XXgc_temp;
  extern XGCValues XXgcv;
  extern int XXfontw,XXfonth,XXbase,XXisColor;
+ #ifdef NEMACS
+ extern XFontStruct *wfontinfo;
+ extern Font XXWfid;
+ extern GC XXWgc_norm,XXWgc_rev,XXWgc_curs,XXWgc_temp;
+ extern XGCValues XXWgcv;
+ extern int XXWfontw,XXWfonth,XXWbase;
+ #endif  /* NEMACS */
  extern Colormap XXColorMap;
  
  extern int PendingExposure;
***************
*** 96,101 ****
--- 111,119 ----
  extern Cursor EmacsCursor;
  extern short MouseCursor[], MouseMask[];
  extern char *XXcurrentfont;
+ #ifdef	NEMACS
+ extern char *XXWcurrentfont;
+ #endif
  extern int informflag;
  
  extern int WindowMapped;
***************
*** 174,179 ****
--- 192,201 ----
  
  	XSetForeground(XXdisplay, XXgc_norm, fore);
  	XSetBackground(XXdisplay, XXgc_rev, fore);
+ #ifdef	NEMACS
+ 	XSetForeground(XXdisplay, XXWgc_norm, fore);
+ 	XSetBackground(XXdisplay, XXWgc_rev, fore);
+ #endif
  	
  	Fredraw_display ();
  	UNBLOCK_INPUT ();
***************
*** 215,224 ****
--- 237,255 ----
  
  	XSetBackground (XXdisplay, XXgc_norm, back);
  	XSetForeground (XXdisplay, XXgc_rev, back);
+ #ifdef	NEMACS
+  	XSetBackground (XXdisplay, XXWgc_norm, back);
+ 	XSetForeground (XXdisplay, XXWgc_rev, back);
+ #endif
  	XSetWindowBackground(XXdisplay, XXwindow, back);
  	XClearArea (XXdisplay, XXwindow, 0, 0,
  		    screen_width*XXfontw+2*XXInternalBorder,
  		    screen_height*XXfonth+2*XXInternalBorder, 0);
+ #ifdef	NEMACS
+ 	XClearArea (XXdisplay, XXwindow, 0, 0,
+ 		    screen_width*XXWfontw+2*XXInternalBorder,
+ 		    screen_height*XXWfonth+2*XXInternalBorder, 0);
+ #endif
  	
  	UNBLOCK_INPUT ();
  	Fredraw_display ();
***************
*** 300,305 ****
--- 331,339 ----
  				curs_color = save_color;
  
  	XSetBackground(XXdisplay, XXgc_curs, curs);
+ #ifdef	NEMACS
+ 	XSetBackground(XXdisplay, XXWgc_curs, curs);
+ #endif
  	
  	CursorToggle ();
  	CursorToggle ();
***************
*** 483,488 ****
--- 517,551 ----
  	return Qnil;
  }
  
+ #ifdef	NEMACS
+ DEFUN ("x-set-kfont", Fx_set_kfont, Sx_set_kfont, 1, 1, "sKanji Font Name: ",
+       "Sets the kanji font to be used for the X window.")
+   (arg)
+      Lisp_Object arg;
+ {
+ 	register char *newfontname;
+ 	
+ 	CHECK_STRING (arg, 1);
+ 	check_xterm ();
+ 
+ 	newfontname = (char *) xmalloc (XSTRING (arg)->size + 1);
+ 	bcopy (XSTRING (arg)->data, newfontname, XSTRING (arg)->size + 1);
+ 	if (XSTRING (arg)->size == 0)
+ 		goto badfont;
+ 
+ 	if (!/*XNewFont*/ XNewWFont (newfontname)) {
+ 		free (/*XXcurrentfont*/ XXWcurrentfont);
+ 		/*XXcurrentfont*/ XXWcurrentfont = newfontname;
+ 		return Qt;
+ 	}
+ badfont:
+ 	error ("Kanji font \"%s\" is not defined", newfontname);
+ 	free (newfontname);
+ 
+ 	return Qnil;
+ }
+ #endif	/* NEMACS */
+ 
  DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p,
    Scoordinates_in_window_p, 2, 2, 0,
    "Return non-nil if POSITIONS (a list, (SCREEN-X SCREEN-Y)) is in WINDOW.\n\
***************
*** 640,645 ****
--- 703,719 ----
  	return Qnil;
  }
  
+ #ifdef	NEMACS
+ 	/*
+ 	 * Code conversion is necessary when x-store-cut-buffer and
+ 	 * x-get-cut-buffer operation is executed. Due to the
+ 	 * (temporaly) convention of kterm, all strings in the cut
+ 	 * buffers in a X server should be represented in 7bit JIS
+ 	 * code regardless of the native Kanji code. So we put e2j()
+ 	 * and j2e() to do code conversion. Those modifications are
+ 	 * done by kato@cs.titech.junet.
+ 	 */
+ #endif	/* NEMACS */
  DEFUN ("x-store-cut-buffer", Fx_store_cut_buffer, Sx_store_cut_buffer,
    1, 1, "sSend string to X:",
    "Store contents of STRING into the cut buffer of the X window system.")
***************
*** 646,651 ****
--- 720,729 ----
    (string)
       register Lisp_Object string;
  {
+ #ifdef	NEMACS
+ 	int len;
+ 	unsigned char *p;
+ #endif	/* NEMACS */
  	BLOCK_INPUT_DECLARE ();
  
  	CHECK_STRING (string, 1);
***************
*** 652,659 ****
--- 730,747 ----
  	check_xterm ();
  
  	BLOCK_INPUT ();
+ #ifdef	NEMACS
+ 	p = (unsigned char *)malloc(XSTRING (string)->size * 3 + 5);
+ 	if (!p)
+ 		memory_full();
+ 	len = e2j(XSTRING (string)->size, XSTRING (string)->data, p,
+ 		XFASTINT(to_kanji_fileio), XFASTINT(to_ascii_fileio));
+ 	XStoreBytes (XXdisplay, p, len);
+ 	free(p);
+ #else	/* not NEMACS */
  	XStoreBytes (XXdisplay, XSTRING (string)->data,
  		     XSTRING (string)->size);
+ #endif	/* not NEMACS */
  	UNBLOCK_INPUT ();
  
  	return Qnil;
***************
*** 666,676 ****
--- 754,780 ----
  	int len;
  	register Lisp_Object string;
  	BLOCK_INPUT_DECLARE ();
+ #ifdef	NEMACS
+ 	register unsigned char *p;
+ #endif	/* NEMACS */
  	register char *d;
  
  	BLOCK_INPUT ();
  	d = XFetchBytes (XXdisplay, &len);
+ #ifdef	NEMACS
+ 	if (len <= 0)
+ 		string = make_string ("", len);
+ 	else {
+ 		p = (unsigned char *)malloc(len + 1);
+ 		if (!p)
+ 			memory_full();
+ 		len = j2e(len, d, p);
+ 		string = make_string (p, len);
+ 		free(p);
+ 	}
+ #else	/* not NEMACS */
  	string = make_string (d, len);
+ #endif	/* not NEMACS */
  	UNBLOCK_INPUT ();
  
  	return string;
***************
*** 864,869 ****
--- 968,976 ----
    defsubr (&Sx_set_bell);
    defsubr (&Sx_flip_color);
    defsubr (&Sx_set_font);
+ #ifdef	NEMACS
+   defsubr (&Sx_set_kfont);
+ #endif
  #ifdef notdef
    defsubr (&Sx_set_icon);
  #endif notdef
diff -arcN emacs-18.55/src/x11term.c nemacs-3.3.2/src/x11term.c
*** emacs-18.55/src/x11term.c	Thu Aug  3 11:56:42 1989
--- nemacs-3.3.2/src/x11term.c	Wed Jun  6 03:18:44 1990
***************
*** 1,3 ****
--- 1,16 ----
+ /*          modified for Nemacs Ver.2.1 by A.Kato */
+ /* 89.3.13  modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.24 modified for attribute of characters by K.Handa */
+ /* 89.12.12 modified for Nemacs Ver.3.2.1 by K.Handa
+ 	- GR encoded Japanese fonts (MSB=1) can be used.
+ 	- Calculation of width and height of fonts are changed.
+ 	- Underline is drawn by GXcopy or GXcopyInverted. */
+ /* 89.12.15 modified for Nemacs Ver.3.2.1 by T.Hasei */
+ /* 89.12.19 modified for Nemacs Ver.3.2.3 by K.Handa
+ 	- Underline is drawn by GXset or GXclear. */
+ /* 90.3.26  modified for Nemacs Ver.3.3.2 by Ishisone
+ 	- GC for underline is changed. */
+ 
  /* X Communication module for terminals which understand the X protocol.
     Copyright (C) 1988 Free Software Foundation, Inc.
  
***************
*** 124,129 ****
--- 137,152 ----
  XFontStruct *fontinfo;
  Font XXfid;
  int XXfontw, XXfonth, XXbase, XXisColor;
+ #ifdef	NEMACS
+ char *XXWcurrentfont;
+ XFontStruct *wfontinfo;
+ Font XXWfid;
+ int XXWfontw, XXWfonth, XXWbase;
+ int  XXfonthBounds;
+ /* 89.12.11  patch by K.Handa */
+ int XXWhighencoding, XXWul_descent, XXul_descent;
+ /* end of patch */
+ #endif	NEMACS
  
  Colormap XXColorMap;
  char *default_window;
***************
*** 172,177 ****
--- 195,204 ----
  Window XXwindow;
  GC XXgc_norm,XXgc_rev,XXgc_curs,XXgc_temp;
  XGCValues XXgcv;
+ #ifdef	NEMACS
+ GC XXWgc_norm,XXWgc_rev,XXWgc_curs,XXWgc_temp;
+ XGCValues XXWgcv;
+ #endif
  Cursor EmacsCursor;
  Pixmap SinkPixmap, SinkMaskPixmap;
  
***************
*** 195,200 ****
--- 222,230 ----
  int updated[MAXHEIGHT];
  
  static char  *temp_font;                /* needed because of loading hacks */
+ #ifdef	NEMACS
+ static char  *temp_wfont;                /* needed because of loading hacks */
+ #endif	NEMACS
  static char  *temp_reverseVideo;
  static char  *temp_borderWidth;
  static char  *temp_internalBorder;
***************
*** 217,222 ****
--- 247,256 ----
       { "pointerColor",	"Foreground",		&mous_color },
       { "cursorColor",	"Foreground",		&curs_color },
       { "font",		"Font",			&temp_font },
+ #ifdef	NEMACS
+      { "kfont",		"KanjiFont",		&temp_wfont },
+      { "kfont",		"kanjiFont",		&temp_wfont }, /* by T.Hasei */
+ #endif	NEMACS
       { "geometry",	"Geometry",		&desiredwindow },
       { "title",		"Title",		&XXheader },
       { "iconName",	"Title",		&XXicon_name },
***************
*** 476,482 ****
--- 510,534 ----
  	    tempY < 0 || tempY >= screen_height)
  		return;
  
+ #ifdef	NEMACS
+ 	if (ActiveScreen[tempY+1]->body[tempX] & 0x80) {
+ 		unsigned char	*p =
+ 			(unsigned char *) ActiveScreen[tempY+1]->body;
+ 		int	i, flag;
+ 
+ 		for (flag = i = 0 ; i < tempX ; i++, p++)
+ 			if (flag = *p & 0x80)
+ 				i++, p++;
+ 		if (flag && i > tempX)
+ 			tempX--, numcols++;
+ 	}
+ 	XDrawEUC(XXdisplay, XXwindow, tempHL ? XXgc_rev : XXgc_norm,
+ 				      tempHL ? XXWgc_rev : XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 		         &ActiveScreen[tempY+1]->attribute[tempX],
+ #else	NEMACS
  	XDrawImageString(XXdisplay, XXwindow, tempHL ? XXgc_rev : XXgc_norm,
+ #endif	NEMACS
  			 tempX*XXfontw+XXInternalBorder,
  			 tempY*XXfonth+XXInternalBorder+XXbase,
  			 &ActiveScreen[tempY+1]->body[tempX],
***************
*** 518,525 ****
--- 570,585 ----
  	else
  		temp_length = 0;
  	if (temp_length > 0) {
+ #ifdef	NEMACS
+ 		XDrawEUC (XXdisplay, XXwindow,
+ 				  CurHL ? XXgc_rev : XXgc_norm,
+ 				  CurHL ? XXWgc_rev : XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 				  &DesiredScreen[cursY + 1]->attribute[first],
+ #else	NEMACS
  		XDrawImageString (XXdisplay, XXwindow,
  				  CurHL ? XXgc_rev : XXgc_norm,
+ #endif	NEMACS
  				  first*XXfontw+XXInternalBorder,
  				  cursY*XXfonth+XXInternalBorder+XXbase,
  				  &DesiredScreen[cursY + 1]->body[first],
***************
*** 540,545 ****
--- 600,609 ----
  {
    BLOCK_INPUT_DECLARE ();
  
+ /* patch by K.Handa for highlight */
+ /*  updateline(0); return;
+ /* end of patch */
+ 
  #ifdef XDEBUG
    fprintf(stderr, "writechars (cursX %d temp_len %d InUpd %d)\n",
  	  cursX, end-start+1, InUpdate);
***************
*** 556,566 ****
--- 620,640 ----
    if (CursorExists)
      CursorToggle ();
  
+ /* patch by K.Handa for highlight */
+   if (inverse_video) HLmode(1);
  
    if (InUpdate)
      {
+ #ifdef	NEMACS
+       XDrawEUC (XXdisplay, XXwindow,
+ 			CurHL ? XXgc_rev : XXgc_norm,
+ 			CurHL ? XXWgc_rev : XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 		        attribute_p,
+ #else	NEMACS
        XDrawImageString (XXdisplay, XXwindow,
  			CurHL ? XXgc_rev : XXgc_norm,
+ #endif	NEMACS
  			cursX*XXfontw+XXInternalBorder,
  			cursY*XXfonth+XXInternalBorder+XXbase,
  			start,
***************
*** 582,589 ****
--- 656,671 ----
    if (((end - start) + VisibleX) >= screen_width)
      end = start + (screen_width - (VisibleX + 1));
    if (end >= start) {
+ #ifdef	NEMACS
+     XDrawEUC (XXdisplay, XXwindow,
+ 		      CurHL ? XXgc_rev : XXgc_norm,
+ 		      CurHL ? XXWgc_rev : XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 	              attribute_p,
+ #else	NEMACS
      XDrawImageString (XXdisplay, XXwindow,
  		      CurHL ? XXgc_rev : XXgc_norm,
+ #endif	NEMACS
  		      (VisibleX * XXfontw+XXInternalBorder),
  		      VisibleY * XXfonth+XXInternalBorder+XXbase,
  		      start,
***************
*** 692,704 ****
--- 774,798 ----
  	if (ActiveScreen && ActiveScreen[VisibleY+1] &&
  	    VisibleX < ActiveScreen[VisibleY+1]->length) {
  		if (CursorExists)
+ #ifdef	NEMACS
+ 			XDrawEUC(XXdisplay, XXwindow, XXgc_norm, XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 				&ActiveScreen[VisibleY+1]->attribute[VisibleX],
+ #else
  			XDrawImageString(XXdisplay, XXwindow, XXgc_norm,
+ #endif
  				    VisibleX*XXfontw+XXInternalBorder,
  				    VisibleY*XXfonth+XXInternalBorder+XXbase,
  				    &ActiveScreen[VisibleY+1]->body[VisibleX],
  				    1);
  		else if (CursorOutline) {
+ #ifdef	NEMACS
+ 			XDrawEUC(XXdisplay, XXwindow, XXgc_norm, XXWgc_norm,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 				&ActiveScreen[VisibleY+1]->attribute[VisibleX],
+ #else
  			XDrawImageString(XXdisplay, XXwindow, XXgc_norm,
+ #endif
  				    VisibleX*XXfontw+XXInternalBorder,
  				    VisibleY*XXfonth+XXInternalBorder+XXbase,
  				    &ActiveScreen[VisibleY+1]->body[VisibleX],
***************
*** 706,714 ****
--- 800,818 ----
  			XDrawRectangle (XXdisplay, XXwindow, XXgc_norm,
  					VisibleX*XXfontw+XXInternalBorder,
  					VisibleY*XXfonth+XXInternalBorder,
+ #ifdef	NEMACS
+ 					XXfontw*((ActiveScreen[VisibleY+1]->body[VisibleX]) & 0x80 ? 2 : 1) - 1, XXfonth - 1);
+ #else
  					XXfontw - 1, XXfonth - 1);
+ #endif
  		} else
+ #ifdef	NEMACS
+ 			XDrawEUC(XXdisplay, XXwindow, XXgc_curs, XXWgc_curs,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 				&ActiveScreen[VisibleY+1]->attribute[VisibleX],
+ #else
  			XDrawImageString(XXdisplay, XXwindow, XXgc_curs,
+ #endif
  				    VisibleX*XXfontw+XXInternalBorder,
  				    VisibleY*XXfonth+XXInternalBorder+XXbase,
  				    &ActiveScreen[VisibleY+1]->body[VisibleX],
***************
*** 719,725 ****
--- 823,833 ----
  			XClearArea (XXdisplay, XXwindow,
  				    VisibleX*XXfontw+XXInternalBorder,
  				    VisibleY*XXfonth+XXInternalBorder,
+ #ifdef NEMACS  /* 89.11.28  by K.Handa */
+ 				    XXfontw*2, XXfonth, 0);
+ #else
  				    XXfontw, XXfonth, 0);
+ #endif
  		else if (CursorOutline)
  			XDrawRectangle (XXdisplay, XXwindow, XXgc_norm,
   					VisibleX*XXfontw+XXInternalBorder,
***************
*** 726,732 ****
--- 834,846 ----
  					VisibleY*XXfonth+XXInternalBorder,
  					XXfontw - 1, XXfonth - 1);
  		else
+ #ifdef	NEMACS
+ 			XDrawEUC(XXdisplay, XXwindow, XXgc_curs, XXWgc_curs,
+ /* patch for attribute by K.Handa  89.11.24 */
+ 				    "\0",
+ #else
  			XDrawImageString(XXdisplay, XXwindow, XXgc_curs,
+ #endif
  				    VisibleX*XXfontw+XXInternalBorder,
  				    VisibleY*XXfonth+XXInternalBorder+XXbase,
  				    " ", 1);
***************
*** 1598,1603 ****
--- 1712,1720 ----
  
  	desiredwindow =
  	XXcurrentfont =
+ #ifdef	NEMACS
+ 	XXWcurrentfont =
+ #endif	NEMACS
  	XXidentity =
  	XXicon_name =
  	XXheader = (char *) NULL;
***************
*** 1604,1610 ****
--- 1721,1734 ----
  
  	XXicon_usebitmap = 0;
  	
+ #ifdef	NEMACS  /* modified by K.Handa 89.12.12 */
+ 	temp_font = "a14";
+ 	temp_wfont = "k14";
+ 	XXfonth = XXfontw = XXbase = XXWfonth = XXWfontw = XXWbase = 0;
+ 	XXul_descent = XXWul_descent = 0;
+ #else	NEMACS
  	temp_font = "fixed";
+ #endif	NEMACS
  	progname = xargv[0];
  	if (ptr = rindex(progname, '/'))
  	  progname = ptr+1;
***************
*** 1677,1682 ****
--- 1801,1820 ----
  			xxargc--;
  			xxargv++;
  		}
+ #ifdef	NEMACS
+ /* 89.3.23 patch by K.Handa: "fkn" -> "fk" */
+ 		if ((xxargc > 1) && (!strcmp (*xxargv, "-kfont") ||
+ 				     !strcmp (*xxargv, "-fk"))) {
+ 			xxargc--;
+ 			xxargv++;
+ 			if (XXWcurrentfont != NULL)
+ 				free(XXWcurrentfont);
+ 			XXWcurrentfont = (char *) xmalloc (strlen (*xxargv)+1);
+ 			strcpy (XXWcurrentfont, *xxargv);
+ 			xxargc--;
+ 			xxargv++;
+ 		}
+ #endif
  		if ((xxargc > 1) && !strcmp (*xxargv, "-wn")) {
  			xxargc--;
  			xxargv++;
***************
*** 1877,1882 ****
--- 2015,2034 ----
  	    strcpy (XXcurrentfont, temp_font);
  	}
  	
+ #ifdef	NEMACS
+ 	if (!XXWcurrentfont)
+ 	{
+ 	    XXWcurrentfont = (char *) xmalloc (strlen (temp_wfont) + 1);
+ 
+ 	    if (!XXWcurrentfont) {
+ 		fprintf (stderr, "Memory allocation failure.\n");
+ 		exit (-150);
+ 	    }
+ 
+ 	    strcpy (XXWcurrentfont, temp_wfont);
+ 	}
+ #endif	NEMACS
+ 	
  
  
  	signal (SIGPIPE, XExitGracefully);
***************
*** 1935,1943 ****
--- 2087,2104 ----
   *  Load a font by name.  Return the font pointer, or NULL if
   *  it can't be loaded.  Do all appropriate calculations.
   */
+ #ifdef	NEMACS
+ #define	XT_CalcForFont(fontname)	_XT_CalcForFont(fontname, 0)
+ #define	XT_CalcForWFont(fontname)	_XT_CalcForFont(fontname, 1)
+ static XFontStruct *
+ _XT_CalcForFont(fontname, WFontSpecify)
+     char  *fontname;
+     int  WFontSpecify;
+ #else
  static XFontStruct *
  XT_CalcForFont(fontname)
      char  *fontname;
+ #endif	NEMACS
  {
      XFontStruct  *fontp;
  
***************
*** 1947,1956 ****
--- 2108,2143 ----
  	return  (XFontStruct *) NULL;
      }
  
+ #ifdef	NEMACS  /* modified by K.Handa 89.12.12 */
+     if (WFontSpecify) {
+       XXWfid = fontp->fid;
+       XXWfonth = fontp->ascent + fontp->descent;
+       XXWfontw = fontp->max_bounds.width;
+       XXWbase = fontp->ascent;
+       XXWul_descent = fontp->descent - 2;
+ /* 89.12.11  patch by K.Handa */
+       XXWhighencoding =  (fontp->min_char_or_byte2 > 0x80);
+ /* end of patch */
+     } else {
+       XXfid = fontp->fid;
+       XXfonth = fontp->ascent + fontp->descent;
+       XXfontw = fontp->max_bounds.width;
+       XXbase = fontp->ascent;
+       XXul_descent = fontp->descent - 2;
+     }
+     if (XXfonth < XXWfonth) XXfonth = XXWfonth;
+     if (XXfontw * 2 < XXWfontw) {
+       XXfontw = (XXWfontw + 1) / 2;
+       XXWfontw = XXfontw * 2;
+     }
+     if (XXbase < XXWbase) XXbase = XXWbase;
+     if (XXul_descent < XXWul_descent) XXul_descent = XXWul_descent;
+ #else
      XXfid = fontp->fid;
      XXfonth = fontp->ascent + fontp->descent;
      XXfontw = fontp->max_bounds.width;
      XXbase = fontp->ascent;
+ #endif	NEMACS
  
      return  fontp;
  }
***************
*** 1958,1965 ****
--- 2145,2170 ----
  
  /* ------------------------------------------------------------
   */
+ #ifdef	NEMACS
+ XNewFont (newname)
+      char *newname;
+ {
+ 	return(_XNewFont(newname, 0));
+ }
+ 
+ XNewWFont (newname)
+      char *newname;
+ {
+ 	return(_XNewFont(newname, 1));
+ }
+ 
+ _XNewFont (newname, WFontSpecify)
+      register char *newname;
+      int WFontSpecify;
+ #else
  XNewFont (newname)
       register char *newname;
+ #endif	NEMACS
  {
  	XFontStruct *temp;
  	BLOCK_INPUT_DECLARE ();
***************
*** 1968,1974 ****
--- 2173,2183 ----
  	XFlush (XXdisplay);
  
  
+ #ifdef	NEMACS
+ 	temp = _XT_CalcForFont(newname, WFontSpecify);
+ #else
  	temp = XT_CalcForFont(newname);
+ #endif	NEMACS
  
  	if (temp == (XFontStruct *) NULL)
  	{
***************
*** 1980,1987 ****
--- 2189,2212 ----
  	XSetFont (XXdisplay, XXgc_rev, XXfid);
  	XSetFont (XXdisplay, XXgc_curs, XXfid);
  
+ #ifdef	NEMACS
+ 	XSetFont (XXdisplay, XXWgc_norm, XXWfid);
+ 	XSetFont (XXdisplay, XXWgc_rev, XXWfid);
+ 	XSetFont (XXdisplay, XXWgc_curs, XXWfid);
+ #endif	NEMACS
+ 
+ #ifdef	NEMACS
+ 	if (WFontSpecify) {
+ 	    XFreeFont (XXdisplay, wfontinfo);
+ 	    wfontinfo = temp;
+ 	} else {
+ 	XFreeFont (XXdisplay, fontinfo);
+ 	fontinfo = temp;
+ 	}
+ #else
  	XFreeFont (XXdisplay, fontinfo);
  	fontinfo = temp;
+ #endif	NEMACS
  
  
  	XSetWindowSize(screen_height, screen_width);
***************
*** 2021,2026 ****
--- 2246,2256 ----
  	XXgc_temp = XXgc_norm;
  	XXgc_norm = XXgc_rev;
  	XXgc_rev = XXgc_temp;
+ #ifdef	NEMACS
+ 	XXWgc_temp = XXWgc_norm;
+ 	XXWgc_norm = XXWgc_rev;
+ 	XXWgc_rev = XXWgc_temp;
+ #endif	NEMACS
  
  	if (!strcmp (mous_color, "white"))
  	  mous_color = "black";
***************
*** 2040,2045 ****
--- 2270,2278 ----
  			curs_color = "white";
  		}
  	XSetState (XXdisplay, XXgc_curs, back, curs, GXinvert, AllPlanes);
+ #ifdef	NEMACS
+ 	XSetState (XXdisplay, XXWgc_curs, back, curs, GXinvert, AllPlanes);
+ #endif	NEMACS
  
  	CursorToggle ();
  	XFlush (XXdisplay);
***************
*** 2317,2322 ****
--- 2550,2561 ----
  	== (XFontStruct *) NULL)
        fatal ("X server unable to find requested font `%s'.\n",
  	     (XXcurrentfont == NULL) ? "(null)" :  XXcurrentfont);
+ #ifdef	NEMACS
+     if ( (wfontinfo = XT_CalcForWFont(XXWcurrentfont))
+ 	== (XFontStruct *) NULL)
+       fatal ("X server unable to find requested font `%s'.\n",
+ 	     (XXWcurrentfont == NULL) ? "(null)" :  XXWcurrentfont);
+ #endif	NEMACS
  
      pr = XGeometry (XXdisplay, 0, desiredwindow, default_window,
  		    XXborder, XXfontw, XXfonth,
***************
*** 2362,2367 ****
--- 2601,2624 ----
      XXgc_curs = XCreateGC(XXdisplay, XXwindow,
  			  GCFont|GCForeground|GCBackground,
  			  &XXgcv);
+ #ifdef	NEMACS
+     XXWgcv.font = XXWfid;
+     XXWgcv.foreground = fore;
+     XXWgcv.background = back; 
+     XXWgc_norm = XCreateGC(XXdisplay, XXwindow,
+ 			  GCFont|GCForeground|GCBackground,
+ 			  &XXWgcv);
+     XXWgcv.foreground = back;
+     XXWgcv.background = fore;
+     XXWgc_rev = XCreateGC(XXdisplay, XXwindow,
+ 			 GCFont|GCForeground|GCBackground,
+ 			 &XXWgcv);
+     XXWgcv.foreground = back;
+     XXWgcv.background = curs;
+     XXWgc_curs = XCreateGC(XXdisplay, XXwindow,
+ 			  GCFont|GCForeground|GCBackground,
+ 			  &XXWgcv);
+ #endif	NEMACS
  
      EmacsCursor = XCreateFontCursor(XXdisplay, XC_left_ptr);
  
***************
*** 2392,2397 ****
--- 2649,2737 ----
      XMapWindow (XXdisplay, XXwindow);
      XFlush (XXdisplay);
  }
+ 
+ #ifdef	NEMACS
+ 
+ /* patch for attribute by K.Handa  89.11.24 */
+ /* original line is
+ XDrawEUC(display, d, gc, gcw, x, y, string, length)
+    and new lines are */
+ XDrawEUC(display, d, gc, gcw, attr, x, y, string, length)
+         unsigned char  *attr;
+ /* end of patch */
+ 	Display	*display;
+ 	Drawable d;
+ 	GC	gc, gcw;
+ 	int	x, y;
+ 	unsigned char	*string;
+ 	int	length;
+ {
+ 	unsigned char	buf[MScreenWidth*2], *q;
+ 	unsigned char	*p = string, *r;
+ 	int	flag;
+ 	int	len;
+ 	int     startx = x;
+ /* patch for attribute by K.Handa  89.11.24, 89.12.12 */
+ 	unsigned char   *a = attr;
+ 	int attribute_bits = *a;
+ 	GC gci, gcwi, gctemp;
+ 	int underline_height = y + XXul_descent;
+ 
+ 	if (gc == XXgc_norm) gci = XXgc_rev, gcwi = XXWgc_rev;
+ 	else if (gc == XXgc_rev) gci = XXgc_norm, gcwi = XXWgc_norm;
+ 	else gci = XXgc_norm, gcwi = XXWgc_norm;
+ /* end of patch */
+ 
+ 	if (length == 0)
+ 		return;
+ 
+ 	q = buf; len = 0;
+ 	flag = *p & 0x80; r = p;
+ 	for ( ; ; ) {
+ 	  if (*p & 0x80) {
+ /* 89.12.11 patch by K.Handa */
+ 	    if (XXWhighencoding) {
+ 	      *q++ = *p++;
+ 	      *q++ = *p++;
+ 	    } else {
+ 	      *q++ = *p++ & 0x7f;
+ 	      *q++ = *p++ & 0x7f;
+ 	    }
+ /* end of patch */
+ 	    len += 2; length -= 2;
+ 	    a += 2;
+ 	  } else {
+ 	    *q++ = *p++;
+ 	    len += 1; length -= 1;
+ 	    a++;
+ 	  }
+ /* patch for attribute by K.Handa  89.11.24, 89.12.12 */
+ /* many lines modified here after */
+ 	  if ((*p & 0x80) != flag || length <= 0 || *a != attribute_bits) {
+ 	    /* change state */
+ 	    if (flag) {		/* was KANJI */
+ 	      gctemp = (attribute_bits & ATTR_INVERSE) ? gcwi : gcw;
+ 	      XDrawImageString16(display,d,gctemp,x,y, (XChar2b *)buf, len/2);
+ 	    } else {
+ 	      gctemp = (attribute_bits & ATTR_INVERSE) ? gci : gc;
+ 	      XDrawImageString(display, d, gctemp, x, y, buf, len);
+ 	    }
+ 	    if (attribute_bits & ATTR_UNDERLINE) {
+ 	      XDrawLine(display, d, gctemp, x, underline_height,
+ 			x + (p - r) * XXfontw - 1, underline_height);
+ 	    }
+ 	    attribute_bits = *a;
+ /* end of patch */
+ 	    x += (p-r) * XXfontw;
+ 	    flag = *p & 0x80;
+ 	    r = p;
+ 	    len = 0; q = buf;
+ 	    if (length <= 0)
+ 	      break;
+ 	  }
+ 	}
+ }
+ #endif	NEMACS
  
  #endif /* HAVE_X_WINDOWS */
  
diff -arcN emacs-18.55/src/xdisp.c nemacs-3.3.2/src/xdisp.c
*** emacs-18.55/src/xdisp.c	Thu Apr 27 05:13:59 1989
--- nemacs-3.3.2/src/xdisp.c	Wed Jun  6 03:18:08 1990
***************
*** 1,3 ****
--- 1,15 ----
+ /* 87.4.30  modified by K.Handa */
+ /* 87.7.12  modified by K.Handa */
+ /* 88.2.1   modified for Nemacs Ver.2.0 by K.Handa */
+ /* 88.5.30  modified for Nemacs Ver.2.1 by K.Handa */
+ /* 89.3.5   modified for Nemacs Ver.3.0 by K.Handa */
+ /* 89.11.18 modified for Nemacs Ver.3.2 by K.Handa */
+ /* 89.11.24 modified for attribute of characters by K.Handa */
+ /* 90.3.2   modified for Nemacs Ver.3.3.1 by S.Tomura
+ 	'C' in mode-line-format */
+ /* 90.3.11  modified for Nemacs Ver.3.3.2 by A.Shibata
+ 	Kanji display at left edge of screen when scrolled left. */
+ 
  /* Display generation from window structure and buffer text.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 31,36 ****
--- 43,51 ----
  #include "indent.h"
  #include "commands.h"
  #include "macros.h"
+ #ifdef NEMACS  /* 87.6.5  by K.Handa */
+ #include "kanji.h"
+ #endif
  
  extern int interrupt_input;
  
***************
*** 1167,1172 ****
--- 1182,1192 ----
    return 1;
  }
  
+ /* patch for attribute by K.Handa  89.11.24 */
+ #define APOS(amark) \
+   ((XTYPE(amark) == Lisp_Marker && XMARKER (amark)->buffer) \
+    ? Fmarker_position (amark) : end)
+ 
  /* Display one line of window w, starting at position `start' in w's buffer.
   Display starting at horizontal position `hpos',
    which is normally zero or negative.
***************
*** 1219,1227 ****
--- 1239,1259 ----
        ? XINT (bf_cur->selective_display)
  	: !NULL (bf_cur->selective_display) ? -1 : 0;
    int selective_e = selective && !NULL (bf_cur->selective_display_ellipses);
+ #ifdef NEMACS  /* 87.6.9  by K.Handa */
+   int kflag = !NULL(bf_cur->kanji_flag);
+ #endif
+ /* patch for attribute of characters by K.Handa  89.11.21 */
+   char attribute_bits = 0;
+   char *attrp, *attrstartp;
+   Lisp_Object underline, umark, inverse, imark;
+   int upos, ipos;
+ /* end of patch */
  
    hpos += XFASTINT (w->left);
    line = get_display_line (vpos, XFASTINT (w->left));
+ #ifdef NEMACS  /* 89.3.9  by K.Handa */
+   line->kanji_flag = kflag;
+ #endif
    if (tab_width <= 0 || tab_width > 20) tab_width = 8;
  
    if (w == XWINDOW (minibuf_window) && start == 1
***************
*** 1240,1245 ****
--- 1272,1313 ----
    startp = line->body + XFASTINT (w->left);
    endp = startp + width;
  
+ /* patch for attribute by K.Handa 89.11.24 */
+   attrp = line->attribute + (p1 - line->body);
+   attrstartp = line->attribute + (startp - line->body);
+ 
+   if (!NULL(bf_cur->underlined_region)
+       && XTYPE (bf_cur->underlined_region) == Lisp_Cons) {
+     int i = XINT(Fcar (bf_cur->underlined_region)) - 1;
+     underline = Fcdr (bf_cur->underlined_region);
+     umark = Fcar (underline);
+     while (i-- && !NULL(umark) && start >= (upos = APOS (umark))) {
+       underline = Fcdr (underline);
+       umark = Fcar (underline);
+       attribute_bits ^= ATTR_UNDERLINE;
+     }
+     if (NULL(underline)) upos = end;
+   }  else {
+     underline = umark = Qnil;
+     upos = end;
+   }
+   if (!NULL(bf_cur->inversed_region)
+       && XTYPE (bf_cur->inversed_region) == Lisp_Cons) {
+     int i = XINT(Fcar (bf_cur->inversed_region)) - 1;
+     inverse = Fcdr (bf_cur->inversed_region);
+     imark = Fcar (inverse);
+     while (i-- && !NULL(imark) && start >= (ipos = APOS (imark))) {
+       inverse = Fcdr (inverse);
+       imark = Fcar (inverse);
+       attribute_bits ^= ATTR_INVERSE;
+     }
+     if (NULL(inverse)) ipos = end;
+   }  else {
+     inverse = imark = Qnil;
+     ipos = end;
+   }
+ /* end of patch */
+ 
    /* Loop generating characters.
     Stop at end of buffer, before newline,
     or if reach or pass continuation column.  */
***************
*** 1266,1271 ****
--- 1334,1359 ----
  
  	  p = &CharAt (pos);
  	}
+ /* patch for attribute of characters by K.Handa 89.11.21 */
+       while (pos >= upos) {
+ 	attribute_bits ^= ATTR_UNDERLINE;
+ 	if (!NULL (underline)) {
+ 	  underline = Fcdr (underline);
+ 	  umark = Fcar (underline);
+ 	  upos = APOS (umark);
+ 	} else
+ 	  upos = end;
+       }
+       while (pos >= ipos) {
+ 	attribute_bits ^= ATTR_INVERSE;
+ 	if (!NULL (inverse)) {
+ 	  inverse = Fcdr (inverse);
+ 	  imark = Fcar (inverse);
+ 	  ipos = APOS (imark);
+ 	} else
+ 	  ipos = end;
+       }
+ /* end of patch */
        c = *p++;
        if (c >= 040 && c < 0177)
  	{
***************
*** 1319,1324 ****
--- 1407,1428 ----
  	    }
  	  break;
  	}
+ #ifdef NEMACS  /* 87.4.30, 88.1.8, 88.5.30, 89.3.9, 90.3.3  by K.Handa */
+       else if (kflag && EUC_P(c) && pos < end - 1 && EUC_P(CharAt(pos+1)))
+ 	{
+ 	  if (p1 >= startp)
+ 	    *p1 = c;
+ 	  p1++;
+ 	  pos++;
+ 	  p = &CharAt (pos);
+ 	  if (p1 > startp)
+ 	    *p1 = *p;		/* 90.3.11 by A.Shibata */
+ 	  else if (p1 == startp)
+ 	    *p1 = ' ';
+ 	  p1++;
+ 	  *p++;			/* 90.3.11 by A.Shibata */
+ 	}
+ #endif  /* NEMACS */
        else if (c < 0200 && ctl_arrow)
  	{
  	  if (p1 >= startp)
***************
*** 1343,1348 ****
--- 1447,1458 ----
  	    *p1 = (7 & c) + '0';
  	  p1++;
  	}
+ /* patch for attribute by K.Handa  89.11.24 */
+       while (attrp < line->attribute + (p1 - line->body)) {
+ 	if (attrstartp <= attrp) *attrp = attribute_bits;
+ 	attrp++;
+       }
+ /* end of patch */
        pos++;
      }
  
***************
*** 1362,1367 ****
--- 1472,1490 ----
        pos--;
        /* but at a negative hpos, to skip the columns output on this line.  */
        val.hpos += p1prev - endp;
+ #ifdef NEMACS  /* 88.1.10  by K.Handa */
+       if (line->body + hpos < endp)
+ /* 88.5.30, 89.3.10  by K.Handa */
+       if (kflag && EUC_P(*(unsigned char *)p1prev)
+ 	  && pos < end && EUC_P(*(unsigned char *)(p1prev+1))) {
+ 	*p1prev = '\\';
+ 	val.hpos++;
+ 	pos--;		/* Start the next line with that same 2-byte char */
+ 	lastpos -= 2;
+ 	if (point == pos)
+ 	  point_vpos = -1;	/* point must not be on this line */
+       }
+ #endif  /* NEMACS */
        /* Keep in this line everything up to the continuation column.  */
        p1 = endp;
      }
***************
*** 1436,1441 ****
--- 1559,1567 ----
    /* If hscroll and line not empty, insert truncation-at-left marker */
    if (hscroll && lastpos != start)
      {
+ #ifdef NEMACS  /* 89.3.9  by K.Handa */
+       if (!kflag || !EUC_P((unsigned char)*startp))
+ #endif
        *startp = '$';
        if (p1 <= startp)
  	p1 = startp + 1;
***************
*** 1744,1752 ****
--- 1870,1904 ----
  {
    Lisp_Object obj = Qnil;
    char *tbuf = decode_mode_spec_buf;
+   char *NSJE = "NSJE";
  
    switch (c)
      {
+ #ifdef NEMACS  /* 88.2.1  by K.Handa */
+     case 'c':
+       tbuf[0] = NULL(bf_cur->kanji_fileio_code)
+ 	? '-'
+ 	: NSJE[XFASTINT (bf_cur->kanji_fileio_code) % 4];
+       tbuf[1] = NSJE[kanji_input_code % 4];
+       tbuf[2] = NSJE[kanji_display_code % 4];
+ /* patch by the idea of enami@ptgd.sony.co.jp 1989.11.19 */
+       obj = Fget_buffer_process(Fcurrent_buffer ());
+       if (!NULL(obj)) obj = Fprocess_kanji_code(obj);
+       tbuf[3] = (NULL(obj)) ? '-' : NSJE[XFASTINT(obj)];
+       tbuf[4] = 0;
+       return tbuf;
+ /* 90.3.2  patch by S.Tomura */
+     case 'C':
+       tbuf[0] = NULL(bf_cur->kanji_fileio_code)
+ 	? '-'
+ 	: NSJE[XFASTINT (bf_cur->kanji_fileio_code) % 4];
+       obj = Fget_buffer_process(Fcurrent_buffer ());
+       if (!NULL(obj)) obj = Fprocess_kanji_code(obj);
+       tbuf[1] = (NULL(obj)) ? '-' : NSJE[XFASTINT(obj)];
+       tbuf[2] = 0;
+       return tbuf;
+ /* end of patch */
+ #endif
      case 'b': 
        obj = bf_cur->name;
        if (maxwidth >= 3 && XSTRING (obj)->size > maxwidth)
***************
*** 1883,1888 ****
--- 2035,2045 ----
    register unsigned char *end;
    unsigned char *p1start = (unsigned char *) line->body + hpos;
    int window_width = XFASTINT (w->width);
+ #ifdef NEMACS  /* 89.3.5  by K.Handa */
+   int kflag = !NULL(bf_cur->kanji_flag);
+ 
+   line->kanji_flag = kflag;
+ #endif
  
    if (tab_width <= 0 || tab_width > 20) tab_width = 8;
  
***************
*** 1918,1923 ****
--- 2075,2097 ----
  	    }
  	  while ((p1 - start + hscroll - (hscroll > 0)) % tab_width);
  	}
+ #ifdef NEMACS  /* 87.4.30, 87.7.12, 89.11.18  by K.Handa */
+       else if (kflag && EUC_P(c) && EUC_P(*string))
+ 	{
+ 	  if (p1 < start) {
+ 	    p1++;
+ 	    if (p1++ == start) *start = ' ';
+ 	    string++;
+ 	  } else if (p1 < end - 1) {
+ 	    *p1++ = c;
+ 	    *p1++ = *string++;
+ 	    }
+ 	  else {
+ 	    *p1++ = truncate ? truncate : ' ';
+ 	    string--;
+ 	  }
+ 	}
+ #endif  /* NEMACS */
        else if (c < 0200 && buffer_defaults.ctl_arrow)
  	{
  	  if (p1 >= start)
diff -arcN emacs-18.55/src/xfns.c nemacs-3.3.2/src/xfns.c
*** emacs-18.55/src/xfns.c	Mon Aug 14 04:53:07 1989
--- nemacs-3.3.2/src/xfns.c	Wed Jun  6 03:18:28 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 88.1.15  modified for Nemacs Ver.2.0  by K.Handa */
+ /* 88.3.28  modified for Nemacs Ver.3.0  by K.Handa */
+ 
  /* Functions for the X window system.
     Copyright (C) 1985, 1986, 1987 Free Software Foundation.
  
***************
*** 113,118 ****
--- 116,124 ----
  extern int (*handler) ();
  
  extern FontInfo *fontinfo;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+ extern FontInfo *kfontinfo;
+ #endif
  
  extern int PendingExposure;
  extern char *default_window;
***************
*** 121,126 ****
--- 127,135 ----
  extern Cursor EmacsCursor;
  extern short MouseCursor[], MouseMask[];
  extern char *XXcurrentfont;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+ extern char *XXcurrentkfont;
+ #endif
  extern int informflag;
  
  extern int WindowMapped;
***************
*** 544,549 ****
--- 553,596 ----
    return Qnil;
  }
  
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+ DEFUN ("x-set-kfont", Fx_set_kfont, Sx_set_kfont, 1, 1, "sKanji Font Name: ",
+       "At initialization sets the kanji font to be used for the X window.")
+   (arg)
+      Lisp_Object arg;
+ {
+   register char *newfontname;
+ 	
+   CHECK_STRING (arg, 1);
+   check_xterm ();
+ 
+   newfontname = (char *) xmalloc (XSTRING (arg)->size + 1);
+   bcopy (XSTRING (arg)->data, newfontname, XSTRING (arg)->size + 1);
+   if (XSTRING (arg)->size == 0)
+     /* XOpenFont ("") gets a badarg error rather than a badfont error.
+        I believe this is an X bug.
+        In emacs, badarg errors cause emacs to die, whilst badfont errors
+        are caught.  This kludge prevents us from dying.
+      */
+     goto badfont;
+ 
+   if (!XNewKFont (newfontname))
+     {
+       free (XXcurrentkfont);
+       XXcurrentkfont = newfontname;
+       return Qt;
+     }
+   else
+     {
+     badfont:
+       error ("Kanji font \"%s\" is not defined", newfontname);
+       free (newfontname);
+     }
+ 
+   return Qnil;
+ }
+ #endif NEMACS
+ 
  DEFUN ("x-set-window-edges", Fx_set_window_edges, Sx_set_window_edges, 4, 4,
    "nNumber of Columns: \nnNumber of Rows: \nnX Offset in Pixels: \n\
  nY Offset in Pixels: ",
***************
*** 1005,1010 ****
--- 1052,1060 ----
  jmp_buf dispenv;
  Display *OldDisplay;
  FontInfo *OldFontInfo;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+ FontInfo *OldKFontInfo;
+ #endif
  Window OldWindow;
  
  XRestoreDisplay ()
***************
*** 1048,1053 ****
--- 1098,1107 ----
   /*       free (&newdisplayname[0]); */
         if (fontinfo)
  	 XCloseFont (fontinfo);
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+        if (kfontinfo)
+ 	 XCloseFont (kfontinfo);
+ #endif
         if (XXwindow)
  	 XDestroyWindow (XXwindow);
         if (XXdisplay)
***************
*** 1054,1059 ****
--- 1108,1116 ----
  	 XCloseDisplay (XXdisplay);
         XXdisplay = OldDisplay;
         fontinfo = OldFontInfo;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+        kfontinfo = OldKFontInfo;
+ #endif
         XXwindow = OldWindow;
         EmacsCursor = OldEmacsCursor;
         XIOErrorHandler (handler);
***************
*** 1066,1074 ****
--- 1123,1137 ----
         OldEmacsCursor = EmacsCursor;
         OldDisplay = XXdisplay;
         OldFontInfo = fontinfo;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+        OldKFontInfo = kfontinfo;
+ #endif
         OldWindow = XXwindow;
         XXwindow = 0;
         fontinfo = 0;
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+        kfontinfo = 0;
+ #endif
         XXdisplay = 0;
       }
     XXdisplay = XOpenDisplay (newdisplayname);
***************
*** 1082,1087 ****
--- 1145,1157 ----
       {
         longjmp (dispenv, "Bad font");
       }
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+    kfontinfo = XOpenFont (XXcurrentkfont);
+    if (!kfontinfo)
+      {
+        longjmp (dispenv, "Bad kanji font");
+      }
+ #endif  /* not NEMACS */
     /* pixelwidth and pixelheight are correct*/
     XXwindow = XCreateWindow (RootWindow,
  			     XXxoffset,
***************
*** 1131,1136 ****
--- 1201,1209 ----
    WindowMapped = 1;
    XSetDisplay (OldDisplay);
    XCloseFont (OldFontInfo);
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+   XCloseFont (OldKFontInfo);
+ #endif
    XFreeCursor (OldEmacsCursor);
    XDestroyWindow (OldWindow);
    XSetDisplay (XXdisplay);
***************
*** 1366,1371 ****
--- 1439,1447 ----
    defsubr (&Sx_flip_color);
    defsubr (&Sx_set_icon);
    defsubr (&Sx_set_font);
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+   defsubr (&Sx_set_kfont);
+ #endif
    defsubr (&Sx_set_window_edges);
    defsubr (&Scoordinates_in_window_p);
    defsubr (&Sx_mouse_events);
diff -arcN emacs-18.55/src/xterm.c nemacs-3.3.2/src/xterm.c
*** emacs-18.55/src/xterm.c	Thu Dec 29 13:09:23 1988
--- nemacs-3.3.2/src/xterm.c	Wed Jun  6 03:18:12 1990
***************
*** 1,3 ****
--- 1,6 ----
+ /* 88.1.15  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.3.28  modified for Nemacs Ver.3.0 by K.Handa */
+ 
  /* X Communication module for terminals which understand the X protocol.
     Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 78,83 ****
--- 81,89 ----
  /* Allow config to specify default font.  */
  #ifndef X_DEFAULT_FONT
  #define X_DEFAULT_FONT "vtsingle"
+ #ifdef NEMACS  /* 89.3.28  by K.Handa */
+ #define X_DEFAULT_FONT "8x16kana"
+ #define X_DEFAULT_KFONT "16x16krom"
  #endif
  
  #define min(a,b) ((a)<(b) ? (a) : (b))
***************
*** 97,102 ****
--- 103,111 ----
  Bitmap XXIconMask;
  
  char *XXcurrentfont;
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ char *XXcurrentkfont;
+ #endif
  char *default_window;
  int informflag;
  extern struct display_line *DesiredScreen[], *PhysScreen[];
***************
*** 142,147 ****
--- 151,159 ----
  
  Display *XXdisplay;
  FontInfo *fontinfo;
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ FontInfo *kfontinfo;
+ #endif
  Window XXwindow;
  Cursor EmacsCursor;
  
***************
*** 449,460 ****
--- 461,481 ----
      {
        return;
      }
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+   XKText (XXwindow,
+ #else
    XText (XXwindow,
+ #endif
  	 (tempX * fontinfo->width+XXInternalBorder),
  	 (tempY * fontinfo->height+XXInternalBorder),
  	 &ActiveScreen[tempY + 1]->body[tempX],
  	 numcols,
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	 fontinfo,
+ 	 kfontinfo,
+ #else
  	 fontinfo->id,
+ #endif
  	 (tempHL ? back : fore),
  	 (tempHL ? fore : back));
  }
***************
*** 489,500 ****
--- 510,530 ----
      {
        if (end != start - 1)
  	{
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	  XKText (XXwindow,
+ #else
  	  XText (XXwindow,
+ #endif
  		 (cursX * fontinfo->width+XXInternalBorder),
  		 (cursY * fontinfo->height+XXInternalBorder),
  		 start,
  		 end + 1 - start,
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 		 fontinfo,
+ 		 kfontinfo,
+ #else
  		 fontinfo->id,
+ #endif
  		 (CurHL ? back : fore),
  		 (CurHL ? fore : back));
  	  XTtopos (cursY, cursX + end - start + 1);
***************
*** 518,529 ****
--- 548,568 ----
  	}
        if (end >= start)
  	{
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	   XKText (XXwindow,
+ #else
  	   XText (XXwindow,
+ #endif
  		 (VisibleX * fontinfo->width+XXInternalBorder),
  		 (VisibleY * fontinfo->height+XXInternalBorder),
  		 start,
  		 ((end - start) + 1),
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 		 fontinfo,
+ 		 kfontinfo,
+ #else
  		 fontinfo->id,
+ #endif
  		 (CurHL ? back : fore),
  		 (CurHL ? fore : back));
  	  VisibleX = VisibleX + (end - start) + 1;
***************
*** 651,670 ****
--- 690,727 ----
      {
        if (CursorExists)
  	{
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	  XKText (XXwindow,
+ #else
  	  XText (XXwindow,
+ #endif
  		 VisibleX * fontinfo->width+XXInternalBorder,
  		 VisibleY * fontinfo->height+XXInternalBorder,
  		 &ActiveScreen[VisibleY + 1]->body[VisibleX], 1,
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 		 fontinfo,
+ 		 kfontinfo,
+ #else
  		 fontinfo->id,
+ #endif
  		 fore, back);
  	}
        else
  	{
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	  XKText (XXwindow,
+ #else
  	  XText (XXwindow,
+ #endif
  		 VisibleX * fontinfo->width+XXInternalBorder,
  		 VisibleY * fontinfo->height+XXInternalBorder,
  		 &ActiveScreen[VisibleY + 1]->body[VisibleX], 1,
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 		 fontinfo,
+ 		 kfontinfo,
+ #else
  		 fontinfo->id,
+ #endif
  		 back, curs);
  	}
      }
***************
*** 1071,1076 ****
--- 1128,1136 ----
  	      /* is pending */
  	      break;
  	    }
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+ 	  PendingExposure = 1;
+ #else  /* not NEMACS */
  	  loadxrepbuffer (&XXEvent, &XXqueue);
  	  if (XXqueue.rindex == XXqueue.windex)
  	    {
***************
*** 1083,1088 ****
--- 1143,1149 ----
  	    {
  	      PendingExposure = 1;
  	    }
+ #endif  /* not NEMACS */
  	  break;
  	case ExposeCopy:	/* For ExposeCopy sync */
  	  /* will block all outgoing */
***************
*** 1428,1433 ****
--- 1489,1500 ----
    if (temp_font == 0) temp_font = X_DEFAULT_FONT;
    XXcurrentfont = (char *) xmalloc (strlen (temp_font) + 1);
    strcpy (XXcurrentfont, temp_font);
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+   temp_font  = XGetDefault (progname,"KanjiFont");
+   if (temp_font == 0) temp_font = X_DEFAULT_KFONT;
+   XXcurrentkfont = (char *) xmalloc (strlen (temp_font) + 1);
+   strcpy (XXcurrentkfont, temp_font);
+ #endif  /* NEMACS */
  
    /* If user has specified a special keymap for use with Emacs, use it. */
    {
***************
*** 1567,1572 ****
--- 1634,1646 ----
        fprintf (stderr, "Memory allocation failure.\n");
        exit (-150);
      }
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+   if (XXcurrentkfont == (char *) 0)
+     {
+       fprintf (stderr, "Memory allocation failure.\n");
+       exit (-150);
+     }
+ #endif  /* NEMACS */
    default_window = "=80x24+0+0";
  /* RMS: XTread_socket does not have an interface suitable
     for being a signal handler.  In any case, the SIGIO handler is
***************
*** 1581,1586 ****
--- 1655,1668 ----
        fprintf (stderr, "No font\n");
        exit (-98);
      }
+ #ifdef NEMACS  /* 87.7.4  by T.Takada */
+   kfontinfo = XOpenFont (XXcurrentkfont);
+   if (kfontinfo == (FontInfo *) 0)
+     {
+       fprintf (stderr, "No Kanji font\n");
+       exit (-98);
+     }
+ #endif
    pixelwidth = screen_width * fontinfo->width + 2 * XXInternalBorder;
    pixelheight = screen_height * fontinfo->height + 2 * XXInternalBorder;
    XXwindow = XCreateWindow (RootWindow,
***************
*** 1723,1728 ****
--- 1805,1844 ----
    return 0;
  }
  
+ #ifdef NEMACS  /* 87.7.9  by T.Takada */
+ XNewKFont (newname)
+      register char *newname;
+ {
+   FontInfo *temp;
+   int mask = sigblock (sigmask (SIGIO));
+   XFlush ();
+   if (XXdebug)
+     fprintf (stderr, "Request id is %d\n", XXdisplay->request);
+   temp = XOpenFont (newname);
+   if (temp == (FontInfo *) 0)
+     {
+       sigsetmask (mask);
+       if (QLength () > 0)
+ 	{
+ 	    kill (XXpid, SIGIO);
+ 	}
+       return -1;
+     }
+   XCloseFont (kfontinfo);
+   kfontinfo = temp;
+   XSetResizeHint (XXwindow, 2*XXInternalBorder, 2*XXInternalBorder,
+ 		  /* fontinfo->width * 1, fontinfo->height * 1, */
+ 		  fontinfo->width, fontinfo->height);
+   XSetWindowSize (screen_height, screen_width);
+   sigsetmask (mask);
+   if (QLength () > 0)
+     {
+ 	kill (XXpid, SIGIO);
+     }
+   return 0;
+ }
+ #endif  /* NEMACS */
+ 
  XFlipColor ()
  {
    Pixmap temp;
***************
*** 1917,1921 ****
--- 2033,2080 ----
    Xxrepbuffer.windex = 0;
    Xxrepbuffer.rindex = 0;
  }
+ 
+ #ifdef NEMACS  /* 87.7.4  T.Takada */
+ static char kanjibuf[MScreenWidth];
+ XKText(w, x, y, str, len, afont, kfont, fore, back)
+ Window w;
+ int x, y;
+ char *str;
+ int len;
+ FontInfo *afont, *kfont;
+ int fore, back;
+ {
+ #define KAN(c) (0x80 & (c))
+ 
+   char *sp, *bufp;
+   int n;
+   FontInfo *f;
+ 
+   sp = str, n = len;
+   while (len > 0) {
+     if (KAN(*str)) {
+       bufp = kanjibuf;
+       while (len > 0 && KAN(*str)) --len, *bufp++ = *str++ & 0x7f;
+       n -= len;
+       if (n % 2) --len, n++, *bufp++ = *str++ & 0x7f;
+       XText(w, x, y, kanjibuf, n, kfont->id, fore, back);
+       f = afont;
+     }
+     else {
+       while(len > 0 && !KAN(*str)) --len, str++;
+       n -= len;
+       XText(w, x, y, sp, n, afont->id, fore, back);
+       f = kfont;
+     }
+     x += afont->width * n;
+     sp = str, n = len;
+   }
+   n -= len;
+   if (n > 0) {
+     if ((f == kfont) && (n % 2)) n++, *bufp = *str;
+     XText(w, x, y, ((f == kfont) ? kanjibuf : sp), n, f, fore, back);
+   }
+ }
+ #endif
  
  #endif /* HAVE_X_WINDOWS */
diff -arcN emacs-18.55/src/ymakefile nemacs-3.3.2/src/ymakefile
*** emacs-18.55/src/ymakefile	Sat Jun 17 11:17:09 1989
--- nemacs-3.3.2/src/ymakefile	Wed Jun  6 03:19:11 1990
***************
*** 1,3 ****
--- 1,13 ----
+ /* 87.7.15  modified by K.Handa */
+ /* 87.6.9   modified by K.Handa */
+ /* 88.1.15  modified for Nemacs Ver.2.0 by K.Handa */
+ /* 89.11.20 modified for Nemacs Ver.3.2 by K.Handa */
+ /* 89.12.12 modified for Nemacs Ver.3.2.1 by K.Handa
+ 	'make-docfile' concerns kanji.o and wnnfns.o. */
+ /* 90.2.27  modified for Nemacs Ver.3.3.1 by K.Handa
+ 	add dependency on puresize.h and nconfig.h to alloc.c and data.c
+ 	change definition of WNNLIB and WNNINC */
+ 
  /* Makefile for GNU Emacs.
     Copyright (C) 1985, 1987, 1988 Free Software Foundation, Inc.
  
***************
*** 30,35 ****
--- 40,53 ----
  #define NO_SHORTNAMES
  #include "config.h"
  
+ /* 90.2.27  patch by K.Handa */
+ #ifdef NEMACS  /* 90.2.27  by K.Handa */
+ #include "nconfig.h"
+ WNNLIB = LIBWNN
+ WNNINC = INCWNN
+ #endif
+ /* end of patch */
+ 
  /* Use HAVE_X11 as an alias for X11 in this file
     to avoid problems with X11 as a subdirectory name
     in -I and other such options which pass through this file. */
***************
*** 200,205 ****
--- 218,238 ----
  #define UNEXEC unexec.o
  #endif
  
+ #ifdef NEMACS  /* 89.3.23, 90.2.28  by K.Handa */
+ KANJI_H = kanji.h
+ #ifdef WNN4V3
+ NOBJ = kanji.o wnnfns.o
+ #else   /* not WNN4V3 */
+ #ifdef WNN3
+ NOBJ = kanji.o wnnfns.o
+ #else  /* not WNN4V3 nor WNN3 */
+ NOBJ = kanji.o
+ #endif  /* not WNN4V3 nor WNN3 */
+ #endif
+ #else   /* not NEMACS */
+ KANJI_H =
+ #endif  /* not NEMACS */
+ 
  /* lastfile must follow all files
     whose initialized data areas should be dumped as pure by dump-emacs. */
  obj=    dispnew.o scroll.o xdisp.o window.o \
***************
*** 212,217 ****
--- 245,253 ----
  	eval.o fns.o print.o lread.o \
  	abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o \
  	process.o callproc.o $(environobj) \
+ #ifdef NEMACS  /* 89.12.11  by K.Handa */
+ 	$(NOBJ) \
+ #endif
  	doprnt.o
  
  #ifdef TERMINFO
***************
*** 240,246 ****
--- 276,286 ----
  
  /* define otherobj as list of object files that make-docfile
     should not be told about.  */
+ #ifdef NEMACS  /* 90.2.28  by K.Handa */
+ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(WNNLIB)
+ #else
  otherobj= $(termcapobj) lastfile.o $(mallocobj)
+ #endif
  
  /* List of Lisp files loaded into the dumped Emacs. */
  lisp=	${lispdir}simple.elc ${lispdir}help.elc \
***************
*** 252,257 ****
--- 292,300 ----
  	${lispdir}text-mode.elc ${lispdir}fill.elc \
  	${lispdir}c-mode.elc ${lispdir}isearch.elc \
  	${lispdir}replace.elc ${lispdir}abbrev.elc \
+ #ifdef NEMACS  /* 87.7.15  by K.Handa */
+ 	${lispdir}kanji.elc \
+ #endif
  	${lispdir}buff-menu.elc ${lispdir}subr.elc
  
  /* just to be sure the sh is used */
***************
*** 378,386 ****
     and so rarely changed in ways that do require any.  */
  
  abbrev.o : abbrev.c buffer.h commands.h config.h 
! buffer.o : buffer.c syntax.h buffer.h commands.h window.h config.h 
  callint.o : callint.c window.h commands.h buffer.h config.h 
! callproc.o : callproc.c paths.h buffer.h commands.h config.h 
  casefiddle.o : casefiddle.c syntax.h commands.h buffer.h config.h 
  cm.o : cm.c cm.h termhooks.h config.h
  cmds.o : cmds.c syntax.h buffer.h commands.h config.h 
--- 421,429 ----
     and so rarely changed in ways that do require any.  */
  
  abbrev.o : abbrev.c buffer.h commands.h config.h 
! buffer.o : buffer.c syntax.h buffer.h commands.h window.h config.h $(KANJI_H)
  callint.o : callint.c window.h commands.h buffer.h config.h 
! callproc.o : callproc.c paths.h buffer.h commands.h config.h $(KANJI_H)
  casefiddle.o : casefiddle.c syntax.h commands.h buffer.h config.h 
  cm.o : cm.c cm.h termhooks.h config.h
  cmds.o : cmds.c syntax.h buffer.h commands.h config.h 
***************
*** 387,406 ****
  crt0.o : crt0.c config.h
  	$(CC) -c $(CFLAGS) C_SWITCH_ASM crt0.c
  dired.o : dired.c commands.h buffer.h config.h 
! dispnew.o : dispnew.c commands.h window.h buffer.h dispextern.h termchar.h termopts.h cm.h config.h
  doc.o : doc.c buffer.h config.h paths.h
  doprnt.o : doprnt.c
  editfns.o : editfns.c window.h buffer.h config.h 
! emacs.o : emacs.c commands.h config.h 
  #ifdef MAINTAIN_ENVIRONMENT
  environ.o : environ.c buffer.h commands.h config.h
  #endif MAINTAIN_ENVIRONMENT
! fileio.o : fileio.c window.h buffer.h config.h 
  filelock.o : filelock.c buffer.h paths.h config.h
  filemode.o : filemode.c 
! indent.o : indent.c window.h indent.h buffer.h config.h termchar.h termopts.h
  insdel.o : insdel.c window.h buffer.h config.h 
! keyboard.o : keyboard.c termchar.h termhooks.h termopts.h buffer.h commands.h window.h macros.h config.h 
  keymap.o : keymap.c buffer.h commands.h config.h 
  lastfile.o : lastfile.c 
  macros.o : macros.c window.h buffer.h commands.h macros.h config.h
--- 430,452 ----
  crt0.o : crt0.c config.h
  	$(CC) -c $(CFLAGS) C_SWITCH_ASM crt0.c
  dired.o : dired.c commands.h buffer.h config.h 
! dispnew.o : dispnew.c commands.h window.h buffer.h dispextern.h termchar.h termopts.h cm.h config.h $(KANJI_H)
  doc.o : doc.c buffer.h config.h paths.h
  doprnt.o : doprnt.c
  editfns.o : editfns.c window.h buffer.h config.h 
! emacs.o : emacs.c commands.h config.h nconfig.h
  #ifdef MAINTAIN_ENVIRONMENT
  environ.o : environ.c buffer.h commands.h config.h
  #endif MAINTAIN_ENVIRONMENT
! fileio.o : fileio.c window.h buffer.h config.h $(KANJI_H)
  filelock.o : filelock.c buffer.h paths.h config.h
  filemode.o : filemode.c 
! indent.o : indent.c window.h indent.h buffer.h config.h termchar.h termopts.h $(KANJI_H)
  insdel.o : insdel.c window.h buffer.h config.h 
! #ifdef NEMACS
! kanji.o : kanji.c config.h nconfig.h $(KANJI_H)
! #endif
! keyboard.o : keyboard.c termchar.h termhooks.h termopts.h buffer.h commands.h window.h macros.h config.h $(KANJI_H)
  keymap.o : keymap.c buffer.h commands.h config.h 
  lastfile.o : lastfile.c 
  macros.o : macros.c window.h buffer.h commands.h macros.h config.h
***************
*** 408,418 ****
  marker.o : marker.c buffer.h config.h 
  minibuf.o : minibuf.c syntax.h window.h buffer.h commands.h config.h 
  mocklisp.o : mocklisp.c buffer.h config.h
! process.o : process.c process.h buffer.h window.h termhooks.h termopts.h commands.h config.h 
  regex.o : regex.c syntax.h buffer.h config.h regex.h 
  scroll.o : scroll.c termchar.h config.h dispextern.h
  search.o : search.c regex.h commands.h buffer.h syntax.h config.h 
! syntax.o : syntax.c syntax.h buffer.h commands.h config.h 
  sysdep.o : sysdep.c config.h dispextern.h termhooks.h termchar.h termopts.h window.h
  term.o : term.c termchar.h termhooks.h termopts.h config.h cm.h
  termcap.o : termcap.c config.h
--- 454,464 ----
  marker.o : marker.c buffer.h config.h 
  minibuf.o : minibuf.c syntax.h window.h buffer.h commands.h config.h 
  mocklisp.o : mocklisp.c buffer.h config.h
! process.o : process.c process.h buffer.h window.h termhooks.h termopts.h commands.h config.h $(KANJI_H)
  regex.o : regex.c syntax.h buffer.h config.h regex.h 
  scroll.o : scroll.c termchar.h config.h dispextern.h
  search.o : search.c regex.h commands.h buffer.h syntax.h config.h 
! syntax.o : syntax.c syntax.h buffer.h commands.h config.h $(KANJI_H)
  sysdep.o : sysdep.c config.h dispextern.h termhooks.h termchar.h termopts.h window.h
  term.o : term.c termchar.h termhooks.h termopts.h config.h cm.h
  termcap.o : termcap.c config.h
***************
*** 421,441 ****
  undo.o : undo.c buffer.h commands.h undo.h config.h 
  UNEXEC : config.h
  window.o : window.c indent.h commands.h window.h buffer.h config.h termchar.h
! xdisp.o : xdisp.c macros.h commands.h indent.h buffer.h dispextern.h termchar.h window.h config.h 
  xfns.o : xfns.c xterm.h window.h config.h
  xmenu.o : xmenu.c xterm.h window.h config.h
  xterm.o : xterm.c xterm.h termhooks.h termopts.h termchar.h \
!  dispextern.h config.h sink.h sinkmask.h
  
! x11fns.o : x11fns.c window.h x11term.h dispextern.h termchar.h config.h
  x11term.o : x11term.c x11term.h termhooks.h termopts.h termchar.h \
   dispextern.h config.h sink.h sinkmask.h
  
  /* The files of Lisp proper */
  
! alloc.o : alloc.c window.h buffer.h config.h 
  bytecode.o : bytecode.c buffer.h config.h 
! data.o : data.c buffer.h config.h 
  eval.o : eval.c commands.h config.h
  fns.o : fns.c buffer.h commands.h config.h
  print.o : print.c process.h window.h buffer.h config.h 
--- 467,492 ----
  undo.o : undo.c buffer.h commands.h undo.h config.h 
  UNEXEC : config.h
  window.o : window.c indent.h commands.h window.h buffer.h config.h termchar.h
! xdisp.o : xdisp.c macros.h commands.h indent.h buffer.h dispextern.h termchar.h window.h config.h $(KANJI_H)
  xfns.o : xfns.c xterm.h window.h config.h
  xmenu.o : xmenu.c xterm.h window.h config.h
  xterm.o : xterm.c xterm.h termhooks.h termopts.h termchar.h \
!  dispextern.h config.h sink.h sinkmask.h $(KANJI_H)
  
! x11fns.o : x11fns.c window.h x11term.h dispextern.h termchar.h config.h $(KANJI_H)
  x11term.o : x11term.c x11term.h termhooks.h termopts.h termchar.h \
   dispextern.h config.h sink.h sinkmask.h
  
+ #ifdef EGG  /* 89.11.20 */ 
+ wnnfns.o : wnnfns.c $(KANJI_H)
+       $(CC) -c $(CFLAGS) $(WNNINC) wnnfns.c
+ #endif
+ 
  /* The files of Lisp proper */
  
! alloc.o : alloc.c window.h buffer.h config.h nconfig.h puresize.h
  bytecode.o : bytecode.c buffer.h config.h 
! data.o : data.c buffer.h config.h nconfig.h puresize.h
  eval.o : eval.c commands.h config.h
  fns.o : fns.c buffer.h commands.h config.h
  print.o : print.c process.h window.h buffer.h config.h 
