]> code.delx.au - gnu-emacs/commitdiff
xdisp fix
authorJoakim Verona <joakim@verona.se>
Mon, 8 Apr 2013 22:21:04 +0000 (00:21 +0200)
committerJoakim Verona <joakim@verona.se>
Mon, 8 Apr 2013 22:21:04 +0000 (00:21 +0200)
166 files changed:
ChangeLog
admin/ChangeLog
admin/notes/bugtracker
admin/notes/unicode
autogen/Makefile.in
autogen/configure
configure.ac
doc/emacs/ChangeLog
doc/emacs/emacs.texi
doc/lispintro/ChangeLog
doc/lispref/ChangeLog
doc/lispref/display.texi
doc/lispref/text.texi
doc/misc/ChangeLog
doc/misc/calc.texi
etc/ChangeLog
etc/NEWS
etc/PROBLEMS
etc/srecode/ede-autoconf.srt
etc/themes/leuven-theme.el
etc/tutorials/TUTORIAL.ko
etc/tutorials/TUTORIAL.th
leim/ChangeLog
leim/quail/cyrillic.el
leim/quail/czech.el
leim/quail/ethiopic.el
leim/quail/greek.el
leim/quail/hanja.el
leim/quail/hanja3.el
leim/quail/hebrew.el
leim/quail/lao.el
leim/quail/lrt.el
leim/quail/slovak.el
leim/quail/symbol-ksc.el
leim/quail/thai.el
leim/quail/tibetan.el
leim/quail/viqr.el
leim/quail/vntelex.el
leim/quail/vnvni.el
leim/quail/welsh.el
lib-src/ChangeLog
lib/Makefile.am
lisp/ChangeLog
lisp/ChangeLog.10
lisp/autorevert.el
lisp/bookmark.el
lisp/calc/calc-units.el
lisp/calc/calc.el
lisp/cedet/ede/cpp-root.el
lisp/cedet/semantic/tag-ls.el
lisp/electric.el
lisp/emacs-lisp/crm.el
lisp/emacs-lisp/edebug.el
lisp/emacs-lisp/ert.el
lisp/emacs-lisp/package.el
lisp/emacs-lisp/timer.el
lisp/faces.el
lisp/files.el
lisp/frame.el
lisp/gnus/ChangeLog
lisp/gnus/gnus-msg.el
lisp/gnus/mml.el
lisp/gnus/nndraft.el
lisp/gnus/nnir.el
lisp/hi-lock.el
lisp/ido.el
lisp/international/latin1-disp.el
lisp/international/mule-util.el
lisp/iswitchb.el
lisp/kmacro.el
lisp/language/cyril-util.el
lisp/language/european.el
lisp/language/ind-util.el
lisp/language/lao-util.el
lisp/language/thai.el
lisp/language/tibet-util.el
lisp/language/tibetan.el
lisp/language/viet-util.el
lisp/ldefs-boot.el
lisp/mpc.el
lisp/net/tramp.el
lisp/org/ChangeLog
lisp/pcmpl-x.el [new file with mode: 0644]
lisp/profiler.el
lisp/progmodes/cc-engine.el
lisp/progmodes/cc-fonts.el
lisp/progmodes/python.el
lisp/progmodes/subword.el
lisp/subr.el
lisp/term/ns-win.el
lisp/term/pc-win.el
lisp/term/w32-win.el
lisp/term/x-win.el
lisp/textmodes/ispell.el
lisp/thingatpt.el
lisp/vc/vc-bzr.el
lisp/whitespace.el
m4/stdalign.m4
nt/ChangeLog
nt/README
nt/README.W32
nt/config.nt
nt/inc/ms-w32.h
nt/paths.h
src/ChangeLog
src/ChangeLog.10
src/Makefile.in
src/alloc.c
src/buffer.c
src/ccl.c
src/character.c
src/charset.c
src/coding.c
src/data.c
src/dired.c
src/dispextern.h
src/dispnew.c
src/doc.c
src/doprnt.c
src/editfns.c
src/fileio.c
src/fns.c
src/font.c
src/fontset.c
src/fontset.h
src/frame.c
src/frame.h
src/fringe.c
src/gtkutil.c
src/image.c
src/indent.c
src/insdel.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/lread.c
src/makefile.w32-in
src/menu.c
src/minibuf.c
src/msdos.c
src/nsfns.m
src/nsmenu.m
src/nsselect.m
src/nsterm.h
src/nsterm.m
src/print.c
src/process.c
src/search.c
src/textprop.c
src/w32fns.c
src/w32font.c
src/w32menu.c
src/w32term.c
src/w32term.h
src/window.c
src/window.h
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xgselect.c
src/xmenu.c
src/xselect.c
src/xsmfns.c
src/xterm.h
test/ChangeLog
test/automated/python-tests.el

index d245f6e2f9b45d0eba5b669b69c8b1eddd4618f2..2dd796962d7a4348f5ffe53f081f1471a4f886a0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,22 @@
-2013-03-27  Paul Eggert  <eggert@cs.ucla.edu>
+2013-04-07  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * configure.ac (HAVE_XKBGETKEYBOARD): Remove.
-       Subsumed by HAVE_XKB.  All uses changed.
+       Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
+       * configure.ac (LD_SWITCH_SYSTEM_TEMACS): Append -pg if profiling
+       and if not on GNU/Linux or FreeBSD.
+       * lib/Makefile.am (AM_CFLAGS): Add $(PROFILING_CFLAGS), so that
+       lib/*.o is profiled too.
 
-2013-03-27  Aidan Gauland  <aidalgol@no8wireless.co.nz
+2013-03-30  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * lisp/eshell/em-unix.el: Moved su and sudo to...
-       * lisp/eshell/em-tramp.el: ...Eshell tramp module
-       * doc/misc/eshell.texi: Updated manual to reflect changes.
+       Merge from gnulib, incorporating:
+       2013-03-29 stdalign: port to stricter ISO C11
+       This helps to run 'configure' on MS-Windows; see Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00999.html>.
 
-       External su and sudo commands are now the default; the internal,
-       TRAMP-using variants can still be used by enabling the eshell-tramp
-       module.
+2013-03-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * configure.ac (HAVE_XKBGETKEYBOARD): Remove.
+       Subsumed by HAVE_XKB.  All uses changed.
 
 2013-03-25  Jan Djärv  <jan.h.d@swipnet.se>
 
        2013-03-11 putenv: avoid compilation warning on mingw
        2013-03-11 unistd: don't prevent Tru64 Unix from using gnulib strtod.
 
+2013-03-11  Glenn Morris  <rgm@gnu.org>
+
+       * Merge in all changes up to version 24.3 release.
+
 2013-03-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        * configure.ac (TERM_HEADER): Remove duplicate definition (Bug#13872).
        not always needed.
        (HAVE_DATA_START): New macro.
 
-2013-02-18  Aidan Gauland  <aidalgol@no8wireless.co.nz>
-
-       * lisp/eshell/em-cmpl.el: Corrected "context-related help"
-       keybinding in commentary.
-
 2013-02-21  Paul Eggert  <eggert@cs.ucla.edu>
 
        Parallelize documentation builds.
        (info-real): Depend on $(INFOS) rather than doing it sequentially.
        (dvi): Depend on $(DVIS) rather than doing it sequentially.
 
-2013-02-18  Aidan Gauland  <aidalgol@no8wireless.co.nz>
-
-       * doc/misc/eshell.texi: Added documentation for Eshell insert
-       output redirection operator, >>>.
-
 2013-02-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix AIX port (Bug#13650).
index 8b71b065056d100f58263963b893fb3d9efd7f10..196acd4ffd91cc07a44fcdfcd91e96997f92af5b 100644 (file)
@@ -1,3 +1,11 @@
+2013-04-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use UTF-8 for most files with non-ASCII characters (Bug#13936).
+       * notes/unicode (etc/tutorials/TUTORIAL.ko, leim/quail/hanja.el)
+       (leim/quail/hanja3.el, leim/quail/symbol-ksc.el):
+       Now utf-8, not iso-2022-7bit.  Also, files that contain non-UTF-8
+       characters are now encoded in utf-8-emacs, not iso-2022-7bit.
+
 2013-03-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        * notes/unicode: Mention some more iso-2022-7bit files (Bug#13936).
index ee385f4dd75694554c24ed76345f60bbd8030d89..9957bc9b567b2aea7e70f2059c877960c7bdd43c 100644 (file)
@@ -103,7 +103,7 @@ This is annoying.
 to hopefully stop this happening, but it is still better to use X-Debbugs-CC.)
 
 If a new report contains X-Debbugs-CC in the input, this is
-converted to a real Cc header in the output.  (See Bug#1720).
+converted to a real Cc header in the output.  (See Bug#1780,5384)
 It is also merged into the Resent-CC header (see below).
 
 ** How does Debbugs send out mails?
@@ -627,7 +627,9 @@ following headers:
 
 1) The leading envelope From line.
 2) Message-ID (get it from /var/log/mailman/vette).
-3) X-Debbugs-Envelope-To: submit
+3) X-Debbugs-Envelope-To: xxx
+For a new report, xxx = submit; for a control message, xxx = control;
+for a reply to bug#123, xxx = 123
 
 Then pipe it to receive as above.
 
index 53d568dd62852e044eea76cf49f1ae33247bf232..6db5bb7d05c415f902cb16f3d7a50f1384dbb1e4 100644 (file)
@@ -201,15 +201,11 @@ nontrivial changes to the build process.
      operating in some other language environment.
 
        etc/tutorials/TUTORIAL.ja
-       etc/tutorials/TUTORIAL.ko
        leim/quail/cyril-jis.el
        leim/quail/hanja-jis.el
-       leim/quail/hanja.el
-       leim/quail/hanja3.el
        leim/quail/japanese.el
        leim/quail/py-punct.el
        leim/quail/pypunct-b5.el
-       leim/quail/symbol-ksc.el
        lisp/international/ja-dic-cnv.el
        lisp/international/ja-dic-utl.el
        lisp/international/kinsoku.el
@@ -219,6 +215,8 @@ nontrivial changes to the build process.
        lisp/language/japanese.el
        lisp/term/x-win.el
 
+ * utf-8-emacs
+
      These files contain characters that cannot be encoded in UTF-8.
 
        leim/quail/tibetan.el
index 03e54906b75a66f98f5ddf2577cd9e20d822705d..5f213903e9b5e4478d6c7837366c7650a9064a40 100644 (file)
@@ -1019,7 +1019,7 @@ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \
        string.h-t sys/select.h sys/select.h-t sys/stat.h sys/stat.h-t \
        sys/time.h sys/time.h-t time.h time.h-t unistd.h unistd.h-t
 noinst_LIBRARIES = libgnu.a
-AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
+AM_CFLAGS = $(PROFILING_CFLAGS) $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
 DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src
 libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \
        c-strcasecmp.c c-strncasecmp.c careadlinkat.c close-stream.c \
index 126248beced1fcc5bbb7cddccc175b0305e5f57a..db574207d754394ded8d46bd322db739718ffe2c 100755 (executable)
@@ -23965,8 +23965,9 @@ else
             #if \
                 (__GNUC__ || __IBMC__ || __IBMCPP__ \
                  || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
-              int alignas (8) alignas_int = 1;
-              char test_alignas[_Alignof (alignas_int) == 8 ? 1 : -1];
+              struct alignas_test { char c; char alignas (8) alignas_8; };
+              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
+                                ? 1 : -1];
             #endif
 
 int
@@ -26666,6 +26667,13 @@ case "$opsys" in
   *) LD_SWITCH_SYSTEM_TEMACS= ;;
 esac
 
+if test x$ac_enable_profiling != x ; then
+  case $opsys in
+    *freebsd | gnu-linux) ;;
+    *) LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -pg" ;;
+  esac
+fi
+
 
 
 ## Common for all window systems
index 4a27099ab4ac8f7ae95e4657f30685fca1656d71..b5dc05120df04da6eee59953ca4c477788c66324 100644 (file)
@@ -4246,6 +4246,13 @@ case "$opsys" in
   *) LD_SWITCH_SYSTEM_TEMACS= ;;
 esac
 
+if test x$ac_enable_profiling != x ; then
+  case $opsys in
+    *freebsd | gnu-linux) ;;
+    *) LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -pg" ;;
+  esac
+fi
+
 AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
 
 ## Common for all window systems
index c2be55a33bb6ec3d2279446d03763a9515873df2..90e31b9923edf1674097bf4dbb135b9d332e47e5 100644 (file)
 
        * emacs.texi (Top): Add some stuff specific to www.gnu.org.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
-
 2013-03-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        Prefer UTF-8 for documentation.
index d5968a5f7cda8a328466ab114b8e522bb944d928..d2ec215402499e5fc6a4527e53cfdb36b895ca83 100644 (file)
@@ -1374,7 +1374,7 @@ Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl,
 Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob
 Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James
 Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione,
-Edward O'Connor, Christoph Conrad, Ludovic Courtès, Andrew Csillag,
+Christoph Conrad, Ludovic Courtès, Andrew Csillag,
 Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki
 Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum
 Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri
@@ -1421,7 +1421,7 @@ Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris,
 Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum,
 Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen,
 Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden,
-Andrew Norman, Kentaro Ohkouchi, Christian Ohler,
+Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler,
 Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota,
 Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar,
 Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per
index e12c57d4b76da8cd73d2c7d5ec0939d157c53c68..93084e7620356ce781b0b30f2b2e087d425d8435 100644 (file)
@@ -2,10 +2,6 @@
 
        * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
-
 2013-03-03  Glenn Morris  <rgm@gnu.org>
 
        * emacs-lisp-intro.texi (Digression into C): Update example.
index 416bb1eec98d512e9817fa00af92b83ebe2a711a..0bc2b0880b04b8061c9de2fa6564f2e354d13ae3 100644 (file)
@@ -1,3 +1,14 @@
+2013-04-06  Chong Yidong  <cyd@gnu.org>
+
+       * display.texi (Faces): Minor clarifications.
+       (Defining Faces): Clarify default vs custom face specs.  Document
+       face-spec-set.
+
+       * display.texi (Overlay Properties):
+       * text.texi (Special Properties): Use the "anonymous face"
+       terminology.  Describe foreground-color and background-color forms
+       as compatibility-only.
+
 2013-03-24  Eli Zaretskii  <eliz@gnu.org>
 
        * compile.texi (Byte-Code Objects): Add index entry.
@@ -16,9 +27,6 @@
 
        * elisp.texi: Add some stuff specific to www.gnu.org.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
 2013-03-11  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * control.texi (Pattern matching case statement): Fix typo.
index eae6af9969d624aa1fa33cf1e4f2ea4281f20976..4adcfdf8f4ff1d8d94acce995c303465a502ccbe 100644 (file)
@@ -1510,31 +1510,31 @@ of the symbol serve as defaults for the properties of the overlay.
 
 @item face
 @kindex face @r{(overlay property)}
-This property controls the way text is displayed---for example, which
-font and which colors.  @xref{Faces}, for more information.
-
-In the simplest case, the value is a face name.  It can also be a list;
-then each element can be any of these possibilities:
+This property controls the appearance of the text (@pxref{Faces}).
+The value of the property can be the following:
 
 @itemize @bullet
 @item
 A face name (a symbol or string).
 
 @item
-A property list of face attributes.  This has the form (@var{keyword}
-@var{value} @dots{}), where each @var{keyword} is a face attribute
-name and @var{value} is a meaningful value for that attribute.  With
-this feature, you do not need to create a face each time you want to
-specify a particular attribute for certain text.  @xref{Face
-Attributes}.
+An anonymous face: a property list of the form @code{(@var{keyword}
+@var{value} @dots{})}, where each @var{keyword} is a face attribute
+name and @var{value} is a value for that attribute.
 
 @item
-A cons cell, of the form @code{(foreground-color . @var{color-name})}
-or @code{(background-color . @var{color-name})}.  These elements
-specify just the foreground color or just the background color.
+A list of faces.  Each list element should be either a face name or an
+anonymous face.  This specifies a face which is an aggregate of the
+attributes of each of the listed faces.  Faces occurring earlier in
+the list have higher priority.
 
-@code{(foreground-color . @var{color-name})} has the same effect as
-@code{(:foreground @var{color-name})}; likewise for the background.
+@item
+A cons cell of the form @code{(foreground-color . @var{color-name})}
+or @code{(background-color . @var{color-name})}.  This specifies the
+foreground or background color, similar to @code{(:foreground
+@var{color-name})} or @code{(:background @var{color-name})}.  This
+form is supported for backward compatibility only, and should be
+avoided.
 @end itemize
 
 @item mouse-face
@@ -1901,44 +1901,39 @@ height.
 @section Faces
 @cindex faces
 
-  A @dfn{face} is a collection of graphical @dfn{attributes} for
-displaying text: font, foreground color, background color, optional
-underlining, etc.  Faces control how Emacs displays text in buffers,
-as well as other parts of the frame such as the mode line.
+  A @dfn{face} is a collection of graphical attributes for displaying
+text: font, foreground color, background color, optional underlining,
+etc.  Faces control how Emacs displays text in buffers, as well as
+other parts of the frame such as the mode line.
 
 @cindex anonymous face
   One way to represent a face is as a property list of attributes,
-like @code{(:foreground "red" :weight bold)}.  For example, you can
-assign such an @dfn{anonymous face} as the value of the @code{face}
-text property; this causes Emacs to display the underlying text with
-the specified attributes.  @xref{Special Properties}.
+like @code{(:foreground "red" :weight bold)}.  Such a list is called
+an @dfn{anonymous face}.  For example, you can assign an anonymous
+face as the value of the @code{face} text property, and Emacs will
+display the underlying text with the specified attributes.
+@xref{Special Properties}.
 
 @cindex face name
   More commonly, a face is referred to via a @dfn{face name}: a Lisp
-symbol which is associated with a set of face attributes.  Named faces
-are defined using the @code{defface} macro (@pxref{Defining Faces}).
-Emacs defines several standard named faces; @xref{Standard Faces,,,
-emacs, The GNU Emacs Manual}.
-
-  Many parts of Emacs require named faces, and do not accept anonymous
-faces.  These include the functions documented in @ref{Attribute
-Functions}, and the variable @code{font-lock-keywords}
+symbol associated with a set of face attributes@footnote{For backward
+compatibility, you can also use a string to specify a face name; that
+is equivalent to a Lisp symbol with the same name.}.  Named faces are
+defined using the @code{defface} macro (@pxref{Defining Faces}).
+Emacs comes with several standard named faces (@pxref{Basic Faces}).
+
+  Many parts of Emacs required named faces, and do not accept
+anonymous faces.  These include the functions documented in
+@ref{Attribute Functions}, and the variable @code{font-lock-keywords}
 (@pxref{Search-based Fontification}).  Unless otherwise stated, we
 will use the term @dfn{face} to refer only to named faces.
 
-  For backward compatibility, you can also use a string to specify a
-face name; that is equivalent to a Lisp symbol with the same name.
-
 @defun facep object
 This function returns a non-@code{nil} value if @var{object} is a
 named face: a Lisp symbol or string which serves as a face name.
 Otherwise, it returns @code{nil}.
 @end defun
 
-  By default, each face name corresponds to the same set of attributes
-in all frames.  But you can also assign a face name a special set of
-attributes in one frame (@pxref{Attribute Functions}).
-
 @menu
 * Face Attributes::     What is in a face?
 * Defining Faces::      How to define a face.
@@ -2178,32 +2173,47 @@ suitable for use with @code{:stipple} (see above).  It returns
 @node Defining Faces
 @subsection Defining Faces
 
+@cindex face spec
   The usual way to define a face is through the @code{defface} macro.
-This macro defines a face name, and associates that name with a set of
-face attributes.  It also sets up the face so that the user can
-customize it via the Customize interface (@pxref{Customization}).
+This macro associates a face name (a symbol) with a default @dfn{face
+spec}.  A face spec is a construct which specifies what attributes a
+face should have on any given terminal; for example, a face spec might
+specify one foreground color on high-color terminals, and a different
+foreground color on low-color terminals.
+
+  People are sometimes tempted to create a variable whose value is a
+face name.  In the vast majority of cases, this is not necessary; the
+usual procedure is to define a face with @code{defface}, and then use
+its name directly.
 
 @defmac defface face spec doc [keyword value]@dots{}
-This macro declares @var{face} as a customizable face whose default
-attributes are given by @var{spec}.  You should not quote the symbol
-@var{face}, and it should not end in @samp{-face} (that would be
-redundant).  The argument @var{doc} is a documentation string for the
-face.  The additional @var{keyword} arguments have the same meanings
-as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
-
-When @code{defface} executes, it defines the face according to
-@var{spec}, then uses any customizations that were read from the
-init file (@pxref{Init File}) to override that specification.
-
-When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs
-Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun}
-overrides any customizations of the face.  This way, the face reflects
-exactly what the @code{defface} says.
-
-@cindex face specification
-The @var{spec} argument is a @dfn{face specification}, which states
-how the face should appear on different kinds of terminals.  It should
-be an alist whose elements each have the form
+This macro declares @var{face} as a named face whose default face spec
+is given by @var{spec}.  You should not quote the symbol @var{face},
+and it should not end in @samp{-face} (that would be redundant).  The
+argument @var{doc} is a documentation string for the face.  The
+additional @var{keyword} arguments have the same meanings as in
+@code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
+
+If @var{face} already has a default face spec, this macro does
+nothing.
+
+The default face spec determines @var{face}'s appearance when no
+customizations are in effect (@pxref{Customization}).  If @var{face}
+has already been customized (via Custom themes or via customizations
+read from the init file), its appearance is determined by the custom
+face spec(s), which override the default face spec @var{spec}.
+However, if the customizations are subsequently removed, the
+appearance of @var{face} will again be determined by its default face
+spec.
+
+As an exception, if you evaluate a @code{defface} form with
+@kbd{C-M-x} in Emacs Lisp mode (@code{eval-defun}), a special feature
+of @code{eval-defun} overrides any custom face specs on the face,
+causing the face to reflect exactly what the @code{defface} says.
+
+The @var{spec} argument is a @dfn{face spec}, which states how the
+face should appear on different kinds of terminals.  It should be an
+alist whose elements each have the form
 
 @example
 (@var{display} . @var{plist})
@@ -2275,7 +2285,8 @@ terminal must match one of the @var{value}s specified for it in
 @end table
 @end defmac
 
-  Here's how the standard face @code{highlight} is defined:
+  For example, here's the definition of the standard face
+@code{highlight}:
 
 @example
 (defface highlight
@@ -2294,65 +2305,56 @@ terminal must match one of the @var{value}s specified for it in
   :group 'basic-faces)
 @end example
 
-  Internally, Emacs stores the face's default specification in its
+  Internally, Emacs stores each face's default spec in its
 @code{face-defface-spec} symbol property (@pxref{Symbol Properties}).
-The @code{saved-face} property stores the face specification saved by
-the user, using the customization buffer; the @code{customized-face}
-property stores the face specification customized for the current
-session, but not saved; and the @code{theme-face} property stores an
-alist associating the active customization settings and Custom themes
-with their specifications for that face.  The face's documentation
-string is stored in the @code{face-documentation} property.  But
-normally you should not try to set any of these properties directly.
-@xref{Applying Customizations}, for the @code{custom-set-faces}
-function, which is used to apply customized face settings.
-
-  People are sometimes tempted to create variables whose values
-specify a face to use.  In the vast majority of cases, this is not
-necessary; it is preferable to simply use faces directly.
+The @code{saved-face} property stores any face spec saved by the user
+using the customization buffer; the @code{customized-face} property
+stores the face spec customized for the current session, but not
+saved; and the @code{theme-face} property stores an alist associating
+the active customization settings and Custom themes with the face
+specs for that face.  The face's documentation string is stored in the
+@code{face-documentation} property.
+
+  Normally, a face is declared just once, using @code{defface}, and
+any further changes to its appearance are applied using the Customize
+framework (e.g., via the Customize user interface or via the
+@code{custom-set-faces} function; @pxref{Applying Customizations}), or
+by face remapping (@pxref{Face Remapping}).  In the rare event that
+you need to change a face spec directly from Lisp, you can use the
+@code{face-spec-set} function.
+
+@defun face-spec-set face spec &optional spec-type
+This function applies @var{spec} as a face spec for @code{face}.
+@var{spec} should be a face spec, as described in the above
+documentation for @code{defface}.
+
+@cindex override spec @r{(for a face)}
+The argument @var{spec-type} determines which spec to set.  If it is
+@code{nil} or @code{face-override-spec}, this function sets the
+@dfn{override spec}, which overrides over all other face specs on
+@var{face}.  If it is @code{face-defface-spec}, this function sets the
+default face spec (the same one set by @code{defface}).  If it is
+@code{reset}, this function clears out all customization specs and
+override specs from @var{face} (in this case, the value of @var{spec}
+is ignored).  Any other value of @var{spec-type} is reserved for
+internal use.
+@end defun
 
 @node Attribute Functions
 @subsection Face Attribute Functions
 
-  This section describes the functions for accessing and modifying the
-attributes of an existing named face.
-
-@defun set-face-attribute face frame &rest arguments
-This function sets one or more attributes of @var{face} for
-@var{frame}.  The attributes you specify this way override whatever
-the @code{defface} says.
-
-The extra arguments @var{arguments} specify the attributes to set, and
-the values for them.  They should consist of alternating attribute
-names (such as @code{:family} or @code{:underline}) and values.  Thus,
-
-@example
-(set-face-attribute 'foo nil
-                    :width 'extended
-                    :weight 'bold)
-@end example
-
-@noindent
-sets the attribute @code{:width} to @code{extended} and the attribute
-@code{:weight} to @code{bold}.
-
-If @var{frame} is @code{t}, this function sets the default attributes
-for new frames.  Default attribute values specified this way override
-the @code{defface} for newly created frames.
-
-If @var{frame} is @code{nil}, this function sets the attributes for
-all existing frames, and the default for new frames.
-@end defun
+  This section describes functions for directly accessing and
+modifying the attributes of a named face.
 
 @defun face-attribute face attribute &optional frame inherit
-This returns the value of the @var{attribute} attribute of @var{face}
-on @var{frame}.  If @var{frame} is @code{nil}, that means the selected
-frame (@pxref{Input Focus}).
+This function returns the value of the @var{attribute} attribute for
+@var{face} on @var{frame}.
 
-If @var{frame} is @code{t}, this returns whatever new-frames default
-value you previously specified with @code{set-face-attribute} for the
-@var{attribute} attribute of @var{face}.  If you have not specified
-one, it returns @code{nil}.
+If @var{frame} is @code{nil}, that means the selected frame
+(@pxref{Input Focus}).  If @var{frame} is @code{t}, this function
+returns the value of the specified attribute for newly-created frames
+(this is normally @code{unspecified}, unless you have specified some
+value using @code{set-face-attribute}; see below).
 
 If @var{inherit} is @code{nil}, only attributes directly defined by
 @var{face} are considered, so the return value may be
@@ -2409,6 +2411,36 @@ If @var{value1} is a relative value for the face attribute
 @var{attribute}, returns it merged with the underlying value
 @var{value2}; otherwise, if @var{value1} is an absolute value for the
 face attribute @var{attribute}, returns @var{value1} unchanged.
+@end defun
+
+  Normally, Emacs uses the face specs of each face to automatically
+calculate its attributes on each frame (@pxref{Defining Faces}).  The
+function @code{set-face-attribute} can override this calculation by
+directly assigning attributes to a face, either on a specific frame or
+for all frames.  This function is mostly intended for internal usage.
+
+@defun set-face-attribute face frame &rest arguments
+This function sets one or more attributes of @var{face} for
+@var{frame}.  The attributes specifies in this way override the face
+spec(s) belonging to @var{face}.
+
+The extra arguments @var{arguments} specify the attributes to set, and
+the values for them.  They should consist of alternating attribute
+names (such as @code{:family} or @code{:underline}) and values.  Thus,
+
+@example
+(set-face-attribute 'foo nil :weight 'bold :slant 'italic)
+@end example
+
+@noindent
+sets the attribute @code{:weight} to @code{bold} and the attribute
+@code{:slant} to @code{italic}.
+
+
+If @var{frame} is @code{t}, this function sets the default attributes
+for newly created frames.  If @var{frame} is @code{nil}, this function
+sets the attributes for all existing frames, as well as for newly
+created frames.
 @end defun
 
   The following commands and functions mostly provide compatibility
@@ -2457,16 +2489,17 @@ This sets the @code{:inverse-video} attribute of @var{face} to
 This swaps the foreground and background colors of face @var{face}.
 @end deffn
 
-  The following functions examine the attributes of a face.  If you
-don't specify @var{frame}, they refer to the selected frame; @code{t}
-refers to the default data for new frames.  They return the symbol
-@code{unspecified} if the face doesn't define any value for that
-attribute.  If @var{inherit} is @code{nil}, only an attribute directly
-defined by the face is returned.  If @var{inherit} is non-@code{nil},
-any faces specified by its @code{:inherit} attribute are considered as
-well, and if @var{inherit} is a face or a list of faces, then they are
-also considered, until a specified attribute is found.  To ensure that
-the return value is always specified, use a value of @code{default} for
+  The following functions examine the attributes of a face.  They
+mostly provide compatibility with old versions of Emacs.  If you don't
+specify @var{frame}, they refer to the selected frame; @code{t} refers
+to the default data for new frames.  They return @code{unspecified} if
+the face doesn't define any value for that attribute.  If
+@var{inherit} is @code{nil}, only an attribute directly defined by the
+face is returned.  If @var{inherit} is non-@code{nil}, any faces
+specified by its @code{:inherit} attribute are considered as well, and
+if @var{inherit} is a face or a list of faces, then they are also
+considered, until a specified attribute is found.  To ensure that the
+return value is always specified, use a value of @code{default} for
 @var{inherit}.
 
 @defun face-font face &optional frame
@@ -2576,13 +2609,13 @@ The value of this variable is an alist whose elements have the form
 any text having the face @var{face} with @var{remapping}, rather than
 the ordinary definition of @var{face}.
 
-@var{remapping} may be any face specification suitable for a
-@code{face} text property: either a face (i.e., a face name or a
-property list of attribute/value pairs), or a list of faces.  For
-details, see the description of the @code{face} text property in
-@ref{Special Properties}.  @var{remapping} serves as the complete
-specification for the remapped face---it replaces the normal
-definition of @var{face}, instead of modifying it.
+@var{remapping} may be any face spec suitable for a @code{face} text
+property: either a face (i.e., a face name or a property list of
+attribute/value pairs), or a list of faces.  For details, see the
+description of the @code{face} text property in @ref{Special
+Properties}.  @var{remapping} serves as the complete specification for
+the remapped face---it replaces the normal definition of @var{face},
+instead of modifying it.
 
 If @code{face-remapping-alist} is buffer-local, its local value takes
 effect only within that buffer.
@@ -2629,7 +2662,7 @@ and @code{face-remap-reset-base} functions; it is intended for major
 modes to remap faces in the buffers they control.
 
 @defun face-remap-add-relative face &rest specs
-This functions adds the face specifications in @var{specs} as relative
+This functions adds the face spec in @var{specs} as relative
 remappings for face @var{face} in the current buffer.  The remaining
 arguments, @var{specs}, should form either a list of face names, or a
 property list of attribute/value pairs.
index c6cbfa5b3f879d7745b34527fc2960b4d1dfe146..6d5a39d887aff8706824573c5c7f7f705c5a6ae4 100644 (file)
@@ -3008,27 +3008,31 @@ character.
 @item face
 @cindex face codes of text
 @kindex face @r{(text property)}
-The @code{face} property controls the appearance of the character,
-such as its font and color.  @xref{Faces}.  The value of the property
-can be the following:
+The @code{face} property controls the appearance of the character
+(@pxref{Faces}).  The value of the property can be the following:
 
 @itemize @bullet
 @item
 A face name (a symbol or string).
 
 @item
-A property list of face attributes.  This has the form (@var{keyword}
-@var{value} @dots{}), where each @var{keyword} is a face attribute
-name and @var{value} is a meaningful value for that attribute.  With
-this feature, you do not need to create a face each time you want to
-specify a particular attribute for certain text.
+An anonymous face: a property list of the form @code{(@var{keyword}
+@var{value} @dots{})}, where each @var{keyword} is a face attribute
+name and @var{value} is a value for that attribute.
 
 @item
-A list of faces.  This specifies a face which is an aggregate of the
+A list of faces.  Each list element should be either a face name or an
+anonymous face.  This specifies a face which is an aggregate of the
 attributes of each of the listed faces.  Faces occurring earlier in
-the list have higher priority.  Each list element must have one of the
-two above forms (i.e., either a face name or a property list of face
-attributes).
+the list have higher priority.
+
+@item
+A cons cell of the form @code{(foreground-color . @var{color-name})}
+or @code{(background-color . @var{color-name})}.  This specifies the
+foreground or background color, similar to @code{(:foreground
+@var{color-name})} or @code{(:background @var{color-name})}.  This
+form is supported for backward compatibility only, and should be
+avoided.
 @end itemize
 
 Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by
index 3e9bcaf1f3e995493cab6d8759c88e1cad970fa6..285097c5553ec32c3fc0de4f2168781dea5b8a5c 100644 (file)
@@ -1,3 +1,12 @@
+2013-03-31  Jay Belanger  <jay.p.belanger@gmail.com>
+
+       * calc.texi: (Basic Operations on Units): Streamline some
+       descriptions.
+
+2013-03-27  Aidan Gauland  <aidalgol@no8wireless.co.nz>
+
+       * eshell.texi (Built-ins): Update manual to mention tramp module.
+
 2013-03-18  Michael Albinus  <michael.albinus@gmx.de>
 
        * tramp.texi (Filename Syntax): Host names are not allowed to be
        dired-add-entry, dired-initial-position, dired-clean-up-after-deletion,
        dired-read-shell-command, or dired-find-buffer-nocreate.
 
+2013-02-18  Aidan Gauland  <aidalgol@no8wireless.co.nz>
+
+       * eshell.texi (Input/Output): Document insert output redirection operator, >>>.
+
 2011-02-18  Glenn Morris  <rgm@gnu.org>
 
        * dired-x.texi (Optional Installation File At Point): Simplify.
index 44462d1d5a8eb300ab29295f37264cbb0d3d328a..b2b054ec1eaa6fe9bc5042813cb26cc6aceb3b09 100644 (file)
@@ -27911,11 +27911,10 @@ prompt first for the old units which this value should be considered
 to have, then for the new units.  (If the value on the stack can be
 simplified so that it doesn't contain any units, like @samp{ft/in} can
 be simplified to 12, then @kbd{u c} will still prompt for both old
-units and new units. This can be disabled; @pxref{Customizing Calc}.)  
-Assuming the old and new units you give are consistent with each
-other, the result also will not contain any units.  For example,
-@kbd{@w{u c} cm @key{RET} in @key{RET}} converts the number 2 on the
-stack to 5.08.
+units and new units.   Assuming the old and new units you give are
+consistent with each other, the result also will not contain any
+units.  For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} converts
+the number 2 on the stack to 5.08.
 
 @kindex u b
 @pindex calc-base-units
@@ -35694,17 +35693,6 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni
 is @code{nil}.
 @end defvar
 
-@defvar calc-allow-units-as-numbers
-When converting units, the variable @code{calc-allow-units-as-numbers}
-determines whether or not values which can be simplified so that
-they don't contain units (such as @samp{ft/in} can be simplified to 12)
-can be regarded as not containing units.  If 
-@code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c}
-will prompt for both old units and new units when converting an expression
-like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units.
-The default value of @code{calc-allow-units-as-numbers} is @code{t}.
-@end defvar
-
 @defvar calc-undo-length
 The variable @code{calc-undo-length} determines the number of undo
 steps that Calc will keep track of when @code{calc-quit} is called.
index 3468e70386d8a926e718ad3905f95dee2e6b0302..85b365695fdb0f96b94d89b8458439cbd06dc79d 100644 (file)
@@ -1,3 +1,25 @@
+2013-04-07  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * PROBLEMS: Mention Ubuntu warnings about libdbusmenu.
+
+2013-04-02  Fabrice Niessen  <fni@missioncriticalit.com>
+
+       * themes/leuven-theme.el: Update theme.
+
+2013-04-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use UTF-8 for most files with non-ASCII characters (Bug#13936).
+       * tutorials/TUTORIAL.ko, tutorials/TUTORIAL.th:
+       Switch from iso-2022-7bit to utf-8.
+
+2013-03-30  Leo Liu  <sdl.web@gmail.com>
+
+       * NEWS: Mention `kmacro-to-register' and new eldoc feature.
+
+2013-03-29  Aidan Gauland  <aidalgol@no8wireless.co.nz>
+
+       * NEWS (Eshell): New entry for em-tramp change in 2013-03-26T22:08:58Z!aidalgol@no8wireless.co.nz
+
 2013-03-21  Eric Ludlam  <zappo@gnu.org>
 
        * srecode/ede-autoconf.srt: Change Copyright to FSF.
index 74badc6bbef076142d2614b71cf8af58d165a1bf..d893f496ef0e46a97e1aed5df72c3cbabb05cd75 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -82,9 +82,13 @@ bound to <f11> and M-<f10>, respectively.
 ** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction.
 Eg View mode, etc.
 
+** New command `kmacro-to-register' to store keyboard macros in registers.
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.4
 
+** `ido-decorations' has been slightly extended to give a bit more control.
+
 ** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
 Affected files:
 ~/.emacs.d/timelog     replaces  ~/.timelog
@@ -111,6 +115,8 @@ Affected files:
 use `electric-indent-mode' instead.
 *** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
 
+** Eldoc Mode works properly in the minibuffer.
+
 ** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock.
 
 ** completing-read-multiple's separator can now be a regexp.
@@ -239,6 +245,13 @@ which support POSIX ACLs.
 *** The commands `woman-default-faces' and `woman-monochrome-faces'
 are obsolete.  Customize the `woman-* faces instead.
 
+** Eshell
+
+*** Added Eshell-TRAMP module
+External su and sudo commands are now the default; the internal,
+TRAMP-using variants can still be used by enabling the eshell-tramp
+module.
+
 ** Obsolete packages:
 
 *** longlines.el is obsolete; use visual-line-mode instead.
index 8cc70115037b98a3dcfde0f66cb66a572634686f..bc86c7cb373c4d3475f427d07ee70f8fa6948da9 100644 (file)
@@ -1405,6 +1405,24 @@ For example, in the Xfce 4.8 desktop environment, the clipboard
 manager in versions of xfce4-settings-helper before 4.8.2 is buggy;
 https://bugzilla.xfce.org/show_bug.cgi?id=7588 .
 
+*** Warning messages when running in Ubuntu
+
+When you start Emacs you may see something like this:
+
+(emacs:2286): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion 
+`GTK_IS_MENU_SHELL(menu)' failed
+
+This happens if the Emacs binary has been renamed.  The cause it the Ubuntu
+appmenu concept.  It tries to track Emacs menus and show them in the top
+panel, instead of in each Emacs window.  This is not properly implemented,
+so it fails for Emacs.  The order of menus is wrong, and things like copy/paste
+that depends on what state Emacs is in, is usually wrong (i.e. paste disabled
+even if you should be able to paste, and similar).
+
+You can get back menus on each frame by starting emacs like this:
+% env UBUNTU_MENUPROXY= emacs
+
+
 * Runtime problems on character terminals
 
 ** The meta key does not work on xterm.
index b3aaa75d2c2edbcac571a2b01a3b9aceab31c064..5eb2d2d24e59e3c2c8e3a34294d5b6b0b14a662b 100644 (file)
@@ -1,21 +1,23 @@
-;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE.
-;;
-;; Copyright (C) 2010, 2013 Free Software Foundation, Inc.
-;;
+;;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE
+
+;; Copyright (C) 2010, 2012-2013 Free Software Foundation, Inc.
+
 ;; Author: Eric M. Ludlam <eric@siege-engine.com>
-;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2, or (at
-;; your option) any later version.
 
-;; This program is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 set mode "autoconf-mode"
 set escape_start "{{"
index 7945526b0e438897b63ddc15f5f2ab6e35954133..6941f6e5840a0c621ad0cb954fbde68327a5f4e2 100644 (file)
@@ -1,7 +1,7 @@
 ;;; leuven-theme.el --- Emacs custom theme
 
 ;; Copyright (C) 2003-2013 Free Software Foundation, Inc.
-;; Time-stamp: <2012-12-05 Wed 10:47>
+;; Time-stamp: <2013-03-14 Thu 17:04>
 
 ;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
 
@@ -39,7 +39,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
       (diff-none '(:foreground "gray33"))
       (diff-removed '(:foreground "#A60000" :background "#FFDDDD"))
       (directory '(:weight bold :foreground "blue" :background "#FFFFD2"))
-      (highlight-line '(:inverse-video t))
+      (highlight-line '(:background "#C6DBAD"))
       (link '(:underline t :foreground "#006DAF"))
       (mail-header-name '(:weight bold :foreground "black"))
       (marked-line '(:weight bold :foreground "white" :background "red"))
@@ -57,30 +57,31 @@ Semantic, and Ansi-Color faces are included -- and much more...")
       (string '(:foreground "#008000"))
       (subject '(:weight bold :foreground "#CF5D60"))
       (symlink '(:foreground "deep sky blue"))
+      (volatile-highlight '(:background "#FFFF00"))
       (vc-branch '(:box (:line-width 1 :color "#00CC33") :foreground "black" :background "#AAFFAA")))
 
   (custom-theme-set-faces
    'leuven
-   `(default ((,class (:background "#ffffff" :foreground "#333333"))))
+   `(default ((,class (:background "#FFFFFF" :foreground "#333333"))))
    `(bold ((,class (:weight bold :foreground "black"))))
    `(bold-italic ((,class (:weight bold :slant italic :foreground "black"))))
    `(italic ((,class (:slant italic :foreground "#1A1A1A"))))
    `(underline ((,class (:underline t))))
-   `(cursor ((,class (:background "#15ff00"))))
+   `(cursor ((,class (:background "#15FF00"))))
    ;; Highlighting faces
    `(fringe ((,class (:foreground "#808080" :background "#DDEEFF"))))
-   `(highlight ((,class (:background "#FFFF00"))))
-   `(region ((t ,region)))
-   `(secondary-selection ((t ,match))) ;; used by Org-mode for highlighting matched entries and keywords
+   `(highlight ((,class ,volatile-highlight)))
+   `(region ((,class ,region)))
+   `(secondary-selection ((,class ,match))) ;; used by Org-mode for highlighting matched entries and keywords
    `(isearch ((,class (:weight bold :foreground "#00AA00" :background "#99FF99"))))
    `(isearch-fail ((,class (:weight bold :foreground "black" :background "#FF9999"))))
    `(lazy-highlight ((,class (:weight bold :foreground "#990099" :background "#FF66FF"))))
-   `(trailing-whitespace ((t (:background "#F6EBFE"))))
-   `(whitespace-line ((t (:foreground "#CC0000" :background "#FFFF88"))))
-   `(whitespace-tab  ((t (:foreground "lightgray" :background "beige"))))
-   `(whitespace-indentation ((t (:foreground "firebrick" :background "yellow"))))
-   `(whitespace-trailing ((t (:weight bold :foreground "yellow" :background "red1"))))
-   `(whitespace-hspace ((t (:background "#CCE8F6"))))
+   `(trailing-whitespace ((,class (:background "#F6EBFE"))))
+   `(whitespace-line ((,class (:foreground "#CC0000" :background "#FFFF88"))))
+   `(whitespace-tab ((,class (:foreground "lightgray" :background "beige"))))
+   `(whitespace-indentation ((,class (:foreground "firebrick" :background "yellow"))))
+   `(whitespace-trailing ((,class (:weight bold :foreground "yellow" :background "red1"))))
+   `(whitespace-hspace ((,class (:background "#CCE8F6"))))
    ;; Mode line faces
    `(mode-line ((,class (:box (:line-width 1 :color "#1A2F54") :foreground "#85CEEB" :background "#335EA8"))))
    `(mode-line-inactive ((,class (:box (:line-width 1 :color "#4E4E4C") :foreground "#F0F0EF" :background "#9B9C97"))))
@@ -107,7 +108,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(font-lock-reference-face ((,class (:foreground "dark cyan"))))
    `(font-lock-regexp-grouping-backslash ((,class (:bold t :weight bold))))
    `(font-lock-regexp-grouping-construct ((,class (:bold t :weight bold))))
-   `(font-lock-string-face ((t ,string)))
+   `(font-lock-string-face ((,class ,string)))
    `(font-lock-type-face ((,class (:foreground "#1B781F"))))
    `(font-lock-variable-name-face ((,class (:foreground "#2E91AF"))))
    `(font-lock-warning-face ((,class (:weight bold :foreground "red"))))
@@ -135,18 +136,18 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(gnus-group-mail-2 ((,class (:weight bold :foreground "#FF0066"))))
    `(gnus-group-mail-3-empty ((,class (:foreground "#808080"))))
    `(gnus-group-mail-3 ((,class (:weight bold :foreground "black"))))
-   `(gnus-group-mail-low-empty ((t ,cancel)))
-   `(gnus-group-mail-low ((t ,cancel)))
+   `(gnus-group-mail-low-empty ((,class ,cancel)))
+   `(gnus-group-mail-low ((,class ,cancel)))
    `(gnus-header-content ((,class (:family "Sans Serif" :foreground "#786FB4"))))
    `(gnus-header-from ((,class (:family "Sans Serif" :foreground "blue"))))
-   `(gnus-header-subject ((t ,subject)))
-   `(gnus-header-name ((t ,mail-header-name)))
+   `(gnus-header-subject ((,class ,subject)))
+   `(gnus-header-name ((,class ,mail-header-name)))
    `(gnus-header-newsgroups ((,class (:family "Sans Serif" :foreground "#3399CC"))))
    ;; Message faces
-   `(message-header-name ((t ,mail-header-name)))
+   `(message-header-name ((,class ,mail-header-name)))
    `(message-header-cc ((,class (:family "Sans Serif" :foreground "blue"))))
    `(message-header-other ((,class (:family "Sans Serif" :foreground "#3399CC"))))
-   `(message-header-subject ((t ,subject)))
+   `(message-header-subject ((,class ,subject)))
    `(message-header-to ((,class (:family "Sans Serif" :foreground "blue"))))
    `(message-cited-text ((,class (:foreground "#5050B0"))))
    `(message-separator ((,class (:family "Sans Serif" :weight bold :foreground "red"))))
@@ -154,20 +155,20 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(message-header-xheader ((,class (:foreground "red"))))
    `(message-mml ((,class (:foreground "forest green"))))
    ;; Diff
-   `(diff-added ((t ,diff-added)))
+   `(diff-added ((,class ,diff-added)))
    `(diff-changed ((,class (:foreground "blue" :background "#DDDDFF"))))
-   `(diff-context ((t ,diff-none)))
+   `(diff-context ((,class ,diff-none)))
    `(diff-file-header ((,class (:foreground "#0000CC" :background "#EAF2F5"))))
-   `(diff-file1-hunk-header  ((,class (:foreground "dark magenta" :background "#EAF2F5"))))
-   `(diff-file2-hunk-header  ((,class (:foreground "#2B7E2A" :background "#EAF2F5"))))
+   `(diff-file1-hunk-header ((,class (:foreground "dark magenta" :background "#EAF2F5"))))
+   `(diff-file2-hunk-header ((,class (:foreground "#2B7E2A" :background "#EAF2F5"))))
    `(diff-header ((,class (:foreground "#999999" :background "#EAF2F5"))))
-   `(diff-hunk-header ((t ,diff-hunk-header)))
-   `(diff-index ((,class (:family "Sans Serif" :height 1.1 :weight bold :foreground "#4183C4" :background "#EAF2F5"))))
+   `(diff-hunk-header ((,class ,diff-hunk-header)))
+   `(diff-index ((,class (:foreground "#4183C4" :background "#EAF2F5")))) ;; my foreground is NOT applied!?
    `(diff-indicator-added ((,class (:background "#AAFFAA"))))
    `(diff-indicator-changed ((,class (:background "#AAAAFF"))))
    `(diff-indicator-removed ((,class (:background "#FFAAAA"))))
    `(diff-refine-change ((,class (:background "#DDDDFF"))))
-   `(diff-removed ((t ,diff-removed)))
+   `(diff-removed ((,class ,diff-removed)))
    ;; SMerge
    `(smerge-refined-change ((,class (:background "#AAAAFF"))))
    ;; Ediff
@@ -181,45 +182,44 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(ediff-odd-diff-A ((,class (:foreground "black" :background "light grey"))))
    `(ediff-odd-diff-B ((,class (:foreground "black" :background "light grey"))))
    ;; Flyspell
-   `(flyspell-duplicate ((,class (:underline "#008000"))))
-   `(flyspell-incorrect ((,class (:underline "red"))))
+   `(flyspell-duplicate ((,class (:underline "#008000" :inherit nil))))
+   `(flyspell-incorrect ((,class (:underline "red" :inherit nil))))
    ;; ;; Semantic faces
-   ;; `(semantic-decoration-on-includes ((,class (:underline  ,cham-4))))
+   ;; `(semantic-decoration-on-includes ((,class (:underline ,cham-4))))
    ;; `(semantic-decoration-on-private-members-face ((,class (:background ,alum-2))))
    ;; `(semantic-decoration-on-protected-members-face ((,class (:background ,alum-2))))
    ;; `(semantic-decoration-on-unknown-includes ((,class (:background ,choc-3))))
-   ;; `(semantic-decoration-on-unparsed-includes ((,class (:underline  ,orange-3))))
-   ;; `(semantic-tag-boundary-face ((,class (:overline   ,blue-1))))
-   ;; `(semantic-unmatched-syntax-face ((,class (:underline  ,red-1))))
-
-   `(Info-title-1-face ((t ,ol1)))
-   `(Info-title-2-face ((t ,ol2)))
-   `(Info-title-3-face ((t ,ol3)))
-   `(Info-title-4-face ((t ,ol4)))
+   ;; `(semantic-decoration-on-unparsed-includes ((,class (:underline ,orange-3))))
+   ;; `(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
+   ;; `(semantic-unmatched-syntax-face ((,class (:underline ,red-1))))
+   `(Info-title-1-face ((,class ,ol1)))
+   `(Info-title-2-face ((,class ,ol2)))
+   `(Info-title-3-face ((,class ,ol3)))
+   `(Info-title-4-face ((,class ,ol4)))
    `(bbdb-company ((,class (:slant italic :foreground "steel blue"))))
    `(bbdb-field-name ((,class (:weight bold :foreground "steel blue"))))
    `(bbdb-field-value ((,class (:foreground "steel blue"))))
    `(bbdb-name ((,class (:underline t :foreground "#FF6633"))))
    `(browse-kill-ring-separator-face ((,class (:weight bold :foreground "slate gray"))))
-   `(calendar-today ((,class (:weight bold :background "#CCCCFF"))))
-   `(cfw:face-annotation ((,class (:foreground "RosyBrown" :inherit cfw:face-day-title))))
-   `(cfw:face-day-title ((,class (:background "#F8F9FF"))))
+   `(calendar-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFABE"))))
+   `(cfw:face-annotation ((,class (:foreground "green" :background "red"))))
+   `(cfw:face-day-title ((,class (:foreground "#C9C9C9"))))
    `(cfw:face-default-content ((,class (:foreground "#2952A3"))))
-   `(cfw:face-default-day ((,class (:weight bold :inherit cfw:face-day-title))))
-   `(cfw:face-disable ((,class (:foreground "DarkGray" :inherit cfw:face-day-title))))
-   `(cfw:face-grid ((,class (:foreground "SlateBlue"))))
-   `(cfw:face-header ((,class (:foreground "blue" :background "#D4E5FF" :weight bold))))
-   `(cfw:face-holiday ((,class (:background "#FFD5E5"))))
+   `(cfw:face-default-day ((,class (:weight bold))))
+   `(cfw:face-disable ((,class (:foreground "DarkGray"))))
+   `(cfw:face-grid ((,class (:foreground "#DDDDDD"))))
+   `(cfw:face-header ((,class (:foreground "#1662AF" :background "white" :weight bold))))
+   `(cfw:face-holiday ((,class (:foreground "#777777" :background "#E4EBFE"))))
    `(cfw:face-periods ((,class (:background "#668CD9" :foreground "white" :slant italic))))
-   `(cfw:face-saturday ((,class (:foreground "SlateGray4" :background "gray90" :weight bold))))
-   `(cfw:face-select ((,class (:background "#C3C9F8"))))
-   `(cfw:face-sunday ((,class (:foreground "red2" :background "#FFD5E5" :weight bold))))
-   `(cfw:face-title ((,class (:foreground "DarkGrey" :weight bold :height 2.0 :inherit variable-pitch))))
-   `(cfw:face-today ((,class (:background "#FFF7D7"))))
-   `(cfw:face-today-title ((,class (:background "#FAD163"))))
-   `(cfw:face-toolbar ((,class (:foreground "gray90" :background "gray90"))))
-   `(cfw:face-toolbar-button-off ((,class (:foreground "LightSkyBlue4" :background "white"))))
-   `(cfw:face-toolbar-button-on ((,class (:foreground "LightPink3" :background "gray94"))))
+   `(cfw:face-saturday ((,class (:foreground "#4E4E4E" :background "white" :weight bold))))
+   `(cfw:face-select ((,class (:foreground "#4A95EB" :background "#EDF1FA"))))
+   `(cfw:face-sunday ((,class (:foreground "#4E4E4E" :background "white" :weight bold))))
+   `(cfw:face-title ((,class (:foreground "#676767" :weight bold :height 2.0 :inherit variable-pitch))))
+   `(cfw:face-today ((,class (:foreground "#4F4A3D" :background "#FFFABE"))))
+   `(cfw:face-today-title ((,class (:foreground "#4A95EB" :background "#FFFABE"))))
+   `(cfw:face-toolbar ((,class (:background "white"))))
+   `(cfw:face-toolbar-button-off ((,class (:foreground "#CFCFCF" :background "white"))))
+   `(cfw:face-toolbar-button-on ((,class (:foreground "#5E5E5E" :background "#F6F6F6"))))
    `(change-log-date-face ((,class (:foreground "purple"))))
    `(change-log-file ((,class (:weight bold :foreground "#4183C4"))))
    `(circe-highlight-all-nicks-face ((,class (:foreground "blue" :background "#F0F0F0")))) ;; other nick names
@@ -228,7 +228,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(circe-originator-face ((,class (:foreground "blue"))))
    `(circe-prompt-face ((,class (:foreground "red"))))
    `(circe-server-face ((,class (:foreground "#99CAE5"))))
-   `(comint-highlight-input ((t ,code-block)))
+   `(comint-highlight-input ((,class ,code-block)))
    `(comint-highlight-prompt ((,class (:foreground "#008ED1" :background "#EAEAFF"))))
    `(compare-windows ((,class (:background "#FFFF00"))))
    `(compilation-error ((,class (:weight bold :foreground "red"))))
@@ -263,7 +263,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(dircolors-face-asm ((,class (:foreground "black"))))
    `(dircolors-face-backup ((,class (:foreground "black"))))
    `(dircolors-face-compress ((,class (:foreground "red"))))
-   `(dircolors-face-dir ((t ,directory)))
+   `(dircolors-face-dir ((,class ,directory)))
    `(dircolors-face-doc ((,class (:foreground "black"))))
    `(dircolors-face-dos ((,class (:foreground "green3"))))
    `(dircolors-face-emacs ((,class (:foreground "black"))))
@@ -281,32 +281,32 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(dircolors-face-tar ((,class (:foreground "red"))))
    `(dircolors-face-text ((,class (:foreground "black"))))
    `(dircolors-face-yacc ((,class (:foreground "black"))))
-   `(dired-directory ((t ,directory)))
-   `(dired-header ((t ,directory)))
+   `(dired-directory ((,class ,directory)))
+   `(dired-header ((,class ,directory)))
    `(dired-ignored ((,class (:strike-through t :foreground "red"))))
-   `(dired-mark ((t ,marked-line)))
-   `(dired-marked ((t ,marked-line)))
-   `(dired-symlink ((t ,symlink)))
+   `(dired-mark ((,class ,marked-line)))
+   `(dired-marked ((,class ,marked-line)))
+   `(dired-symlink ((,class ,symlink)))
    `(diredp-compressed-file-suffix ((,class (:foreground "red"))))
    `(diredp-date-time ((,class (:foreground "purple"))))
-   `(diredp-dir-heading ((t ,directory)))
-   `(diredp-dir-priv ((t ,directory)))
+   `(diredp-dir-heading ((,class ,directory)))
+   `(diredp-dir-priv ((,class ,directory)))
    `(diredp-exec-priv ((,class (:background "#03C03C"))))
    `(diredp-executable-tag ((,class (:foreground "green3" :background "white"))))
    `(diredp-file-name ((,class (:foreground "black"))))
    `(diredp-file-suffix ((,class (:foreground "#008000"))))
-   `(diredp-flag-mark-line ((t ,marked-line)))
+   `(diredp-flag-mark-line ((,class ,marked-line)))
    `(diredp-ignored-file-name ((,class (:strike-through t :foreground "red"))))
    `(diredp-read-priv ((,class (:background "#0A99FF"))))
    `(diredp-write-priv ((,class (:foreground "white" :background "#FF4040"))))
-   `(file-name-shadow ((t ,shadow)))
+   `(file-name-shadow ((,class ,shadow)))
    `(font-latex-bold-face ((,class (:weight bold :foreground "medium sea green"))))
    `(font-latex-math-face ((,class (:foreground "blue"))))
    `(font-latex-sectioning-1-face ((,class (:family "Sans Serif" :height 2.7 :weight bold :foreground "cornflower blue"))))
-   `(font-latex-sectioning-2-face ((t ,ol1)))
-   `(font-latex-sectioning-3-face ((t ,ol2)))
-   `(font-latex-sectioning-4-face ((t ,ol3)))
-   `(font-latex-sectioning-5-face ((t ,ol4)))
+   `(font-latex-sectioning-2-face ((,class ,ol1)))
+   `(font-latex-sectioning-3-face ((,class ,ol2)))
+   `(font-latex-sectioning-4-face ((,class ,ol3)))
+   `(font-latex-sectioning-5-face ((,class ,ol4)))
    `(font-latex-sedate-face ((,class (:foreground "#FF5803"))))
    `(font-latex-string-face ((,class (:bold t :foreground "#0066FF"))))
    `(font-latex-verbatim-face ((,class (:foreground "tan1"))))
@@ -327,7 +327,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(gnus-picon-xbm ((,class (:foreground "yellow" :background "white"))))
    `(gnus-signature ((,class (:foreground "#7F7F7F"))))
    `(gnus-splash ((,class (:foreground "#FF8C00"))))
-   `(gnus-summary-cancelled ((t ,cancel)))
+   `(gnus-summary-cancelled ((,class ,cancel)))
    `(gnus-summary-high-ancient ((,class (:weight normal :foreground "#808080" :background "#FFFFE6"))))
    `(gnus-summary-high-read ((,class (:weight normal :foreground "#808080" :background "#FFFFE6"))))
    `(gnus-summary-high-ticked ((,class (:weight normal :foreground "black" :background "#E7AEB0"))))
@@ -347,24 +347,24 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(helm-candidate-number ((,class (:foreground "black" :background "#FFFF66"))))
    `(helm-dir-heading ((,class (:foreground "blue" :background "pink"))))
    `(helm-dir-priv ((,class (:foreground "dark red" :background "light grey"))))
-   `(helm-ff-directory ((t ,directory)))
+   `(helm-ff-directory ((,class ,directory)))
    `(helm-ff-executable ((,class (:foreground "green3" :background "white"))))
    `(helm-ff-file ((,class (:foreground "black"))))
    `(helm-ff-invalid-symlink ((,class (:foreground "yellow" :background "red"))))
-   `(helm-ff-symlink ((t ,symlink)))
+   `(helm-ff-symlink ((,class ,symlink)))
    `(helm-file-name ((,class (:foreground "blue"))))
    `(helm-gentoo-match-face ((,class (:foreground "red"))))
    `(helm-grep-running ((,class (:weight bold :foreground "white"))))
    `(helm-isearch-match ((,class (:background "#CCFFCC"))))
-   `(helm-match ((t ,match)))
-   `(helm-overlay-line-face ((,class (:underline t :foreground "white" :background "IndianRed4"))))
-   `(helm-selection ((t ,highlight-line)))
+   `(helm-match ((,class ,match)))
+   `(helm-selection ((,class ,highlight-line)))
+   `(helm-selection-line ((,class ,volatile-highlight)))
    `(helm-source-header ((,class (:family "Sans Serif" :height 1.3 :weight bold :foreground "white" :background "#666699"))))
-   `(helm-visible-mark ((t ,marked-line)))
+   `(helm-visible-mark ((,class ,marked-line)))
    `(helm-w3m-bookmarks-face ((,class (:underline t :foreground "cyan1"))))
    `(highlight-symbol-face ((,class (:background "#FFFFA0"))))
-   `(hl-line ((t ,highlight-line)))
-   `(holiday-face ((,class (:background "#B6B2AE"))))
+   `(hl-line ((,class ,highlight-line)))
+   `(holiday-face ((,class (:foreground "#777777" :background "#E4EBFE"))))
    `(html-helper-bold-face ((,class (:weight bold :foreground "black"))))
    `(html-helper-italic-face ((,class (:slant italic :foreground "black"))))
    `(html-helper-underline-face ((,class (:underline t :foreground "black"))))
@@ -375,54 +375,54 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(info-menu-header ((,class (:family "Sans Serif" :height 1.6 :weight bold :underline t :foreground "#00CC00")))) ;; menu titles (headers) -- major topics
    `(info-menu-star ((,class (:foreground "black")))) ;; every 3rd menu item
    `(info-node ((,class (:underline t :foreground "blue")))) ;; node names
-   `(info-quoted-name ((t ,code-inline)))
-   `(info-string ((t ,string)))
-   `(info-title-1 ((t ,ol1)))
+   `(info-quoted-name ((,class ,code-inline)))
+   `(info-string ((,class ,string)))
+   `(info-title-1 ((,class ,ol1)))
    `(info-xref ((,class (:weight bold :underline t :foreground "blue")))) ;; unvisited cross-references
    `(info-xref-visited ((,class (:weight bold :foreground "magenta4")))) ;; previously visited cross-references
    `(light-symbol-face ((,class (:background "#FFFFA0"))))
    `(linum ((,class (:foreground "#AFB7BA" :background "#DDEEFF"))))
    `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5"))))
-   `(lui-button-face ((t ,link)))
+   `(lui-button-face ((,class ,link)))
    `(lui-highlight-face ((,class (:box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88")))) ;; my nickname
    `(lui-time-stamp-face ((,class (:foreground "purple"))))
-   `(magit-branch ((t ,vc-branch)))
-   `(magit-diff-add ((t ,diff-added)))
-   `(magit-diff-del ((t ,diff-removed)))
+   `(magit-branch ((,class ,vc-branch)))
+   `(magit-diff-add ((,class ,diff-added)))
+   `(magit-diff-del ((,class ,diff-removed)))
    `(magit-diff-file-header ((,class (:family "Sans Serif" :height 1.1 :weight bold :foreground "#4183C4"))))
-   `(magit-diff-hunk-header ((t ,diff-hunk-header)))
-   `(magit-diff-none ((t ,diff-none)))
+   `(magit-diff-hunk-header ((,class ,diff-hunk-header)))
+   `(magit-diff-none ((,class ,diff-none)))
    `(magit-header ((,class (:foreground "white" :background "#FF4040"))))
    `(magit-item-highlight ((,class (:background "#EAF2F5"))))
-   `(magit-item-mark ((t ,marked-line)))
+   `(magit-item-mark ((,class ,marked-line)))
    `(magit-log-head-label ((,class (:box (:line-width 1 :color "blue" :style nil)))))
    `(magit-log-tag-label ((,class (:box (:line-width 1 :color "#00CC00" :style nil)))))
    `(magit-section-title ((,class (:family "Sans Serif" :height 1.8 :weight bold :foreground "cornflower blue"))))
    `(makefile-space-face ((,class (:background "hot pink"))))
    `(makefile-targets ((,class (:weight bold :foreground "blue"))))
-   `(match ((t ,match)))
-   `(mm-uu-extract ((t ,code-block)))
+   `(match ((,class ,match)))
+   `(mm-uu-extract ((,class ,code-block)))
    `(moccur-current-line-face ((,class (:background "#FFFFCC" :foreground "black"))))
    `(moccur-face ((,class (:background "#FFFF99" :foreground "black"))))
    `(nobreak-space ((,class (:background "#CCE8F6"))))
    `(nxml-attribute-local-name-face ((,class (:foreground "magenta"))))
    `(nxml-attribute-value-delimiter-face ((,class (:foreground "green4"))))
    `(nxml-attribute-value-face ((,class (:foreground "green4"))))
-   `(nxml-comment-content-face  ((,class (:slant italic :foreground "red"))))
+   `(nxml-comment-content-face ((,class (:slant italic :foreground "red"))))
    `(nxml-comment-delimiter-face ((,class (:foreground "red"))))
    `(nxml-element-local-name ((,class (:box (:line-width 1 :color "#999999") :background "#DEDEDE" :foreground "#000088"))))
    `(nxml-element-local-name-face ((,class (:foreground "blue"))))
    `(nxml-processing-instruction-target-face ((,class (:foreground "purple1"))))
    `(nxml-tag-delimiter-face ((,class (:foreground "blue"))))
    `(nxml-tag-slash-face ((,class (:foreground "blue"))))
-   `(org-agenda-calendar-event ((,class (:weight bold :foreground "white" :background "#1662AF"))))
-   `(org-agenda-calendar-sexp ((,class (:foreground "black" :background "#80CBFF"))))
-   `(org-agenda-clocking ((t ,clock-line)))
-   `(org-agenda-column-dateline ((t ,column)))
+   `(org-agenda-calendar-event ((,class (:weight bold :foreground "#3774CC" :background "#A8C5EF"))))
+   `(org-agenda-calendar-sexp ((,class (:foreground "#777777" :background "#E4EBFE"))))
+   `(org-agenda-clocking ((,class ,clock-line)))
+   `(org-agenda-column-dateline ((,class ,column)))
    `(org-agenda-current-time ((,class (:underline t :foreground "#1662AF"))))
-   `(org-agenda-date ((,class (:height 1.6 :weight normal :foreground "#0063F5"))))
-   `(org-agenda-date-today ((,class (:height 1.6 :weight bold :foreground "#1662AF"))))
-   `(org-agenda-date-weekend ((,class (:height 1.6 :weight normal :foreground "dim gray"))))
+   `(org-agenda-date ((,class (:height 1.6 :weight bold :foreground "#1662AF"))))
+   `(org-agenda-date-today ((,class (:height 1.6 :weight bold :foreground "#4F4A3D" :background "#FFFABE"))))
+   `(org-agenda-date-weekend ((,class (:height 1.6 :weight bold :foreground "#4E4E4E"))))
    `(org-agenda-diary ((,class (:weight bold :foreground "green4" :background "light blue"))))
    `(org-agenda-dimmed-todo-face ((,class (:foreground "gold2"))))
    `(org-agenda-done ((,class (:foreground "#555555" :background "#EEEEEE"))))
@@ -432,15 +432,15 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(org-agenda-structure ((,class (:height 1.6 :weight bold :box (:line-width 1 :color "#999999") :foreground "#666666" :background "#CCCCCC"))))
    `(org-archived ((,class (:foreground "gray70"))))
    `(org-beamer-tag ((,class (:box (:line-width 1 :color "#FABC18") :foreground "#2C2C2C" :background "#FFF8D0"))))
-   `(org-block ((t ,code-block)))
+   `(org-block ((,class ,code-block)))
    `(org-block-background ((,class (:background "#FFFFE0"))))
    `(org-block-begin-line ((,class (:underline "#A7A6AA" :foreground "#555555" :background "#E2E1D5"))))
    `(org-block-end-line ((,class (:overline "#A7A6AA" :foreground "#555555" :background "#E2E1D5"))))
    `(org-checkbox ((,class (:weight bold :foreground "white" :background "#777777" :box (:line-width 1 :style pressed-button)))))
    `(org-clock-overlay ((,class (:foreground "white" :background "SkyBlue4"))))
-   `(org-code ((t ,code-inline)))
-   `(org-column ((t ,column)))
-   `(org-column-title ((t ,column)))
+   `(org-code ((,class (:foreground "#0066CC"))))
+   `(org-column ((,class ,column)))
+   `(org-column-title ((,class ,column)))
    `(org-date ((,class (:underline t :foreground "#00459E"))))
    `(org-default ((,class (:foreground "#333333"))))
    `(org-dim ((,class (:foreground "#AAAAAA"))))
@@ -457,44 +457,44 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(org-hide ((,class (:foreground "#E2E2E2"))))
    `(org-inlinetask ((,class (:box (:line-width 1 :color "#EBEBEB") :foreground "#777777" :background "#FFFFD6"))))
    `(org-latex-and-export-specials ((,class (:foreground "blue"))))
-   `(org-level-1 ((t ,ol1)))
-   `(org-level-2 ((t ,ol2)))
-   `(org-level-3 ((t ,ol3)))
-   `(org-level-4 ((t ,ol4)))
-   `(org-level-5 ((t ,ol5)))
-   `(org-level-6 ((t ,ol6)))
-   `(org-level-7 ((t ,ol7)))
-   `(org-level-8 ((t ,ol8)))
-   `(org-link ((t ,link)))
+   `(org-level-1 ((,class ,ol1)))
+   `(org-level-2 ((,class ,ol2)))
+   `(org-level-3 ((,class ,ol3)))
+   `(org-level-4 ((,class ,ol4)))
+   `(org-level-5 ((,class ,ol5)))
+   `(org-level-6 ((,class ,ol6)))
+   `(org-level-7 ((,class ,ol7)))
+   `(org-level-8 ((,class ,ol8)))
+   `(org-link ((,class ,link)))
    `(org-list-dt ((,class (:weight bold :foreground "#335EA8"))))
    `(org-meta-line ((,class (:slant normal :foreground "#008ED1" :background "#EAEAFF"))))
-   `(org-mode-line-clock ((t ,clock-line)))
+   `(org-mode-line-clock ((,class ,clock-line)))
    `(org-mode-line-clock-overrun ((,class (:weight bold :box (:line-width 1 :color "#335EA8") :foreground "white" :background "#FF4040"))))
    `(org-number-of-items ((,class (:weight bold :foreground "white" :background "#79BA79"))))
    `(org-property-value ((,class (:foreground "#00A000"))))
    `(org-quote ((,class (:slant italic :foreground "dim gray" :background "#FFFFE0"))))
-   `(org-scheduled ((,class (:slant italic :foreground "#0063DC"))))
+   `(org-scheduled ((,class (:foreground "#333333"))))
    `(org-scheduled-previously ((,class (:weight bold :foreground "#373737"))))
-   `(org-scheduled-today ((,class (:foreground "black" :background "#FFFFCB"))))
+   `(org-scheduled-today ((,class (:weight bold :foreground "#4F4A3D" :background "#FFFABE"))))
    `(org-sexp-date ((,class (:foreground "purple"))))
    `(org-special-keyword ((,class (:weight bold :foreground "#00BB00" :background "#EAFFEA"))))
    `(org-table ((,class (:foreground "dark green" :background "#EAFFEA"))))
-   `(org-tag ((,class (:height 1.0 :weight normal :slant italic :foreground "#3C424F" :background "#E5ECFA"))))
+   `(org-tag ((,class (:weight normal :slant italic :foreground "#3E6D8E" :background "#E0EAF1"))))
    `(org-target ((,class (:underline t))))
-   `(org-time-grid ((,class (:foreground "#6D6D6D"))))
+   `(org-time-grid ((,class (:foreground "#CFCFCF"))))
    `(org-todo ((,class (:weight bold :box (:line-width 1 :color "#D8ABA7") :foreground "#D8ABA7" :background "#FFE6E4"))))
    `(org-upcoming-deadline ((,class (:foreground "#FF5555"))))
    `(org-verbatim ((,class (:box (:line-width 1 :color "#DDDDDD") :foreground "#000088" :background "#E0FFE0"))))
    `(org-verse ((,class (:slant italic :foreground "dim gray" :background "#EEEEEE"))))
    `(org-warning ((,class (:weight bold :foreground "black" :background "#CCE7FF"))))
-   `(outline-1 ((t ,ol1)))
-   `(outline-2 ((t ,ol2)))
-   `(outline-3 ((t ,ol3)))
-   `(outline-4 ((t ,ol4)))
-   `(outline-5 ((t ,ol5)))
-   `(outline-6 ((t ,ol6)))
-   `(outline-7 ((t ,ol7)))
-   `(outline-8 ((t ,ol8)))
+   `(outline-1 ((,class ,ol1)))
+   `(outline-2 ((,class ,ol2)))
+   `(outline-3 ((,class ,ol3)))
+   `(outline-4 ((,class ,ol4)))
+   `(outline-5 ((,class ,ol5)))
+   `(outline-6 ((,class ,ol6)))
+   `(outline-7 ((,class ,ol7)))
+   `(outline-8 ((,class ,ol8)))
    `(pabbrev-debug-display-label-face ((,class (:background "chartreuse"))))
    `(pabbrev-suggestions-face ((,class (:weight bold :foreground "white" :background "red"))))
    `(pabbrev-suggestions-label-face ((,class (:weight bold :foreground "white" :background "purple"))))
@@ -504,7 +504,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(pp^L-highlight ((,class (:strike-through t))))
    `(recover-this-file ((,class (:background "white" :background "#FF3F3F"))))
    `(sh-heredoc ((,class (:foreground "blue" :background "#FBF9EA"))))
-   `(shadow ((t ,shadow)))
+   `(shadow ((,class ,shadow)))
    `(shell-option-face ((,class (:foreground "forest green"))))
    `(shell-output-2-face ((,class (:foreground "blue"))))
    `(shell-output-3-face ((,class (:foreground "purple"))))
@@ -515,16 +515,16 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(speedbar-button-face ((,class (:foreground "green4"))))
    `(speedbar-directory-face ((,class (:foreground "blue4"))))
    `(speedbar-file-face ((,class (:foreground "cyan4"))))
-   `(speedbar-highlight-face ((,class (:background "green"))))
+   `(speedbar-highlight-face ((,class ,volatile-highlight)))
    `(speedbar-selected-face ((,class (:underline t :foreground "red"))))
    `(speedbar-tag-face ((,class (:foreground "brown"))))
-   `(svn-status-directory-face ((t ,directory)))
+   `(svn-status-directory-face ((,class ,directory)))
    `(svn-status-filename-face ((,class (:weight bold :foreground "#4183C4"))))
    `(svn-status-locked-face ((,class (:weight bold :foreground "red"))))
-   `(svn-status-marked-face ((t ,marked-line)))
+   `(svn-status-marked-face ((,class ,marked-line)))
    `(svn-status-marked-popup-face ((,class (:weight bold :foreground "green3"))))
    `(svn-status-switched-face ((,class (:slant italic :foreground "gray55"))))
-   `(svn-status-symlink-face  ((t ,symlink)))
+   `(svn-status-symlink-face ((,class ,symlink)))
    `(svn-status-update-available-face ((,class (:foreground "orange"))))
    `(tex-verbatim ((,class (:foreground "blue"))))
    `(tool-bar ((,class (:box (:line-width 1 :style released-button) :foreground "black" :background "gray75"))))
@@ -549,7 +549,7 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(vc-annotate-face-FF993F ((,class (:foreground "#FF993F" :background "black"))))
    `(vc-annotate-face-FFC63F ((,class (:foreground "#FF993F" :background "black"))))
    `(vc-annotate-face-FFF33F ((,class (:foreground "#FFF33F" :background "black"))))
-   `(w3m-anchor ((t ,link)))
+   `(w3m-anchor ((,class ,link)))
    `(w3m-arrived-anchor ((,class (:foreground "purple1"))))
    `(w3m-bitmap-image-face ((,class (:foreground "gray4" :background "green"))))
    `(w3m-bold ((,class (:weight bold :foreground "medium sea green"))))
@@ -569,9 +569,9 @@ Semantic, and Ansi-Color faces are included -- and much more...")
    `(whitespace-hspace ((,class (:background "#CCE8F6"))))
    `(whitespace-indentation ((,class (:foreground "firebrick" :background "yellow"))))
    `(whitespace-line ((,class (:foreground "#CC0000" :background "#FFFF88"))))
-   `(whitespace-tab  ((,class (:foreground "lightgray" :background "beige"))))
+   `(whitespace-tab ((,class (:foreground "lightgray" :background "beige"))))
    `(whitespace-trailing ((,class (:weight bold :foreground "yellow" :background "red1"))))
-   `(widget-button-face ((t ,link)))
+   `(widget-button-face ((,class ,link)))
    `(widget-button-pressed-face ((,class (:foreground "red"))))
    `(widget-documentation-face ((,class (:foreground "green4"))))
    `(widget-field-face ((,class (:background "gray85"))))
@@ -583,8 +583,8 @@ Semantic, and Ansi-Color faces are included -- and much more...")
 
 (custom-theme-set-variables
  'leuven
- '(ansi-color-names-vector ["#242424" "#e5786d" "#95e454" "#cae682"
-                            "#8ac6f2" "#333366" "#ccaa8f" "#f6f3e8"]))
+ '(ansi-color-names-vector ["#242424" "#E5786D" "#95E454" "#CAE682"
+                            "#8AC6F2" "#333366" "#CCAA8F" "#F6F3E8"]))
 
 (provide-theme 'leuven)
 
index 78ea63ff9e048e38e26fde2de187dee41166315d..9aad280bf96f1baa9c1a9e51c379617f3ce52908 100644 (file)
-\e$(C@L8F=:\e(B(Emacs) \e$(CAvD'<-@T4O4Y\e(B.
-\e$(C3!?!4B\e(B \e$(C:9;g\e(B \e$(CA60G@L\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(CAv1]\e(B \e$(C@P0m\e(B \e$(C@V4B\e(B \e$(C@L\e(B \e$(C1[@:\e(B \e$(C@L8F=:\e(B(Emacs) \e$(CAvD'<-@T4O4Y\e(B.
-
-\e$(C@L8F=:\e(B \e$(C8m7I5i@:\e(B \e$(C4k03\e(B \e$(CA&>n<h\e(B (CTRL\e$(C@L3*\e(B CTL\e$(C@L6s0m55\e(B \e$(CG%=C\e(B) \e$(CH$@:\e(B
-META\e$(C<h\e(B (EDIT\e$(C@L3*\e(B ALT\e$(C6s0m55\e(B \e$(CG%=C\e(B)\e$(C8&\e(B \e$(C;g?kGU4O4Y\e(B.  \e$(C@L71\e(B \e$(C1[<h8&\e(B \e$(C8E9x\e(B \e$(C4Y\e(B
-\e$(C>21b\e(B \e$(C:84Y4B\e(B \e$(C?l8.4B\e(B \e$(C4Y@=0z\e(B \e$(C00@:\e(B \e$(C>`=D\e(B \e$(CG%Gv@;\e(B \e$(C>21b7N\e(B \e$(CGU=C4Y\e(B:
-
- C-<\e$(C9.@Z\e(B>  \e$(CA&>n<h8&\e(B \e$(C4)8%\e(B \e$(CC$\e(B <\e$(C9.@Z\e(B> \e$(C1[<h8&\e(B \e$(CD(4O4Y\e(B.  \e$(CAo\e(B, C-f\e$(C4B\e(B \e$(CA&>n<h8&\e(B
-          \e$(C4)8%\e(B \e$(C;sEB?!<-\e(B f \e$(C1[<h8&\e(B \e$(CD!4B\e(B \e$(C0M@;\e(B \e$(C8;GU4O4Y\e(B.
- M-<\e$(C9.@Z\e(B>  META\e$(C<h3*\e(B EDIT\e$(C<h\e(B \e$(CH$@:\e(B \e$(C13C<<h\e(B(ALT)\e$(C8&\e(B \e$(C4)8%\e(B \e$(CC$\e(B <\e$(C9.@Z\e(B> \e$(C1[<h8&\e(B
-          \e$(CD(4O4Y\e(B. META\e$(C<h\e(B, EDIT\e$(C<h\e(B \e$(CH$@:\e(B \e$(C13C<<h0!\e(B \e$(C>x@88i\e(B \e$(C3*?H<h\e(B(ESC)\e$(C8&\e(B
-          \e$(C4-764Y\e(B \e$(C3u@:\e(B \e$(CHD\e(B <\e$(C9.@Z\e(B> \e$(C1[<h8&\e(B \e$(CD(4O4Y\e(B.  \e$(C3*?H<h4B\e(B <ESC>\e$(C@L6s0m\e(B
-          \e$(C>21b7N\e(B \e$(CGU4O4Y\e(B.
-
-\e$(C@/@G\e(B:  C-x C-c\e$(C8&\e(B \e$(CD!8i\e(B \e$(C@L8F=:8&\e(B \e$(CA>7aGR\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  (\e$(C5N\e(B \e$(C9.@Z\e(B.)
-\e$(C?^BJ\e(B \e$(C0!@e@Z8.?!\e(B \e$(C@V4B\e(B \e$(C9.@Z\e(B ">>"\e$(C4B\e(B \e$(C56@Z0!\e(B \e$(C8m7I@;\e(B \e$(C=GG`GX\e(B \e$(C:8557O\e(B
-\e$(CGO0m@Z\e(B \e$(CGT@;\e(B \e$(CAv=CGU4O4Y\e(B. \e$(C?98&\e(B \e$(C5i>n\e(B:
-<<help-with-tutorial\e$(C@L\e(B \e$(C=C@[GO8i<-\e(B \e$(C?)1b?!\e(B \e$(C:s\e(B \e$(CAY@L\e(B \e$(C3"?vA3@=\e(B>>
->> \e$(C4Y@=\e(B \e$(CH-8i@87N\e(B \e$(C?rAw@L1b\e(B \e$(C@'GX<-4B\e(B C-v (\e$(C4Y@=\e(B \e$(CH-8i\e(B \e$(C:81b\e(B)\e$(C8&\e(B \e$(CD(4O4Y\e(B.
-       (\e$(CGX\e(B \e$(C:8=J=C?@\e(B. \e$(CA&>n<h8&\e(B \e$(C4)8%\e(B \e$(CC$\e(B v \e$(C1[<h8&\e(B \e$(CD!8i\e(B \e$(C5K4O4Y\e(B.)
-       \e$(CAv1]:NEM4B\e(B \e$(CGQ\e(B \e$(CH-8i@;\e(B \e$(C4Y\e(B \e$(C@P>z@;\e(B \e$(C6'864Y\e(B \e$(C@L780T\e(B \e$(CGX>_\e(B \e$(CGU4O4Y\e(B.
-
-\e$(CGQ\e(B \e$(CH-8i?!<-\e(B \e$(C4Y8%\e(B \e$(CH-8i@87N\e(B \e$(C?rAw@O\e(B \e$(C6'\e(B \e$(C5N\e(B \e$(CAY@L\e(B \e$(C0cD#4Y4B\e(B \e$(C0M@;\e(B
-\e$(C@/@GGO=J=C?@\e(B; \e$(C@L4B\e(B \e$(CGQ\e(B \e$(C9.@e@;\e(B \e$(C0h<SGX<-\e(B \e$(C@P@;\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(CGO1b\e(B
-\e$(C@'GT@T4O4Y\e(B.
-
-\e$(CC99xB07N\e(B \e$(C@MGt>_\e(B \e$(CGO4B\e(B \e$(C0M@:\e(B \e$(C9.@e@G\e(B \e$(CGQ\e(B \e$(C0w?!<-\e(B \e$(C4Y8%\e(B \e$(C0w@87N\e(B \e$(C?rAw@L4B\e(B
-\e$(C0M@T4O4Y\e(B.  C-v\e$(C7N\e(B \e$(CGQ\e(B \e$(CH-8i@;\e(B \e$(C>UBJ@87N\e(B \e$(C?rAw@L4B\e(B \e$(C0M@:\e(B \e$(C@L9L\e(B \e$(C>K0m\e(B \e$(C@V=@4O4Y\e(B.
-\e$(C5^BJ@87N\e(B \e$(CGQ\e(B \e$(CH-8i@;\e(B \e$(C?rAw@L1b\e(B \e$(C@'GX<-4B\e(B M-v\e$(C8&\e(B (META\e$(C<h8&\e(B \e$(C4)8%C$\e(B v \e$(C1[<h8&\e(B
-\e$(CD!0E3*\e(B, META\e$(C<h3*\e(B EDIT\e$(C<h\e(B, \e$(CH$@:\e(B \e$(C13C<<h0!\e(B \e$(C>x@;\e(B \e$(C0f?l\e(B <ESC>v\e$(C8&\e(B \e$(CD(4O4Y\e(B).
-
->> \e$(C8n\e(B \e$(C9x\e(B M-v\e$(C?M\e(B C-v\e$(C8&\e(B \e$(C9x0%>F\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
-
-
-* \e$(C?d>`\e(B
+이맥스(Emacs) 지침서입니다.
+끝에는 복사 조건이
+있습니다.  지금 읽고 있는 이 글은 이맥스(Emacs) 지침서입니다.
+
+이맥스 명령들은 대개 제어쇠 (CTRL이나 CTL이라고도 표시) 혹은
+META쇠 (EDIT이나 ALT라고도 표시)를 사용합니다.  이런 글쇠를 매번 다
+쓰기 보다는 우리는 다음과 같은 약식 표현을 쓰기로 합시다:
+
+ C-<문자>  제어쇠를 누른 채 <문자> 글쇠를 칩니다.  즉, C-f는 제어쇠를
+          누른 상태에서 f 글쇠를 치는 것을 말합니다.
+ M-<문자>  META쇠나 EDIT쇠 혹은 교체쇠(ALT)를 누른 채 <문자> 글쇠를
+          칩니다. META쇠, EDIT쇠 혹은 교체쇠가 없으면 나옴쇠(ESC)를
+          눌렀다 놓은 후 <문자> 글쇠를 칩니다.  나옴쇠는 <ESC>이라고
+          쓰기로 합니다.
+
+유의:  C-x C-c를 치면 이맥스를 종료할 수 있습니다.  (두 문자.)
+왼쪽 가장자리에 있는 문자 ">>"는 독자가 명령을 실행해 보도록
+하고자 함을 지시합니다. 예를 들어:
+<<help-with-tutorial이 시작하면서 여기에 빈 줄이 끼워졌음>>
+>> 다음 화면으로 움직이기 위해서는 C-v (다음 화면 보기)를 칩니다.
+       (해 보십시오. 제어쇠를 누른 채 v 글쇠를 치면 됩니다.)
+       지금부터는 한 화면을 다 읽었을 때마다 이렇게 해야 합니다.
+
+한 화면에서 다른 화면으로 움직일 때 두 줄이 겹친다는 것을
+유의하십시오; 이는 한 문장을 계속해서 읽을 수 있도록 하기
+위함입니다.
+
+첫번째로 익혀야 하는 것은 문장의 한 곳에서 다른 곳으로 움직이는
+것입니다.  C-v로 한 화면을 앞쪽으로 움직이는 것은 이미 알고 있습니다.
+뒷쪽으로 한 화면을 움직이기 위해서는 M-v를 (META쇠를 누른채 v 글쇠를
+치거나, META쇠나 EDIT쇠, 혹은 교체쇠가 없을 경우 <ESC>v를 칩니다).
+
+>> 몇 번 M-v와 C-v를 번갈아 쳐 보십시오.
+
+
+* 요약
 ------
 
-\e$(C4Y@=@:\e(B \e$(C@|C<H-8i@;\e(B \e$(C:84B5%\e(B \e$(C@/?kGQ\e(B \e$(C8m7I5i@T4O4Y\e(B:
+다음은 전체화면을 보는데 유용한 명령들입니다:
 
-       C-v     \e$(CGQ\e(B \e$(C@|C<\e(B \e$(CH-8i@;\e(B \e$(C>UBJ@87N\e(B \e$(C?rAw@N4Y\e(B
-       ESC v   \e$(CGQ\e(B \e$(C@|C<\e(B \e$(CH-8i@;\e(B \e$(C5^BJ@87N\e(B \e$(C?rAw@N4Y\e(B
-       C-l     \e$(CH-8i@;\e(B \e$(CAv?l0m\e(B \e$(C8p5g\e(B \e$(C1[?y@;\e(B \e$(C4Y=C\e(B \e$(CH-8i\e(B \e$(CG%=CGO8i<-\e(B
-                \e$(C1t:}@L0!\e(B \e$(C@V4B\e(B \e$(C1[?y@;\e(B \e$(CH-8i@G\e(B \e$(CA_>S?!\e(B \e$(C?@0T\e(B \e$(CGQ4Y\e(B.
-                (\e$(CA&>n<h\e(B-1\e$(C@L\e(B \e$(C>F4O6s\e(B \e$(CA&>n<h\e(B-L\e$(C@T4O4Y\e(B.)
+       C-v     한 전체 화면을 앞쪽으로 움직인다
+       ESC v   한 전체 화면을 뒷쪽으로 움직인다
+       C-l     화면을 지우고 모든 글월을 다시 화면 표시하면서
+                깜빡이가 있는 글월을 화면의 중앙에 오게 한다.
+                (제어쇠-1이 아니라 제어쇠-L입니다.)
 
->> \e$(C1t9Z@L8&\e(B \e$(CC#>F<-\e(B \e$(C1W\e(B \e$(C0w@G\e(B \e$(C1[?y@;\e(B \e$(C1b>oGO=J=C?@\e(B.
-   \e$(C1W8.0m4B\e(B C-l\e$(C@;\e(B \e$(CD!=J=C?@\e(B.
-   \e$(C1t9Z@L8&\e(B \e$(C4Y=C\e(B \e$(CC#>F<-\e(B \e$(C00@:\e(B \e$(C1[?y@L\e(B \e$(C1t9Z@L@G\e(B \e$(C1YC3?!\e(B \e$(C@V4B0!8&\e(B
-   \e$(CH.@NGO=J=C?@\e(B.
+>> 깜박이를 찾아서 그 곳의 글월을 기억하십시오.
+   그리고는 C-l을 치십시오.
+   깜박이를 다시 찾아서 같은 글월이 깜박이의 근처에 있는가를
+   확인하십시오.
 
 
-* \e$(C1b:;@{@N\e(B \e$(C1t9Z@L@G\e(B \e$(CA&>n\e(B
+* 기본적인 깜박이의 제어
 ------------------------
 
-\e$(CGQ\e(B \e$(CH-8i@;\e(B \e$(C?rAw@L4B\e(B \e$(C0M@:\e(B \e$(C@/?kGU4O4Y88\e(B \e$(CH-8i@G\e(B \e$(CGQ\e(B \e$(C1[?y3;?!<-\e(B \e$(C>n6;0T\e(B
-\e$(CA$GXAx\e(B \e$(C@e<R7N\e(B \e$(C?rAw@O\e(B \e$(C<v\e(B \e$(C@V0Z=@4O1n\e(B?
+한 화면을 움직이는 것은 유용합니다만 화면의 한 글월내에서 어떻게
+정해진 장소로 움직일 수 있겠습니까?
 
-\e$(C@L?!4B\e(B \e$(C8n0!Av\e(B \e$(C9f9}@L\e(B \e$(C@V=@4O4Y\e(B.  \e$(C0!@e\e(B \e$(C1Y:;@{@N\e(B \e$(C9f9}@:\e(B C-p, C-b, C-f
-\e$(C1W8.0m\e(B C-n \e$(C8m7I@;\e(B \e$(C;g?kGO4B\e(B \e$(C0M@T4O4Y\e(B.  \e$(C0"0"@:\e(B \e$(CH-8i?!<-\e(B \e$(CA$GXAx\e(B \e$(C9fGb@87N\e(B
-\e$(CGO3*@G\e(B \e$(C0!7ND-@L3*\e(B \e$(CGO3*@G\e(B \e$(C<<7ND->?\e(B \e$(C1t9Z@L8&\e(B \e$(C?rAw@T4O4Y\e(B.
-\e$(C?)1b?!\e(B \e$(C@L\e(B \e$(C3W0!Av\e(B \e$(C8m7I5i0z\e(B \e$(C1W\e(B \e$(C?rAw@L4B\e(B \e$(C9fGb@;\e(B \e$(C:8?)AV4B\e(B \e$(CG%0!\e(B \e$(C@V=@4O4Y\e(B.
+이에는 몇가지 방법이 있습니다.  가장 근본적인 방법은 C-p, C-b, C-f
+그리고 C-n 명령을 사용하는 것입니다.  각각은 화면에서 정해진 방향으로
+하나의 가로칸이나 하나의 세로칸씩 깜박이를 움직입니다.
+여기에 이 네가지 명령들과 그 움직이는 방향을 보여주는 표가 있습니다.
 
-                               \e$(C5^\e(B \e$(CAY\e(B, C-p
+                               뒷 줄, C-p
                                     :
                                     :
-       \e$(C5^BJ@87N\e(B, C-b .... \e$(CGv@g@G\e(B \e$(C1t9Z@L\e(B \e$(C@'D!\e(B .... \e$(C>UBJ@87N\e(B, C-f
+       뒷쪽으로, C-b .... 현재의 깜박이 위치 .... 앞쪽으로, C-f
                                     :
                                     :
-                               \e$(C>U\e(B \e$(CAY\e(B, C-n
+                               앞 줄, C-n
 
->> C-n\e$(C@L3*\e(B C-p\e$(C8&\e(B \e$(C=a<-\e(B \e$(C1t9Z@L8&\e(B \e$(C@'\e(B \e$(C55G%@G\e(B \e$(C0!?n5%\e(B \e$(CAY7N\e(B \e$(C?rAw@L=J=C?@\e(B.
-   \e$(C1W8.0m4B\e(B C-l\e$(C@;\e(B \e$(CCD<-\e(B \e$(C@L\e(B \e$(C55G%0!\e(B \e$(CH-8i@G\e(B \e$(CA_>S?!\e(B \e$(C@'D!GO4BAv8&\e(B
-   \e$(CH.@NGO=J=C?@\e(B.
+>> C-n이나 C-p를 써서 깜박이를 위 도표의 가운데 줄로 움직이십시오.
+   그리고는 C-l을 쳐서 이 도표가 화면의 중앙에 위치하는지를
+   확인하십시오.
 
-\e$(C@L\e(B \e$(C8m7I5i@:\e(B \e$(C1[@Z7N\e(B \e$(C1b>oGO4B\e(B \e$(C0M@L\e(B \e$(C=,?o\e(B \e$(C0M@T4O4Y\e(B: P\e$(C4B\e(B previous, N\e$(C@:\e(B
-next, B\e$(C4B\e(B backward, F\e$(C4B\e(B forward.  \e$(C@L5i@:\e(B \e$(C1b:;@{@N\e(B \e$(C1t9Z@L\e(B \e$(C@L5?\e(B
-\e$(C8m7I@87N<-\e(B, \e$(CGW;s\e(B \e$(C;g?kGO0T\e(B \e$(C5I\e(B \e$(C0M@L9G7N\e(B \e$(CAv1]\e(B \e$(C4g@e\e(B \e$(C8S8.\e(B \e$(C<S?!\e(B \e$(C@MGt\e(B \e$(C5N4B\e(B
-\e$(C0M@L\e(B \e$(CAA=@4O4Y\e(B.
+이 명령들은 글자로 기억하는 것이 쉬울 것입니다: P는 previous, N은
+next, B는 backward, F는 forward.  이들은 기본적인 깜박이 이동
+명령으로서, 항상 사용하게 될 것이므로 지금 당장 머리 속에 익혀 두는
+것이 좋습니다.
 
->> C-n\e$(C@;\e(B \e$(C?)7/9x\e(B \e$(CCD<-\e(B \e$(C1t9Z@L8&\e(B \e$(C@L\e(B \e$(CAY7N\e(B \e$(C0!A.\e(B \e$(C?@=J=C?@\e(B.
+>> C-n을 여러번 쳐서 깜박이를 이 줄로 가져 오십시오.
 
->> C-f\e$(C8&\e(B \e$(CCD<-\e(B \e$(CAY\e(B \e$(C>H?!<-\e(B \e$(C@L5?GX\e(B \e$(C:80m\e(B C-p\e$(C7N\e(B \e$(C5^\e(B \e$(CAY7N\e(B \e$(C0!=J=C?@\e(B.
-   \e$(C1t9Z@L0!\e(B \e$(CAY@G\e(B \e$(CA_0#?!\e(B \e$(C@V@;\e(B \e$(C6'\e(B C-p\e$(C0!\e(B \e$(C>n62\e(B \e$(C@[?k@;\e(B \e$(CGO4B0!\e(B \e$(C:8=J=C?@\e(B.
+>> C-f를 쳐서 줄 안에서 이동해 보고 C-p로 뒷 줄로 가십시오.
+   깜박이가 줄의 중간에 있을 때 C-p가 어떤 작용을 하는가 보십시오.
 
-\e$(C0"0"@G\e(B \e$(CAY@:\e(B \e$(C4Y@=?!\e(B \e$(C@L>nAv4B\e(B \e$(CAY0z\e(B \e$(C:P8.GO4B\e(B \e$(C;uAY\e(B \e$(C9.@Z7N\e(B \e$(C3!334O4Y\e(B.
-\e$(CFD@O@G\e(B \e$(C86Av87\e(B \e$(CAY@:\e(B \e$(C3!?!\e(B \e$(C;uAY\e(B \e$(C9.@Z0!\e(B \e$(C@V>n>_\e(B \e$(CGU4O4Y\e(B (\e$(C1W7/3*\e(B \e$(C@L8F=:4B\e(B \e$(C@L8&\e(B
-\e$(C?d18GOAv\e(B \e$(C>J=@4O4Y\e(B).
+각각의 줄은 다음에 이어지는 줄과 분리하는 새줄 문자로 끝납니다.
+파일의 마지막 줄은 끝에 새줄 문자가 있어야 합니다 (그러나 이맥스는 이를
+요구하지 않습니다).
 
->> \e$(CAY@L\e(B \e$(C=C@[GO4B\e(B \e$(C0w?!<-\e(B C-b\e$(C8&\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.  \e$(C1t9Z@L0!\e(B \e$(C5^\e(B \e$(CAY@G\e(B \e$(C3!@87N\e(B
-   \e$(C?rAw?)>_\e(B \e$(CGU4O4Y\e(B.  \e$(C1W\e(B \e$(C@L@/4B\e(B \e$(C1t9Z@L0!\e(B \e$(C;uAY\e(B \e$(C9.@Z8&\e(B \e$(C3Q>n<-\e(B \e$(C5^BJ@87N\e(B
-   \e$(C?rAw@L1b\e(B \e$(C6'9.@T4O4Y\e(B.
+>> 줄이 시작하는 곳에서 C-b를 쳐 보십시오.  깜박이가 뒷 줄의 끝으로
+   움직여야 합니다.  그 이유는 깜박이가 새줄 문자를 넘어서 뒷쪽으로
+   움직이기 때문입니다.
 
-C-f\e$(C55\e(B C-b\e$(CC373\e(B \e$(C;uAY\e(B \e$(C9.@Z8&\e(B \e$(C3Q>n<-\e(B \e$(C@L5?GR\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+C-f도 C-b처럼 새줄 문자를 넘어서 이동할 수 있습니다.
 
->> C-b\e$(C8&\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(C4u\e(B \e$(CCD<-\e(B \e$(C1t9Z@L0!\e(B \e$(C>n5p\e(B \e$(C@V4B0!8&\e(B \e$(C:80m\e(B C-f\e$(C7N\e(B \e$(C4Y=C\e(B \e$(CAY@G\e(B
-   \e$(C3!1nAv\e(B \e$(C@L5?GO=J=C?@\e(B.
-   \e$(C1W\e(B \e$(C4Y@=?!\e(B C-f\e$(C7N\e(B \e$(C4Y@=\e(B \e$(CAY7N\e(B \e$(C@L5?GO=J=C?@\e(B.
+>> C-b를 몇 번 더 쳐서 깜박이가 어디 있는가를 보고 C-f로 다시 줄의
+   끝까지 이동하십시오.
+   그 다음에 C-f로 다음 줄로 이동하십시오.
 
-\e$(CH-8i@G\e(B \e$(C2@4k1b3*\e(B \e$(C9X9Y4Z@;\e(B \e$(CAv3*CD<-\e(B \e$(C@L5?GO8i\e(B \e$(C0!@e@Z8.8&\e(B \e$(C9~>n3-\e(B \e$(C1[?y@:\e(B
-\e$(CH-8i\e(B \e$(C>H@87N\e(B \e$(C9P7A\e(B \e$(C5i>n\e(B \e$(C?I4O4Y\e(B.  \e$(C@L0M@;\e(B "\e$(C5N7g8;1b\e(B(scrolling)"\e$(C6s0m\e(B
-\e$(CGU4O4Y\e(B.  \e$(C@L4B\e(B \e$(C@L8F=:0!\e(B \e$(C1t9Z@L8&\e(B \e$(CH-8i\e(B \e$(C9[@87N\e(B \e$(C3;:83;Av\e(B \e$(C>J0m\e(B \e$(C1[?y@G\e(B \e$(CA$GXAx\e(B
-\e$(C@e<R7N\e(B \e$(C?rAw@O\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(CGU4O4Y\e(B.
+화면의 꼭대기나 밑바닥을 지나쳐서 이동하면 가장자리를 벗어난 글월은
+화면 안으로 밀려 들어 옵니다.  이것을 "두루말기(scrolling)"라고
+합니다.  이는 이맥스가 깜박이를 화면 밖으로 내보내지 않고 글월의 정해진
+장소로 움직일 수 있도록 합니다.
 
->> C-n\e$(C@87N\e(B \e$(C1t9Z@L8&\e(B \e$(CH-8i@G\e(B \e$(C9X9Y4Z\e(B \e$(C>F7!7N\e(B \e$(C?rAw?)<-\e(B, \e$(C>n62\e(B \e$(C@O@L\e(B
-   \e$(C9_;}GO4B0!8&\e(B \e$(C:8=J=C?@\e(B.
+>> C-n으로 깜박이를 화면의 밑바닥 아래로 움직여서, 어떤 일이
+   발생하는가를 보십시오.
 
-\e$(CGQ\e(B \e$(C9.@Z>?\e(B \e$(C@L5?GO4B\e(B \e$(C0M@L\e(B \e$(C4@8.8i\e(B, \e$(CGQ\e(B \e$(C398;>?\e(B \e$(C?rAw@O\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  M-f
-(Meta-f)\e$(C4B\e(B \e$(CGQ\e(B \e$(C398;>?\e(B \e$(C>UBJ@87N\e(B, M-b\e$(C4B\e(B \e$(CGQ\e(B \e$(C398;>?\e(B \e$(C5^BJ@87N\e(B \e$(C?rAw@T4O4Y\e(B.
+한 문자씩 이동하는 것이 느리면, 한 낱말씩 움직일 수 있습니다.  M-f
+(Meta-f)는 한 낱말씩 앞쪽으로, M-b는 한 낱말씩 뒷쪽으로 움직입니다.
 
->> M-f\e$(C3*\e(B M-b\e$(C8&\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> M-f나 M-b를 몇 번 쳐 보십시오.
 
-\e$(C398;@G\e(B \e$(CA_0#?!<-4B\e(B \e$(C398;@G\e(B \e$(C3!@87N\e(B \e$(C?rAw@T4O4Y\e(B.  \e$(C398;\e(B \e$(C;g@L@G\e(B \e$(C0x0#\e(B
-\e$(C9.@Z?!<-4B\e(B M-f\e$(C0!\e(B \e$(C4Y@=\e(B \e$(C398;@G\e(B \e$(C3!@87N\e(B \e$(C?rAw@T4O4Y\e(B.  M-b\e$(C4B\e(B \e$(C9]4k\e(B \e$(C9fGb@87N\e(B
-\e$(C00@:\e(B \e$(C@[?k@;\e(B \e$(CGU4O4Y\e(B.
+낱말의 중간에서는 낱말의 끝으로 움직입니다.  낱말 사이의 공간
+문자에서는 M-f가 다음 낱말의 끝으로 움직입니다.  M-b는 반대 방향으로
+같은 작용을 합니다.
 
->> \e$(CA_0#\e(B \e$(CA_0#?!\e(B C-f\e$(C?M\e(B C-b\e$(C8&\e(B \e$(CD!8i<-\e(B M-f\e$(C?M\e(B M-b\e$(C8&\e(B \e$(C8n\e(B \e$(C9x\e(B
-   \e$(C?,=@GO=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(C398;@G\e(B \e$(C3;:N3*\e(B \e$(CA_0#?!<-\e(B M-f\e$(C?M\e(B M-b\e$(C0!\e(B \e$(C>n62\e(B
-   \e$(C@[?k@;\e(B \e$(CGO4B0!8&\e(B \e$(C:<\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+>> 중간 중간에 C-f와 C-b를 치면서 M-f와 M-b를 몇 번
+   연습하십시오.  그러면 낱말의 내부나 중간에서 M-f와 M-b가 어떤
+   작용을 하는가를 볼 수 있습니다.
 
-C-f\e$(C?M\e(B C-b, M-f\e$(C?M\e(B M-b\e$(C@G\e(B \e$(C@/;g<:?!\e(B \e$(C@/@GGO=J=C?@\e(B.  \e$(C4k:N:P\e(B Meta \e$(C9.@Z4B\e(B
-\e$(C>p>n0!\e(B \e$(CA$@GGO4B\e(B \e$(C4\@'\e(B(\e$(C398;\e(B, \e$(C9.@e\e(B, \e$(C4\6t\e(B)\e$(C@G\e(B \e$(C@[5??!\e(B \e$(C;g?k5G0m\e(B \e$(CA&>n\e(B
-\e$(C9.@Z4B\e(B \e$(CFmA}GO4B\e(B \e$(C0M0z4B\e(B \e$(C0|0h>x4B\e(B \e$(C1b:;\e(B \e$(C4\@'\e(B(\e$(C9.@Z\e(B, \e$(CAY\e(B \e$(C5n5n\e(B)\e$(C?!\e(B
-\e$(C;g?k5K4O4Y\e(B.
+C-f와 C-b, M-f와 M-b의 유사성에 유의하십시오.  대부분 Meta 문자는
+언어가 정의하는 단위(낱말, 문장, 단락)의 작동에 사용되고 제어
+문자는 편집하는 것과는 관계없는 기본 단위(문자, 줄 등등)에
+사용됩니다.
 
-\e$(C4Y@=@:\e(B \e$(CAY0z\e(B \e$(C9.@e\e(B \e$(C;g@L?!\e(B \e$(C@{?k5G4B\e(B \e$(C@/;g<:@T4O4Y\e(B: C-a\e$(C?M\e(B C-e\e$(C4B\e(B \e$(CAY@G\e(B
-\e$(C=C@[@L3*\e(B \e$(C3!@87N\e(B \e$(C?rAw@L0m\e(B, M-a\e$(C?M\e(B M-e\e$(C4B\e(B \e$(C9.@e@G\e(B \e$(C=C@[@L3*\e(B \e$(C3!@87N\e(B
-\e$(C?rAw@T4O4Y\e(B.
+다음은 줄과 문장 사이에 적용되는 유사성입니다: C-a와 C-e는 줄의
+시작이나 끝으로 움직이고, M-a와 M-e는 문장의 시작이나 끝으로
+움직입니다.
 
->> C-a\e$(C8&\e(B \e$(C5N<<9x\e(B \e$(CD#\e(B \e$(CHD\e(B C-e\e$(C8&\e(B \e$(C5N<<9x\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
-   M-a\e$(C8&\e(B \e$(C5N<<9x\e(B \e$(CD#\e(B \e$(CHD\e(B M-e\e$(C8&\e(B \e$(C5N<<9x\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> C-a를 두세번 친 후 C-e를 두세번 쳐 보십시오.
+   M-a를 두세번 친 후 M-e를 두세번 쳐 보십시오.
 
-C-a\e$(C4B\e(B \e$(C5N\e(B \e$(C9x\e(B \e$(C@L;s\e(B \e$(C9]:9GX55\e(B \e$(C>F9+71\e(B \e$(C@[?k@;\e(B \e$(CGOAv\e(B \e$(C>JAv88\e(B M-a\e$(C4B\e(B \e$(CGQ\e(B \e$(C9.@e@;\e(B
-\e$(C4u\e(B \e$(C5Z7N\e(B \e$(C?rAw@L4B\e(B \e$(C0M?!\e(B \e$(C@/@GGO=J=C?@\e(B.  \e$(C@L4B\e(B \e$(C:q7O\e(B \e$(C@/;g<:@:\e(B \e$(C>F4OAv88\e(B
-\e$(C4g?,GQ\e(B \e$(C;g=G7N\e(B \e$(C?)0\A}4O4Y\e(B.
+C-a는 두 번 이상 반복해도 아무런 작용을 하지 않지만 M-a는 한 문장을
+더 뒤로 움직이는 것에 유의하십시오.  이는 비록 유사성은 아니지만
+당연한 사실로 여겨집니다.
 
-\e$(C9.<-?!\e(B \e$(C@V4B\e(B \e$(C1t9Z@L@G\e(B \e$(C@'D!4B\e(B "\e$(CA!\e(B(point)"\e$(C@L6s0m\e(B \e$(C:N8(4O4Y\e(B.  \e$(C:N?,GO@Z8i\e(B,
-\e$(C1t9Z@L4B\e(B \e$(CH-8i;s?!<-\e(B, \e$(C9.<-\e(B \e$(C3;?!\e(B \e$(CA!@L\e(B \e$(C>n5p?!\e(B \e$(C@'D!GO0m\e(B \e$(C@V4B0!8&\e(B
-\e$(C:8?)A]4O4Y\e(B.
+문서에 있는 깜박이의 위치는 "점(point)"이라고 부릅니다.  부연하자면,
+깜박이는 화면상에서, 문서 내에 점이 어디에 위치하고 있는가를
+보여줍니다.
 
-\e$(C4Y@=@:\e(B \e$(C398;0z\e(B \e$(C9.@e\e(B \e$(C4\@'@G\e(B \e$(C@L5?@;\e(B \e$(CFwGTGQ\e(B \e$(C4\<xGQ\e(B \e$(C1t9Z@L\e(B \e$(C@L5?\e(B \e$(C@[5?@;\e(B
-\e$(C?d>`GO?4=@4O4Y\e(B.
+다음은 낱말과 문장 단위의 이동을 포함한 단순한 깜박이 이동 작동을
+요약하였습니다.
 
-       C-f     \e$(CGQ\e(B \e$(C9.@Z\e(B \e$(C>UBJ@87N\e(B \e$(C?rAw@N4Y\e(B
-       C-b     \e$(CGQ\e(B \e$(C9.@Z\e(B \e$(C5^BJ@87N\e(B \e$(C?rAw@N4Y\e(B
+       C-f     한 문자 앞쪽으로 움직인다
+       C-b     한 문자 뒷쪽으로 움직인다
 
-       M-f     \e$(CGQ\e(B \e$(C4\>n\e(B \e$(C>UBJ@87N\e(B \e$(C?rAw@N4Y\e(B
-       M-b     \e$(CGQ\e(B \e$(C4\>n\e(B \e$(C5^BJ@87N\e(B \e$(C?rAw@N4Y\e(B
+       M-f     한 단어 앞쪽으로 움직인다
+       M-b     한 단어 뒷쪽으로 움직인다
 
-       C-n     \e$(C>U\e(B \e$(CAY7N\e(B \e$(C?rAw@N4Y\e(B
-       C-p     \e$(C5^\e(B \e$(CAY7N\e(B \e$(C?rAw@N4Y\e(B
+       C-n     앞 줄로 움직인다
+       C-p     뒷 줄로 움직인다
 
-       C-a     \e$(CAY@G\e(B \e$(C=C@[@87N\e(B \e$(C?rAw@N4Y\e(B
-       C-e     \e$(CAY@G\e(B \e$(C3!@87N\e(B \e$(C?rAw@N4Y\e(B
+       C-a     줄의 시작으로 움직인다
+       C-e     줄의 끝으로 움직인다
 
-       M-a     \e$(C9.@e@G\e(B \e$(C=C@[@87N\e(B \e$(C?rAw@N4Y\e(B
-       M-e     \e$(C9.@e@G\e(B \e$(C3!@87N\e(B \e$(C?rAw@N4Y\e(B
+       M-a     문장의 시작으로 움직인다
+       M-e     문장의 끝으로 움직인다
 
->> \e$(C@L\e(B \e$(C8p5g\e(B \e$(C8m7I@;\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(C?,=@GX\e(B \e$(C:8=J=C?@\e(B.  \e$(C@L\e(B \e$(C8m7I5i@:\e(B \e$(C0!@e\e(B \e$(C@ZAV\e(B
-   \e$(C;g?k5G4B\e(B \e$(C8m7I5i@T4O4Y\e(B.
+>> 이 모든 명령을 몇 번 연습해 보십시오.  이 명령들은 가장 자주
+   사용되는 명령들입니다.
 
-\e$(C1t9Z@L8&\e(B \e$(C?rAw@L4B\e(B \e$(C4Y8%\e(B \e$(C5N0!Av\e(B \e$(CA_?dGQ\e(B \e$(C8m7I@:\e(B \e$(C@|\e(B \e$(C9.<-@G\e(B \e$(C=C@[@87N\e(B
-\e$(C?rAw@L4B\e(B M-< (Meta\e$(C<h\e(B \e$(C4u@[@=\e(B \e$(C1[<h\e(B)\e$(C?M\e(B \e$(C@|\e(B \e$(C9.<-@G\e(B \e$(C3!@87N\e(B \e$(C?rAw@L4B\e(B M->
-(Meta\e$(C<h\e(B \e$(C4uE-\e(B \e$(C1[<h\e(B)\e$(C@T4O4Y\e(B.
+깜박이를 움직이는 다른 두가지 중요한 명령은 전 문서의 시작으로
+움직이는 M-< (Meta쇠 더작음 글쇠)와 전 문서의 끝으로 움직이는 M->
+(Meta쇠 더큼 글쇠)입니다.
 
->> M-<\e$(C8&\e(B \e$(CAv1]\e(B \e$(CCD<-\e(B \e$(CAvD'<-@G\e(B \e$(C=C@[@87N\e(B \e$(C?rAw?)\e(B \e$(C:8=J=C?@\e(B. \e$(C1W8.0m4B\e(B C-v\e$(C8&\e(B
-   \e$(C9]:9GX<-\e(B \e$(C4Y=C\e(B \e$(C?)1b7N\e(B \e$(C59>F\e(B \e$(C?@=J=C?@\e(B.
+>> M-<를 지금 쳐서 지침서의 시작으로 움직여 보십시오. 그리고는 C-v를
+   반복해서 다시 여기로 돌아 오십시오.
 
->> M->\e$(C8&\e(B \e$(CCD<-\e(B \e$(CAvD'<-@G\e(B \e$(C3!@87N\e(B \e$(C0!=J=C?@\e(B. \e$(C1W8.0m4B\e(B M-v\e$(C8&\e(B \e$(C9]:9GX<-\e(B \e$(C4Y=C\e(B
-   \e$(C?)1b7N\e(B \e$(C59>F\e(B \e$(C?@=J=C?@\e(B.
+>> M->를 쳐서 지침서의 끝으로 가십시오. 그리고는 M-v를 반복해서 다시
+   여기로 돌아 오십시오.
 
-\e$(C4\8;1b?!\e(B \e$(CH-;lG%\e(B \e$(C1[<h0!\e(B \e$(C@V@88i\e(B \e$(CH-;lG%\e(B \e$(C1[<h8&\e(B \e$(C=a<-\e(B \e$(C1t9Z@L8&\e(B \e$(C?rAw@O\e(B \e$(C<v55\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(C4Y@=0z\e(B \e$(C00@:\e(B \e$(C<<0!Av\e(B \e$(C@L@/7N\e(B C-b, C-f, C-n \e$(C1W8.0m\e(B C-p\e$(C8&\e(B \e$(C>24B\e(B
-\e$(C0M@;\e(B \e$(C1G@eGU4O4Y\e(B.  \e$(CC9B07N\e(B, \e$(C@L5i@:\e(B \e$(C8p5g\e(B \e$(CA>7y@G\e(B \e$(C4\8;1b?!<-\e(B \e$(C;g?kGR\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(C5QB07N\e(B, \e$(C@O4\\e(B \e$(C@L8F=:8&\e(B \e$(C>24B\e(B \e$(C0M?!\e(B \e$(C@M<wGX\e(B \e$(CAv8i\e(B, \e$(C@L71\e(B \e$(CA&>n\e(B
-\e$(C9.@Z@;\e(B \e$(CD!4B\e(B \e$(C0M@L\e(B \e$(CH-;lG%\e(B \e$(C1[<h8&\e(B \e$(CD!4B\e(B \e$(C0M:84Y\e(B \e$(CHN>@\e(B \e$(C:|8#4Y4B\e(B \e$(C0M@;\e(B \e$(C>K0T\e(B \e$(C5I\e(B
-\e$(C0M@T4O4Y\e(B (\e$(CE8@Z\e(B \e$(C@'D!?!<-\e(B \e$(C<U@;\e(B \e$(C8V8.\e(B \e$(C?rAw@O\e(B \e$(CGJ?d0!\e(B \e$(C>x1b\e(B \e$(C6'9.?!\e(B).  \e$(C<BB07N\e(B,
-\e$(C@O4\\e(B \e$(C@L71\e(B \e$(CA&>n\e(B \e$(C9.@Z\e(B \e$(C8m7I@;\e(B \e$(C>24B\e(B \e$(C=@0|@L\e(B \e$(C5i8i\e(B \e$(C1t9Z@L8&\e(B \e$(C?rAw@L4B\e(B \e$(C4Y8%\e(B
-\e$(C0m1^\e(B \e$(C8m7I5i55\e(B \e$(C=10T\e(B \e$(C9h?o\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+단말기에 화살표 글쇠가 있으면 화살표 글쇠를 써서 깜박이를 움직일 수도
+있습니다.  다음과 같은 세가지 이유로 C-b, C-f, C-n 그리고 C-p를 쓰는
+것을 권장합니다.  첫째로, 이들은 모든 종류의 단말기에서 사용할 수
+있습니다.  둘째로, 일단 이맥스를 쓰는 것에 익숙해 지면, 이런 제어
+문자을 치는 것이 화살표 글쇠를 치는 것보다 훨씬 빠르다는 것을 알게 될
+것입니다 (타자 위치에서 손을 멀리 움직일 필요가 없기 때문에).  셋째로,
+일단 이런 제어 문자 명령을 쓰는 습관이 들면 깜박이를 움직이는 다른
+고급 명령들도 쉽게 배울 수 있습니다.
 
-\e$(C4k:N:P@G\e(B \e$(C@L8F=:\e(B \e$(C8m7I?!4B\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B \e$(CA$GXAY\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B; \e$(C@L4B\e(B \e$(C4k:N:P\e(B,
-\e$(C8m7I@G\e(B \e$(C9]:9\e(B \e$(CH=<v8&\e(B \e$(CA$GX\e(B \e$(CA]4O4Y\e(B.  \e$(C@L780T\e(B \e$(C8m7I?!\e(B \e$(C9]:9\e(B \e$(CH=<v8&\e(B \e$(CA$GXAV4B\e(B
-\e$(C9f9}@:\e(B \e$(C8m7I@;\e(B \e$(CD!1b\e(B \e$(C@|?!\e(B C-u\e$(C?M\e(B \e$(C<}@Z8&\e(B \e$(CD!4B\e(B \e$(C0M@87N\e(B \e$(C@L7g>nA}4O4Y\e(B.  META\e$(C<h\e(B
-(\e$(CH$@:\e(B EDIT\e$(C<h3*\e(B \e$(C13C<<h\e(B)\e$(C0!\e(B \e$(C@V@88i\e(B \e$(C4Y8%\e(B \e$(C9f9}@87N\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B \e$(C@T7BGR\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B: MEAT\e$(C<h8&\e(B \e$(C4)8%\e(B \e$(CC$\e(B \e$(C<}@Z8&\e(B \e$(CD!=J=C?@\e(B.  C-u \e$(C9f9}@:\e(B \e$(C>n62\e(B
-\e$(C4\8;1b?!<-55\e(B \e$(C;g?kGR\e(B \e$(C<v\e(B \e$(C@V1b\e(B \e$(C6'9.?!\e(B \e$(C@L8&\e(B \e$(C;g?kGO1b\e(B \e$(C9Y6x4O4Y\e(B.
+대부분의 이맥스 명령에는 숫자 인수를 정해줄 수 있습니다; 이는 대부분,
+명령의 반복 횟수를 정해 줍니다.  이렇게 명령에 반복 횟수를 정해주는
+방법은 명령을 치기 전에 C-u와 숫자를 치는 것으로 이루어집니다.  META쇠
+(혹은 EDIT쇠나 교체쇠)가 있으면 다른 방법으로 숫자 인수를 입력할 수
+있습니다: MEAT쇠를 누른 채 숫자를 치십시오.  C-u 방법은 어떤
+단말기에서도 사용할 수 있기 때문에 이를 사용하기 바랍니다.
 
-\e$(C?98&\e(B \e$(C5i>n\e(B, C-u 8 C-f\e$(C4B\e(B \e$(C9.@Z\e(B \e$(C?)4|03@G\e(B \e$(C>UBJ@87N\e(B \e$(C?rAw@T4O4Y\e(B.
+예를 들어, C-u 8 C-f는 문자 여덟개의 앞쪽으로 움직입니다.
 
->> \e$(CGQ\e(B \e$(C9x@G\e(B \e$(C8m7I@87N\e(B \e$(C1t9Z@L0!\e(B \e$(C@L\e(B \e$(CAY\e(B \e$(C1YC3?!\e(B \e$(C?@557O\e(B, \e$(C<}@Z\e(B \e$(C@N<v0!\e(B \e$(CAV>nAx\e(B
-   C-n \e$(CH$@:\e(B C-p\e$(C8&\e(B \e$(C=C55GX\e(B \e$(C:8=J=C?@\e(B.
+>> 한 번의 명령으로 깜박이가 이 줄 근처에 오도록, 숫자 인수가 주어진
+   C-n 혹은 C-p를 시도해 보십시오.
 
-\e$(C4k:N:P@G\e(B \e$(C8m7I5i@:\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B \e$(C9]:9\e(B \e$(CH=<v7N\e(B \e$(C;g?kGOAv88\e(B \e$(C0f?l?!\e(B \e$(C5{6s<-4B\e(B
-\e$(C?9?\@{@N\e(B \e$(C8m7I5i@L\e(B \e$(C4Y8%\e(B \e$(C?k557N\e(B \e$(C>5\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  C-v\e$(C?M\e(B M-v\e$(C4B\e(B \e$(C@L71\e(B \e$(C?9?\?!\e(B
-\e$(C<SGU4O4Y\e(B.  \e$(C@N<v8&\e(B \e$(CAV8i\e(B \e$(C1W\e(B \e$(C88E-@G\e(B \e$(CH-8i\e(B \e$(C<v8&\e(B \e$(C5N7g8;1b\e(B \e$(CGOAv\e(B \e$(C>J0m\e(B \e$(C1W\e(B
-\e$(C88E-@G\e(B \e$(CAY@;\e(B \e$(CH-8i@G\e(B \e$(C@'3*\e(B \e$(C>F7!7N\e(B \e$(C5N7g8;1b\e(B \e$(CGU4O4Y\e(B.  \e$(CAo\e(B, C-u 4 C-v\e$(C4B\e(B
-\e$(CH-8i@;\e(B 4 \e$(CAY\e(B \e$(C88E-\e(B \e$(C5N7g8;1b\e(B \e$(CGU4O4Y\e(B.
+대부분의 명령들은 숫자 인수를 반복 횟수로 사용하지만 경우에 따라서는
+예외적인 명령들이 다른 용도로 쓸 수 있습니다.  C-v와 M-v는 이런 예외에
+속합니다.  인수를 주면 그 만큼의 화면 수를 두루말기 하지 않고 그
+만큼의 줄을 화면의 위나 아래로 두루말기 합니다.  즉, C-u 4 C-v는
+화면을 4 줄 만큼 두루말기 합니다.
 
->> \e$(C@LA&\e(B C-u 8 C-v\e$(C8&\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> 이제 C-u 8 C-v를 쳐 보십시오.
 
-\e$(C@L7N<-\e(B \e$(CH-8i@:\e(B 8 \e$(CAY@L\e(B \e$(C@'7N\e(B \e$(C5N7g8;1b\e(B \e$(C5F@;\e(B \e$(C0M@T4O4Y\e(B.  \e$(C4Y=C\e(B \e$(C9X@87N\e(B
-\e$(C5N7g8;1b\e(B \e$(CGO1b\e(B \e$(C@'GX<-4B\e(B \e$(C@N<v8&\e(B M-v\e$(C?!\e(B \e$(CA]4O4Y\e(B.
+이로서 화면은 8 줄이 위로 두루말기 됐을 것입니다.  다시 밑으로
+두루말기 하기 위해서는 인수를 M-v에 줍니다.
 
-X11\e$(C3*\e(B MS-Windows\e$(C?M\e(B \e$(C00@:\e(B \e$(CC"\e(B \e$(C1b4I\e(B \e$(CH-8i\e(B \e$(CG%=C8&\e(B \e$(C>5\e(B \e$(C0f?l?!4B\e(B \e$(C@L8F=:\e(B \e$(CC"@G\e(B
-\e$(C?^Fm?!\e(B \e$(C5N7g8;1b\e(B \e$(C874k6s0m\e(B \e$(C:R8.?l4B\e(B \e$(C1b4Y6u\e(B \e$(C;g0"G|\e(B \e$(C8p>g@G\e(B \e$(CEM0!\e(B \e$(C@V@;\e(B
-\e$(C0M@T4O4Y\e(B.  \e$(C@L\e(B \e$(C5N7g8;1b\e(B \e$(C874k?!\e(B \e$(C4Y6wAc8&\e(B \e$(C5~1oGT@87N=a\e(B \e$(C1[?y@;\e(B \e$(C5N7g8;1b\e(B \e$(CGR\e(B
-\e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+X11나 MS-Windows와 같은 창 기능 화면 표시를 쓸 경우에는 이맥스 창의
+왼편에 두루말기 막대라고 불리우는 기다란 사각형 모양의 터가 있을
+것입니다.  이 두루말기 막대에 다람쥐를 딸깍함으로써 글월을 두루말기 할
+수 있습니다.
 
->> \e$(C5N7g8;1b\e(B \e$(C874k\e(B \e$(C3;?!<-\e(B \e$(C4+?!\e(B \e$(C6g4B\e(B \e$(C:N:P@G\e(B \e$(C2@4k1b8&\e(B \e$(CA_0#\e(B \e$(C4\C_7N\e(B \e$(C4-7/\e(B
-   \e$(C:8=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(C1[?y@:\e(B \e$(C4Y6wAc7N\e(B \e$(C4)8%\e(B \e$(C@'D!?!\e(B \e$(C5{8%\e(B \e$(C>g\e(B \e$(C88E-@G\e(B \e$(C@'D!8&\e(B
-   \e$(C@'3*\e(B \e$(C>F7!7N\e(B \e$(C5N7g8;1b\e(B \e$(C5I\e(B \e$(C0M@T4O4Y\e(B.
+>> 두루말기 막대 내에서 눈에 띄는 부분의 꼭대기를 중간 단추로 눌러
+   보십시오.  그러면 글월은 다람쥐로 누른 위치에 따른 양 만큼의 위치를
+   위나 아래로 두루말기 될 것입니다.
 
->> \e$(C4Y6wAc8&\e(B \e$(CA_0#\e(B \e$(C4\C_0!\e(B \e$(C4-7/Ax\e(B \e$(C;sEB?!<-\e(B \e$(C@'3*\e(B \e$(C>F7!7N\e(B \e$(C?rAw?)\e(B \e$(C:8=J=C?@\e(B.
-   \e$(C1W7/8i\e(B \e$(C1[?y@L\e(B \e$(C4Y6wAc0!\e(B \e$(C?rAw@L4B4k7N\e(B \e$(C@'3*\e(B \e$(C>F7!7N\e(B \e$(C5N7g8;1b\e(B \e$(C5I\e(B
-   \e$(C0M@T4O4Y\e(B.
+>> 다람쥐를 중간 단추가 눌러진 상태에서 위나 아래로 움직여 보십시오.
+   그러면 글월이 다람쥐가 움직이는대로 위나 아래로 두루말기 될
+   것입니다.
 
 
-* \e$(C@L8F=:@G\e(B \e$(C@[5?@L\e(B \e$(C4\@}5I\e(B \e$(C6'\e(B
+* 이맥스의 작동이 단절될 때
 ---------------------------
 
-\e$(C8m7I@;\e(B \e$(CAV>n55\e(B \e$(C@L8F=:0!\e(B \e$(C9]@@@;\e(B \e$(CGOAv\e(B \e$(C>J@;\e(B \e$(C6'4B\e(B C-g\e$(C8&\e(B \e$(CCD<-\e(B \e$(C@L8F=:@G\e(B \e$(C@[5?@;\e(B
-\e$(C>H@|GO0T\e(B \e$(CA$Av=CE3\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  C-g\e$(C4B\e(B \e$(C=GG`GO4B5%\e(B \e$(C3J9+\e(B \e$(C?@7#\e(B \e$(C=C0#@L\e(B
-\e$(C0I8.4B\e(B \e$(C8m7I@;\e(B \e$(CA_Av=CE3\e(B \e$(C6'?!\e(B \e$(C;g?k5I\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+명령을 주어도 이맥스가 반응을 하지 않을 때는 C-g를 쳐서 이맥스의 작동을
+안전하게 정지시킬 수 있습니다.  C-g는 실행하는데 너무 오랜 시간이
+걸리는 명령을 중지시킬 때에 사용될 수 있습니다.
 
-C-g\e$(C4B\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B \e$(C9+=CGX\e(B \e$(C9v81\e(B \e$(C6'3*\e(B \e$(C>n62\e(B \e$(C8m7I@;\e(B \e$(C=C@[GO?4Av88\e(B \e$(C=GG`=CE00m\e(B
-\e$(C=MAv\e(B \e$(C>J@;\e(B \e$(C6'?!55\e(B \e$(C;g?k5I\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+C-g는 숫자 인수를 무시해 버릴 때나 어떤 명령을 시작하였지만 실행시키고
+싶지 않을 때에도 사용될 수 있습니다.
 
->> C-u 100\e$(C@;\e(B \e$(CCD<-\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B 100\e$(C@87N\e(B \e$(CGO0m\e(B \e$(C3-\e(B \e$(CHD\e(B C-g\e$(C8&\e(B \e$(CCD\e(B
-   \e$(C:8=J=C?@\e(B.  \e$(C1W8.0m\e(B \e$(C3*<-\e(B C-f\e$(C8&\e(B \e$(CD(4O4Y\e(B.  \e$(C@N<v4B\e(B C-g\e$(C7N=a\e(B \e$(C>x>]@=@87N\e(B \e$(CGQ\e(B
-   \e$(C9.@Z88\e(B \e$(C>U@87N\e(B \e$(C?rAw?)>_\e(B \e$(CGU4O4Y\e(B.
+>> C-u 100을 쳐서 숫자 인수를 100으로 하고 난 후 C-g를 쳐
+   보십시오.  그리고 나서 C-f를 칩니다.  인수는 C-g로써 없앴음으로 한
+   문자만 앞으로 움직여야 합니다.
 
 
-* \e$(C9+4I\e(B \e$(C8m7I\e(B
+* 무능 명령
 -----------
 
-\e$(C>n62\e(B \e$(C@L8F=:\e(B \e$(C8m7I@:\e(B "\e$(CGc?k5GAv\e(B \e$(C>J>F<-\e(B"(disabled) \e$(CCJ:8@Z0!\e(B \e$(C@_8x\e(B \e$(C;g?kGOAv\e(B
-\e$(C>J557O\e(B \e$(C5G>n\e(B \e$(C@V=@4O4Y\e(B.
+어떤 이맥스 명령은 "허용되지 않아서"(disabled) 초보자가 잘못 사용하지
+않도록 되어 있습니다.
 
-\e$(C@L71\e(B \e$(C9+4I\e(B \e$(C8m7I@;\e(B \e$(C>28i\e(B, \e$(C@L8F=:4B\e(B \e$(C@L\e(B \e$(C8m7I@L\e(B \e$(C9+>y@L>z@88g\e(B, \e$(C@L\e(B \e$(C8m7I@;\e(B \e$(C1W3I\e(B
-\e$(C1W4k7N\e(B \e$(C=GG`GR\e(B \e$(C0M@NAv8&\e(B \e$(C90>n\e(B \e$(C:84B\e(B \e$(C>K828;@;\e(B \e$(CH-8i\e(B \e$(CG%=CGU4O4Y\e(B.
+이런 무능 명령을 쓰면, 이맥스는 이 명령이 무엇이었으며, 이 명령을 그냥
+그대로 실행할 것인지를 물어 보는 알림말을 화면 표시합니다.
 
-\e$(C?x7!0!\e(B \e$(C@L\e(B \e$(C8m7I@;\e(B \e$(C>20m@Z\e(B \e$(CGO?44Y8i\e(B, \e$(C90@=?!\e(B \e$(C4kGX\e(B \e$(C;g@L\e(B \e$(C9.@Z\e(B(Space)\e$(C8&\e(B \e$(CCD<-\e(B
-\e$(C4dGO=J=C?@\e(B.  \e$(C:8Ek@:\e(B \e$(C9+4I\e(B \e$(C8m7I@;\e(B \e$(C=GG`=CE0Av\e(B \e$(C>J1b\e(B \e$(C@'GX\e(B \e$(C90@=?!\e(B "n"\e$(C@87N\e(B
-\e$(C4dGU4O4Y\e(B.
+원래가 이 명령을 쓰고자 하였다면, 물음에 대해 사이 문자(Space)를 쳐서
+답하십시오.  보통은 무능 명령을 실행시키지 않기 위해 물음에 "n"으로
+답합니다.
 
->> C-x C-l (\e$(C9+4I\e(B \e$(C8m7I@G\e(B \e$(CGO3*\e(B)\e$(C@;\e(B \e$(CD#\e(B \e$(CHD\e(B n\e$(C@87N\e(B \e$(C90@=?!\e(B \e$(C4dGO=J=C?@\e(B.
+>> C-x C-l (무능 명령의 하나)을 친 후 n으로 물음에 답하십시오.
 
 
-* \e$(CC"\e(B
+* 
 ----
 
-\e$(C@L8F=:4B\e(B \e$(C?)7/\e(B \e$(CC"@;\e(B \e$(C0!Az\e(B \e$(C<v\e(B \e$(C@V@88g\e(B \e$(C0"0"@:\e(B \e$(C5{7N\e(B \e$(C9.<-8&\e(B \e$(CH-8i\e(B \e$(CG%=CGU4O4Y\e(B.
-\e$(C4YA_\e(B \e$(CC"@;\e(B \e$(C>24B\e(B \e$(C9f9}?!\e(B \e$(C4kGX<-4B\e(B \e$(C3*A_?!\e(B \e$(C<38mGO1b7N\e(B \e$(CGU4O4Y\e(B.  \e$(CAv1]@:\e(B
-\e$(C4Y8%\e(B \e$(CC"@;\e(B \e$(C>x>V0m\e(B \e$(C?x7!?!\e(B \e$(C@V4x\e(B \e$(CC"\e(B \e$(CGO3*7N\e(B \e$(C59>F0!\e(B \e$(CFmA}@;\e(B \e$(C0h<SGO4B\e(B \e$(C9f9}88@;\e(B
-\e$(C<38mGU4O4Y\e(B.  \e$(C0#4\GU4O4Y\e(B:
+이맥스는 여러 창을 가질 수 있으며 각각은 따로 문서를 화면 표시합니다.
+다중 창을 쓰는 방법에 대해서는 나중에 설명하기로 합니다.  지금은
+다른 창을 없애고 원래에 있던 창 하나로 돌아가 편집을 계속하는 방법만을
+설명합니다.  간단합니다:
 
-       C-x 1   \e$(CC"@;\e(B \e$(CGO3*7N\e(B \e$(C885i1b\e(B (\e$(CAo\e(B, \e$(C4Y8%\e(B \e$(CC"5i@;\e(B \e$(C>x>[4O4Y\e(B).
+       C-x 1   창을 하나로 만들기 (즉, 다른 창들을 없앱니다).
 
-\e$(C@L0M@:\e(B \e$(CA&>n<h\e(B-x \e$(C4Y@=?!\e(B \e$(C<}@Z\e(B \e$(C1[<h\e(B 1\e$(C@T4O4Y\e(B.  C-x 1\e$(C@:\e(B \e$(C1t9Z@L0!\e(B \e$(C@V4B\e(B
-\e$(CC"@;\e(B \e$(CH.@eGX<-\e(B \e$(C@|C<\e(B \e$(CH-8i@;\e(B \e$(C>2557O\e(B \e$(CGU4O4Y\e(B.  \e$(C4Y8%\e(B \e$(CC"5i@:\e(B \e$(CAv?vA}4O4Y\e(B.
+이것은 제어쇠-x 다음에 숫자 글쇠 1입니다.  C-x 1은 깜박이가 있는
+창을 확장해서 전체 화면을 쓰도록 합니다.  다른 창들은 지워집니다.
 
->> \e$(C1t9Z@L8&\e(B \e$(C@L\e(B \e$(CAY7N\e(B \e$(C?rAw@N\e(B \e$(CHD\e(B C-u 0 C-l\e$(C@;\e(B \e$(CD!=J=C?@\e(B.
->> \e$(CA&>n<h\e(B-h k \e$(CA&>n<h\e(B-f\e$(C8&\e(B \e$(CD!=J=C?@\e(B.
-   \e$(CA&>n<h\e(B-f \e$(C8m7I?!\e(B \e$(C4kGQ\e(B \e$(C9.<-H-8&\e(B \e$(CH-8i\e(B \e$(CG%=CGO1b\e(B \e$(C@'GX\e(B \e$(C;u\e(B \e$(CC"@L\e(B
-   \e$(C3*E83*8i<-\e(B \e$(C@L\e(B \e$(CC"@L\e(B \e$(C>n6;0T\e(B \e$(CAY>n\e(B \e$(C5e4B0!8&\e(B \e$(C0|B{GO=J=C?@\e(B.
+>> 깜박이를 이 줄로 움직인 후 C-u 0 C-l을 치십시오.
+>> 제어쇠-h k 제어쇠-f를 치십시오.
+   제어쇠-f 명령에 대한 문서화를 화면 표시하기 위해 새 창이
+   나타나면서 이 창이 어떻게 줄어 드는가를 관찰하십시오.
 
->> C-x 1\e$(C@;\e(B \e$(CCD<-\e(B \e$(C9.<-H-\e(B \e$(C8q7O\e(B \e$(C@[<:\e(B \e$(CC"@L\e(B \e$(C>n6;0T\e(B \e$(C;g6sAv4B0!8&\e(B \e$(C:8=J=C?@\e(B.
+>> C-x 1을 쳐서 문서화 목록 작성 창이 어떻게 사라지는가를 보십시오.
 
-\e$(C@L\e(B \e$(C8m7I@:\e(B \e$(C5N\e(B \e$(C9.@Z7N\e(B \e$(C18<:5G>n\e(B \e$(C@V4Y4B\e(B \e$(CA!?!<-\e(B \e$(CAv1]1nAv\e(B \e$(C9h?n\e(B \e$(C4Y8%\e(B \e$(C8m7I5i0z\e(B
-\e$(C4Y8(4O4Y\e(B.  \e$(C=C@[@:\e(B \e$(CA&>n<h\e(B-x\e$(C7N\e(B \e$(CGU4O4Y\e(B.  \e$(CA&>n<h\e(B-x\e$(C7N\e(B \e$(C=C@[GO4B\e(B \e$(C8m7I5i@:\e(B
-\e$(C9+C4\e(B \e$(C89=@4O4Y\e(B; \e$(C1W71\e(B \e$(C89@:\e(B \e$(C8m7I5i@:\e(B \e$(CC"@L3*\e(B \e$(CFD@O\e(B, \e$(C;g@LD-\e(B(buffer) \e$(C3;Av4B\e(B
-\e$(C1W71\e(B \e$(C0M0z\e(B \e$(C?,0|<:@L\e(B \e$(C@V4B\e(B \e$(C8m7I5i@T4O4Y\e(B.  \e$(C@L71\e(B \e$(C8m7I5i@:\e(B \e$(C5Q\e(B, \e$(C<B\e(B \e$(CH$@:\e(B
-\e$(C3W03@G\e(B \e$(C9.@Z8&\e(B \e$(C>94O4Y\e(B.
+이 명령은 두 문자로 구성되어 있다는 점에서 지금까지 배운 다른 명령들과
+다릅니다.  시작은 제어쇠-x로 합니다.  제어쇠-x로 시작하는 명령들은
+무척 많습니다; 그런 많은 명령들은 창이나 파일, 사이칸(buffer) 내지는
+그런 것과 연관성이 있는 명령들입니다.  이런 명령들은 둘, 셋 혹은
+네개의 문자를 씁니다.
 
 
-* \e$(C3"?l1b?M\e(B \e$(CAv?l1b\e(B
+* 끼우기와 지우기
 -----------------
 
-\e$(C1[?y@;\e(B \e$(C3"?l1b\e(B \e$(C@'GX<-4B\e(B \e$(C1W\e(B \e$(C1[?y@;\e(B \e$(CE8@ZD!8i\e(B \e$(C5K4O4Y\e(B.  A, 7, *, \e$(C5n5n0z\e(B
-\e$(C00@L\e(B, \e$(C:<\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C9.@Z5i@:\e(B \e$(C@L8F=:0!\e(B \e$(C1[?y7N\e(B \e$(C@N=DGO?)\e(B \e$(CAo0"\e(B \e$(C3"?s4O4Y\e(B.
-<Return>(\e$(C:91M<h\e(B)\e$(C8&\e(B \e$(CD!8i\e(B \e$(C;uAY\e(B \e$(C9.@Z0!\e(B \e$(C3"?vA}4O4Y\e(B.
+글월을 끼우기 위해서는 그 글월을 타자치면 됩니다.  A, 7, *, 등등과
+같이, 볼 수 있는 문자들은 이맥스가 글월로 인식하여 즉각 끼웁니다.
+<Return>(복귀쇠)를 치면 새줄 문자가 끼워집니다.
 
-<Delete>\e$(C8&\e(B \e$(CD!8i\e(B \e$(C86Av87@87N\e(B \e$(C@T7B5H\e(B \e$(C9.@Z0!\e(B \e$(CAv?vA}4O4Y\e(B.  <Delete>\e$(C4B\e(B
-\e$(C1[<hFG?!\e(B "Del"\e$(C@L6s0m55\e(B \e$(C@L8'G%0!\e(B \e$(C4^7A\e(B \e$(C@V=@4O4Y\e(B.  \e$(C>n62\e(B \e$(C0f?l?!4B\e(B
-"Backspace" \e$(C1[<h0!\e(B <Delete>\e$(C@G\e(B \e$(C?*GR@;\e(B \e$(CGO1b55\e(B \e$(CGOAv88\e(B \e$(CGW;s\e(B \e$(C1W78Av4B\e(B
-\e$(C>J=@4O4Y\e(B!
+<Delete>를 치면 마지막으로 입력된 문자가 지워집니다.  <Delete>는
+글쇠판에 "Del"이라고도 이름표가 달려 있습니다.  어떤 경우에는
+"Backspace" 글쇠가 <Delete>의 역할을 하기도 하지만 항상 그렇지는
+않습니다!
 
-\e$(CA;\e(B \e$(C4u\e(B \e$(C@O9]@{@87N\e(B, <Delete>\e$(C4B\e(B \e$(C1t9Z@L\e(B \e$(CGv@'D!@G\e(B \e$(C9Y7N\e(B \e$(C@|?!\e(B \e$(C@V4B\e(B \e$(C9.@Z8&\e(B
-\e$(CAv?s4O4Y\e(B.
+좀 더 일반적으로, <Delete>는 깜박이 현위치의 바로 전에 있는 문자를
+지웁니다.
 
->> \e$(C1W\e(B \e$(C0M@;\e(B \e$(CGX\e(B \e$(C:8=J=C?@\e(B--\e$(C8n8n\e(B \e$(C9.@Z8&\e(B \e$(CD#\e(B \e$(CHD\e(B <Delete>\e$(C8&\e(B \e$(CCD<-\e(B
-   \e$(CAv?v:8=J=C?@\e(B.  \e$(C@L\e(B \e$(CFD@O@L\e(B \e$(C:/0f5G4B\e(B \e$(C0M?!\e(B \e$(C4kGQ\e(B \e$(C0FA$@:\e(B \e$(CGOAv\e(B \e$(C>J>F55\e(B
-   \e$(C5K4O4Y\e(B; \e$(C@86d\e(B \e$(CAvD'<-4B\e(B \e$(C:/0f5GAv\e(B \e$(C>J=@4O4Y\e(B.  \e$(C@L\e(B \e$(CFD@O@:\e(B \e$(C@86d\e(B \e$(CAvD'<-@G\e(B
-   \e$(C03@N?k\e(B \e$(C:9;g:;@T4O4Y\e(B.
+>> 그 것을 해 보십시오--몇몇 문자를 친 후 <Delete>를 쳐서
+   지워보십시오.  이 파일이 변경되는 것에 대한 걱정은 하지 않아도
+   됩니다; 으뜸 지침서는 변경되지 않습니다.  이 파일은 으뜸 지침서의
+   개인용 복사본입니다.
 
-\e$(C1[?y@L\e(B \e$(CH-8i@G\e(B \e$(CGQ\e(B \e$(CAY?!\e(B \e$(C4Y\e(B \e$(C5i>n0!Av\e(B \e$(C8xGR\e(B \e$(CA$557N\e(B \e$(CD?Av8i\e(B \e$(C1[?y@G\e(B \e$(CAY@:\e(B
-\e$(CH-8i@G\e(B \e$(C5N9xB0\e(B \e$(CAY?!<-\e(B "\e$(C0h<S\e(B"\e$(C5K4O4Y\e(B.  \e$(C?@8%BJ\e(B \e$(CGQ0h?!\e(B \e$(C@V4B\e(B \e$(C?*;g<1\e(B \e$(C9.@Z\e(B
-("\")\e$(C4B\e(B \e$(CAY@L\e(B \e$(C4Y@=\e(B \e$(CAY7N\e(B \e$(C@L>nAv4B\e(B \e$(C0M@;\e(B \e$(C0!8.E54O4Y\e(B.
+글월이 화면의 한 줄에 다 들어가지 못할 정도로 커지면 글월의 줄은
+화면의 두번째 줄에서 "계속"됩니다.  오른쪽 한계에 있는 역사선 문자
+("\")는 줄이 다음 줄로 이어지는 것을 가리킵니다.
 
->> \e$(C1[?y@;\e(B \e$(C0h<S\e(B \e$(C3"?v<-\e(B \e$(C?@8%BJ\e(B \e$(CGQ0h8&\e(B \e$(C3Q>n<-557O\e(B \e$(CGO=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(CAY\e(B
-   \e$(C0h<S\e(B \e$(CG%=C0!\e(B \e$(C3*E83/\e(B \e$(C0M@T4O4Y\e(B.
+>> 글월을 계속 끼워서 오른쪽 한계를 넘어서도록 하십시오.  그러면 줄
+   계속 표시가 나타날 것입니다.
 
->> <Delete>\e$(C8&\e(B \e$(C=a<-\e(B \e$(C1[?y@G\e(B \e$(CAY@L\e(B \e$(CGQ\e(B \e$(CH-8i\e(B \e$(CAY?!\e(B \e$(C2K\e(B \e$(CBw557O\e(B \e$(C4Y=C\e(B
-   \e$(CAv?l=J=C?@\e(B. \e$(CAY\e(B \e$(C0h<S\e(B \e$(CG%=C4B\e(B \e$(C>x>nA}4O4Y\e(B.
+>> <Delete>를 써서 글월의 줄이 한 화면 줄에 꽉 차도록 다시
+   지우십시오. 줄 계속 표시는 없어집니다.
 
-\e$(C;uAY\e(B \e$(C9.@Z55\e(B \e$(C4Y8%\e(B \e$(C9.@ZC373\e(B \e$(CAv?o\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(CAY@;\e(B \e$(C5Q7N\e(B \e$(C3*4)4B\e(B \e$(C;uAY\e(B
-\e$(C9.@Z8&\e(B \e$(CAv?l8i\e(B \e$(C5N\e(B \e$(CAY@L\e(B \e$(CGO3*7N\e(B \e$(CGUD!0T\e(B \e$(C5K4O4Y\e(B.  \e$(C@L\e(B \e$(CGUD#\e(B \e$(CAY@L\e(B \e$(C3J9+\e(B \e$(C1f>n<-\e(B
-\e$(CH-8i@G\e(B \e$(C3J:q8&\e(B \e$(C3Q>n<-8i\e(B \e$(C1W\e(B \e$(CAY@:\e(B \e$(CAY\e(B \e$(C0h<S\e(B \e$(C9.@Z0!\e(B \e$(CG%=C5G8i<-\e(B \e$(C4Y@=\e(B \e$(CAY?!\e(B
-\e$(C0h<S\e(B \e$(CH-8i\e(B \e$(CG%=C5I\e(B \e$(C0M@T4O4Y\e(B.
+새줄 문자도 다른 문자처럼 지울 수 있습니다.  줄을 둘로 나누는 새줄
+문자를 지우면 두 줄이 하나로 합치게 됩니다.  이 합친 줄이 너무 길어서
+화면의 너비를 넘어서면 그 줄은 줄 계속 문자가 표시되면서 다음 줄에
+계속 화면 표시될 것입니다.
 
->> \e$(C1t9Z@L8&\e(B \e$(CAY@G\e(B \e$(C=C@[@87N\e(B \e$(C?rAw?)<-\e(B <Delete>\e$(C8&\e(B \e$(CD!=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(C1W\e(B
-   \e$(CAY@L\e(B \e$(C@L@|\e(B \e$(CAY0z\e(B \e$(CGUCDAz\e(B \e$(C0M@T4O4Y\e(B.
+>> 깜박이를 줄의 시작으로 움직여서 <Delete>를 치십시오.  그러면 그
+   줄이 이전 줄과 합쳐질 것입니다.
 
->> \e$(C4Y=C\e(B <Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(CAv?vAx\e(B \e$(C;uAY\e(B \e$(C9.@Z8&\e(B \e$(C3"?l=J=C?@\e(B.
+>> 다시 <Return>을 쳐서 지워진 새줄 문자를 끼우십시오.
 
-\e$(C4k:N:P@G\e(B \e$(C@L8F=:\e(B \e$(C8m7I?!4B\e(B \e$(C9]:9\e(B \e$(CH=<v8&\e(B \e$(CAY\e(B \e$(C<v\e(B \e$(C@V4Y4B\e(B \e$(C0M@;\e(B \e$(C1b>oGO=J=C?@\e(B;
-\e$(C1[?y\e(B \e$(C9.@Z55\e(B \e$(CGX4g5K4O4Y\e(B.  \e$(C1[?y\e(B \e$(C9.@Z8&\e(B \e$(C9]:9GO4B\e(B \e$(C0M@:\e(B \e$(C1W\e(B \e$(C0M@;\e(B \e$(C?)7/9x\e(B
-\e$(C3"?l4B\e(B \e$(C0M@T4O4Y\e(B.
+대부분의 이맥스 명령에는 반복 횟수를 줄 수 있다는 것을 기억하십시오;
+글월 문자도 해당됩니다.  글월 문자를 반복하는 것은 그 것을 여러번
+끼우는 것입니다.
 
->> \e$(C1W\e(B \e$(C0M@;\e(B \e$(CAv1]\e(B \e$(CGX\e(B \e$(C:>4O4Y\e(B -- C-u 8 *\e$(C@;\e(B \e$(CCD<-\e(B ********\e$(C@;\e(B \e$(C3"?l=J=C?@\e(B.
+>> 그 것을 지금 해 봅니다 -- C-u 8 *을 쳐서 ********을 끼우십시오.
 
-\e$(C@LA&\e(B \e$(C@L8F=:?!<-\e(B \e$(C9+>p0!8&\e(B \e$(CD!0m\e(B \e$(CBx?@8&\e(B \e$(C13A$GO4B\e(B \e$(C0!@e\e(B \e$(C1b:;@{@N\e(B \e$(C9f9}@;\e(B
-\e$(C9h?|=@4O4Y\e(B.  \e$(C398;@L3*\e(B \e$(CAY55\e(B \e$(CGQ9x?!\e(B \e$(CAv?o\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C?)1b?!\e(B \e$(CAv?l4B\e(B
-\e$(C@[5?@;\e(B \e$(C?d>`GU4O4Y\e(B.
+이제 이맥스에서 무언가를 치고 착오를 교정하는 가장 기본적인 방법을
+배웠습니다.  낱말이나 줄도 한번에 지울 수 있습니다.  여기에 지우는
+작동을 요약합니다.
 
-               <Delete>     \e$(C1t9Z@L\e(B \e$(CAw@|@G\e(B \e$(C9.@Z\e(B \e$(CAv?l1b\e(B
-       C-d          \e$(C1t9Z@L\e(B \e$(C4Y@=@G\e(B \e$(C9.@Z\e(B \e$(CAv?l1b\e(B
+               <Delete>     깜박이 직전의 문자 지우기
+       C-d          깜박이 다음의 문자 지우기
 
-       M-<Delete>   \e$(C1t9Z@L\e(B \e$(CAw@|@G\e(B \e$(C398;\e(B \e$(CAW@L1b\e(B
-       M-d          \e$(C1t9Z@L\e(B \e$(C4Y@=@G\e(B \e$(C398;\e(B \e$(CAW@L1b\e(B
+       M-<Delete>   깜박이 직전의 낱말 죽이기
+       M-d          깜박이 다음의 낱말 죽이기
 
-       C-k          \e$(C1t9Z@L\e(B \e$(C@'D!7N:NEM\e(B \e$(CAY\e(B \e$(C3!1nAv\e(B \e$(CAW@L1b\e(B
-       M-k          \e$(CGv@g\e(B \e$(C9.@e@G\e(B \e$(C3!1nAv\e(B \e$(CAW@L1b\e(B
+       C-k          깜박이 위치로부터 줄 끝까지 죽이기
+       M-k          현재 문장의 끝까지 죽이기
 
-C-f\e$(C?M\e(B M-f\e$(C?!<-\e(B \e$(C=C@[GQ\e(B \e$(C@/;g<:@L\e(B <Delete>\e$(C?M\e(B C-d \e$(C1W8.0m\e(B M-<Delete>\e$(C?M\e(B M-d\e$(C7N\e(B
-\e$(C@L>nAv4B\e(B \e$(C0M@;\e(B \e$(C@/@GGO=J=C?@\e(B (<Delete>\e$(C4B\e(B \e$(CAxA$GQ\e(B \e$(CA&>n\e(B \e$(C9.@Z4B\e(B \e$(C>F4OAv88\e(B
-\e$(C1W715%?!\e(B \e$(C;s3dGOAv\e(B \e$(C>J557O\e(B \e$(CGU=C4Y\e(B).  \e$(CAY0z\e(B \e$(C9.@e@L\e(B \e$(C4Y8#5m@L\e(B C-k\e$(C?M\e(B M-k\e$(C4B\e(B
-C-e\e$(C?M\e(B M-e\e$(C?M\e(B \e$(C4Y8(4O4Y\e(B.
+C-f와 M-f에서 시작한 유사성이 <Delete>와 C-d 그리고 M-<Delete>와 M-d로
+이어지는 것을 유의하십시오 (<Delete>는 진정한 제어 문자는 아니지만
+그런데에 상념하지 않도록 합시다).  줄과 문장이 다르듯이 C-k와 M-k는
+C-e와 M-e와 다릅니다.
 
-\e$(C@O7|@{@N\e(B \e$(C9f9}\e(B \e$(CGO3*7N\e(B \e$(C;g@LD-@G\e(B \e$(C>n62\e(B \e$(C:N:P55\e(B \e$(CAW@O\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
-\e$(C8U@z\e(B \e$(C1W\e(B \e$(C:N:P@G\e(B \e$(CGQBJ\e(B \e$(C3!@87N\e(B \e$(C@L5?GX<-\e(B C-@\e$(C@L3*\e(B C-SPC (\e$(C5Q\e(B \e$(CA_\e(B \e$(CGO3*\e(B)\e$(C8&\e(B \e$(CD(4O4Y\e(B.
-\e$(C1W\e(B \e$(C:N:P@G\e(B \e$(C4Y8%BJ\e(B \e$(C3!@87N\e(B \e$(C@L5?GX<-\e(B C-w\e$(C8&\e(B \e$(CD(4O4Y\e(B.  \e$(C1W7/8i\e(B \e$(C1W\e(B \e$(C5N\e(B
-\e$(C@'D!;g@L@G\e(B \e$(C8p5g\e(B \e$(C1[?y@:\e(B \e$(CAW?)A}4O4Y\e(B.
+일률적인 방법 하나로 사이칸의 어떤 부분도 죽일 수 있습니다.
+먼저 그 부분의 한쪽 끝으로 이동해서 C-@이나 C-SPC (둘 중 하나)를 칩니다.
+그 부분의 다른쪽 끝으로 이동해서 C-w를 칩니다.  그러면 그 두
+위치사이의 모든 글월은 죽여집니다.
 
->> \e$(C1t:}@L8&\e(B \e$(C@|\e(B \e$(C9.4\@G\e(B \e$(C=C@[@N\e(B `\e$(C@O\e(B'\e$(C@Z7N\e(B \e$(C?rAw@L=J=C?@\e(B.
->> C-SPC\e$(C8&\e(B \e$(CD!=C?@\e(B.  \e$(C@L8F=:4B\e(B \e$(CH-8i@G\e(B \e$(C9Y4Z?!\e(B "Mark set"\e$(C@L6s4B\e(B \e$(C>K828;@;\e(B
-   \e$(C:8?)AY\e(B \e$(C0M@T4O4Y\e(B.
->> \e$(C1t:}@L8&\e(B \e$(C@'\e(B \e$(C9.4\@G\e(B \e$(C5N9xB0\e(B \e$(CAY?!\e(B \e$(C@V4B\e(B `\e$(C3!\e(B'\e$(C@Z7N\e(B \e$(C?rAw@L=C?@\e(B.
->> C-w\e$(C8&\e(B \e$(CD!=C?@\e(B.  \e$(C1W7/8i\e(B `\e$(C@O\e(B'\e$(C@Z7N\e(B \e$(C=C@[GX<-\e(B `\e$(C3!\e(B'\e$(C@Z1nAv@G\e(B \e$(C1[?y@L\e(B \e$(CAW?)Az\e(B
-   \e$(C0M@T4O4Y\e(B.
+>> 깜빡이를 전 문단의 시작인 `일'자로 움직이십시오.
+>> C-SPC를 치시오.  이맥스는 화면의 바닥에 "Mark set"이라는 알림말을
+   보여줄 것입니다.
+>> 깜빡이를 위 문단의 두번째 줄에 있는 `끝'자로 움직이시오.
+>> C-w를 치시오.  그러면 `일'자로 시작해서 `끝'자까지의 글월이 죽여질
+   것입니다.
 
-"\e$(CAW@L1b\e(B"\e$(C?M\e(B "\e$(CAv?l1b\e(B"\e$(C@G\e(B \e$(C4Y8%\e(B \e$(CA!@:\e(B "\e$(CAW?)Ax\e(B" \e$(C1[?y@:\e(B \e$(C@gBw\e(B \e$(C3"?v3V@;\e(B \e$(C<v\e(B \e$(C@V4B\e(B
-\e$(C9]8i\e(B "\e$(CAv?vAx\e(B" \e$(C0M5i@:\e(B \e$(C4Y=C\e(B \e$(C3"?v3V@;\e(B \e$(C<v\e(B \e$(C>x4Y4B\e(B \e$(C0M@T4O4Y\e(B.  \e$(CAW?)Ax\e(B \e$(C1[?y@;\e(B
-\e$(C4Y=C\e(B \e$(C;g?kGO4B\e(B \e$(C0M@;\e(B "\e$(C@b>F4g1b1b\e(B(yanking)"\e$(C6s0m\e(B \e$(CGU4O4Y\e(B.  \e$(C@O9]@{@87N\e(B \e$(C89@:\e(B
-\e$(C1[?y@;\e(B \e$(CA&0EGO4B\e(B \e$(C8m7I@:\e(B \e$(C1[?y@;\e(B \e$(CAW@L3*\e(B (\e$(C1W71\e(B \e$(C8m7I5i@:\e(B \e$(C1W\e(B \e$(C1[?y5i@;\e(B \e$(C4Y=C\e(B
-\e$(C@b>F4g1f\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(C1W780T\e(B \e$(C<3A$5G>nA.\e(B \e$(C@V=@4O4Y\e(B), \e$(CGQ\e(B \e$(C9.@Z8&\e(B \e$(CA&0EGO0E3*\e(B
-\e$(C:s\e(B \e$(CAY\e(B \e$(CH$@:\e(B \e$(C0x0#9.@Z8&\e(B \e$(CA&0EGO4B\e(B \e$(C8m7I5i@:\e(B \e$(CAv?r@[?k@;\e(B \e$(CGU4O4Y\e(B (\e$(C1W7!<-\e(B \e$(C1W\e(B
-\e$(C1[?y5i@:\e(B \e$(C4Y=C\e(B \e$(C@b>F\e(B \e$(C4g1f\e(B \e$(C<v\e(B \e$(C>x=@4O4Y\e(B).
+"죽이기"와 "지우기"의 다른 점은 "죽여진" 글월은 재차 끼워넣을 수 있는
+반면 "지워진" 것들은 다시 끼워넣을 수 없다는 것입니다.  죽여진 글월을
+다시 사용하는 것을 "잡아당기기(yanking)"라고 합니다.  일반적으로 많은
+글월을 제거하는 명령은 글월을 죽이나 (그런 명령들은 그 글월들을 다시
+잡아당길 수 있도록 그렇게 설정되어져 있습니다), 한 문자를 제거하거나
+빈 줄 혹은 공간문자를 제거하는 명령들은 지움작용을 합니다 (그래서 그
+글월들은 다시 잡아 당길 수 없습니다).
 
->> \e$(C1t9Z@L8&\e(B \e$(C:q>nA.\e(B \e$(C@VAv\e(B \e$(C>J@:\e(B \e$(CAY@G\e(B \e$(C=C@[@87N\e(B \e$(C?rAw@L=J=C?@\e(B. \e$(C1W8.0m4B\e(B
-   C-k\e$(C8&\e(B \e$(CCD<-\e(B \e$(C1W\e(B \e$(CAY@G\e(B \e$(C1[?y@;\e(B \e$(CAW@L=J=C?@\e(B.
->> C-k\e$(C8&\e(B \e$(C4Y=C\e(B \e$(CD!=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(C1W\e(B \e$(CAY\e(B \e$(C4Y@=?!\e(B \e$(C@V4B\e(B \e$(C;uAY\e(B \e$(C9.@Z0!\e(B \e$(CAW?)Av4B\e(B
-   \e$(C0M@;\e(B \e$(C:<\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+>> 깜박이를 비어져 있지 않은 줄의 시작으로 움직이십시오. 그리고는
+   C-k를 쳐서 그 줄의 글월을 죽이십시오.
+>> C-k를 다시 치십시오.  그러면 그 줄 다음에 있는 새줄 문자가 죽여지는
+   것을 볼 수 있습니다.
 
-C-k\e$(C8&\e(B \e$(CGQ\e(B \e$(C9x\e(B \e$(CD!8i\e(B \e$(C1W\e(B \e$(CAY@G\e(B \e$(C3;?k@;\e(B \e$(CAW@L0m\e(B \e$(C5N9xB0?!4B\e(B \e$(C1W\e(B \e$(CAY\e(B \e$(C@ZC<8&\e(B
-\e$(CAW@S@87N<-\e(B \e$(C@L>nAv4B\e(B \e$(C8p5g\e(B \e$(CAY@;\e(B \e$(C@'7N\e(B \e$(C?C834O4Y\e(B.  C-k\e$(C4B\e(B \e$(C<}@Z\e(B \e$(C@N<v8&\e(B \e$(CF/:0Hw\e(B
-\e$(CCk1^GU4O4Y\e(B: \e$(C1W\e(B \e$(C<}@Z88E-@G\e(B \e$(CAY0z\e(B \e$(C1W\e(B \e$(CAY@G\e(B \e$(C3;?k@;\e(B \e$(CGT22\e(B \e$(CAW@T4O4Y\e(B.  \e$(C@L0M@:\e(B
-\e$(C4\<xGQ\e(B \e$(C9]:9@L\e(B \e$(C>F4U4O4Y\e(B.  C-u 2 C-k\e$(C4B\e(B \e$(C5N\e(B \e$(CAY0z\e(B \e$(C1W\e(B \e$(CAY@G\e(B \e$(C;uAY\e(B \e$(C9.@Z8&\e(B
-\e$(CAW@T4O4Y\e(B; C-k\e$(C8&\e(B \e$(C5N\e(B \e$(C9x\e(B \e$(CD!8i\e(B \e$(C1W78Av\e(B \e$(C>J=@4O4Y\e(B.
+C-k를 한 번 치면 그 줄의 내용을 죽이고 두번째에는 그 줄 자체를
+죽임으로서 이어지는 모든 줄을 위로 올립니다.  C-k는 숫자 인수를 특별히
+취급합니다: 그 숫자만큼의 줄과 그 줄의 내용을 함께 죽입니다.  이것은
+단순한 반복이 아닙니다.  C-u 2 C-k는 두 줄과 그 줄의 새줄 문자를
+죽입니다; C-k를 두 번 치면 그렇지 않습니다.
 
-\e$(CAW?)Ax\e(B \e$(C1[?y@;\e(B \e$(C4Y=C\e(B \e$(CH8<vGO4B\e(B \e$(C0M@;\e(B "\e$(C@b>F4g1b1b\e(B"\e$(C6s0m\e(B \e$(C:N8(4O4Y\e(B.  (\e$(C4)1:0!0!\e(B
-\e$(C;/>F0#\e(B \e$(C0M@;\e(B \e$(C4Y=C\e(B \e$(C@b>F\e(B \e$(C4g1b4B\e(B \e$(C0MC373\e(B \e$(C;}0"GO=J=C?@\e(B.)  \e$(CAW?)Ax\e(B \e$(C1[?y@:\e(B
-\e$(CAW?)Ax\e(B \e$(C1W\e(B \e$(C0w?!\e(B \e$(C4Y=C\e(B \e$(C@b>F\e(B \e$(C4g0\Az\e(B \e$(C<v55\e(B \e$(C@VAv88\e(B \e$(C;g@LD-@G\e(B \e$(C4Y8%\e(B \e$(C@e<R?!<-55\e(B
-\e$(CH$@:\e(B \e$(C4Y8%\e(B \e$(CFD@O?!<-A6Bw55\e(B \e$(C@b>F4g0\Az\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C1W\e(B \e$(C1[?y@:\e(B \e$(C?)7/9x?!\e(B
-\e$(C0ICD\e(B \e$(C@b>F4g0\A|@87N=a\e(B \e$(C?)7/\e(B \e$(C:9;g:;@;\e(B \e$(C885i0T\e(B \e$(C5I\e(B \e$(C<v55\e(B \e$(C@V=@4O4Y\e(B.
+죽여진 글월을 다시 회수하는 것을 "잡아당기기"라고 부릅니다.  (누군가가
+뺏아간 것을 다시 잡아 당기는 것처럼 생각하십시오.)  죽여진 글월은
+죽여진 그 곳에 다시 잡아 당겨질 수도 있지만 사이칸의 다른 장소에서도
+혹은 다른 파일에서조차도 잡아당겨질 수 있습니다.  그 글월은 여러번에
+걸쳐 잡아당겨짐으로써 여러 복사본을 만들게 될 수도 있습니다.
 
-\e$(C@b>F4g1b1b\e(B \e$(C8m7I@:\e(B C-y\e$(C@T4O4Y\e(B.  \e$(C1W7/8i\e(B \e$(C0!@e\e(B \e$(C86Av87@87N\e(B \e$(CAW?)Ax\e(B \e$(C1[?y@;\e(B
-\e$(CGv@g@G\e(B \e$(C1t:}@L\e(B \e$(C@'D!?!\e(B \e$(CH8<v=CE54O4Y\e(B.
+잡아당기기 명령은 C-y입니다.  그러면 가장 마지막으로 죽여진 글월을
+현재의 깜빡이 위치에 회수시킵니다.
 
->> \e$(CGX\e(B \e$(C:8=J=C?@\e(B; C-y\e$(C8&\e(B \e$(CCD<-\e(B \e$(C1[?y@;\e(B \e$(C4Y=C\e(B \e$(C@b>F4g1b=J=C?@\e(B.
+>> 해 보십시오; C-y를 쳐서 글월을 다시 잡아당기십시오.
 
-\e$(CGQ\e(B \e$(C0!7ND-?!<-\e(B C-k\e$(C8&\e(B \e$(C?)7/9x\e(B \e$(C>28i\e(B \e$(CAW?)Ax\e(B \e$(C1[?y5i@L\e(B \e$(CGT22\e(B \e$(C0%9+8.5G>n\e(B \e$(C1W\e(B \e$(CAY\e(B
-\e$(C8p5N8&\e(B C-y \e$(CGQ\e(B \e$(C9x@87N\e(B \e$(C@b>F4g1f\e(B \e$(C<v\e(B \e$(C@V4Y4B\e(B \e$(C0M?!\e(B \e$(C@/@GGO=J=C?@\e(B.
+한 가로칸에서 C-k를 여러번 쓰면 죽여진 글월들이 함께 갈무리되어 그 줄
+모두를 C-y 한 번으로 잡아당길 수 있다는 것에 유의하십시오.
 
->> C-k\e$(C8&\e(B \e$(C?)7/9x\e(B \e$(CCD<-\e(B \e$(C1W\e(B \e$(C0M@;\e(B \e$(CGX\e(B \e$(C:8=J=C?@\e(B.
+>> C-k를 여러번 쳐서 그 것을 해 보십시오.
 
-\e$(CAW?)Ax\e(B \e$(C1[?y@;\e(B \e$(CH8<vGO1b\e(B \e$(C@'GX<-4B\e(B:
+죽여진 글월을 회수하기 위해서는:
 
->> C-y\e$(C8&\e(B \e$(CD!=J=C?@\e(B.  \e$(C1W8.0m4B\e(B \e$(C1t9Z@L8&\e(B \e$(C8n\e(B \e$(CAY\e(B \e$(C>F7!7N\e(B \e$(C?rAw?)<-\e(B C-y\e$(C8&\e(B \e$(C4Y=C\e(B
-   \e$(CD!=J=C?@\e(B.  \e$(C1[?y@L\e(B \e$(C>n6;0T\e(B \e$(C:9;g5G4B0!8&\e(B \e$(C>K\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+>> C-y를 치십시오.  그리고는 깜박이를 몇 줄 아래로 움직여서 C-y를 다시
+   치십시오.  글월이 어떻게 복사되는가를 알 수 있습니다.
 
-\e$(C4Y=C\e(B \e$(C@b>F4g1f\e(B \e$(C1[?y@L\e(B \e$(C@V4B5%\e(B \e$(C4Y8%\e(B \e$(C0M@;\e(B \e$(C6G\e(B \e$(CAW@L8i\e(B \e$(C>n6;0T\e(B \e$(C5G0Z=@4O1n\e(B?
-C-y\e$(C4B\e(B \e$(C4u\e(B \e$(CCV1Y?!\e(B \e$(CAW?)Ax\e(B \e$(C0M@;\e(B \e$(C@b>F4g1f\e(B \e$(C0M@T4O4Y\e(B.  \e$(C1W7/3*\e(B \e$(C1W\e(B \e$(C@|@G\e(B \e$(C1[?y@:\e(B
-\e$(C@R>n9v80\e(B \e$(C0M@L\e(B \e$(C>F4U4O4Y\e(B.  \e$(C1W\e(B \e$(C0M@:\e(B M-y \e$(C8m7I@;\e(B \e$(C=a<-\e(B \e$(CH8<vGR\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
-\e$(C0!@e\e(B \e$(CCV=E?!\e(B \e$(CAW?)Ax\e(B \e$(C1[?y@;\e(B C-y\e$(C7N\e(B \e$(CH8<vGQ\e(B \e$(CHD\e(B M-y\e$(C8&\e(B \e$(CD!8i\e(B \e$(C1W\e(B \e$(C@b>F4g0\A34x\e(B
-\e$(C1[?y@L\e(B \e$(C1W\e(B \e$(C@|?!\e(B \e$(CAW?)Ax\e(B \e$(C0M@87N\e(B \e$(C;u7N9Y2n>nA}4O4Y\e(B(replace).  M-y\e$(C8&\e(B \e$(CC$Bw\e(B
-\e$(C?,0EG*\e(B \e$(CD!8i\e(B \e$(C@L@|?!\e(B \e$(CAW?)Ax\e(B \e$(C0M5i@L\e(B \e$(CBw7J7N\e(B \e$(C3*?I4O4Y\e(B.  \e$(CC#0m@Z\e(B \e$(CGO4B\e(B \e$(C1[?y@L\e(B
-\e$(C3*?@8i\e(B \e$(C4Y8%\e(B \e$(C@O@;\e(B \e$(CGR\e(B \e$(CGJ?d0!\e(B \e$(C>x=@4O4Y\e(B.  \e$(C4\<xHw\e(B \e$(CFmA}@;\e(B \e$(C0h<SGO8i\e(B
-\e$(C@b>F4g0\Ax\e(B \e$(C1[?y@L\e(B \e$(C1W0w?!\e(B \e$(C32>F\e(B \e$(C@V0T\e(B \e$(C5K4O4Y\e(B.
+다시 잡아당길 글월이 있는데 다른 것을 또 죽이면 어떻게 되겠습니까?
+C-y는 더 최근에 죽여진 것을 잡아당길 것입니다.  그러나 그 전의 글월은
+잃어버린 것이 아닙니다.  그 것은 M-y 명령을 써서 회수할 수 있습니다.
+가장 최신에 죽여진 글월을 C-y로 회수한 후 M-y를 치면 그 잡아당겨졌던
+글월이 그 전에 죽여진 것으로 새로바뀌어집니다(replace).  M-y를 채차
+연거푸 치면 이전에 죽여진 것들이 차례로 나옵니다.  찾고자 하는 글월이
+나오면 다른 일을 할 필요가 없습니다.  단순히 편집을 계속하면
+잡아당겨진 글월이 그곳에 남아 있게 됩니다.
 
-M-y\e$(C8&\e(B \e$(C0h<S\e(B \e$(CD!8i\e(B \e$(CCb9_A!\e(B (\e$(C0!@e\e(B \e$(CCV1Y?!\e(B \e$(CAW?)Ax\e(B \e$(C0M\e(B)\e$(C@87N\e(B \e$(C5G59>F\e(B \e$(C?I4O4Y\e(B.
+M-y를 계속 치면 출발점 (가장 최근에 죽여진 것)으로 되돌아 옵니다.
 
->> \e$(CGQ\e(B \e$(CAY@;\e(B \e$(CAW@L0m\e(B \e$(CAV@'7N\e(B \e$(C?rAw@N\e(B \e$(CHD\e(B \e$(C4Y8%\e(B \e$(CAY@;\e(B \e$(CAW@L=J=C?@\e(B.
-   \e$(C1W8.0m4B\e(B C-y\e$(C7N\e(B \e$(C5N9xB0\e(B \e$(CAW?)Ax\e(B \e$(CAY@;\e(B \e$(CH8<vGO=J=C?@\e(B.
-   \e$(C1W71\e(B \e$(C4Y@=?!\e(B M-y\e$(C8&\e(B \e$(CD!8i\e(B \e$(CC99xB0?!\e(B \e$(CAW?)Ax\e(B \e$(CAY7N\e(B \e$(C;u7N9Y2n0T\e(B \e$(C5K4O4Y\e(B.
-   M-y\e$(C8&\e(B \e$(C4u\e(B \e$(CCD<-\e(B \e$(C9+>y@L\e(B \e$(C3*?@4B0!8&\e(B \e$(C:8=J=C?@\e(B.  \e$(C5N9xB0\e(B \e$(CAW?)Ax\e(B \e$(CAY@L\e(B \e$(C3*?C\e(B
-   \e$(C6'1n4O\e(B \e$(C1W780T\e(B \e$(C0h<S\e(B \e$(CGQ\e(B \e$(CHD\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(C4u\e(B \e$(CGO=J=C?@\e(B.
-   \e$(C?xGO8i\e(B, M-y\e$(C?!\e(B \e$(C>g<v3*\e(B \e$(C@=<v@G\e(B \e$(C@N<v8&\e(B \e$(CAY\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+>> 한 줄을 죽이고 주위로 움직인 후 다른 줄을 죽이십시오.
+   그리고는 C-y로 두번째 죽여진 줄을 회수하십시오.
+   그런 다음에 M-y를 치면 첫번째에 죽여진 줄로 새로바뀌게 됩니다.
+   M-y를 더 쳐서 무엇이 나오는가를 보십시오.  두번째 죽여진 줄이 나올
+   때까니 그렇게 계속 한 후 몇 번 더 하십시오.
+   원하면, M-y에 양수나 음수의 인수를 줄 수 있습니다.
 
 
-* \e$(C9+8#1b\e(B
+* 무르기
 --------
 
-\e$(C1[?y@;\e(B \e$(C:/0fGO0m<-\e(B \e$(C1W\e(B \e$(C0M@L\e(B \e$(C=G<v?4@=@;\e(B \e$(C>K0T\e(B \e$(C5G8i\e(B \e$(C9+8#1b\e(B(undo) \e$(C8m7I\e(B, C-x
-u\e$(C7N\e(B \e$(C:/0f;gGW@;\e(B \e$(C9+8&\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+글월을 변경하고서 그 것이 실수였음을 알게 되면 무르기(undo) 명령, C-x
+u로 변경사항을 무를 수 있습니다.
 
-\e$(C:8Ek\e(B, C-x u\e$(C4B\e(B \e$(CGO3*@G\e(B \e$(C8m7I?!\e(B \e$(C@GGX\e(B \e$(C:/0f5H\e(B \e$(C;gGW@;\e(B \e$(C9+8(4O4Y\e(B; \e$(CGQ\e(B \e$(C0!7ND-?!<-\e(B
-C-x u\e$(C8&\e(B \e$(C?)7/9x\e(B \e$(C9]:9GO8i\e(B \e$(C0"0"@G\e(B \e$(C9]:9@:\e(B \e$(CC_0!@{@87N\e(B \e$(C8m7I@;\e(B \e$(C9+8(4O4Y\e(B.
+보통, C-x u는 하나의 명령에 의해 변경된 사항을 무릅니다; 한 가로칸에서
+C-x u를 여러번 반복하면 각각의 반복은 추가적으로 명령을 무릅니다.
 
-\e$(C1W7/3*\e(B \e$(C5N0!Av\e(B \e$(C?9?\0!\e(B \e$(C@V=@4O4Y\e(B: \e$(C1[?y@;\e(B \e$(C:/0fGOAv\e(B \e$(C>J4B\e(B \e$(C8m7I@:\e(B \e$(C0m7A\e(B
-\e$(C4k;s?!<-\e(B \e$(CA&?\5K4O4Y\e(B (\e$(C?)1b?!4B\e(B \e$(C1t9Z@L8&\e(B \e$(C?rAw@L4B\e(B \e$(C8m7I0z\e(B \e$(CH-8i\e(B \e$(C5N7g8;1b\e(B
-\e$(C8m7I@L\e(B \e$(C@V=@4O4Y\e(B). \e$(C1W8.0m\e(B \e$(C@ZC<3"?l1b\e(B(self-inserting) \e$(C9.@Z5i@:\e(B
-\e$(CFr;s@{@87N\e(B 20\e$(C031nAv@G\e(B \e$(CA}4\@87N\e(B \e$(CC38.5K4O4Y\e(B.  (\e$(C@L4B\e(B \e$(C1[?y\e(B \e$(C3"?l1b8&\e(B \e$(C9+8#1b\e(B
-\e$(C@'GX<-\e(B \e$(CE8@ZGX>_\e(B \e$(CGO4B\e(B C-x u\e$(C@G\e(B \e$(C<v8&\e(B \e$(CAY@L1b\e(B \e$(C@'GT@T4O4Y\e(B.)
+그러나 두가지 예외가 있습니다: 글월을 변경하지 않는 명령은 고려
+대상에서 제외됩니다 (여기에는 깜박이를 움직이는 명령과 화면 두루말기
+명령이 있습니다). 그리고 자체끼우기(self-inserting) 문자들은
+평상적으로 20개까지의 집단으로 처리됩니다.  (이는 글월 끼우기를 무르기
+위해서 타자해야 하는 C-x u의 수를 줄이기 위함입니다.)
 
->> \e$(C@L\e(B \e$(CAY@;\e(B C-k\e$(C7N\e(B \e$(CAW@N\e(B \e$(CHD\e(B C-x u\e$(C8&\e(B \e$(CD!8i\e(B \e$(CAY@L\e(B \e$(C4Y=C\e(B \e$(C3*E83/\e(B \e$(C0M@T4O4Y\e(B.
+>> 이 줄을 C-k로 죽인 후 C-x u를 치면 줄이 다시 나타날 것입니다.
 
-C-_\e$(C4B\e(B \e$(C9+8#1b\e(B \e$(C8m7I@G\e(B \e$(C4Y8%\e(B \e$(CG|EB@T4O4Y\e(B; C-x u\e$(C?M\e(B \e$(C00@:\e(B \e$(C@[?k@;\e(B \e$(CGOAv88\e(B \e$(CGQ\e(B
-\e$(C0!7ND-?!<-\e(B \e$(C?)7/9x\e(B \e$(CE8@ZGO1b?!\e(B \e$(CFmGU4O4Y\e(B.  C-_\e$(C@G\e(B \e$(C4\A!@:\e(B, \e$(C>n62\e(B
-\e$(C1[<hFG?!<-4B\e(B \e$(C@L\e(B \e$(C0M@;\e(B \e$(C>n6;0T\e(B \e$(CE8@ZGX>_\e(B \e$(C5G4B0!0!\e(B \e$(C:R8m7aGO4Y4B\e(B \e$(C0M@T4O4Y\e(B.
-\e$(C1W7!<-\e(B C-x u\e$(C55\e(B \e$(C;g?kGR\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(C5G>n\e(B \e$(C@V4B\e(B \e$(C0M@T4O4Y\e(B.  \e$(C>n62\e(B
-\e$(C4\8;1b?!<-4B\e(B, CONTROL\e$(C<h8&\e(B \e$(C4)8%\e(B \e$(C;sEB?!<-\e(B /\e$(C8&\e(B \e$(CD'@87N=a\e(B C-_\e$(C8&\e(B \e$(CD%\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.
+C-_는 무르기 명령의 다른 형태입니다; C-x u와 같은 작용을 하지만 한
+가로칸에서 여러번 타자하기에 편합니다.  C-_의 단점은, 어떤
+글쇠판에서는 이 것을 어떻게 타자해야 되는가가 불명료하다는 것입니다.
+그래서 C-x u도 사용할 수 있도록 되어 있는 것입니다.  어떤
+단말기에서는, CONTROL쇠를 누른 상태에서 /를 침으로써 C-_를 칠 수
+있습니다.
 
-C-_\e$(C3*\e(B C-x u\e$(C@G\e(B \e$(C<}@Z\e(B \e$(C@N<v4B\e(B \e$(C9]:9\e(B \e$(CH=<v7N\e(B \e$(C;g?k5K4O4Y\e(B.
+C-_나 C-x u의 숫자 인수는 반복 횟수로 사용됩니다.
 
-\e$(C1[?y@G\e(B \e$(CAv?l1b8&\e(B \e$(C9+8#4B\e(B \e$(C0M@:\e(B \e$(C1[?y\e(B \e$(CAW@L1b8&\e(B \e$(C9+8#4B\e(B \e$(C0M0z\e(B \e$(C00@:\e(B \e$(C=D@87N\e(B
-\e$(CGU4O4Y\e(B.  \e$(C>n62\e(B \e$(C0M@;\e(B \e$(CAW@L4B\e(B \e$(C0M0z\e(B \e$(CAv?l4B\e(B \e$(C0M@G\e(B \e$(CBw@LA!@:\e(B C-y\e$(C7N\e(B \e$(C@b>F4g1f\e(B \e$(C<v\e(B
-\e$(C@V4@3D4B\e(B \e$(C;g=G?!\e(B \e$(C@V=@4O4Y\e(B; \e$(C9+8#1b?!4B\e(B \e$(CBw@LA!@L\e(B \e$(C>x=@4O4Y\e(B.
+글월의 지우기를 무르는 것은 글월 죽이기를 무르는 것과 같은 식으로
+합니다.  어떤 것을 죽이는 것과 지우는 것의 차이점은 C-y로 잡아당길 수
+있느냐는 사실에 있습니다; 무르기에는 차이점이 없습니다.
 
-* \e$(CFD@O\e(B
+* 파일
 ------
 
-\e$(CFmA}GQ\e(B \e$(C1[?y@;\e(B \e$(C?518@{@87N\e(B \e$(CGO1b\e(B \e$(C@'GX<-4B\e(B \e$(CFD@O?!\e(B \e$(C3V>n\e(B \e$(C5N>n>_\e(B \e$(CGU4O4Y\e(B.
-\e$(C1W780T\e(B \e$(CGOAv\e(B \e$(C>J@88i\e(B, \e$(C@L8F=:0!\e(B \e$(C>x>nA|0z\e(B \e$(CGT22\e(B \e$(C1[?y55\e(B \e$(C;g6sA}4O4Y\e(B.  \e$(C1[?y@;\e(B
-\e$(CFD@O?!\e(B \e$(C3V1b\e(B \e$(C@'GX<-4B\e(B \e$(C1W7/1b\e(B \e$(C@|?!\e(B \e$(C1W\e(B \e$(CFD@O@;\e(B "\e$(CC#>F>_\e(B" \e$(CGU4O4Y\e(B. (\e$(C@L4B\e(B
-\e$(CFD@O@;\e(B "\e$(C9f9.GO4B\e(B \e$(C0M\e(B"\e$(C@L6s0m55\e(B \e$(CGU4O4Y\e(B.)
+편집한 글월을 영구적으로 하기 위해서는 파일에 넣어 두어야 합니다.
+그렇게 하지 않으면, 이맥스가 없어짐과 함께 글월도 사라집니다.  글월을
+파일에 넣기 위해서는 그러기 전에 그 파일을 "찾아야" 합니다. (이는
+파일을 "방문하는 것"이라고도 합니다.)
 
-\e$(CFD@O@;\e(B \e$(CC#4B4Y4B\e(B \e$(C0M@:\e(B \e$(C@L8F=:\e(B \e$(C>H?!<-\e(B \e$(C1W\e(B \e$(CFD@O@G\e(B \e$(C3;?k@;\e(B \e$(C:;4Y4B\e(B \e$(C0M@;\e(B
-\e$(C@G9LGU4O4Y\e(B. \e$(C?)7/0!Av\e(B \e$(C8i?!<-\e(B, \e$(C1W0M@:\e(B \e$(C1W\e(B \e$(CFD@O\e(B \e$(C@ZC<8&\e(B \e$(CFmA}GO7A4B\e(B \e$(C0M0z\e(B
-\e$(C4Y8'>x=@4O4Y\e(B.  \e$(C1W7/3*\e(B, \e$(C@L8F=:7N\e(B \e$(C:/0fGQ\e(B \e$(C;gGW@:\e(B \e$(C1W\e(B \e$(CFD@O@;\e(B "\e$(C0%9+8.\e(B"\e$(CGO1b\e(B
-\e$(C@|1nAv4B\e(B \e$(C?518@{@LAv\e(B \e$(C8xGU4O4Y\e(B.  \e$(C@L4B\e(B \e$(C@}9]Bk\e(B \e$(C:/0f5H\e(B \e$(CFD@O@;\e(B \e$(C?xD!\e(B \e$(C>J0T\e(B
-\e$(C?n?5\e(B \e$(CC<0h?!\e(B \e$(C320\\e(B \e$(C5N4B\e(B \e$(C0M@;\e(B \e$(CGGGO1b\e(B \e$(C@'GX<-\e(B \e$(C1W78=@4O4Y\e(B. \e$(C0%9+8.8&\e(B \e$(CGX55\e(B
-\e$(C@L8F=:4B\e(B \e$(C:/0f\e(B \e$(C;gGW@L\e(B \e$(C3*A_?!\e(B \e$(C=G<v?44Y0m\e(B \e$(C0aA$5G4B\e(B \e$(C0f?l8&\e(B \e$(C0(>HGX\e(B \e$(C1Y?x\e(B
-\e$(CFD@O@;\e(B \e$(C:/0f5H\e(B \e$(C@L8'@87N\e(B \e$(C320\5S4O4Y\e(B.
+파일을 찾는다는 것은 이맥스 안에서 그 파일의 내용을 본다는 것을
+의미합니다. 여러가지 면에서, 그것은 그 파일 자체를 편집하려는 것과
+다름없습니다.  그러나, 이맥스로 변경한 사항은 그 파일을 "갈무리"하기
+전까지는 영구적이지 못합니다.  이는 절반쯤 변경된 파일을 원치 않게
+운영 체계에 남겨 두는 것을 피하기 위해서 그렇습니다. 갈무리를 해도
+이맥스는 변경 사항이 나중에 실수였다고 결정되는 경우를 감안해 근원
+파일을 변경된 이름으로 남겨둡니다.
 
-\e$(CH-8i@G\e(B \e$(C9Y4Z\e(B \e$(C0!1n@L8&\e(B \e$(C:88i\e(B "--:-- TUTORIAL.ko"\e$(C?M\e(B \e$(C00@:\e(B \e$(C=D@87N\e(B \e$(C=C@[GO4B\e(B,
-\e$(C4k=C\e(B \e$(C9.@Z7N\e(B \e$(C=C@[GX<-\e(B \e$(C4k=C\e(B \e$(C9.@Z7N\e(B \e$(C3!3*4B\e(B \e$(CAY@L\e(B \e$(C@V@;\e(B \e$(C0M@T4O4Y\e(B.  \e$(CH-8i@G\e(B \e$(C@L\e(B
-\e$(C:N:P@:\e(B \e$(C:8Ek\e(B, \e$(C9f9.GO0m\e(B \e$(C@V4B\e(B \e$(CFD@O@G\e(B \e$(C@L8'@;\e(B \e$(C:8?)\e(B \e$(CA]4O4Y\e(B.  \e$(CAv1]@:\e(B \e$(C@L8F=:\e(B
-\e$(CAvD'<-@G\e(B \e$(C:9;g:;@N\e(B "TUTORIAL.ko"\e$(C6s4B\e(B \e$(CFD@O@;\e(B \e$(C9f9.GO0m\e(B \e$(C@V4B\e(B \e$(CA_@T4O4Y\e(B.
-\e$(C@L8F=:7N\e(B \e$(CFD@O\e(B \e$(CC#1b8&\e(B \e$(CGO8i\e(B \e$(CA$H.Hw\e(B \e$(C1W\e(B \e$(C0w?!\e(B \e$(CFD@O@G\e(B \e$(C@L8'@L\e(B \e$(C3*E8334O4Y\e(B.
+화면의 바닥 가까이를 보면 "--:-- TUTORIAL.ko"와 같은 식으로 시작하는,
+대시 문자로 시작해서 대시 문자로 끝나는 줄이 있을 것입니다.  화면의 이
+부분은 보통, 방문하고 있는 파일의 이름을 보여 줍니다.  지금은 이맥스
+지침서의 복사본인 "TUTORIAL.ko"라는 파일을 방문하고 있는 중입니다.
+이맥스로 파일 찾기를 하면 정확히 그 곳에 파일의 이름이 나타납니다.
 
-\e$(CFD@O\e(B \e$(CC#1b\e(B \e$(C8m7I@G\e(B \e$(CF/:0GQ\e(B \e$(CA!@:\e(B \e$(C?xGO4B\e(B \e$(CFD@O@G\e(B \e$(C@L8'@;\e(B \e$(C8;GX>_\e(B \e$(CGO4B\e(B
-\e$(C0M@T4O4Y\e(B.  \e$(C8m7I@L\e(B "\e$(C4\8;1b7N:NEM\e(B \e$(C@N<v8&\e(B \e$(C@P4B4Y\e(B"\e$(C6s0m\e(B \e$(CGU4O4Y\e(B (\e$(C@L\e(B \e$(C0f?l\e(B,
-\e$(C@N<v4B\e(B \e$(CFD@O@G\e(B \e$(C@L8'@T4O4Y\e(B).  \e$(C>F7!@G\e(B \e$(C8m7I@;\e(B \e$(CD!0m\e(B \e$(C3*8i\e(B
+파일 찾기 명령의 특별한 점은 원하는 파일의 이름을 말해야 하는
+것입니다.  명령이 "단말기로부터 인수를 읽는다"라고 합니다 (이 경우,
+인수는 파일의 이름입니다).  아래의 명령을 치고 나면
 
-       C-x C-f   \e$(CFD@O\e(B \e$(CC#1b\e(B
+       C-x C-f   파일 찾기
 
-\e$(C@L8F=:4B\e(B \e$(CFD@O@G\e(B \e$(C@L8'@;\e(B \e$(CD!6s0m\e(B \e$(C?d18GU4O4Y\e(B.  \e$(CFD@O\e(B \e$(C@L8'@;\e(B \e$(CD!8i\e(B \e$(CH-8i@G\e(B \e$(C9Y4Z\e(B
-\e$(CAY?!\e(B \e$(C@L8'@L\e(B \e$(C3*E8334O4Y\e(B.  \e$(C@L71\e(B \e$(CA>7y@G\e(B \e$(C@T7B?!\e(B \e$(C>2@O\e(B \e$(C6'?!4B\e(B \e$(C9Y4Z\e(B \e$(CAY@;\e(B \e$(C@[@:\e(B
-\e$(C;g@LD-\e(B(minibuffer)\e$(C@L6s0m\e(B \e$(C:N8(4O4Y\e(B.  \e$(CFr;s=C?!\e(B \e$(C>24B\e(B \e$(C@L8F=:@G\e(B \e$(CFmA}\e(B
-\e$(C8m7I@87N\e(B \e$(CFD@O\e(B \e$(C@L8'@;\e(B \e$(CFmA}GR\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+이맥스는 파일의 이름을 치라고 요구합니다.  파일 이름을 치면 화면의 바닥
+줄에 이름이 나타납니다.  이런 종류의 입력에 쓰일 때에는 바닥 줄을 작은
+사이칸(minibuffer)이라고 부릅니다.  평상시에 쓰는 이맥스의 편집
+명령으로 파일 이름을 편집할 수 있습니다.
 
-\e$(CFD@O\e(B \e$(C@L8'@;\e(B (\e$(CH$@:\e(B \e$(C8p5g\e(B \e$(CA>7y@G\e(B \e$(C@[@:\e(B \e$(C;g@LD-\e(B \e$(C@T7B@;\e(B) \e$(C3V@;\e(B \e$(C6'\e(B, \e$(C8m7I@G\e(B
-\e$(CCk<R4B\e(B C-g\e$(C7N\e(B \e$(CGU4O4Y\e(B.
+파일 이름을 (혹은 모든 종류의 작은 사이칸 입력을) 넣을 때, 명령의
+취소는 C-g로 합니다.
 
->> C-x C-f\e$(C8&\e(B \e$(CD!0m\e(B C-g\e$(C8&\e(B \e$(CD!=J=C?@\e(B.  \e$(C@L4B\e(B \e$(C@[@:\e(B \e$(C;g@LD-@;\e(B \e$(CCk<RGO0m\e(B \e$(C6G\e(B,
-   \e$(C@[@:\e(B \e$(C;g@LD-@;\e(B \e$(C>20m\e(B \e$(C@V4B\e(B C-x C-f \e$(C8m7I55\e(B \e$(CCk<RGU4O4Y\e(B.  \e$(C1W7/9G7N\e(B \e$(C>F9+\e(B
-   \e$(CFD@O55\e(B \e$(CC#Av\e(B \e$(C>J4B\e(B \e$(C0M@T4O4Y\e(B.
+>> C-x C-f를 치고 C-g를 치십시오.  이는 작은 사이칸을 취소하고 또,
+   작은 사이칸을 쓰고 있는 C-x C-f 명령도 취소합니다.  그러므로 아무
+   파일도 찾지 않는 것입니다.
 
-\e$(CFD@O\e(B \e$(C@L8'@;\e(B \e$(C4Y\e(B \e$(C1b@TG_@88i\e(B <Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(CA>7aGO=J=C?@\e(B.  \e$(C1W7/8i\e(B C-x
-C-f \e$(C8m7I@L\e(B \e$(C@[5?5G>n\e(B \e$(C<1EC5H\e(B \e$(CFD@O@;\e(B \e$(CC#1b\e(B \e$(C=C@[GU4O4Y\e(B.  C-x C-f \e$(C8m7I@L\e(B
-\e$(C3!3*8i\e(B \e$(C@[@:\e(B \e$(C;g@LD-@:\e(B \e$(C;g6sA}4O4Y\e(B.
+파일 이름을 다 기입했으면 <Return>을 쳐서 종료하십시오.  그러면 C-x
+C-f 명령이 작동되어 선택된 파일을 찾기 시작합니다.  C-x C-f 명령이
+끝나면 작은 사이칸은 사라집니다.
 
-\e$(C@a=C\e(B \e$(CHD?!4B\e(B \e$(CFD@O@G\e(B \e$(C3;?k@L\e(B \e$(CH-8i?!\e(B \e$(C3*E83*0m\e(B \e$(C1W\e(B \e$(C3;?k@;\e(B \e$(CFmA}GR\e(B \e$(C<v\e(B \e$(C@V0T\e(B
-\e$(C5K4O4Y\e(B.  \e$(C:/0f\e(B \e$(C;gGW@;\e(B \e$(C?518@{@87N\e(B \e$(CGO0m\e(B \e$(C=M@88i\e(B \e$(C4Y@=@G\e(B \e$(C8m7I@;\e(B \e$(CD(4O4Y\e(B.
+잠시 후에는 파일의 내용이 화면에 나타나고 그 내용을 편집할 수 있게
+됩니다.  변경 사항을 영구적으로 하고 싶으면 다음의 명령을 칩니다.
 
-       C-x C-s   \e$(CFD@O\e(B \e$(C0%9+8.\e(B
+       C-x C-s   파일 갈무리
 
-\e$(C@L\e(B \e$(C8m7I@:\e(B \e$(C@L8F=:\e(B \e$(C3;@G\e(B \e$(C1[?y@;\e(B \e$(CFD@O?!\e(B \e$(C:9;gGU4O4Y\e(B.  \e$(C@L\e(B \e$(C8m7I@L\e(B \e$(CC99xB07N\e(B
-\e$(C<vG`5I\e(B \e$(C6'4B\e(B \e$(C@L8F=:0!\e(B \e$(C1Y?x\e(B \e$(CFD@O@;\e(B \e$(C;u\e(B \e$(C@L8'@87N\e(B \e$(C9Y2Y>n\e(B \e$(C3u@=@87N=a\e(B \e$(C@R>n9v81\e(B
-\e$(C?l7A8&\e(B \e$(C9fAvGU4O4Y\e(B.  \e$(C;u\e(B \e$(C@L8'@:\e(B \e$(C1Y?x\e(B \e$(CFD@O\e(B \e$(C@L8'@G\e(B \e$(C3!?!\e(B "~"\e$(C@;\e(B \e$(C4uGT@87N=a\e(B
-\e$(C885i>nA}4O4Y\e(B.
+이 명령은 이맥스 내의 글월을 파일에 복사합니다.  이 명령이 첫번째로
+수행될 때는 이맥스가 근원 파일을 새 이름으로 바꾸어 놓음으로써 잃어버릴
+우려를 방지합니다.  새 이름은 근원 파일 이름의 끝에 "~"을 더함으로써
+만들어집니다.
 
-\e$(C0%9+8.0!\e(B \e$(C3!3*8i\e(B \e$(C@L8F=:4B\e(B \e$(C>2?)Ax\e(B \e$(CFD@O@G\e(B \e$(C@L8'@;\e(B \e$(C@N<bGU4O4Y\e(B.  \e$(CFD@O@:\e(B \e$(C>FAV\e(B
-\e$(C@ZAV\e(B \e$(C0%9+8.GT@87N=a\e(B \e$(C?n?5\e(B \e$(CC<0h0!\e(B \e$(C?M8#8#\e(B \e$(C9+3JA.55\e(B \e$(C89@:\e(B \e$(C@[>w@L\e(B \e$(C<U=G5GAv\e(B
-\e$(C>J557O\e(B \e$(CGU4O4Y\e(B.
+갈무리가 끝나면 이맥스는 쓰여진 파일의 이름을 인쇄합니다.  파일은 아주
+자주 갈무리함으로써 운영 체계가 와르르 무너져도 많은 작업이 손실되지
+않도록 합니다.
 
->> C-x C-s\e$(C8&\e(B \e$(CCD<-\e(B \e$(CAvD'<-@G\e(B \e$(C:9;g:;@;\e(B \e$(C0%9+8.\e(B \e$(CGO=J=C?@\e(B.
-   \e$(C1W7/8i\e(B "Wrote ...TUTORIAL.ko"\e$(C6s0m\e(B \e$(CH-8i@G\e(B \e$(C9Y4Z?!\e(B \e$(C@N<b5I\e(B \e$(C0M@T4O4Y\e(B.
+>> C-x C-s를 쳐서 지침서의 복사본을 갈무리 하십시오.
+   그러면 "Wrote ...TUTORIAL.ko"라고 화면의 바닥에 인쇄될 것입니다.
 
-\e$(C:80E3*\e(B \e$(CFmA}GO1b\e(B \e$(C@'GX\e(B, \e$(CA8@gGO4B\e(B \e$(CFD@O@;\e(B \e$(CC#@;\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C6GGQ\e(B \e$(CA8@gGOAv\e(B
-\e$(C>J4B\e(B \e$(CFD@O55\e(B \e$(CC#@;\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C@L780T\e(B \e$(CGO8i\e(B \e$(C@L8F=:7N\e(B \e$(CFD@O@;\e(B \e$(C885i0T\e(B
-\e$(C5K4O4Y\e(B: \e$(C:s\e(B \e$(C3;?k@87N\e(B \e$(C=C@[5G4B\e(B \e$(CFD@O@;\e(B \e$(CC#>F<-\e(B \e$(C1[?y@;\e(B \e$(C3"?l1b\e(B \e$(C=C@[GU4O4Y\e(B.
-\e$(CFD@O@;\e(B "\e$(C0%9+8.\e(B"\e$(CGO557O\e(B \e$(C?dC;GO8i\e(B \e$(C@L8F=:4B\e(B \e$(C3"?vAx\e(B \e$(C1[?y@;\e(B \e$(C3;?k@87N\e(B \e$(CGO4B\e(B
-\e$(CFD@O@;\e(B \e$(C=GA&7N\e(B \e$(C885i>n\e(B \e$(C3@4O4Y\e(B.  \e$(C1W71\e(B \e$(CHD?!4B\e(B \e$(C@L\e(B \e$(CFD@O@:\e(B \e$(C@L9L\e(B \e$(CA8@gGO4B\e(B
-\e$(CFD@O@L\e(B \e$(C5K4O4Y\e(B.
+보거나 편집하기 위해, 존재하는 파일을 찾을 수 있습니다.  또한 존재하지
+않는 파일도 찾을 수 있습니다.  이렇게 하면 이맥스로 파일을 만들게
+됩니다: 빈 내용으로 시작되는 파일을 찾아서 글월을 끼우기 시작합니다.
+파일을 "갈무리"하도록 요청하면 이맥스는 끼워진 글월을 내용으로 하는
+파일을 실제로 만들어 냅니다.  그런 후에는 이 파일은 이미 존재하는
+파일이 됩니다.
 
 
-* \e$(C;g@LD-\e(B
+* 사이칸
 --------
 
-\e$(C5N9xB0\e(B \e$(CFD@O@;\e(B C-x C-f\e$(C7N\e(B \e$(CC#@88i\e(B, \e$(CC99xB0\e(B \e$(CFD@O@:\e(B \e$(C@L8F=:@G\e(B \e$(C3;:N?!\e(B \e$(C32>F\e(B
-\e$(C@V=@4O4Y\e(B. \e$(C1W\e(B \e$(CFD@O@:\e(B C-x C-f\e$(C7N\e(B \e$(C@gBw\e(B \e$(CC#@=@87N<-\e(B \e$(C4Y=C\e(B \e$(C>y9Y2\\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B. \e$(C@L71\e(B \e$(C=D@87N\e(B \e$(C8E?l\e(B \e$(C89@:\e(B \e$(C<v@G\e(B \e$(CFD@O5i@;\e(B \e$(C@L8F=:\e(B \e$(C3;:N?!\e(B \e$(C:R7/\e(B \e$(C5i@O\e(B
-\e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+두번째 파일을 C-x C-f로 찾으면, 첫번째 파일은 이맥스의 내부에 남아
+있습니다. 그 파일은 C-x C-f로 재차 찾음으로서 다시 엇바꿀 수
+있습니다. 이런 식으로 매우 많은 수의 파일들을 이맥스 내부에 불러 들일
+수 있습니다.
 
->> C-x C-f foo <Return>\e$(C@;\e(B \e$(CCD<-\e(B "foo"\e$(C6s4B\e(B \e$(C@L8'@G\e(B \e$(CFD@O@;\e(B \e$(C885e=J=C?@\e(B.
-   \e$(C1W8.0m4B\e(B \e$(C1[?y@;\e(B \e$(C3"?l0m\e(B \e$(CFmA}GO?)\e(B C-x C-s\e$(C7N\e(B "foo"\e$(C8&\e(B \e$(C0%9+8.GO=J=C?@\e(B.
-   \e$(C86Av87@87N\e(B, C-x C-f TUTORIAL.ko <Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(CAvD'<-7N\e(B \e$(C4Y=C\e(B \e$(C59>F\e(B
-   \e$(C?@=J=C?@\e(B.
+>> C-x C-f foo <Return>을 쳐서 "foo"라는 이름의 파일을 만드십시오.
+   그리고는 글월을 끼우고 편집하여 C-x C-s로 "foo"를 갈무리하십시오.
+   마지막으로, C-x C-f TUTORIAL.ko <Return>을 쳐서 지침서로 다시 돌아
+   오십시오.
 
-\e$(C@L8F=:4B\e(B \e$(C0"\e(B \e$(CFD@O@G\e(B \e$(C1[?y@;\e(B "\e$(C;g@LD-\e(B"\e$(C@L6s0m\e(B \e$(C:R8.?l4B\e(B \e$(C0M\e(B \e$(C>H?!\e(B \e$(C@z@eGU4O4Y\e(B.
-\e$(CFD@O@;\e(B \e$(CC#4B\e(B \e$(C0M@:\e(B \e$(C@L8F=:@G\e(B \e$(C3;:N?!\e(B \e$(C;u\e(B \e$(C;g@LD-@;\e(B \e$(C885e4B\e(B \e$(C0M0z\e(B \e$(C00=@4O4Y\e(B.
-\e$(C@L8F=:@G\e(B \e$(C@O7N\e(B \e$(CGvA8GO0m\e(B \e$(C@V4B\e(B \e$(C;g@LD-@G\e(B \e$(C8q7O@;\e(B \e$(C:81b\e(B \e$(C@'GX<-4B\e(B \e$(C4Y@=0z\e(B \e$(C00@L\e(B
-\e$(CD!=J=C?@\e(B.
+이맥스는 각 파일의 글월을 "사이칸"이라고 불리우는 것 안에 저장합니다.
+파일을 찾는 것은 이맥스의 내부에 새 사이칸을 만드는 것과 같습니다.
+이맥스의 일로 현존하고 있는 사이칸의 목록을 보기 위해서는 다음과 같이
+치십시오.
 
-       C-x C-b   \e$(C;g@LD-\e(B \e$(C8q7O\e(B
+       C-x C-b   사이칸 목록
 
->> C-x C-b\e$(C8&\e(B \e$(CAv1]\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> C-x C-b를 지금 쳐 보십시오.
 
-\e$(C0"\e(B \e$(C;g@LD-@L\e(B \e$(C>n62\e(B \e$(C@L8'@;\e(B \e$(C0.0m\e(B \e$(C@V4B0!\e(B \e$(C:8=J=C?@\e(B.  \e$(C;g@LD-@:\e(B \e$(C0#AwGO0m\e(B \e$(C@V4B\e(B
-\e$(C1[?y@G\e(B \e$(C8pC<0!\e(B \e$(C5G4B\e(B \e$(CFD@O@G\e(B \e$(C@L8'@;\e(B \e$(C0.0m\e(B \e$(C@V@;\e(B \e$(C<v55\e(B \e$(C@V=@4O4Y\e(B.  \e$(C>n62\e(B
-\e$(C;g@LD-5i@:\e(B \e$(CFD@O0z\e(B \e$(C9+0|GU4O4Y\e(B.  \e$(C?98&\e(B \e$(C5i>n\e(B, "*Buffer List*"\e$(C6s4B\e(B \e$(C;g@LD-@:\e(B
-\e$(C>F9+\e(B \e$(CFD@O55\e(B \e$(C0.0m\e(B \e$(C@VAv\e(B \e$(C>J=@4O4Y\e(B.  \e$(C@L\e(B \e$(C;g@LD-@:\e(B C-x C-b\e$(C7N\e(B \e$(C885i>nAx\e(B \e$(C;g@LD-\e(B
-\e$(C8q7O@;\e(B \e$(C4c0m\e(B \e$(C@V@;\e(B \e$(C;S@T4O4Y\e(B.  \e$(C@L8F=:\e(B \e$(CC"\e(B \e$(C>H?!<-\e(B \e$(C:<\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C8p5g\e(B \e$(C1[?y@:\e(B
-\e$(C>n62\e(B \e$(C;g@LD-@G\e(B \e$(C@O:N:P\e(B \e$(C@T4O4Y\e(B.
+각 사이칸이 어떤 이름을 갖고 있는가 보십시오.  사이칸은 간직하고 있는
+글월의 모체가 되는 파일의 이름을 갖고 있을 수도 있습니다.  어떤
+사이칸들은 파일과 무관합니다.  예를 들어, "*Buffer List*"라는 사이칸은
+아무 파일도 갖고 있지 않습니다.  이 사이칸은 C-x C-b로 만들어진 사이칸
+목록을 담고 있을 뿐입니다.  이맥스 창 안에서 볼 수 있는 모든 글월은
+어떤 사이칸의 일부분 입니다.
 
->> C-x 1\e$(C@;\e(B \e$(CCD<-\e(B \e$(C;g@LD-\e(B \e$(C8q7O@;\e(B \e$(C>x>V=J=C?@\e(B.
+>> C-x 1을 쳐서 사이칸 목록을 없애십시오.
 
-\e$(CGQ\e(B \e$(CFD@O@G\e(B \e$(C1[?y@;\e(B \e$(C:/0fGQ\e(B \e$(CHD\e(B \e$(C4Y8%\e(B \e$(CFD@O@;\e(B \e$(CC#@88i\e(B \e$(CC99xB0\e(B \e$(CFD@O@:\e(B \e$(C0%9+8.5GAv\e(B
-\e$(C>J@:\e(B \e$(C0M@T4O4Y\e(B.  \e$(C1W\e(B \e$(C:/0f\e(B \e$(C;gGW@:\e(B \e$(C@L8F=:\e(B \e$(C3;:N@G\e(B \e$(CFD@O\e(B \e$(C;g@LD-?!88\e(B \e$(C32>F\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(C5N9xB0\e(B \e$(CFD@O@G\e(B \e$(C;g@LD-@;\e(B \e$(C885i0E3*\e(B \e$(CFmA}GO4B\e(B \e$(C0M@:\e(B \e$(CC99xB0\e(B \e$(CFD@O@G\e(B
-\e$(C;g@LD-?!\e(B \e$(C@|Gt\e(B \e$(C?5Gb@;\e(B \e$(CAVAv\e(B \e$(C>J=@4O4Y\e(B.  \e$(C@L4B\e(B \e$(C8E?l\e(B \e$(C@/?kGO1b4B\e(B \e$(CGO3*\e(B \e$(C4Y8%\e(B
-\e$(C8i?!<-4B\e(B \e$(CC99xB0\e(B \e$(CFD@O@G\e(B \e$(C;g@LD-@;\e(B \e$(C0%9+8.GR\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C0#FmGQ\e(B \e$(C4Y8%\e(B \e$(C9f9}@L\e(B
-\e$(CGJ?dGO4Y4B\e(B \e$(C0M@;\e(B \e$(C@G9LGU4O4Y\e(B.  C-x C-f\e$(C8&\e(B \e$(CCD<-\e(B \e$(C1W\e(B \e$(C;g@LD-@87N\e(B \e$(C>y9Y2[\e(B \e$(CHD\e(B
-C-x C-s\e$(C7N\e(B \e$(C0%9+8.GO4B\e(B \e$(C0M@:\e(B \e$(C1MBz@:\e(B \e$(C@O@T4O4Y\e(B.  \e$(C1W7!<-\e(B \e$(C4Y@=0z\e(B \e$(C00@:\e(B \e$(C8m7I@L\e(B
-\e$(C@V=@4O4Y\e(B
+한 파일의 글월을 변경한 후 다른 파일을 찾으면 첫번째 파일은 갈무리되지
+않은 것입니다.  그 변경 사항은 이맥스 내부의 파일 사이칸에만 남아
+있습니다.  두번째 파일의 사이칸을 만들거나 편집하는 것은 첫번째 파일의
+사이칸에 전혀 영향을 주지 않습니다.  이는 매우 유용하기는 하나 다른
+면에서는 첫번째 파일의 사이칸을 갈무리할 수 있는 간편한 다른 방법이
+필요하다는 것을 의미합니다.  C-x C-f를 쳐서 그 사이칸으로 엇바꾼 후
+C-x C-s로 갈무리하는 것은 귀찮은 일입니다.  그래서 다음과 같은 명령이
+있습니다
 
-       C-x s     \e$(C8n8n\e(B \e$(C;g@LD-\e(B \e$(C0%9+8.\e(B
+       C-x s     몇몇 사이칸 갈무리
 
-C-x s\e$(C4B\e(B, \e$(C:/0f5G>zAv88\e(B \e$(C0%9+8.5GAv\e(B \e$(C>J@:\e(B \e$(C;g@LD-@L\e(B \e$(C@V3*\e(B \e$(CA6;gGX\e(B \e$(C:>4O4Y\e(B.
-\e$(C1W8.0m4B\e(B \e$(C1W71\e(B \e$(C;g@LD-5i?!\e(B \e$(C4kGX<-\e(B \e$(C1W\e(B \e$(C0M@;\e(B \e$(C0%9+8.GR\e(B \e$(C0M@N0!8&\e(B \e$(C90>n\e(B
-\e$(C:>4O4Y\e(B.
+C-x s는, 변경되었지만 갈무리되지 않은 사이칸이 있나 조사해 봅니다.
+그리고는 그런 사이칸들에 대해서 그 것을 갈무리할 것인가를 물어
+봅니다.
 
->> \e$(CGQ\e(B \e$(CAY@G\e(B \e$(C1[?y@;\e(B \e$(C3"?n\e(B \e$(CHD\e(B C-x s\e$(C8&\e(B \e$(CD!=J=C?@\e(B.
-   \e$(C1W7/8i\e(B TUTORIAL.ko\e$(C6s4B\e(B \e$(C@L8'@G\e(B \e$(C;g@LD-@;\e(B \e$(C0%9+8.GR\e(B \e$(C0M@NAv\e(B \e$(C90>n\e(B \e$(C:<\e(B
-   \e$(C0M@T4O4Y\e(B.  "y"\e$(C8&\e(B \e$(CCD<-\e(B \e$(C90@=?!\e(B \e$(C?96s0m\e(B \e$(C4dGO=J=C?@\e(B.
+>> 한 줄의 글월을 끼운 후 C-x s를 치십시오.
+   그러면 TUTORIAL.ko라는 이름의 사이칸을 갈무리할 것인지 물어 볼
+   것입니다.  "y"를 쳐서 물음에 예라고 답하십시오.
 
-* \e$(C8m7I>n@G\e(B \e$(CH.@e\e(B
+* 명령어의 확장
 ---------------
 
-\e$(C@L8F=:@G\e(B \e$(C8m7I>n4B\e(B \e$(C3J9+\e(B \e$(C89>F<-\e(B \e$(C@L\e(B \e$(C8p5g\e(B \e$(C8m7I@;\e(B \e$(CA&>n<h3*\e(B meta\e$(C<h?!\e(B \e$(CGR4gGR\e(B
-\e$(C<v\e(B \e$(C>x=@4O4Y\e(B.  \e$(C@L8F=:4B\e(B \e$(C@L71\e(B \e$(C9.A&8&\e(B X (eXtend) \e$(C8m7I@87N\e(B \e$(CGX0aGU4O4Y\e(B.
-\e$(C@L?!4B\e(B \e$(C5N0!Av\e(B \e$(CA>7y0!\e(B \e$(C@V=@4O4Y\e(B:
+이맥스의 명령어는 너무 많아서 이 모든 명령을 제어쇠나 meta쇠에 할당할
+수 없습니다.  이맥스는 이런 문제를 X (eXtend) 명령으로 해결합니다.
+이에는 두가지 종류가 있습니다:
 
-       C-x     \e$(C9.@Z\e(B \e$(CH.@e\e(B.  \e$(C9.@Z\e(B \e$(CGO3*0!\e(B \e$(C5Z5{8'\e(B.
-       M-x     \e$(C@L8'\e(B \e$(C8m7I@G\e(B \e$(CH.@e\e(B.  \e$(C1d\e(B \e$(C@L8'@L\e(B \e$(C5Z5{8'\e(B.
+       C-x     문자 확장.  문자 하나가 뒤따름.
+       M-x     이름 명령의 확장.  긴 이름이 뒤따름.
 
-\e$(C@L\e(B \e$(C8m7I5i@:\e(B \e$(C4k03\e(B \e$(C@/?kGOAv88\e(B, \e$(CAv1]1nAv\e(B \e$(C9h?v\e(B \e$(C?B\e(B \e$(C8m7I5i:84Y4B\e(B \e$(C4z\e(B \e$(C:s9xGO0T\e(B
-\e$(C;g?k5K4O4Y\e(B.  \e$(C@L71\e(B \e$(CA>7y@G\e(B \e$(C8m7I@;\e(B \e$(C@L9L\e(B \e$(C5N\e(B \e$(C03\e(B \e$(C>K0m\e(B \e$(C@V=@4O4Y\e(B: \e$(CFD@O\e(B
-\e$(C8m7I\e(B \e$(CA_?!\e(B C-x C-f\e$(C7N\e(B \e$(CC#1b?M\e(B C-x C-s\e$(C7N\e(B \e$(C0%9+8.GO1b\e(B.  \e$(C4Y8%\e(B \e$(C?94B\e(B \e$(C@L8F=:\e(B \e$(C@[>w\e(B
-\e$(C=C0#@;\e(B \e$(C86D!4B\e(B \e$(C8m7I@T4O4Y\e(B--\e$(C@L4B\e(B C-x C-c \e$(C8m7I\e(B.  (\e$(C:/0f\e(B \e$(C;gGW@;\e(B
-\e$(C@R>n9v8.Av3*\e(B \e$(C>J@;1n\e(B \e$(CGO4B\e(B \e$(C0FA$@:\e(B \e$(C>J\e(B \e$(CGX55\e(B \e$(C5K4O4Y\e(B; C-x C-c\e$(C4B\e(B \e$(C@L8F=:8&\e(B
-\e$(CAW@L1b\e(B \e$(C@|?!\e(B \e$(C0"0"@G\e(B \e$(C:/0f5H\e(B \e$(CFD@O@;\e(B \e$(C0%9+8.GR\e(B \e$(C1bH88&\e(B \e$(CA]4O4Y\e(B.)
+이 명령들은 대개 유용하지만, 지금까지 배워 온 명령들보다는 덜 빈번하게
+사용됩니다.  이런 종류의 명령을 이미 두 개 알고 있습니다: 파일
+명령 중에 C-x C-f로 찾기와 C-x C-s로 갈무리하기.  다른 예는 이맥스 작업
+시간을 마치는 명령입니다--이는 C-x C-c 명령.  (변경 사항을
+잃어버리지나 않을까 하는 걱정은 않 해도 됩니다; C-x C-c는 이맥스를
+죽이기 전에 각각의 변경된 파일을 갈무리할 기회를 줍니다.)
 
-C-z\e$(C4B\e(B \e$(C@L8F=:8&\e(B *\e$(C@S=C7N\e(B* \e$(C3*?@1b\e(B \e$(C@'GQ\e(B \e$(C8m7I@T4O4Y\e(B--\e$(C1W7!<-\e(B \e$(C4Y@=?!\e(B, \e$(CGO4x\e(B
-\e$(CA_@G\e(B \e$(C@L8F=:\e(B \e$(C@[>w\e(B \e$(C=C0#@87N\e(B \e$(C4Y=C\e(B \e$(C5G59>F\e(B \e$(C0%\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+C-z는 이맥스를 *임시로* 나오기 위한 명령입니다--그래서 다음에, 하던
+중의 이맥스 작업 시간으로 다시 되돌아 갈 수 있습니다.
 
-\e$(C?n?5\e(B \e$(CC<0h0!\e(B \e$(CGc?kGO8i\e(B C-z\e$(C4B\e(B \e$(C@L8F=:8&\e(B "\e$(CA_Av\e(B"\e$(C=CE54O4Y\e(B(suspend); \e$(CAo\e(B, \e$(C@L\e(B
-\e$(C8m7I@:\e(B \e$(CA60!:q\e(B(shell)\e$(C7N\e(B \e$(C59>F\e(B \e$(C0!557O\e(B \e$(CGOAv88\e(B \e$(C@L8F=:8&\e(B \e$(CFD1+GO4B\e(B \e$(C0M@:\e(B
-\e$(C>F4U4O4Y\e(B. \e$(C4k:N:P@G\e(B \e$(CA60!:q?!<-4B\e(B `fg'\e$(C3*\e(B `%emacs'\e$(C8m7I@87N\e(B \e$(C@L8F=:8&\e(B \e$(C0h<SGR\e(B
-\e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+운영 체계가 허용하면 C-z는 이맥스를 "중지"시킵니다(suspend); 즉, 이
+명령은 조가비(shell)로 돌아 가도록 하지만 이맥스를 파괴하는 것은
+아닙니다. 대부분의 조가비에서는 `fg'나 `%emacs'명령으로 이맥스를 계속할
+수 있습니다.
 
-\e$(CA_AvGO4B\e(B \e$(C0M@;\e(B \e$(CA&0xGOAv\e(B \e$(C>J4B\e(B \e$(C?n?5\e(B \e$(CC<0h?!<-4B\e(B C-z\e$(C?!\e(B \e$(C@GGX\e(B, \e$(C@L8F=:\e(B \e$(C9X?!<-\e(B
-\e$(C=GG`5G4B\e(B \e$(C>F7'A60!:q0!\e(B \e$(C885i>n\e(B \e$(CAv0T\e(B \e$(C5G4B5%\e(B \e$(C?)1b<-\e(B \e$(C4Y8%\e(B \e$(CGA7N1W7%5i@;\e(B
-\e$(C=GG`GQ\e(B \e$(CHD\e(B \e$(C@L8F=:7N\e(B \e$(C59>F\e(B \e$(C?C\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C1bH80!\e(B \e$(C@V=@4O4Y\e(B; \e$(C;g=G;s\e(B \e$(C@L8F=:7N:NEM\e(B
-"\e$(C3*0!4B\e(B" \e$(C0M@:\e(B \e$(C>F4U4O4Y\e(B.  \e$(C@L\e(B \e$(C0f?l\e(B \e$(C:8Ek\e(B, \e$(CA60!:q\e(B \e$(C8m7I@N\e(B `exit'\e$(C@87N\e(B
-\e$(C>F7'A60!:q?!<-\e(B \e$(C@L8F=:?!\e(B \e$(C5G59>F\e(B \e$(C?I4O4Y\e(B.
+중지하는 것을 제공하지 않는 운영 체계에서는 C-z에 의해, 이맥스 밑에서
+실행되는 아랫조가비가 만들어 지게 되는데 여기서 다른 프로그램들을
+실행한 후 이맥스로 돌아 올 수 있는 기회가 있습니다; 사실상 이맥스로부터
+"나가는" 것은 아닙니다.  이 경우 보통, 조가비 명령인 `exit'으로
+아랫조가비에서 이맥스에 되돌아 옵니다.
 
-C-x C-c\e$(C4B\e(B \e$(C@|;j1b?!<-\e(B \e$(C9~>n3*1b\e(B \e$(CGR\e(B \e$(C6'3*\e(B \e$(C;g?kGU4O4Y\e(B.  \e$(CFmAv8&\e(B \e$(CCk1^GO4B\e(B
-\e$(CGA7N1W7%@L3*\e(B \e$(C4Y8%\e(B \e$(C@b4YGQ\e(B \e$(C55?r8p\e(B(utilities)\e$(C5i@L\e(B \e$(C>_1bGQ\e(B \e$(C@L8F=:4B\e(B
-\e$(CA_Av=CE24Y4B\e(B \e$(C0M@;\e(B \e$(C8p8#1b\e(B \e$(C6'9.?!\e(B \e$(C3*0!1b8&\e(B \e$(CGX>_\e(B \e$(CGU4O4Y\e(B.  \e$(CGOAv88\e(B, \e$(C:8Ek@G\e(B
-\e$(C0f?l\e(B, \e$(C9~>n3*1b8&\e(B \e$(CGOAv\e(B \e$(C>J4B\e(B \e$(CGQ\e(B, \e$(C@L8F=:8&\e(B \e$(C3*0!1b:84Y4B\e(B \e$(CA_AvGO4B\e(B \e$(C0M@L\e(B
-\e$(CAA=@4O4Y\e(B.
+C-x C-c는 전산기에서 벗어나기 할 때나 사용합니다.  편지를 취급하는
+프로그램이나 다른 잡다한 도움모(utilities)들이 야기한 이맥스는
+중지시킨다는 것을 모르기 때문에 나가기를 해야 합니다.  하지만, 보통의
+경우, 벗어나기를 하지 않는 한, 이맥스를 나가기보다는 중지하는 것이
+좋습니다.
 
-C-x \e$(C8m7I>n4B\e(B \e$(C89@L\e(B \e$(C@V=@4O4Y\e(B. \e$(C@L9L\e(B \e$(C9h?n\e(B \e$(C0M@;\e(B \e$(C>F7!?!\e(B \e$(CAW:8@T4O4Y\e(B.
+C-x 명령어는 많이 있습니다. 이미 배운 것을 아래에 죽보입니다.
 
-       C-x C-f         \e$(CFD@O\e(B \e$(CC#1b\e(B.
-       C-x C-s         \e$(CFD@O\e(B \e$(C0%9+8.\e(B.
-       C-x C-b         \e$(C;g@LD-\e(B \e$(C8q7O\e(B.
-       C-x C-c         \e$(C@L8F=:\e(B \e$(C3!3;1b\e(B.
-       C-x u           \e$(C9+8#1b\e(B.
+       C-x C-f         파일 찾기.
+       C-x C-s         파일 갈무리.
+       C-x C-b         사이칸 목록.
+       C-x C-c         이맥스 끝내기.
+       C-x u           무르기.
 
-\e$(C@L8'\e(B \e$(CH.@e\e(B \e$(C8m7I@:\e(B \e$(C@ZAV\e(B \e$(C;g?k5GAv\e(B \e$(C>J0E3*\e(B \e$(CF/:0GQ\e(B \e$(C9f=D?!<-3*\e(B \e$(C>2@L4B\e(B
-\e$(C8m7I@T4O4Y\e(B.  \e$(CGQ0!Av\e(B \e$(C?94B\e(B replace-string \e$(C8m7I@N5%\e(B \e$(C@L4B\e(B \e$(C@|?*@{@87N\e(B \e$(CGQ\e(B
-\e$(C9.@Z?-@;\e(B \e$(C4Y8%\e(B \e$(C9.@Z?-7N\e(B \e$(C;u7N9Y2_4O4Y\e(B.  M-x\e$(C8&\e(B \e$(CD!8i\e(B \e$(C@L8F=:4B\e(B \e$(CH-8i@G\e(B
-\e$(C9Y4Z?!<-\e(B M-x\e$(C6s0m\e(B \e$(C1f@b@LGO?)\e(B \e$(C8m7I@G\e(B \e$(C@L8'@;\e(B \e$(CD!557O\e(B \e$(CGU4O4Y\e(B; \e$(C@L\e(B \e$(C0f?l4B\e(B
-"replace-string".  "repl s<TAB>"\e$(C88\e(B \e$(CCD55\e(B \e$(C@L8F=:4B\e(B \e$(C@L8'@;\e(B \e$(C?O<:=CE3\e(B
-\e$(C0M@T4O4Y\e(B.  \e$(C8m7I\e(B \e$(C@L8'@:\e(B <Return>\e$(C@87N\e(B \e$(C3!334O4Y\e(B.
+이름 확장 명령은 자주 사용되지 않거나 특별한 방식에서나 쓰이는
+명령입니다.  한가지 예는 replace-string 명령인데 이는 전역적으로 한
+문자열을 다른 문자열로 새로바꿉니다.  M-x를 치면 이맥스는 화면의
+바닥에서 M-x라고 길잡이하여 명령의 이름을 치도록 합니다; 이 경우는
+"replace-string".  "repl s<TAB>"만 쳐도 이맥스는 이름을 완성시킬
+것입니다.  명령 이름은 <Return>으로 끝납니다.
 
-replace-string \e$(C8m7I@:\e(B \e$(C5N03@G\e(B \e$(C@N<v8&\e(B \e$(C?d18GU4O4Y\e(B--\e$(C9Y2n>nA.>_\e(B \e$(CGR\e(B \e$(C9.@Z?-0z\e(B
-\e$(C;u7N9Y2n>nAz\e(B \e$(C9.@Z?-\e(B.  \e$(C0"0"@G\e(B \e$(C@N<v4B\e(B <Return>\e$(C@87N\e(B \e$(C3!3;>_\e(B \e$(CGU4O4Y\e(B.
+replace-string 명령은 두개의 인수를 요구합니다--바뀌어져야 할 문자열과
+새로바뀌어질 문자열.  각각의 인수는 <Return>으로 끝내야 합니다.
 
->> \e$(C1t9Z@L8&\e(B \e$(C@L\e(B \e$(CAY?!<-\e(B \e$(C5N\e(B \e$(CAY\e(B \e$(C>F7!@G\e(B \e$(C:s\e(B \e$(CAY7N\e(B \e$(C?rAw@L=J=C?@\e(B.
-   \e$(C1W\e(B \e$(CHD\e(B M-x repl s<Return>\e$(C:/H-5G\e(B<Return>\e$(C9Y2n\e(B<Return>\e$(C@;\e(B \e$(CD!=J=C?@\e(B.
+>> 깜박이를 이 줄에서 두 줄 아래의 빈 줄로 움직이십시오.
+   그 후 M-x repl s<Return>변화되<Return>바뀌<Return>을 치십시오.
 
-   \e$(C@L\e(B \e$(CAY@L\e(B \e$(C>n6;0T\e(B \e$(C:/H-5G>z4B0!8&\e(B \e$(C@/@GGO=J=C?@\e(B: \e$(C1t9Z@L0!\e(B \e$(C@V4B\e(B \e$(CCJ1b\e(B \e$(C@'D!\e(B
-   \e$(C4Y@=?!\e(B \e$(C:/\e(B-\e$(CH-\e(B-\e$(C5G\e(B \e$(C6s4B\e(B \e$(C398;@L\e(B \e$(C3*?C\e(B \e$(C6'864Y\e(B "\e$(C9Y2n\e(B"\e$(C6s0m\e(B
-   \e$(C;u7N9Y2n>z=@4O4Y\e(B.
+   이 줄이 어떻게 변화되었는가를 유의하십시오: 깜박이가 있는 초기 위치
+   다음에 변-화-되 라는 낱말이 나올 때마다 "바뀌"라고
+   새로바뀌었습니다.
 
 
-* \e$(C@Z5?\e(B \e$(C0%9+8.\e(B
+* 자동 갈무리
 -------------
 
-\e$(CFD@O@;\e(B \e$(C:/0fGQ\e(B \e$(CHD?!\e(B \e$(C>FAw\e(B \e$(C0%9+8.8&\e(B \e$(CGOAv\e(B \e$(C>J>R@88i\e(B \e$(C@|;j1b0!\e(B \e$(C?M8#8#\e(B
-\e$(C9+3JA|@87N=a\e(B \e$(C:/0f\e(B \e$(C;gGW@;\e(B \e$(C@R>n\e(B \e$(C9v81\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C@L71\e(B \e$(C@g>S@;\e(B \e$(C9fAvGO1b\e(B
-\e$(C@'GX\e(B, \e$(C@L8F=:4B\e(B \e$(CFmA}GO0m\e(B \e$(C@V4B\e(B \e$(C0"0"@G\e(B \e$(CFD@O@;\e(B \e$(CAV1b@{@87N\e(B "\e$(C@Z5?\e(B \e$(C0%9+8.\e(B"
-\e$(CFD@O?!\e(B \e$(C>94O4Y\e(B.  \e$(C@Z5?\e(B \e$(C0%9+8.5H\e(B \e$(CFD@O@G\e(B \e$(C@L8'@:\e(B \e$(C>U5Z7N\e(B # \e$(C9.@Z0!\e(B \e$(C@V=@4O4Y\e(B;
-\e$(C?98&\e(B \e$(C5i>n\e(B, "hello.c"\e$(C6s4B\e(B \e$(C@L8'@G\e(B \e$(CFD@O@:\e(B "#hello.c#"\e$(C6s4B\e(B \e$(C@L8'@G\e(B \e$(C@Z5?\e(B
-\e$(C0%9+8.\e(B \e$(CFD@O@;\e(B \e$(C0.0T\e(B \e$(C5K4O4Y\e(B.  \e$(CA$;s@{@87N\e(B \e$(CFD@O@;\e(B \e$(C0%9+8.GO8i\e(B \e$(C@L8F=:4B\e(B \e$(C@Z5?\e(B
-\e$(C0%9+8.\e(B \e$(CFD@O@;\e(B \e$(CAv?s4O4Y\e(B.
+파일을 변경한 후에 아직 갈무리를 하지 않았으면 전산기가 와르르
+무너짐으로써 변경 사항을 잃어 버릴 수 있습니다.  이런 재앙을 방지하기
+위해, 이맥스는 편집하고 있는 각각의 파일을 주기적으로 "자동 갈무리"
+파일에 씁니다.  자동 갈무리된 파일의 이름은 앞뒤로 # 문자가 있습니다;
+예를 들어, "hello.c"라는 이름의 파일은 "#hello.c#"라는 이름의 자동
+갈무리 파일을 갖게 됩니다.  정상적으로 파일을 갈무리하면 이맥스는 자동
+갈무리 파일을 지웁니다.
 
-\e$(C@|;j1b0!\e(B \e$(C?M8#8#\e(B \e$(C9+3JAv8i\e(B \e$(C1W\e(B \e$(CFD@O@;\e(B (\e$(C@Z5?\e(B \e$(C0%9+8.5H\e(B \e$(CFD@O@L\e(B \e$(C>F4O6s\e(B
-\e$(CFmA}GO4x\e(B \e$(CFD@O\e(B) \e$(CFr;s=CC373\e(B \e$(CC#@:\e(B \e$(CHD\e(B M-x recover-file<Return>\e$(C@;\e(B \e$(CD'@87N=a\e(B
-\e$(C@Z5?\e(B \e$(C0%9+8.5H\e(B \e$(CFmA}90@;\e(B \e$(CH8:9=CE3\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(CH.@NGR\e(B \e$(C0M@;\e(B \e$(C?d18GO8i\e(B
-yes<Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(C0h<S\e(B \e$(CAxG`GO?)\e(B \e$(C@Z5?\e(B \e$(C0%9+8.5H\e(B \e$(C@Z7a8&\e(B \e$(CH8:9=CE0=J=C?@\e(B.
+전산기가 와르르 무너지면 그 파일을 (자동 갈무리된 파일이 아니라
+편집하던 파일) 평상시처럼 찾은 후 M-x recover-file<Return>을 침으로써
+자동 갈무리된 편집물을 회복시킬 수 있습니다.  확인할 것을 요구하면
+yes<Return>을 쳐서 계속 진행하여 자동 갈무리된 자료를 회복시키십시오.
 
 
-* \e$(C8^>F8.\e(B \e$(CEM\e(B
+* 메아리 터
 -----------
 
-\e$(C@L8F=:0!\e(B, \e$(C8m7I@;\e(B \e$(CD!4B\e(B \e$(C<S550!\e(B \e$(C4@8.4Y0m\e(B \e$(C@N=DGO8i\e(B \e$(CH-8i\e(B \e$(C9Y4Z@G\e(B "\e$(C8^>F8.\e(B
-\e$(CEM\e(B"\e$(C6s0m\e(B \e$(C:R8.4B\e(B \e$(C:s\e(B \e$(CEM?!\e(B \e$(CD#\e(B \e$(C8m7I@;\e(B \e$(C:8?)A]4O4Y\e(B.  \e$(C8^>F8.\e(B \e$(CEM4B\e(B \e$(CH-8i@G\e(B \e$(C9Y4Z\e(B
-\e$(CAY@T4O4Y\e(B.
+이맥스가, 명령을 치는 속도가 느리다고 인식하면 화면 바닥의 "메아리
+터"라고 불리는 빈 터에 친 명령을 보여줍니다.  메아리 터는 화면의 바닥
+줄입니다.
 
 
-* \e$(C9f=D\e(B \e$(CAY\e(B
+* 방식 줄
 ---------
 
-\e$(C8^>F8.\e(B \e$(CEM@G\e(B \e$(C9Y7N\e(B \e$(C@-\e(B \e$(CAY@:\e(B "\e$(C9f=D\e(B \e$(CAY\e(B"\e$(C@L6s0m\e(B \e$(C:N8(4O4Y\e(B.  \e$(C9f=D\e(B \e$(CAY@:\e(B \e$(C4Y@=0z\e(B
-\e$(C00@:\e(B \e$(C=D@87N\e(B \e$(CG%=C5G>n\e(B \e$(C@V=@4O4Y\e(B.
+메아리 터의 바로 윗 줄은 "방식 줄"이라고 부릅니다.  방식 줄은 다음과
+같은 식으로 표시되어 있습니다.
 
 --:**  TUTORIAL.ko        (Fundamental)--L670--58%----------------
 
-\e$(C@L\e(B \e$(CAY?!4B\e(B \e$(C@L8F=:3*\e(B \e$(CFmA}GO0m\e(B \e$(C@V4B\e(B \e$(C1[?y@G\e(B \e$(C;sH2?!\e(B \e$(C4kGQ\e(B \e$(C@/?kGQ\e(B \e$(CA$:80!\e(B
-\e$(C0#Aw5G>n\e(B \e$(C@V=@4O4Y\e(B.
-
-\e$(CFD@O\e(B \e$(C@L8'@L\e(B \e$(C9+>y@;\e(B \e$(C@G9LGO4BAv4B\e(B \e$(C@L9L\e(B \e$(C>K0m\e(B \e$(C@V=@4O4Y\e(B--\e$(C1W\e(B \e$(C0M@:\e(B \e$(CC#>R4x\e(B
-\e$(CFD@O@T4O4Y\e(B.  -NN%--\e$(C4B\e(B \e$(C1[?y?!<-@G\e(B \e$(CGv@g\e(B \e$(C@'D!8&\e(B \e$(C0!8.E54O4Y\e(B; \e$(C@L4B\e(B \e$(CH-8i\e(B
-\e$(C2@4k1b\e(B \e$(C@'7N\e(B NN \e$(CF[<>F.@G\e(B \e$(C1[?y@L\e(B \e$(C@V@=@;\e(B \e$(C@G9LGU4O4Y\e(B.  \e$(CFD@O@G\e(B \e$(C2@4k1b0!\e(B
-\e$(CH-8i?!\e(B \e$(C@V@88i\e(B --00%-- \e$(C4k=E?!\e(B --Top--\e$(C@L6s0m\e(B \e$(CG%=C5K4O4Y\e(B.  \e$(C1[?y@G\e(B
-\e$(C9X9Y4Z@L\e(B \e$(CH-8i?!\e(B \e$(C@V@88i\e(B --Bot--\e$(C@L6s0m\e(B \e$(CG%=C5K4O4Y\e(B.  \e$(C1[?y@L\e(B \e$(C>FAV\e(B \e$(C@[>F<-\e(B
-\e$(C8p5g\e(B \e$(C3;?k@L\e(B \e$(CH-8i?!\e(B \e$(C4Y\e(B \e$(C3*E83*8i\e(B \e$(C9f=D\e(B \e$(CAY?!4B\e(B --All--\e$(C@L6s0m\e(B \e$(CG%=C5K4O4Y\e(B.
-
-\e$(C0E@G\e(B \e$(C>U:N:P?!\e(B \e$(C@V4B\e(B \e$(C:0\e(B \e$(C9.@Z5i@:\e(B \e$(C1[?y@L\e(B \e$(C:/0f5G>z@=@;\e(B \e$(C@G9LGU4O4Y\e(B.  \e$(CFD@O\e(B
-\e$(C9f9.\e(B \e$(CAwHD3*\e(B \e$(C0%9+8.\e(B \e$(CAwHD?!4B\e(B \e$(C1W\e(B \e$(C0w?!\e(B \e$(C:0\e(B \e$(C9.@Z0!\e(B \e$(C>x0m\e(B \e$(C4k=C\e(B \e$(C9.@Z88\e(B
-\e$(C@V=@4O4Y\e(B.
-
-\e$(C9f=D\e(B \e$(CAY@G\e(B \e$(C0}H#\e(B \e$(C9.@Z>H@:\e(B \e$(C>n62\e(B \e$(CFmA}\e(B \e$(C9f=D@;\e(B \e$(C;g?kGO0m\e(B \e$(C@V4B0!8&\e(B
-\e$(C>K7AA]4O4Y\e(B.  \e$(C>VCJ\e(B \e$(C9f=D@:\e(B Fundamental\e$(C7N<-\e(B \e$(CAv1]\e(B \e$(C;g?k5G0m\e(B \e$(C@V4B\e(B
-\e$(C9f=D@T4O4Y\e(B.  \e$(C@L4B\e(B "\e$(CAV\e(B \e$(C9f=D\e(B"\e$(C@G\e(B \e$(CGQ\e(B \e$(C?9@T4O4Y\e(B.
-
-\e$(C@L8F=:?!4B\e(B \e$(CAV\e(B \e$(C9f=D@L\e(B \e$(C89@L\e(B \e$(C@V=@4O4Y\e(B.  \e$(C1W\e(B \e$(CA_\e(B \e$(C8n0!Av4B\e(B \e$(C4Y8%\e(B \e$(C>p>n\e(B \e$(C6G\e(B/\e$(C6G4B\e(B
-\e$(C4Y8%\e(B \e$(CA>7y@G\e(B \e$(C1[?y@;\e(B \e$(CFmA}GO557O\e(B \e$(CGO4B5%\e(B \e$(C>2@L8g\e(B, Lisp \e$(C9f=D\e(B, Text \e$(C9f=D\e(B
-\e$(C5n5n@L\e(B \e$(C@V=@4O4Y\e(B.  \e$(CGW;s\e(B \e$(CGQ\e(B \e$(C0!Av\e(B \e$(CAV\e(B \e$(C9f=D88@L\e(B \e$(C@{?k5G8g\e(B \e$(CAv1]\e(B
-"Fundamental"\e$(C@L6s0m\e(B \e$(C@{Gt\e(B \e$(C@V4B\e(B \e$(C0w?!\e(B \e$(CG%=C5K4O4Y\e(B.
-
-\e$(C0"0"@G\e(B \e$(CAV\e(B \e$(C9f=D@:\e(B \e$(C8n8n\e(B \e$(C8m7I5i@L\e(B \e$(C@[5?@;\e(B \e$(C4^8.GO557O\e(B \e$(C5G>n\e(B \e$(C@V=@4O4Y\e(B.  \e$(C?98&\e(B
-\e$(C5i>n\e(B, \e$(CGA7N1W7%?!4B\e(B \e$(C<38m9.@;\e(B \e$(C885e4B\e(B \e$(C8m7I@L\e(B \e$(C@V4B5%\e(B, \e$(CGA7N1W7%\e(B \e$(C>p>n5i@:\e(B
-\e$(C<38m9.@G\e(B \e$(CG|EB@;\e(B \e$(C0"0"\e(B \e$(C4^8.\e(B \e$(CGO1b\e(B \e$(C6'9.?!\e(B \e$(C0"0"@G\e(B \e$(CAV\e(B \e$(C9f=D@:\e(B \e$(C<38m9.@;\e(B \e$(C<-7N\e(B
-\e$(C4Y8#0T\e(B \e$(C3"?v\e(B \e$(C3V557O\e(B \e$(C5G>n\e(B \e$(C@V=@4O4Y\e(B.  \e$(C8p5g\e(B \e$(CAV\e(B \e$(C9f=D@:\e(B \e$(CH.@e\e(B \e$(C8m7I@G\e(B \e$(C@L8'@;\e(B
-\e$(C;g?kGO9G7N<-\e(B \e$(C1W\e(B \e$(C9f=D@87N\e(B \e$(C>y9Y2Y4B\e(B \e$(C0M@L\e(B \e$(C=10T\e(B \e$(C@N=D5I\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B. \e$(CGQ\e(B
-\e$(C?97N\e(B M-x fundamental-mode\e$(C4B\e(B Fundamental \e$(C9f=D@87N\e(B \e$(C>y9Y2Y4B\e(B \e$(C8m7I@T4O4Y\e(B.
-
-\e$(C@L\e(B \e$(CFD@O0z\e(B \e$(C00@:\e(B \e$(CGQ1[\e(B \e$(C1[?y@;\e(B \e$(CFmA}GO7A0m\e(B \e$(CGQ4Y8i\e(B Text \e$(C9f=D@;\e(B \e$(C>24B\e(B \e$(C0M@L\e(B
-\e$(CAA@;\e(B \e$(C0M@T4O4Y\e(B.
->> M-x text mode<Return>\e$(C@;\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
-
-\e$(CAv1]1nAv\e(B \e$(C9h?n\e(B \e$(C@L8F=:\e(B \e$(C8m7I5i@:\e(B \e$(C89@L\e(B \e$(C4^6sAvAv\e(B \e$(C>J@84O\e(B \e$(C0FA$GOAv\e(B \e$(C>J>F55\e(B
-\e$(C5K4O4Y\e(B.  \e$(C1W7/3*\e(B M-f\e$(C?M\e(B M-b\e$(C0!\e(B \e$(C>U@[@:5{?HG%8&\e(B \e$(C398;@G\e(B \e$(C@O:N7N\e(B \e$(CC38.GT@;\e(B
-\e$(C0|B{GR\e(B \e$(C<v\e(B \e$(C@V@;\e(B \e$(C0M@T4O4Y\e(B.  \e$(C@|?!\e(B Fundamental \e$(C9f=D?!<-4B\e(B M-f\e$(C?M\e(B M-b\e$(C0!\e(B
-\e$(C>U@[@:5{?HG%8&\e(B \e$(C398;\e(B \e$(C:P8.\e(B \e$(C9.@Z7N\e(B \e$(CCk1^GO?4=@4O4Y\e(B.
-
-\e$(CAV\e(B \e$(C9f=D@:\e(B \e$(C:8Ek\e(B \e$(C4Y@=0z\e(B \e$(C00@:\e(B \e$(C9L9&GQ\e(B \e$(C:/H-8&\e(B \e$(CCJ7!GU4O4Y\e(B: \e$(C4k:N:P@G\e(B \e$(C8m7I5i@:\e(B
-\e$(C0"0"@G\e(B \e$(CAV\e(B \e$(C9f=D?!<-\e(B "\e$(C00@:\e(B \e$(C@O\e(B"\e$(C@;\e(B \e$(CGOAv88\e(B \e$(C>`0#\e(B \e$(C4Y8#0T\e(B \e$(C@[5?GQ4Y\e(B.
-
-\e$(CGv@g@G\e(B \e$(CAV\e(B \e$(C9f=D?!\e(B \e$(C4kGQ\e(B \e$(C9.<-H-8&\e(B \e$(C:80m@Z\e(B \e$(CGO8i\e(B C-h m\e$(C@;\e(B \e$(CD!=J=C?@\e(B.
-
->> C-u C-v\e$(C8&\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(CCD<-\e(B \e$(C@L\e(B \e$(CAY@;\e(B \e$(CH-8i@G\e(B \e$(C2@4k1bBk@87N\e(B \e$(C?rAw@L=J=C?@\e(B.
->> C-h m\e$(C@;\e(B \e$(CCD<-\e(B Text \e$(C9f=D0z\e(B Fundamental \e$(C9f=D@G\e(B \e$(CBw@LA!@;\e(B \e$(C:8=J=C?@\e(B.
->> C-x 1\e$(C@;\e(B \e$(CCD<-\e(B \e$(C9.<-H-8&\e(B \e$(CH-8i?!<-\e(B \e$(C>x>V=J=C?@\e(B.
-
-\e$(CAV\e(B \e$(C9f=D@:\e(B \e$(C:N\e(B \e$(C9f=D@L\e(B \e$(C@V1b\e(B \e$(C6'9.?!\e(B \e$(CAV\e(B \e$(C9f=D@L6s0m\e(B \e$(C:N8(4O4Y\e(B.  \e$(C:N\e(B \e$(C9f=D@:\e(B \e$(CAV\e(B
-\e$(C9f=D@;\e(B \e$(C13C<GR\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C0M@L\e(B \e$(C>F4O6s\e(B \e$(CAV\e(B \e$(C9f=D@;\e(B \e$(C:NBw@{@87N\e(B \e$(C<vA$GQ\e(B
-\e$(C9f=D@T4O4Y\e(B.  \e$(C0"0"@G\e(B \e$(C:N\e(B \e$(C9f=D@:\e(B \e$(C4Y8%\e(B \e$(C:N\e(B \e$(C9f=D0z\e(B \e$(C5683@{@87N\e(B, \e$(C1W8.0m\e(B \e$(CAV\e(B
-\e$(C9f=D0z55\e(B \e$(C5683@{@87N\e(B, \e$(C1W\e(B \e$(C@ZC<7N<-\e(B \e$(C2t0m\e(B \e$(CDS\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C1W7/9G7N\e(B \e$(C:N\e(B
-\e$(C9f=D@:\e(B \e$(C>2Av\e(B \e$(C>J@;\e(B \e$(C<v55\e(B \e$(C@V0m\e(B \e$(CGO3*88\e(B \e$(C>5\e(B \e$(C<v55\e(B \e$(C@V@88i\e(B \e$(C?)7/\e(B \e$(C:N\e(B \e$(C9f=D@;\e(B
-\e$(CB%8BCg<-\e(B \e$(C>5\e(B \e$(C<v55\e(B \e$(C@V=@4O4Y\e(B.
-
-\e$(C>FAV\e(B \e$(C@/?kGQ\e(B \e$(C:N\e(B \e$(C9f=DA_\e(B, \e$(CGQ1[\e(B \e$(C1[?y@;\e(B \e$(CFmA}GR\e(B \e$(C6'\e(B \e$(C@ZAV\e(B \e$(C;g?k5G4B\e(B Auto Fill
-\e$(C9f=D@L\e(B \e$(C@V=@4O4Y\e(B.  \e$(C@L\e(B \e$(C9f=D@L\e(B \e$(CDQA.\e(B \e$(C@V@;\e(B \e$(C6'\e(B \e$(C@L8F=:4B\e(B, \e$(CAY@L\e(B \e$(C3J9+\e(B \e$(C3P>nAv8i\e(B
-\e$(C1[?y@L\e(B \e$(C3"?vA|?!\e(B \e$(C5{6s\e(B \e$(C398;;g@L?!<-\e(B \e$(C@Z5?@87N\e(B \e$(CAY9Y2^@;\e(B \e$(CGU4O4Y\e(B.
-
-Auto Fill \e$(C9f=D@;\e(B \e$(CDQ1b\e(B \e$(C@'GX<-4B\e(B M-x auto-fill-mode<Return>\e$(C@;\e(B \e$(CD(4O4Y\e(B.
-\e$(C@L\e(B \e$(C9f=D@L\e(B \e$(CDQA.\e(B \e$(C@V@88i\e(B M-x auto-fill-mode<Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(C2x\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(C@L\e(B \e$(C9f=D@L\e(B \e$(C2(A.\e(B \e$(C@V@88i\e(B \e$(C@L\e(B \e$(C8m7I@:\e(B \e$(C1W\e(B \e$(C9f=D@;\e(B \e$(CDQ0m\e(B, \e$(C9]4k7N\e(B \e$(CDQA.\e(B
-\e$(C@V@;\e(B \e$(C6'4B\e(B \e$(C@L\e(B \e$(C9f=D@;\e(B \e$(C2|4O4Y\e(B.  \e$(C?l8.4B\e(B \e$(C@L\e(B \e$(C8m7I@L\e(B "\e$(C9f=D@;\e(B \e$(C6H5|\e(B"\e$(CGQ4Y0m\e(B
-(toggle) \e$(CGU4O4Y\e(B.
-
->> M-x auto fill mode<Return>\e$(C@;\e(B \e$(CAv1]\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.  \e$(C1W8.0m\e(B "asdf "\e$(C6s4B\e(B
-   \e$(CAY@;\e(B \e$(C0h<S\e(B \e$(C3"?v\e(B \e$(C3V>n<-\e(B \e$(C1W\e(B \e$(CAY@L\e(B \e$(C5Q7N\e(B \e$(C3*45557O\e(B \e$(CGO=J=C?@\e(B.  Auto Fill
-   \e$(C9f=D@:\e(B \e$(C0x0#\e(B \e$(C9.@Z?!<-88\e(B \e$(CAY9Y2^@;\e(B \e$(CGO1b\e(B \e$(C6'9.?!\e(B \e$(C2@\e(B \e$(C0x0#\e(B \e$(C9.@Z0!\e(B \e$(C5i>n\e(B
-   \e$(C@V>n>_\e(B \e$(CGU4O4Y\e(B.
-
-\e$(CGQ0h4B\e(B \e$(C:8Ek\e(B 70\e$(C03@G\e(B \e$(C9.@Z7N\e(B \e$(CA$GXA.\e(B \e$(C@VAv88\e(B C-x f \e$(C8m7I@87N\e(B \e$(C1W\e(B \e$(C0M@;\e(B \e$(C:/0fGR\e(B
-\e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C?xGO4B\e(B \e$(CGQ0h\e(B \e$(C<3A$@:\e(B \e$(C<}@Z\e(B \e$(C@N<v7N\e(B \e$(CGO?)>_\e(B \e$(CGU4O4Y\e(B.
-
->> 20\e$(C@L6s4B\e(B \e$(C@N<v7N\e(B C-x f\e$(C8&\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.  (C-u 2 0 C-x f).
-   \e$(C1W8.0m\e(B \e$(C1[?y@;\e(B \e$(C9:0!\e(B \e$(CCD<-\e(B \e$(C@L8F=:0!\e(B 20\e$(C03@G\e(B \e$(C9.@Z7N\e(B \e$(CGQ\e(B \e$(CAY@;\e(B \e$(CC$?l4BAv8&\e(B
-   \e$(C:8=J=C?@\e(B.  \e$(C1W71\e(B \e$(C4Y@=?!\e(B C-x f\e$(C8&\e(B \e$(C4Y=C\e(B \e$(C=a<-\e(B \e$(CGQ0h8&\e(B 70\e$(C@87N\e(B \e$(C@g\e(B
-   \e$(C<3A$GO=J=C?@\e(B.
-
-\e$(C4\6t@G\e(B \e$(CA_0#?!<-\e(B \e$(C:/0fGO8i\e(B Auto Fill \e$(C9f=D@:\e(B \e$(CC$?r@;\e(B \e$(C4Y=C\e(B \e$(CGOAv\e(B
-\e$(C>J=@4O4Y\e(B. \e$(C1W\e(B \e$(C4\6t@;\e(B \e$(C4Y=C\e(B \e$(CC$?l1b\e(B \e$(C@'GX<-4B\e(B \e$(C1t9Z@L0!\e(B \e$(C4\6t\e(B \e$(C>H?!\e(B \e$(C@V4B\e(B
-\e$(C;sEB?!<-\e(B M-q (Meta\e$(C<h\e(B-q)\e$(C8&\e(B \e$(CD(4O4Y\e(B.
-
->> \e$(C1t9Z@L8&\e(B \e$(C@L@|\e(B \e$(C4\6t@87N\e(B \e$(C?rAw@N\e(B \e$(CHD\e(B M-q\e$(C8&\e(B \e$(CD!=J=C?@\e(B.
-
-* \e$(CC#1b\e(B
+이 줄에는 이맥스나 편집하고 있는 글월의 상황에 대한 유용한 정보가
+간직되어 있습니다.
+
+파일 이름이 무엇을 의미하는지는 이미 알고 있습니다--그 것은 찾았던
+파일입니다.  -NN%--는 글월에서의 현재 위치를 가리킵니다; 이는 화면
+꼭대기 위로 NN 퍼센트의 글월이 있음을 의미합니다.  파일의 꼭대기가
+화면에 있으면 --00%-- 대신에 --Top--이라고 표시됩니다.  글월의
+밑바닥이 화면에 있으면 --Bot--이라고 표시됩니다.  글월이 아주 작아서
+모든 내용이 화면에 다 나타나면 방식 줄에는 --All--이라고 표시됩니다.
+
+거의 앞부분에 있는 별 문자들은 글월이 변경되었음을 의미합니다.  파일
+방문 직후나 갈무리 직후에는 그 곳에 별 문자가 없고 대시 문자만
+있습니다.
+
+방식 줄의 괄호 문자안은 어떤 편집 방식을 사용하고 있는가를
+알려줍니다.  애초 방식은 Fundamental로서 지금 사용되고 있는
+방식입니다.  이는 "주 방식"의 한 예입니다.
+
+이맥스에는 주 방식이 많이 있습니다.  그 중 몇가지는 다른 언어 또/또는
+다른 종류의 글월을 편집하도록 하는데 쓰이며, Lisp 방식, Text 방식
+등등이 있습니다.  항상 한 가지 주 방식만이 적용되며 지금
+"Fundamental"이라고 적혀 있는 곳에 표시됩니다.
+
+각각의 주 방식은 몇몇 명령들이 작동을 달리하도록 되어 있습니다.  예를
+들어, 프로그램에는 설명문을 만드는 명령이 있는데, 프로그램 언어들은
+설명문의 형태을 각각 달리 하기 때문에 각각의 주 방식은 설명문을 서로
+다르게 끼워 넣도록 되어 있습니다.  모든 주 방식은 확장 명령의 이름을
+사용하므로서 그 방식으로 엇바꾸는 것이 쉽게 인식될 수 있습니다. 한
+예로 M-x fundamental-mode는 Fundamental 방식으로 엇바꾸는 명령입니다.
+
+이 파일과 같은 한글 글월을 편집하려고 한다면 Text 방식을 쓰는 것이
+좋을 것입니다.
+>> M-x text mode<Return>을 쳐 보십시오.
+
+지금까지 배운 이맥스 명령들은 많이 달라지지 않으니 걱정하지 않아도
+됩니다.  그러나 M-f와 M-b가 앞작은따옴표를 낱말의 일부로 처리함을
+관찰할 수 있을 것입니다.  전에 Fundamental 방식에서는 M-f와 M-b가
+앞작은따옴표를 낱말 분리 문자로 취급하였습니다.
+
+주 방식은 보통 다음과 같은 미묘한 변화를 초래합니다: 대부분의 명령들은
+각각의 주 방식에서 "같은 일"을 하지만 약간 다르게 작동한다.
+
+현재의 주 방식에 대한 문서화를 보고자 하면 C-h m을 치십시오.
+
+>> C-u C-v를 몇 번 쳐서 이 줄을 화면의 꼭대기쯤으로 움직이십시오.
+>> C-h m을 쳐서 Text 방식과 Fundamental 방식의 차이점을 보십시오.
+>> C-x 1을 쳐서 문서화를 화면에서 없애십시오.
+
+주 방식은 부 방식이 있기 때문에 주 방식이라고 부릅니다.  부 방식은 주
+방식을 교체할 수 있는 것이 아니라 주 방식을 부차적으로 수정한
+방식입니다.  각각의 부 방식은 다른 부 방식과 독립적으로, 그리고 주
+방식과도 독립적으로, 그 자체로서 끄고 켤 수 있습니다.  그러므로 부
+방식은 쓰지 않을 수도 있고 하나만 쓸 수도 있으면 여러 부 방식을
+짜맞춰서 쓸 수도 있습니다.
+
+아주 유용한 부 방식중, 한글 글월을 편집할 때 자주 사용되는 Auto Fill
+방식이 있습니다.  이 방식이 켜져 있을 때 이맥스는, 줄이 너무 넓어지면
+글월이 끼워짐에 따라 낱말사이에서 자동으로 줄바꿈을 합니다.
+
+Auto Fill 방식을 켜기 위해서는 M-x auto-fill-mode<Return>을 칩니다.
+이 방식이 켜져 있으면 M-x auto-fill-mode<Return>을 쳐서 끌 수
+있습니다.  이 방식이 꺼져 있으면 이 명령은 그 방식을 켜고, 반대로 켜져
+있을 때는 이 방식을 끕니다.  우리는 이 명령이 "방식을 똑딱"한다고
+(toggle) 합니다.
+
+>> M-x auto fill mode<Return>을 지금 쳐 보십시오.  그리고 "asdf "라는
+   줄을 계속 끼워 넣어서 그 줄이 둘로 나뉘도록 하십시오.  Auto Fill
+   방식은 공간 문자에서만 줄바꿈을 하기 때문에 꼭 공간 문자가 들어
+   있어야 합니다.
+
+한계는 보통 70개의 문자로 정해져 있지만 C-x f 명령으로 그 것을 변경할
+수 있습니다.  원하는 한계 설정은 숫자 인수로 하여야 합니다.
+
+>> 20이라는 인수로 C-x f를 쳐 보십시오.  (C-u 2 0 C-x f).
+   그리고 글월을 뭔가 쳐서 이맥스가 20개의 문자로 한 줄을 채우는지를
+   보십시오.  그런 다음에 C-x f를 다시 써서 한계를 70으로 재
+   설정하십시오.
+
+단락의 중간에서 변경하면 Auto Fill 방식은 채움을 다시 하지
+않습니다. 그 단락을 다시 채우기 위해서는 깜박이가 단락 안에 있는
+상태에서 M-q (Meta쇠-q)를 칩니다.
+
+>> 깜박이를 이전 단락으로 움직인 후 M-q를 치십시오.
+
+* 찾기
 ------
 
-\e$(C@L8F=:4B\e(B \e$(C1[?y@G\e(B \e$(C>UBJ@L3*\e(B \e$(C5^BJ@87N\e(B \e$(C9.@Z?-@;\e(B (\e$(C9.@Z?-@:\e(B \e$(C?,<S5H\e(B \e$(C9.@Z3*\e(B
-\e$(C?,<S5H\e(B \e$(C398;@T4O4Y\e(B) \e$(CC#@;\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C9.@Z?-@;\e(B \e$(CC#4B\e(B \e$(C0M@:\e(B \e$(C1t9Z@L8&\e(B
-\e$(C?rAw@L4B\e(B \e$(C8m7I@T4O4Y\e(B; \e$(C1t9Z@L0!\e(B \e$(C1W\e(B \e$(C9.@Z?-@L\e(B \e$(C3*E83*4B\e(B \e$(C0w@87N\e(B \e$(C?rAw@T4O4Y\e(B.
-
-\e$(C@L8F=:@G\e(B \e$(CC#1b\e(B \e$(C8m7I@:\e(B "\e$(CAu0!@{\e(B"\e$(C@L6s4B\e(B \e$(CA!?!<-\e(B \e$(C@O9]\e(B \e$(CFmA}1b@G\e(B \e$(CC#1b\e(B \e$(C8m7I0z\e(B
-\e$(C4Y8(4O4Y\e(B.  \e$(C@L4B\e(B \e$(CC#0m@Z\e(B \e$(CGO4B\e(B \e$(C9.@Z?-@;\e(B \e$(CE8@ZGO0m\e(B \e$(C@V4B\e(B \e$(C5?>H?!\e(B \e$(CC#1b0!\e(B
-\e$(C@L7g>nAv0m\e(B \e$(C@V4Y4B\e(B \e$(C0M@;\e(B \e$(C@G9LGU4O4Y\e(B.
-
-\e$(CC#1b8&\e(B \e$(C=C@[=CE04B\e(B \e$(C8m7I@:\e(B \e$(C>UBJ@87N\e(B \e$(CC#1b0!\e(B C-s\e$(C@L0m\e(B \e$(C5^BJ@87N\e(B \e$(CC#1b0!\e(B
-C-r\e$(C@T4O4Y\e(B.  \e$(C1W7/3*\e(B \e$(C@a1q\e(B \e$(C1b4Y8.=J=C?@\e(B!  \e$(CAv1]\e(B \e$(C@L0M@;\e(B \e$(C=C55GX\e(B \e$(C:8Av\e(B
-\e$(C86=J=C?@\e(B.
-
-C-s\e$(C8&\e(B \e$(CD!8i\e(B \e$(C8^>F8.\e(B \e$(CEM?!\e(B, \e$(C1f@b@L7N\e(B "I-search"\e$(C6s4B\e(B \e$(C9.@Z?-@L\e(B \e$(C3*E83*4B\e(B \e$(C0M@;\e(B
-\e$(C:<\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C@L4B\e(B \e$(CC#0m@Z\e(B \e$(CGO4B\e(B \e$(C9.@Z?-@L\e(B \e$(CE8@Z5G1b8&\e(B \e$(C1b4Y6s8i<-\e(B
-\e$(C@L8F=:0!\e(B \e$(CAu0!@{\e(B \e$(CC#1b\e(B \e$(CA_?!\e(B \e$(C@V4Y4B\e(B \e$(C0M@;\e(B \e$(C8;GX\e(B \e$(CA]4O4Y\e(B.  <Return>\e$(C@:\e(B \e$(CC#1b8&\e(B
-\e$(C86D(4O4Y\e(B.
-
->> \e$(C@LA&\e(B C-s\e$(C8&\e(B \e$(CCD<-\e(B \e$(CC#1b8&\e(B \e$(C=C@[GO=J=C?@\e(B.  \e$(CC5C5Hw\e(B, \e$(CGQ\e(B \e$(C9x?!\e(B \e$(CGQ\e(B \e$(C1[@Z>?\e(B
-   'cursor'\e$(C6s0m\e(B \e$(CD!8i<-\e(B \e$(C0"0"@G\e(B \e$(C9.@Z8&\e(B \e$(CD#\e(B \e$(CHD\e(B \e$(C1t9Z@L?!\e(B \e$(C>n62\e(B \e$(C@O@L\e(B \e$(C@O>n\e(B
-   \e$(C3*4B0!8&\e(B \e$(C@/@GGO=J=C?@\e(B.
-   \e$(C@LA&\e(B "cursor"\e$(C8&\e(B \e$(CGQ\e(B \e$(C9x\e(B \e$(CC#@:\e(B \e$(C0M@T4O4Y\e(B.
->> C-s\e$(C8&\e(B \e$(C4Y=C\e(B \e$(CCD<-\e(B \e$(C4Y@=?!\e(B \e$(C3*E83*4B\e(B "cursor"\e$(C8&\e(B \e$(CC#@8=J=C?@\e(B.
->> \e$(C@Z\e(B, \e$(C@LA&4B\e(B <Delete>\e$(C8&\e(B \e$(C3W\e(B \e$(C9x\e(B \e$(CCD<-\e(B \e$(C1t9Z@L0!\e(B \e$(C>n6;0T\e(B \e$(C?rAw@L4B0!8&\e(B
-   \e$(C:8=J=C?@\e(B.
->> <Return>\e$(C@;\e(B \e$(CCD<-\e(B \e$(CC#1b8&\e(B \e$(C3!3;=J=C?@\e(B.
-
-\e$(C>n62\e(B \e$(CGv;s@L\e(B \e$(C@O>n3*4BAv8&\e(B \e$(C:8>R=@4O1n\e(B?  \e$(CAu0!@{\e(B \e$(CC#1b?!<-\e(B \e$(C@L8F=:4B\e(B \e$(C1W6'1nAv\e(B
-\e$(CE8@ZGQ\e(B \e$(C9.@Z?-@;\e(B \e$(CC#@87A0m\e(B \e$(CGU4O4Y\e(B.  '\e$(C1t9Z@L\e(B'\e$(C0!\e(B \e$(C@V4B\e(B \e$(C4Y@=\e(B \e$(C@e<R7N\e(B \e$(C0!7A8i\e(B
-C-s\e$(C8&\e(B \e$(C4Y=C\e(B \e$(CD(4O4Y\e(B.  \e$(C1W71\e(B \e$(C0w@L\e(B \e$(C>x@88i\e(B \e$(C@L8F=:4B\e(B \e$(C;`<R8.8&\e(B \e$(C3;0m\e(B \e$(CC#1b0!\e(B \e$(CGv@g\e(B
-"\e$(C=GFP\e(B"\e$(CG_@=@;\e(B \e$(C>K7A\e(B \e$(CAV8g\e(B C-g\e$(C7N55\e(B \e$(CC#1b8&\e(B \e$(C3!3>\e(B \e$(C<v\e(B \e$(C@V0T\e(B \e$(CGU4O4Y\e(B.
-
-\e$(C@/@G\e(B: \e$(C>n62\e(B \e$(C?n?5\e(B \e$(CC<0h?!<-4B\e(B C-s\e$(C8&\e(B \e$(CD!8i\e(B \e$(CH-8i@;\e(B \e$(C5?0a=CDQ<-\e(B, \e$(C@L8F=:0!\e(B \e$(C>F9+\e(B
-\e$(CCb7B55\e(B \e$(CGOAv\e(B \e$(C>J4B\e(B \e$(C0M@;\e(B \e$(C:<\e(B \e$(C0f?l0!\e(B \e$(C@V=@4O4Y\e(B.  \e$(C@L0M@:\e(B "\e$(CHe8'\e(B \e$(CA&>n\e(B"\e$(C6s0m\e(B
-\e$(C:R8.?l4B\e(B \e$(C?n?5\e(B \e$(CC<0h@G\e(B "\e$(CF/B!\e(B"\e$(C@L\e(B C-s\e$(C8&\e(B \e$(C0!7NC$<-\e(B \e$(C@L8F=:8&\e(B \e$(CEkGX\e(B \e$(C@|4^5GAv\e(B
-\e$(C>J557O\e(B \e$(CGO1b\e(B \e$(C6'9.@T4O4Y\e(B.  C-q\e$(C8&\e(B \e$(C4)8#8i\e(B \e$(CH-8i@L\e(B \e$(CGXA&5K4O4Y\e(B.  \e$(C1W8.0m\e(B \e$(C3*<-\e(B
-\e$(C@L8F=:\e(B \e$(C<38m<-@G\e(B "Spontaneous Entry to Incremental Search"\e$(C6s4B\e(B  \e$(C4\?x@;\e(B
-\e$(C:88i\e(B \e$(C@L71\e(B "\e$(CF/B!\e(B"\e$(C@;\e(B \e$(C>n6;0T\e(B \e$(CCk1^GR\e(B \e$(C<v\e(B \e$(C@V4B0!?!\e(B \e$(C4kGQ\e(B \e$(CA6>p@;\e(B \e$(C@P@;\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.
-
-\e$(CAu0!@{\e(B \e$(CC#1b\e(B \e$(C55A_?!\e(B <Delete>\e$(C8&\e(B \e$(CD!8i\e(B \e$(CC#1b\e(B \e$(C9.@Z?-@G\e(B \e$(C86Av87\e(B \e$(C9.@Z0!\e(B
-\e$(CAv?vAv0m\e(B \e$(CC#1b4B\e(B \e$(C86Av87@87N\e(B \e$(CC#>R4x\e(B \e$(C0w?!\e(B \e$(C5G59>F\e(B \e$(C0!4B\e(B \e$(C0M@;\e(B \e$(C:<\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.  \e$(C?98&\e(B \e$(C5i>n\e(B, "c"\e$(C0!\e(B \e$(C>n5p?!\e(B \e$(CC3@=@87N\e(B \e$(C3*?@4BAv8&\e(B \e$(C:81b\e(B \e$(C@'GX<-\e(B
-"c"\e$(C8&\e(B \e$(CCF4Y0m\e(B \e$(CGU=C4Y\e(B.  \e$(C@LA&\e(B "u"\e$(C8&\e(B \e$(CD!8i\e(B \e$(C1t9Z@L4B\e(B "cu"\e$(C0!\e(B \e$(CC3@=@87N\e(B \e$(C3*?@4B\e(B
-\e$(C0w@87N\e(B \e$(C?rAw@O\e(B \e$(C0M@T4O4Y\e(B.  \e$(C@LA&\e(B <Delete>\e$(C8&\e(B \e$(CD!=J=C?@\e(B.  \e$(C1W7/8i\e(B \e$(CC#1b\e(B
-\e$(C9.@Z?-?!<-\e(B "u"\e$(C0!\e(B \e$(CAv?vAv0m\e(B \e$(C1t9Z@L4B\e(B "c"\e$(C0!\e(B \e$(CC3@=\e(B \e$(C3*?B\e(B \e$(C0w@87N\e(B \e$(C5G59>F\e(B
-\e$(C0)4O4Y\e(B.
-
-\e$(CC#1bA_?!\e(B \e$(CA&>n\e(B \e$(C9.@Z3*\e(B meta \e$(C9.@Z8&\e(B \e$(CD!8i\e(B (\e$(C?9?\0!\e(B \e$(C@VAv88\e(B--\e$(CC#1b?!<-\e(B \e$(CF/:0GQ\e(B
-\e$(C@G9L8&\e(B \e$(C0.4B\e(B C-s\e$(C3*\e(B C-r\e$(C0z\e(B \e$(C00@:\e(B \e$(C9.@Z5i\e(B) \e$(CC#1b4B\e(B \e$(C3!3*9v834O4Y\e(B.
-
-C-s\e$(C4B\e(B \e$(C1t9Z@L@G\e(B \e$(CGv@g\e(B \e$(C@'D!\e(B \e$(C4Y@=?!\e(B \e$(C9_0_5G4B\e(B \e$(CC#1b\e(B \e$(C9.@Z?-@;\e(B \e$(CC#557O\e(B
-\e$(C=C@[=CE54O4Y\e(B.  \e$(C@L@|?!\e(B \e$(C3*?B\e(B \e$(C1[?y?!<-\e(B \e$(C9+>p0!8&\e(B \e$(CC#@87A8i\e(B C-r\e$(C8&\e(B \e$(CD(4O4Y\e(B.
-C-s\e$(C?!\e(B \e$(C@{?k5G4B\e(B \e$(C8p5g\e(B \e$(C;gGW@:\e(B \e$(C9fGb88\e(B \e$(C9Y2n>z@;\e(B \e$(C;S\e(B \e$(C8p5N\e(B C-r\e$(C?!\e(B \e$(C@{?k5K4O4Y\e(B.
-
-* \e$(C4YA_\e(B \e$(CC"\e(B
+이맥스는 글월의 앞쪽이나 뒷쪽으로 문자열을 (문자열은 연속된 문자나
+연속된 낱말입니다) 찾을 수 있습니다.  문자열을 찾는 것은 깜박이를
+움직이는 명령입니다; 깜박이가 그 문자열이 나타나는 곳으로 움직입니다.
+
+이맥스의 찾기 명령은 "증가적"이라는 점에서 일반 편집기의 찾기 명령과
+다릅니다.  이는 찾고자 하는 문자열을 타자하고 있는 동안에 찾기가
+이루어지고 있다는 것을 의미합니다.
+
+찾기를 시작시키는 명령은 앞쪽으로 찾기가 C-s이고 뒷쪽으로 찾기가
+C-r입니다.  그러나 잠깐 기다리십시오!  지금 이것을 시도해 보지
+마십시오.
+
+C-s를 치면 메아리 터에, 길잡이로 "I-search"라는 문자열이 나타나는 것을
+볼 수 있습니다.  이는 찾고자 하는 문자열이 타자되기를 기다라면서
+이맥스가 증가적 찾기 중에 있다는 것을 말해 줍니다.  <Return>은 찾기를
+마칩니다.
+
+>> 이제 C-s를 쳐서 찾기를 시작하십시오.  천천히, 한 번에 한 글자씩
+   'cursor'라고 치면서 각각의 문자를 친 후 깜박이에 어떤 일이 일어
+   나는가를 유의하십시오.
+   이제 "cursor"를 한 번 찾은 것입니다.
+>> C-s를 다시 쳐서 다음에 나타나는 "cursor"를 찾으십시오.
+>> 자, 이제는 <Delete>를 네 번 쳐서 깜박이가 어떻게 움직이는가를
+   보십시오.
+>> <Return>을 쳐서 찾기를 끝내십시오.
+
+어떤 현상이 일어나는지를 보았습니까?  증가적 찾기에서 이맥스는 그때까지
+타자한 문자열을 찾으려고 합니다.  '깜박이'가 있는 다음 장소로 가려면
+C-s를 다시 칩니다.  그런 곳이 없으면 이맥스는 삑소리를 내고 찾기가 현재
+"실패"했음을 알려 주며 C-g로도 찾기를 끝낼 수 있게 합니다.
+
+유의: 어떤 운영 체계에서는 C-s를 치면 화면을 동결시켜서, 이맥스가 아무
+출력도 하지 않는 것을 볼 경우가 있습니다.  이것은 "흐름 제어"라고
+불리우는 운영 체계의 "특징"이 C-s를 가로채서 이맥스를 통해 전달되지
+않도록 하기 때문입니다.  C-q를 누르면 화면이 해제됩니다.  그리고 나서
+이맥스 설명서의 "Spontaneous Entry to Incremental Search"라는  단원을
+보면 이런 "특징"을 어떻게 취급할 수 있는가에 대한 조언을 읽을 수
+있습니다.
+
+증가적 찾기 도중에 <Delete>를 치면 찾기 문자열의 마지막 문자가
+지워지고 찾기는 마지막으로 찾았던 곳에 되돌아 가는 것을 볼 수
+있습니다.  예를 들어, "c"가 어디에 처음으로 나오는지를 보기 위해서
+"c"를 쳤다고 합시다.  이제 "u"를 치면 깜박이는 "cu"가 처음으로 나오는
+곳으로 움직일 것입니다.  이제 <Delete>를 치십시오.  그러면 찾기
+문자열에서 "u"가 지워지고 깜박이는 "c"가 처음 나온 곳으로 되돌아
+갑니다.
+
+찾기중에 제어 문자나 meta 문자를 치면 (예외가 있지만--찾기에서 특별한
+의미를 갖는 C-s나 C-r과 같은 문자들) 찾기는 끝나버립니다.
+
+C-s는 깜박이의 현재 위치 다음에 발견되는 찾기 문자열을 찾도록
+시작시킵니다.  이전에 나온 글월에서 무언가를 찾으려면 C-r를 칩니다.
+C-s에 적용되는 모든 사항은 방향만 바뀌었을 뿐 모두 C-r에 적용됩니다.
+
+* 다중 창
 ---------
 
-\e$(C@L8F=:@G\e(B \e$(C1&Bz@:\e(B \e$(CF/B!\e(B \e$(CA_@G\e(B \e$(CGO3*7N\e(B \e$(CGQ\e(B \e$(C03\e(B \e$(C@L;s@G\e(B \e$(CC"@;\e(B \e$(C5?=C?!\e(B \e$(CH-8i?!\e(B \e$(CG%=CGR\e(B
-\e$(C<v\e(B \e$(C@V4Y4B\e(B \e$(C0M@;\e(B \e$(C5i\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+이맥스의 괜찮은 특징 중의 하나로 한 개 이상의 창을 동시에 화면에 표시할
+수 있다는 것을 들 수 있습니다.
 
->> \e$(C1t9Z@L8&\e(B \e$(C@L\e(B \e$(CAY7N\e(B \e$(C?rAw?)<-\e(B C-u 0 C-l\e$(C@;\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> 깜박이를 이 줄로 움직여서 C-u 0 C-l을 쳐 보십시오.
 
->> C-x 2\e$(C8&\e(B \e$(CCD<-\e(B \e$(CH-8i@;\e(B \e$(C5N\e(B \e$(CC"@87N\e(B \e$(C3*4)=J=C?@\e(B.
-   \e$(C5N\e(B \e$(CC"@:\e(B \e$(C@L\e(B \e$(CAvD'<-8&\e(B \e$(CH-8i\e(B \e$(CG%=CGU4O4Y\e(B.  \e$(C1t9Z@L4B\e(B \e$(C@-\e(B \e$(CC"?!\e(B \e$(C@V=@4O4Y\e(B.
+>> C-x 2를 쳐서 화면을 두 창으로 나누십시오.
+   두 창은 이 지침서를 화면 표시합니다.  깜박이는 윗 창에 있습니다.
 
->> C-M-v\e$(C8&\e(B \e$(CCD<-\e(B \e$(C9Y4Z\e(B \e$(CC"@;\e(B \e$(C5N7g8;1b\e(B \e$(CGO=J=C?@\e(B.
-   (Meta\e$(C<h0!\e(B \e$(C>x@88i\e(B ESC C-v\e$(C8&\e(B \e$(CD!=J=C?@\e(B.)
+>> C-M-v를 쳐서 바닥 창을 두루말기 하십시오.
+   (Meta쇠가 없으면 ESC C-v를 치십시오.)
 
->> C-x o ("o"\e$(C4B\e(B "other"\e$(C@G\e(B \e$(CC9\e(B \e$(C1[@Z\e(B)\e$(C8&\e(B \e$(CCD<-\e(B \e$(C1t9Z@L8&\e(B \e$(C9Y4Z\e(B \e$(CC"@87N\e(B
-   \e$(C?rAw@L=J=C?@\e(B.
->> \e$(C9Y4Z\e(B \e$(CC"?!<-\e(B C-v\e$(C?M\e(B M-v\e$(C8&\e(B \e$(C=a<-\e(B \e$(C5N7g8;1b\e(B \e$(CGO=J=C?@\e(B.
-   \e$(C@L\e(B \e$(CAv=C8&\e(B \e$(C@P4B\e(B \e$(C0M@:\e(B \e$(C2@4k1b\e(B \e$(CC"?!<-\e(B \e$(CGU4O4Y\e(B.
+>> C-x o ("o"는 "other"의 첫 글자)를 쳐서 깜박이를 바닥 창으로
+   움직이십시오.
+>> 바닥 창에서 C-v와 M-v를 써서 두루말기 하십시오.
+   이 지시를 읽는 것은 꼭대기 창에서 합니다.
 
->> C-x o\e$(C8&\e(B \e$(C4Y=C\e(B \e$(CCD<-\e(B \e$(C1t9Z@L8&\e(B \e$(C4Y=C\e(B \e$(C2@4k1b\e(B \e$(CC"@87N\e(B \e$(C?rAw@L=J=C?@\e(B.
-   \e$(C2@4k1b\e(B \e$(CC"?!<-\e(B, \e$(C1t9Z@L4B\e(B \e$(C@|?!\e(B \e$(C@V4x\e(B \e$(C0w@87N\e(B \e$(C0%\e(B \e$(C0M@T4O4Y\e(B.
+>> C-x o를 다시 쳐서 깜박이를 다시 꼭대기 창으로 움직이십시오.
+   꼭대기 창에서, 깜박이는 전에 있던 곳으로 갈 것입니다.
 
-C-x o\e$(C8&\e(B \e$(C0h<S\e(B \e$(C;g?kGO?)\e(B \e$(CC"5i\e(B \e$(C;g@L?!<-\e(B \e$(C>y9Y2Y1b8&\e(B \e$(CGR\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C0"0"@G\e(B
-\e$(CC"@:\e(B \e$(C@ZC<@G\e(B \e$(C1t9Z@L\e(B \e$(C@'D!8&\e(B \e$(C0.0m\e(B \e$(C@VAv88\e(B \e$(CGQ\e(B \e$(CC"88@L\e(B \e$(C1t9Z@L8&\e(B \e$(C:8?)\e(B \e$(CA]4O4Y\e(B.
-\e$(C8p5g\e(B \e$(CA$;s@{@N\e(B \e$(CFmA}\e(B \e$(C8m7I@:\e(B \e$(C1t9Z@L0!\e(B \e$(C@V4B\e(B \e$(CC"?!\e(B \e$(C@{?k5K4O4Y\e(B.  \e$(C@L0M@;\e(B
-"\e$(C<1EC5H\e(B \e$(CC"\e(B"\e$(C@L6s0m\e(B \e$(C:N8(4O4Y\e(B.
+C-x o를 계속 사용하여 창들 사이에서 엇바꾸기를 할 수 있습니다.  각각의
+창은 자체의 깜박이 위치를 갖고 있지만 한 창만이 깜박이를 보여 줍니다.
+모든 정상적인 편집 명령은 깜박이가 있는 창에 적용됩니다.  이것을
+"선택된 창"이라고 부릅니다.
 
-C-M-v \e$(C8m7I@:\e(B \e$(C4Y8%\e(B \e$(CC"@;\e(B \e$(CB|A6GO8i<-\e(B \e$(C1[?y@;\e(B \e$(CFmA}GR\e(B \e$(C6'\e(B \e$(C@/?kGU4O4Y\e(B.
-\e$(C1t9Z@L8&\e(B \e$(CFmA}GO0m\e(B \e$(C@V4B\e(B \e$(CC"?!\e(B \e$(C5N0m\e(B \e$(C4Y8%\e(B \e$(CC"@;\e(B C-M-v\e$(C7N\e(B \e$(C@|Ax=CE3\e(B \e$(C<v\e(B
-\e$(C@V=@4O4Y\e(B.
+C-M-v 명령은 다른 창을 참조하면서 글월을 편집할 때 유용합니다.
+깜박이를 편집하고 있는 창에 두고 다른 창을 C-M-v로 전진시킬 수
+있습니다.
 
-C-M-v\e$(C4B\e(B CONTROL-META \e$(C9.@Z@G\e(B \e$(CGQ\e(B \e$(C?9@T4O4Y\e(B.  META\e$(C<h0!\e(B \e$(C@V@88i\e(B CONTROL\e$(C<h?M\e(B
-META\e$(C<h8&\e(B \e$(C4)8%\e(B \e$(CC$\e(B v \e$(C1[<h8&\e(B \e$(CD!9G7N=a\e(B C-M-v\e$(C8&\e(B \e$(CD%\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B. CONTROL\e$(C<h3*\e(B
-META\e$(C<h4B\e(B \e$(CE8@ZGO4B\e(B \e$(C9.@Z8&\e(B \e$(C:/0fGO4B\e(B \e$(C?*GR@;\e(B \e$(CGO1b\e(B \e$(C6'9.?!\e(B \e$(C1W\e(B \e$(C5Q\e(B \e$(CA_\e(B \e$(C9+>y@L\e(B
-\e$(CC3@=?!\e(B \e$(C?@4B0!0!\e(B \e$(C9.A&5GAv\e(B \e$(C>J=@4O4Y\e(B.
+C-M-v는 CONTROL-META 문자의 한 예입니다.  META쇠가 있으면 CONTROL쇠와
+META쇠를 누른 채 v 글쇠를 치므로써 C-M-v를 칠 수 있습니다. CONTROL쇠나
+META쇠는 타자하는 문자를 변경하는 역할을 하기 때문에 그 둘 중 무엇이
+처음에 오는가가 문제되지 않습니다.
 
-META\e$(C<h0!\e(B \e$(C>x>n<-\e(B ESC\e$(C<h7N\e(B \e$(C4k?kGR\e(B \e$(C6'4B\e(B \e$(C<x<-0!\e(B \e$(C9.A&5K4O4Y\e(B: ESC\e$(C<h8&\e(B \e$(C8U@z\e(B
-\e$(CD!0m\e(B \e$(CA&>n<h\e(B-v\e$(C8&\e(B \e$(CCD>_\e(B \e$(CGO8g\e(B \e$(CA&>n<h\e(B-ESC v\e$(C4B\e(B \e$(C@[5?GOAv\e(B \e$(C>J=@4O4Y\e(B.  \e$(C1W\e(B
-\e$(C@L@/4B\e(B ESC\e$(C@L\e(B \e$(C:/0f<h0!\e(B \e$(C>F4O6s\e(B \e$(C@ZC<7N<-\e(B \e$(C1b4I@;\e(B \e$(C0!Ax\e(B \e$(C9.@Z@L1b\e(B \e$(C6'9.@T4O4Y\e(B.
+META쇠가 없어서 ESC쇠로 대용할 때는 순서가 문제됩니다: ESC쇠를 먼저
+치고 제어쇠-v를 쳐야 하며 제어쇠-ESC v는 작동하지 않습니다.  그
+이유는 ESC이 변경쇠가 아니라 자체로서 기능을 가진 문자이기 때문입니다.
 
->> C-x 1\e$(C@;\e(B (\e$(C@L\e(B \e$(C2@4k1b\e(B \e$(CC"?!<-\e(B) \e$(CCD<-\e(B \e$(C9Y4Z\e(B \e$(CC"@;\e(B \e$(C>x>V=J=C?@\e(B.
+>> C-x 1을 (이 꼭대기 창에서) 쳐서 바닥 창을 없애십시오.
 
-(\e$(C9Y4Z\e(B \e$(CC"?!<-\e(B C-x 1\e$(C@;\e(B \e$(CD!8i\e(B \e$(C2@4k1b\e(B \e$(CC"@L\e(B \e$(C>x>nAz\e(B \e$(C0M@T4O4Y\e(B.  \e$(C@L\e(B \e$(C8m7I@;\e(B "\e$(CGQ\e(B
-\e$(CC"88\e(B \e$(C:8A8GO=C?@\e(B--\e$(CAv1]\e(B \e$(C@[>wA_@N\e(B \e$(CC"88\e(B"\e$(C@L6s0m\e(B \e$(C;}0"GO=J=C?@\e(B.)
+(바닥 창에서 C-x 1을 치면 꼭대기 창이 없어질 것입니다.  이 명령을 "한
+창만 보존하시오--지금 작업중인 창만"이라고 생각하십시오.)
 
-\e$(C>gBJ\e(B \e$(CC"?!\e(B \e$(C00@:\e(B \e$(C;g@LD-@;\e(B \e$(CH-8i\e(B \e$(CG%=CGR\e(B \e$(CGJ?d4B\e(B \e$(C>x=@4O4Y\e(B.  \e$(CGQ\e(B \e$(CC"?!<-\e(B C-x
-C-f\e$(C7N\e(B \e$(CFD@O@;\e(B \e$(CC#@88i\e(B \e$(C4Y8%\e(B \e$(CC"@:\e(B \e$(C:/H-0!\e(B \e$(C>x=@4O4Y\e(B.  \e$(C0"0"@G\e(B \e$(CC"?!<-\e(B \e$(CFD@O@;\e(B
-\e$(C5683@{@87N\e(B \e$(CC#@;\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+양쪽 창에 같은 사이칸을 화면 표시할 필요는 없습니다.  한 창에서 C-x
+C-f로 파일을 찾으면 다른 창은 변화가 없습니다.  각각의 창에서 파일을
+독립적으로 찾을 수 있습니다.
 
-\e$(C5N\e(B \e$(CC"@;\e(B \e$(C;g?kGO?)\e(B \e$(C4Y8%\e(B \e$(C3;?k@;\e(B \e$(CH-8i\e(B \e$(CG%=CGO4B\e(B \e$(C6G\e(B \e$(C4Y8%\e(B \e$(C9f9}@L\e(B \e$(C@V=@4O4Y\e(B:
+두 창을 사용하여 다른 내용을 화면 표시하는 또 다른 방법이 있습니다:
 
->> C-x 4 C-f\e$(C8&\e(B \e$(CD!0m\e(B \e$(CFD@O\e(B \e$(C@L8'\e(B \e$(CGO3*8&\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
-   <Return>\e$(C@87N\e(B \e$(C3!3;=J=C?@\e(B.  \e$(C1W\e(B \e$(CFD@O@L\e(B \e$(C9Y4Z\e(B \e$(CC"?!\e(B \e$(C3*E83*4B\e(B \e$(C0M@;\e(B
-   \e$(C:8=J=C?@\e(B.  \e$(C1t9Z@L55\e(B \e$(C1W\e(B \e$(C0w@87N\e(B \e$(C?rAw@T4O4Y\e(B.
+>> C-x 4 C-f를 치고 파일 이름 하나를 쳐 보십시오.
+   <Return>으로 끝내십시오.  그 파일이 바닥 창에 나타나는 것을
+   보십시오.  깜박이도 그 곳으로 움직입니다.
 
->> C-x o\e$(C8&\e(B \e$(CCD<-\e(B \e$(C4Y=C\e(B \e$(C2@4k1b\e(B \e$(CC"@87N\e(B \e$(C59>F\e(B \e$(C0!<-\e(B C-x 1\e$(C7N\e(B \e$(C9Y4Z\e(B \e$(CC"@;\e(B
-   \e$(CAv?l=J=C?@\e(B.
+>> C-x o를 쳐서 다시 꼭대기 창으로 돌아 가서 C-x 1로 바닥 창을
+   지우십시오.
 
 
-* \e$(CH81M@{\e(B \e$(CFmA}\e(B \e$(C<vAX\e(B
+* 회귀적 편집 수준
 ------------------
 
-\e$(C0#H$\e(B "\e$(CH81M@{\e(B \e$(CFmA}\e(B \e$(C<vAX\e(B"\e$(C@L6s0m\e(B (recursive editing level) \e$(C:R8.?l4B\e(B \e$(C0M?!\e(B
-\e$(C:@BxGO0T\e(B \e$(C5K4O4Y\e(B.  \e$(C9f=D\e(B \e$(CAY?!<-\e(B \e$(CAV\e(B \e$(C9f=D\e(B \e$(C@L8'@G\e(B \e$(C>U5Z?!\e(B \e$(C@V4B\e(B \e$(C<R0}H#\e(B \e$(C9.@Z8&\e(B
-\e$(C4k0}H#\e(B \e$(C9.@Z0!\e(B \e$(C5Q7/\e(B \e$(C=N0m\e(B \e$(C@V@88i\e(B \e$(C@L8&\e(B \e$(C>K\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.  \e$(C?98&\e(B \e$(C5i>n\e(B,
-(Fundamental) \e$(C4k=E?!\e(B [(Fundamental)]\e$(C@L6s0m\e(B \e$(CG%=C5I\e(B \e$(C6'\e(B \e$(C@T4O4Y\e(B.
+간혹 "회귀적 편집 수준"이라고 (recursive editing level) 불리우는 것에
+봉착하게 됩니다.  방식 줄에서 주 방식 이름의 앞뒤에 있는 소괄호 문자를
+대괄호 문자가 둘러 싸고 있으면 이를 알 수 있습니다.  예를 들어,
+(Fundamental) 대신에 [(Fundamental)]이라고 표시될 때 입니다.
 
-\e$(C@L\e(B \e$(CH81M@{\e(B \e$(CFmA}\e(B \e$(C<vAX?!<-\e(B \e$(C9~>n\e(B \e$(C3*1b\e(B \e$(C@'GX<-4B\e(B ESC ESC ESC\e$(C@;\e(B \e$(CD(4O4Y\e(B.
-\e$(C@L\e(B \e$(C0M@:\e(B \e$(C4Y8q@{\e(B "\e$(C9~>n3*1b\e(B" \e$(C8m7I@T4O4Y\e(B.  \e$(CC_0!5H\e(B \e$(CC"@;\e(B \e$(C>x>V0E3*\e(B \e$(C@[@:\e(B
-\e$(C;g@LD-?!<-\e(B \e$(C3*?@1b\e(B \e$(C@'GX<-55\e(B \e$(C;g?k5I\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+이 회귀적 편집 수준에서 벗어 나기 위해서는 ESC ESC ESC을 칩니다.
+이 것은 다목적 "벗어나기" 명령입니다.  추가된 창을 없애거나 작은
+사이칸에서 나오기 위해서도 사용될 수 있습니다.
 
->> M-x\e$(C8&\e(B \e$(CCD<-\e(B \e$(C@[@:\e(B \e$(C;g@LD-@87N\e(B \e$(C5i>n\e(B \e$(C0!=J=C?@\e(B; \e$(C1W8.0m4B\e(B ESC ESC ESC\e$(C@;\e(B
-   \e$(CCD<-\e(B \e$(C:|A.\e(B \e$(C3*?@=J=C?@\e(B.
+>> M-x를 쳐서 작은 사이칸으로 들어 가십시오; 그리고는 ESC ESC ESC을
+   쳐서 빠져 나오십시오.
 
-C-g\e$(C8&\e(B \e$(C=a<-4B\e(B \e$(CH81M@{\e(B \e$(CFmA}\e(B \e$(C<vAX?!<-\e(B \e$(C9~>n3/\e(B \e$(C<v\e(B \e$(C>x=@4O4Y\e(B.  \e$(C1W\e(B \e$(C@L@/4B\e(B C-g\e$(C0!\e(B
-\e$(CH81M@{\e(B \e$(CFmA}\e(B \e$(C<vAX\e(B \e$(C@L3;?!<-\e(B \e$(C8m7I@L3*\e(B \e$(C@N<v8&\e(B \e$(CCk<RGO1b\e(B \e$(C@'GX\e(B \e$(C;g?k5G1b\e(B
-\e$(C6'9.@T4O4Y\e(B.
+C-g를 써서는 회귀적 편집 수준에서 벗어날 수 없습니다.  그 이유는 C-g가
+회귀적 편집 수준 이내에서 명령이나 인수를 취소하기 위해 사용되기
+때문입니다.
 
 
-* \e$(C4u\e(B \e$(C89@:\e(B \e$(C55?r8;\e(B \e$(C>r1b\e(B
+* 더 많은 도움말 얻기
 ---------------------
 
-\e$(C@L\e(B \e$(CAvD'<-?!<-4B\e(B \e$(C@L8F=:\e(B \e$(C;g?k@;\e(B \e$(C=C@[GO1b?!\e(B \e$(CCf:PGQ\e(B \e$(CA$:88&\e(B \e$(CA&0xGO7A0m\e(B
-\e$(C3k7BGO?4=@4O4Y\e(B.  \e$(C@L8F=:?!4B\e(B \e$(C3J9+3*\e(B \e$(C89@:\e(B \e$(C1b4I@L\e(B \e$(C@V>n<-\e(B \e$(C?)1b<-4B\e(B \e$(C8p5N\e(B \e$(C4Y\e(B
-\e$(C<38mGR\e(B \e$(C<v\e(B \e$(C>x=@4O4Y\e(B.  \e$(C1W7/3*\e(B, \e$(C@L8F=:?!4B\e(B \e$(C4Y8%\e(B \e$(C89@:\e(B \e$(C@/?kGQ\e(B \e$(CF/B!5i@L\e(B
-\e$(C@V>n<-\e(B \e$(C@L8F=:?!\e(B \e$(C4kGX<-\e(B \e$(C4u\e(B \e$(C89@L\e(B \e$(C9h?l0m\e(B \e$(C=M@;\e(B \e$(C0M\e(B \e$(C@T4O4Y\e(B.  \e$(C@L8F=:4B\e(B \e$(C@L8F=:\e(B
-\e$(C8m7I?!\e(B \e$(C4kGQ\e(B \e$(C9.<-H-8&\e(B \e$(C@P@;\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(C8m7I@;\e(B \e$(CA&0xGU4O4Y\e(B.  \e$(C@L\e(B "\e$(C55?r8;\e(B"
-\e$(C8m7I5i@:\e(B \e$(C8p5N\e(B \e$(CA&>n<h\e(B-h\e$(C7N\e(B \e$(C=C@[GO8g\e(B \e$(C@L\e(B \e$(C9.@Z8&\e(B "\e$(C55?r8;\e(B \e$(C9.@Z\e(B"\e$(C6s0m\e(B
-\e$(C:N8(4O4Y\e(B.
+이 지침서에서는 이맥스 사용을 시작하기에 충분한 정보를 제공하려고
+노력하였습니다.  이맥스에는 너무나 많은 기능이 있어서 여기서는 모두 다
+설명할 수 없습니다.  그러나, 이맥스에는 다른 많은 유용한 특징들이
+있어서 이맥스에 대해서 더 많이 배우고 싶을 것 입니다.  이맥스는 이맥스
+명령에 대한 문서화를 읽을 수 있는 명령을 제공합니다.  이 "도움말"
+명령들은 모두 제어쇠-h로 시작하며 이 문자를 "도움말 문자"라고
+부릅니다.
 
-\e$(C55?r8;\e(B \e$(CF/B!@;\e(B \e$(C;g?kGO7A8i\e(B C-h \e$(C9.@Z8&\e(B \e$(CD!0m\e(B \e$(C?xGO4B\e(B \e$(CA>7y@G\e(B \e$(C55?r8;@;\e(B
-\e$(C0!8#E04B\e(B \e$(C9.@Z8&\e(B \e$(CD(4O4Y\e(B.  \e$(C@|Gt\e(B \e$(C;}0"@L\e(B \e$(C>J3*8i\e(B C-h ?\e$(C8&\e(B \e$(CCD<-\e(B, \e$(C@L8F=:0!\e(B
-\e$(C>n62\e(B \e$(CA>7y@G\e(B \e$(C55?r8;@;\e(B \e$(CA&0xGR\e(B \e$(C<v\e(B \e$(C@V4B0!8&\e(B \e$(C:8?)\e(B \e$(CAV557O\e(B \e$(CGO=J=C?@\e(B.  C-h\e$(C8&\e(B
-\e$(CD#\e(B \e$(CHD\e(B \e$(C>F9+71\e(B \e$(C55?r8;@L\e(B \e$(CGJ?d>x4Y0m\e(B \e$(CFG4\5G8i\e(B C-g\e$(C8&\e(B \e$(CCD<-\e(B \e$(CCk<RGO=J=C?@\e(B.
+도움말 특징을 사용하려면 C-h 문자를 치고 원하는 종류의 도움말을
+가르키는 문자를 칩니다.  전혀 생각이 않나면 C-h ?를 쳐서, 이맥스가
+어떤 종류의 도움말을 제공할 수 있는가를 보여 주도록 하십시오.  C-h를
+친 후 아무런 도움말이 필요없다고 판단되면 C-g를 쳐서 취소하십시오.
 
-(\e$(C>n62\e(B \e$(C0w?!<-4B\e(B C-h\e$(C@G\e(B \e$(C@G9L8&\e(B \e$(C:/0f=CDQ\e(B \e$(C3u=@4O4Y\e(B.  \e$(C1W5i@L\e(B \e$(C8p5g\e(B \e$(C;g?k@Z?!0T\e(B
-\e$(C@L785m\e(B \e$(C@O0}@{@N\e(B \e$(CA6C38&\e(B \e$(CCkGX<-4B\e(B \e$(C>J5G4B\e(B \e$(C0M@L9G7N\e(B \e$(C@L0M@:\e(B \e$(C?n?5\e(B \e$(CC<0h\e(B
-\e$(C0|8.@Z?!0T\e(B \e$(C:RFrGR\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(CCf:PGQ\e(B \e$(C1Y0E0!\e(B \e$(C5K4O4Y\e(B.  C-h\e$(C0!\e(B \e$(CH-8i@G\e(B \e$(C9Y4Z?!\e(B
-\e$(C55?r\e(B \e$(C>K828;@;\e(B \e$(CH-8i\e(B \e$(CG%=CGOAv\e(B \e$(C>J@88i\e(B \e$(C:RFr@L\e(B \e$(CGX0a5I\e(B \e$(C6'1nAv4B\e(B F1 \e$(C1[<h3*\e(B
-M-x help <Return>\e$(C@;\e(B \e$(C4k=E\e(B \e$(C;g?kGO557O\e(B \e$(CGO=J=C?@\e(B.)
+(어떤 곳에서는 C-h의 의미를 변경시켜 놓습니다.  그들이 모든 사용자에게
+이렇듯 일괄적인 조처를 취해서는 않되는 것이므로 이것은 운영 체계
+관리자에게 불평할 수 있는 충분한 근거가 됩니다.  C-h가 화면의 바닥에
+도움 알림말을 화면 표시하지 않으면 불평이 해결될 때까지는 F1 글쇠나
+M-x help <Return>을 대신 사용하도록 하십시오.)
 
-\e$(C0!@e\e(B \e$(C1b:;@{@N\e(B \e$(C55?r8;\e(B \e$(CF/B!@:\e(B C-h c \e$(C@T4O4Y\e(B.  C-h\e$(C8&\e(B \e$(CD!0m\e(B \e$(C9.@Z\e(B c\e$(C8&\e(B \e$(CD#\e(B \e$(CHD\e(B
-\e$(C8m7I\e(B \e$(C9.@Z3*\e(B \e$(C8m7I\e(B \e$(C<xBw\e(B(sequence)\e$(C8&\e(B \e$(CD!=J=C?@\e(B; \e$(C1W7/8i\e(B \e$(C@L8F=:4B\e(B \e$(C1W\e(B \e$(C8m7I?!\e(B
-\e$(C4kGQ\e(B \e$(C>FAV\e(B \e$(C0#4\GQ\e(B \e$(C<38m@;\e(B \e$(CH-8i\e(B \e$(CG%=CGU4O4Y\e(B.
+가장 기본적인 도움말 특징은 C-h c 입니다.  C-h를 치고 문자 c를 친 후
+명령 문자나 명령 순차(sequence)를 치십시오; 그러면 이맥스는 그 명령에
+대한 아주 간단한 설명을 화면 표시합니다.
 
->> C-h c \e$(CA&>n<h\e(B-p\e$(C8&\e(B \e$(CD!=J=C?@\e(B.
-   \e$(C>K828;@:\e(B \e$(C4Y@=0z\e(B \e$(C00@:\e(B \e$(C=D@L>n>_\e(B \e$(CGU4O4Y\e(B.
+>> C-h c 제어쇠-p를 치십시오.
+   알림말은 다음과 같은 식이어야 합니다.
 
        C-p runs the command previous-line
 
-\e$(C@L4B\e(B "\e$(C1b4I@G\e(B \e$(C@L8'\e(B"\e$(C@;\e(B \e$(C8;GX\e(B \e$(CA]4O4Y\e(B.  \e$(C1b4I\e(B \e$(C@L8'@:\e(B \e$(C@L8F=:8&\e(B \e$(C@Z1b\e(B \e$(CCkGb?!\e(B
-\e$(C8B0T\e(B \e$(C>20E3*\e(B \e$(CH.@eGR\e(B \e$(C6'\e(B \e$(CAV7N\e(B \e$(C;g?k5K4O4Y\e(B.  \e$(C1W7/3*\e(B \e$(C1b4I\e(B \e$(C@L8'5i@:\e(B \e$(C1W\e(B \e$(C8m7I@L\e(B
-\e$(C>n62\e(B \e$(C@O@;\e(B \e$(CGO4BAv8&\e(B \e$(C>K\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(CA$GXAv1b\e(B \e$(C6'9.?!\e(B \e$(C1W5i@:\e(B \e$(C>FAV\e(B \e$(C0#4\GQ\e(B
-\e$(C9.<-H-7N55\e(B -- \e$(C?)EB1nAv\e(B \e$(C9h?n\e(B \e$(C8m7I5i@;\e(B \e$(C1b>oGO4B5%\e(B \e$(CCf:PGR\e(B \e$(CA$557N\e(B --
-\e$(C;g?k5I\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+이는 "기능의 이름"을 말해 줍니다.  기능 이름은 이맥스를 자기 취향에
+맞게 쓰거나 확장할 때 주로 사용됩니다.  그러나 기능 이름들은 그 명령이
+어떤 일을 하는지를 알 수 있도록 정해지기 때문에 그들은 아주 간단한
+문서화로도 -- 여태까지 배운 명령들을 기억하는데 충분할 정도로 --
+사용될 수 있습니다.
 
-C-x C-s\e$(C?M\e(B (META\e$(C<h3*\e(B EDIT\e$(C<h\e(B \e$(CH$@:\e(B \e$(C13C<<h0!\e(B \e$(C@V@88i\e(B) <ESC>v\e$(C?M\e(B \e$(C00@:\e(B \e$(C4YA_\e(B
-\e$(C9.@Z\e(B \e$(C8m7I5i55\e(B C-h c\e$(C@G\e(B \e$(C4Y@=?!\e(B \e$(C?C\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
+C-x C-s와 (META쇠나 EDIT쇠 혹은 교체쇠가 있으면) <ESC>v와 같은 다중
+문자 명령들도 C-h c의 다음에 올 수 있습니다.
 
-\e$(CGQ\e(B \e$(C8m7I?!\e(B \e$(C4kGX\e(B \e$(C4u\e(B \e$(C@Z<<GQ\e(B \e$(CA$:88&\e(B \e$(C>r1b\e(B \e$(C@'GX<-4B\e(B C-h c \e$(C4k=E?!\e(B C-h k\e$(C8&\e(B
-\e$(C;g?kGO=J=C?@\e(B.
+한 명령에 대해 더 자세한 정보를 얻기 위해서는 C-h c 대신에 C-h k를
+사용하십시오.
 
->> C-h k \e$(CA&>n<h\e(B-p\e$(C8&\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> C-h k 제어쇠-p를 쳐 보십시오.
 
-\e$(C@L4B\e(B \e$(C1W\e(B \e$(C1b4I@G\e(B \e$(C@L8'0z\e(B \e$(CGT22\e(B \e$(C1W\e(B \e$(C9.<-H-8&\e(B \e$(C@L8F=:\e(B \e$(CC"?!\e(B \e$(CH-8i\e(B \e$(CG%=CGU4O4Y\e(B.
-\e$(CCb7B5H\e(B \e$(C0M@;\e(B \e$(C4Y\e(B \e$(C@P>z@88i\e(B C-x 1\e$(C7N\e(B \e$(C55?r8;\e(B \e$(C1[?y@;\e(B \e$(C>x>[4O4Y\e(B.  \e$(C4g@e?!\e(B \e$(C>x>Y\e(B
-\e$(CGJ?d4B\e(B \e$(C>x=@4O4Y\e(B.  \e$(C55?r8;\e(B \e$(C1[?y@;\e(B \e$(CB|A6GO8i<-\e(B \e$(CFmA}@;\e(B \e$(CGO4Y0!\e(B C-x 1\e$(C@;\e(B \e$(CCD55\e(B
-\e$(C5K4O4Y\e(B.
+이는 그 기능의 이름과 함께 그 문서화를 이맥스 창에 화면 표시합니다.
+출력된 것을 다 읽었으면 C-x 1로 도움말 글월을 없앱니다.  당장에 없앨
+필요는 없습니다.  도움말 글월을 참조하면서 편집을 하다가 C-x 1을 쳐도
+됩니다.
 
-\e$(C?)1b?!\e(B \e$(C6G4Y8%\e(B \e$(C@/?kGQ\e(B C-h\e$(C@G\e(B \e$(CC_0!\e(B \e$(C<1EC@L\e(B \e$(C@V=@4O4Y\e(B:
+여기에 또다른 유용한 C-h의 추가 선택이 있습니다:
 
-   C-h f       \e$(C1b4I\e(B \e$(C1b<zGO1b\e(B.  \e$(C1b4I\e(B \e$(C@L8'@;\e(B \e$(CD(4O4Y\e(B.
+   C-h f       기능 기술하기.  기능 이름을 칩니다.
 
->> C-h f previous-line<Return>\e$(C@;\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
-   \e$(C1W7/8i\e(B \e$(C@L8F=:0!\e(B C-p \e$(C8m7I@L\e(B \e$(CA&0xGO4B\e(B \e$(C1b4I?!\e(B \e$(C4kGQ\e(B \e$(C8p5g\e(B \e$(CA$:88&\e(B \e$(C@N<bGR\e(B
-   \e$(C0M@T4O4Y\e(B.
+>> C-h f previous-line<Return>을 쳐 보십시오.
+   그러면 이맥스가 C-p 명령이 제공하는 기능에 대한 모든 정보를 인쇄할
+   것입니다.
 
-\e$(C@/;gGQ\e(B \e$(C8m7I@87N\e(B C-h v \e$(C0!\e(B \e$(C@V@88g\e(B \e$(C@L4B\e(B \e$(C@L8F=:@G\e(B \e$(CG`5?@;\e(B \e$(C@{@}GO0T\e(B \e$(CGO4B5%\e(B
-\e$(C;g?k5G4B\e(B \e$(C:/<v0*?!\e(B \e$(C4kGQ\e(B \e$(C9.<-H-8&\e(B \e$(C:8?)AX4Y\e(B.
+유사한 명령으로 C-h v 가 있으며 이는 이맥스의 행동을 적절하게 하는데
+사용되는 변수값에 대한 문서화를 보여준다.
 
-   C-h a       \e$(C8m7I\e(B \e$(CGY=I>n\e(B(apropos).  \e$(CGY=I>n8&\e(B \e$(CD!8i\e(B \e$(C@L8F=:0!\e(B \e$(C@L\e(B
-               \e$(CGY=I>n0!\e(B \e$(C5i>n\e(B \e$(C@V4B\e(B \e$(C8p5g\e(B \e$(C8m7I5i@G\e(B \e$(C8q7O@;\e(B \e$(C@[<:GR\e(B
-               \e$(C0M@T4O4Y\e(B. \e$(C@L\e(B \e$(C8m7I5i@:\e(B \e$(C8p5N\e(B Meta\e$(C<h\e(B-x\e$(C7N\e(B \e$(C:N8&\e(B \e$(C<v\e(B
-               \e$(C@V=@4O4Y\e(B. \e$(C>n62\e(B \e$(C8m7I5i?!\e(B \e$(C4kGX<-4B\e(B \e$(C00@:\e(B \e$(C8m7I@;\e(B \e$(C=GG`GO4B\e(B,
-               \e$(CGQ5N03@G\e(B \e$(C9.@Z7N\e(B \e$(C5H\e(B \e$(C<xBw?!\e(B \e$(C4kGQ\e(B \e$(C8q7O55\e(B \e$(C8m7I\e(B \e$(CGY=I>n0!\e(B
-               \e$(C@[<:GU4O4Y\e(B.
+   C-h a       명령 핵심어(apropos).  핵심어를 치면 이맥스가 이
+               핵심어가 들어 있는 모든 명령들의 목록을 작성할
+               것입니다. 이 명령들은 모두 Meta쇠-x로 부를 수
+               있습니다. 어떤 명령들에 대해서는 같은 명령을 실행하는,
+               한두개의 문자로 된 순차에 대한 목록도 명령 핵심어가
+               작성합니다.
 
->> C-h a file<Return>\e$(C@;\e(B \e$(CCD\e(B \e$(C:8=J=C?@\e(B.
+>> C-h a file<Return>을 쳐 보십시오.
 
-\e$(C1W7/8i\e(B \e$(C@L8'?!\e(B "file"\e$(C@L\e(B \e$(C5i>n\e(B \e$(C@V4B\e(B \e$(C8p5g\e(B M-x \e$(C8m7I5i@G\e(B \e$(C8q7O@L\e(B \e$(C@[<:5G?)\e(B
-\e$(C4Y8%\e(B \e$(CC"?!\e(B \e$(CH-8i\e(B \e$(CG%=C5K4O4Y\e(B.  find-file\e$(C0z\e(B \e$(C00@:\e(B \e$(C8m7I5i?!4B\e(B C-x C-f\e$(C?M\e(B \e$(C00@:\e(B
-\e$(C9.@Z\e(B \e$(C8m7I@G\e(B \e$(C8q7O@L\e(B \e$(CGX4gGO4B\e(B \e$(C8m7I@G\e(B \e$(C?7?!\e(B \e$(C@[<:5G>n\e(B \e$(C@V4B\e(B \e$(C0M@;\e(B \e$(C:<\e(B  \e$(C<v\e(B \e$(C@V@;\e(B
-\e$(C0M@T4O4Y\e(B.
+그러면 이름에 "file"이 들어 있는 모든 M-x 명령들의 목록이 작성되여
+다른 창에 화면 표시됩니다.  find-file과 같은 명령들에는 C-x C-f와 같은
+문자 명령의 목록이 해당하는 명령의 옆에 작성되어 있는 것을 볼  수 있을
+것입니다.
 
->> C-M-v\e$(C8&\e(B \e$(CCD<-\e(B \e$(C55?r8;\e(B \e$(CC"@;\e(B \e$(C5N7g8;1b\e(B \e$(CGO=J=C?@\e(B.  \e$(C@L8&\e(B \e$(C8n\e(B \e$(C9x\e(B \e$(CGO=J=C?@\e(B.
+>> C-M-v를 쳐서 도움말 창을 두루말기 하십시오.  이를 몇 번 하십시오.
 
->> C-x 1\e$(C@;\e(B \e$(CCD<-\e(B \e$(C55?r8;\e(B \e$(CC"@;\e(B \e$(CAv?l=J=C?@\e(B.
+>> C-x 1을 쳐서 도움말 창을 지우십시오.
 
-   C-h i       \e$(C?B6s@N\e(B \e$(C<38m<-8&\e(B \e$(C@P1b\e(B (\e$(CAo\e(B Info).  \e$(C@L\e(B \e$(C8m7I@:\e(B
-               `*info*'\e$(C6s4B\e(B \e$(CF/:0GQ\e(B \e$(C;g@LD-?!<-\e(B \e$(C=C=:E[?!\e(B \e$(C<3D!5H\e(B
-               \e$(C2Y7/9L@G\e(B \e$(C?B6s@N\e(B \e$(C<38m<-8&\e(B \e$(C:8?)A]4O4Y\e(B.  m emacs
-               <\e$(C:91M<h\e(B>\e$(C8&\e(B  \e$(CD!8i\e(B \e$(C@L8F=:\e(B \e$(C<38m<-8&\e(B \e$(C@P@;\e(B \e$(C<v\e(B \e$(C@V=@4O4Y\e(B.
-               \e$(C@|?!\e(B Info\e$(C8&\e(B \e$(C@P>n\e(B \e$(C:;\e(B \e$(C@{@L\e(B \e$(C>x@88i\e(B ?\e$(C8&\e(B \e$(CD!=J=C?@\e(B.  \e$(C1W7/8i\e(B
-               \e$(C@L8F=:0!\e(B Info \e$(C9f=D@L\e(B \e$(C>n62\e(B \e$(C1b4I@L\e(B \e$(C@V4B\e(B \e$(CAv8&\e(B \e$(C>H3;GO4B\e(B
-               \e$(C?)G`@L\e(B \e$(C=C@[5K4O4Y\e(B.  \e$(C@L\e(B \e$(CAvD'<-8&\e(B \e$(C@|:N\e(B \e$(C86D!8i\e(B \e$(C@L8F=:@G\e(B
-               Info \e$(C<38m<-8&\e(B \e$(CAV5H\e(B \e$(C9.<-H-7N\e(B \e$(C;}0"GX<-\e(B \e$(C@P>n>_\e(B \e$(CGU4O4Y\e(B.
+   C-h i       온라인 설명서를 읽기 (즉 Info).  이 명령은
+               `*info*'라는 특별한 사이칸에서 시스템에 설치된
+               꾸러미의 온라인 설명서를 보여줍니다.  m emacs
+               <복귀쇠>를  치면 이맥스 설명서를 읽을 수 있습니다.
+               전에 Info를 읽어 본 적이 없으면 ?를 치십시오.  그러면
+               이맥스가 Info 방식이 어떤 기능이 있는 지를 안내하는
+               여행이 시작됩니다.  이 지침서를 전부 마치면 이맥스의
+               Info 설명서를 주된 문서화로 생각해서 읽어야 합니다.
 
-* \e$(C0a7P\e(B
+* 결론
 ------
 
-\e$(C@L8F=:8&\e(B \e$(C?O@|Hw\e(B \e$(C3*0!1b\e(B \e$(C@'GX<-4B\e(B C-x C-c\e$(C8&\e(B \e$(C>44Y4B\e(B \e$(C;g=G@;\e(B \e$(C1b>oGO=J=C?@\e(B.
-\e$(C@O=C@{@87N\e(B \e$(CA60!:q7N\e(B \e$(C3*0!<-\e(B \e$(CHD?!\e(B \e$(C4Y=C\e(B \e$(C@L8F=:?!\e(B \e$(C5G59>F\e(B \e$(C?C\e(B \e$(C<v\e(B \e$(C@V1b\e(B
-\e$(C@'GX<-4B\e(B C-z\e$(C8&\e(B \e$(C;g?kGO=J=C?@\e(B.
+이맥스를 완전히 나가기 위해서는 C-x C-c를 쓴다는 사실을 기억하십시오.
+일시적으로 조가비로 나가서 후에 다시 이맥스에 되돌아 올 수 있기
+위해서는 C-z를 사용하십시오.
 
-\e$(C@L\e(B \e$(CAvD'<-4B\e(B \e$(C;u7N?n\e(B \e$(C;g?k@Z5i\e(B \e$(C8p5N0!\e(B \e$(C@LGXGR\e(B \e$(C<v\e(B \e$(C@V557O\e(B \e$(C885i>nA3@89G7N\e(B
-\e$(C:R:P8mGQ\e(B \e$(C;gGW@L\e(B \e$(C9_0_5G8i\e(B \e$(C>I>F<-\e(B \e$(C@Z1b\e(B \e$(C@Z=E@;\e(B \e$(CE?GOAv\e(B \e$(C8;0m\e(B \e$(C:RFrGO=J=C?@\e(B!
+이 지침서는 새로운 사용자들 모두가 이해할 수 있도록 만들어졌으므로
+불분명한 사항이 발견되면 앉아서 자기 자신을 탓하지 말고 불평하십시오!
 
 
-\e$(C:9;g\e(B \e$(CA60G\e(B
+복사 조건
 ---------
 
-\e$(C@L\e(B \e$(CAvD'<-4B\e(B Stuart Cracraft\e$(C>>0!\e(B \e$(C@L8F=:\e(B \e$(C1Y?x\e(B \e$(C@Z7a8&\e(B \e$(C@'GX\e(B \e$(C>4\e(B, \e$(C1d\e(B \e$(C@L8F=:\e(B
-\e$(CAvD'<-8&\e(B \e$(C8pC<7N\e(B \e$(CGO?)\e(B \e$(C@[<:5H\e(B \e$(C0M@L4Y\e(B.
+이 지침서는 Stuart Cracraft씨가 이맥스 근원 자료를 위해 쓴, 긴 이맥스
+지침서를 모체로 하여 작성된 것이다.
 
-GNU \e$(C@L8F=:?M\e(B \e$(C00@L\e(B \e$(C@L\e(B \e$(CAvD'<-\e(B \e$(CFG@:\e(B \e$(C@z@[1G@L\e(B \e$(C@V@88g\e(B \e$(CF/A$GQ\e(B \e$(CA60G@;\e(B \e$(C88A7GR\e(B
-\e$(C6'?!\e(B \e$(C:9;g:;@;\e(B \e$(C9hFwGR\e(B \e$(C<v\e(B \e$(C@V4B\e(B \e$(CGc0!8&\e(B \e$(C0.0m\e(B \e$(C3*?B\e(B \e$(C0M@L4Y\e(B:
+GNU 이맥스와 같이 이 지침서 판은 저작권이 있으며 특정한 조건을 만족할
+때에 복사본을 배포할 수 있는 허가를 갖고 나온 것이다:
 
 Copyright (C) 1985, 1996, 2001-2013 Free Software Foundation, Inc.
 
-   \e$(C@L\e(B \e$(C9.<-4B\e(B \e$(C@L\e(B \e$(C@z@[1G\e(B \e$(C0x0m?M\e(B \e$(CGc?k\e(B \e$(C0x0m0!\e(B \e$(C1W4k7N\e(B \e$(C@/Av5G0m\e(B, \e$(C9hFw@Z0!\e(B
-   \e$(C<vCk@Z?!0T\e(B \e$(C@L\e(B \e$(C0x0m?!\e(B \e$(C5{6s\e(B \e$(CGc?k5G4B\e(B \e$(C0MC373\e(B \e$(C6G\e(B \e$(C@g:P9hGO4B\e(B \e$(C0M@;\e(B
-   \e$(CGc?kGO4B\e(B \e$(CA60G@87N\e(B, \e$(C>n62\e(B \e$(C8EC<7N5gAv\e(B \e$(C9^@:\e(B \e$(C1W4k7N8&\e(B \e$(C:9;gGO0E3*\e(B
-   \e$(C:9;g:;@L\e(B \e$(C4Y8%\e(B \e$(C@L?!0T\e(B \e$(C9hFw5G4B\e(B \e$(C0M@L\e(B \e$(CGc?k5H4Y\e(B.
+   이 문서는 이 저작권 공고와 허용 공고가 그대로 유지되고, 배포자가
+   수취자에게 이 공고에 따라 허용되는 것처럼 또 재분배하는 것을
+   허용하는 조건으로, 어떤 매체로든지 받은 그대로를 복사하거나
+   복사본이 다른 이에게 배포되는 것이 허용된다.
 
-   \e$(C@L\e(B \e$(C9.<-@G\e(B \e$(C<vA$FG@L3*\e(B \e$(C<vA$FG@G\e(B \e$(C@O:N:P@:\e(B \e$(C@'@G\e(B \e$(CA60G0z\e(B \e$(CGT22\e(B, \e$(C6GGQ\e(B \e$(C4)0!\e(B
-   \e$(C86Av87@87N\e(B \e$(C:/0fG_4BAv8&\e(B \e$(C4+?!\e(B \e$(C6g0T\e(B \e$(C3*E83=4Y4B\e(B \e$(CA60G@87N\e(B \e$(C9hFw5G4B\e(B \e$(C0M@L\e(B
-   \e$(CGc?k5H4Y\e(B.
+   이 문서의 수정판이나 수정판의 일부분은 위의 조건과 함께, 또한 누가
+   마지막으로 변경했는지를 눈에 띄게 나타낸다는 조건으로 배포되는 것이
+   허용된다.
 
-\e$(C@L8F=:\e(B \e$(C@ZC<8&\e(B \e$(C:9;gGO4B\e(B \e$(C0M@:\e(B \e$(CA;\e(B \e$(C4u\e(B \e$(C:9@bGOAv88\e(B \e$(C00@:\e(B \e$(C3;?k@T4O4Y\e(B.
-COPYING\e$(C@L6s4B\e(B \e$(CFD@O@;\e(B \e$(C@P0m\e(B \e$(C3-\e(B \e$(CHD?!\e(B GNU \e$(C@L8F=:@G\e(B \e$(C:9;g:;@;\e(B \e$(CD#18?!0T\e(B
-\e$(CAV=J=C?@\e(B.  \e$(C@Z@/\e(B \e$(C<RGAF.?~>n8&\e(B \e$(C>20m\e(B \e$(C885i0m\e(B \e$(C0x@/GT@87N=a\e(B \e$(C<RGAF.?~>n\e(B
-\e$(C9fGX8&\e(B ("\e$(C<R@/1G\e(B") \e$(C1Y@}GO4B5%\e(B \e$(C55?s=C4Y\e(B.
+이맥스 자체를 복사하는 것은 좀 더 복잡하지만 같은 내용입니다.
+COPYING이라는 파일을 읽고 난 후에 GNU 이맥스의 복사본을 친구에게
+주십시오.  자유 소프트웨어를 쓰고 만들고 공유함으로써 소프트웨어
+방해를 ("소유권") 근절하는데 도웁시다.
 
 ;;; Local Variables:
-;;; coding: iso-2022-7bit
+;;; coding: utf-8
 ;;; End:
index e313fc71a5915e6f3f4e5d671e02c05ce333978f..18038baea445ed8d5cb61986fa10e7b0f5703ba7 100644 (file)
-\e0\e,T$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B. \e,Tb;C4\e0HV\e1!IR\e0Jh\e1G9\e07i\e1RB"M'\e0$Yh\e1\e0AW\e1MJSK\e0CQ\e1:`\e0'Wh\e1M9d"c9!RC7SJS`9R\e(B.
-\e,TJ'G9\e0ET\e1"\e0JT\e17\e08Tl\e1\e(B \e,T>\e(B.\e,TH\e(B. 2528 \e,Tb4B:\e0CT\e1\e0IQ\e17?\e0CU\e1+M?\e05l\e1aG\e0Cl\e1?RG\e09l\e1`4\e0*Q\e19\e(B (Free Software
-Foundation, Inc); \e,T!\e0CX\e13R\e0HV\e1!IR`\e0'Wh\e1M9d"5M9\e07i\e1RB:7\e(B.
-\e0\e,T7h\e1R9!S\e0EQ\e1'\e0HV\e1!IR\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B (Emacs tutorial) \e,TM\e0BYh\e1c9"3P\e09Ui\e1\e(B.
-
-\e,Tb4B\e07Qh\e1Gd;$S\e0JQh\e1'"M'\e0MU\e1aA!\e0Jl\e1\e(B (Emacs) \e,T(Pc\e0*i\e1\e0$Yh\e1\e0!Q\e1:\e0;Xh\e1A\e(B CONTROL (\e,T:R'$\e0CQi\e1'MR(`\e0;g\e19\e0;Xh\e1A\e07Uh\e1\e0AU\e1\e(B
-\e0\e,TJQ\e1-\e0EQ\e1!I\e03l\e1\e(B CTRL \e,TK\e0CW\e1M\e(B CTL) \e,TK\e0CW\e1M\e(B \e0\e,T;Xh\e1A\e(B META (\e,T:R'$\e0CQi\e1'MR(`\e0;g\e19\e0;Xh\e1A\e07Uh\e1\e0AU\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e(B EDIT \e,TK\e0CW\e1M\e(B
-ALT). \e,Ta79\e07Uh\e1(Pc\e0*i\e1$S`\e05g\e1Ac9!RCM\e08T\e1:RB\e(B, \e,T`CR(Pc\e0*i\e1\e05Q\e1G\e0Bh\e1M\e04Q\e1'\e05h\e1Md;\e09Ui\e1\e(B:
-
- C-<chr>  \e,TKARB\e06V\e1'c\e0Ki\e1!4\e0;Xh\e1A\e(B CONTROL \e,TaEP\e0;Xh\e1A\e0MQ\e1!IC\e(B <chr> \e,T>\e0Ci\e1MA\e0!Q\e19\e(B.
-         \e0\e,T4Q\e1'\e09Qi\e19\e(B C-f \e,T(PKARB\e06V\e1'c\e0Ki\e1!4\e0;Xh\e1A\e(B CONTROL \e,TaEP\e0;Xh\e1A\e(B f \e,T>\e0Ci\e1MA\e0!Q\e19\e(B.
- M-<chr>  \e,TKARB\e06V\e1'c\e0Ki\e1!4\e0;Xh\e1A\e(B META \e,TK\e0CW\e1M\e(B EDIT \e,TK\e0CW\e1M\e(B ALT \e,TaEP\e0;Xh\e1A\e0MQ\e1!IC\e(B <chr>
-         \e,T>\e0Ci\e1MA\e0!Q\e19\e(B. \e,Tc9!C\e03U\e1\e07Uh\e1d\e0Ah\e1\e0AU\e1\e0;Xh\e1A\e(B META, EDIT \e,TK\e0CW\e1M\e(B ALT \e,Tc\e0Ki\e1!4\e0;Xh\e1A\e(B
-         ESC \e,Ta\e0Ei\e1G;\e0Eh\e1MB\e(B, \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B <chr>. \e,T`CRc\e0*i\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e(B <ESC> \e,Ta79\e0;Xh\e1A\e(B ESC.
-
-\e,TKARB`K\e05X\e1\e(B: \e,Tc9!C\e03U\e1\e07Uh\e1\e05i\e1M'!RC`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B, \e,Tc\e0Ki\e1!4\e0;Xh\e1A\e(B C-x C-c. (\e,TJM'\e05Q\e1G\e0MQ\e1!IC\e(B.)
-\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B ">>" \e0\e,T7Uh\e1;CR!/M\e0BYh\e17R'"M:\e0+i\e1RB\e0AW\e1M`\e0;g\e19!RCa9P9Sc\e0Ki\e1\e07h\e1R9EM'c\e0*i\e1$S\e0JQh\e1'\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B:
+คู่มือการใช้อีแมกส์. โปรดศึกษาส่วนท้ายของคู่มือสำหรับเงื่อนไขในการทำสำเนา.
+สงวนลิขสิทธิ์ พ.ศ. 2528 โดยบริษัทฟรีซอฟต์แวร์ฟาวน์เดชัน (Free Software
+Foundation, Inc); กรุณาศึกษาเงื่อนไขตอนท้ายบท.
+ท่านกำลังศึกษาคู่มือการใช้อีแมกส์ (Emacs tutorial) อยู่ในขณะนี้.
+
+โดยทั่วไปคำสั่งของอีแมกส์ (Emacs) จะใช้คู่กับปุ่ม CONTROL (บางครั้งอาจเป็นปุ่มที่มี
+สัญลักษณ์ CTRL หรือ CTL) หรือ ปุ่ม META (บางครั้งอาจเป็นปุ่มที่มีสัญลักษณ์ EDIT หรือ
+ALT). แทนที่จะใช้คำเต็มในการอธิบาย, เราจะใช้ตัวย่อดังต่อไปนี้:
+
+ C-<chr>  หมายถึงให้กดปุ่ม CONTROL และปุ่มอักษร <chr> พร้อมกัน.
+         ดังนั้น C-f จะหมายถึงให้กดปุ่ม CONTROL และปุ่ม f พร้อมกัน.
+ M-<chr>  หมายถึงให้กดปุ่ม META หรือ EDIT หรือ ALT และปุ่มอักษร <chr>
+         พร้อมกัน. ในกรณีที่ไม่มีปุ่ม META, EDIT หรือ ALT ให้กดปุ่ม
+         ESC แล้วปล่อย, แล้วกดปุ่ม <chr>. เราใช้สัญลักษณ์ <ESC> แทนปุ่ม ESC.
+
+หมายเหตุ: ในกรณีที่ต้องการเลิกใช้อีแมกส์, ให้กดปุ่ม C-x C-c. (สองตัวอักษร.)
+ตัวอักษร ">>" ที่ปรากฏอยู่ทางขอบซ้ายมือเป็นการแนะนำให้ท่านลองใช้คำสั่ง. ตัวอย่างเช่น:
 <<Blank lines inserted here by startup of help-with-tutorial>>
->>  \e,T!4\e0;Xh\e1A\e(B C-v (\e0\e,T4Y\e1K\e09i\e1R(M\e06Q\e14d;\e(B) \e,T`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9d;\e0BQ\e1'K\e09i\e1R(M\e06Q\e14d;\e(B.
-       (\e,TEM'7S\e04Y\e1b4B!RC!4\e0;Xh\e1A\e(B CONTROL \e,TaEP\e0;Xh\e1A\e0MQ\e1!IC\e(B v \e,T>\e0Ci\e1MA\e0!Q\e19\e(B).
-       \e,T(R!\e09Ui\e1d;\e(B, \e0\e,T7h\e1R9$GC(PEM'c\e0*i\e1$S\e0JQh\e1'\e09Ui\e1\e04Y\e1`\e0AWh\e1M\e07h\e1R9\e0Mh\e1R9K\e09i\e1R(M\e09Ui\e1(:a\e0Ei\e1G\e(B.
+>>  กดปุ่ม C-v (ดูหน้าจอถัดไป) เพื่อที่จะเคลื่อนไปยังหน้าจอถัดไป.
+       (ลองทำดูโดยการกดปุ่ม CONTROL และปุ่มอักษร v พร้อมกัน).
+       จากนี้ไป, ท่านควรจะลองใช้คำสั่งนี้ดูเมื่อท่านอ่านหน้าจอนี้จบแล้ว.
 
-\e0\e,T7h\e1R9(P\e0JQ\e1'`!5`\e0Kg\e19d\e04i\e1\e0Gh\e1RJM':CC\e07Q\e14"M'K\e09i\e1R(M\e07Uh\e1a\e0Ei\e1G(P\e0BQ\e1'$';CR!/c\e0Ki\e1`\e0Kg\e19:9K\e09i\e1R(M\e06Q\e14d;\e(B; \e0\e,T9Uh\e1\e(B
-\e,T`\e0;g\e19!RC\e0*h\e1GBc\e0Ki\e1\e07h\e1R9JRARC6\e0Mh\e1R9K\e09i\e1R(Md\e04i\e1M\e0Bh\e1R'\e05h\e1M`\e09Wh\e1M'\e(B.
+ท่านจะสังเกตเห็นได้ว่าสองบรรทัดของหน้าจอที่แล้วจะยังคงปรากฏให้เห็นบนหน้าจอถัดไป; นี่
+เป็นการช่วยให้ท่านสามารถอ่านหน้าจอได้อย่างต่อเนื่อง.
 
-\e0\e,TJTh\e1'aC!\e07Uh\e1\e07h\e1R9(S`\e0;g\e19\e05i\e1M'\e0CYi\e1\e0$W\e1M!RC`$\e0EWh\e1M95SaK\e09h\e1'd;ARc9\e0"i\e1M$GRA\e(B. \e,T"3P\e09Ui\e1\e07h\e1R97CR:\e(B
-\e0\e,TGT\e1\e08U\e1!RC`$\e0EWh\e1M9d;\e0BQ\e1'K\e09i\e1R(M\e06Q\e14d;a\e0Ei\e1G\e04i\e1GB\e0;Xh\e1A\e(B C-v. \e,Tc9!RC\e07Uh\e1(P`$\e0EWh\e1M9!\e0EQ\e1:d;K\e09Vh\e1'K\e09i\e1R(M\e(B, \e,T!4\e0;Xh\e1A\e(B
-M-v (\e,T!4\e0;Xh\e1A\e(B META \e,TaEP\e0;Xh\e1A\e(B v, \e,TK\e0CW\e1M!4\e0;Xh\e1A\e(B <ESC>v \e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1\e0AU\e1\e0;Xh\e1A\e(B META, EDIT, \e,TK\e0CW\e1M\e(B ALT).
+สิ่งแรกที่ท่านจำเป็นต้องรู้คือการเคลื่อนตำแหน่งไปมาในข้อความ. ขณะนี้ท่านทราบ
+วิธีการเคลื่อนไปยังหน้าจอถัดไปแล้วด้วยปุ่ม C-v. ในการที่จะเคลื่อนกลับไปหนึ่งหน้าจอ, กดปุ่ม
+M-v (กดปุ่ม META และปุ่ม v, หรือกดปุ่ม <ESC>v ถ้าท่านไม่มีปุ่ม META, EDIT, หรือ ALT).
 
->>  \e,TEM'!4\e0;Xh\e1A\e(B M-v \e,TaEP!4\e0;Xh\e1A\e(B C-v \e0\e,T4Y\e1!RC7S'R9\e0JQ\e1!JM'JRA$\e0CQi\e1'\e(B.
+>>  ลองกดปุ่ม M-v และกดปุ่ม C-v ดูการทำงานสักสองสามครั้ง.
 
 
-* \e,TJ\e0CX\e1;\e(B
+* สรุป
 -----
 
-\e,T$S\e0JQh\e1'\e05h\e1Md;\e09Ui\e1c\e0*i\e1`\e0AWh\e1M\e05i\e1M'!RC\e04Y\e1K\e09i\e1R(M\e05h\e1R'f\e(B:
+คำสั่งต่อไปนี้ใช้เมื่อต้องการดูหน้าจอต่างๆ:
 
-       C-v     \e,T`$\e0EWh\e1M9d;\e0BQ\e1'K\e09i\e1R(M\e06Q\e14d;K\e09Vh\e1'K\e09i\e1R(M\e(B
-       M-v     \e,T`$\e0EWh\e1M9!\e0EQ\e1:d;K\e09Vh\e1'K\e09i\e1R(M\e(B
-       C-l     \e,TE:K\e09i\e1R(M\e(B \e,Ta\e0Ei\e1GaJ4'<EK\e09i\e1R(McK\e0Ah\e1\e(B, \e,T>\e0Ci\e1MA\e07Qi\e1'\e0Bi\e1RB5SaK\e09h\e1'"M'\e0"i\e1M$GRA\e07Uh\e1\e0AU\e1\e(B
-                \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e(B (cursor) \e,T;CR!/M\e0BYh\e1d;aJ4'd\e0Gi\e1!ER'(M\e(B.
-                (\e,T$S\e0JQh\e1'\e09Ui\e1\e0$W\e1M\e(B CONTROL-L, \e,Td\e0Ah\e1c\e0*h\e1\e(B CONTROL-1.)
+       C-v     เคลื่อนไปยังหน้าจอถัดไปหนึ่งหน้าจอ
+       M-v     เคลื่อนกลับไปหนึ่งหน้าจอ
+       C-l     ลบหน้าจอ แล้วแสดงผลหน้าจอใหม่, พร้อมทั้งย้ายตำแหน่งของข้อความที่มี
+                เคอร์เซอร์ (cursor) ปรากฏอยู่ไปแสดงไว้กลางจอ.
+                (คำสั่งนี้คือ CONTROL-L, ไม่ใช่ CONTROL-1.)
 
->> \e0\e,TJQ\e1'`!55SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B, \e,TaEP\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R\e0AU\e1\e0"i\e1M$GRAMPdCM\e0BYh\e1c!\e0Ei\e1`$M\e0Cl\e1`+M\e0Cl\e1\e(B.
-   \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B C-l.
-   \e0\e,TJQ\e1'`!5\e04Y\e15SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e0MU\e1!$\e0CQi\e1'\e(B \e,T(P`\e0Kg\e19\e0Gh\e1R\e0AU\e1\e0"i\e1M$GRA`\e04T\e1A;CR!/M\e0BYh\e1c!\e0Ei\e1f\e(B \e0\e,T!Q\e1:`$M\e0Cl\e1`+M\e0Cl\e1\e(B.
+>> สังเกตตำแหน่งของเคอร์เซอร์, และสังเกตดูว่ามีข้อความอะไรอยู่ใกล้เคอร์เซอร์.
+   แล้วกดปุ่ม C-l.
+   สังเกตดูตำแหน่งของเคอร์เซอร์อีกครั้ง จะเห็นว่ามีข้อความเดิมปรากฏอยู่ใกล้ๆ กับเคอร์เซอร์.
 
 
-* \e,T!RC$G:\e0$X\e1A`$M\e0Cl\e1`+M\e0Cl\e1`\e0:Wi\e1M'\e05i\e19\e(B
+* การควบคุมเคอร์เซอร์เบื้องต้น
 ------------------------
 
-\e,T!RC`$\e0EWh\e1M9K\e09i\e1R(Md;AR\e09Qi\e19`\e0;g\e19\e0JTh\e1'(S`\e0;g\e19\e(B \e,Ta\e05h\e1\e07h\e1R9(P7SM\e0Bh\e1R'dC\e06i\e1R\e07h\e1R9\e05i\e1M'!RC(P`$\e0EWh\e1M9d;\e0BQ\e1'\e(B
-\e,T5SaK\e09h\e1'\e07Uh\e1\e05i\e1M'!RC@RBc9\e0"i\e1M$GRA\e07Uh\e1;CR!/M\e0BYh\e1:9K\e09i\e1R(M\e(B?
+การเคลื่อนหน้าจอไปมานั้นเป็นสิ่งจำเป็น แต่ท่านจะทำอย่างไรถ้าท่านต้องการจะเคลื่อนไปยัง
+ตำแหน่งที่ต้องการภายในข้อความที่ปรากฏอยู่บนหน้าจอ?
 
-\e0\e,TAU\e1KERB\e0GT\e1\e08U\e1\e07Uh\e1JRARC6(P7Sd\e04i\e1\e(B. \e0\e,TGT\e1\e08U\e1\e07Uh\e1\e0>Wi\e19\e07Uh\e1\e0JX\e14\e0$W\e1M!RCc\e0*i\e1$S\e0JQh\e1'\e(B C-p, C-b, C-f, \e,TaEP\e(B C-n.
-\e,Ta\e05h\e1EP$S\e0JQh\e1'(P`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;K\e09Vh\e1':CC\e07Q\e14K\e0CW\e1MK\e09Vh\e1'$M\e0EQ\e1A\e09l\e1c9\e07T\e1H7R'c4\e07T\e1H7R'K\e09Vh\e1':9K\e09i\e1R(M\e(B.
-\e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e195RCR'aJ4'$S\e0JQh\e1'\e07Qi\e1'\e0JUh\e1\e(B \e,TaEP\e07T\e1H7R'\e07Uh\e1`$M\e0Cl\e1`+M\e0Cl\e1`$\e0EWh\e1M9d;\e(B:
+มีหลายวิธีที่สามารถจะทำได้. วิธีที่พื้นที่สุดคือการใช้คำสั่ง C-p, C-b, C-f, และ C-n.
+แต่ละคำสั่งจะเคลื่อนเคอร์เซอร์ไปหนึ่งบรรทัดหรือหนึ่งคอลัมน์ในทิศทางใดทิศทางหนึ่งบนหน้าจอ.
+ต่อไปนี้เป็นตารางแสดงคำสั่งทั้งสี่ และทิศทางที่เคอร์เซอร์เคลื่อนไป:
 
-                         \e,T:CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e(B, C-p
+                         บรรทัดก่อนหน้า, C-p
                                :
                                :
-   \e0\e,TBi\e1M9!\e0EQ\e1:\e(B, C-b  ....  \e,T5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B  ....  \e0\e,T"i\e1R'K\e09i\e1R\e(B, C-f
+   ย้อนกลับ, C-b  ....  ตำแหน่งเคอร์เซอร์ปัจจุบัน  ....  ข้างหน้า, C-f
                                :
                                :
-                         \e,T:CC\e07Q\e14\e06Q\e14d;\e(B, C-n
+                         บรรทัดถัดไป, C-n
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e07Uh\e1\e0!Vh\e1'!ER'"M'\e0<Q\e1'\e0"i\e1R':9b4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-n \e,TK\e0CW\e1M\e(B C-p. \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B
-   C-l \e,T`\e0>Wh\e1Mc\e0Ki\e1\e0<Q\e1';CR!/M\e0BYh\e1!ER'K\e09i\e1R(M\e(B.
+>> เคลื่อนเคอร์เซอร์ไปที่กึ่งกลางของผังข้างบนโดยใช้คำสั่ง C-n หรือ C-p. แล้วกดปุ่ม
+   C-l เพื่อให้ผังปรากฏอยู่กลางหน้าจอ.
 
-\e0\e,T7h\e1R9MR((P(S$S\e0JQh\e1'd\e04i\e1\e0'h\e1RB\e0"Vi\e19b4B\e0JQ\e1'`!5\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1c\e0*i\e1\e(B: p \e,TJSK\e0CQ\e1:\e(B previous (\e0\e,T!h\e1M9K\e09i\e1R\e(B), n
-\e,TJSK\e0CQ\e1:\e(B next (\e0\e,T6Q\e14d;\e(B), b \e,TJSK\e0CQ\e1:\e(B backward (\e0\e,TBi\e1M9!\e0EQ\e1:\e(B), \e,TaEP\e(B f \e,TJSK\e0CQ\e1:\e(B forward
-(\e0\e,T"i\e1R'K\e09i\e1R\e(B). \e,T`K\e0Eh\e1R\e09Ui\e1\e0$W\e1M`\e0:Wi\e1M'\e05i\e19"M'$S\e0JQh\e1'c9!RC$G:\e0$X\e1A5SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B, \e,TaEP\e07h\e1R9\e(B
-\e,T(P\e05i\e1M'c\e0*i\e1$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1\e0:h\e1MB$\e0CQi\e1'\e(B, \e,T)P\e09Qi\e19\e0(V\e1'`\e0;g\e19!RC\e04U\e1\e07Uh\e1(P(S$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1d\e0Gi\e1\e(B.
+ท่านอาจจะจำคำสั่งได้ง่ายขึ้นโดยสังเกตตัวอักษรที่ใช้: p สำหรับ previous (ก่อนหน้า), n
+สำหรับ next (ถัดไป), b สำหรับ backward (ย้อนกลับ), และ f สำหรับ forward
+(ข้างหน้า). เหล่านี้คือเบื้องต้นของคำสั่งในการควบคุมตำแหน่งของเคอร์เซอร์, และท่าน
+จะต้องใช้คำสั่งเหล่านี้บ่อยครั้ง, ฉะนั้นจึงเป็นการดีที่จะจำคำสั่งเหล่านี้ไว้.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-n \e0\e,T4Y\e1`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1E'AR\e0BQ\e1':CC\e07Q\e14\e09Ui\e1\e(B.
+>> ลองใช้คำสั่ง C-n ดูเพื่อที่จะเคลื่อนเคอร์เซอร์ลงมายังบรรทัดนี้.
 
->> \e,TEM'`$\e0EWh\e1M9`\e0"i\e1Rd;c9:CC\e07Q\e14b4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-f \e,TaEP`$\e0EWh\e1M9\e0"Vi\e19\e0"i\e1R':9b4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-p.
-   \e0\e,TJQ\e1'`!5\e04Y\e1\e0Gh\e1R`\e0!T\e14MPdC\e0"Vi\e19\e06i\e1Rc\e0*i\e1$S\e0JQh\e1'\e(B C-p \e,T`\e0AWh\e1M5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1;CR!/M\e0BYh\e1\e07Uh\e15C'!ER'\e(B
-   \e,T"M':CC\e07Q\e14\e(B.
+>> ลองเคลื่อนเข้าไปในบรรทัดโดยใช้คำสั่ง C-f และเคลื่อนขึ้นข้างบนโดยใช้คำสั่ง C-p.
+   สังเกตดูว่าเกิดอะไรขึ้นถ้าใช้คำสั่ง C-p เมื่อตำแหน่งเคอร์เซอร์ปรากฏอยู่ที่ตรงกลาง
+   ของบรรทัด.
 
-\e,Ta\e05h\e1EP:CC\e07Q\e14\e0JTi\e19\e0JX\e14\e04i\e1GB\e0MQ\e1!"CP\e(B Newline, \e0\e,T+Vh\e1'c\e0*i\e1aJ4'"M:`"5CPK\e0Gh\e1R':CC\e07Q\e14\e(B. \e0\e,T7Uh\e1\e07i\e1RB\e0JX\e14"M'\e(B
-\e,Td?\e0El\e1\e0!g\e1(P\e0AU\e1\e0MQ\e1!"CP\e(B Newline \e,T`\e0*h\e19\e0!Q\e19\e(B (\e,Ta\e05h\e1JSK\e0CQ\e1:\e0MU\e1aA!\e0Jl\e1a\e0Ei\e1Gd\e0Ah\e1(S`\e0;g\e19\e(B).
+แต่ละบรรทัดสิ้นสุดด้วยอักขระ Newline, ซึ่งใช้แสดงขอบเขตระหว่างบรรทัด. ที่ท้ายสุดของ
+ไฟล์ก็จะมีอักขระ Newline เช่นกัน (แต่สำหรับอีแมกส์แล้วไม่จำเป็น).
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-b \e0\e,T7Uh\e15SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M':CC\e07Q\e14\e04Y\e1\e(B. \e,T`$M\e0Cl\e1`+M\e0Cl\e1(P`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e(B
-   \e0\e,T7i\e1RB\e0JX\e14"M':CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e(B. \e0\e,T9Uh\e1`\e0;g\e19`>CRP\e0Gh\e1R`$M\e0Cl\e1`+M\e0Cl\e1d\e04i\e1`$\e0EWh\e1M9\e0"i\e1RA\e0MQ\e1!"CP\e(B Newline \e,Td;\e(B.
+>> ลองใช้คำสั่ง C-b ที่ตำแหน่งเริ่มต้นของบรรทัดดู. เคอร์เซอร์จะเคลื่อนไปยังตำแหน่ง
+   ท้ายสุดของบรรทัดก่อนหน้า. นี่เป็นเพราะว่าเคอร์เซอร์ได้เคลื่อนข้ามอักขระ Newline ไป.
 
-\e,T$S\e0JQh\e1'\e(B C-f \e,TJRARC6`$\e0EWh\e1M9\e0"i\e1RA\e0MQ\e1!"CP\e(B Newline \e,Td\e04i\e1`\e0*h\e19`\e04U\e1BG\e0!Q\e1:$S\e0JQh\e1'\e(B C-b.
+คำสั่ง C-f สามารถเคลื่อนข้ามอักขระ Newline ได้เช่นเดียวกับคำสั่ง C-b.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-b \e0\e,T4Y\e1\e0MU\e1!\e0JQ\e1!K\e09h\e1MB\e(B, \e0\e,T7h\e1R9(PJRARC6`\e0"i\e1Rc(!RC`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d\e04i\e1\e04U\e1\e0"Vi\e19\e(B.
-   \e,Ta\e0Ei\e1GEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-f \e,T`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M':CC\e07Q\e14\e(B.
-   \e,Ta\e0Ei\e1GEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-f \e0\e,TMU\e1!\e0JQ\e1!$\e0CQi\e1'`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9d;\e0BQ\e1':CC\e07Q\e14\e06Q\e14d;\e(B.
+>> ลองใช้คำสั่ง C-b ดูอีกสักหน่อย, ท่านจะสามารถเข้าใจการเคลื่อนเคอร์เซอร์ได้ดีขึ้น.
+   แล้วลองใช้คำสั่ง C-f เพื่อที่จะเคลื่อนไปยังตำแหน่งท้ายสุดของบรรทัด.
+   แล้วลองใช้คำสั่ง C-f อีกสักครั้งเพื่อที่จะเคลื่อนไปยังบรรทัดถัดไป.
 
-\e,T`\e0AWh\e1M\e07h\e1R9`$\e0EWh\e1M9\e0<h\e1R95SaK\e09h\e1':9\e0JX\e14K\e0CW\e1M\e07i\e1RB\e0JX\e14"M'K\e09i\e1R(M\e(B, \e0\e,T"i\e1M$GRA\e06Q\e14(R!:CC\e07Q\e14\e07Uh\e1M\e0BYh\e1\e07Uh\e1\e(B
-\e,T"M:\e09Qi\e19(P"\e0BQ\e1:`\e0"i\e1RAR;CR!/M\e0BYh\e1:9K\e09i\e1R(M\e(B. \e0\e,T9Uh\e1`\e0CU\e1B!\e0Gh\e1R\e(B "\e,T!RC`$\e0EWh\e1M9\e0Ai\e1G9\e(B (scrolling)". \e0\e,T9Uh\e1\e(B
-\e,T`\e0;g\e19!RC7Sc\e0Ki\e1\e0MU\e1aA!\e0Jl\e1JRARC6`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1'5SaK\e09h\e1'\e07Uh\e1\e05i\e1M'!RC:9\e0"i\e1M$GRAd\e04i\e1b4B\e(B
-\e,Td\e0Ah\e1`$\e0EWh\e1M9MM!9M!K\e09i\e1R(M\e(B.
+เมื่อท่านเคลื่อนผ่านตำแหน่งบนสุดหรือท้ายสุดของหน้าจอ, ข้อความถัดจากบรรทัดที่อยู่ที่
+ขอบนั้นจะขยับเข้ามาปรากฏอยู่บนหน้าจอ. นี่เรียกว่า "การเคลื่อนม้วน (scrolling)". นี่
+เป็นการทำให้อีแมกส์สามารถเคลื่อนเคอร์เซอร์ไปยังตำแหน่งที่ต้องการบนข้อความได้โดย
+ไม่เคลื่อนออกนอกหน้าจอ.
 
->> \e,TEM'`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1E'MM!d;9M!K\e09i\e1R(Mb4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-n, \e,Ta\e0Ei\e1G\e04Y\e1\e0Gh\e1R\e0AU\e1MPdC`\e0!T\e14\e0"Vi\e19\e(B.
+>> ลองเคลื่อนเคอร์เซอร์ลงออกไปนอกหน้าจอโดยใช้คำสั่ง C-n, แล้วดูว่ามีอะไรเกิดขึ้น.
 
-\e0\e,T6i\e1R`$\e0EWh\e1M9\e07U\e1EP\e05Q\e1G\e0MQ\e1!IC\e09Qi\e19\e0*i\e1Rd;\e(B, \e0\e,T7h\e1R9\e0!g\e1JRARC6(P`$\e0EWh\e1M9d\e04i\e1\e07U\e1EP$S\e(B. \e,T$S\e0JQh\e1'\e(B M-f (META-f)
-\e,Tc\e0*i\e1c9!RC`$\e0EWh\e1M9d;\e0BQ\e1'$S\e07Uh\e1M\e0BYh\e1\e06Q\e14d;\e(B \e,TaEP\e(B M-b \e,Tc\e0*i\e1c9!RC`$\e0EWh\e1M9d;\e0BQ\e1'$S\e07Uh\e1M\e0BYh\e1\e0!h\e1M9K\e09i\e1R\e(B.
+ถ้าเคลื่อนทีละตัวอักษรนั้นช้าไป, ท่านก็สามารถจะเคลื่อนได้ทีละคำ. คำสั่ง M-f (META-f)
+ใช้ในการเคลื่อนไปยังคำที่อยู่ถัดไป และ M-b ใช้ในการเคลื่อนไปยังคำที่อยู่ก่อนหน้า.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b \e0\e,T4Y\e1\e0JQ\e1!JM'JRA$\e0CQi\e1'\e(B.
+>> ลองใช้คำสั่ง M-f และ M-b ดูสักสองสามครั้ง.
 
-\e,T`\e0AWh\e1M\e07h\e1R9M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'!ER'"M'$S\e(B, \e,T$S\e0JQh\e1'\e(B M-f \e,T(Pc\e0*i\e1`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB"M'$S\e09Qi\e19\e(B. \e,T`\e0AWh\e1M\e(B
-\e0\e,T7h\e1R9M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'`\e0Gi\e19GCC$CPK\e0Gh\e1R'$S\e(B, \e,T$S\e0JQh\e1'\e(B M-f \e,T(Pc\e0*i\e1`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB"M'$S\e(B
-\e0\e,T7Uh\e1M\e0BYh\e1\e06Q\e14d;\e(B. \e,T$S\e0JQh\e1'\e(B M-b \e,T7SK\e09i\e1R\e07Uh\e17S9M'`\e04U\e1BG\e0!Q\e19\e(B \e,Ta\e05h\e1`$\e0EWh\e1M9d;c9\e07T\e1H7R'5C'\e0!Q\e19\e0"i\e1RA\e(B.
+เมื่อท่านอยู่ที่ตำแหน่งกลางของคำ, คำสั่ง M-f จะใช้เคลื่อนไปยังตำแหน่งท้ายของคำนั้น. เมื่อ
+ท่านอยู่ที่ตำแหน่งเว้นวรรคระหว่างคำ, คำสั่ง M-f จะใช้เคลื่อนไปยังตำแหน่งท้ายของคำ
+ที่อยู่ถัดไป. คำสั่ง M-b ทำหน้าที่ทำนองเดียวกัน แต่เคลื่อนไปในทิศทางตรงกันข้าม.
 
-\e,TKARB`K\e05X\e1\e(B: \e,T`\e09Wh\e1M'(R!@RIRd7Bd\e0Ah\e1\e0AU\e1!RCc\e0*i\e1\e0MQ\e1!"CP`\e0Gi\e19GCC$\e(B (whitespace) \e,Tc9!RCaJ4'\e(B
-        \e,T"M:`"5"M'$S\e(B, \e,T)P\e09Qi\e19`\e0AWh\e1MM\e0BYh\e1c9bKA4@RIRd7B\e(B (ThaiText mode) \e0\e,TMU\e1aA!\e0Jl\e1\e(B
-        \e,T(P7S!RC!S\e0!Q\e1:"M:`"5"M'$Sb4BMR\e0HQ\e1Bb;Ca!CA\e05Q\e14$S\e(B. \e,T$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b
-        \e0\e,T(V\e1'(P7S'R9d\e04i\e1\e(B, \e,Ta\e05h\e1(Pc\e0Ki\e1<E\e05h\e1R'd;`\e0Eg\e1!\e09i\e1MB\e(B. \e,T!\e0Eh\e1RG\e0$W\e1M\e(B:
+หมายเหตุ: เนื่องจากภาษาไทยไม่มีการใช้อักขระเว้นวรรค (whitespace) ในการแสดง
+        ขอบเขตของคำ, ฉะนั้นเมื่ออยู่ในโหมดภาษาไทย (ThaiText mode) อีแมกส์
+        จะทำการกำกับขอบเขตของคำโดยอาศัยโปรแกรมตัดคำ. คำสั่ง M-f และ M-b
+        จึงจะทำงานได้, แต่จะให้ผลต่างไปเล็กน้อย. กล่าวคือ:
 
-        \e,Td\e0Ah\e1\e0Gh\e1R\e07h\e1R9M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'!ER'K\e0CW\e1M5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M'$S\e0!g\e15RA\e(B, \e,T$S\e0JQh\e1'\e(B M-f \e,T(Pc\e0*i\e1\e(B
-        \e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M'$S\e06Q\e14d;c9!C\e03U\e1\e07Uh\e1$S\e09Qi\e19d\e0Ah\e1d\e04i\e1`\e0;g\e19$S\e0JX\e14\e07i\e1RB"M'\e(B
-        \e,T:CC\e07Q\e14\e(B. \e0\e,T6i\e1R$S\e09Qi\e19`\e0;g\e19$S\e0JX\e14\e07i\e1RB"M':CC\e07Q\e14\e(B, \e,T$S\e0JQh\e1'\e(B M-f \e,T(Pc\e0*i\e1`$\e0EWh\e1M9d;\e0BQ\e1'\e(B
-        \e,T5SaK\e09h\e1'\e07i\e1RB"M'$S\e09Qi\e19\e(B.
+        ไม่ว่าท่านอยู่ที่ตำแหน่งกลางหรือตำแหน่งเริ่มต้นของคำก็ตาม, คำสั่ง M-f จะใช้
+        เคลื่อนไปยังตำแหน่งเริ่มต้นของคำถัดไปในกรณีที่คำนั้นไม่ได้เป็นคำสุดท้ายของ
+        บรรทัด. ถ้าคำนั้นเป็นคำสุดท้ายของบรรทัด, คำสั่ง M-f จะใช้เคลื่อนไปยัง
+        ตำแหน่งท้ายของคำนั้น.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b \e0\e,T4Y\e1\e(B, \e,Tb4B;P;9\e0!Q\e1:$S\e0JQh\e1'\e(B C-f \e,TaEP\e(B C-b, \e0\e,T7h\e1R9(P\e0JQ\e1'`!5\e(B
-   \e,T`\e0Kg\e19!RC7S'R9"M'$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b \e,Tc95SaK\e09h\e1'\e05h\e1R'f\e(B \e0\e,T7Qi\e1'c9$SaEPCPK\e0Gh\e1R'$S\e(B.
+>> ลองใช้คำสั่ง M-f และ M-b ดู, โดยปะปนกับคำสั่ง C-f และ C-b, ท่านจะสังเกต
+   เห็นการทำงานของคำสั่ง M-f และ M-b ในตำแหน่งต่างๆ ทั้งในคำและระหว่างคำ.
 
-\e0\e,T7h\e1R9JRARC6\e0JQ\e1'`!5d\e04i\e1\e0Gh\e1R$S\e0JQh\e1'\e(B C-f \e,TaEP\e(B C-b \e0\e,T9Qi\e197SK\e09i\e1R\e07Uh\e1c9\e0EQ\e1!I3P`\e04U\e1BG\e0!Q\e1:$S\e0JQh\e1'\e(B M-f
-\e,TaEP\e(B M-b, \e,Ta\e05h\e1M\e0BYh\e1:9`!3\e01l\e1\e07Uh\e1\e05h\e1R'\e0!Q\e19\e(B. \e0\e,TJh\e1G9AR!\e(B \e0\e,T;Xh\e1A\e(B META \e,T(P\e06Y\e1!!SK94c\e0Ki\e1c\e0*i\e1\e0!Q\e1:!RC7S'R9c9\e(B
-\e,TCP\e04Q\e1:\e07Uh\e1`\e0!Uh\e1BG\e0"i\e1M'\e0!Q\e1:K\e09h\e1GB\e07Uh\e1!SK94\e0"Vi\e197R'@RIR\e(B (\e,T`\e0*h\e19\e(B \e,T$S\e(B, \e,T;CPbB$\e(B, \e0\e,TBh\e1MK\e09i\e1R\e(B, \e,T`\e0;g\e19\e05i\e19\e(B),
-\e,T"3P\e07Uh\e1\e0;Xh\e1A\e(B CONTROL \e0\e,T9Qi\e19\e0AQ\e1!(P\e06Y\e1!!SK94c\e0Ki\e1c\e0*i\e1\e0!Q\e1:!RC7S'R9c9CP\e04Q\e1:\e07Uh\e1`\e0!Uh\e1BG\e0"i\e1M'\e0!Q\e1:K\e09h\e1GB\e0Bh\e1MB\e(B
-\e0\e,TMT\e1JCP\e07Uh\e17S!RCa\e0!i\e1d"d\e04i\e1\e(B (\e,T`\e0*h\e19\e(B \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B, \e,T:CC\e07Q\e14\e(B, \e,T`\e0;g\e19\e05i\e19\e(B).
+ท่านสามารถสังเกตได้ว่าคำสั่ง C-f และ C-b นั้นทำหน้าที่ในลักษณะเดียวกับคำสั่ง M-f
+และ M-b, แต่อยู่บนเกณฑ์ที่ต่างกัน. ส่วนมาก ปุ่ม META จะถูกกำหนดให้ใช้กับการทำงานใน
+ระดับที่เกี่ยวข้องกับหน่วยที่กำหนดขึ้นทางภาษา (เช่น คำ, ประโยค, ย่อหน้า, เป็นต้น),
+ขณะที่ปุ่ม CONTROL นั้นมักจะถูกกำหนดให้ใช้กับการทำงานในระดับที่เกี่ยวข้องกับหน่วยย่อย
+อิสระที่ทำการแก้ไขได้ (เช่น ตัวอักษร, บรรทัด, เป็นต้น).
 
-\e,T!RC7S'R9c97S9M'`\e04U\e1BG\e0!Q\e19JSK\e0CQ\e1::CC\e07Q\e14\e0!Q\e1:;CPbB$\e(B: \e,T$S\e0JQh\e1'\e(B C-a \e,TaEP\e(B C-e \e,Tc\e0*i\e1`$\e0EWh\e1M9\e(B
-\e,Td;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19aEP\e07i\e1RB"M':CC\e07Q\e14\e(B, \e,T"3P`\e04U\e1BG\e0!Q\e19$S\e0JQh\e1'\e(B M-a \e,TaEP\e(B M-e \e,Tc\e0*i\e1`$\e0EWh\e1M9\e(B
-\e,Td;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19aEP\e07i\e1RB"M';CPbB$\e(B.
+การทำงานในทำนองเดียวกันสำหรับบรรทัดกับประโยค: คำสั่ง C-a และ C-e ใช้เคลื่อน
+ไปยังตำแหน่งเริ่มต้นและท้ายของบรรทัด, ขณะเดียวกันคำสั่ง M-a และ M-e ใช้เคลื่อน
+ไปยังตำแหน่งเริ่มต้นและท้ายของประโยค.
 
-\e,TKARB`K\e05X\e1\e(B: \e,T`\e09Wh\e1M'(R!@RIRd7Bd\e0Ah\e1\e09T\e1BAc\e0*i\e1\e0MQ\e1!"CPA\e0KQ\e1>@R$\e(B (period) \e,Tc9!RCaJ4'\e0(X\e14\e0JTi\e19\e0JX\e14"M'\e(B
-        \e,T;CPbB$\e(B, \e,T7Sc\e0Ki\e1d\e0Ah\e1JRARC6!SK94"M:`"5"M';CPbB$c\e0Ki\e1\e06Y\e1!\e05i\e1M'd\e04i\e1\e(B. \e0\e,T4Q\e1'\e09Qi\e19`\e0AWh\e1M\e(B
-        \e,TM\e0BYh\e1c9bKA4@RIRd7B\e(B (ThaiText mode), \e,T$S\e0JQh\e1'\e(B M-a \e,TaEP\e(B M-e \e,T(P`$\e0EWh\e1M9\e(B
-        \e,T`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M'\e0Bh\e1MK\e09i\e1R\e(B \e,TaEP5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M'\e0Bh\e1MK\e09i\e1R\e(B
-        \e,T5RAES\e04Q\e1:\e(B. \e,TB!`\e0Gi\e19!C\e03U\e1\e07Uh\e1\e0AU\e1!RCc\e0*i\e1\e0MQ\e1!"CPA\e0KQ\e1>@R$\e(B.
+หมายเหตุ: เนื่องจากภาษาไทยไม่นิยมใช้อักขระมหัพภาค (period) ในการแสดงจุดสิ้นสุดของ
+        ประโยค, ทำให้ไม่สามารถกำหนดขอบเขตของประโยคให้ถูกต้องได้. ดังนั้นเมื่อ
+        อยู่ในโหมดภาษาไทย (ThaiText mode), คำสั่ง M-a และ M-e จะเคลื่อน
+        เคอร์เซอร์ไปยังตำแหน่งเริ่มต้นของย่อหน้า และตำแหน่งท้ายสุดของย่อหน้า
+        ตามลำดับ. ยกเว้นกรณีที่มีการใช้อักขระมหัพภาค.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-a \e,TaEP\e(B C-e \e0\e,T4Y\e1\e0JQ\e1!JM'JRA$\e0CQi\e1'\e(B.
-   \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B M-a \e,TaEP\e(B M-e \e0\e,T4Y\e1\e0JQ\e1!JM'JRA$\e0CQi\e1'\e(B.
+>> ลองใช้คำสั่ง C-a และ C-e ดูสักสองสามครั้ง.
+   ลองใช้คำสั่ง M-a และ M-e ดูสักสองสามครั้ง.
 
-\e0\e,TJQ\e1'`!5\e04Y\e1\e0Gh\e1R!RCc\e0*i\e1$S\e0JQh\e1'\e(B C-a \e0\e,T+i\e1Sf\e(B \e0\e,T!Q\e19(Pd\e0Ah\e1`\e0!T\e14<EMPdC\e(B, \e,Ta\e05h\e1!RCc\e0*i\e1$S\e0JQh\e1'\e(B M-a \e,T(P7Sc\e0Ki\e1\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1`$\e0EWh\e1M9d;\e07U\e1EP;CPbB$\e(B. \e,Ta\e0Ai\e1\e0Gh\e1R!RC`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1"M'\e07Qi\e1'JM'a::\e09Ui\e1(Pd\e0Ah\e1\e(B
-\e,T$\e0Ei\e1RB\e0!Q\e19`EB\e07U\e1`\e04U\e1BG\e(B, \e,Ta\e05h\e1\e0!g\e1\e04Y\e1`\e0;g\e198CCA*R\e05T\e1\e04U\e1\e(B.
+สังเกตดูว่าการใช้คำสั่ง C-a ซ้ำๆ กันจะไม่เกิดผลอะไร, แต่การใช้คำสั่ง M-a จะทำให้
+เคอร์เซอร์เคลื่อนไปทีละประโยค. แม้ว่าการเคลื่อนเคอร์เซอร์ของทั้งสองแบบนี้จะไม่
+คล้ายกันเลยทีเดียว, แต่ก็ดูเป็นธรรมชาติดี.
 
-\e,T:R'$\e0CQi\e1'`CR\e0!g\e1`\e0CU\e1B!5SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e0Gh\e1R\e(B "\e0\e,T(X\e14\e(B (point)". \e,T!\e0Eh\e1RG\e0$W\e1M\e(B, \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e07Uh\e1\e(B
-\e,T;CR!/M\e0BYh\e1:9K\e09i\e1R(M\e0!g\e1\e0$W\e1M5SaK\e09h\e1'\e07Uh\e1\e0(X\e14;CR!/M\e0BYh\e1:9\e0"i\e1M$GRA\e09Qh\e19`M'\e(B.
+บางครั้งเราก็เรียกตำแหน่งของเคอร์เซอร์ว่า "จุด (point)". กล่าวคือ, เคอร์เซอร์ที่
+ปรากฏอยู่บนหน้าจอก็คือตำแหน่งที่จุดปรากฏอยู่บนข้อความนั่นเอง.
 
-\e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e19J\e0CX\e1;"M'\e0*X\e14$S\e0JQh\e1'JSK\e0CQ\e1:!RC`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1\e(B, \e0\e,T+Vh\e1'CGA\e06V\e1'!RC`$\e0EWh\e1M9c9CP\e04Q\e1:$S\e(B
-\e,TaEP;CPbB$\e(B:
+ต่อไปนี้เป็นสรุปของชุดคำสั่งสำหรับการเคลื่อนเคอร์เซอร์, ซึ่งรวมถึงการเคลื่อนในระดับคำ
+และประโยค:
 
-       C-f     \e,T`$\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1RK\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B
-       C-b     \e,T`$\e0EWh\e1M9!\e0EQ\e1:d;K\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B
+       C-f     เคลื่อนไปข้างหน้าหนึ่งตัวอักษร
+       C-b     เคลื่อนกลับไปหนึ่งตัวอักษร
 
-       M-f     \e,T`$\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1RK\e09Vh\e1'$S\e(B
-       M-b     \e,T`$\e0EWh\e1M9!\e0EQ\e1:d;K\e09Vh\e1'$S\e(B
+       M-f     เคลื่อนไปข้างหน้าหนึ่งคำ
+       M-b     เคลื่อนกลับไปหนึ่งคำ
 
-       C-n     \e,T`$\e0EWh\e1M9d;:CC\e07Q\e14\e06Q\e14d;\e(B
-       C-p     \e,T`$\e0EWh\e1M9d;:CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e(B
+       C-n     เคลื่อนไปบรรทัดถัดไป
+       C-p     เคลื่อนไปบรรทัดก่อนหน้า
 
-       C-a     \e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M':CC\e07Q\e14\e(B
-       C-e     \e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB"M':CC\e07Q\e14\e(B
+       C-a     เคลื่อนไปยังตำแหน่งเริ่มต้นของบรรทัด
+       C-e     เคลื่อนไปยังตำแหน่งท้ายของบรรทัด
 
-       M-a     \e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M';CPbB$\e(B
-       M-e     \e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB"M';CPbB$\e(B
+       M-a     เคลื่อนไปยังตำแหน่งเริ่มต้นของประโยค
+       M-e     เคลื่อนไปยังตำแหน่งท้ายของประโยค
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1\e0JQ\e1!CPBP`\e0>Wh\e1M`\e0;g\e19!RC\e0=V\e1!\e0KQ\e14\e(B.
-   \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1\e0!Q\e19\e0:h\e1MBAR!\e(B.
+>> ลองใช้คำสั่งเหล่านี้สักระยะเพื่อเป็นการฝึกหัด.
+   คำสั่งเหล่านี้เป็นคำสั่งที่ใช้กันบ่อยมาก.
 
-\e0\e,TAU\e1\e0MU\e1!JM'$S\e0JQh\e1'\e07Uh\e1JS\e0$Q\e1-c9!RC`$\e0EWh\e1M95SaK\e09h\e1'\e0$W\e1M\e(B \e,T$S\e0JQh\e1'\e(B M-< (META \e0\e,T9i\e1MB!\e0Gh\e1R\e(B), \e,Tc\e0*i\e1c9!RC\e(B
-\e,T`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M'\e0"i\e1M$GRA\e(B, \e,TaEP\e(B M-> (META \e,TAR!!\e0Gh\e1R\e(B), \e,Tc\e0*i\e1c9!RC`$\e0EWh\e1M9\e(B
-\e,Td;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M'\e0"i\e1M$GRA\e(B.
+มีอีกสองคำสั่งที่สำคัญในการเคลื่อนตำแหน่งคือ คำสั่ง M-< (META น้อยกว่า), ใช้ในการ
+เคลื่อนไปยังตำแหน่งเริ่มต้นของข้อความ, และ M-> (META มากกว่า), ใช้ในการเคลื่อน
+ไปยังตำแหน่งท้ายสุดของข้อความ.
 
-\e,Tc9`$\e0CWh\e1M';ERB7R'\e(B (terminal) \e0\e,TJh\e1G9cK\e0-h\e1\e(B, \e0\e,TMQ\e1!"CP\e(B "<" \e,T(PM\e0BYh\e1`K\e09W\e1M\e0MQ\e1!"CP\e0(X\e1E@R$\e(B
-(comma), \e,T)P\e09Qi\e19\e07h\e1R9\e05i\e1M'c\e0*i\e1\e0;Xh\e1A\e0*T\e1?\e05l\e1\e(B (shift) \e,Tc9!RC\e0;i\e1M9\e0MQ\e1!"CP\e09Qi\e19\e(B. \e,TJSK\e0CQ\e1:`$\e0CWh\e1M'\e(B
-\e,T;ERB7R'a::\e09Ui\e1\e(B, \e0\e,T7h\e1R9\e0(V\e1'\e05i\e1M'c\e0*i\e1\e0;Xh\e1A\e0*T\e1?\e05l\e1c9!RC\e0;i\e1M9$S\e0JQh\e1'\e(B M-< \e,Tc97S9M'`\e04U\e1BG\e0!Q\e19\e(B, \e0\e,T6i\e1Rd\e0Ah\e1\e(B
-\e,T$S\e09V\e1'\e06V\e1'\e0;Xh\e1A\e0*T\e1?\e05l\e1\e(B, \e0\e,T!g\e1KARB$GRA\e0Gh\e1R\e07h\e1R9!S\e0EQ\e1'\e0;i\e1M9$S\e0JQh\e1'\e(B M-comma.
+ในเครื่องปลายทาง (terminal) ส่วนใหญ่, อักขระ "<" จะอยู่เหนืออักขระจุลภาค
+(comma), ฉะนั้นท่านต้องใช้ปุ่มชิฟต์ (shift) ในการป้อนอักขระนั้น. สำหรับเครื่อง
+ปลายทางแบบนี้, ท่านจึงต้องใช้ปุ่มชิฟต์ในการป้อนคำสั่ง M-< ในทำนองเดียวกัน, ถ้าไม่
+คำนึงถึงปุ่มชิฟต์, ก็หมายความว่าท่านกำลังป้อนคำสั่ง M-comma.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B M-< \e0\e,T4Y\e1\e(B, \e,T`\e0>Wh\e1M`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e09Ui\e1\e(B.
-   \e,Ta\e0Ei\e1Gc\e0*i\e1$S\e0JQh\e1'\e(B C-v \e0\e,T+i\e1S\e0!Q\e19KERBf\e(B \e,T$\e0CQi\e1'`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9!\e0EQ\e1:AR\e0BQ\e1'5SaK\e09h\e1'`\e04T\e1A\e09Ui\e1\e(B.
+>> ลองใช้คำสั่ง M-< ดู, เพื่อเคลื่อนไปยังตำแหน่งเริ่มต้นของคู่มือการใช้นี้.
+   แล้วใช้คำสั่ง C-v ซ้ำกันหลายๆ ครั้งเพื่อที่จะเคลื่อนกลับมายังตำแหน่งเดิมนี้.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B M-> \e0\e,T4Y\e1\e(B, \e,T`\e0>Wh\e1M`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e09Ui\e1\e(B.
-   \e,Ta\e0Ei\e1Gc\e0*i\e1$S\e0JQh\e1'\e(B M-v \e0\e,T+i\e1S\e0!Q\e19KERBf\e(B \e,T$\e0CQi\e1'`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9!\e0EQ\e1:AR\e0BQ\e1'5SaK\e09h\e1'`\e04T\e1A\e09Ui\e1\e(B.
+>> ลองใช้คำสั่ง M-> ดู, เพื่อเคลื่อนไปยังตำแหน่งท้ายสุดของคู่มือการใช้นี้.
+   แล้วใช้คำสั่ง M-v ซ้ำกันหลายๆ ครั้งเพื่อที่จะเคลื่อนกลับมายังตำแหน่งเดิมนี้.
 
-\e0\e,T7h\e1R9JRARC6`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d\e04i\e1\e04i\e1GB\e0;Xh\e1A\e0EY\e1!HC\e(B (arrow key), \e0\e,T6i\e1R`$\e0CWh\e1M';ERB7R'"M'\e07h\e1R9\e(B
-\e0\e,TAU\e1\e0;Xh\e1A`K\e0Eh\e1R\e09Ui\e1M\e0BYh\e1\e(B. \e,T`CRa9P9Sc\e0Ki\e1\e0=V\e1!\e0KQ\e14c\e0*i\e1$S\e0JQh\e1'\e(B C-b, C-f, C-n \e,TaEP\e(B C-p, \e0\e,T4i\e1GB`K\e05X\e1<EJRA\e(B
-\e,T;CP!RC\e(B. \e,TK\e09Vh\e1'\e(B, \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e17S'R9d\e04i\e1:9`$\e0CWh\e1M';ERB7R'\e07X\e1!*\e09T\e14\e(B. \e,TJM'\e(B, \e,T`\e0AWh\e1M\e07h\e1R9d\e04i\e1\e0=V\e1!\e0KQ\e14\e(B
-\e,T!RCc\e0*i\e1\e0!Q\e1:\e0MU\e1aA!\e0Jl\e1a\e0Ei\e1G\e(B \e0\e,T7h\e1R9(P\e0CYi\e1\e0JV\e1!\e0Gh\e1R!RCc\e0*i\e1$S\e0JQh\e1'\e04i\e1GB\e0;Xh\e1A\e(B CONTROL \e0\e,T9Qi\e19$\e0Eh\e1M'\e05Q\e1G!\e0Gh\e1R!RCc\e0*i\e1\e(B
-\e0\e,T;Xh\e1A\e0EY\e1!HC\e(B (\e,T`>CRP\e0Gh\e1R\e07h\e1R9d\e0Ah\e1\e05i\e1M'`$\e0EWh\e1M9\e0Bi\e1RB\e0AW\e1MMM!(R!5SaK\e09h\e1'\e0AW\e1M\e0JQ\e1A\e0<Q\e1J`EB\e(B). \e,TJRA\e(B, \e,T`\e0AWh\e1M\e(B
-\e0\e,T7h\e1R9\e0$Xi\e19`$B\e0!Q\e1:!RCc\e0*i\e1$S\e0JQh\e1';CP!M:\e0!Q\e1:\e0;Xh\e1A\e(B CONTROL \e,Ta\e0Ei\e1G\e(B, \e0\e,T7h\e1R9JRARC6(P\e0=V\e1!!RCc\e0*i\e1$S\e0JQh\e1'\e(B
-\e0\e,T*Qi\e19\e0JY\e1'\e05h\e1Md;d\e04i\e1\e0MU\e1!\e04i\e1GB\e(B.
+ท่านสามารถเคลื่อนเคอร์เซอร์ได้ด้วยปุ่มลูกศร (arrow key), ถ้าเครื่องปลายทางของท่าน
+มีปุ่มเหล่านี้อยู่. เราแนะนำให้ฝึกหัดใช้คำสั่ง C-b, C-f, C-n และ C-p, ด้วยเหตุผลสาม
+ประการ. หนึ่ง, คำสั่งเหล่านี้ทำงานได้บนเครื่องปลายทางทุกชนิด. สอง, เมื่อท่านได้ฝึกหัด
+การใช้กับอีแมกส์แล้ว ท่านจะรู้สึกว่าการใช้คำสั่งด้วยปุ่ม CONTROL นั้นคล่องตัวกว่าการใช้
+ปุ่มลูกศร (เพราะว่าท่านไม่ต้องเคลื่อนย้ายมือออกจากตำแหน่งมือสัมผัสเลย). สาม, เมื่อ
+ท่านคุ้นเคยกับการใช้คำสั่งประกอบกับปุ่ม CONTROL แล้ว, ท่านสามารถจะฝึกการใช้คำสั่ง
+ชั้นสูงต่อไปได้อีกด้วย.
 
-\e,T$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1c9\e0MU\e1aA!\e0Jl\e1\e09Qi\e19(PJRARC6!S\e0!Q\e1:\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1d\e04i\e1\e(B; \e,TJSK\e0CQ\e1:$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1\e(B,
-\e0\e,T5Q\e1G`E"`K\e0Eh\e1R\e09Ui\e1\e0!g\e1(PKARB\e06V\e1'(S9G9$\e0CQi\e1'"M'!RC;CPAGE<E"M'$S\e0JQh\e1'\e05h\e1Md;\e(B. \e,T!RC\e07Uh\e1(P7Sc\e0Ki\e1\e0AU\e1\e(B
-\e,T!RC;CPAGE<E"M'$S\e0JQh\e1'\e0+i\e1S`\e07h\e1R(S9G9\e07Uh\e1\e05i\e1M'!RC\e09Qi\e19JRARC67Sd\e04i\e1b4B!RC\e0;i\e1M9$S\e0JQh\e1'\e(B C-u
-\e,Ta\e0Ei\e1G5RA\e04i\e1GB\e05Q\e1G`E"\e0!h\e1M9\e07Uh\e1(P\e0;i\e1M9$S\e0JQh\e1'\e07Uh\e1\e05i\e1M'!RC\e(B. \e0\e,T6i\e1R\e07h\e1R9\e0AU\e1\e0;Xh\e1A\e(B META (\e,TK\e0CW\e1M\e(B EDIT \e,TK\e0CW\e1M\e(B
-ALT), \e0\e,T7h\e1R9JRARC6(P7Sd\e04i\e1\e04i\e1GB\e0MU\e1!\e0GT\e1\e08U\e1K\e09Vh\e1'\e(B: \e0\e,T;i\e1M9\e05Q\e1G`E""3P\e07Uh\e1!4\e0;Xh\e1A\e(B META \e,TM\e0BYh\e1\e(B. \e,T`CRa9P9S\e(B
-\e,Tc\e0Ki\e1\e07h\e1R9\e0=V\e1!\e0KQ\e14c\e0*i\e1$S\e0JQh\e1'\e(B C-u \e,T`>CRP\e0Gh\e1RJRARC6c\e0*i\e1d\e04i\e1\e0!Q\e1:`$\e0CWh\e1M';ERB7R'\e07X\e1!*\e09T\e14\e(B. \e0\e,T5Q\e1G`E"MR\e0Cl\e1\e(B
-\e0\e,T!T\e1G`A9\e05l\e1\e07Uh\e1!\e0Eh\e1RG\e06V\e1'\e09Ui\e1`\e0CU\e1B!\e0Gh\e1R\e(B "\e,TMR\e0Cl\e1\e0!T\e1G`A9\e05l\e1`\e05T\e1AK\e09i\e1R\e(B (prefix argument)", \e,T`>CRP\e0Gh\e1R\e07h\e1R9\e(B
-\e0\e,T5i\e1M'\e0;i\e1M9\e05Q\e1G`E"\e0!h\e1M9\e07Uh\e1(P\e0;i\e1M9$S\e0JQh\e1'\e(B.
+คำสั่งส่วนใหญ่ในอีแมกส์นั้นจะสามารถกำกับตัวเลขอาร์กิวเมนต์ได้; สำหรับคำสั่งส่วนใหญ่,
+ตัวเลขเหล่านี้ก็จะหมายถึงจำนวนครั้งของการประมวลผลของคำสั่งต่อไป. การที่จะทำให้มี
+การประมวลผลของคำสั่งซ้ำเท่าจำนวนที่ต้องการนั้นสามารถทำได้โดยการป้อนคำสั่ง C-u
+แล้วตามด้วยตัวเลขก่อนที่จะป้อนคำสั่งที่ต้องการ. ถ้าท่านมีปุ่ม META (หรือ EDIT หรือ
+ALT), ท่านสามารถจะทำได้ด้วยอีกวิธีหนึ่ง: ป้อนตัวเลขขณะที่กดปุ่ม META อยู่. เราแนะนำ
+ให้ท่านฝึกหัดใช้คำสั่ง C-u เพราะว่าสามารถใช้ได้กับเครื่องปลายทางทุกชนิด. ตัวเลขอาร์
+กิวเมนต์ที่กล่าวถึงนี้เรียกว่า "อาร์กิวเมนต์เติมหน้า (prefix argument)", เพราะว่าท่าน
+ต้องป้อนตัวเลขก่อนที่จะป้อนคำสั่ง.
 
-\e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e,T$S\e0JQh\e1'\e(B C-u 8 C-f \e,T(P`$\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1Ra;4\e05Q\e1G\e0MQ\e1!IC\e(B.
+ตัวอย่างเช่น, คำสั่ง C-u 8 C-f จะเคลื่อนไปข้างหน้าแปดตัวอักษร.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-n \e,TK\e0CW\e1M\e(B C-p \e,T;CP!M:\e0!Q\e1:\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1\e(B, \e,T`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1\e(B
-   \e,T`\e0"i\e1RARc!\e0Ei\e1:CC\e07Q\e14\e09Ui\e1b4Bc\e0*i\e1`\e0>U\e1B'$S\e0JQh\e1'`\e04U\e1BG\e(B.
+>> ลองใช้คำสั่ง C-n หรือ C-p ประกอบกับตัวเลขอาร์กิวเมนต์, เพื่อที่จะเคลื่อนเคอร์เซอร์
+   เข้ามาใกล้บรรทัดนี้โดยใช้เพียงคำสั่งเดียว.
 
-\e,T$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1c\e0*i\e1\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1`K\e0Eh\e1R\e09Ui\e1JSK\e0CQ\e1:!RC;CPAGE<E$S\e0JQh\e1'\e0+i\e1S\e(B, \e,Ta\e05h\e1:R'$S\e0JQh\e1'\e0!g\e1c\e0*i\e1\e(B
-\e,Tc9\e0EQ\e1!I3P\e0MWh\e19\e(B. \e0\e,TAU\e1KERB$S\e0JQh\e1'\e(B (\e,Ta\e05h\e1d\e0Ah\e1CGA$S\e0JQh\e1'\e07Uh\e1d\e04i\e1!\e0Eh\e1RGAR\e06V\e1'5C'\e09Ui\e1\e(B) \e,Tc\e0*i\e1\e05Q\e1G`E"\e09Ui\e1`\e0;g\e19\e05Q\e1G\e(B
-\e0\e,T:h\e1'\e0*Ui\e1\e(B--\e,T!RC\e07Uh\e1\e0AU\e1MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1`\e05T\e1AK\e09i\e1R\e(B, \e,Tb4Bd\e0Ah\e1$S\e09V\e1'\e06V\e1'\e0$h\e1R"M'\e05Q\e1G`E"\e(B, \e,T(P7Sc\e0Ki\e1$S\e0JQh\e1'\e09Qi\e197S'R9\e(B
-\e0\e,T5h\e1R'MM!d;\e(B.
+คำสั่งส่วนใหญ่ใช้ตัวเลขอาร์กิวเมนต์เหล่านี้สำหรับการประมวลผลคำสั่งซ้ำ, แต่บางคำสั่งก็ใช้
+ในลักษณะอื่น. มีหลายคำสั่ง (แต่ไม่รวมคำสั่งที่ได้กล่าวมาถึงตรงนี้) ใช้ตัวเลขนี้เป็นตัว
+บ่งชี้--การที่มีอาร์กิวเมนต์เติมหน้า, โดยไม่คำนึงถึงค่าของตัวเลข, จะทำให้คำสั่งนั้นทำงาน
+ต่างออกไป.
 
-\e,T$S\e0JQh\e1'\e(B C-v \e,TaEP\e(B M-v \e,T`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1B!`\e0Gi\e19\e0MU\e1!;CP`@7K\e09Vh\e1'\e(B. \e0\e,T6i\e1R\e0;i\e1M9\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1\e04i\e1GBa\e0Ei\e1G\e(B,
-\e,TK\e09i\e1R(M(P\e06Y\e1!`$\e0EWh\e1M9\e0Ai\e1G9\e0"Vi\e19K\e0CW\e1ME'`\e0;g\e19(S9G9:CC\e07Q\e14`\e07h\e1R\e05Q\e1G`E"\e07Uh\e1!SK94\e(B, \e,Ta79\e07Uh\e1(P`$\e0EWh\e1M9\e0Ai\e1G9\e(B
-\e0\e,T7U\e1EPK\e09i\e1R(M\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e,T$S\e0JQh\e1'\e(B C-u 8 C-v \e,T(P`$\e0EWh\e1M9\e0Ai\e1G9K\e09i\e1R(M\e07U\e1EPa;4:CC\e07Q\e14\e(B.
+คำสั่ง C-v และ M-v เป็นคำสั่งที่ยกเว้นอีกประเภทหนึ่ง. ถ้าป้อนตัวเลขอาร์กิวเมนต์ด้วยแล้ว,
+หน้าจอจะถูกเคลื่อนม้วนขึ้นหรือลงเป็นจำนวนบรรทัดเท่าตัวเลขที่กำหนด, แทนที่จะเคลื่อนม้วน
+ทีละหน้าจอ. ตัวอย่างเช่น, คำสั่ง C-u 8 C-v จะเคลื่อนม้วนหน้าจอทีละแปดบรรทัด.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-u 8 C-v \e0\e,T4Y\e1\e(B.
+>> ลองใช้คำสั่ง C-u 8 C-v ดู.
 
-\e,T$S\e0JQh\e1'\e09Ui\e1(P`$\e0EWh\e1M9\e0Ai\e1G9K\e09i\e1R(M\e0"Vi\e19d;a;4:CC\e07Q\e14\e(B. \e0\e,T6i\e1R\e07h\e1R9\e05i\e1M'!RC(P`$\e0EWh\e1M9\e0Ai\e1G9!\e0EQ\e1:AR\e0MU\e1!\e(B, \e0\e,T7h\e1R9\e(B
-\e0\e,T!g\e17Sd\e04i\e1b4B!RC!S\e0!Q\e1:\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1c\e0Ki\e1\e0!Q\e1:$S\e0JQh\e1'\e(B M-v.
+คำสั่งนี้จะเคลื่อนม้วนหน้าจอขึ้นไปแปดบรรทัด. ถ้าท่านต้องการจะเคลื่อนม้วนกลับมาอีก, ท่าน
+ก็ทำได้โดยการกำกับตัวเลขอาร์กิวเมนต์ให้กับคำสั่ง M-v.
 
-\e0\e,T6i\e1R\e07h\e1R9!S\e0EQ\e1'c\e0*i\e1`M!\e0+l\e1\e0GT\e19b4\e0Gl\e1\e(B (X Window) \e,TM\e0BYh\e1\e(B, \e,T(P\e0AU\e1a<'`$\e0EWh\e1M9\e0Ai\e1G9\e(B (scroll bar) \e0\e,T7Uh\e1\e(B
-\e,T`\e0;g\e19\e0>Wi\e19\e07Uh\e1\e0JUh\e1`K\e0EUh\e1BA\e0<W\e19\e0<i\e1RM\e0BYh\e17R'\e04i\e1R9\e0+i\e1RB"M'\e0GT\e19b4\e0Gl\e1\e(B (window) \e,T"M'\e0MU\e1aA!\e0Jl\e1\e(B. \e0\e,T7h\e1R9JRARC6\e(B
-\e,T(P`$\e0EWh\e1M9\e0Ai\e1G9\e0"i\e1M$GRAb4B!RC$\e0ET\e1!`AR\e0Jl\e1\e(B (click mouse) \e,T:9a<'`$\e0EWh\e1M9\e0Ai\e1G9\e(B.
+ถ้าท่านกำลังใช้เอกซ์วินโดว์ (X Window) อยู่, จะมีแผงเคลื่อนม้วน (scroll bar) ที่
+เป็นพื้นที่สี่เหลี่ยมผืนผ้าอยู่ทางด้านซ้ายของวินโดว์ (window) ของอีแมกส์. ท่านสามารถ
+จะเคลื่อนม้วนข้อความโดยการคลิกเมาส์ (click mouse) บนแผงเคลื่อนม้วน.
 
->> \e,TEM'!4\e0;Xh\e1A!ER'\e07Uh\e1\e0Jh\e1G9:9\e0JX\e14"M'\e0>Wi\e19\e07Uh\e1\e07Uh\e1`\e09i\e19\e(B (highlight) \e,T@RBc9a<'`$\e0EWh\e1M9\e0Ai\e1G9\e(B.
-   \e0\e,T"i\e1M$GRA(P\e06Y\e1!`$\e0EWh\e1M9\e0Ai\e1G9d;\e0BQ\e1'5SaK\e09h\e1'\e07Uh\e1\e07Uh\e1\e07h\e1R9d\e04i\e1$\e0ET\e1!\e(B.
+>> ลองกดปุ่มกลางที่ส่วนบนสุดของพื้นที่ที่เน้น (highlight) ภายในแผงเคลื่อนม้วน.
+   ข้อความจะถูกเคลื่อนม้วนไปยังตำแหน่งที่ที่ท่านได้คลิก.
 
->> \e,TEM'`$\e0EWh\e1M9`AR\e0Jl\e1\e0"Vi\e19E'\e04Y\e1\e(B, \e,T"3P\e07Uh\e1\e0BQ\e1'!4\e0;Xh\e1A!ER'M\e0BYh\e1\e(B. \e0\e,T7h\e1R9(P>:\e0Gh\e1R\e0"i\e1M$GRA(P`$\e0EWh\e1M9\e07Uh\e1\e0"Vi\e19\e(B
-   \e,TE'5RA\e07Uh\e1\e07h\e1R9`$\e0EWh\e1M9`AR\e0Jl\e1d;\e(B.
+>> ลองเคลื่อนเมาส์ขึ้นลงดู, ขณะที่ยังกดปุ่มกลางอยู่. ท่านจะพบว่าข้อความจะเคลื่อนที่ขึ้น
+   ลงตามที่ท่านเคลื่อนเมาส์ไป.
 
 
-* \e,T!C\e03U\e1\e07Uh\e1\e0MU\e1aA!\e0Jl\e1K\e0BX\e14*P\e0'Q\e1!\e(B (hang up)
+* กรณีที่อีแมกส์หยุดชะงัก (hang up)
 ----------------------------
 
-\e0\e,T6i\e1R\e0MU\e1aA!\e0Jl\e1K\e0BX\e14aEPd\e0Ah\e15M:J9M'$S\e0JQh\e1'c4f\e(B, \e0\e,T7h\e1R9JRARC6B!`\e0ET\e1!$S\e0JQh\e1'd\e04i\e1M\e0Bh\e1R';EM4\e0@Q\e1Bb4Bc\e0*i\e1\e(B
-\e,T$S\e0JQh\e1'\e(B C-g. \e0\e,T7h\e1R9JRARC6c\e0*i\e1$S\e0JQh\e1'\e(B C-g \e,Tc9!RCB!`\e0ET\e1!$S\e0JQh\e1'\e07Uh\e1!S\e0EQ\e1'7S'R9M\e0BYh\e1d\e04i\e1\e(B.
+ถ้าอีแมกส์หยุดและไม่ตอบสนองคำสั่งใดๆ, ท่านสามารถยกเลิกคำสั่งได้อย่างปลอดภัยโดยใช้
+คำสั่ง C-g. ท่านสามารถใช้คำสั่ง C-g ในการยกเลิกคำสั่งที่กำลังทำงานอยู่ได้.
 
-\e0\e,T7h\e1R9JRARC6c\e0*i\e1$S\e0JQh\e1'\e(B C-g \e,T`\e0>Wh\e1MB!`\e0ET\e1!\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1K\e0CW\e1M$S\e0JQh\e1'\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'\e0;i\e1M9M\e0BYh\e1d\e04i\e1\e(B.
+ท่านสามารถใช้คำสั่ง C-g เพื่อยกเลิกตัวเลขอาร์กิวเมนต์หรือคำสั่งที่ท่านกำลังป้อนอยู่ได้.
 
->> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-u 100 \e,T`\e0>Wh\e1M\e07Uh\e1(Pc\e0Ki\e1\e0AU\e1\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1`\e0;g\e19\e(B 100, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-g.
-   \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-f. \e,T<E\e07Uh\e1d\e04i\e1\e0!g\e1\e0$W\e1M`$M\e0Cl\e1`+M\e0Cl\e1`$\e0EWh\e1M9d;`\e0>U\e1B'K\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B, \e,T`>CRP\e0Gh\e1R\e07h\e1R9d\e04i\e1\e(B
-   \e,TB!`\e0ET\e1!\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1d;a\e0Ei\e1G\e04i\e1GB$S\e0JQh\e1'\e(B C-g.
+>> ลองป้อนคำสั่ง C-u 100 เพื่อที่จะให้มีตัวเลขอาร์กิวเมนต์เป็น 100, แล้วป้อนคำสั่ง C-g.
+   ป้อนคำสั่ง C-f. ผลที่ได้ก็คือเคอร์เซอร์เคลื่อนไปเพียงหนึ่งตัวอักษร, เพราะว่าท่านได้
+   ยกเลิกตัวเลขอาร์กิวเมนต์ไปแล้วด้วยคำสั่ง C-g.
 
-\e0\e,T6i\e1R\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B <ESC> \e,Tb4Bd\e0Ah\e1d\e04i\e1\e05Qi\e1'c(\e(B, \e0\e,T7h\e1R9\e0!g\e1JRARC6(PB!`\e0ET\e1!$S\e0JQh\e1'\e09Qi\e19d\e04i\e1\e04i\e1GB$S\e0JQh\e1'\e(B C-g.
+ถ้าท่านป้อนคำสั่ง <ESC> โดยไม่ได้ตั้งใจ, ท่านก็สามารถจะยกเลิกคำสั่งนั้นได้ด้วยคำสั่ง C-g.
 
 
-* \e,T$S\e0JQh\e1'\e07Uh\e1\e06Y\e1!\e0;T\e147R'\e(B (disable)
+* คำสั่งที่ถูกปิดทาง (disable)
 ------------------------
 
-\e,T$S\e0JQh\e1':R'$S\e0JQh\e1'\e06Y\e1!\e0;T\e147R'd\e0Gi\e1\e(B \e,T`\e0>Wh\e1M\e07Uh\e1(P\e0;i\e1M'\e0!Q\e19d\e0Ah\e1c\e0Ki\e1\e0<Yi\e1\e07Uh\e1`\e0CTh\e1A\e05i\e19c\e0*i\e1\e(B (beginning user) \e,Tc\e0*i\e1d\e04i\e1\e(B
-\e,Tb4Bd\e0Ah\e1d\e04i\e1\e05Qi\e1'c(\e(B.
+คำสั่งบางคำสั่งถูกปิดทางไว้ เพื่อที่จะป้องกันไม่ให้ผู้ที่เริ่มต้นใช้ (beginning user) ใช้ได้
+โดยไม่ได้ตั้งใจ.
 
-\e0\e,T6i\e1R\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1';CP`@7\e09Ui\e1a\e0Ei\e1G\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(PaJ4'\e0"i\e1M$GRA\e0Gh\e1R$S\e0JQh\e1'\e09Qi\e19\e0$W\e1MMPdC\e(B, \e,TaEP(P6RA\e(B
-\e0\e,T7h\e1R9\e0Gh\e1R\e05i\e1M'!RC(P;CPAGE<E$S\e0JQh\e1'\e09Qi\e19K\e0CW\e1Md\e0Ah\e1\e(B.
+ถ้าท่านป้อนคำสั่งประเภทนี้แล้ว, อีแมกส์จะแสดงข้อความว่าคำสั่งนั้นคืออะไร, และจะถาม
+ท่านว่าต้องการจะประมวลผลคำสั่งนั้นหรือไม่.
 
-\e0\e,T6i\e1R\e07h\e1R9\e05i\e1M'!RC\e07Uh\e1(P;CPAGE<E$S\e0JQh\e1'\e09Qi\e19(\e0CT\e1'f\e(B, \e,T!4\e0;Xh\e1A\e(B space \e,T`\e0>Wh\e1M5M:\e0BW\e19\e0BQ\e19$GRA\e05i\e1M'!RC\e(B.
-\e,Tb4B;C!\e05T\e1a\e0Ei\e1G\e(B, \e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1\e05i\e1M'!RC(P;CPAGE<E$S\e0JQh\e1'\e07Uh\e1\e06Y\e1!\e0;T\e147R'd\e0Gi\e1\e(B, \e0\e,T!g\e15M:\e(B "n" \e,T`\e07h\e1R\e09Qi\e19\e(B.
+ถ้าท่านต้องการที่จะประมวลผลคำสั่งนั้นจริงๆ, กดปุ่ม space เพื่อตอบยืนยันความต้องการ.
+โดยปรกติแล้ว, ถ้าท่านไม่ต้องการจะประมวลผลคำสั่งที่ถูกปิดทางไว้, ก็ตอบ "n" เท่านั้น.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-x C-l (\e0\e,T+Vh\e1'`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1\e06Y\e1!\e0;T\e147R'd\e0Gi\e1\e(B), \e,Ta\e0Ei\e1G\e0;i\e1M9\e(B "n" \e,T`\e0>Wh\e1M`\e0;g\e19!RC5M:\e(B
-   \e,T$S6RA\e(B.
+>> ลองใช้คำสั่ง C-x C-l (ซึ่งเป็นคำสั่งที่ถูกปิดทางไว้), แล้วป้อน "n" เพื่อเป็นการตอบ
+   คำถาม.
 
 
-* \e0\e,TGT\e19b4\e0Gl\e1\e(B (window)
+* วินโดว์ (window)
 ----------------
 
-\e0\e,TMU\e1aA!\e0Jl\e1JRARC6\e0AU\e1d\e04i\e1KERB\e0GT\e19b4\e0Gl\e1\e(B, \e,Ta\e05h\e1EP\e0GT\e19b4\e0Gl\e1\e0!g\e1(PaJ4'<E"M'\e0"i\e1M$GRA"M'59`M'\e(B. \e,T`CR(P\e(B
-\e,TM\e08T\e1:RB\e06V\e1'\e0GT\e1\e08U\e1!RCc\e0*i\e1a::KERB\e0GT\e19b4\e0Gl\e1K\e0EQ\e1'(R!\e09Ui\e1\e(B. \e,T5M9\e09Ui\e1(P!\e0Eh\e1RG\e06V\e1'\e0GT\e1\e08U\e1!RC\e0;T\e14\e0GT\e19b4\e0Gl\e1\e07Uh\e1d\e0Ah\e1\e05i\e1M'\e(B
-\e,T!RC\e(B, \e,Ta\e0Ei\e1G!\e0EQ\e1:d;c\e0*i\e1`\e0>U\e1B'\e0GT\e19b4\e0Gl\e1`\e04U\e1BG\e(B. \e0\e,T+Vh\e1'JRARC67Sd\e04i\e1\e04Q\e1'\e09Ui\e1\e(B:
+อีแมกส์สามารถมีได้หลายวินโดว์, แต่ละวินโดว์ก็จะแสดงผลของข้อความของตนเอง. เราจะ
+อธิบายถึงวิธีการใช้แบบหลายวินโดว์หลังจากนี้. ตอนนี้จะกล่าวถึงวิธีการปิดวินโดว์ที่ไม่ต้อง
+การ, แล้วกลับไปใช้เพียงวินโดว์เดียว. ซึ่งสามารถทำได้ดังนี้:
 
-       C-x 1   \e,TK\e09Vh\e1'\e0GT\e19b4\e0Gl\e1\e(B (\e0\e,T$W\e1M!RC\e0;T\e14\e0GT\e19b4\e0Gl\e1\e0MWh\e19f\e(B \e0\e,T7Qi\e1'KA4\e(B)
+       C-x 1   หนึ่งวินโดว์ (คือการปิดวินโดว์อื่นๆ ทั้งหมด)
 
-\e0\e,T9Qh\e19\e0$W\e1M`\e0>U\e1B'\e0;i\e1M9$S\e0JQh\e1'\e(B C-x \e,Ta\e0Ei\e1G5RA\e04i\e1GB`E"\e(B 1. \e,T$S\e0JQh\e1'\e(B C-x 1 \e,T(P"BRB\e0GT\e19b4\e0Gl\e1\e07Uh\e1\e0AU\e1\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e(B \e,Tc\e0Ki\e1`\e05g\e1AK\e09i\e1R(M\e(B. \e0\e,T+Vh\e1'(P`\e0;g\e19!RC\e0;T\e14\e0GT\e19b4\e0Gl\e1\e0MWh\e19f\e(B \e0\e,T7Qi\e1'KA4\e(B.
+นั่นคือเพียงป้อนคำสั่ง C-x แล้วตามด้วยเลข 1. คำสั่ง C-x 1 จะขยายวินโดว์ที่มี
+เคอร์เซอร์อยู่ ให้เต็มหน้าจอ. ซึ่งจะเป็นการปิดวินโดว์อื่นๆ ทั้งหมด.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1AR\e0BQ\e1':CC\e07Q\e14\e09Ui\e1\e(B \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-u 0 C-l.
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h k C-f.
-   \e,T(P`\e0Kg\e19\e0Gh\e1R\e0GT\e19b4\e0Gl\e1\e09Ui\e1\e0AU\e1"9R4\e0Bh\e1ME'\e(B \e,T"3P\e07Uh\e1\e0AU\e1\e0GT\e19b4\e0Gl\e1cK\e0Ah\e1`\e0!T\e14\e0"Vi\e19aJ4'<E"M'`M!JRC\e07Uh\e1`\e0!Uh\e1BG\e0!Q\e1:\e(B
-   \e,T$S\e0JQh\e1'"M'\e(B C-f.
+>> เคลื่อนเคอร์เซอร์มายังบรรทัดนี้ แล้วป้อนคำสั่ง C-u 0 C-l.
+>> ป้อนคำสั่ง C-h k C-f.
+   จะเห็นว่าวินโดว์นี้มีขนาดย่อลง ขณะที่มีวินโดว์ใหม่เกิดขึ้นแสดงผลของเอกสารที่เกี่ยวกับ
+   คำสั่งของ C-f.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,Ta\e0Ei\e1G(P>:\e0Gh\e1R\e0GT\e19b4\e0Gl\e1\e07Uh\e1aJ4'CRB!RC"M'`M!JRCKRBd;\e(B.
+>> ป้อนคำสั่ง C-x 1 แล้วจะพบว่าวินโดว์ที่แสดงรายการของเอกสารหายไป.
 
-\e,T$S\e0JQh\e1'\e09Ui\e1\e05h\e1R'(R!$S\e0JQh\e1'\e07Uh\e1d\e04i\e1!\e0Eh\e1RGAR5C'\e07Uh\e1\e0Gh\e1R$S\e0JQh\e1'\e09Ui\e1;CP!M:\e04i\e1GBJM'\e05Q\e1G\e0MQ\e1!IC\e(B. \e,T$S\e0JQh\e1'\e09Ui\e1`\e0CTh\e1A\e05i\e19\e(B
-\e0\e,T4i\e1GB\e0MQ\e1!"CP\e(B C-x. \e0\e,TAU\e1\e0*X\e14"M'$S\e0JQh\e1'\e07Uh\e1\e0"Vi\e19\e05i\e19\e04i\e1GB\e0MQ\e1!"CP\e(B C-x; \e0\e,TJh\e1G9cK\e0-h\e1(P`\e0!Uh\e1BG\e0"i\e1M'\e0!Q\e1:!RC\e(B
-\e0\e,T(Q\e14!RC\e0!Q\e1:\e0GT\e19b4\e0Gl\e1\e(B, \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B, \e0\e,T:Q\e1?`?M\e0Cl\e1\e(B, \e,TaEP\e0MWh\e19f\e(B \e,Tc97S9M'`\e04U\e1BG\e0!Q\e19\e(B. \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1(P\e(B
-\e,T;CP!M:\e04i\e1GBJM'\e(B, \e,TJRA\e(B, \e,TK\e0CW\e1M\e0JUh\e1\e05Q\e1G\e0MQ\e1!IC\e(B.
+คำสั่งนี้ต่างจากคำสั่งที่ได้กล่าวมาตรงที่ว่าคำสั่งนี้ประกอบด้วยสองตัวอักษร. คำสั่งนี้เริ่มต้น
+ด้วยอักขระ C-x. มีชุดของคำสั่งที่ขึ้นต้นด้วยอักขระ C-x; ส่วนใหญ่จะเกี่ยวข้องกับการ
+จัดการกับวินโดว์, แฟ้มข้อมูล, บัฟเฟอร์, และอื่นๆ ในทำนองเดียวกัน. คำสั่งเหล่านี้จะ
+ประกอบด้วยสอง, สาม, หรือสี่ตัวอักษร.
 
 
-* \e,T!RCa7C!\e(B (inserting) \e,TaEP!RCE:\e(B (deleting)
+* การแทรก (inserting) และการลบ (deleting)
 ----------------------------------------------
 
-\e0\e,T6i\e1R\e07h\e1R9\e05i\e1M'!RC\e07Uh\e1(Pa7C!\e0"i\e1M$GRA\e(B, \e0\e,T!g\e1JRARC67Sd\e04i\e1b4B!RC\e0;i\e1M9\e0"i\e1M$GRA\e09Qi\e19`\e0"i\e1Rd;`\e07h\e1R\e09Qi\e19\e(B.
-\e0\e,T5Q\e1G\e0MQ\e1!IC\e07Uh\e1\e07h\e1R9`\e0Kg\e19\e(B, \e,T`\e0*h\e19\e(B A, 7, *, \e,T`\e0;g\e19\e05i\e19\e(B, \e0\e,T5h\e1R'\e0!g\e1\e06W\e1M\e0Gh\e1R`\e0;g\e19\e0"i\e1M$GRAaEP\e06Y\e1!a7C!`\e0"i\e1Rd;\e(B
-\e0\e,T7Q\e19\e07U\e1\e07Uh\e1\e0;i\e1M9\e(B. \e,T!4\e0;Xh\e1A\e(B <Return> \e,Tc9!RC\e07Uh\e1(Pa7C!\e0MQ\e1!"CP\e(B Newline.
+ถ้าท่านต้องการที่จะแทรกข้อความ, ก็สามารถทำได้โดยการป้อนข้อความนั้นเข้าไปเท่านั้น.
+ตัวอักษรที่ท่านเห็น, เช่น A, 7, *, เป็นต้น, ต่างก็ถือว่าเป็นข้อความและถูกแทรกเข้าไป
+ทันทีที่ป้อน. กดปุ่ม <Return> ในการที่จะแทรกอักขระ Newline.
 
-\e0\e,T7h\e1R9JRARC6E:\e05Q\e1G\e0MQ\e1!IC\e05Q\e1G\e0JX\e14\e07i\e1RB\e07Uh\e1\e07h\e1R9d\e04i\e1\e0;i\e1M9`\e0"i\e1Rd;d\e04i\e1b4B!RC!4\e0;Xh\e1A\e(B <Delete>. \e0\e,T;Xh\e1A\e(B
-<Delete> \e,T`\e0;g\e19\e0;Xh\e1Af\e(B \e,TK\e09Vh\e1':9a\e0;i\e19\e0>T\e1A\e0>l\e1\e(B, \e0\e,T+Vh\e1':R'$\e0CQi\e1'MR(`\e0;g\e19\e0;Xh\e1A\e07Uh\e1!S\e0!Q\e1:\e04i\e1GB\e(B "Del". \e,Tc9:R'\e(B
-\e,T!C\e03U\e1\e(B, \e0\e,T;Xh\e1A\e(B "Backspace" \e0\e,T!g\e17SK\e09i\e1R\e07Uh\e1`\e0*h\e19`\e04U\e1BG\e0!Q\e1:\e0;Xh\e1A\e(B <Delete>, \e,Ta\e05h\e1\e0!g\e1d\e0Ah\e1`JAMd;\e(B.
+ท่านสามารถลบตัวอักษรตัวสุดท้ายที่ท่านได้ป้อนเข้าไปได้โดยการกดปุ่ม <Delete>. ปุ่ม
+<Delete> เป็นปุ่มๆ หนึ่งบนแป้นพิมพ์, ซึ่งบางครั้งอาจเป็นปุ่มที่กำกับด้วย "Del". ในบาง
+กรณี, ปุ่ม "Backspace" ก็ทำหน้าที่เช่นเดียวกับปุ่ม <Delete>, แต่ก็ไม่เสมอไป.
 
-\e,Tb4B\e07Qh\e1Gd;a\e0Ei\e1G\e(B, \e0\e,T;Xh\e1A\e(B <Delete> \e,T(Pc\e0*i\e1JSK\e0CQ\e1:E:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1K\e09i\e1R5SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B.
+โดยทั่วไปแล้ว, ปุ่ม <Delete> จะใช้สำหรับลบตัวอักษรที่อยู่หน้าตำแหน่งของเคอร์เซอร์ปัจจุบัน.
 
->> \e,TEM'7S\e04Y\e1\e(B--\e0\e,T;i\e1M9\e05Q\e1G\e0MQ\e1!ICc4f\e(B \e0\e,TJQ\e1!JM'JRA\e05Q\e1G\e(B, \e,Ta\e0Ei\e1GE:\e05Q\e1G\e0MQ\e1!IC\e09Qi\e19MM!b4B!4\e0;Xh\e1A\e(B
-   <Delete> \e0\e,TJQ\e1!JM'JRA$\e0CQi\e1'\e(B. \e,Td\e0Ah\e1\e05i\e1M'\e0!Q\e1'GE\e0Gh\e1R(P7Sc\e0Ki\e1\e0"i\e1M$GRAc9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Ui\e1`;\e0EUh\e1B9d;\e(B;
-   \e0\e,T7h\e1R9(Pd\e0Ah\e17Sc\e0Ki\e1\e0"i\e1M$GRAc9\e05i\e19)\e0:Q\e1:"M'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1`;\e0EUh\e1B9a;E'\e(B. \e0\e,T9Uh\e1`\e0;g\e19`\e0>U\e1B')\e0:Q\e1:JS`9R`\e07h\e1R\e09Qi\e19\e(B.
+>> ลองทำดู--ป้อนตัวอักษรใดๆ สักสองสามตัว, แล้วลบตัวอักษรนั้นออกโดยกดปุ่ม
+   <Delete> สักสองสามครั้ง. ไม่ต้องกังวลว่าจะทำให้ข้อความในแฟ้มข้อมูลนี้เปลี่ยนไป;
+   ท่านจะไม่ทำให้ข้อความในต้นฉบับของคู่มือการใช้เปลี่ยนแปลง. นี่เป็นเพียงฉบับสำเนาเท่านั้น.
 
-\e,T`\e0AWh\e1M\e0"i\e1M$GRAc9:CC\e07Q\e14BRG`\e0!T\e19!\e0Gh\e1RK\e09Vh\e1':CC\e07Q\e14"M'K\e09i\e1R(M\e(B, \e0\e,T"i\e1M$GRAc9:CC\e07Q\e14\e09Qi\e19(P\e05h\e1M`\e09Wh\e1M'\e(B
-\e,Td;\e0BQ\e1':CC\e07Q\e14\e06Q\e14d;"M'K\e09i\e1R(M\e(B. \e0\e,TMQ\e1!"CP\e(B backslash ("\") \e0\e,T7Uh\e1;ERB"M'"M:"GR\e0AW\e1M(P\e0:h\e1'\e0*Ui\e1\e(B
-\e0\e,TGh\e1R\e0"i\e1M$GRA"M':CC\e07Q\e14\e09Qi\e19\e05h\e1M`\e09Wh\e1M'd;\e0BQ\e1':CC\e07Q\e14\e06Q\e14d;\e(B.
+เมื่อข้อความในบรรทัดยาวเกินกว่าหนึ่งบรรทัดของหน้าจอ, ข้อความในบรรทัดนั้นจะต่อเนื่อง
+ไปยังบรรทัดถัดไปของหน้าจอ. อักขระ backslash ("\") ที่ปลายของขอบขวามือจะบ่งชี้
+ว่าข้อความของบรรทัดนั้นต่อเนื่องไปยังบรรทัดถัดไป.
 
->> \e0\e,T;i\e1M9\e0"i\e1M$GRA(9!CP\e07Qh\e1'\e06V\e1'"M:"GR\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9\e05h\e1Md;\e0MU\e1!\e(B. \e0\e,T7h\e1R9(P`\e0Kg\e19!RCaJ4'<E"M'\e(B
-   \e,T:CC\e07Q\e14\e05h\e1M`\e09Wh\e1M'\e0!Q\e19\e(B.
+>> ป้อนข้อความจนกระทั่งถึงขอบขวา, แล้วป้อนต่อไปอีก. ท่านจะเห็นการแสดงผลของ
+   บรรทัดต่อเนื่องกัน.
 
->> \e,Tc\e0*i\e1\e0;Xh\e1A\e(B <Delete> \e,T`\e0>Wh\e1ME:\e0"i\e1M$GRAMM!(9!CP\e07Qh\e1'\e0"i\e1M$GRA\e09Qi\e19>M\e04U\e1\e0!Q\e1:$GRA!\e0Gi\e1R'"M'K\e09i\e1R(M\e(B.
-   \e,T:CC\e07Q\e14\e07Uh\e1\e05h\e1M`\e09Wh\e1M'\e0!Q\e19\e0!g\e1(PKRBd;\e(B.
+>> ใช้ปุ่ม <Delete> เพื่อลบข้อความออกจนกระทั่งข้อความนั้นพอดีกับความกว้างของหน้าจอ.
+   บรรทัดที่ต่อเนื่องกันก็จะหายไป.
 
-\e0\e,T7h\e1R9JRARC6E:\e0MQ\e1!"CP\e(B Newline \e,TMM!d\e04i\e1`\e0*h\e19`\e04U\e1BG\e0!Q\e1:\e05Q\e1G\e0MQ\e1!IC\e0MWh\e19f\e(B. \e,T!RCE:\e0MQ\e1!"CP\e(B Newline
-\e,TCPK\e0Gh\e1R'JM':CC\e07Q\e14(P`\e0;g\e19!RCCGAJM':CC\e07Q\e14\e09Qi\e19`\e0"i\e1R`\e0;g\e19:CC\e07Q\e14`\e04U\e1BG\e(B. \e0\e,T6i\e1R<E"M'!RCCGAJM'\e(B
-\e,T:CC\e07Q\e14`\e0"i\e1R\e04i\e1GB\e0!Q\e197Sc\e0Ki\e1:CC\e07Q\e14\e09Qi\e19BRG`\e0!T\e19!\e0Gh\e1R:CC\e07Q\e14"M'K\e09i\e1R(Ma\e0Ei\e1G\e(B, \e,T:CC\e07Q\e14\e09Qi\e19\e0!g\e1(P`\e0;g\e19:CC\e07Q\e14\e(B
-\e,Ta::\e05h\e1M`\e09Wh\e1M'\e(B.
+ท่านสามารถลบอักขระ Newline ออกได้เช่นเดียวกับตัวอักษรอื่นๆ. การลบอักขระ Newline
+ระหว่างสองบรรทัดจะเป็นการรวมสองบรรทัดนั้นเข้าเป็นบรรทัดเดียว. ถ้าผลของการรวมสอง
+บรรทัดเข้าด้วยกันทำให้บรรทัดนั้นยาวเกินกว่าบรรทัดของหน้าจอแล้ว, บรรทัดนั้นก็จะเป็นบรรทัด
+แบบต่อเนื่อง.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1'5SaK\e09h\e1'`\e0CTh\e1A\e05i\e19"M':CC\e07Q\e14\e(B, \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B <Delete>.
-   \e,T:CC\e07Q\e14\e0;Q\e1(\e0(X\e1\e0:Q\e19(P\e06Y\e1!`\e0*Wh\e1MA`\e0"i\e1R\e0!Q\e1::CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e(B.
+>> เคลื่อนเคอร์เซอร์ไปยังตำแหน่งเริ่มต้นของบรรทัด, แล้วกดปุ่ม <Delete>.
+   บรรทัดปัจจุบันจะถูกเชื่อมเข้ากับบรรทัดก่อนหน้า.
 
->> \e,T!4\e0;Xh\e1A\e(B <Return> \e,T`\e0>Wh\e1M\e07Uh\e1(Pa7C!\e0MQ\e1!"CP\e(B Newline \e,T`\e0"i\e1Rd;cK\e0Ah\e1\e(B.
+>> กดปุ่ม <Return> เพื่อที่จะแทรกอักขระ Newline เข้าไปใหม่.
 
-\e,T$GC(Sd\e0Gi\e1\e0Gh\e1R$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1"M'\e0MU\e1aA!\e0Jl\e1(PJRARC67Sc\e0Ki\e1;CPAGE<E\e0+i\e1Sd\e04i\e1KERB$\e0CQi\e1'\e(B; \e0\e,T+Vh\e1'CGA\e06V\e1'\e(B
-\e,T(S9G9\e05Q\e1G\e0MQ\e1!IC\e04i\e1GB\e(B. \e,T!RC;CPAGE<E\e0+i\e1S"M'!RC\e0;i\e1M9\e05Q\e1G\e0MQ\e1!IC\e0$W\e1M!RCa7C!\e05Q\e1G\e0MQ\e1!IC`K\e0Eh\e1R\e09Qi\e19`\e0"i\e1Rd;\e(B.
+ควรจำไว้ว่าคำสั่งส่วนใหญ่ของอีแมกส์จะสามารถทำให้ประมวลผลซ้ำได้หลายครั้ง; ซึ่งรวมถึง
+จำนวนตัวอักษรด้วย. การประมวลผลซ้ำของการป้อนตัวอักษรคือการแทรกตัวอักษรเหล่านั้นเข้าไป.
 
->> \e,TEM'7S\e04Y\e1`\e04Uk\e1BG\e09Ui\e1\e(B--\e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-u 8 * \e,T`\e0>Wh\e1M\e07Uh\e1(P\e0;i\e1M9JRB\e0MQ\e1!"CP\e(B ********.
+>> ลองทำดูเดี๋ยวนี้--ป้อนคำสั่ง C-u 8 * เพื่อที่จะป้อนสายอักขระ ********.
 
-\e0\e,T7h\e1R9d\e04i\e1`\e0CU\e1B9\e0CYi\e1\e06V\e1'\e0GT\e1\e08U\e1!RC`\e0:Wi\e1M'\e05i\e19c9!RC\e0;i\e1M9:R'\e0JTh\e1':R'M\e0Bh\e1R'c9\e0MU\e1aA!\e0Jl\e1aEP!RCa\e0!i\e1d"\e(B
-\e0\e,T"i\e1M\e0<T\e14>ER4\e05h\e1R'f\e(B. \e0\e,T7h\e1R9JRARC6\e07Uh\e1(PE:\e07U\e1EP$SK\e0CW\e1M\e07U\e1EP:CC\e07Q\e14c97S9M'`\e04U\e1BG\e0!Q\e19\e(B. \e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e19\e(B
-\e,T!RCJ\e0CX\e1;!RCE:\e04i\e1GB\e0GT\e1\e08U\e1\e05h\e1R'f\e(B:
+ท่านได้เรียนรู้ถึงวิธีการเบื้องต้นในการป้อนบางสิ่งบางอย่างในอีแมกส์และการแก้ไข
+ข้อผิดพลาดต่างๆ. ท่านสามารถที่จะลบทีละคำหรือทีละบรรทัดในทำนองเดียวกัน. ต่อไปนี้เป็น
+การสรุปการลบด้วยวิธีต่างๆ:
 
-       <Delete>        \e,TE:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1K\e09i\e1R5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B
-       C-d             \e,TE:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1\e06Q\e14d;K\e0EQ\e1'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B
+       <Delete>        ลบตัวอักษรที่อยู่หน้าตำแหน่งเคอร์เซอร์
+       C-d             ลบตัวอักษรที่อยู่ถัดไปหลังตำแหน่งเคอร์เซอร์
 
-       M-<Delete>      \e0\e,T&h\e1R$S\e07Uh\e1M\e0BYh\e1K\e09i\e1R5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B
-       M-d             \e0\e,T&h\e1R$S\e07Uh\e1M\e0BYh\e1\e06Q\e14d;K\e0EQ\e1'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B
+       M-<Delete>      ฆ่าคำที่อยู่หน้าตำแหน่งเคอร์เซอร์
+       M-d             ฆ่าคำที่อยู่ถัดไปหลังตำแหน่งเคอร์เซอร์
 
-       C-k             \e0\e,T&h\e1R\e05Q\e1G\e0MQ\e1!IC\e05Qi\e1'a\e05h\e15SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1d;(9\e06V\e1'\e07i\e1RB:CC\e07Q\e14\e(B
-       M-k             \e0\e,T&h\e1R\e05Q\e1G\e0MQ\e1!IC\e05Qi\e1'a\e05h\e15SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1d;(9\e06V\e1'\e07i\e1RB"M';CPbB$\e(B
+       C-k             ฆ่าตัวอักษรตั้งแต่ตำแหน่งเคอร์เซอร์ไปจนถึงท้ายบรรทัด
+       M-k             ฆ่าตัวอักษรตั้งแต่ตำแหน่งเคอร์เซอร์ไปจนถึงท้ายของประโยค
 
-\e,T$GC(P\e0JQ\e1'`!5d\e04i\e1\e0Gh\e1R$S\e0JQh\e1'\e(B <Delete> \e,TaEP\e(B C-d, \e0\e,T!Q\e1:\e(B M-<Delete> \e,TaEP\e(B M-d \e,T`\e0;g\e19$S\e0JQh\e1'\e(B
-\e,Tc97S9M'`\e04U\e1BG\e0!Q\e19\e07Uh\e1`\e0CTh\e1A(R!$S\e0JQh\e1'\e(B C-f \e,TaEP\e(B M-f (\e,Ta\e0Ai\e1\e0Gh\e1R\e0;Xh\e1A\e(B <Delete> \e,T(Pd\e0Ah\e1c\e0*h\e1\e05Q\e1G\e0MQ\e1!IC\e(B
-\e0\e,T!g\e15RA\e(B, \e,Ta\e05h\e1d\e0Ah\e1d\e04i\e1`\e0;g\e19`\e0CWh\e1M'JS\e0$Q\e1-\e(B). \e,T$S\e0JQh\e1'\e(B C-k \e,TaEP\e(B M-k \e0\e,T!g\e1`\e0*h\e19`\e04U\e1BG\e0!Q\e1:\e(B C-e \e,TaEP\e(B M-e \e0\e,T7Uh\e1\e(B
-\e,T7S'R9c9\e0EQ\e1!I3P`\e04U\e1BG\e0!Q\e19a\e05h\e1$9EPCP\e04Q\e1:\e(B, \e0\e,T$W\e1MCP\e04Q\e1:\e07Uh\e1`\e0;g\e19:CC\e07Q\e14\e0!Q\e1:;CPbB$\e(B.
+ควรจะสังเกตได้ว่าคำสั่ง <Delete> และ C-d, กับ M-<Delete> และ M-d เป็นคำสั่ง
+ในทำนองเดียวกันที่เริ่มจากคำสั่ง C-f และ M-f (แม้ว่าปุ่ม <Delete> จะไม่ใช่ตัวอักษร
+ก็ตาม, แต่ไม่ได้เป็นเรื่องสำคัญ). คำสั่ง C-k และ M-k ก็เช่นเดียวกับ C-e และ M-e ที่
+ทำงานในลักษณะเดียวกันแต่คนละระดับ, คือระดับที่เป็นบรรทัดกับประโยค.
 
-\e,T`\e0AWh\e1M\e07h\e1R9E:\e05Q\e1G\e0MQ\e1!ICd;AR!!\e0Gh\e1RK\e09Vh\e1'\e05Q\e1Gc9$\e0CQi\e1'K\e09Vh\e1'f\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(P\e0:Q\e19\e07V\e1!\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!E:d;d\e0Gi\e1\e(B
-\e,T`\e0>Wh\e1M\e0Gh\e1R\e07h\e1R9(PJRARC6`\e0CU\e1B!!\e0EQ\e1:ARd\e04i\e1\e0MU\e1!\e(B. \e,T!RC`\e0CU\e1B!!\e0EQ\e1:AR"M'\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e09Qi\e19`\e0CU\e1B!\e0Gh\e1R\e(B
-"\e,T!RC`\e0CU\e1B!\e0$W\e19\e(B (yanking)". \e0\e,T7h\e1R9JRARC6`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;!\e0EQ\e1:ARd\e04i\e1b4Bc\e0Ki\e1\e(B
-\e,T;CR!/c9\e07Uh\e1\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e(B, \e,TK\e0CW\e1M;CR!/c9\e07Uh\e1c4f\e(B \e,T"M'\e0"i\e1M$GRA\e0!g\e1d\e04i\e1\e(B. \e0\e,T7h\e1R9JRARC6`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e(B
-\e0\e,T!Uh\e1$\e0CQi\e1'\e0!g\e1d\e04i\e1`\e0>Wh\e1M\e07Uh\e1(P7SJS`9R\e0"i\e1M$GRA\e(B. \e,T$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1c9!RC`\e0CU\e1B!\e0$W\e19\e0$W\e1M\e(B C-y.
+เมื่อท่านลบตัวอักษรไปมากกว่าหนึ่งตัวในครั้งหนึ่งๆ, อีแมกส์จะบันทึกข้อความที่ถูกลบไปไว้
+เพื่อว่าท่านจะสามารถเรียกกลับมาได้อีก. การเรียกกลับมาของข้อความที่ถูกฆ่าไปนั้นเรียกว่า
+"การเรียกคืน (yanking)". ท่านสามารถเรียกคืนข้อความที่ถูกฆ่าไปกลับมาได้โดยให้
+ปรากฏในที่ที่ถูกฆ่าไป, หรือปรากฏในที่ใดๆ ของข้อความก็ได้. ท่านสามารถเรียกคืนข้อความ
+กี่ครั้งก็ได้เพื่อที่จะทำสำเนาข้อความ. คำสั่งที่ใช้ในการเรียกคืนคือ C-y.
 
-\e0\e,TJTh\e1'\e07Uh\e1$GC\e0JQ\e1'`!5\e0MQ\e19K\e09Vh\e1'\e0$W\e1M\e0"i\e1Ma5!\e05h\e1R'CPK\e0Gh\e1R'\e(B "\e,T!RC\e0&h\e1R\e(B (killing)" \e0\e,T!Q\e1:\e(B "\e,T!RCE:\e(B
-(deleting)". \e0\e,TJTh\e1'\e07Uh\e1\e06Y\e1!\e(B "\e0\e,T&h\e1R\e(B (killed)" \e,Td;\e09Qi\e19\e(B, \e,TJRARC6\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19\e(B (yank) \e,TARd\e04i\e1\e(B,
-\e,Ta\e05h\e1\e0JTh\e1'\e07Uh\e1\e06Y\e1!\e(B "\e,TE:\e(B (deleted)" \e,Td;\e09Qi\e19\e(B, \e,Td\e0Ah\e1JRARC6(P`\e0CU\e1B!\e0$W\e19ARd\e04i\e1\e(B. \e,Tb4B\e07Qh\e1Gd;\e(B, \e,T$S\e0JQh\e1'\e07Uh\e1JRARC6\e(B
-\e,TE:\e0"i\e1M$GRAd\e04i\e1\e07U\e1EPAR!f\e(B \e,T(P`\e0!g\e1:\e0"i\e1M$GRA\e09Qi\e19d\e0Gi\e1\e(B, \e,T"3P\e07Uh\e1$S\e0JQh\e1'\e07Uh\e1E:d\e04i\e1\e07U\e1EP\e05Q\e1G\e0MQ\e1!IC\e(B, \e,TK\e0CW\e1M:CC\e07Q\e14\e(B
-\e,T`;\e0Eh\e1RaEP`\e0Gi\e19GCC$\e(B, \e,T(Pd\e0Ah\e1`\e0!g\e1:\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!E:d;\e(B.
+สิ่งที่ควรสังเกตอันหนึ่งคือข้อแตกต่างระหว่าง "การฆ่า (killing)" กับ "การลบ
+(deleting)". สิ่งที่ถูก "ฆ่า (killed)" ไปนั้น, สามารถที่จะเรียกคืน (yank) มาได้,
+แต่สิ่งที่ถูก "ลบ (deleted)" ไปนั้น, ไม่สามารถจะเรียกคืนมาได้. โดยทั่วไป, คำสั่งที่สามารถ
+ลบข้อความได้ทีละมากๆ จะเก็บข้อความนั้นไว้, ขณะที่คำสั่งที่ลบได้ทีละตัวอักษร, หรือบรรทัด
+เปล่าและเว้นวรรค, จะไม่เก็บข้อความที่ถูกลบไป.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1'\e0(X\e14`\e0CTh\e1A\e05i\e19"M':CC\e07Q\e14\e07Uh\e1d\e0Ah\e1c\e0*h\e1:CC\e07Q\e14`;\e0Eh\e1R\e(B.
-   \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-k \e,T`\e0>Wh\e1M\e07Uh\e1(P\e0&h\e1R\e0"i\e1M$GRA\e07Uh\e1M\e0BYh\e1:9:CC\e07Q\e14\e09Qi\e19\e(B.
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-k \e0\e,TMU\e1!$\e0CQi\e1'K\e09Vh\e1'\e(B. \e0\e,T7h\e1R9(P`\e0Kg\e19\e0Gh\e1R\e0MQ\e1!"CP\e(B Newline \e0\e,T7Uh\e1M\e0BYh\e1\e07i\e1RB:CC\e07Q\e14\e09Qi\e19(P\e06Y\e1!\e(B
-   \e0\e,T&h\e1Rd;\e(B.
+>> เคลื่อนเคอร์เซอร์ไปยังจุดเริ่มต้นของบรรทัดที่ไม่ใช่บรรทัดเปล่า.
+   แล้วป้อนคำสั่ง C-k เพื่อที่จะฆ่าข้อความที่อยู่บนบรรทัดนั้น.
+>> ป้อนคำสั่ง C-k อีกครั้งหนึ่ง. ท่านจะเห็นว่าอักขระ Newline ที่อยู่ท้ายบรรทัดนั้นจะถูก
+   ฆ่าไป.
 
-\e,T(P\e0JQ\e1'`!5d\e04i\e1\e0Gh\e1R$S\e0JQh\e1'\e(B C-k \e,T$S\e0JQh\e1'aC!(P\e0&h\e1R`\e09Wi\e1M$GRA"M':CC\e07Q\e14\e(B, \e,TaEP$S\e0JQh\e1'\e(B C-k \e,T$S\e0JQh\e1'\e(B
-\e0\e,T7Uh\e1JM'(P\e0&h\e1R:CC\e07Q\e14\e09Qi\e19\e(B, \e,TaEP(P"\e0BQ\e1::CC\e07Q\e14\e0MWh\e19f\e(B \e0\e,T7Uh\e1`K\e0EW\e1M\e07Qi\e1'KA4\e0"Vi\e19\e(B. \e,T$S\e0JQh\e1'\e(B C-k \e0\e,T(Q\e14!RC\e0!Q\e1:\e(B
-\e0\e,T5Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1c9\e0EQ\e1!I3P\e07Uh\e1a5!\e05h\e1R'MM!d;\e(B: \e,T$S\e0JQh\e1'\e09Ui\e1(P\e0&h\e1RKERBf\e(B \e,T:CC\e07Q\e14aEP`\e09Wi\e1MKR"M'\e(B
-\e0\e,T"i\e1M$GRA\e04i\e1GB\e(B. \e0\e,T9Uh\e1d\e0Ah\e1`K\e0AW\e1M9!RC7S\e0+i\e1Sa::;C!\e05T\e1\e(B. \e,T$S\e0JQh\e1'\e(B C-u 2 C-k \e,T(P\e0&h\e1R\e07Qi\e1'JM':CC\e07Q\e14\e(B
-\e,T>\e0Ci\e1MA\e07Qi\e1'\e0MQ\e1!"CP\e(B Newline \e,T"M':CC\e07Q\e14\e09Qi\e19f\e(B \e0\e,T4i\e1GB\e(B; \e0\e,T+Vh\e1'\e05h\e1R'(R!!RC7S$S\e0JQh\e1'\e(B C-k \e,TJM'$\e0CQi\e1'\e(B.
+จะสังเกตได้ว่าคำสั่ง C-k คำสั่งแรกจะฆ่าเนื้อความของบรรทัด, และคำสั่ง C-k คำสั่ง
+ที่สองจะฆ่าบรรทัดนั้น, และจะขยับบรรทัดอื่นๆ ที่เหลือทั้งหมดขึ้น. คำสั่ง C-k จัดการกับ
+ตัวเลขอาร์กิวเมนต์ในลักษณะที่แตกต่างออกไป: คำสั่งนี้จะฆ่าหลายๆ บรรทัดและเนื้อหาของ
+ข้อความด้วย. นี่ไม่เหมือนการทำซ้ำแบบปรกติ. คำสั่ง C-u 2 C-k จะฆ่าทั้งสองบรรทัด
+พร้อมทั้งอักขระ Newline ของบรรทัดนั้นๆ ด้วย; ซึ่งต่างจากการทำคำสั่ง C-k สองครั้ง.
 
-\e,Tc\e0*i\e1$S\e0JQh\e1'\e(B C-y \e,Tc9!RC\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;K\e0EQ\e1'\e0JX\e14\e(B. \e0\e,T"i\e1M$GRA\e07Uh\e1\e06Y\e1!`\e0CU\e1B!\e0$W\e19\e09Qi\e19(P\e(B
-\e,T;CR!/\e07Uh\e15SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B.
+ใช้คำสั่ง C-y ในการที่จะเรียกคืนข้อความที่ถูกฆ่าไปหลังสุด. ข้อความที่ถูกเรียกคืนนั้นจะ
+ปรากฏที่ตำแหน่งเคอร์เซอร์ปัจจุบัน.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-y \e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA!\e0EQ\e1:AR\e(B.
+>> ลองใช้คำสั่ง C-y เพื่อที่จะเรียกคืนข้อความกลับมา.
 
-\e,T$S\e0JQh\e1'\e(B C-y \e0\e,T!g\e1`K\e0AW\e1M9!RC`\e0CU\e1B!\e0$W\e19\e0JTh\e1'"M'\e07Uh\e1c$C:R'$9d\e04i\e1`MRd;(R!\e07h\e1R9\e(B. \e0\e,T7h\e1R9(P\e0JQ\e1'`!5d\e04i\e1\e0Gh\e1R\e(B
-\e0\e,T6i\e1R\e07h\e1R9c\e0*i\e1$S\e0JQh\e1'\e(B C-k \e0\e,T5T\e14\e05h\e1M\e0!Q\e19KERBf\e(B \e,T$\e0CQi\e1'\e(B, \e0\e,T"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e07Qi\e1'KA4(P\e06Y\e1!`\e0!g\e1:d\e0Gi\e1\e04i\e1GB\e0!Q\e19\e(B,
-\e,T)P\e09Qi\e19!RCc\e0*i\e1$S\e0JQh\e1'\e(B C-y \e,T`\e0>U\e1B'$\e0CQi\e1'`\e04U\e1BG\e0!g\e1(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA!\e0EQ\e1:ARd\e04i\e1\e07Qi\e1'KA4\e(B.
+คำสั่ง C-y ก็เหมือนการเรียกคืนสิ่งของที่ใครบางคนได้เอาไปจากท่าน. ท่านจะสังเกตได้ว่า
+ถ้าท่านใช้คำสั่ง C-k ติดต่อกันหลายๆ ครั้ง, ข้อความที่ถูกฆ่าไปทั้งหมดจะถูกเก็บไว้ด้วยกัน,
+ฉะนั้นการใช้คำสั่ง C-y เพียงครั้งเดียวก็จะเรียกคืนข้อความกลับมาได้ทั้งหมด.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-k \e,TKERBf\e(B \e,T$\e0CQi\e1'\e04Y\e1\e(B.
+>> ลองใช้คำสั่ง C-k หลายๆ ครั้งดู.
 
-\e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e(B:
+เพื่อที่จะเรียกคืนข้อความที่ถูกฆ่าไป:
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-y. \e,Ta\e0Ei\e1G`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1E'd;\e0JQ\e1!JM'JRA:CC\e07Q\e14\e(B, \e,Ta\e0Ei\e1Gc\e0*i\e1$S\e0JQh\e1'\e(B C-y
-   \e0\e,TMU\e1!$\e0CQi\e1'\e(B. \e0\e,T7h\e1R9(P`\e0"i\e1Rc(\e0GT\e1\e08U\e1!RC\e07Uh\e1(PJS`9R\e0"i\e1M$GRA\e(B.
+>> ลองใช้คำสั่ง C-y. แล้วเคลื่อนเคอร์เซอร์ลงไปสักสองสามบรรทัด, แล้วใช้คำสั่ง C-y
+   อีกครั้ง. ท่านจะเข้าใจวิธีการที่จะสำเนาข้อความ.
 
-\e0\e,T7h\e1R9(P7SM\e0Bh\e1R'dC\e06i\e1R\e07h\e1R9\e05i\e1M'!RC(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA:R'M\e0Bh\e1R'\e(B, \e,Ta\e0Ei\e1G\e0&h\e1R:R'M\e0Bh\e1R'MM!d;\e(B?
-\e,T$S\e0JQh\e1'\e(B C-y \e,T(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1R\e0Eh\e1R\e0JX\e14\e(B. \e,Ta\e05h\e1\e0"i\e1M$GRA\e0!h\e1M9K\e09i\e1R\e09Qi\e19\e0BQ\e1'$'`K\e0EW\e1MM\e0BYh\e1\e(B. \e0\e,T7h\e1R9\e(B
-\e,TJRARC6(P`\e0CU\e1B!\e0$W\e19ARd\e04i\e1\e0MU\e1!b4Bc\e0*i\e1$S\e0JQh\e1'\e(B M-y. \e,TK\e0EQ\e1'(R!\e07Uh\e1\e07h\e1R9d\e04i\e1`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e0Eh\e1R\e0JX\e14a\e0Ei\e1G\e(B,
-\e,Tc\e0*i\e1$S\e0JQh\e1'\e(B M-y \e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e0!h\e1M9K\e09i\e1R\e09Qi\e19ARa79\e07Uh\e1\e(B. \e,T!RCc\e0*i\e1$S\e0JQh\e1'\e(B M-y \e,Ta\e05h\e1EP$\e0CQi\e1'\e(B
-\e,T(P`\e0CU\e1B!\e0$W\e19\e0"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;c9ES\e04Q\e1:\e07Uh\e1\e0Bi\e1M9!\e0EQ\e1:\e0"Vi\e19d;\e(B. \e,T`\e0AWh\e1M\e07h\e1R9d\e04i\e1\e0"i\e1M$GRA\e07Uh\e1\e05i\e1M'!RC!\e0EQ\e1:\e0$W\e19AR\e(B,
-\e0\e,T7h\e1R9\e0!g\e1d\e0Ah\e1(S`\e0;g\e19\e07Uh\e1(P\e05i\e1M'7SMPdC\e0!Q\e1:\e0"i\e1M$GRA\e09Qi\e19\e0MU\e1!\e(B. \e,T`\e0>U\e1B';\e0Eh\e1MBM\e0BYh\e1M\e0Bh\e1R'\e09Qi\e19\e(B, \e,Ta\e0Ei\e1G7S!RCa\e0!i\e1d"\e(B
-\e0\e,T"i\e1M$GRA\e0MWh\e19\e05h\e1Md;\e(B.
+ท่านจะทำอย่างไรถ้าท่านต้องการจะเรียกคืนข้อความบางอย่าง, แล้วฆ่าบางอย่างออกไป?
+คำสั่ง C-y จะเรียกคืนข้อความที่ถูกฆ่าล่าสุด. แต่ข้อความก่อนหน้านั้นยังคงเหลืออยู่. ท่าน
+สามารถจะเรียกคืนมาได้อีกโดยใช้คำสั่ง M-y. หลังจากที่ท่านได้เรียกคืนข้อความล่าสุดแล้ว,
+ใช้คำสั่ง M-y เพื่อที่จะเรียกคืนข้อความก่อนหน้านั้นมาแทนที่. การใช้คำสั่ง M-y แต่ละครั้ง
+จะเรียกคืนข้อความที่ถูกฆ่าไปในลำดับที่ย้อนกลับขึ้นไป. เมื่อท่านได้ข้อความที่ต้องการกลับคืนมา,
+ท่านก็ไม่จำเป็นที่จะต้องทำอะไรกับข้อความนั้นอีก. เพียงปล่อยอยู่อย่างนั้น, แล้วทำการแก้ไข
+ข้อความอื่นต่อไป.
 
-\e0\e,T6i\e1R\e07h\e1R9c\e0*i\e1$S\e0JQh\e1'\e(B M-y \e0\e,T4i\e1GB(S9G9$\e0CQi\e1'\e07Uh\e1AR!>M\e(B, \e0\e,T7h\e1R9(P\e0Bi\e1M9!\e0EQ\e1:AR\e0BQ\e1'\e0(X\e14`\e0CTh\e1A\e05i\e19\e0MU\e1!$\e0CQi\e1'\e(B
-(\e0\e,T"i\e1M$GRA\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e0Eh\e1R\e0JX\e14\e(B).
+ถ้าท่านใช้คำสั่ง M-y ด้วยจำนวนครั้งที่มากพอ, ท่านจะย้อนกลับมายังจุดเริ่มต้นอีกครั้ง
+(ข้อความที่ถูกฆ่าไปล่าสุด).
 
->> \e0\e,T&h\e1RK\e09Vh\e1':CC\e07Q\e14\e(B, \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e(B, \e0\e,T&h\e1R\e0MU\e1!:CC\e07Q\e14\e(B.
-   \e,Ta\e0Ei\e1Gc\e0*i\e1$S\e0JQh\e1'\e(B C-y \e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0CU\e1B!\e0$W\e19:CC\e07Q\e14\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;c9$\e0CQi\e1'\e07Uh\e1JM'\e(B.
-   \e,Ta\e0Ei\e1Gc\e0*i\e1$S\e0JQh\e1'\e(B M-y \e0\e,T+Vh\e1'(P`\e0CV\e1B!\e0$W\e19:CC\e07Q\e14\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;c9$\e0CQi\e1'aC!ARa79\e07Uh\e1\e(B.
-   \e,Tc\e0*i\e1$S\e0JQh\e1'\e(B M-y \e0\e,TMU\e1!\e(B, \e,Ta\e0Ei\e1G\e04Y\e1\e0Gh\e1R(P`\e0!T\e14MPdC\e0"Vi\e19\e(B. \e,TEM'7Sd;`\e0CWh\e1MBf\e(B \e,T(9!\e0Gh\e1R:CC\e07Q\e14\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;\e(B
-   \e,Tc9$\e0CQi\e1'\e07Uh\e1JM'(P!\e0EQ\e1:\e0$W\e19AR\e(B, \e,Ta\e0Ei\e1G7Sd;\e0MU\e1!\e0JQ\e1!CPBP\e(B.
-   \e0\e,T6i\e1R\e07h\e1R9\e05i\e1M'!RC\e(B, \e0\e,T7h\e1R9MR((PEM'!S\e0!Q\e1:\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1\e07Qi\e1'\e07Uh\e1`\e0;g\e19(S9G9:G!aEPE:c\e0Ki\e1\e0!Q\e1:\e(B
-   \e,T$S\e0JQh\e1'\e(B M-y \e0\e,T4Y\e1\e(B.
+>> ฆ่าหนึ่งบรรทัด, เคลื่อนเคอร์เซอร์ไป, ฆ่าอีกบรรทัด.
+   แล้วใช้คำสั่ง C-y เพื่อที่จะเรียกคืนบรรทัดที่ถูกฆ่าไปในครั้งที่สอง.
+   แล้วใช้คำสั่ง M-y ซึ่งจะเรึยกคืนบรรทัดที่ถูกฆ่าไปในครั้งแรกมาแทนที่.
+   ใช้คำสั่ง M-y อีก, แล้วดูว่าจะเกิดอะไรขึ้น. ลองทำไปเรื่อยๆ จนกว่าบรรทัดที่ถูกฆ่าไป
+   ในครั้งที่สองจะกลับคืนมา, แล้วทำไปอีกสักระยะ.
+   ถ้าท่านต้องการ, ท่านอาจจะลองกำกับตัวเลขอาร์กิวเมนต์ทั้งที่เป็นจำนวนบวกและลบให้กับ
+   คำสั่ง M-y ดู.
 
 
-* \e,T!RC7S\e0Bi\e1M9\e(B (undo)
+* การทำย้อน (undo)
 -------------------
 
-\e0\e,T6i\e1R\e07h\e1R9d\e04i\e1a\e0!i\e1d"\e0"i\e1M$GRAd;\e(B, \e,TaEP\e0$T\e14\e0Gh\e1Rd\e04i\e17S\e0<T\e14>ER4d;\e(B, \e0\e,T7h\e1R9JRARC67S\e0Bi\e1M9\e0JTh\e1'\e07Uh\e1d\e04i\e1\e(B
-\e,T`;\e0EUh\e1B9a;E'd;a\e0Ei\e1G\e04i\e1GB$S\e0JQh\e1'!RC7S\e0Bi\e1M9\e(B, C-x u.
+ถ้าท่านได้แก้ไขข้อความไป, และคิดว่าได้ทำผิดพลาดไป, ท่านสามารถทำย้อนสิ่งที่ได้
+เปลี่ยนแปลงไปแล้วด้วยคำสั่งการทำย้อน, C-x u.
 
-\e,Tb4B;C!\e05T\e1\e(B, \e,T$S\e0JQh\e1'\e(B C-x u \e,T7S\e0Bi\e1M9$S\e0JQh\e1'\e07Uh\e1d\e04i\e17Sd;a\e0Ei\e1GK\e09Vh\e1'$S\e0JQh\e1'\e(B; \e0\e,T6i\e1R\e07h\e1R97S\e0Bi\e1M9\e0+i\e1S\e05T\e14\e05h\e1M\e0!Q\e19\e(B,
-\e,T!RC7S\e0Bi\e1M9a\e05h\e1EP$\e0CQi\e1'(P\e0Bi\e1M9$S\e0JQh\e1'd;\e07U\e1EP$S\e0JQh\e1'\e(B.
+โดยปรกติ, คำสั่ง C-x u ทำย้อนคำสั่งที่ได้ทำไปแล้วหนึ่งคำสั่ง; ถ้าท่านทำย้อนซ้ำติดต่อกัน,
+การทำย้อนแต่ละครั้งจะย้อนคำสั่งไปทีละคำสั่ง.
 
-\e,Ta\e05h\e1\e0AU\e1\e0"i\e1MB!`\e0Gi\e19M\e0BYh\e1JM';CP!RC\e(B: \e,T$S\e0JQh\e1'\e07Uh\e1d\e0Ah\e1`;\e0EUh\e1B9a;E'\e0"i\e1M$GRA(Pd\e0Ah\e1\e09Q\e1:CGAM\e0BYh\e1\e04i\e1GB\e(B (\e0\e,T9Uh\e1CGA\e06V\e1'\e(B
-\e,T$S\e0JQh\e1'!RC`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1aEP!RC`$\e0EWh\e1M9\e0Ai\e1G9\e(B), \e,TaEP!RCa7C!\e05Q\e1G\e0MQ\e1!IC\e0!g\e1(P\e06Y\e1!\e0(Q\e14!RCb4BCGA\e(B
-\e,T`\e0;g\e19!\e0EXh\e1A\e07Uh\e1d\e0Ah\e1`\e0!T\e19\e(B 20 \e0\e,T5Q\e1G\e0MQ\e1!IC\e05h\e1M!\e0EXh\e1A\e(B. (\e0\e,T7Qi\e1'\e09Ui\e1`\e0>Wh\e1ME4(S9G9$\e0CQi\e1'"M'$S\e0JQh\e1'\e(B C-x u \e,Tc9!RC7S\e(B
-\e0\e,TBi\e1M9!RCa7C!\e05Q\e1G\e0MQ\e1!IC\e(B.)
+แต่มีข้อยกเว้นอยู่สองประการ: คำสั่งที่ไม่เปลี่ยนแปลงข้อความจะไม่นับรวมอยู่ด้วย (นี่รวมถึง
+คำสั่งการเคลื่อนเคอร์เซอร์และการเคลื่อนม้วน), และการแทรกตัวอักษรก็จะถูกจัดการโดยรวม
+เป็นกลุ่มที่ไม่เกิน 20 ตัวอักษรต่อกลุ่ม. (ทั้งนี้เพื่อลดจำนวนครั้งของคำสั่ง C-x u ในการทำ
+ย้อนการแทรกตัวอักษร.)
 
->> \e0\e,T&h\e1R:CC\e07Q\e14\e09Ui\e1\e04i\e1GB$S\e0JQh\e1'\e(B C-k, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-x u. \e,T:CC\e07Q\e14\e07Uh\e1\e06Y\e1!\e0&h\e1Rd;(P;CR!/!\e0EQ\e1:\e0$W\e19AR\e(B.
+>> ฆ่าบรรทัดนี้ด้วยคำสั่ง C-k, แล้วป้อนคำสั่ง C-x u. บรรทัดที่ถูกฆ่าไปจะปรากฏกลับคืนมา.
 
-\e,T$S\e0JQh\e1'\e(B C-_ \e,T`\e0;g\e19\e0MU\e1!$S\e0JQh\e1'K\e09Vh\e1'JSK\e0CQ\e1:!RC7S\e0Bi\e1M9\e(B; \e,T$S\e0JQh\e1'\e09Ui\e17S'R9`K\e0AW\e1M9\e0!Q\e1:$S\e0JQh\e1'\e(B C-x u,
-\e,Ta\e05h\e1\e0Gh\e1RJP4G!!\e0Gh\e1Rc9!RC\e0;i\e1M9KERBf\e(B \e,T$\e0CQi\e1'\e05T\e14\e05h\e1M\e0!Q\e19\e(B. \e0\e,T"i\e1M`\e0JU\e1B"M'$S\e0JQh\e1'\e(B C-_ \e0\e,T9Ui\e1\e0$W\e1Mc9:R'\e(B
-\e,Ta\e0;i\e19\e0>T\e1A\e0>l\e1\e(B, \e,TMR((Pd\e0Ah\e17CR:\e0Gh\e1R(P\e0;i\e1M9$S\e0JQh\e1'd\e04i\e1M\e0Bh\e1R'dC\e(B. \e0\e,T9Qh\e19\e0$W\e1M`K\e05X\e1\e07Uh\e17Sc\e0Ki\e1`CR\e05i\e1M'`5\e0CU\e1BA$S\e0JQh\e1'\e(B
-C-x u \e,Tc\e0Ki\e1\e0MU\e1!\e05h\e1R'KR!\e(B. \e,Tc9`$\e0CWh\e1M';ERB7R':R'*\e09T\e14\e(B,\e0\e,T7h\e1R9MR((P\e0;i\e1M9$S\e0JQh\e1'\e(B C-_ \e,Td\e04i\e1b4B!RC!4\e(B
-\e0\e,TMQ\e1!"CP\e(B / \e,Tc9"3P\e07Uh\e1!4\e0;Xh\e1A\e(B CONTROL.
+คำสั่ง C-_ เป็นอีกคำสั่งหนึ่งสำหรับการทำย้อน; คำสั่งนี้ทำงานเหมือนกับคำสั่ง C-x u,
+แต่ว่าสะดวกกว่าในการป้อนหลายๆ ครั้งติดต่อกัน. ข้อเสียของคำสั่ง C-_ นี้คือในบาง
+แป้นพิมพ์, อาจจะไม่ทราบว่าจะป้อนคำสั่งได้อย่างไร. นั่นคือเหตุที่ทำให้เราต้องเตรียมคำสั่ง
+C-x u ให้อีกต่างหาก. ในเครื่องปลายทางบางชนิด,ท่านอาจจะป้อนคำสั่ง C-_ ได้โดยการกด
+อักขระ / ในขณะที่กดปุ่ม CONTROL.
 
-\e0\e,T5Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1JSK\e0CQ\e1:$S\e0JQh\e1'\e(B C-_ \e,TaEP\e(B C-x u \e,T(P`\e0;g\e19!RC\e0+i\e1S(S9G9$\e0CQi\e1'"M'$S\e0JQh\e1'\e(B.
+ตัวเลขอาร์กิวเมนต์สำหรับคำสั่ง C-_ และ C-x u จะเป็นการซ้ำจำนวนครั้งของคำสั่ง.
 
 
-* \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (file)
+* แฟ้มข้อมูล (file)
 ----------------
 
-\e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0!g\e1:\e0"i\e1M$GRA\e07Uh\e1d\e04i\e1a\e0!i\e1d"d;\e09Qi\e19\e(B, \e0\e,T7h\e1R9(P\e05i\e1M'`\e0!g\e1:\e0"i\e1M$GRA\e09Qi\e19d\e0Gi\e1c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B. \e,Td\e0Ah\e1`\e0*h\e19\e09Qi\e19\e(B
-\e0\e,T"i\e1M$GRA\e0!g\e1(PKRBd;`\e0AWh\e1M\e07h\e1R9`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B. \e,T!RC\e07Uh\e1(P`\e0!g\e1:\e0"i\e1M$GRA\e09Qi\e19E'c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B, \e0\e,T7h\e1R9\e(B
-\e,T(P\e05i\e1M'\e(B "\e0\e,T$i\e19KR\e(B (find)" \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0!h\e1M9\e07Uh\e1(P`\e0"i\e1Rd;c9\e0"i\e1M$GRA\e09Qi\e19d\e04i\e1\e(B. (\e0\e,T9Uh\e1`\e0CU\e1B!\e0Gh\e1R\e(B "\e,T!RC\e(B
-\e,T`\e0BW\e1M9\e(B (visiting)" \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B.)
+เพื่อที่จะเก็บข้อความที่ได้แก้ไขไปนั้น, ท่านจะต้องเก็บข้อความนั้นไว้ในแฟ้มข้อมูล. ไม่เช่นนั้น
+ข้อความก็จะหายไปเมื่อท่านเลิกใช้อีแมกส์. การที่จะเก็บข้อความนั้นลงในแฟ้มข้อมูล, ท่าน
+จะต้อง "ค้นหา (find)" แฟ้มข้อมูลก่อนที่จะเข้าไปในข้อความนั้นได้. (นี่เรียกว่า "การ
+เยือน (visiting)" แฟ้มข้อมูล.)
 
-\e,T!RC\e0$i\e19KRa\e0?i\e1A\e0"i\e1M\e0AY\e1EKARB\e06V\e1'!RC\e07Uh\e1\e07h\e1R9d\e04i\e1`\e0Kg\e19`\e09Wi\e1MKR"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E@RBc9\e0MU\e1aA!\e0Jl\e1\e(B. \e,Tc9KERBf\e(B
-\e,T7R'\e(B, \e0\e,T4Y\e1`K\e0AW\e1M9\e0Gh\e1R\e07h\e1R9!S\e0EQ\e1'a\e0!i\e1d"\e0"i\e1M\e0AY\e1Ec9a\e0?i\e1A\e0"i\e1M\e0AY\e1EM\e0BYh\e1\e(B. \e,TM\e0Bh\e1R'dC\e0!g\e15RA\e(B, \e,T!RCa\e0!i\e1d"@RBc9\e0MU\e1\e(B
-\e,TaA!\e0Jl\e1\e09Qi\e19(Pd\e0Ah\e1$'M\e0BYh\e1(9!\e0Gh\e1R\e07h\e1R9(P\e(B "\e0\e,T(Q\e14`\e0!g\e1:\e(B (save)" \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e(B. \e0\e,T9Uh\e1`\e0;g\e19!RC\e0*h\e1GBc\e0Ki\e1\e07h\e1R9\e(B
-\e,TJRARC6K\e0EU\e1!`\e0EUh\e1B'!RC7Sc\e0Ki\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e06Y\e1!a\e0!i\e1d"d\e0Gi\e1$\e0CVh\e1'f\e(B \e,T!ER'f\e(B \e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1d\e04i\e1\e05i\e1M'!RC\e(B. \e,Ta\e0Ai\e1\e0Gh\e1R\e(B
-\e0\e,T7h\e1R9(P7S!RC\e0(Q\e14`\e0!g\e1:d;a\e0Ei\e1G\e0!g\e15RA\e(B, \e0\e,TMU\e1aA!\e0Jl\e1\e0!g\e1\e0BQ\e1'$'`K\e0EW\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05i\e19)\e0:Q\e1:d\e0Gi\e1b4B`\e0!g\e1:d\e0Gi\e1c9\e0*Wh\e1M\e(B
-\e,TcK\e0Ah\e1\e(B, \e,T`\e0<Wh\e1Md\e0Gi\e1c9!C\e03U\e1\e07Uh\e1\e07h\e1R9a\e0!i\e1d"\e0<T\e14>ER4\e(B.
+การค้นหาแฟ้มข้อมูลหมายถึงการที่ท่านได้เห็นเนื้อหาของแฟ้มข้อมูลภายในอีแมกส์. ในหลายๆ
+ทาง, ดูเหมือนว่าท่านกำลังแก้ไขข้อมูลในแฟ้มข้อมูลอยู่. อย่างไรก็ตาม, การแก้ไขภายในอี
+แมกส์นั้นจะไม่คงอยู่จนกว่าท่านจะ "จัดเก็บ (save)" แฟ้มข้อมูลนั้น. นี่เป็นการช่วยให้ท่าน
+สามารถหลีกเลี่ยงการทำให้แฟ้มข้อมูลถูกแก้ไขไว้ครึ่งๆ กลางๆ ถ้าท่านไม่ได้ต้องการ. แม้ว่า
+ท่านจะทำการจัดเก็บไปแล้วก็ตาม, อีแมกส์ก็ยังคงเหลือแฟ้มข้อมูลต้นฉบับไว้โดยเก็บไว้ในชื่อ
+ใหม่, เผื่อไว้ในกรณีที่ท่านแก้ไขผิดพลาด.
 
-\e0\e,T6i\e1R\e07h\e1R9\e0JQ\e1'`!5\e04Y\e1\e0Jh\e1G9\e0Eh\e1R'"M'K\e09i\e1R(M"M'\e0MU\e1aA!\e0Jl\e1\e(B, \e0\e,T7h\e1R9(P`\e0Kg\e19:CC\e07Q\e14\e07Uh\e1`\e0CTh\e1A\e05i\e19aEP\e0JTi\e19\e0JX\e14\e04i\e1GB\e(B
-\e,T`\e0Ji\e19;CP\e(B. \e,T:CC\e07Q\e14\e09Qi\e19MR((P`\e0CTh\e1A\e05i\e19\e04i\e1GB\e(B "--:-- TUTORIAL" \e,TK\e0CW\e1MMPdC7S9M'\e09Qi\e19\e(B. \e0\e,TJh\e1G9\e09Ui\e1\e(B
-\e,T"M'K\e09i\e1R(M\e(B, \e,Tb4B;C!\e05T\e1a\e0Ei\e1G\e(B, \e,T(PaJ4'\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'`\e0BW\e1M9M\e0BYh\e1\e(B. \e,T"3P\e09Ui\e1\e07h\e1R9!S\e0EQ\e1'\e(B
-\e,T`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0*Wh\e1M\e0Gh\e1R\e(B "TUTORIAL.th" \e0\e,T+Vh\e1'`\e0;g\e19JS`9R"M'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B. \e,T`\e0AWh\e1M\e07h\e1R9d\e04i\e1\e(B
-\e,T`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e04i\e1GB\e0MU\e1aA!\e0Jl\e1\e(B, \e0\e,T*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19(P;CR!/c9\e07Uh\e1\e07Uh\e1d\e04i\e1!\e0Eh\e1RGd\e0Gi\e1a\e0Ei\e1G\e(B.
+ถ้าท่านสังเกตดูส่วนล่างของหน้าจอของอีแมกส์, ท่านจะเห็นบรรทัดที่เริ่มต้นและสิ้นสุดด้วย
+เส้นประ. บรรทัดนั้นอาจจะเริ่มต้นด้วย "--:-- TUTORIAL" หรืออะไรทำนองนั้น. ส่วนนี้
+ของหน้าจอ, โดยปรกติแล้ว, จะแสดงชื่อแฟ้มข้อมูลที่ท่านกำลังเยือนอยู่. ขณะนี้ท่านกำลัง
+เยือนแฟ้มข้อมูลที่ชื่อว่า "TUTORIAL.th" ซึ่งเป็นสำเนาของคู่มือการใช้อีแมกส์. เมื่อท่านได้
+เยือนแฟ้มข้อมูลด้วยอีแมกส์, ชื่อของแฟ้มข้อมูลนั้นจะปรากฏในที่ที่ได้กล่าวไว้แล้ว.
 
-\e0\e,TEQ\e1!I3P\e0>T\e1`HI\e0"i\e1MK\e09Vh\e1'"M'$S\e0JQh\e1'`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0$W\e1M\e(B \e0\e,T7h\e1R9(P\e05i\e1M':M!\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1(P\e(B
-\e,T`\e0BW\e1M9\e(B. \e,T`CR`\e0CU\e1B!\e0EQ\e1!I3P`\e0*h\e19\e09Ui\e1\e0Gh\e1R\e(B "\e0\e,TMh\e1R9MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1(R!`$\e0CWh\e1M';ERB7R'\e(B" (\e,Tc9!C\e03U\e1\e09Ui\e1\e(B, \e,TMR\e0Cl\e1\e(B
-\e0\e,T!T\e1G`A9\e05l\e1\e0!g\e1\e0$W\e1M\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B). \e,TK\e0EQ\e1'(R!\e07Uh\e1\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B
+ลักษณะพิเศษข้อหนึ่งของคำสั่งเยือนแฟ้มข้อมูลคือ ท่านจะต้องบอกชื่อของแฟ้มข้อมูลที่จะ
+เยือน. เราเรียกลักษณะเช่นนี้ว่า "อ่านอาร์กิวเมนต์จากเครื่องปลายทาง" (ในกรณีนี้, อาร์
+กิวเมนต์ก็คือชื่อของแฟ้มข้อมูล). หลังจากที่ท่านป้อนคำสั่ง
 
        C-x C-f   Find a file
 
-\e0\e,TMU\e1aA!\e0Jl\e1(P6RA\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B. \e0\e,T*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9\e0;i\e1M9`\e0"i\e1Rd;(P;CR!/\e07Uh\e1:CC\e07Q\e14\e0Eh\e1R'"M'K\e09i\e1R(M\e(B.
-\e,T:CC\e07Q\e14\e0Eh\e1R'"M'K\e09i\e1R(M`\e0CU\e1B!\e0Gh\e1R\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B (minibuffer) \e,T`\e0AWh\e1M\e06Y\e1!c\e0*i\e1'R9c9\e0EQ\e1!I3P\e09Ui\e1\e(B.
-\e0\e,T7h\e1R9JRARC6c\e0*i\e1$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1c9!RCa\e0!i\e1d";C!\e05T\e1"M'\e0MU\e1aA!\e0Jl\e1a\e0!i\e1d"\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B.
+อีแมกส์จะถามชื่อแฟ้มข้อมูล. ชื่อแฟ้มข้อมูลที่ท่านป้อนเข้าไปจะปรากฏที่บรรทัดล่างของหน้าจอ.
+บรรทัดล่างของหน้าจอเรียกว่ามินิบัฟเฟอร์ (minibuffer) เมื่อถูกใช้งานในลักษณะนี้.
+ท่านสามารถใช้คำสั่งที่ใช้ในการแก้ไขปรกติของอีแมกส์แก้ไขชื่อของแฟ้มข้อมูล.
 
-\e,T"3P\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'\e0;i\e1M9\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (\e,TK\e0CW\e1M\e0"i\e1M\e0AY\e1Ec4f\e(B \e,Tc9\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e09Ui\e1\e(B), \e0\e,T7h\e1R9JRARC6\e(B
-\e,TB!`\e0ET\e1!$S\e0JQh\e1'\e04i\e1GB!RCc\e0*i\e1$S\e0JQh\e1'\e(B C-g.
+ขณะที่ท่านกำลังป้อนชื่อแฟ้มข้อมูล (หรือข้อมูลใดๆ ในมินิบัฟเฟอร์นี้), ท่านสามารถ
+ยกเลิกคำสั่งด้วยการใช้คำสั่ง C-g.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x C-f, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-g. \e0\e,T9Uh\e1`\e0;g\e19!RCB!`\e0ET\e1!\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B, \e,TaEP\e(B
-   \e,TB!`\e0ET\e1!$S\e0JQh\e1'\e(B C-x C-f \e0\e,T7Uh\e1!S\e0EQ\e1'c\e0*i\e1\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1M\e0BYh\e1\e(B. \e,T<E\e0EQ\e1>\e08l\e1\e0$W\e1M\e07h\e1R9(Pd\e0Ah\e1d\e04i\e1`\e0BW\e1M9\e(B
-   \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1Ec4f\e(B.
+>> ป้อนคำสั่ง C-x C-f, แล้วป้อนคำสั่ง C-g. นี่เป็นการยกเลิกมินิบัฟเฟอร์, และ
+   ยกเลิกคำสั่ง C-x C-f ที่กำลังใช้มินิบัฟเฟอร์อยู่. ผลลัพธ์คือท่านจะไม่ได้เยือน
+   แฟ้มข้อมูลใดๆ.
 
-\e,T`\e0AWh\e1M\e07h\e1R9d\e04i\e1\e0;i\e1M9\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E`J\e0Cg\e1(a\e0Ei\e1G\e(B, \e,T!4\e0;Xh\e1A\e(B <Return> \e,T`\e0>Wh\e1M\e07Uh\e1(P\e0JTi\e19\e0JX\e14$S\e0JQh\e1'\e(B. \e,Ta\e0Ei\e1G$S\e0JQh\e1'\e(B
-C-x C-f \e0\e,T!g\e1(P7S'R9\e(B, \e,TaEP(P`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9d\e04i\e1`\e0EW\e1M!d\e0Gi\e1\e(B. \e0\e,TAT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1(P\e(B
-\e,TKRBd;`\e0AWh\e1M`J\e0Cg\e1(\e0JTi\e19$S\e0JQh\e1'\e(B C-x C-f.
+เมื่อท่านได้ป้อนชื่อแฟ้มข้อมูลเสร็จแล้ว, กดปุ่ม <Return> เพื่อที่จะสิ้นสุดคำสั่ง. แล้วคำสั่ง
+C-x C-f ก็จะทำงาน, และจะเยือนแฟ้มข้อมูลที่ท่านได้เลือกไว้. มินิบัฟเฟอร์จะ
+หายไปเมื่อเสร็จสิ้นคำสั่ง C-x C-f.
 
-\e,TK\e0EQ\e1'(R!\e09Qi\e19d\e0Ah\e19R9`\e09Wi\e1MKR"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0!g\e1(P;CR!/:9K\e09i\e1R(M\e(B, \e,TaEP\e07h\e1R9\e0!g\e1(PJRARC6a\e0!i\e1d"\e(B
-\e,T`\e09Wi\e1MKRd\e04i\e1\e(B. \e,T`\e0AWh\e1M\e07h\e1R9\e05i\e1M'!RC(Pa\e0!i\e1d"\e0"i\e1M$GRAM\e0Bh\e1R'6RGC\e(B, \e0\e,T!g\e1c\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B
+หลังจากนั้นไม่นานเนื้อหาของแฟ้มข้อมูลก็จะปรากฏบนหน้าจอ, และท่านก็จะสามารถแก้ไข
+เนื้อหาได้. เมื่อท่านต้องการจะแก้ไขข้อความอย่างถาวร, ก็ให้ใช้คำสั่ง
 
        C-x C-s   Save the file
 
-\e,T$S\e0JQh\e1'\e09Ui\e1(P7SJS`9R\e0"i\e1M$GRA\e07Uh\e1M\e0BYh\e1c9\e0MU\e1aA!\e0Jl\e1`\e0"i\e1Rd;`\e0!g\e1:d\e0Gi\e1c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B. \e,Tc9!RC!CP7S`\e0*h\e19\e09Ui\e1c9\e(B
-\e,T$\e0CQi\e1'aC!\e0JX\e14\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(P`;\e0EUh\e1B9\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05i\e19)\e0:Q\e1:`\e0>Wh\e1M\e0Gh\e1R(Pd\e04i\e1$'d\e0Gi\e1\e(B. \e0\e,T*Wh\e1McK\e0Ah\e1\e09Qi\e19\e05Qi\e1'\e0"Vi\e19b4B\e(B
-\e,T!RC`\e05T\e1A\e(B "~" \e,T`\e0"i\e1Rd;\e07i\e1RB\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05i\e19)\e0:Q\e1:\e(B.
+คำสั่งนี้จะทำสำเนาข้อความที่อยู่ในอีแมกส์เข้าไปเก็บไว้ในแฟ้มข้อมูล. ในการกระทำเช่นนี้ใน
+ครั้งแรกสุด, อีแมกส์จะเปลี่ยนชื่อแฟ้มข้อมูลต้นฉบับเพื่อว่าจะได้คงไว้. ชื่อใหม่นั้นตั้งขึ้นโดย
+การเติม "~" เข้าไปท้ายชื่อแฟ้มข้อมูลต้นฉบับ.
 
-\e,T`\e0AWh\e1M7S!RC\e0(Q\e14`\e0!g\e1:`\e0CU\e1B:\e0Ci\e1MBa\e0Ei\e1G\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(P\e0>T\e1A\e0>l\e1\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e(B. \e0\e,T7h\e1R9$GC(P\e0(Q\e14`\e0!g\e1:\e0"i\e1M\e0AY\e1E\e(B
-\e0\e,T:h\e1MBf\e(B, \e,T`\e0>Wh\e1M\e0Gh\e1R\e07h\e1R9(Pd\e04i\e1d\e0Ah\e1\e05i\e1M'`\e0JU\e1B'R9d;AR!\e09Q\e1!KR!CP::`\e0!T\e14\e0"Q\e14\e0"i\e1M'\e(B.
+เมื่อทำการจัดเก็บเรียบร้อยแล้ว, อีแมกส์จะพิมพ์ชื่อแฟ้มข้อมูลนั้น. ท่านควรจะจัดเก็บข้อมูล
+บ่อยๆ, เพื่อว่าท่านจะได้ไม่ต้องเสียงานไปมากนักหากระบบเกิดขัดข้อง.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x C-s, \e,T`\e0>Wh\e1M\e0(Q\e14`\e0!g\e1:JS`9R\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1"M'\e07h\e1R9\e(B.
-   \e,T(P;CR!/\e(B "Write ...TUTORIAL.th" \e0\e,T7Uh\e1:CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'K\e09i\e1R(M\e(B.
+>> ป้อนคำสั่ง C-x C-s, เพื่อจัดเก็บสำเนาคู่มือการใช้ของท่าน.
+   จะปรากฏ "Write ...TUTORIAL.th" ที่บรรทัดล่างสุดของหน้าจอ.
 
-\e0\e,T7h\e1R9JRARC6(P`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0AU\e1M\e0BYh\e1a\e0Ei\e1G\e(B, \e,T`\e0>Wh\e1M\e07Uh\e1(P\e04Y\e1K\e0CW\e1Ma\e0!i\e1d"\e(B. \e0\e,T7h\e1R9JRARC6(P`\e0BW\e1M9\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0BQ\e1'd\e0Ah\e1;CR!/\e0!g\e1d\e04i\e1\e(B. \e0\e,T9Uh\e1`\e0;g\e19!RCJ\e0Ci\e1R'a\e0?i\e1A\e0"i\e1M\e0AY\e1EcK\e0Ah\e1"M'\e0MU\e1aA!\e0Jl\e1\e(B: \e,T`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B,
-\e0\e,T+Vh\e1'(P`\e0CTh\e1A\e05i\e19\e04i\e1GBK\e09i\e1R(M\e0Gh\e1R'`;\e0Eh\e1R\e(B, \e,Ta\e0Ei\e1G7S!RCa7C!\e0"i\e1M$GRA`\e0>Wh\e1M\e07Uh\e1(PJ\e0Ci\e1R'`\e0;g\e19a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05h\e1Md;\e(B.
-\e,T`\e0AWh\e1M\e07h\e1R9\e0JQh\e1'c\e0Ki\e1\e(B "\e0\e,T(Q\e14`\e0!g\e1:\e(B (save)" \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B, \e0\e,TMU\e1aA!\e0Jl\e1\e0(V\e1'(PJ\e0Ci\e1R'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e04i\e1GB\e0"i\e1M$GRA\e07Uh\e1\e(B
-\e0\e,T7h\e1R9d\e04i\e1\e0;i\e1M9`\e0"i\e1Rd;\e(B. \e,T(R!\e09Ui\e1d;\e(B, \e0\e,T7h\e1R9JRARC6(P\e05Q\e14\e0JT\e19c(EM'a\e0!i\e1d"a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0AU\e1M\e0BYh\e1a\e0Ei\e1Gd\e04i\e1\e(B.
+ท่านสามารถจะเยือนแฟ้มข้อมูลที่มีอยู่แล้ว, เพื่อที่จะดูหรือแก้ไข. ท่านสามารถจะเยือน
+แฟ้มข้อมูลที่ยังไม่ปรากฏก็ได้. นี่เป็นการสร้างแฟ้มข้อมูลใหม่ของอีแมกส์: เยือนแฟ้มข้อมูล,
+ซึ่งจะเริ่มต้นด้วยหน้าจอว่างเปล่า, แล้วทำการแทรกข้อความเพื่อที่จะสร้างเป็นแฟ้มข้อมูลต่อไป.
+เมื่อท่านสั่งให้ "จัดเก็บ (save)" แฟ้มข้อมูล, อีแมกส์จึงจะสร้างแฟ้มข้อมูลด้วยข้อความที่
+ท่านได้ป้อนเข้าไป. จากนี้ไป, ท่านสามารถจะตัดสินใจลองแก้ไขแฟ้มข้อมูลที่มีอยู่แล้วได้.
 
 
-* \e0\e,T:Q\e1?`?M\e0Cl\e1\e(B (buffer)
+* บัฟเฟอร์ (buffer)
 -----------------
 
-\e0\e,T6i\e1R\e07h\e1R9`\e0BW\e1M9\e0MU\e1!a\e0?i\e1A\e0"i\e1M\e0AY\e1Eb4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-x C-f, \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!(P\e0BQ\e1'$'M\e0BYh\e1c9\e0MU\e1aA!\e0Jl\e1\e(B. \e0\e,T7h\e1R9\e(B
-\e,TJRARC6(PJ\e0EQ\e1:!\e0EQ\e1:d;d\e04i\e1\e0MU\e1!b4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-x C-f. \e0\e,TGT\e1\e08U\e1\e09Ui\e1(P7Sc\e0Ki\e1\e07h\e1R9JRARC6`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
-\e,T@RBc9\e0MU\e1aA!\e0Jl\e1d\e04i\e1(S9G9K\e09Vh\e1'\e(B.
+ถ้าท่านเยือนอีกแฟ้มข้อมูลโดยใช้คำสั่ง C-x C-f, แฟ้มข้อมูลแรกจะยังคงอยู่ในอีแมกส์. ท่าน
+สามารถจะสลับกลับไปได้อีกโดยใช้คำสั่ง C-x C-f. วิธีนี้จะทำให้ท่านสามารถเยือนแฟ้มข้อมูล
+ภายในอีแมกส์ได้จำนวนหนึ่ง.
 
->> \e,TJ\e0Ci\e1R'a\e0?i\e1A\e0"i\e1M\e0AY\e1EaEPc\e0Ki\e1\e0*Wh\e1M\e0Gh\e1R\e(B "foo" \e,Tb4B!RC\e0;i\e1M9$S\e0JQh\e1'\e(B C-x C-f foo <Return>.
-   \e,Ta\e0Ei\e1G\e0;i\e1M9\e0"i\e1M$GRA\e(B, \e,Ta\e0!i\e1d"\e(B, \e,TaEP\e0(Q\e14`\e0!g\e1:\e(B "foo" \e,Tb4B!RC\e0;i\e1M9$S\e0JQh\e1'\e(B C-x C-s.
-   \e0\e,TJX\e14\e07i\e1RB\e(B, \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x C-f TUTORIAL <Return> \e,T`\e0>Wh\e1M(Pd\e04i\e1\e0Bi\e1M9!\e0EQ\e1:AR\e07Uh\e1\e0"i\e1M$GRA\e(B
-   \e,T"M'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e(B.
+>> สร้างแฟ้มข้อมูลและให้ชื่อว่า "foo" โดยการป้อนคำสั่ง C-x C-f foo <Return>.
+   แล้วป้อนข้อความ, แก้ไข, และจัดเก็บ "foo" โดยการป้อนคำสั่ง C-x C-s.
+   สุดท้าย, ป้อนคำสั่ง C-x C-f TUTORIAL <Return> เพื่อจะได้ย้อนกลับมาที่ข้อความ
+   ของคู่มือการใช้.
 
-\e0\e,TMU\e1aA!\e0Jl\e1`\e0!g\e1:\e0"i\e1M$GRA"M'a\e05h\e1EPa\e0?i\e1A\e0"i\e1M\e0AY\e1E@RBc9\e0JTh\e1'f\e(B (object) \e,TK\e09Vh\e1'\e(B, \e0\e,T+Vh\e1'`\e0CU\e1B!\e0Gh\e1R\e(B "\e0\e,T:Q\e1?`?M\e0Cl\e1\e(B
-(buffer)". \e,T!RC`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E`\e0;g\e19!RCJ\e0Ci\e1R'\e0:Q\e1?`?M\e0Cl\e1cK\e0Ah\e1@RBc9\e0MU\e1aA!\e0Jl\e1\e(B. \e,Tc9!RC\e07Uh\e1(P\e04Y\e1\e(B
-\e,TCRB!RC"M'\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e0AU\e1M\e0BYh\e1c9\e0MU\e1aA!\e0Jl\e1\e09Qi\e19\e(B, \e,Tc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B:
+อีแมกส์เก็บข้อความของแต่ละแฟ้มข้อมูลภายในสิ่งๆ (object) หนึ่ง, ซึ่งเรียกว่า "บัฟเฟอร์
+(buffer)". การเยือนแฟ้มข้อมูลเป็นการสร้างบัฟเฟอร์ใหม่ภายในอีแมกส์. ในการที่จะดู
+รายการของบัฟเฟอร์ที่มีอยู่ในอีแมกส์นั้น, ให้ป้อนคำสั่ง:
 
        C-x C-b   List buffers
 
->> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-x C-b \e0\e,T4Y\e1\e(B.
+>> ลองป้อนคำสั่ง C-x C-b ดู.
 
-\e0\e,T4Y\e1\e0Gh\e1Ra\e05h\e1EP\e0:Q\e1?`?M\e0Cl\e1\e0AU\e1\e0*Wh\e1M\e0Gh\e1RMPdC\e(B, \e,TaEP:R'\e0MQ\e19\e0!g\e1`\e0;g\e19\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0AU\e1`\e09Wi\e1MKR\e09Qi\e19f\e(B \e,TM\e0BYh\e1\e(B. \e,T:R'\e(B
-\e0\e,T:Q\e1?`?M\e0Cl\e1d\e0Ah\e1d\e04i\e1`\e0!Uh\e1BG\e0"i\e1M'\e0!Q\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e0\e,T:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e0AU\e1\e0*Wh\e1M\e0Gh\e1R\e(B "*Buffer List*"
-\e,Td\e0Ah\e1\e0AU\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1Ec4f\e(B \e0\e,T7Qi\e1'\e0JTi\e19\e(B. \e0\e,T9Uh\e1`\e0;g\e19\e0:Q\e1?`?M\e0Cl\e1\e0+Vh\e1':CC\e0(X\e1`\e09Wi\e1MKR"M'CRB!RC"M'\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e06Y\e1!J\e0Ci\e1R'\e(B
-\e0\e,T4i\e1GB$S\e0JQh\e1'\e(B C-x C-b. \e0\e,T"i\e1M$GRAc4f\e(B \e0\e,T7Uh\e1\e07h\e1R9`\e0Kg\e19:9K\e09i\e1R(M"M'\e0MU\e1aA!\e0Jl\e1(P;CR!/M\e0BYh\e1`\e0;g\e19\e0Jh\e1G9K\e09Vh\e1'\e(B
-\e,T"M'\e0:Q\e1?`?M\e0Cl\e1c4\e0:Q\e1?`?M\e0Cl\e1K\e09Vh\e1'`JAM\e(B.
+ดูว่าแต่ละบัฟเฟอร์มีชื่อว่าอะไร, และบางอันก็เป็นชื่อของแฟ้มข้อมูลที่มีเนื้อหานั้นๆ อยู่. บาง
+บัฟเฟอร์ไม่ได้เกี่ยวข้องกับแฟ้มข้อมูล. ตัวอย่างเช่น, บัฟเฟอร์ที่มีชื่อว่า "*Buffer List*"
+ไม่มีแฟ้มข้อมูลใดๆ ทั้งสิ้น. นี่เป็นบัฟเฟอร์ซึ่งบรรจุเนื้อหาของรายการของบัฟเฟอร์ที่ถูกสร้าง
+ด้วยคำสั่ง C-x C-b. ข้อความใดๆ ที่ท่านเห็นบนหน้าจอของอีแมกส์จะปรากฏอยู่เป็นส่วนหนึ่ง
+ของบัฟเฟอร์ใดบัฟเฟอร์หนึ่งเสมอ.
 
->> \e,TEM'c\e0*i\e1$S\e0JQh\e1'\e(B C-x 1 \e,T`\e0>Wh\e1M\e07Uh\e1(P!S\e0(Q\e14CRB!RC"M'\e0:Q\e1?`?M\e0Cl\e1\e(B.
+>> ลองใช้คำสั่ง C-x 1 เพื่อที่จะกำจัดรายการของบัฟเฟอร์.
 
-\e0\e,T6i\e1R\e07h\e1R9a\e0!i\e1d"\e0"i\e1M$GRAc9a\e0?i\e1A\e0"i\e1M\e0AY\e1EK\e09Vh\e1'\e(B, \e,Ta\e0Ei\e1G`\e0BW\e1M9\e0MU\e1!a\e0?i\e1A\e0"i\e1M\e0AY\e1EK\e09Vh\e1'\e(B, \e0\e,TMU\e1aA!\e0Jl\e1\e0BQ\e1'd\e0Ah\e1d\e04i\e1\e0(Q\e14`\e0!g\e1:\e(B
-\e0\e,T"i\e1M$GRA"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!\e(B. \e0\e,T"i\e1M$GRA\e07Uh\e1\e06Y\e1!a\e0!i\e1d"d;(P\e0BQ\e1'$'M\e0BYh\e1c9\e0MU\e1aA!\e0Jl\e1\e(B, \e,Tc9\e0:Q\e1?`?M\e0Cl\e1JSK\e0CQ\e1:\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e(B. \e,T!RCJ\e0Ci\e1R'K\e0CW\e1M!RCa\e0!i\e1d""M'\e0:Q\e1?`?M\e0Cl\e1JSK\e0CQ\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1JM'd\e0Ah\e1d\e04i\e1\e0AU\e1<E\e05h\e1M\e(B
-\e0\e,T:Q\e1?`?M\e0Cl\e1JSK\e0CQ\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1K\e09Vh\e1'\e(B. \e0\e,T9Uh\e1`\e0;g\e19\e0JTh\e1'\e07Uh\e1\e0AU\e1;CPbB*\e09l\e1AR!\e(B, \e,Ta\e05h\e1\e0!g\e1KARB$GRA\e0Gh\e1R(P\e05i\e1M'\e0AU\e1\e(B
-\e0\e,TGT\e1\e08U\e1!RC\e07Uh\e1\e04U\e1c9!RC\e0(Q\e14`\e0!g\e1:\e0:Q\e1?`?M\e0Cl\e1"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!\e(B. \e0\e,T9Uh\e1d\e0Ah\e1d\e04i\e1KARB$GRA\e0Gh\e1R(P\e05i\e1M'J\e0EQ\e1:!\e0EQ\e1:d;\e(B
-\e0\e,TBQ\e1'a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!\e04i\e1GB$S\e0JQh\e1'\e(B C-x C-f \e0\e,T!h\e1M9\e(B, \e,T`\e0>Wh\e1M\e07Uh\e1(Pd\e04i\e1c\e0*i\e1$S\e0JQh\e1'\e(B C-x C-s \e,Tc9!RC\e0(Q\e14`\e0!g\e1:\e(B.
-\e0\e,T4Q\e1'\e09Qi\e19`CR\e0(V\e1'`5\e0CU\e1BA$S\e0JQh\e1'\e(B
+ถ้าท่านแก้ไขข้อความในแฟ้มข้อมูลหนึ่ง, แล้วเยือนอีกแฟ้มข้อมูลหนึ่ง, อีแมกส์ยังไม่ได้จัดเก็บ
+ข้อความของแฟ้มข้อมูลแรก. ข้อความที่ถูกแก้ไขไปจะยังคงอยู่ในอีแมกส์, ในบัฟเฟอร์สำหรับ
+แฟ้มข้อมูลนั้น. การสร้างหรือการแก้ไขของบัฟเฟอร์สำหรับแฟ้มข้อมูลที่สองไม่ได้มีผลต่อ
+บัฟเฟอร์สำหรับแฟ้มข้อมูลที่หนึ่ง. นี่เป็นสิ่งที่มีประโยชน์มาก, แต่ก็หมายความว่าจะต้องมี
+วิธีการที่ดีในการจัดเก็บบัฟเฟอร์ของแฟ้มข้อมูลแรก. นี่ไม่ได้หมายความว่าจะต้องสลับกลับไป
+ยังแฟ้มข้อมูลแรกด้วยคำสั่ง C-x C-f ก่อน, เพื่อที่จะได้ใช้คำสั่ง C-x C-s ในการจัดเก็บ.
+ดังนั้นเราจึงเตรียมคำสั่ง
 
        C-x s     Save some buffers
 
-\e,T$S\e0JQh\e1'\e(B C-x s \e,T(P6RA\e07h\e1R9`\e0!Uh\e1BG\e0!Q\e1:\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1d\e04i\e1\e0CQ\e1:!RCa\e0!i\e1d"a\e05h\e1\e0BQ\e1'd\e0Ah\e1d\e04i\e1\e0CQ\e1:!RC\e0(Q\e14`\e0!g\e1:\e(B. \e0\e,TMU\e1\e(B
-\e,TaA!\e0Jl\e1(P6RA\e07h\e1R9\e(B, \e,TJSK\e0CQ\e1:a\e05h\e1EP\e0:Q\e1?`?M\e0Cl\e1\e04Q\e1'!\e0Eh\e1RG\e(B, \e0\e,TGh\e1R(P\e0(Q\e14`\e0!g\e1:K\e0CW\e1Md\e0Ah\e1\e(B.
+คำสั่ง C-x s จะถามท่านเกี่ยวกับบัฟเฟอร์ที่ได้รับการแก้ไขแต่ยังไม่ได้รับการจัดเก็บ. อี
+แมกส์จะถามท่าน, สำหรับแต่ละบัฟเฟอร์ดังกล่าว, ว่าจะจัดเก็บหรือไม่.
 
->> \e,Ta7C!\e0"i\e1M$GRA\e0JQ\e1!K\e09Vh\e1':CC\e07Q\e14\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-x s.
-   \e0\e,TMU\e1aA!\e0Jl\e1(P6RA\e07h\e1R9\e0Gh\e1R(P\e0(Q\e14`\e0!g\e1:\e0:Q\e1?`?M\e0Cl\e1\e0*Wh\e1M\e(B TUTORIAL \e,TdKA\e(B.
-   \e,T5M:\e0Gh\e1Rc\e0*h\e1b4B!RC\e0;i\e1M9\e(B "y".
+>> แทรกข้อความสักหนึ่งบรรทัด, แล้วป้อนคำสั่ง C-x s.
+   อีแมกส์จะถามท่านว่าจะจัดเก็บบัฟเฟอร์ชื่อ TUTORIAL ไหม.
+   ตอบว่าใช่โดยการป้อน "y".
 
 
-* \e,T!RC`\e0>Th\e1A\e0*X\e14$S\e0JQh\e1'\e(B
+* การเพิ่มชุดคำสั่ง
 --------------
 
-\e0\e,TAU\e1$S\e0JQh\e1'"M'\e0MU\e1aA!\e0Jl\e1M\e0BYh\e1\e0MU\e1!AR!ARB(9`\e0!T\e19!\e0Gh\e1R\e07Uh\e1(PJRARC6!S\e0!Q\e1:d\e04i\e1\e04i\e1GB\e0MQ\e1!"CP;CPJA\e0!Q\e1:\e0MQ\e1!"CP\e(B
-\e,T$M9b7CE\e(B (control character) \e,TaEPM\e0@T\e1\e0MQ\e1!"CP\e(B (meta character). \e0\e,TMU\e1aA!\e0Jl\e1c\e0*i\e1!RC\e(B
-\e,T;CPJA\e0!Q\e1:$S\e0JQh\e1'`J\e0CT\e1A\e(B (eXtend command). \e,T!RC`J\e0CT\e1A\e09Ui\e1`\e0;g\e19d;d\e04i\e1JM'\e0EQ\e1!I3P\e(B:
-
-       C-x     \e,T!RC`J\e0CT\e1A\e0MQ\e1!"CP\e(B (Character eXtend). \e,T5RA\e04i\e1GBK\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B.
-       M-x     \e,T!RC`J\e0CT\e1A\e04i\e1GB\e0*Wh\e1M$S\e0JQh\e1'\e(B (Named command eXtend). \e,T5RA\e04i\e1GB\e0*Wh\e1M`\e05g\e1A\e(B.
-
-\e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1b4B\e07Qh\e1Gd;a\e0Ei\e1G(P\e0AU\e1;CPbB*\e09l\e1\e(B, \e,Ta\e05h\e1\e0AQ\e1!(P\e0AU\e1bM!RJc\e0*i\e1\e09i\e1MB!\e0Gh\e1R$S\e0JQh\e1'\e05h\e1R'f\e(B \e0\e,T7Uh\e1\e07h\e1R9d\e04i\e1\e(B
-\e,T`\e0CU\e1B9\e0CYi\e1d;a\e0Ei\e1G\e(B. \e0\e,T7h\e1R9d\e04i\e1>:d;a\e0Ei\e1GJM'$S\e0JQh\e1'\e(B: \e,T$S\e0JQh\e1'JSK\e0CQ\e1:!RC\e0(Q\e14!RC\e0!Q\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B C-x C-f
-\e,TJSK\e0CQ\e1:!RC`\e0BW\e1M9\e(B (Find) \e,TaEP\e(B C-x C-s \e,TJSK\e0CQ\e1:!RC\e0(Q\e14`\e0!g\e1:\e(B (Save). \e0\e,TMU\e1!\e05Q\e1GM\e0Bh\e1R'K\e09Vh\e1'\e0!g\e1\e(B
-\e0\e,T$W\e1M$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1c9!RC`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B--\e,T$S\e0JQh\e1'\e(B C-x C-c. (\e,Td\e0Ah\e1\e05i\e1M'`\e0;g\e19\e0Kh\e1G'\e0Gh\e1R\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9d\e04i\e1\e(B
-\e,Ta\e0!i\e1d"d;(P\e0JY\e1-KRB\e(B; \e,T$S\e0JQh\e1'\e(B C-x C-c \e,T(P`J9Mc\e0Ki\e1\e0(Q\e14`\e0!g\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e06Y\e1!a\e0!i\e1d"d;\e0!h\e1M9\e07Uh\e1(P\e0JTi\e19\e0JX\e14\e(B
-\e0\e,TMU\e1aA!\e0Jl\e1\e(B.)
-
-\e,T$S\e0JQh\e1'\e(B C-z \e,T`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1c9!RCMM!(R!\e0MU\e1aA!\e0Jl\e1`\e0;g\e19!RC\e0*Qh\e1G$CRG\e(B *temporarily*--\e,T)P\e09Qi\e19\e(B
-\e0\e,T7h\e1R9JRARC6!\e0EQ\e1:d;\e0JYh\e1\e0MU\e1aA!\e0Jl\e1d\e04i\e1\e0MU\e1!K\e0EQ\e1'(R!\e09Qi\e19\e(B.
-
-\e,TJSK\e0CQ\e1:CP::\e07Uh\e1M\e09X\e1-R5c\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B, C-z "suspends" \e0\e,TMU\e1aA!\e0Jl\e1\e(B; \e0\e,T9Qh\e19\e0$W\e1M!RC!\e0EQ\e1:d;\e0BQ\e1'`*E\e0El\e1\e(B
-(shell) \e,Tb4Bd\e0Ah\e1d\e04i\e17SERB\e0MU\e1aA!\e0Jl\e1\e(B. \e,Tc9`*E\e0El\e1\e07Qh\e1Gd;\e(B, \e0\e,T7h\e1R9JRARC6\e0CU\e1\e0+Y\e1A\e(B (resume) \e0\e,TMU\e1aA!\e0Jl\e1\e(B
-\e,Td\e04i\e1\e04i\e1GB$S\e0JQh\e1'\e(B `fg' \e,TK\e0CW\e1M\e04i\e1GB$S\e0JQh\e1'\e(B `%emacs'.
-
-\e,TJSK\e0CQ\e1:CP::\e07Uh\e1d\e0Ah\e1\e0AU\e1\e0?Q\e1'\e0!l\e1\e0*Q\e19\e(B "suspend", \e,T$S\e0JQh\e1'\e(B C-z \e,T(PJ\e0Ci\e1R'\e0+Q\e1:`*E\e0El\e1\e(B (subshell)
-\e,T@RBc\e05i\e1\e0MU\e1aA!\e0Jl\e1`\e0>Wh\e1Mc\e0Ki\e1\e07h\e1R9\e0AU\e1bM!RJ4S`\e09T\e19'R9b;Ca!CA\e0MWh\e19\e0!h\e1M9a\e0Ei\e1G\e0$h\e1MB!\e0EQ\e1:AR\e0BQ\e1'\e0MU\e1aA!\e0Jl\e1\e0MU\e1!$\e0CQi\e1'\e(B;
-\e0\e,T+Vh\e1'd\e0Ah\e1c\e0*h\e1!RC\e(B "\e,TMM!(R!\e(B (exit)" \e0\e,TMU\e1aA!\e0Jl\e1(\e0CT\e1'\e(B. \e,Tc9!C\e03U\e1\e09Ui\e1\e(B, \e,T$S\e0JQh\e1'`*E\e0El\e1\e(B `exit' \e,T`\e0;g\e19$S\e0JQh\e1'\e(B
-\e,T;C!\e05T\e1\e07Uh\e1c\e0*i\e1c9!RC!\e0EQ\e1:d;\e0BQ\e1'\e0MU\e1aA!\e0Jl\e1(R!\e0+Q\e1:`*E\e0El\e1\e(B.
-
-\e,Tc\e0*i\e1$S\e0JQh\e1'\e(B C-x C-c \e0\e,T!g\e1\e05h\e1M`\e0AWh\e1M\e07h\e1R9\e05i\e1M'!RC(P`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1(\e0CT\e1'f\e(B. \e0\e,TGT\e1\e08U\e1\e09Ui\e1`\e0;g\e19\e0GT\e1\e08U\e1\e07Uh\e1\e06Y\e1!\e05i\e1M'c9\e(B
-\e,T!RC\e07Uh\e1(P`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B, \e,Td\e0Ah\e1\e0Gh\e1R\e0MU\e1aA!\e0Jl\e1\e09Qi\e19(P\e06Y\e1!`\e0CU\e1B!c\e0*i\e1(R!b;Ca!CA\e0(Q\e14!RC`AE\e0El\e1\e(B (mail
-handling programs) \e,TK\e0CW\e1Mb;Ca!CAMCC6;CPbB*\e09l\e1\e(B (utility programs) \e0\e,T5h\e1R'f\e(B,
-\e,T`\e09Wh\e1M'(R!\e0Gh\e1Rb;Ca!CA`K\e0Eh\e1R\e09Ui\e1d\e0Ah\e1\e0AU\e1\e0GT\e1\e08U\e1!RC\e0(Q\e14!RC\e0!Q\e1:\e0MU\e1aA!\e0Jl\e1d\e04i\e1b4B5C'\e(B. \e,Tc9J@R>!RC7S'R9\e(B
-\e,T;C!\e05T\e1\e(B, \e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1d\e04i\e1\e05i\e1M'!RC(P`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1(\e0CT\e1'f\e(B, \e0\e,T7h\e1R9\e0!g\e1$GC(P\e(B suspend \e,Tb4B!RCc\e0*i\e1\e(B
-\e,T$S\e0JQh\e1'\e(B C-z \e,Ta79!RC`\e0ET\e1!c\e0*i\e1d;`EB\e(B.
-
-\e0\e,TBQ\e1'\e0AU\e1$S\e0JQh\e1'\e07Uh\e1M\e0BYh\e1c9\e0*X\e14$S\e0JQh\e1'\e(B C-x \e0\e,TMU\e1!AR!\e(B. \e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e19CRB!RC$S\e0JQh\e1'\e07Uh\e1\e07h\e1R9d\e04i\e1`\e0CU\e1B9\e0CYi\e1d;a\e0Ei\e1G\e(B:
-
-       C-x C-f         \e,T`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (Find file).
-       C-x C-s         \e0\e,T(Q\e14`\e0!g\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (Save file).
-       C-x C-b         \e,T7SCRB!RC\e0:Q\e1?`?M\e0Cl\e1\e(B (List buffers).
-       C-x C-c         \e,T`\e0ET\e1!c\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B (Quit Emacs).
-       C-x 1           \e,TE:K\e09i\e1R(M\e07Qi\e1'KA4b4B$'M\e0BYh\e1d\e0Gi\e1K\e09Vh\e1'K\e09i\e1R(M\e(B
+มีคำสั่งของอีแมกส์อยู่อีกมากมายจนเกินกว่าที่จะสามารถกำกับได้ด้วยอักขระประสมกับอักขระ
+คอนโทรล (control character) และอภิอักขระ (meta character). อีแมกส์ใช้การ
+ประสมกับคำสั่งเสริม (eXtend command). การเสริมนี้เป็นไปได้สองลักษณะ:
+
+       C-x     การเสริมอักขระ (Character eXtend). ตามด้วยหนึ่งตัวอักษร.
+       M-x     การเสริมด้วยชื่อคำสั่ง (Named command eXtend). ตามด้วยชื่อเต็ม.
+
+คำสั่งเหล่านี้โดยทั่วไปแล้วจะมีประโยชน์, แต่มักจะมีโอกาสใช้น้อยกว่าคำสั่งต่างๆ ที่ท่านได้
+เรียนรู้ไปแล้ว. ท่านได้พบไปแล้วสองคำสั่ง: คำสั่งสำหรับการจัดการกับแฟ้มข้อมูล C-x C-f
+สำหรับการเยือน (Find) และ C-x C-s สำหรับการจัดเก็บ (Save). อีกตัวอย่างหนึ่งก็
+คือคำสั่งที่ใช้ในการเลิกใช้อีแมกส์--คำสั่ง C-x C-c. (ไม่ต้องเป็นห่วงว่าข้อมูลที่ท่านได้
+แก้ไขไปจะสูญหาย; คำสั่ง C-x C-c จะเสนอให้จัดเก็บแฟ้มข้อมูลที่ถูกแก้ไขไปก่อนที่จะสิ้นสุด
+อีแมกส์.)
+
+คำสั่ง C-z เป็นคำสั่งที่ใช้ในการออกจากอีแมกส์เป็นการชั่วคราว *temporarily*--ฉะนั้น
+ท่านสามารถกลับไปสู่อีแมกส์ได้อีกหลังจากนั้น.
+
+สำหรับระบบที่อนุญาตให้ใช้คำสั่ง, C-z "suspends" อีแมกส์; นั่นคือการกลับไปยังเชลล์
+(shell) โดยไม่ได้ทำลายอีแมกส์. ในเชลล์ทั่วไป, ท่านสามารถรีซูม (resume) อีแมกส์
+ได้ด้วยคำสั่ง `fg' หรือด้วยคำสั่ง `%emacs'.
+
+สำหรับระบบที่ไม่มีฟังก์ชัน "suspend", คำสั่ง C-z จะสร้างซับเชลล์ (subshell)
+ภายใต้อีแมกส์เพื่อให้ท่านมีโอกาสดำเนินงานโปรแกรมอื่นก่อนแล้วค่อยกลับมายังอีแมกส์อีกครั้ง;
+ซึ่งไม่ใช่การ "ออกจาก (exit)" อีแมกส์จริง. ในกรณีนี้, คำสั่งเชลล์ `exit' เป็นคำสั่ง
+ปรกติที่ใช้ในการกลับไปยังอีแมกส์จากซับเชลล์.
+
+ใช้คำสั่ง C-x C-c ก็ต่อเมื่อท่านต้องการจะเลิกใช้อีแมกส์จริงๆ. วิธีนี้เป็นวิธีที่ถูกต้องใน
+การที่จะเลิกใช้อีแมกส์, ไม่ว่าอีแมกส์นั้นจะถูกเรียกใช้จากโปรแกรมจัดการเมลล์ (mail
+handling programs) หรือโปรแกรมอรรถประโยชน์ (utility programs) ต่างๆ,
+เนื่องจากว่าโปรแกรมเหล่านี้ไม่มีวิธีการจัดการกับอีแมกส์ได้โดยตรง. ในสภาพการทำงาน
+ปรกติ, ถ้าท่านไม่ได้ต้องการจะเลิกใช้อีแมกส์จริงๆ, ท่านก็ควรจะ suspend โดยการใช้
+คำสั่ง C-z แทนการเลิกใช้ไปเลย.
+
+ยังมีคำสั่งที่อยู่ในชุดคำสั่ง C-x อีกมาก. ต่อไปนี้เป็นรายการคำสั่งที่ท่านได้เรียนรู้ไปแล้ว:
+
+       C-x C-f         เยือนแฟ้มข้อมูล (Find file).
+       C-x C-s         จัดเก็บแฟ้มข้อมูล (Save file).
+       C-x C-b         ทำรายการบัฟเฟอร์ (List buffers).
+       C-x C-c         เลิกใช้อีแมกส์ (Quit Emacs).
+       C-x 1           ลบหน้าจอทั้งหมดโดยคงอยู่ไว้หนึ่งหน้าจอ
                        (Delete all but one window).
-       C-x u           \e,T7S\e0Bi\e1M9\e(B (Undo).
+       C-x u           ทำย้อน (Undo).
 
-\e,T$S\e0JQh\e1'\e07Uh\e1\e0AU\e1\e0*Wh\e1M$S\e0JQh\e1'`J\e0CT\e1A\e09Ui\e1`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1d\e0Ah\e1\e0$h\e1MB\e0:h\e1MB\e09Q\e1!\e(B, \e,TK\e0CW\e1M`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1`)>RPc9:R'bKA4\e(B
-\e,T`\e07h\e1R\e09Qi\e19\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'K\e09Vh\e1'"M'$S\e0JQh\e1'\e09Ui\e1\e0$W\e1M$S\e0JQh\e1'`;\e0EUh\e1B9a79\e(B-\e,TJRB\e0MQ\e1!"CP\e(B (replace-string),
-\e0\e,T+Vh\e1'`\e0;g\e19!RC`;\e0EUh\e1B9a79JRB\e0MQ\e1!"CPK\e09Vh\e1'\e04i\e1GB\e0MU\e1!JRB\e0MQ\e1!"CPK\e09Vh\e1'\e07Qi\e1'KA4\e(B. \e,T`\e0AWh\e1M\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B M-x,
-\e0\e,TMU\e1aA!\e0Jl\e1aJ4'\e(B M-x \e0\e,T7Uh\e1:CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'K\e09i\e1R(M\e(B, \e,Tc9\e07Uh\e1\e09Ui\e1\e07h\e1R9(P\e05i\e1M'\e0>T\e1A\e0>l\e1\e0*Wh\e1M"M'$S\e0JQh\e1'\e(B; \e,Tc9!C\e03U\e1\e09Ui\e1\e(B
-\e0\e,T$W\e1M\e(B "replace-string". \e0\e,T7h\e1R9MR((P\e0>T\e1A\e0>l\e1\e(B "repl s<TAB>" \e,Ta\e0Ei\e1G\e0MU\e1aA!\e0Jl\e1(P`\e05T\e1A\e0*Wh\e1M$S\e0JQh\e1'c\e0Ki\e1\e(B
-\e,T`\e05g\e1A`M'd\e04i\e1\e(B. \e0\e,TJTi\e19\e0JX\e14$S\e0JQh\e1'\e04i\e1GB!RC!4\e0;Xh\e1A\e(B <Return>.
+คำสั่งที่มีชื่อคำสั่งเสริมนี้เป็นคำสั่งที่ใช้ไม่ค่อยบ่อยนัก, หรือเป็นคำสั่งที่ใช้เฉพาะในบางโหมด
+เท่านั้น. ตัวอย่างหนึ่งของคำสั่งนี้คือคำสั่งเปลี่ยนแทน-สายอักขระ (replace-string),
+ซึ่งเป็นการเปลี่ยนแทนสายอักขระหนึ่งด้วยอีกสายอักขระหนึ่งทั้งหมด. เมื่อท่านป้อนคำสั่ง M-x,
+อีแมกส์แสดง M-x ที่บรรทัดล่างสุดของหน้าจอ, ในที่นี้ท่านจะต้องพิมพ์ชื่อของคำสั่ง; ในกรณีนี้
+คือ "replace-string". ท่านอาจจะพิมพ์ "repl s<TAB>" แล้วอีแมกส์จะเติมชื่อคำสั่งให้
+เต็มเองได้. สิ้นสุดคำสั่งด้วยการกดปุ่ม <Return>.
 
-\e,T$S\e0JQh\e1'`;\e0EUh\e1B9a79\e(B-\e,TJRB\e0MQ\e1!"CP\e(B (replace-string) \e0\e,T5i\e1M'!RCJM'MR\e0Cl\e1\e0!T\e1G`A9\e05l\e1\e(B--\e,TJRB\e0MQ\e1!"CP\e(B
-\e0\e,T7Uh\e1(P\e06Y\e1!`;\e0EUh\e1B9a79\e(B, \e,TaEPJRB\e0MQ\e1!"CP\e07Uh\e1(Pc\e0*i\e1`;\e0EUh\e1B9a79\e(B. \e0\e,T7h\e1R9(P\e05i\e1M'\e0JTi\e19\e0JX\e14!RC\e0;i\e1M9a\e05h\e1EPMR\e0Cl\e1\e(B
-\e0\e,T!T\e1G`A9\e05l\e1\e04i\e1GB!RC!4\e0;Xh\e1A\e(B <Return>.
+คำสั่งเปลี่ยนแทน-สายอักขระ (replace-string) ต้องการสองอาร์กิวเมนต์--สายอักขระ
+ที่จะถูกเปลี่ยนแทน, และสายอักขระที่จะใช้เปลี่ยนแทน. ท่านจะต้องสิ้นสุดการป้อนแต่ละอาร์
+กิวเมนต์ด้วยการกดปุ่ม <Return>.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1':CC\e07Q\e14`;\e0Eh\e1R\e07Uh\e1M\e0BYh\e1c\e05i\e1:CC\e07Q\e14\e09Ui\e1d;JM':CC\e07Q\e14\e(B.
-   \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B M-x repl s<Return>changed<Return>altered<Return>.
+>> เคลื่อนเคอร์เซอร์ไปยังบรรทัดเปล่าที่อยู่ใต้บรรทัดนี้ไปสองบรรทัด.
+   แล้วป้อนคำสั่ง M-x repl s<Return>changed<Return>altered<Return>.
 
-   \e0\e,TJQ\e1'`!5\e04Y\e1!RC`;\e0EUh\e1B9a;E'"M':CC\e07Q\e14\e09Ui\e1\e(B: \e0\e,T7h\e1R9d\e04i\e1`;\e0EUh\e1B9a79$S\e0Gh\e1R\e(B c-h-a-n-g-e-d
-   \e0\e,T4i\e1GB$S\e0Gh\e1R\e(B "altered" \e,Tc9\e07X\e1!\e07Uh\e1\e07Uh\e1;CR!/\e05Qi\e1'a\e05h\e15SaK\e09h\e1'\e07Uh\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B.
+   สังเกตดูการเปลี่ยนแปลงของบรรทัดนี้: ท่านได้เปลี่ยนแทนคำว่า c-h-a-n-g-e-d
+   ด้วยคำว่า "altered" ในทุกที่ที่ปรากฏตั้งแต่ตำแหน่งที่เคอร์เซอร์อยู่ปัจจุบัน.
 
 
-* \e0\e,T(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B (auto save)
+* จัดเก็บอัตโนมัติ (auto save)
 -------------------------
 
-\e,T`\e0AWh\e1M\e07h\e1R9d\e04i\e1a\e0!i\e1d"a\e0?i\e1A\e0"i\e1M\e0AY\e1Ea\e0Ei\e1G\e(B, \e,Ta\e05h\e1\e07h\e1R9\e0BQ\e1'd\e0Ah\e1d\e04i\e1\e0(Q\e14`\e0!g\e1:\e(B, \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E`K\e0Eh\e1R\e09Qi\e19MR(\e0JY\e1-KRBd\e04i\e1\e06i\e1R\e(B
-\e,T`$\e0CWh\e1M'$MA\e0>T\e1G`5M\e0Cl\e1"M'\e07h\e1R9`\e0!T\e14\e0"Q\e14\e0"i\e1M'\e(B. \e,T`\e0>Wh\e1M\e0;i\e1M'\e0!Q\e19`K\e05X\e1!RC\e03l\e1`\e0*h\e19\e09Ui\e1\e(B, \e0\e,TMU\e1aA!\e0Jl\e17S!RC`\e0"U\e1B9\e(B
-\e0\e,T"i\e1M$GRAJSK\e0CQ\e1:a\e05h\e1EPa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'7S!RCa\e0!i\e1d"M\e0BYh\e1E'c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B "\e0\e,T(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B
-(auto save)". \e0\e,T*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B (auto save file) \e,T(P\e06Y\e1!\e05Qi\e1'cK\e0Ah\e1c\e0Ki\e1\e(B
-\e0\e,TAU\e1\e0MQ\e1!"CP\e(B "#" \e,TM\e0BYh\e1\e07Qi\e1'\e0"i\e1R'K\e09i\e1RaEP\e0"i\e1R'K\e0EQ\e1'\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05i\e19)\e0:Q\e1:\e(B; \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e0\e,T6i\e1R\e0*Wh\e1M"M'\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19`\e0;g\e19\e(B "hello.c", \e0\e,T*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1(P`\e0;g\e19\e(B "#hello.c#".
-\e,T`\e0AWh\e1M\e07h\e1R97S!RC\e0(Q\e14`\e0!g\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e04i\e1GB\e0GT\e1\e08U\e1!RC;C!\e05T\e1a\e0Ei\e1G\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(PE:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B
-\e0\e,T9Qi\e19`\e0JU\e1B\e(B.
+เมื่อท่านได้แก้ไขแฟ้มข้อมูลแล้ว, แต่ท่านยังไม่ได้จัดเก็บ, แฟ้มข้อมูลเหล่านั้นอาจสูญหายได้ถ้า
+เครื่องคอมพิวเตอร์ของท่านเกิดขัดข้อง. เพื่อป้องกันเหตุการณ์เช่นนี้, อีแมกส์ทำการเขียน
+ข้อความสำหรับแต่ละแฟ้มข้อมูลที่ท่านกำลังทำการแก้ไขอยู่ลงในแฟ้มข้อมูล "จัดเก็บอัตโนมัติ
+(auto save)". ชื่อของแฟ้มข้อมูลจัดเก็บอัตโนมัติ (auto save file) จะถูกตั้งใหม่ให้
+มีอักขระ "#" อยู่ทั้งข้างหน้าและข้างหลังชื่อแฟ้มข้อมูลต้นฉบับ; ตัวอย่างเช่น, ถ้าชื่อของ
+แฟ้มข้อมูลนั้นเป็น "hello.c", ชื่อของแฟ้มข้อมูลจัดเก็บอัตโนมัติจะเป็น "#hello.c#".
+เมื่อท่านทำการจัดเก็บแฟ้มข้อมูลด้วยวิธีการปรกติแล้ว, อีแมกส์จะลบแฟ้มข้อมูลจัดเก็บอัตโนมัติ
+นั้นเสีย.
 
-\e0\e,T6i\e1R`$\e0CWh\e1M'$MA\e0>T\e1G`5M\e0Cl\e1`\e0!T\e14\e0"Q\e14\e0"i\e1M'\e(B, \e0\e,T7h\e1R9JRARC6\e0!Yi\e1\e(B (recover) \e,T(R!a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0(Q\e14`\e0!g\e1:\e(B
-\e0\e,TMQ\e15b9\e0AQ\e1\e05T\e1\e09Qi\e19d\e04i\e1\e04i\e1GB!RC`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1Ea::;C!\e05T\e1\e(B (\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'a\e0!i\e1d"M\e0BYh\e1\e(B, \e,Td\e0Ah\e1c\e0*h\e1\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B), \e,Ta\e0Ei\e1G\e0>T\e1A\e0>l\e1$S\e0JQh\e1'\e(B M-x recover file<Return>. \e,T`\e0AWh\e1M\e0AU\e1!RC\e(B
-\e,T6RA`\e0>Wh\e1M!RC\e0BW\e19\e0BQ\e19\e(B, \e0\e,T>T\e1A\e0>l\e1$S\e0Gh\e1R\e(B yes<Return> \e,T`\e0>Wh\e1M4S`\e09T\e19!RC\e05h\e1MaEP7S!RC\e0!Yi\e1\e0"i\e1M\e0AY\e1E\e07Uh\e1\e06Y\e1!\e(B
-\e0\e,T(Q\e14`\e0!g\e1:\e0MQ\e15b9\e0AQ\e1\e05T\e1\e09Qi\e19\e(B.
+ถ้าเครื่องคอมพิวเตอร์เกิดขัดข้อง, ท่านสามารถกู้ (recover) จากแฟ้มข้อมูลจัดเก็บ
+อัตโนมัตินั้นได้ด้วยการเยือนแฟ้มข้อมูลแบบปรกติ (แฟ้มข้อมูลที่ท่านกำลังแก้ไขอยู่, ไม่ใช่
+แฟ้มข้อมูลจัดเก็บอัตโนมัติ), แล้วพิมพ์คำสั่ง M-x recover file<Return>. เมื่อมีการ
+ถามเพื่อการยืนยัน, พิมพ์คำว่า yes<Return> เพื่อดำเนินการต่อและทำการกู้ข้อมูลที่ถูก
+จัดเก็บอัตโนมัตินั้น.
 
 
-* \e,T:\e0CT\e1`G3JP\e07i\e1M9\e(B (echo area)
+* บริเวณสะท้อน (echo area)
 ------------------------
 
-\e0\e,TMU\e1aA!\e0Jl\e1\e0Mh\e1R9$S\e0JQh\e1';CPJA\e(B (multicharacter command) \e,T"3P\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'\e0>T\e1A\e0>l\e1`\e0"i\e1Rd;\e0*i\e1Rf\e(B,
-\e0\e,TMU\e1aA!\e0Jl\e1(PaJ4'$S\e0JQh\e1'\e05h\e1R'f\e(B \e0\e,T7Uh\e1\e07h\e1R9d\e04i\e1\e0>T\e1A\e0>l\e1`\e0"i\e1Rd;5C'\e0Jh\e1G9\e0Eh\e1R'"M'K\e09i\e1R(M5C':\e0CT\e1`G3\e07Uh\e1`\e0CU\e1B!\e0Gh\e1R\e(B
-"\e,T:\e0CT\e1`G3JP\e07i\e1M9\e(B (echo area)". \e,T:\e0CT\e1`G3JP\e07i\e1M9\e0$W\e1M:CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'K\e09i\e1R(M\e(B.
+อีแมกส์อ่านคำสั่งประสม (multicharacter command) ขณะที่ท่านกำลังพิมพ์เข้าไปช้าๆ,
+อีแมกส์จะแสดงคำสั่งต่างๆ ที่ท่านได้พิมพ์เข้าไปตรงส่วนล่างของหน้าจอตรงบริเวณที่เรียกว่า
+"บริเวณสะท้อน (echo area)". บริเวณสะท้อนคือบรรทัดล่างสุดของหน้าจอ.
 
 
-* \e,T:CC\e07Q\e14aJ4'bKA4\e(B (mode line)
+* บรรทัดแสดงโหมด (mode line)
 ---------------------------
 
-\e,T:CC\e07Q\e14\e07Uh\e1M\e0BYh\e1`K\e09W\e1M:\e0CT\e1`G3JP\e07i\e1M9\e09Qi\e19`\e0CU\e1B!\e0Gh\e1R\e(B "mode line". \e,T:CC\e07Q\e14aJ4'bKA4(PaJ4'\e(B
-\e0\e,T"i\e1M$GRA:R'M\e0Bh\e1R'c9\e0EQ\e1!I3P\e(B:
+บรรทัดที่อยู่เหนือบริเวณสะท้อนนั้นเรียกว่า "mode line". บรรทัดแสดงโหมดจะแสดง
+ข้อความบางอย่างในลักษณะ:
 
 --:**  TUTORIAL          (Fundamental)--L670--58%----------------
 
-\e,T:CC\e07Q\e14\e09Ui\e1c\e0Ki\e1\e0"i\e1M\e0AY\e1E\e07Uh\e1`\e0;g\e19;CPbB*\e09l\e1`\e0!Uh\e1BG\e0!Q\e1:J6R9@R>"M'\e0MU\e1aA!\e0Jl\e1aEP\e0"i\e1M$GRA\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'7S!RC\e(B
-\e,Ta\e0!i\e1d"M\e0BYh\e1\e(B.
-
-\e0\e,T7h\e1R97CR:a\e0Ei\e1G\e0Gh\e1R\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0AU\e1$GRAKARBM\e0Bh\e1R'dC\e(B--\e0\e,T$W\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e07h\e1R9d\e04i\e1`\e0BW\e1M9M\e0BYh\e1\e(B. -NN%--
-\e0\e,T:h\e1':M!5SaK\e09h\e1'\e0;Q\e1(\e0(X\e1\e0:Q\e19c9\e0"i\e1M$GRA"M'\e07h\e1R9\e(B; \e0\e,T9Qh\e19KARB$GRA\e0Gh\e1R\e0AU\e1\e0"i\e1M$GRA\e(B NN \e,T`;M\e0Cl\e1`+9\e05l\e1\e07Uh\e1M\e0BYh\e1\e(B
-\e,T`K\e09W\e1M5SaK\e09h\e1'\e0JY\e1'\e0JX\e14"M'K\e09i\e1R(M\e(B. \e0\e,T6i\e1R5SaK\e09h\e1'\e0JY\e1'\e0JX\e14"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EM\e0BYh\e1:9K\e09i\e1R(M\e(B, \e,T(P;CR!/\e(B
---Top-- \e,Ta79\e07Uh\e1(P`\e0;g\e19\e(B --00%--. \e0\e,T6i\e1R5SaK\e09h\e1'\e0Eh\e1R'\e0JX\e14"M'\e0"i\e1M$GRAM\e0BYh\e1:9K\e09i\e1R(M\e(B, \e,T(P;CR!/\e(B
---Bot--. \e0\e,T6i\e1R\e07h\e1R9!S\e0EQ\e1'`\e0BW\e1M9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1`\e0Eg\e1!AR!(9\e0"i\e1M$GRA\e07Qi\e1'KA4M\e0BYh\e1:9K\e09i\e1R(M\e(B, \e,T:CC\e07Q\e14\e(B
-\e,TaJ4'bKA4(PaJ4'\e0Gh\e1R\e(B --All--.
-
-\e,T`$\e0CWh\e1M'KARB4M!\e0(Q\e19:\e0CT\e1`G3\e05i\e19f\e(B \e,T"M':CC\e07Q\e14aJ4'bKA4KARB$GRA\e0Gh\e1R\e07h\e1R9d\e04i\e17S!RC\e(B
-\e,T`;\e0EUh\e1B9a;E'`\e09Wi\e1MKRc9\e0"i\e1M$GRAa\e0Ei\e1G\e(B. \e,TKR!\e07h\e1R9`\e0>Th\e1'`\e0BW\e1M9K\e0CW\e1M\e0(Q\e14`\e0!g\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B, \e0\e,TJh\e1G9\e07Uh\e1\e(B
-\e,Td\e04i\e1!\e0Eh\e1RG\e06V\e1'\e09Qi\e19(Pd\e0Ah\e1\e0AU\e1`$\e0CWh\e1M'KARB4M!\e0(Q\e19;CR!/\e(B, \e,T(P\e0AU\e1a\e05h\e1`\e0Ji\e19;CP\e(B (dashes).
-
-\e0\e,TJh\e1G9\e07Uh\e1M\e0BYh\e1CPK\e0Gh\e1R'G'`\e0Eg\e1:@RBc9:CC\e07Q\e14aJ4'bKA4(P:M!\e07h\e1R9\e0Gh\e1R\e07h\e1R9!S\e0EQ\e1'M\e0BYh\e1c9bKA4!RCa\e0!i\e1d"\e(B
-(editing mode) \e,TMPdC\e(B. \e,TbKA4b4B;\e0CT\e1BRB\e(B (default mode) \e0\e,T$W\e1M\e(B Fundamental \e0\e,T7Uh\e1\e(B
-\e0\e,T7h\e1R9!S\e0EQ\e1'c\e0*i\e1M\e0BYh\e1c9"3P\e09Ui\e1\e(B. \e0\e,T9Uh\e1\e0$W\e1M\e05Q\e1GM\e0Bh\e1R'"M'\e(B "\e,TbKA4K\e0EQ\e1!\e(B (major mode)".
-
-\e0\e,TMU\e1aA!\e0Jl\e1\e0AU\e1bKA4K\e0EQ\e1!M\e0BYh\e1KERBbKA4\e(B. \e0\e,T:i\e1R'c\e0*i\e1JSK\e0CQ\e1:!RCa\e0!i\e1d"c9@RIRaEP\e(B/\e,TK\e0CW\e1M\e0"i\e1M$GRA*\e09T\e14\e05h\e1R'f\e(B,
-\e,T`\e0*h\e19\e(B Lisp mode, Text mode, \e,T`\e0;g\e19\e05i\e19\e(B. \e0\e,T7h\e1R9(PM\e0BYh\e1c9bKA4K\e0EQ\e1!c4bKA4K\e0EQ\e1!K\e09Vh\e1'c9`GER\e(B
-\e,T`\e04U\e1BG\e(B, \e,TaEP\e0*Wh\e1M"M'bKA4K\e0EQ\e1!\e09Qi\e19(P;CR!/M\e0BYh\e1\e07Uh\e1:CC\e07Q\e14aJ4'bKA4\e(B, \e0\e,T7Uh\e1\e07Uh\e1\e0AU\e1\e(B "Fundamental"
-\e,T;CR!/M\e0BYh\e1c9"3P\e09Ui\e1\e(B.
-
-\e,Ta\e05h\e1EPbKA4K\e0EQ\e1!(P7Sc\e0Ki\e1$S\e0JQh\e1'c\e0Ki\e1<Ec9\e0EQ\e1!I3P\e07Uh\e1a5!\e05h\e1R'\e0!Q\e19\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e0\e,TAU\e1KERB$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1\e(B
-\e,Tc9!RC!S\e0!Q\e1:KARB`K\e05X\e1\e(B (comment) \e,Tc9b;Ca!CA\e(B, \e,TaEP`\e09Wh\e1M'(R!a\e05h\e1EPb;Ca!CA\e0AU\e1$GRA\e0$T\e14\e(B
-\e,Tc9!RCaJ4'<E"M'KARB`K\e05X\e1\e07Uh\e1a5!\e05h\e1R'\e0!Q\e19\e(B, \e,Ta\e05h\e1EPbKA4K\e0EQ\e1!(Pa7C!KARB`K\e05X\e1c9\e0EQ\e1!I3P\e07Uh\e1\e(B
-\e,Ta5!\e05h\e1R'\e0!Q\e19\e(B. \e,Ta\e05h\e1EPbKA4K\e0EQ\e1!(P`\e0;g\e19\e0*Wh\e1M"M'$S\e0JQh\e1'`J\e0CT\e1A\e(B, \e0\e,T7Uh\e1\e07h\e1R9JRARC6:M!c\e0Ki\e1J\e0EQ\e1:d;\e0BQ\e1'bKA4\e07Uh\e1\e(B
-\e0\e,T5i\e1M'!RCd\e04i\e1\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, M-x fundamental-mode \e,T`\e0;g\e19$S\e0JQh\e1'c9!RCJ\e0EQ\e1:d;\e0BQ\e1'\e(B
+บรรทัดนี้ให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับสถานภาพของอีแมกส์และข้อความที่ท่านกำลังทำการ
+แก้ไขอยู่.
+
+ท่านทราบแล้วว่าชื่อแฟ้มข้อมูลมีความหมายอย่างไร--คือแฟ้มข้อมูลที่ท่านได้เยือนอยู่. -NN%--
+บ่งบอกตำแหน่งปัจจุบันในข้อความของท่าน; นั่นหมายความว่ามีข้อความ NN เปอร์เซนต์ที่อยู่
+เหนือตำแหน่งสูงสุดของหน้าจอ. ถ้าตำแหน่งสูงสุดของแฟ้มข้อมูลอยู่บนหน้าจอ, จะปรากฏ
+--Top-- แทนที่จะเป็น --00%--. ถ้าตำแหน่งล่างสุดของข้อความอยู่บนหน้าจอ, จะปรากฏ
+--Bot--. ถ้าท่านกำลังเยือนแฟ้มข้อมูลที่เล็กมากจนข้อความทั้งหมดอยู่บนหน้าจอ, บรรทัด
+แสดงโหมดจะแสดงว่า --All--.
+
+เครื่องหมายดอกจันบริเวณต้นๆ ของบรรทัดแสดงโหมดหมายความว่าท่านได้ทำการ
+เปลี่ยนแปลงเนื้อหาในข้อความแล้ว. หากท่านเพิ่งเยือนหรือจัดเก็บแฟ้มข้อมูล, ส่วนที่
+ได้กล่าวถึงนั้นจะไม่มีเครื่องหมายดอกจันปรากฏ, จะมีแต่เส้นประ (dashes).
+
+ส่วนที่อยู่ระหว่างวงเล็บภายในบรรทัดแสดงโหมดจะบอกท่านว่าท่านกำลังอยู่ในโหมดการแก้ไข
+(editing mode) อะไร. โหมดโดยปริยาย (default mode) คือ Fundamental ที่
+ท่านกำลังใช้อยู่ในขณะนี้. นี่คือตัวอย่างของ "โหมดหลัก (major mode)".
+
+อีแมกส์มีโหมดหลักอยู่หลายโหมด. บ้างใช้สำหรับการแก้ไขในภาษาและ/หรือข้อความชนิดต่างๆ,
+เช่น Lisp mode, Text mode, เป็นต้น. ท่านจะอยู่ในโหมดหลักใดโหมดหลักหนึ่งในเวลา
+เดียว, และชื่อของโหมดหลักนั้นจะปรากฏอยู่ที่บรรทัดแสดงโหมด, ที่ที่มี "Fundamental"
+ปรากฏอยู่ในขณะนี้.
+
+แต่ละโหมดหลักจะทำให้คำสั่งให้ผลในลักษณะที่แตกต่างกัน. ตัวอย่างเช่น, มีหลายคำสั่งที่ใช้
+ในการกำกับหมายเหตุ (comment) ในโปรแกรม, และเนื่องจากแต่ละโปรแกรมมีความคิด
+ในการแสดงผลของหมายเหตุที่แตกต่างกัน, แต่ละโหมดหลักจะแทรกหมายเหตุในลักษณะที่
+แตกต่างกัน. แต่ละโหมดหลักจะเป็นชื่อของคำสั่งเสริม, ที่ท่านสามารถบอกให้สลับไปยังโหมดที่
+ต้องการได้. ตัวอย่างเช่น, M-x fundamental-mode เป็นคำสั่งในการสลับไปยัง
 Fundamental mode.
 
-\e0\e,T6i\e1R\e07h\e1R9!S\e0EQ\e1'(Pa\e0!i\e1d"\e0"i\e1M$GRA\e07Uh\e1`\e0;g\e19@RIRd7B\e(B, \e,T`\e0*h\e19c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Ui\e1\e(B, \e0\e,T7h\e1R9$GC(Pc\e0*i\e1\e(B
+ถ้าท่านกำลังจะแก้ไขข้อความที่เป็นภาษาไทย, เช่นในแฟ้มข้อมูลนี้, ท่านควรจะใช้
 Thai-text mode.
 >> M-x thai-text-mode<Return>
 
-\e,Td\e0Ah\e1\e05i\e1M'\e0!Q\e1'GE\e(B, \e,T$S\e0JQh\e1'\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'\e0HV\e1!IRM\e0BYh\e1\e09Ui\e1d\e0Ah\e1d\e04i\e1c\e0Ki\e1<E!CP7:AR!\e09Q\e1!\e(B. \e,Ta\e05h\e1\e07h\e1R9JRARC6\e0JQ\e1'`!5d\e04i\e1\e(B
-\e0\e,TGh\e1R$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b \e0\e,T6W\e1M\e0Gh\e1R\e0MQ\e1!"CP\e(B apostrophe \e,T`\e0;g\e19\e0Jh\e1G9K\e09Vh\e1'"M'$S\e(B. \e0\e,T!h\e1M9K\e09i\e1R\e09Ui\e1\e(B, \e,Tc9\e(B
-Fundamental mode, \e,T$S\e0JQh\e1'\e(B M-f \e,TaEP\e(B M-b \e0\e,T6W\e1M\e0Gh\e1R\e0MQ\e1!"CP\e(B apostrophe \e,T`\e0;g\e19\e05Q\e1Ga\e0:h\e1'$S\e(B
+ไม่ต้องกังวล, คำสั่งที่ท่านกำลังศึกษาอยู่นี้ไม่ได้ให้ผลกระทบมากนัก. แต่ท่านสามารถสังเกตได้
+ว่าคำสั่ง M-f และ M-b ถือว่าอักขระ apostrophe เป็นส่วนหนึ่งของคำ. ก่อนหน้านี้, ใน
+Fundamental mode, คำสั่ง M-f และ M-b ถือว่าอักขระ apostrophe เป็นตัวแบ่งคำ
 (word-separator).
 
-\e,TbKA4K\e0EQ\e1!`K\e0Eh\e1R\e09Ui\e1(Pc\e0Ki\e1<E\e07Uh\e1\e05h\e1R'MM!d;`\e0Eg\e1!\e09i\e1MB\e04Q\e1'\e07Uh\e1!\e0Eh\e1RGa\e0Ei\e1G\e0"i\e1R'\e05i\e19\e(B: \e,T$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1\e(B "\e,T7SK\e09i\e1R\e07Uh\e1\e(B
-\e,T`K\e0AW\e1M9\e0!Q\e19\e(B" \e,Ta\e0Ai\e1(PM\e0BYh\e1c9bKA4K\e0EQ\e1!\e07Uh\e1\e05h\e1R'\e0!Q\e19\e(B, \e,Ta\e05h\e1c\e0Ki\e1<E\e07Uh\e1\e05h\e1R'MM!d;\e0:i\e1R'`\e0Eg\e1!\e09i\e1MB\e(B.
+โหมดหลักเหล่านี้จะให้ผลที่ต่างออกไปเล็กน้อยดังที่กล่าวแล้วข้างต้น: คำสั่งส่วนใหญ่ "ทำหน้าที่
+เหมือนกัน" แม้จะอยู่ในโหมดหลักที่ต่างกัน, แต่ให้ผลที่ต่างออกไปบ้างเล็กน้อย.
 
-\e,Tc\e0*i\e1$S\e0JQh\e1'\e(B C-h m \e,T`\e0>Wh\e1M\e0Mh\e1R9CRBEP`\e0MU\e1B4"M'bKA4K\e0EQ\e1!\e0;Q\e1(\e0(X\e1\e0:Q\e19\e07Uh\e1\e07h\e1R9M\e0BYh\e1\e(B.
+ใช้คำสั่ง C-h m เพื่ออ่านรายละเอียดของโหมดหลักปัจจุบันที่ท่านอยู่.
 
->> \e,Tc\e0*i\e1$S\e0JQh\e1'\e(B C-u C-v \e,TK\e09Vh\e1'$\e0CQi\e1'K\e0CW\e1MAR!!\e0Gh\e1R\e09Qi\e19`\e0>Wh\e1M\e07Uh\e1(P"\e0BQ\e1::CC\e07Q\e14\e09Ui\e1\e0"Vi\e19d;\e0BQ\e1'\e0Jh\e1G9:9"M'K\e09i\e1R(M\e(B.
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h m, \e,T`\e0>Wh\e1M\e04Y\e1\e0Gh\e1R\e(B Text mode \e0\e,T5h\e1R'(R!\e(B Fundamental mode \e,TM\e0Bh\e1R'dC\e(B.
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,T`\e0>Wh\e1M"\e0(Q\e14`M!JRC\e0*Ui\e1a('MM!(R!K\e09i\e1R(M\e(B.
+>> ใช้คำสั่ง C-u C-v หนึ่งครั้งหรือมากกว่านั้นเพื่อที่จะขยับบรรทัดนี้ขึ้นไปยังส่วนบนของหน้าจอ.
+>> ป้อนคำสั่ง C-h m, เพื่อดูว่า Text mode ต่างจาก Fundamental mode อย่างไร.
+>> ป้อนคำสั่ง C-x 1 เพื่อขจัดเอกสารชี้แจงออกจากหน้าจอ.
 
-\e0\e,T7Uh\e1`\e0CU\e1B!\e0Gh\e1RbKA4K\e0EQ\e1!\e09Qi\e19\e0!g\e1`>CRP\e0Gh\e1R\e0AU\e1bKA4\e0Bh\e1MB\e(B (minor mode) \e0\e,TMU\e1!\e(B. \e,TbKA4\e0Bh\e1MBd\e0Ah\e1d\e04i\e1`\e0;g\e19\e(B
-\e0\e,T5Q\e1G`\e0EW\e1M!c9bKA4K\e0EQ\e1!\e(B, \e,T`\e09Wh\e1M'(R!\e0Gh\e1R\e0AU\e1!RC`;\e0EUh\e1B9d;`\e0>U\e1B'`\e0Eg\e1!\e09i\e1MB`\e07h\e1R\e09Qi\e19\e(B. \e,Ta\e05h\e1EPbKA4\e0Bh\e1MBJRARC6\e(B
-\e,T(P`\e0;T\e14K\e0CW\e1M\e0;T\e14d\e04i\e1@RBc9\e05Q\e1G`M'\e(B, \e0\e,T$W\e1Ma\e05h\e1EPbKA4\e0Bh\e1MB(P7S'R9b4B\e0MT\e1JCP(R!\e0!Q\e19\e(B, \e,TaEP\e(B
-\e,T`\e0;g\e19\e0MT\e1JCP(R!bKA4K\e0EQ\e1!\e04i\e1GB\e(B. \e,T)P\e09Qi\e19\e07h\e1R9JRARC6d\e0Ah\e1c\e0*i\e1bKA4\e0Bh\e1MB`EB\e(B, \e,TK\e0CW\e1MK\e09Vh\e1'bKA4\e0Bh\e1MB\e(B, \e,TK\e0CW\e1M\e(B
-\e,TbKA4\e0Bh\e1MBKERBf\e(B \e,TbKA4<JA\e0!Q\e19\e0!g\e1d\e04i\e1\e(B.
+ที่เรียกว่าโหมดหลักนั้นก็เพราะว่ามีโหมดย่อย (minor mode) อีก. โหมดย่อยไม่ได้เป็น
+ตัวเลือกในโหมดหลัก, เนื่องจากว่ามีการเปลี่ยนไปเพียงเล็กน้อยเท่านั้น. แต่ละโหมดย่อยสามารถ
+จะเปิดหรือปิดได้ภายในตัวเอง, คือแต่ละโหมดย่อยจะทำงานโดยอิสระจากกัน, และ
+เป็นอิสระจากโหมดหลักด้วย. ฉะนั้นท่านสามารถไม่ใช้โหมดย่อยเลย, หรือหนึ่งโหมดย่อย, หรือ
+โหมดย่อยหลายๆ โหมดผสมกันก็ได้.
 
-\e,TbKA4\e0Bh\e1MB\e07Uh\e1\e0AU\e1;CPbB*\e09l\e1AR!\e(B, \e,Tb4B`)>RPJSK\e0CQ\e1:c\e0*i\e1a\e0!i\e1d"\e0"i\e1M$GRA\e07Uh\e1`\e0;g\e19@RIR\e0MQ\e1'!DI\e(B, \e0\e,T$W\e1M\e(B
-\e,TbKA4\e0(Q\e14:CC\e07Q\e14\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B (Auto Fill). \e,T`\e0AWh\e1MbKA4\e09Ui\e17S'R9\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(Pa\e0:h\e1':CC\e07Q\e14CPK\e0Gh\e1R'\e(B
-\e,T$S\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B, \e0\e,T7Q\e19\e07U\e1\e07Uh\e1\e07h\e1R9a7C!\e0"i\e1M$GRAaEP7Sc\e0Ki\e1:CC\e07Q\e14\e09Qi\e19BRG`\e0!T\e19d;\e(B.
+โหมดย่อยที่มีประโยชน์มาก, โดยเฉพาะสำหรับใช้แก้ไขข้อความที่เป็นภาษาอังกฤษ, คือ
+โหมดจัดบรรทัดอัตโนมัติ (Auto Fill). เมื่อโหมดนี้ทำงาน, อีแมกส์จะแบ่งบรรทัดระหว่าง
+คำอัตโนมัติ, ทันทีที่ท่านแทรกข้อความและทำให้บรรทัดนั้นยาวเกินไป.
 
-\e0\e,T7h\e1R9JRARC6`\e0;T\e14bKA4\e0(Q\e14:CC\e07Q\e14\e0MQ\e15b9\e0AQ\e1\e05T\e1d\e04i\e1b4B!RCc\e0*i\e1$S\e0JQh\e1'\e(B M-x auto fill
-mode<Return>. \e,T`\e0AWh\e1MbKA4\e09Ui\e17S'R9M\e0BYh\e1\e(B, \e0\e,T7h\e1R9JRARC6\e0;T\e14bKA4\e09Ui\e1d\e04i\e1b4B!RCc\e0*i\e1$S\e0JQh\e1'\e(B M-x
-auto fill mode<Return>. \e0\e,T6i\e1RbKA4\e09Ui\e1\e0;T\e14M\e0BYh\e1\e(B, \e,T$S\e0JQh\e1'\e09Ui\e1(P`\e0;T\e14bKA4c\e0Ki\e17S'R9\e(B, \e,TaEP\e06i\e1R\e(B
-\e,TbKA4\e09Ui\e1`\e0;T\e14M\e0BYh\e1\e(B, \e,T$S\e0JQh\e1'\e09Ui\e1\e0!g\e1(P\e0;T\e14bKA4\e(B. \e0\e,T$W\e1M\e0>Y\e14d\e04i\e1\e0Gh\e1R$S\e0JQh\e1'\e09Ui\e1\e(B "toggles the mode".
+ท่านสามารถเปิดโหมดจัดบรรทัดอัตโนมัติได้โดยการใช้คำสั่ง M-x auto fill
+mode<Return>. เมื่อโหมดนี้ทำงานอยู่, ท่านสามารถปิดโหมดนี้ได้โดยการใช้คำสั่ง M-x
+auto fill mode<Return>. ถ้าโหมดนี้ปิดอยู่, คำสั่งนี้จะเปิดโหมดให้ทำงาน, และถ้า
+โหมดนี้เปิดอยู่, คำสั่งนี้ก็จะปิดโหมด. คือพูดได้ว่าคำสั่งนี้ "toggles the mode".
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B M-x auto fill mode<Return> \e0\e,T4Y\e1\e(B. \e,Ta\e0Ei\e1G\e0;i\e1M9\e(B "asdf " \e0\e,T+i\e1Sf\e(B \e0\e,T!Q\e19d;(9\e(B
-   \e0\e,T7h\e1R9`\e0Kg\e19\e0Gh\e1R:CC\e07Q\e14\e09Qi\e19\e06Y\e1!a\e0:h\e1'MM!`\e0;g\e19JM':CC\e07Q\e14\e(B. \e0\e,T7h\e1R9\e05i\e1M'c\e0Jh\e1`\e0Gi\e19GCC$`>CRP\e0Gh\e1R!RC\e0(Q\e14\e(B
-   \e,T:CC\e07Q\e14\e0MQ\e15b9\e0AQ\e1\e05T\e1(Pa\e0:h\e1':CC\e07Q\e145C'`\e0Gi\e19GCC$`\e07h\e1R\e09Qi\e19\e(B.
+>> ป้อนคำสั่ง M-x auto fill mode<Return> ดู. แล้วป้อน "asdf " ซ้ำๆ กันไปจน
+   ท่านเห็นว่าบรรทัดนั้นถูกแบ่งออกเป็นสองบรรทัด. ท่านต้องใส่เว้นวรรคเพราะว่าการจัด
+   บรรทัดอัตโนมัติจะแบ่งบรรทัดตรงเว้นวรรคเท่านั้น.
 
-\e,T"M:`\e0<Wh\e1M\e(B (margin) \e,Tb4BAR!(P\e05Qi\e1'c\e0Ki\e1\e07Uh\e1\e(B 70 \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B, \e,Ta\e05h\e1\e07h\e1R9\e0!g\e1JRARC6`;\e0EUh\e1B9\e04i\e1GB$S\e0JQh\e1'\e(B
-C-x f. \e0\e,T7h\e1R9$GC\e05Qi\e1'"M:`\e0<Wh\e1M\e04i\e1GB\e05Q\e1G`E"MR\e0Cl\e1\e0!T\e1G`A9\e05l\e15RA\e07Uh\e1\e07h\e1R9\e05i\e1M'!RC\e(B.
+ขอบเผื่อ (margin) โดยมากจะตั้งให้ที่ 70 ตัวอักษร, แต่ท่านก็สามารถเปลี่ยนด้วยคำสั่ง
+C-x f. ท่านควรตั้งขอบเผื่อด้วยตัวเลขอาร์กิวเมนต์ตามที่ท่านต้องการ.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x f \e,T>\e0Ci\e1MA\e04i\e1GBMR\e0Cl\e1\e0!T\e1G`A9\e05l\e1\e(B 20. (C-u 2 0 C-x f).
-   \e,Ta\e0Ei\e1G\e0;i\e1M9\e0"i\e1M$GRAaEP(P`\e0Kg\e19\e0Gh\e1R\e0MU\e1aA!\e0Jl\e1\e0(Q\e14:CC\e07Q\e14\e07Uh\e1\e0AU\e1"9R4\e(B 20 \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B. \e,Ta\e0Ei\e1G\e05Qi\e1'"M:\e(B
-   \e,T`\e0<Wh\e1M`\e0;g\e19\e(B 70 \e,Tb4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-x f \e0\e,TMU\e1!$\e0CQi\e1'\e(B.
+>> ป้อนคำสั่ง C-x f พร้อมด้วยอาร์กิวเมนต์ 20. (C-u 2 0 C-x f).
+   แล้วป้อนข้อความและจะเห็นว่าอีแมกส์จัดบรรทัดที่มีขนาด 20 ตัวอักษร. แล้วตั้งขอบ
+   เผื่อเป็น 70 โดยใช้คำสั่ง C-x f อีกครั้ง.
 
-\e0\e,T6i\e1R\e07h\e1R97S!RC`;\e0EUh\e1B9a;E'5C'!ER'\e0Bh\e1MK\e09i\e1R\e(B, \e,TbKA4\e0(Q\e14:CC\e07Q\e14\e0MQ\e15b9\e0AQ\e1\e05T\e1(Pd\e0Ah\e1\e0(Q\e14:CC\e07Q\e14cK\e0Ah\e1\e(B
-(re-fill) \e,Tc\e0Ki\e1\e07h\e1R9\e(B. \e0\e,T6i\e1R(P\e0(Q\e14:CC\e07Q\e14cK\e0Ah\e1c\e0Ki\e1\e0!Q\e1:\e0Bh\e1MK\e09i\e1R\e09Qi\e19\e(B, \e,Tc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B M-q (META-q)
-\e,Tb4BGR'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1d\e0Gi\e1@RBc9\e0Bh\e1MK\e09i\e1R\e09Qi\e19\e(B.
+ถ้าท่านทำการเปลี่ยนแปลงตรงกลางย่อหน้า, โหมดจัดบรรทัดอัตโนมัติจะไม่จัดบรรทัดใหม่
+(re-fill) ให้ท่าน. ถ้าจะจัดบรรทัดใหม่ให้กับย่อหน้านั้น, ให้ป้อนคำสั่ง M-q (META-q)
+โดยวางตำแหน่งเคอร์เซอร์ไว้ภายในย่อหน้านั้น.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1`\e0"i\e1Rd;\e0BQ\e1'\e0Bh\e1MK\e09i\e1R\e0"i\e1R':9\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B M-q.
+>> เคลื่อนเคอร์เซอร์เข้าไปยังย่อหน้าข้างบน, แล้วป้อนคำสั่ง M-q.
 
 
-* \e,T!RC\e0JW\e1:\e0$i\e19\e(B (searching)
+* การสืบค้น (searching)
 ---------------------
 
-\e0\e,TMU\e1aA!\e0Jl\e1JRARC6\e0JW\e1:\e0$i\e19JRB\e0MQ\e1!"CP\e(B (\e,T!\e0EXh\e1A"M'\e05Q\e1G\e0MQ\e1!ICK\e0CW\e1M$S\e07Uh\e1M\e0BYh\e1\e05h\e1M`\e09Wh\e1M'\e0!Q\e19\e(B) \e,Td\e0Ah\e1\e0Gh\e1R(Pd;\e(B
-\e0\e,T"i\e1R'K\e09i\e1RK\e0CW\e1M\e0Bi\e1M9!\e0EQ\e1:\e(B, \e0\e,T7Qh\e1G\e07Qi\e1'\e0"i\e1M$GRA\e(B. \e,T!RC\e0JW\e1:\e0$i\e19JRB\e0MQ\e1!"CP\e0$W\e1M$S\e0JQh\e1'c9!RC`$\e0EWh\e1M95SaK\e09h\e1'\e(B
-\e,T"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B; \e,T`$M\e0Cl\e1`+M\e0Cl\e1(P`$\e0EWh\e1M9d;M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'\e06Q\e14d;\e07Uh\e1\e0AU\e1JRB\e0MQ\e1!"CP\e09Qi\e19M\e0BYh\e1\e(B.
-
-\e,T$S\e0JQh\e1'\e0JW\e1:\e0$i\e19c9\e0MU\e1aA!\e0Jl\e1\e05h\e1R'(R!$S\e0JQh\e1'\e0JW\e1:\e0$i\e19c9b;Ca!CA:CC3R\e08T\e1!C\e03l\e1\e(B (editor) \e0\e,TJh\e1G9cK\e0-h\e1\e(B, \e,Tc9\e(B
-\e0\e,TEQ\e1!I3P\e07Uh\e1`\e0;g\e19\e(B "incremental". \e0\e,T9Uh\e1KARB$GRA\e0Gh\e1R!RC\e0JW\e1:\e0$i\e19`\e0CTh\e1A\e05Qi\e1'a\e05h\e1\e07Uh\e1\e07h\e1R9d\e04i\e1\e0;i\e1M9\e0MQ\e1!"CP\e07Uh\e1\e(B
-\e0\e,T5i\e1M'!RC\e0JW\e1:\e0$i\e19\e(B.
-
-\e,T$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1`\e0>Wh\e1Mc\e0Ki\e17S!RC\e0JW\e1:\e0$i\e19d;\e0"i\e1R'K\e09i\e1R\e0$W\e1M\e(B C-s, \e,TaEP7S!RC\e0JW\e1:\e0$i\e19\e0Bi\e1M9d;\e0"i\e1R'K\e0EQ\e1'\e0$W\e1M\e(B
-C-r. \e,Ta\e05h\e1$MB\e0!h\e1M9\e(B! \e,TM\e0Bh\e1R`\e0>Th\e1'EM'\e(B.
-
-\e,T`\e0AWh\e1M\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B C-s \e0\e,T7h\e1R9(P\e0JQ\e1'`!5`\e0Kg\e19\e0Gh\e1R\e0AU\e1$S\e0Gh\e1R\e(B "I-search" \e,T;CR!/\e07Uh\e1:\e0CT\e1`G3JP\e07i\e1M9\e(B
-(echo area). \e0\e,T9Uh\e1aJ4'\e0Gh\e1R\e0MU\e1aA!\e0Jl\e1d\e04i\e1M\e0BYh\e1c9!RC\e0$i\e19a::\e(B incremental \e,TaEP!S\e0EQ\e1'CM\e(B
-\e0\e,TJTh\e1'\e07Uh\e1\e07h\e1R9(P\e0>T\e1A\e0>l\e1`\e0>Wh\e1M\e0JW\e1:\e0$i\e19\e(B. \e,T!4\e0;Xh\e1A\e(B <Return> \e,T`\e0>Wh\e1M\e0JTi\e19\e0JX\e14$S\e0JQh\e1'\e0JW\e1:\e0$i\e19\e(B.
-
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-s \e,T`\e0>Wh\e1M`\e0CTh\e1A!RC\e0JW\e1:\e0$i\e19\e(B. \e0\e,T>T\e1A\e0>l\e1\e0MQ\e1!IC\e07U\e1EP\e05Q\e1G\e0*i\e1Rf\e(B, \e0\e,T>T\e1A\e0>l\e1$S\e0Gh\e1R\e(B 'cursor',
-   \e,TK\e0BX\e14K\e0EQ\e1'(R!\e07Uh\e1\e07h\e1R9\e0>T\e1A\e0>l\e1\e07U\e1EP\e05Q\e1G\e0MQ\e1!IC\e(B, \e,Ta\e0Ei\e1G\e04Y\e1\e0Gh\e1R\e0AU\e1MPdC`\e0!T\e14\e0"Vi\e19\e0!Q\e1:`$M\e0Cl\e1`+M\e0Cl\e1\e(B.
-   \e,T"3P\e09Ui\e1\e07h\e1R9d\e04i\e1\e0JW\e1:\e0$i\e19$S\e0Gh\e1R\e(B "cursor" \e,Td;K\e09Vh\e1'K9a\e0Ei\e1G\e(B.
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-s \e0\e,TMU\e1!$\e0CQi\e1'\e(B, \e,T`\e0>Wh\e1M\e0JW\e1:\e0$i\e195SaK\e09h\e1'\e06Q\e14d;"M'$S\e0Gh\e1R\e(B "cursor".
->> \e,T!4\e0;Xh\e1A\e(B <Delete> \e0\e,TJQ\e1!\e0JUh\e1$\e0CQi\e1'\e(B, \e,Ta\e0Ei\e1G\e04Y\e1\e0Gh\e1R`$M\e0Cl\e1`+M\e0Cl\e1`$\e0EWh\e1M9\e07Uh\e1M\e0Bh\e1R'dC\e(B.
->> \e,T!4\e0;Xh\e1A\e(B <Return> \e,T`\e0>Wh\e1M\e0JTi\e19\e0JX\e14$S\e0JQh\e1'\e0JW\e1:\e0$i\e19\e(B.
-
-\e0\e,T7h\e1R9`\e0Kg\e19K\e0CW\e1Md\e0Ah\e1\e0Gh\e1R\e0AU\e1MPdC`\e0!T\e14\e0"Vi\e19\e(B? \e,Tc9!RC\e0JW\e1:\e0$i\e19a::\e(B incremental, \e0\e,TMU\e1aA!\e0Jl\e1>BRBRA\e(B
-\e,T`$\e0EWh\e1M9d;5RAJRB\e0MQ\e1!"CP\e07Uh\e1\e07h\e1R9d\e04i\e1\e0>T\e1A\e0>l\e1E'd;c9a\e05h\e1EP$\e0CQi\e1'\e(B. \e0\e,T6i\e1R(P`$\e0EWh\e1M9d;\e0BQ\e1'5SaK\e09h\e1'\e(B
-\e0\e,T6Q\e14d;"M'$S\e(B, \e0\e,T!g\e17Sd\e04i\e1b4B!RC\e0;i\e1M9$S\e0JQh\e1'\e(B C-s \e0\e,TMU\e1!$\e0CQi\e1'\e(B. \e0\e,T6i\e1Rd\e0Ah\e1\e0AU\e1$S\e09Qi\e19\e0MU\e1!a\e0Ei\e1G\e(B, \e0\e,TMU\e1aA!\e0Jl\e1(P\e0Ci\e1M'\e(B
-\e,T:M!\e(B (beep) \e0\e,T7h\e1R9\e0Gh\e1R!RC\e0JW\e1:\e0$i\e19$\e0CQi\e1'\e09Qi\e19\e(B "\e,T>ER4\e(B (failing)", \e,T$S\e0JQh\e1'\e(B C-g \e0\e,T!g\e1JRARC6c\e0*i\e1c9\e(B
-\e,T!RC\e0JTi\e19\e0JX\e14!RC\e0JW\e1:\e0$i\e19d\e04i\e1\e(B.
-
-\e0\e,T"i\e1M\e0JQ\e1'`!5\e(B: \e,Tc9:R'CP::\e(B, \e,T!RC\e0;i\e1M9$S\e0JQh\e1'\e(B C-s \e,T(P7Sc\e0Ki\e1CP::"M'\e07h\e1R9*P\e0'Q\e1!aEP\e07h\e1R9(Pd\e0Ah\e1`\e0Kg\e19\e(B
-\e0\e,T"i\e1M$GRAMPdC:9\e0MU\e1aA!\e0Jl\e1\e(B. \e0\e,TEQ\e1!I3P\e09Ui\e1aJ4'\e0Gh\e1R\e(B "feature" \e,T"M'CP::;\e0/T\e1\e0:Q\e1\e05T\e1!RC\e(B, \e0\e,T7Uh\e1`\e0CU\e1B!\e0Gh\e1R\e(B
-"flow control" \e0\e,T9Qi\e19\e(B, \e,Td\e04i\e1\e0"Q\e14"GR'!RC7S'R9"M'$S\e0JQh\e1'\e(B C-s \e,TaEPd\e0Ah\e1BMAc\e0Ki\e1!\e0EQ\e1:\e0JYh\e1\e0MU\e1aA!\e0Jl\e1\e(B
-\e0\e,TMU\e1!\e(B. \e,T!RC\e07Uh\e1(Pa\e0!i\e1d"!RCK\e0BX\e14*P\e0'Q\e1!\e09Qi\e19\e(B, \e,Tc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B C-q. \e0\e,THV\e1!IR\e0GT\e1\e08U\e1!RC\e0(Q\e14!RC\e0!Q\e1:\e(B "feature"
-\e0\e,T9Ui\e1d\e04i\e1\e07Uh\e1:7\e07Uh\e1\e0Gh\e1R\e04i\e1GB\e(B "Spontaneous Entry to Incremental Search" \e,Tc9\e0$Yh\e1\e0AW\e1M"M'\e0MU\e1aA!\e0Jl\e1\e(B.
-
-\e0\e,T6i\e1R\e07h\e1R9M\e0BYh\e1CPK\e0Gh\e1R'!RC\e0JW\e1:\e0$i\e19a::\e(B incremental \e,TM\e0BYh\e1\e(B, \e,Ta\e0Ei\e1G\e07h\e1R9!4\e0;Xh\e1A\e(B <Delete>, \e0\e,T7h\e1R9(P\e(B
-\e0\e,TJQ\e1'`!5`\e0Kg\e19\e0Gh\e1R\e05Q\e1G\e0MQ\e1!IC\e0JX\e14\e07i\e1RB\e07Uh\e1\e07h\e1R9\e0;i\e1M9`\e0"i\e1Rd;\e09Qi\e19\e06Y\e1!E:MM!\e(B, \e,TaEP(P\e0Bi\e1M9!\e0EQ\e1:d;\e0BQ\e1'5SaK\e09h\e1'\e(B
-\e0\e,T!h\e1M9K\e09i\e1R"M'!RC\e0JW\e1:\e0$i\e19\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e,TJA\e0AX\e1\e05T\e1\e0Gh\e1R\e07h\e1R9d\e04i\e1\e0;i\e1M9\e05Q\e1G\e0MQ\e1!IC\e(B "c", \e,T`\e0>Wh\e1M\e07Uh\e1(P\e0JW\e1:\e0$i\e19\e(B
-\e,T5SaK\e09h\e1'\e07Uh\e1;CR!/\e05Q\e1G\e0MQ\e1!IC\e(B "c" \e0\e,T9Qi\e19\e(B. \e,T5M9\e09Ui\e1\e06i\e1R\e07h\e1R9\e0>T\e1A\e0>l\e1\e05Q\e1G\e0MQ\e1!IC\e(B "u", \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e0!g\e1(P\e(B
-\e,T`$\e0EWh\e1M9d;M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'\e07Uh\e1;CR!/JRB\e0MQ\e1!"CP\e(B "cu" \e,TaC!\e0JX\e14\e(B. \e,T5M9\e09Ui\e1c\e0Ki\e1!4\e0;Xh\e1A\e(B <Delete>.
-\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B "u" \e,T(P\e06Y\e1!E:MM!(R!JRB\e0MQ\e1!"CP\e07Uh\e17S!RC\e0JW\e1:\e0$i\e19M\e0BYh\e1\e(B, \e,TaEP`$M\e0Cl\e1`+M\e0Cl\e1\e0!g\e1(P`$\e0EWh\e1M9\e(B
-\e,T!\e0EQ\e1:d;\e0BQ\e1'5SaK\e09h\e1'\e07Uh\e1;CR!/\e05Q\e1G\e0MQ\e1!IC\e(B "c" \e,TaC!\e0JX\e14\e(B.
-
-\e0\e,T6i\e1R\e07h\e1R9M\e0BYh\e1CPK\e0Gh\e1R'!RC\e0JW\e1:\e0$i\e19\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1';CPJA"M'\e(B CONTROL \e,TK\e0CW\e1M\e(B META (\e,T9M!(R!\e(B
-\e0\e,T"i\e1MB!`\e0Gi\e19:R';CP!RC\e(B--\e,T$S\e0JQh\e1'\e0>T\e1`HI\e07Uh\e1c\e0*i\e1JSK\e0CQ\e1:!RC\e0JW\e1:\e0$i\e19\e(B, \e,Td\e04i\e1a\e0!h\e1\e(B C-s \e,TaEP\e(B C-r), \e,T!RC\e0JW\e1:\e(B
-\e0\e,T$i\e19(P\e0JTi\e19\e0JX\e14E'\e(B.
-
-\e,T$S\e0JQh\e1'\e(B C-s \e,T`\e0CTh\e1A!RC\e0JW\e1:\e0$i\e19\e04i\e1GB!RCAM'KRJRB\e0MQ\e1!"CP\e05Qi\e1'a\e05h\e15SaK\e09h\e1'\e0;Q\e1(\e0(X\e1\e0:Q\e19"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B.
-\e0\e,T6i\e1R\e07h\e1R9\e05i\e1M'!RC\e0JW\e1:\e0$i\e19JRB\e0MQ\e1!"CP\e07Uh\e1M\e0BYh\e1\e0!h\e1M9K\e09i\e1Rc9\e0"i\e1M$GRA\e09Qi\e19\e(B, \e,Tc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B C-r \e,Ta79\e(B.
-\e,T$S\e0JQh\e1'\e(B C-s \e,T(P7S'R9`K\e0AW\e1M9\e0!Q\e1:$S\e0JQh\e1'\e(B C-r \e0\e,T7X\e1!M\e0Bh\e1R'\e(B, \e,TB!`\e0Gi\e19\e07T\e1H7R'"M'!RC\e0JW\e1:\e0$i\e19\e(B
-\e,T`\e07h\e1R\e09Qi\e19\e(B, \e0\e,T7Uh\e15C'\e0"i\e1RA\e0!Q\e19\e(B.
-
-
-* \e0\e,TGT\e19b4\e0Gl\e1a::KERB\e0GT\e19b4\e0Gl\e1\e(B (multiple windows)
+อีแมกส์สามารถสืบค้นสายอักขระ (กลุ่มของตัวอักษรหรือคำที่อยู่ต่อเนื่องกัน) ไม่ว่าจะไป
+ข้างหน้าหรือย้อนกลับ, ทั่วทั้งข้อความ. การสืบค้นสายอักขระคือคำสั่งในการเคลื่อนตำแหน่ง
+ของเคอร์เซอร์; เคอร์เซอร์จะเคลื่อนไปอยู่ที่ตำแหน่งถัดไปที่มีสายอักขระนั้นอยู่.
+
+คำสั่งสืบค้นในอีแมกส์ต่างจากคำสั่งสืบค้นในโปรแกรมบรรณาธิกรณ์ (editor) ส่วนใหญ่, ใน
+ลักษณะที่เป็น "incremental". นี่หมายความว่าการสืบค้นเริ่มตั้งแต่ที่ท่านได้ป้อนอักขระที่
+ต้องการสืบค้น.
+
+คำสั่งที่ใช้เพื่อให้ทำการสืบค้นไปข้างหน้าคือ C-s, และทำการสืบค้นย้อนไปข้างหลังคือ
+C-r. แต่คอยก่อน! อย่าเพิ่งลอง.
+
+เมื่อท่านป้อนคำสั่ง C-s ท่านจะสังเกตเห็นว่ามีคำว่า "I-search" ปรากฏที่บริเวณสะท้อน
+(echo area). นี่แสดงว่าอีแมกส์ได้อยู่ในการค้นแบบ incremental และกำลังรอ
+สิ่งที่ท่านจะพิมพ์เพื่อสืบค้น. กดปุ่ม <Return> เพื่อสิ้นสุดคำสั่งสืบค้น.
+
+>> ป้อนคำสั่ง C-s เพื่อเริ่มการสืบค้น. พิมพ์อักษรทีละตัวช้าๆ, พิมพ์คำว่า 'cursor',
+   หยุดหลังจากที่ท่านพิมพ์ทีละตัวอักษร, แล้วดูว่ามีอะไรเกิดขึ้นกับเคอร์เซอร์.
+   ขณะนี้ท่านได้สืบค้นคำว่า "cursor" ไปหนึ่งหนแล้ว.
+>> ป้อนคำสั่ง C-s อีกครั้ง, เพื่อสืบค้นตำแหน่งถัดไปของคำว่า "cursor".
+>> กดปุ่ม <Delete> สักสี่ครั้ง, แล้วดูว่าเคอร์เซอร์เคลื่อนที่อย่างไร.
+>> กดปุ่ม <Return> เพื่อสิ้นสุดคำสั่งสืบค้น.
+
+ท่านเห็นหรือไม่ว่ามีอะไรเกิดขึ้น? ในการสืบค้นแบบ incremental, อีแมกส์พยายาม
+เคลื่อนไปตามสายอักขระที่ท่านได้พิมพ์ลงไปในแต่ละครั้ง. ถ้าจะเคลื่อนไปยังตำแหน่ง
+ถัดไปของคำ, ก็ทำได้โดยการป้อนคำสั่ง C-s อีกครั้ง. ถ้าไม่มีคำนั้นอีกแล้ว, อีแมกส์จะร้อง
+บอก (beep) ท่านว่าการสืบค้นครั้งนั้น "พลาด (failing)", คำสั่ง C-g ก็สามารถใช้ใน
+การสิ้นสุดการสืบค้นได้.
+
+ข้อสังเกต: ในบางระบบ, การป้อนคำสั่ง C-s จะทำให้ระบบของท่านชะงักและท่านจะไม่เห็น
+ข้อความอะไรบนอีแมกส์. ลักษณะนี้แสดงว่า "feature" ของระบบปฏิบัติการ, ที่เรียกว่า
+"flow control" นั้น, ได้ขัดขวางการทำงานของคำสั่ง C-s และไม่ยอมให้กลับสู่อีแมกส์
+อีก. การที่จะแก้ไขการหยุดชะงักนั้น, ให้ป้อนคำสั่ง C-q. ศึกษาวิธีการจัดการกับ "feature"
+นี้ได้ที่บทที่ว่าด้วย "Spontaneous Entry to Incremental Search" ในคู่มือของอีแมกส์.
+
+ถ้าท่านอยู่ระหว่างการสืบค้นแบบ incremental อยู่, แล้วท่านกดปุ่ม <Delete>, ท่านจะ
+สังเกตเห็นว่าตัวอักษรสุดท้ายที่ท่านป้อนเข้าไปนั้นถูกลบออก, และจะย้อนกลับไปยังตำแหน่ง
+ก่อนหน้าของการสืบค้น. ตัวอย่างเช่น, สมมุติว่าท่านได้ป้อนตัวอักษร "c", เพื่อที่จะสืบค้น
+ตำแหน่งที่ปรากฏตัวอักษร "c" นั้น. ตอนนี้ถ้าท่านพิมพ์ตัวอักษร "u", เคอร์เซอร์ก็จะ
+เคลื่อนไปอยู่ที่ตำแหน่งที่ปรากฏสายอักขระ "cu" แรกสุด. ตอนนี้ให้กดปุ่ม <Delete>.
+ตัวอักษร "u" จะถูกลบออกจากสายอักขระที่ทำการสืบค้นอยู่, และเคอร์เซอร์ก็จะเคลื่อน
+กลับไปยังตำแหน่งที่ปรากฏตัวอักษร "c" แรกสุด.
+
+ถ้าท่านอยู่ระหว่างการสืบค้น, แล้วป้อนคำสั่งประสมของ CONTROL หรือ META (นอกจาก
+ข้อยกเว้นบางประการ--คำสั่งพิเศษที่ใช้สำหรับการสืบค้น, ได้แก่ C-s และ C-r), การสืบ
+ค้นจะสิ้นสุดลง.
+
+คำสั่ง C-s เริ่มการสืบค้นด้วยการมองหาสายอักขระตั้งแต่ตำแหน่งปัจจุบันของเคอร์เซอร์.
+ถ้าท่านต้องการสืบค้นสายอักขระที่อยู่ก่อนหน้าในข้อความนั้น, ให้ป้อนคำสั่ง C-r แทน.
+คำสั่ง C-s จะทำงานเหมือนกับคำสั่ง C-r ทุกอย่าง, ยกเว้นทิศทางของการสืบค้น
+เท่านั้น, ที่ตรงข้ามกัน.
+
+
+* วินโดว์แบบหลายวินโดว์ (multiple windows)
 --------------------------------------
 
-\e0\e,TEQ\e1!I3P\e07Uh\e1\e09h\e1RJ9c(\e0MQ\e19K\e09Vh\e1'"M'\e0MU\e1aA!\e0Jl\e1\e0!g\e1\e0$W\e1M\e(B, \e0\e,T7h\e1R9JRARC6aJ4'<Ed\e04i\e1AR!!\e0Gh\e1RK\e09Vh\e1'\e0GT\e19b4\e0Gl\e1:9K\e09Vh\e1'\e(B
-\e,TK\e09i\e1R(Mc9`GER`\e04U\e1BG\e0!Q\e19\e(B.
+ลักษณะที่น่าสนใจอันหนึ่งของอีแมกส์ก็คือ, ท่านสามารถแสดงผลได้มากกว่าหนึ่งวินโดว์บนหนึ่ง
+หน้าจอในเวลาเดียวกัน.
 
->> \e,T`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1AR\e07Uh\e1:CC\e07Q\e14\e09Ui\e1\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-u 0 C-l.
+>> เคลื่อนเคอร์เซอร์มาที่บรรทัดนี้, แล้วป้อนคำสั่ง C-u 0 C-l.
 
->> \e0\e,T5h\e1Md;\e(B, \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 2 \e0\e,T+Vh\e1'(Pa\e0:h\e1'K\e09i\e1R(MMM!`\e0;g\e19JM'\e0GT\e19b4\e0Gl\e1\e(B.
-   \e0\e,T7Qi\e1'JM'\e0GT\e19b4\e0Gl\e1aJ4'\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e09Ui\e1\e(B. \e,T`$M\e0Cl\e1`+M\e0Cl\e1;CR!/M\e0BYh\e1c9\e0GT\e19b4\e0Gl\e1:9\e(B.
+>> ต่อไป, ป้อนคำสั่ง C-x 2 ซึ่งจะแบ่งหน้าจอออกเป็นสองวินโดว์.
+   ทั้งสองวินโดว์แสดงคู่มือการใช้นี้. เคอร์เซอร์ปรากฏอยู่ในวินโดว์บน.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-M-v \e,T`\e0>Wh\e1M`$\e0EWh\e1M9\e0Ai\e1G9\e0GT\e19b4\e0Gl\e1\e0"i\e1R'\e0Eh\e1R'\e(B.
-   (\e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1\e0AU\e1\e0;Xh\e1A\e(B META, \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B ESC C-v \e,Ta79\e(B.)
+>> ป้อนคำสั่ง C-M-v เพื่อเคลื่อนม้วนวินโดว์ข้างล่าง.
+   (ถ้าท่านไม่มีปุ่ม META, ป้อนคำสั่ง ESC C-v แทน.)
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x o ("o" \e,TKARB\e06V\e1'\e(B "other") \e,T`\e0>Wh\e1M`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1AR\e0BQ\e1'\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'\e(B.
->> \e,Tc\e0*i\e1$S\e0JQh\e1'\e(B C-v \e,TaEP\e(B M-v \e,Tc9\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9\e0Ai\e1G9\e(B.
-   \e0\e,TMh\e1R9$Sa9P9S\e09Ui\e1\e04i\e1GB\e0GT\e19b4\e0Gl\e1:9\e(B.
+>> ป้อนคำสั่ง C-x o ("o" หมายถึง "other") เพื่อเคลื่อนเคอร์เซอร์มายังวินโดว์ล่าง.
+>> ใช้คำสั่ง C-v และ M-v ในวินโดว์ล่างเพื่อที่จะเคลื่อนม้วน.
+   อ่านคำแนะนำนี้ด้วยวินโดว์บน.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x o \e0\e,TMU\e1!$\e0CQi\e1'`\e0>Wh\e1M\e07Uh\e1(P`$\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1!\e0EQ\e1:d;\e0GT\e19b4\e0Gl\e1:9\e(B.
-   \e,T`$M\e0Cl\e1`+M\e0Cl\e1c9\e0GT\e19b4\e0Gl\e1:9(P;CR!/5C'\e07Uh\e1\e07Uh\e1`$B;CR!/\e(B.
+>> ป้อนคำสั่ง C-x o อีกครั้งเพื่อที่จะเคลื่อนเคอร์เซอร์กลับไปวินโดว์บน.
+   เคอร์เซอร์ในวินโดว์บนจะปรากฏตรงที่ที่เคยปรากฏ.
 
-\e0\e,T7h\e1R9JRARC6c\e0*i\e1$S\e0JQh\e1'\e(B C-x o \e,T`\e0>Wh\e1MJ\e0EQ\e1:d;ARCPK\e0Gh\e1R'\e0GT\e19b4\e0Gl\e1\e(B. \e,Ta\e05h\e1EP\e0GT\e19b4\e0Gl\e1\e0AU\e15SaK\e09h\e1'"M'\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1"M'\e05Q\e1G`M'\e(B, \e,Ta\e05h\e1(P\e0AU\e1`\e0>U\e1B'\e0GT\e19b4\e0Gl\e1`\e04U\e1BG`\e07h\e1R\e09Qi\e19\e07Uh\e1aJ4'\e05Q\e1G`$M\e0Cl\e1`+M\e0Cl\e1\e(B. \e0\e,T7X\e1!$S\e0JQh\e1'\e0!g\e1(P\e(B
-\e0\e,TAU\e1<E\e05h\e1M\e0GT\e19b4\e0Gl\e1\e07Uh\e1\e0AU\e1`$M\e0Cl\e1`+M\e0Cl\e1;CR!/M\e0BYh\e1`\e07h\e1R\e09Qi\e19\e(B. \e,T`CR`\e0CU\e1B!\e0GT\e19b4\e0Gl\e1\e09Ui\e1\e0Gh\e1R\e(B "\e0\e,TGT\e19b4\e0Gl\e1\e07Uh\e1\e06Y\e1!`\e0EW\e1M!\e(B
+ท่านสามารถใช้คำสั่ง C-x o เพื่อสลับไปมาระหว่างวินโดว์. แต่ละวินโดว์มีตำแหน่งของ
+เคอร์เซอร์ของตัวเอง, แต่จะมีเพียงวินโดว์เดียวเท่านั้นที่แสดงตัวเคอร์เซอร์. ทุกคำสั่งก็จะ
+มีผลต่อวินโดว์ที่มีเคอร์เซอร์ปรากฏอยู่เท่านั้น. เราเรียกวินโดว์นี้ว่า "วินโดว์ที่ถูกเลือก
 (selected window)".
 
-\e,T$S\e0JQh\e1'\e(B C-M-v \e0\e,TAU\e1;CPbB*\e09l\e1AR!`\e0AWh\e1M\e07h\e1R9!S\e0EQ\e1'a\e0!i\e1d"\e0"i\e1M$GRA:9\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'\e(B, \e,TaEP\e04Y\e1\e0MU\e1!\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'\e(B
-\e,T`\e0>Wh\e1M!RC\e0Mi\e1R'\e0MT\e1'\e(B. \e0\e,T7h\e1R9JRARC6c\e0Ki\e1`$M\e0Cl\e1`+M\e0Cl\e1;CR!/:9\e0GT\e19b4\e0Gl\e1\e07Uh\e1\e07h\e1R9!S\e0EQ\e1'a\e0!i\e1d"M\e0BYh\e15EM4`GER\e(B,
-\e,Ta\e0Ei\e1G`$\e0EWh\e1M95SaK\e09h\e1'"M'\e0MU\e1!\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'\e04i\e1GB$S\e0JQh\e1'\e(B C-M-v.
+คำสั่ง C-M-v มีประโยชน์มากเมื่อท่านกำลังแก้ไขข้อความบนวินโดว์หนึ่ง, และดูอีกวินโดว์หนึ่ง
+เพื่อการอ้างอิง. ท่านสามารถให้เคอร์เซอร์ปรากฏบนวินโดว์ที่ท่านกำลังแก้ไขอยู่ตลอดเวลา,
+แล้วเคลื่อนตำแหน่งของอีกวินโดว์หนึ่งด้วยคำสั่ง C-M-v.
 
-\e,T$S\e0JQh\e1'\e(B C-M-v \e,T`\e0;g\e19\e05Q\e1GM\e0Bh\e1R'K\e09Vh\e1'"M'$S\e0JQh\e1';CPJA\e(B CONTROL-META. \e0\e,T6i\e1R\e07h\e1R9\e0AU\e1\e0;Xh\e1A\e(B META,
-\e0\e,T7h\e1R9JRARC6\e0;i\e1M9$S\e0JQh\e1'\e(B C-M-v \e,Tb4B!RC!4\e0;Xh\e1A\e(B CONTROL \e,TaEP\e(B META \e,T"3P\e07Uh\e1!4\e0;Xh\e1A\e0MQ\e1!"CP\e(B
-v. \e,Td\e0Ah\e1\e0Gh\e1R(P!4\e0;Xh\e1A\e(B CONTROL \e,TK\e0CW\e1M\e(B META \e0\e,T!h\e1M9\e0!g\e1d\e0Ah\e1\e0AU\e1\e0;Q\e1-KRMPdC\e(B, \e,T`>CRP\e0Gh\e1R\e07Qi\e1'JM'\e0;Xh\e1A`\e0;g\e19\e0;Xh\e1A\e(B
-\e,T"BRB"M'\e0;Xh\e1A\e0MQ\e1!"CP\e07Uh\e1\e07h\e1R9(P!4\e(B.
+คำสั่ง C-M-v เป็นตัวอย่างหนึ่งของคำสั่งประสม CONTROL-META. ถ้าท่านมีปุ่ม META,
+ท่านสามารถป้อนคำสั่ง C-M-v โดยการกดปุ่ม CONTROL และ META ขณะที่กดปุ่มอักขระ
+v. ไม่ว่าจะกดปุ่ม CONTROL หรือ META ก่อนก็ไม่มีปัญหาอะไร, เพราะว่าทั้งสองปุ่มเป็นปุ่ม
+ขยายของปุ่มอักขระที่ท่านจะกด.
 
-\e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1\e0AU\e1\e0;Xh\e1A\e(B META, \e,TaEP\e07h\e1R9c\e0*i\e1\e0;Xh\e1A\e(B ESC \e,Ta79\e(B, \e,TES\e04Q\e1:"M'!RC!4\e0;Xh\e1A(P\e0AU\e1<E\e05h\e1M!RC7S'R9\e(B:
-\e0\e,T7h\e1R9\e05i\e1M'!4\e0;Xh\e1A\e(B ESC \e,Ta\e0Ei\e1G5RA\e04i\e1GB$S\e0JQh\e1'\e(B CONTROL-v, \e,T`>CRP\e0Gh\e1R$S\e0JQh\e1'\e(B CONTROL-ESC v \e,T(Pd\e0Ah\e1\e(B
-\e,T7S'R9\e(B. \e0\e,T7Qi\e1'\e09Ui\e1`>CRP\e0Gh\e1R\e0;Xh\e1A\e(B ESC \e,T`\e0;g\e19\e0MQ\e1!"CP\e05Q\e1GK\e09Vh\e1'\e(B, \e,Td\e0Ah\e1c\e0*h\e1\e0;Xh\e1A"BRB\e(B.
+ถ้าท่านไม่มีปุ่ม META, และท่านใช้ปุ่ม ESC แทน, ลำดับของการกดปุ่มจะมีผลต่อการทำงาน:
+ท่านต้องกดปุ่ม ESC แล้วตามด้วยคำสั่ง CONTROL-v, เพราะว่าคำสั่ง CONTROL-ESC v จะไม่
+ทำงาน. ทั้งนี้เพราะว่าปุ่ม ESC เป็นอักขระตัวหนึ่ง, ไม่ใช่ปุ่มขยาย.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 1 (\e,Tc9\e0GT\e19b4\e0Gl\e1:9\e(B) \e,T`\e0>Wh\e1M!S\e0(Q\e14\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'\e(B.
+>> ป้อนคำสั่ง C-x 1 (ในวินโดว์บน) เพื่อกำจัดวินโดว์ล่าง.
 
-(\e0\e,T6i\e1R\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,Tc9\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'\e(B, \e0\e,TGT\e19b4\e0Gl\e1:9\e0!g\e1(PKRBd;\e(B. \e0\e,T7h\e1R9JRARC6(S\e(B
-\e,T$S\e0JQh\e1'\e09Ui\e1d\e04i\e1b4B\e0$T\e14\e0Gh\e1R\e(B "\e,T`K\e0EW\e1Md\e0Gi\e1`\e0>U\e1B'K\e09Vh\e1'\e0GT\e19b4\e0Gl\e1\e(B--\e0\e,TGT\e19b4\e0Gl\e1\e07Uh\e1M\e0BYh\e1c9"3P\e09Ui\e1\e(B.")
+(ถ้าท่านป้อนคำสั่ง C-x 1 ในวินโดว์ล่าง, วินโดว์บนก็จะหายไป. ท่านสามารถจำ
+คำสั่งนี้ได้โดยคิดว่า "เหลือไว้เพียงหนึ่งวินโดว์--วินโดว์ที่อยู่ในขณะนี้.")
 
-\e0\e,T7h\e1R9d\e0Ah\e1(S`\e0;g\e19\e05i\e1M'aJ4'<E"M'\e0:Q\e1?`?M\e0Cl\e1`\e04U\e1BG\e0!Q\e19:9\e07Qi\e1'JM'\e0GT\e19b4\e0Gl\e1\e(B. \e0\e,T6i\e1R\e07h\e1R9c\e0*i\e1$S\e0JQh\e1'\e(B C-x C-f
-\e,T`\e0>Wh\e1M\e0$i\e19KRa\e0?i\e1A\e0"i\e1M\e0AY\e1Ec9\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'\e(B, \e0\e,TMU\e1!\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'(Pd\e0Ah\e1`;\e0EUh\e1B9a;E'\e(B. \e0\e,T7h\e1R9JRARC6\e0$i\e19KR\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1Ec9a\e05h\e1EP\e0GT\e19b4\e0Gl\e1d\e04i\e1\e0MT\e1JCP\e05h\e1M\e0!Q\e19\e(B.
+ท่านไม่จำเป็นต้องแสดงผลของบัฟเฟอร์เดียวกันบนทั้งสองวินโดว์. ถ้าท่านใช้คำสั่ง C-x C-f
+เพื่อค้นหาแฟ้มข้อมูลในวินโดว์หนึ่ง, อีกวินโดว์หนึ่งจะไม่เปลี่ยนแปลง. ท่านสามารถค้นหา
+แฟ้มข้อมูลในแต่ละวินโดว์ได้อิสระต่อกัน.
 
-\e0\e,T5h\e1Md;`\e0;g\e19\e0MU\e1!\e0GT\e1\e08U\e1K\e09Vh\e1'"M'!RCc\e0*i\e1JM'\e0GT\e19b4\e0Gl\e1JSK\e0CQ\e1:aJ4'<E"M'JM'\e0JTh\e1'\e07Uh\e1\e05h\e1R'\e0!Q\e19\e(B:
+ต่อไปเป็นอีกวิธีหนึ่งของการใช้สองวินโดว์สำหรับแสดงผลของสองสิ่งที่ต่างกัน:
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 4 C-f \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B. \e0\e,TJTi\e19\e0JX\e14$S\e0JQh\e1'\e04i\e1GB!RC!4\e0;Xh\e1A\e(B
-   <Return>. \e,T(P`\e0Kg\e19\e0Gh\e1R\e0AU\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e05i\e1M'!RC;CR!/M\e0BYh\e1c9\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'\e(B. \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e0!g\e1(Pd;\e(B
-   \e,T;CR!/\e07Uh\e1\e0GT\e19b4\e0Gl\e1\e09Qi\e19\e04i\e1GB\e(B.
+>> ป้อนคำสั่ง C-x 4 C-f แล้วตามด้วยชื่อแฟ้มข้อมูล. สิ้นสุดคำสั่งด้วยการกดปุ่ม
+   <Return>. จะเห็นว่ามีแฟ้มข้อมูลที่ต้องการปรากฏอยู่ในวินโดว์ล่าง. เคอร์เซอร์ก็จะไป
+   ปรากฏที่วินโดว์นั้นด้วย.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x o \e,T`\e0>Wh\e1M!\e0EQ\e1:d;\e0BQ\e1'\e0GT\e19b4\e0Gl\e1:9\e(B, \e,Ta\e0Ei\e1G\e0;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,T`\e0>Wh\e1M!S\e0(Q\e14\e0GT\e19b4\e0Gl\e1\e0Eh\e1R'\e(B.
+>> ป้อนคำสั่ง C-x o เพื่อกลับไปยังวินโดว์บน, แล้วป้อนคำสั่ง C-x 1 เพื่อกำจัดวินโดว์ล่าง.
 
 
-* \e,TCP\e04Q\e1:"M'!RCa\e0!i\e1d"a::`\e0CU\e1B!\e0+i\e1S\e(B (recursive editing levels)
+* ระดับของการแก้ไขแบบเรียกซ้ำ (recursive editing levels)
 -------------------------------------------------------
 
-\e,T:R'$\e0CQi\e1'\e07h\e1R9MR((P`\e0"i\e1Rd;M\e0BYh\e1c9\e(B "\e,TCP\e04Q\e1:"M'!RCa\e0!i\e1d"a::!RC`\e0CU\e1B!\e0+i\e1S\e(B (recursive editing
-level)". \e,TJ@R>\e04Q\e1'!\e0Eh\e1RG`\e0*h\e19\e09Ui\e1aJ4'\e04i\e1GBG'`\e0Eg\e1:\e0!i\e1RA\e0;Y\e1c9:CC\e07Q\e14aJ4'bKA4\e(B, \e0\e,TEi\e1MACM:G'`\e0Eg\e1:\e07Uh\e1\e(B
-\e,TaJ4'\e0*Wh\e1M"M'bKA4K\e0EQ\e1!\e(B. \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B, \e0\e,T7h\e1R9MR((P`\e0Kg\e19\e(B [(Fundamental)] \e,Ta79\e07Uh\e1(P`\e0;g\e19\e(B
+บางครั้งท่านอาจจะเข้าไปอยู่ใน "ระดับของการแก้ไขแบบการเรียกซ้ำ (recursive editing
+level)". สภาพดังกล่าวเช่นนี้แสดงด้วยวงเล็บก้ามปูในบรรทัดแสดงโหมด, ล้อมรอบวงเล็บที่
+แสดงชื่อของโหมดหลัก. ตัวอย่างเช่น, ท่านอาจจะเห็น [(Fundamental)] แทนที่จะเป็น
 (Fundamental).
 
-\e,Tc9!RC\e07Uh\e1(PMM!(R!CP\e04Q\e1:"M'!RCa\e0!i\e1d"a::`\e0CU\e1B!\e0+i\e1S\e(B, \e,T!4\e0;Xh\e1A\e(B ESC ESC ESC. \e0\e,T9Uh\e1`\e0;g\e19\e(B
-\e,T$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1d\e04i\e1\e07Qh\e1Gd;c9!RCMM!(R!CP\e04Q\e1:c4f\e(B \e,T"M'!RC;CPAGE<E\e(B. \e0\e,T7h\e1R9JRARC6c\e0*i\e1$S\e0JQh\e1'\e09Ui\e1c9\e(B
-\e,T!RC!S\e0(Q\e14\e0GT\e19b4\e0Gl\e1\e0>T\e1`HI\e0MWh\e19f\e(B, \e,TCGA\e07Qi\e1'!RCMM!(R!\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B (minibuffer).
+ในการที่จะออกจากระดับของการแก้ไขแบบเรียกซ้ำ, กดปุ่ม ESC ESC ESC. นี่เป็น
+คำสั่งที่ใช้ได้ทั่วไปในการออกจากระดับใดๆ ของการประมวลผล. ท่านสามารถใช้คำสั่งนี้ใน
+การกำจัดวินโดว์พิเศษอื่นๆ, รวมทั้งการออกจากมินิบัฟเฟอร์ (minibuffer).
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B M-x \e,T`\e0>Wh\e1M`\e0"i\e1Rd;c9\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B; \e,T!4\e0;Xh\e1A\e(B ESC ESC ESC \e,T`\e0>Wh\e1MMM!(R!\e(B
-   \e0\e,TAT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e09Qi\e19\e(B.
+>> ป้อนคำสั่ง M-x เพื่อเข้าไปในมินิบัฟเฟอร์; กดปุ่ม ESC ESC ESC เพื่อออกจาก
+   มินิบัฟเฟอร์นั้น.
 
-\e0\e,T7h\e1R9d\e0Ah\e1JRARC6c\e0*i\e1$S\e0JQh\e1'\e(B C-g \e,T`\e0>Wh\e1MMM!(R!CP\e04Q\e1:"M'!RCa\e0!i\e1d"a::`\e0CU\e1B!\e0+i\e1S\e(B.
-\e,T`>CRP\e0Gh\e1R$S\e0JQh\e1'\e(B C-g \e,Tc\e0*i\e1`\e0>Wh\e1MB!`\e0ET\e1!$S\e0JQh\e1'aEPMR\e0Cl\e1\e0!T\e1G`A9\e05l\e1@RBc9CP\e04Q\e1:"M'!RCa\e0!i\e1d"a::\e(B
-\e,T`\e0CU\e1B!\e0+i\e1S\e(B.
+ท่านไม่สามารถใช้คำสั่ง C-g เพื่อออกจากระดับของการแก้ไขแบบเรียกซ้ำ.
+เพราะว่าคำสั่ง C-g ใช้เพื่อยกเลิกคำสั่งและอาร์กิวเมนต์ภายในระดับของการแก้ไขแบบ
+เรียกซ้ำ.
 
 
-* \e,T!RC`\e0CU\e1B!\e04Y\e1\e0"i\e1M$GRA\e0*h\e1GB`K\e0EW\e1M`\e0>Th\e1A`\e05T\e1A\e(B (getting more help)
+* การเรียกดูข้อความช่วยเหลือเพิ่มเติม (getting more help)
 -------------------------------------------------
 
-\e,Tc9\e0$Yh\e1\e0AW\e1M\e09Ui\e1`CR>BRBRA\e07Uh\e1(Pc\e0Ki\e1\e0"i\e1M\e0AY\e1E\e07Uh\e1`\e0>U\e1B'>MJSK\e0CQ\e1:!RC`\e0CTh\e1Ac\e0*i\e1\e0MU\e1aA!\e0Jl\e1\e(B. \e0\e,TBQ\e1'$'\e0AU\e1\e0"i\e1M\e0AY\e1E\e0MU\e1!AR!c9\e(B
-\e0\e,TMU\e1aA!\e0Jl\e1\e0+Vh\e1'`CRd\e0Ah\e1JRARC6\e07Uh\e1(P9SARM\e08T\e1:RBd\e0Gi\e1c9\e07Uh\e1\e09Ui\e1d\e04i\e1\e07Qi\e1'KA4\e(B. \e,TM\e0Bh\e1R'dC\e0!g\e15RA\e(B, \e0\e,T7h\e1R9MR(\e05i\e1M'!RC\e(B
-\e,T`\e0CU\e1B9\e0CYi\e1`\e0!Uh\e1BG\e0!Q\e1:\e0MU\e1aA!\e0Jl\e1`\e0>Th\e1A`\e05T\e1A`>CRP\e0MU\e1aA!\e0Jl\e1\e0BQ\e1'\e0AU\e1\e0$X\e13JA\e0:Q\e1\e05T\e1\e0MU\e1!AR!ARB\e(B. \e0\e,TMU\e1aA!\e0Jl\e1d\e04i\e1`5\e0CU\e1BA$S\e0JQh\e1'\e(B
-\e,TJSK\e0CQ\e1:`\e0CU\e1B!\e04Y\e1`\e09Wi\e1MKR`\e0!Uh\e1BG\e0!Q\e1:$S\e0JQh\e1'"M'\e0MU\e1aA!\e0Jl\e1\e(B. \e,T$S\e0JQh\e1'\e(B "\e0\e,T*h\e1GB`K\e0EW\e1M\e(B (help)" \e0\e,T7Qi\e1'KA4`\e0CTh\e1A\e04i\e1GB\e(B
-\e0\e,TMQ\e1!"CP\e(B CONTROL-h, \e0\e,T+Vh\e1'`\e0CU\e1B!\e0Gh\e1R\e(B "\e0\e,TMQ\e1!"CP\e0*h\e1GB`K\e0EW\e1M\e(B (the Help character)".
+ในคู่มือนี้เราพยายามที่จะให้ข้อมูลที่เพียงพอสำหรับการเริ่มใช้อีแมกส์. ยังคงมีข้อมูลอีกมากใน
+อีแมกส์ซึ่งเราไม่สามารถที่จะนำมาอธิบายไว้ในที่นี้ได้ทั้งหมด. อย่างไรก็ตาม, ท่านอาจต้องการ
+เรียนรู้เกี่ยวกับอีแมกส์เพิ่มเติมเพราะอีแมกส์ยังมีคุณสมบัติอีกมากมาย. อีแมกส์ได้เตรียมคำสั่ง
+สำหรับเรียกดูเนื้อหาเกี่ยวกับคำสั่งของอีแมกส์. คำสั่ง "ช่วยเหลือ (help)" ทั้งหมดเริ่มด้วย
+อักขระ CONTROL-h, ซึ่งเรียกว่า "อักขระช่วยเหลือ (the Help character)".
 
-\e,Tc9!RC\e07Uh\e1(Pc\e0*i\e1\e0$X\e13JA\e0:Q\e1\e05T\e1\e0*h\e1GB`K\e0EW\e1M\e(B, \e0\e,T;i\e1M9\e0MQ\e1!"CP\e(B C-h, \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e0MU\e1!K\e09Vh\e1'\e0MQ\e1!"CP`\e0>Wh\e1M:M!\e0Gh\e1R\e(B
-\e0\e,T7h\e1R9\e05i\e1M'!RC$S\e0*h\e1GB`K\e0EW\e1MMPdC\e(B. \e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e17CR:\e0Gh\e1R(P7SMPdC\e05h\e1Md;\e(B, \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h ? \e,Ta\e0Ei\e1G\e(B
-\e0\e,TMU\e1aA!\e0Jl\e1(P:M!\e07h\e1R9\e0Gh\e1R\e0AU\e1$S\e0*h\e1GBMPdC\e07Uh\e1\e0MU\e1aA!\e0Jl\e1JRARC6(Pc\e0Ki\e1d\e04i\e1\e(B. \e0\e,T6i\e1R\e07h\e1R9\e0;i\e1M9$S\e0JQh\e1'\e(B C-h \e,Ta\e0Ei\e1G\e(B
-\e0\e,T5i\e1M'!RCB!`\e0ET\e1!\e07h\e1R9\e(B, \e0\e,T!g\e1JRARC6B!`\e0ET\e1!d\e04i\e1b4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-g.
+ในการที่จะใช้คุณสมบัติช่วยเหลือ, ป้อนอักขระ C-h, แล้วตามด้วยอีกหนึ่งอักขระเพื่อบอกว่า
+ท่านต้องการคำช่วยเหลืออะไร. ถ้าท่านไม่ทราบว่าจะทำอะไรต่อไป, ป้อนคำสั่ง C-h ? แล้ว
+อีแมกส์จะบอกท่านว่ามีคำช่วยอะไรที่อีแมกส์สามารถจะให้ได้. ถ้าท่านป้อนคำสั่ง C-h แล้ว
+ต้องการยกเลิกท่าน, ก็สามารถยกเลิกได้โดยใช้คำสั่ง C-g.
 
-(\e,Tc9:R'CP::\e09Qi\e19\e(B, \e,T$GRAKARB"M'\e0MQ\e1!"CP\e(B C-h \e,Td\e04i\e1\e06Y\e1!`;\e0EUh\e1B9d;\e(B. \e0\e,T+Vh\e1'b4B$GRA`\e0;g\e19(\e0CT\e1'a\e0Ei\e1Gd\e0Ah\e1\e(B
-\e,T$GC(P7S`\e0*h\e19\e09Ui\e1\e(B, \e0\e,T7Qi\e1'\e09Ui\e1\e07h\e1R9MR((P\e0*Ui\e1a('\e05h\e1M\e0<Yi\e1\e04Y\e1aECP::d\e04i\e1\e(B. \e,TJSK\e0CQ\e1:!RCa\e0!i\e1\e0;Q\e1-KR`)>RPK\e09i\e1R\e(B, \e0\e,T6i\e1R\e(B
-\e,T$S\e0JQh\e1'\e(B C-h \e,Td\e0Ah\e1d\e04i\e1aJ4'\e0"i\e1M$GRA`\e0!Uh\e1BG\e0!Q\e1:$S\e0*h\e1GB`K\e0EW\e1M\e07Uh\e1\e0Jh\e1G9\e0Eh\e1R'"M'K\e09i\e1R(M\e09Qi\e19\e(B, \e,Tc\e0Ki\e1EM'!4\e0;Xh\e1A\e(B F1
-\e,TK\e0CW\e1M\e(B M-x help<Return> \e,Ta79\e(B.)
+(ในบางระบบนั้น, ความหมายของอักขระ C-h ได้ถูกเปลี่ยนไป. ซึ่งโดยความเป็นจริงแล้วไม่
+ควรจะทำเช่นนี้, ทั้งนี้ท่านอาจจะชี้แจงต่อผู้ดูแลระบบได้. สำหรับการแก้ปัญหาเฉพาะหน้า, ถ้า
+คำสั่ง C-h ไม่ได้แสดงข้อความเกี่ยวกับคำช่วยเหลือที่ส่วนล่างของหน้าจอนั้น, ให้ลองกดปุ่ม F1
+หรือ M-x help<Return> แทน.)
 
-\e0\e,T$X\e13JA\e0:Q\e1\e05T\e1`\e0:Wi\e1M'\e05i\e19"M'$S\e0JQh\e1'\e0*h\e1GB`K\e0EW\e1M\e0$W\e1M$S\e0JQh\e1'\e(B C-h c. \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-h, \e0\e,TMQ\e1!"CP\e(B c, \e,Ta\e0Ei\e1G\e(B
-\e,T5RA\e04i\e1GB\e0MQ\e1!"CPK\e0CW\e1MJRB\e0MQ\e1!"CP\e(B; \e,Ta\e0Ei\e1G\e0MU\e1aA!\e0Jl\e1(PaJ4'$SM\e08T\e1:RB"M'$S\e0JQh\e1'\e09Qi\e19b4B\e0JQ\e1'`";\e(B.
+คุณสมบัติเบื้องต้นของคำสั่งช่วยเหลือคือคำสั่ง C-h c. ลองป้อนคำสั่ง C-h, อักขระ c, แล้ว
+ตามด้วยอักขระหรือสายอักขระ; แล้วอีแมกส์จะแสดงคำอธิบายของคำสั่งนั้นโดยสังเขป.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h c CONTROL-p.
-   \e0\e,T"i\e1M$GRA\e07Uh\e1;CR!/(P`\e0;g\e19\e04Q\e1'\e05h\e1Md;\e09Ui\e1\e(B
+>> ป้อนคำสั่ง C-h c CONTROL-p.
+   ข้อความที่ปรากฏจะเป็นดังต่อไปนี้
 
        C-p runs the command previous-line
 
-\e0\e,T9Uh\e1`\e0;g\e19!RC:M!\e(B "\e0\e,T*Wh\e1M\e0?Q\e1'\e0!l\e1\e0*Q\e19"M'$S\e0JQh\e1'\e(B" \e0\e,T9Qi\e19\e(B. \e0\e,T*Wh\e1M"M'\e0?Q\e1'\e0!l\e1\e0*Q\e19c\e0*i\e1`\e0>Wh\e1M!RC;\e0CQ\e1:aEPa\e05h\e1'`\e05T\e1A\e0MU\e1aA!\e0Jl\e1\e(B.
-\e,Ta\e05h\e1`\e09Wh\e1M'(R!\e0*Wh\e1M"M'\e0?Q\e1'\e0!l\e1\e0*Q\e19\e09Qi\e19\e05Qi\e1'`\e0>Wh\e1M\e0*Ui\e1:M!\e0Gh\e1R$S\e0JQh\e1'\e09Qi\e197S'R9M\e0Bh\e1R'dC\e(B, \e0\e,T+Vh\e1'MR(`\e0;g\e19\e05Q\e1G\e0*h\e1GB:M!\e(B
-\e,T$SM\e08T\e1:RBb4B\e0JQ\e1'`";d\e04i\e1\e(B--\e,TMR(`\e0>U\e1B'>M\e07Uh\e1(P`\e05W\e1M9c\e0Ki\e1\e07h\e1R9\e09V\e1!\e06V\e1'$S\e0JQh\e1'\e07Uh\e1\e05i\e1M'!RCd\e04i\e1\e(B.
+นี่เป็นการบอก "ชื่อฟังก์ชันของคำสั่ง" นั้น. ชื่อของฟังก์ชันใช้เพื่อการปรับและแต่งเติมอีแมกส์.
+แต่เนื่องจากชื่อของฟังก์ชันนั้นตั้งเพื่อชี้บอกว่าคำสั่งนั้นทำงานอย่างไร, ซึ่งอาจเป็นตัวช่วยบอก
+คำอธิบายโดยสังเขปได้--อาจเพียงพอที่จะเตือนให้ท่านนึกถึงคำสั่งที่ต้องการได้.
 
-\e,T$S\e0JQh\e1'\e07Uh\e1;CP!M:\e04i\e1GBKERB\e0MQ\e1!"CP\e(B \e,T`\e0*h\e19$S\e0JQh\e1'\e(B C-x C-s \e,TaEP\e(B (\e0\e,T6i\e1R\e07h\e1R9d\e0Ah\e1\e0AU\e1\e0;Xh\e1A\e(B META \e,TK\e0CW\e1M\e(B
-EDIT \e,TK\e0CW\e1M\e(B ALT) \e,T$S\e0JQh\e1'\e(B <ESC>v \e,TJRARC6c\e0*i\e15RAK\e0EQ\e1'$S\e0JQh\e1'\e(B C-h c.
+คำสั่งที่ประกอบด้วยหลายอักขระ เช่นคำสั่ง C-x C-s และ (ถ้าท่านไม่มีปุ่ม META หรือ
+EDIT หรือ ALT) คำสั่ง <ESC>v สามารถใช้ตามหลังคำสั่ง C-h c.
 
-\e,T!RC\e07Uh\e1(P`\e0CU\e1B!\e04Y\e1\e0"i\e1M\e0AY\e1E`\e0>Th\e1A`\e0!Uh\e1BG\e0!Q\e1:$S\e0JQh\e1'\e(B, \e,Tc\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B C-h k \e,Ta79$S\e0JQh\e1'\e(B C-h c.
+การที่จะเรียกดูข้อมูลเพิ่มเกี่ยวกับคำสั่ง, ให้ใช้คำสั่ง C-h k แทนคำสั่ง C-h c.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h k CONTROL-p.
+>> ป้อนคำสั่ง C-h k CONTROL-p.
 
-\e0\e,T9Uh\e1`\e0;g\e19!RCaJ4'<E$SM\e08T\e1:RB"M'\e0?Q\e1'\e0!l\e1\e0*Q\e19\e(B, \e,T>\e0Ci\e1MA\e0!Q\e1:\e0*Wh\e1M"M'$S\e0JQh\e1'\e09Qi\e19\e(B, \e,Tc9\e0GT\e19b4\e0Gl\e1K\e09Vh\e1'"M'\e0MU\e1aA!\e0Jl\e1\e(B.
-\e,T`\e0AWh\e1M\e07h\e1R9\e0Mh\e1R9`J\e0Cg\e1(a\e0Ei\e1G\e(B, \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,T`\e0>Wh\e1M!S\e0(Q\e14\e0"i\e1M$GRA"M'$S\e0*h\e1GB`K\e0EW\e1M\e(B. \e0\e,T7h\e1R9d\e0Ah\e1\e(B
-\e,T(S`\e0;g\e19\e07Uh\e1(P\e05i\e1M'7S\e07Q\e19\e07U\e1\e(B. \e0\e,T7h\e1R9MR(7S!RCa\e0!i\e1d""3P\e07Uh\e1\e04Y\e1\e0"i\e1M$GRA$S\e0*h\e1GB`K\e0EW\e1M\e09Qi\e19M\e0BYh\e1\e(B, \e,Ta\e0Ei\e1G\e(B
-\e0\e,T$h\e1MB\e0;i\e1M9$S\e0JQh\e1'\e(B C-x 1.
+นี่เป็นการแสดงผลคำอธิบายของฟังก์ชัน, พร้อมกับชื่อของคำสั่งนั้น, ในวินโดว์หนึ่งของอีแมกส์.
+เมื่อท่านอ่านเสร็จแล้ว, ป้อนคำสั่ง C-x 1 เพื่อกำจัดข้อความของคำช่วยเหลือ. ท่านไม่
+จำเป็นที่จะต้องทำทันที. ท่านอาจทำการแก้ไขขณะที่ดูข้อความคำช่วยเหลือนั้นอยู่, แล้ว
+ค่อยป้อนคำสั่ง C-x 1.
 
-\e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e19\e05Q\e1G`\e0EW\e1M!\e07Uh\e1`\e0;g\e19;CPbB*\e09l\e1\e(B:
+ต่อไปนี้เป็นตัวเลือกที่เป็นประโยชน์:
 
-   C-h f       \e,TM\e08T\e1:RB\e0?Q\e1'\e0!l\e1\e0*Q\e19\e(B. \e0\e,T>T\e1A\e0>l\e1\e0*Wh\e1M\e0?Q\e1'\e0!l\e1\e0*Q\e19\e07Uh\e1\e05i\e1M'!RC7CR:5RAE'd;\e(B.
+   C-h f       อธิบายฟังก์ชัน. พิมพ์ชื่อฟังก์ชันที่ต้องการทราบตามลงไป.
 
->> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-h f previous-line<Return>.
-   \e0\e,T9Uh\e1`\e0;g\e19!RC\e07Uh\e1(P7Sc\e0Ki\e1\e0MU\e1aA!\e0Jl\e1\e0>T\e1A\e0>l\e1\e0"i\e1M\e0AY\e1E\e07Qi\e1'KA4\e07Uh\e1\e0AU\e1`\e0!Uh\e1BG\e0!Q\e1:\e0?Q\e1'\e0!l\e1\e0*Q\e19"M'$S\e0JQh\e1'\e(B C-p.
+>> ลองป้อนคำสั่ง C-h f previous-line<Return>.
+   นี่เป็นการที่จะทำให้อีแมกส์พิมพ์ข้อมูลทั้งหมดที่มีเกี่ยวกับฟังก์ชันของคำสั่ง C-p.
 
-   C-h a       \e,T$S\e0JQh\e1'$GRA\e07Uh\e1`KARPJA\e(B (Command Apropos). \e0\e,T;i\e1M9$SK\e0EQ\e1!\e(B (keyword)
-               \e,Ta\e0Ei\e1G\e0MU\e1aA!\e0Jl\e1(PaJ4'CRB!RC"M'$S\e0JQh\e1'\e07Qi\e1'KA4\e07Uh\e1\e0AU\e1$SK\e0EQ\e1!;CP!M:M\e0BYh\e1\e(B.
-               \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1(P`\e0CU\e1B!c\e0*i\e1d\e04i\e1\e04i\e1GB$S\e0JQh\e1'\e(B META-x.
-               \e,TJSK\e0CQ\e1::R'$S\e0JQh\e1'\e(B, \e,T$S\e0JQh\e1'$GRA\e07Uh\e1`KARPJA\e(B (Command Apropos) \e,T(P\e(B
-               \e,TaJ4'CRB!RC"M'$S\e0JQh\e1'\e07Uh\e1;CP!M:\e04i\e1GBK\e09Vh\e1'K\e0CW\e1MJM'JRB\e0MQ\e1!"CP\e07Uh\e1c\e0*i\e1`\e0CU\e1B!\e(B
-               \e,T$S\e0JQh\e1'`\e04U\e1BG\e0!Q\e19\e04i\e1GB\e(B.
+   C-h a       คำสั่งความที่เหมาะสม (Command Apropos). ป้อนคำหลัก (keyword)
+               แล้วอีแมกส์จะแสดงรายการของคำสั่งทั้งหมดที่มีคำหลักประกอบอยู่.
+               คำสั่งเหล่านี้จะเรียกใช้ได้ด้วยคำสั่ง META-x.
+               สำหรับบางคำสั่ง, คำสั่งความที่เหมาะสม (Command Apropos) จะ
+               แสดงรายการของคำสั่งที่ประกอบด้วยหนึ่งหรือสองสายอักขระที่ใช้เรียก
+               คำสั่งเดียวกันด้วย.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-h a file<Return>.
+>> ป้อนคำสั่ง C-h a file<Return>.
 
-\e0\e,T9Uh\e1`\e0;g\e19!RCaJ4'CRB!RC"M'$S\e0JQh\e1';CP!M:"M'\e(B M-x \e0\e,T!Q\e1:\e(B "file" \e,Tc9\e0*Wh\e1M"M'$S\e0JQh\e1'\e(B
-\e0\e,T7Qi\e1'KA4c9\e0MU\e1!K\e09i\e1R(M\e(B. \e0\e,T7h\e1R9(P`\e0Kg\e19$S\e0JQh\e1';CP!M:\e0MQ\e1!"CP\e(B (character-command) \e,T`\e0*h\e19\e(B C-x
-C-f \e,TaJ4'M\e0BYh\e1\e0!Q\e1:\e0*Wh\e1M"M'$S\e0JQh\e1'\e09Qi\e19f\e(B \e,T`\e0*h\e19\e(B find-file.
+นี่เป็นการแสดงรายการของคำสั่งประกอบของ M-x กับ "file" ในชื่อของคำสั่ง
+ทั้งหมดในอีกหน้าจอ. ท่านจะเห็นคำสั่งประกอบอักขระ (character-command) เช่น C-x
+C-f แสดงอยู่กับชื่อของคำสั่งนั้นๆ เช่น find-file.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-M-v \e,T`\e0>Wh\e1M`$\e0EWh\e1M9\e0Ai\e1G9\e0GT\e19b4\e0Gl\e1$S\e0*h\e1GB`K\e0EW\e1M\e(B (help window). \e,TEM'7S\e04Y\e1\e0JQ\e1!\e(B
-   \e,TJM'JRA$\e0CQi\e1'\e(B.
+>> ป้อนคำสั่ง C-M-v เพื่อเคลื่อนม้วนวินโดว์คำช่วยเหลือ (help window). ลองทำดูสัก
+   สองสามครั้ง.
 
->> \e0\e,T;i\e1M9$S\e0JQh\e1'\e(B C-x 1 \e,T`\e0>Wh\e1M!S\e0(Q\e14\e0GT\e19b4\e0Gl\e1$S\e0*h\e1GB`K\e0EW\e1M\e(B.
+>> ป้อนคำสั่ง C-x 1 เพื่อกำจัดวินโดว์คำช่วยเหลือ.
 
 
-* \e,TJ\e0CX\e1;\e(B
+* สรุป
 -----
 
-\e0\e,TJTh\e1'$GC(Sd\e0Gi\e1\e0$W\e1M\e(B, \e,T$S\e0JQh\e1'\e(B C-x C-c \e,Tc\e0*i\e1JSK\e0CQ\e1:MM!(R!\e0MU\e1aA!\e0Jl\e1M\e0Bh\e1R'6RGC\e(B. \e0\e,T6i\e1R\e05i\e1M'!RCMM!d;\e0BQ\e1'\e(B
-\e,T`*E\e0El\e1\e0*Qh\e1G$CRG\e(B, \e,TaEPJRARC6!\e0EQ\e1:AR\e0BQ\e1'\e0MU\e1aA!\e0Jl\e1d\e04i\e1\e0MU\e1!\e09Qi\e19\e(B, \e,Tc\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B C-z.
+สิ่งควรจำไว้คือ, คำสั่ง C-x C-c ใช้สำหรับออกจากอีแมกส์อย่างถาวร. ถ้าต้องการออกไปยัง
+เชลล์ชั่วคราว, และสามารถกลับมายังอีแมกส์ได้อีกนั้น, ให้ใช้คำสั่ง C-z.
 
-\e0\e,T$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e09Ui\e1\e0AU\e1`(59Rc\e0Ki\e1\e0<Yi\e1\e07Uh\e1`\e0>Th\e1'`\e0CTh\e1Ac\e0*i\e1\e07Qi\e1'KERBJRARC6`\e0"i\e1Rc(d\e04i\e1\e(B, \e0\e,T4Q\e1'\e09Qi\e19\e06i\e1R\e07h\e1R9>::R'\e0JTh\e1'\e07Uh\e1d\e0Ah\e1\e(B
-\e0\e,T*Q\e14`(9\e(B, \e,Td\e0Ah\e1\e05i\e1M'\e09Qh\e1'5SK\e09T\e1\e05Q\e1G`M'\e(B - \e,TJM:6RAARd\e04i\e1`EB\e(B!
+คู่มือการใช้นี้มีเจตนาให้ผู้ที่เพิ่งเริ่มใช้ทั้งหลายสามารถเข้าใจได้, ดังนั้นถ้าท่านพบบางสิ่งที่ไม่
+ชัดเจน, ไม่ต้องนั่งตำหนิตัวเอง - สอบถามมาได้เลย!
 
 
-* \e,T!RC7SJS`9R\e(B (copying)
+* การทำสำเนา (copying)
 ----------------------
 
-\e0\e,T$Yh\e1\e0AW\e1M\e09Ui\e1d\e04i\e1\e0CQ\e1:!RC\e0>Q\e129RAR`\e0;g\e19CPBP`GER9R9\e(B, \e,T`\e0CTh\e1A\e05Qi\e1'a\e05h\e1\e05i\e19)\e0:Q\e1:\e07Uh\e1`\e0"U\e1B9b4B\e(B Stuart Cracraft.
+คู่มือนี้ได้รับการพัฒนามาเป็นระยะเวลานาน, เริ่มตั้งแต่ต้นฉบับที่เขียนโดย Stuart Cracraft.
 
-\e0\e,T$Yh\e1\e0AW\e1M`GM\e0Cl\e1\e0*Q\e19\e09Ui\e1\e(B, \e,T`\e0*h\e19`\e04U\e1BG\e0!Q\e1:\e(B GNU Emacs, \e,Td\e04i\e1\e0CQ\e1:!RCJ'G9\e0JT\e17\e08Tl\e1\e(B, \e,TaEP<9G!d\e0Gi\e1c9`\e0'Wh\e1M9d"c9\e(B
-\e,T!RC`<Ba>\e0Ch\e1\e04i\e1GB\e(B:
+คู่มือเวอร์ชันนี้, เช่นเดียวกับ GNU Emacs, ได้รับการสงวนสิทธิ์, และผนวกไว้ในเงื่อนไขใน
+การเผยแพร่ด้วย:
 
-\e,TJ'G9\e0ET\e1"\e0JT\e17\e08Tl\e1\e(B \e,T>\e(B.\e,TH\e(B. 2528, 2529 \e,Tb4B?\e0CU\e1+M?\e05l\e1aG\e0Cl\e1?RG\e09l\e1`4\e0*Q\e19\e(B (Free Software Foundation)
+สงวนลิขสิทธิ์ พ.ศ. 2528, 2529 โดยฟรีซอฟต์แวร์ฟาวน์เดชัน (Free Software Foundation)
 
-   \e0\e,T7X\e1!\e07h\e1R9\e0AU\e1\e0JT\e17\e08Tl\e1c9!RC7SJS`9RK\e0CW\e1M`<Ba>\e0Ch\e1`M!JRC\e09Ui\e1\e(B, \e,Tc9\e07X\e1!\e0JWh\e1M\e(B, \e,Tb4B\e05i\e1M'a9:\e0"i\e1M$GRAaJ4'\e(B
-   \e0\e,TJT\e17\e08Tl\e1aEP!RCM\e09X\e1-R5\e09Ui\e1d;>\e0Ci\e1MA\e04i\e1GB\e(B. \e0\e,T7Qi\e1'\e09Ui\e1`\e0>Wh\e1M\e0*Ui\e1c\e0Ki\e1`\e0Kg\e19\e0Gh\e1R\e0<Yi\e1`<Ba>\e0Ch\e1d\e04i\e1M\e09X\e1-R5c\e0Ki\e1\e0<Yi\e1\e07Uh\e1d\e04i\e1\e0CQ\e1:\e(B
-   \e,TJRARC67S!RC`<Ba>\e0Ch\e1\e05h\e1Md;d\e04i\e1b4BMR\e0HQ\e1B\e0"i\e1M$GRAc9`M!JRC\e09Ui\e1\e(B.
+   ทุกท่านมีสิทธิ์ในการทำสำเนาหรือเผยแพร่เอกสารนี้, ในทุกสื่อ, โดยต้องแนบข้อความแสดง
+   สิทธิ์และการอนุญาตนี้ไปพร้อมด้วย. ทั้งนี้เพื่อชี้ให้เห็นว่าผู้เผยแพร่ได้อนุญาตให้ผู้ที่ได้รับ
+   สามารถทำการเผยแพร่ต่อไปได้โดยอาศัยข้อความในเอกสารนี้.
 
-   \e,T!RCM\e09X\e1-R5\e09Qi\e19d\e04i\e1CGA\e06V\e1'\e0JT\e17\e08Tl\e1c9!RC`<Ba>\e0Ch\e1`GM\e0Cl\e1\e0*Q\e19\e07Uh\e1;\e0CQ\e1:;\e0CX\e1'a\e0Ei\e1G\e(B, \e,TK\e0CW\e1M\e0Jh\e1G9K\e09Vh\e1'"M'\e(B
-   \e,T`M!JRC\e09Ui\e1\e(B, \e,T@RBc\e05i\e1`\e0'Wh\e1M9d"\e0"i\e1R':9\e(B, \e,T5EM4(9\e0JT\e17\e08Tl\e1c9!RC:M!\e0Gh\e1Rc$C`\e0;g\e19\e0<Yi\e1;\e0CQ\e1:;\e0CX\e1'\e0Eh\e1R\e0JX\e14\e(B.
+   การอนุญาตนั้นได้รวมถึงสิทธิ์ในการเผยแพร่เวอร์ชันที่ปรับปรุงแล้ว, หรือส่วนหนึ่งของ
+   เอกสารนี้, ภายใต้เงื่อนไขข้างบน, ตลอดจนสิทธิ์ในการบอกว่าใครเป็นผู้ปรับปรุงล่าสุด.
 
-\e,T`\e0'Wh\e1M9d""M'!RC7SJS`9R\e0MU\e1aA!\e0Jl\e1(P\e0+Q\e1:\e0+i\e1M9AR!!\e0Gh\e1R\e09Ui\e1\e(B, \e,Ta\e05h\e1\e0AU\e1`(59RCA\e03l\e1\e07Uh\e1`K\e0AW\e1M9\e0!Q\e19\e(B. \e,T!\e0CX\e13R\e(B
-\e0\e,TMh\e1R9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B COPYING \e,Ta\e0Ei\e1G`<Ba>\e0Ch\e1JS`9R"M'\e(B GNU Emacs \e,Td;\e0BQ\e1'`\e0>Wh\e1M9f\e(B \e,T"M'\e07h\e1R9\e04i\e1GB\e(B.
-\e0\e,T*h\e1GB\e0!Q\e197SERBCP::KG'+M?\e05l\e1aG\e0Cl\e1\e(B ("\e,TaJ4'$GRA`\e0;g\e19`\e0(i\e1R\e0"i\e1RG`\e0(i\e1R"M'\e(B") \e0\e,T4i\e1GB!RCc\e0*i\e1\e(B,
-\e,T!RC`\e0"U\e1B9\e(B, \e,TaEP!RC`\e0;g\e19`\e0(i\e1R"M'\e0Ch\e1GA\e0!Q\e19"M'+M?\e05l\e1aG\e0Cl\e1`J\e0CU\e1\e(B (free software).
+เงื่อนไขของการทำสำเนาอีแมกส์จะซับซ้อนมากกว่านี้, แต่มีเจตนารมณ์ที่เหมือนกัน. กรุณา
+อ่านแฟ้มข้อมูล COPYING แล้วเผยแพร่สำเนาของ GNU Emacs ไปยังเพื่อนๆ ของท่านด้วย.
+ช่วยกันทำลายระบบหวงซอฟต์แวร์ ("แสดงความเป็นเจ้าข้าวเจ้าของ") ด้วยการใช้,
+การเขียน, และการเป็นเจ้าของร่วมกันของซอฟต์แวร์เสรี (free software).
 
 
-* \e0\e,T5i\e19)\e0:Q\e1:\e0Gh\e1R\e04i\e1GB`\e0CWh\e1M'!RC7SJS`9R\e(B
+* ต้นฉบับว่าด้วยเรื่องการทำสำเนา
 --------------------------
 
-\e0\e,T5h\e1Md;\e09Ui\e1`\e0;g\e19`M!JRC\e0Gh\e1R\e04i\e1GB`\e0CWh\e1M'!RC7SJS`9R\e07Uh\e1`\e0;g\e19\e05i\e19)\e0:Q\e1:\e(B. \e,T`M!JRC\e09Ui\e1;CR!/M\e0BYh\e1c9\e0$Yh\e1\e0AW\e1M!RCc\e0*i\e1\e(B
-\e0\e,TMU\e1aA!\e0Jl\e1)\e0:Q\e1:@RIR\e0MQ\e1'!DI\e(B, \e0\e,T+Vh\e1'`\e0;g\e19\e05i\e19)\e0:Q\e1:"M'`M!JRCa;E)\e0:Q\e1:\e09Ui\e1\e04i\e1GB\e(B.
+ต่อไปนี้เป็นเอกสารว่าด้วยเรื่องการทำสำเนาที่เป็นต้นฉบับ. เอกสารนี้ปรากฏอยู่ในคู่มือการใช้
+อีแมกส์ฉบับภาษาอังกฤษ, ซึ่งเป็นต้นฉบับของเอกสารแปลฉบับนี้ด้วย.
 
 This tutorial descends from a long line of Emacs tutorials
 starting with the one written by Stuart Cracraft for the original Emacs.
@@ -983,24 +983,24 @@ GNU Emacs to your friends.  Help stamp out software obstructionism
 ("ownership") by using, writing, and sharing free software!
 
 
-* \e,T$S\e0Jh\e1'\e07i\e1RB\e(B
+* คำส่งท้าย
 ---------
 
-\e0\e,T$Yh\e1\e0AW\e1M)\e0:Q\e1:\e09Ui\e1d\e04i\e1a;E(R!\e05i\e19)\e0:Q\e1:\e07Uh\e1`\e0;g\e19@RIR\e0MQ\e1'!DI\e(B, \e0\e,T+Vh\e1'(P;CR!/M\e0BYh\e1c9\e0MU\e1aA!\e0Jl\e1`GM\e0Cl\e1\e0*Q\e19\e(B 20.4.
-\e0\e,T<Yi\e1a;Ed\e04i\e17S!RCa;E\e0"Vi\e19ARcK\e0Ah\e1`\e09Wh\e1M'(R!)\e0:Q\e1:`\e0!h\e1R\e07Uh\e1`\e0;g\e19@RIRd7B\e(B, \e0\e,T+Vh\e1'a;Eb4B\e(B \e,T4C\e(B.\e,TAR9>\e(B \e,TG'\e0Hl\e1\e(B
-\e,TJRB\e0JX\e1GCC3\e(B, \e,Td\e04i\e1\e0MT\e1'\e0$Yh\e1\e0AW\e1M"M'\e0MU\e1aA!\e0Jl\e1`GM\e0Cl\e1\e0*Q\e19`\e0!h\e1R\e(B, \e,TaEP"3P\e09Ui\e1\e0MU\e1aA!\e0Jl\e1`GM\e0Cl\e1\e0*Q\e19\e(B 20.4 \e0\e,T!g\e1d\e04i\e1\e(B
-\e,T`;\e0EUh\e1B9a;E'd;AR!a\e0Ei\e1G\e(B. \e,T9M!(R!\e09Ui\e1\e(B, \e0\e,T<Yi\e1a;E\e0BQ\e1'd\e04i\e19S`$\e0CWh\e1M'KARBGCC$5M9ARc\e0*i\e1c9\e07Uh\e1\e09Ui\e1\e04i\e1GB\e(B,
-\e0\e,T7Qi\e1'\e09Ui\e1\e0!g\e1`\e0>Wh\e1M\e07Uh\e1(P`\e0"U\e1B9c\e0Ki\e1d\e04i\e1$GRA\e07Uh\e1\e0*Q\e14`(9\e(B. \e,TK\e0GQ\e1'`\e0;g\e19M\e0Bh\e1R'\e0BTh\e1'\e0Gh\e1R\e0$Yh\e1\e0AW\e1M)\e0:Q\e1:\e09Ui\e1(P`\e0;g\e19;CPbB*\e09l\e1\e(B
-\e,TaEP(Pd\e04i\e1\e0CQ\e1:!RCa\e0!i\e1d"c\e0Ki\e1\e04U\e1\e0BTh\e1'f\e(B \e0\e,T"Vi\e19\e0MU\e1!\e05h\e1Mf\e(B \e,Td;\e(B. \e,T"M"M:\e0$X\e13\e(B \e0\e,T$X\e13\e07Q\e1H\e09U\e1\e0Bl\e1\e(B \e,T`(\e0CT\e1->C\e(B \e0\e,T7Uh\e1c\e0Ki\e1$GRA\e(B
-\e0\e,T*h\e1GB`K\e0EW\e1M5CG(JM:\e05i\e19)\e0:Q\e1:\e(B.
+คู่มือฉบับนี้ได้แปลจากต้นฉบับที่เป็นภาษาอังกฤษ, ซึ่งจะปรากฏอยู่ในอีแมกส์เวอร์ชัน 20.4.
+ผู้แปลได้ทำการแปลขึ้นมาใหม่เนื่องจากฉบับเก่าที่เป็นภาษาไทย, ซึ่งแปลโดย ดร.มานพ วงศ์
+สายสุวรรณ, ได้อิงคู่มือของอีแมกส์เวอร์ชันเก่า, และขณะนี้อีแมกส์เวอร์ชัน 20.4 ก็ได้
+เปลี่ยนแปลงไปมากแล้ว. นอกจากนี้, ผู้แปลยังได้นำเครื่องหมายวรรคตอนมาใช้ในที่นี้ด้วย,
+ทั้งนี้ก็เพื่อที่จะเขียนให้ได้ความที่ชัดเจน. หวังเป็นอย่างยิ่งว่าคู่มือฉบับนี้จะเป็นประโยชน์
+และจะได้รับการแก้ไขให้ดียิ่งๆ ขึ้นอีกต่อๆ ไป. ขอขอบคุณ คุณทัศนีย์ เจริญพร ที่ให้ความ
+ช่วยเหลือตรวจสอบต้นฉบับ.
 
-22 \e,TA!CR$A\e(B 2542
-\e0\e,TGT\e1\e0CQ\e1*\e(B \e,THC`\e0ET\e1H\e0Ei\e1SGR\e03T\e1*\e(B
+22 มกราคม 2542
+วิรัช ศรเลิศล้ำวาณิช
 virach@nectec.or.th
 
 Translate - January 1999 by Virach Sornlertlamvanich
 
 ;;; Local Variables:
 ;;; sentence-end-double-space: nil
-;;; coding: iso-2022-7bit
+;;; coding: utf-8
 ;;; End:
index 89d686a63dea02f7ca05c879b7389ff10ec87afe..64954ddad854e5cf7e2a95902e90c4ce632e83e6 100644 (file)
@@ -1,4 +1,14 @@
-2013-03-20  Paul Eggert  <eggert@cs.ucla.edu>
+2013-04-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use UTF-8 for most files with non-ASCII characters (Bug#13936).
+       * quail/cyrillic.el, quail/czech.el, quail/ethiopic.el:
+       * quail/greek.el, quail/hanja.el, quail/hanja3.el, quail/hebrew.el:
+       * quail/lao.el, quail/lrt.el, quail/slovak.el, quail/symbol-ksc.el:
+       * quail/thai.el, quail/tibetan.el, quail/viqr.el, quail/vntelex.el:
+       * quail/vnvni.el, quail/welsh.el:
+       Switch from iso-2022-7bit to utf-8 or (if needed) utf-8-emacs.
+
+2013-03-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        * Makefile.in ($(srcdir)/ja-dic/ja-dic.el): Use batch-skkdic-convert.
 
        (rules): Use tighter regexps to avoid conflicts.
        Consolidate the various rules for combining marks.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
-
 2013-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * quail/latin-ltx.el: Add greek superscripts.
index c1d84249700f969df40a8e2e7b4397ba5230ceb9..ee2cf321f49557e1205ba6672afca8f154f4d2eb 100644 (file)
 ;; in X Windows and console layouts for GNU/Linux.  [See
 ;; `russian-computer' below.]
 (quail-define-package
- "russian-typewriter" "Russian" "\e,L69\e(B" nil
- "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."
+ "russian-typewriter" "Russian" "ЖЙ" nil
+ "ЙЦУКЕН Russian typewriter layout (ISO 8859-5 encoding)."
  nil t t t t nil nil nil nil nil t)
 
-;;  \e,Lp\e(B1 -2 /3 "4 :5 ,6 .7 _8 ?9 %0 != ;\ |+
-;;   \e,L9\e(B  \e,LF\e(B  \e,LC\e(B  \e,L:\e(B  \e,L5\e(B  \e,L=\e(B  \e,L3\e(B  \e,LH\e(B  \e,LI\e(B  \e,L7\e(B  \e,LE\e(B  \e,LJ\e(B )(
-;;    \e,LD\e(B  \e,LK\e(B  \e,L2\e(B  \e,L0\e(B  \e,L?\e(B  \e,L@\e(B  \e,L>\e(B  \e,L;\e(B  \e,L4\e(B  \e,L6\e(B  \e,LM\e(B
-;;     \e,LO\e(B  \e,LG\e(B  \e,LA\e(B  \e,L<\e(B  \e,L8\e(B  \e,LB\e(B  \e,LL\e(B  \e,L1\e(B  \e,LN\e(B  \e,L!\e(B
+;;  1 -2 /3 "4 :5 ,6 .7 _8 ?9 %0 != ;\ |+
+;;   Й  Ц  У  К  Е  Н  Г  Ш  Щ  З  Х  Ъ )(
+;;    Ф  Ы  В  А  П  Р  О  Л  Д  Ж  Э
+;;     Я  Ч  С  М  И  Т  Ь  Б  Ю  Ё
 
 (quail-define-rules
- ("1" ?\e,Lp\e(B)
+ ("1" ?)
  ("2" ?-)
  ("3" ?/)
  ("4" ?\")
  ("-" ?!)
  ("=" ?\;)
  ("`" ?|)
- ("q" ?\e,LY\e(B)
- ("w" ?\e,Lf\e(B)
- ("e" ?\e,Lc\e(B)
- ("r" ?\e,LZ\e(B)
- ("t" ?\e,LU\e(B)
- ("y" ?\e,L]\e(B)
- ("u" ?\e,LS\e(B)
- ("i" ?\e,Lh\e(B)
- ("o" ?\e,Li\e(B)
- ("p" ?\e,LW\e(B)
- ("[" ?\e,Le\e(B)
- ("]" ?\e,Lj\e(B)
- ("a" ?\e,Ld\e(B)
- ("s" ?\e,Lk\e(B)
- ("d" ?\e,LR\e(B)
- ("f" ?\e,LP\e(B)
- ("g" ?\e,L_\e(B)
- ("h" ?\e,L`\e(B)
- ("j" ?\e,L^\e(B)
- ("k" ?\e,L[\e(B)
- ("l" ?\e,LT\e(B)
- (";" ?\e,LV\e(B)
- ("'" ?\e,Lm\e(B)
+ ("q" ?й)
+ ("w" ?ц)
+ ("e" ?у)
+ ("r" ?к)
+ ("t" ?е)
+ ("y" ?н)
+ ("u" ?г)
+ ("i" ?ш)
+ ("o" ?щ)
+ ("p" ?з)
+ ("[" ?х)
+ ("]" ?ъ)
+ ("a" ?ф)
+ ("s" ?ы)
+ ("d" ?в)
+ ("f" ?а)
+ ("g" ?п)
+ ("h" ?р)
+ ("j" ?о)
+ ("k" ?л)
+ ("l" ?д)
+ (";" ?ж)
+ ("'" ?э)
  ("\\" ?\))
- ("z" ?\e,Lo\e(B)
- ("x" ?\e,Lg\e(B)
- ("c" ?\e,La\e(B)
- ("v" ?\e,L\\e(B)
- ("b" ?\e,LX\e(B)
- ("n" ?\e,Lb\e(B)
- ("m" ?\e,Ll\e(B)
- ("," ?\e,LQ\e(B)
- ("." ?\e,Ln\e(B)
- ("/" ?\e,Lq\e(B)
+ ("z" ?я)
+ ("x" ?ч)
+ ("c" ?с)
+ ("v" ?м)
+ ("b" ?и)
+ ("n" ?т)
+ ("m" ?ь)
+ ("," ?б)
+ ("." ?ю)
+ ("/" ?ё)
 
  ("!" ?1)
  ("@" ?2)
  ("_" ?=)
  ("+" ?\\)
  ("~" ?+)
- ("Q" ?\e,L9\e(B)
- ("W" ?\e,LF\e(B)
- ("E" ?\e,LC\e(B)
- ("R" ?\e,L:\e(B)
- ("T" ?\e,L5\e(B)
- ("Y" ?\e,L=\e(B)
- ("U" ?\e,L3\e(B)
- ("I" ?\e,LH\e(B)
- ("O" ?\e,LI\e(B)
- ("P" ?\e,L7\e(B)
- ("{" ?\e,LE\e(B)
- ("}" ?\e,LJ\e(B)
- ("A" ?\e,LD\e(B)
- ("S" ?\e,LK\e(B)
- ("D" ?\e,L2\e(B)
- ("F" ?\e,L0\e(B)
- ("G" ?\e,L?\e(B)
- ("H" ?\e,L@\e(B)
- ("J" ?\e,L>\e(B)
- ("K" ?\e,L;\e(B)
- ("L" ?\e,L4\e(B)
- (":" ?\e,L6\e(B)
- ("\"" ?\e,LM\e(B)
+ ("Q" ?Й)
+ ("W" ?Ц)
+ ("E" ?У)
+ ("R" ?К)
+ ("T" ?Е)
+ ("Y" ?Н)
+ ("U" ?Г)
+ ("I" ?Ш)
+ ("O" ?Щ)
+ ("P" ?З)
+ ("{" ?Х)
+ ("}" ?Ъ)
+ ("A" ?Ф)
+ ("S" ?Ы)
+ ("D" ?В)
+ ("F" ?А)
+ ("G" ?П)
+ ("H" ?Р)
+ ("J" ?О)
+ ("K" ?Л)
+ ("L" ?Д)
+ (":" ?Ж)
+ ("\"" ?Э)
  ("|" ?\()
- ("Z" ?\e,LO\e(B)
- ("X" ?\e,LG\e(B)
- ("C" ?\e,LA\e(B)
- ("V" ?\e,L<\e(B)
- ("B" ?\e,L8\e(B)
- ("N" ?\e,LB\e(B)
- ("M" ?\e,LL\e(B)
- ("<" ?\e,L1\e(B)
- (">" ?\e,LN\e(B)
- ("?" ?\e,L!\e(B)
+ ("Z" ?Я)
+ ("X" ?Ч)
+ ("C" ?С)
+ ("V" ?М)
+ ("B" ?И)
+ ("N" ?Т)
+ ("M" ?Ь)
+ ("<" ?Б)
+ (">" ?Ю)
+ ("?" ?Ё)
  )
 
 ;; Maintain the obsolete name for now.
 ;; commented-out lines.
 (if nil
     (quail-define-package
-     "cyrillic-jcuken" "Russian" "\e,L69\e(B" nil
-     "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."))
+     "cyrillic-jcuken" "Russian" "ЖЙ" nil
+     "ЙЦУКЕН Russian typewriter layout (ISO 8859-5 encoding)."))
 
 ;; See comment above.  This is the variant `winkeys' from `ru' in XKB.
 (quail-define-package
  "russian-computer" "Russian" "RU" nil
- "\e,L9FC:5=\e(B Russian computer layout"
+ "ЙЦУКЕН Russian computer layout"
  nil t t t t nil nil nil nil nil t)
 
-;;  1! 2" 3\e,Lp\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+ \/ \e,Lq!\e(B
-;;   \e,L9\e(B  \e,LF\e(B  \e,LC\e(B  \e,L:\e(B  \e,L5\e(B  \e,L=\e(B  \e,L3\e(B  \e,LH\e(B  \e,LI\e(B  \e,L7\e(B  \e,LE\e(B  \e,LJ\e(B
-;;    \e,LD\e(B  \e,LK\e(B  \e,L2\e(B  \e,L0\e(B  \e,L?\e(B  \e,L@\e(B  \e,L>\e(B  \e,L;\e(B  \e,L4\e(B  \e,L6\e(B  \e,LM\e(B
-;;     \e,LO\e(B  \e,LG\e(B  \e,LA\e(B  \e,L<\e(B  \e,L8\e(B  \e,LB\e(B  \e,LL\e(B  \e,L1\e(B  \e,LN\e(B  .,
+;;  1! 2" 3№ 4; 5% 6: 7? 8* 9( 0) -_ =+ \/ ёЁ
+;;   Й  Ц  У  К  Е  Н  Г  Ш  Щ  З  Х  Ъ
+;;    Ф  Ы  В  А  П  Р  О  Л  Д  Ж  Э
+;;     Я  Ч  С  М  И  Т  Ь  Б  Ю  .,
 
 (quail-define-rules
  ("1" ?1)
  ("-" ?-)
  ("=" ?=)
  ("|" ?/)
- ("`" ?\e,Lq\e(B)
- ("q" ?\e,LY\e(B)
- ("w" ?\e,Lf\e(B)
- ("e" ?\e,Lc\e(B)
- ("r" ?\e,LZ\e(B)
- ("t" ?\e,LU\e(B)
- ("y" ?\e,L]\e(B)
- ("u" ?\e,LS\e(B)
- ("i" ?\e,Lh\e(B)
- ("o" ?\e,Li\e(B)
- ("p" ?\e,LW\e(B)
- ("[" ?\e,Le\e(B)
- ("]" ?\e,Lj\e(B)
- ("a" ?\e,Ld\e(B)
- ("s" ?\e,Lk\e(B)
- ("d" ?\e,LR\e(B)
- ("f" ?\e,LP\e(B)
- ("g" ?\e,L_\e(B)
- ("h" ?\e,L`\e(B)
- ("j" ?\e,L^\e(B)
- ("k" ?\e,L[\e(B)
- ("l" ?\e,LT\e(B)
- (";" ?\e,LV\e(B)
- ("'" ?\e,Lm\e(B)
+ ("`" ?ё)
+ ("q" ?й)
+ ("w" ?ц)
+ ("e" ?у)
+ ("r" ?к)
+ ("t" ?е)
+ ("y" ?н)
+ ("u" ?г)
+ ("i" ?ш)
+ ("o" ?щ)
+ ("p" ?з)
+ ("[" ?х)
+ ("]" ?ъ)
+ ("a" ?ф)
+ ("s" ?ы)
+ ("d" ?в)
+ ("f" ?а)
+ ("g" ?п)
+ ("h" ?р)
+ ("j" ?о)
+ ("k" ?л)
+ ("l" ?д)
+ (";" ?ж)
+ ("'" ?э)
  ("\\" ?\\)
- ("z" ?\e,Lo\e(B)
- ("x" ?\e,Lg\e(B)
- ("c" ?\e,La\e(B)
- ("v" ?\e,L\\e(B)
- ("b" ?\e,LX\e(B)
- ("n" ?\e,Lb\e(B)
- ("m" ?\e,Ll\e(B)
- ("," ?\e,LQ\e(B)
- ("." ?\e,Ln\e(B)
+ ("z" ?я)
+ ("x" ?ч)
+ ("c" ?с)
+ ("v" ?м)
+ ("b" ?и)
+ ("n" ?т)
+ ("m" ?ь)
+ ("," ?б)
+ ("." ?ю)
  ("/" ?.)
  ("!" ?!)
  ("@" ?\")
- ("#" ?\e,Lp\e(B)
+ ("#" ?)
  ("$" ?\;)
  ("%" ?%)
  ("^" ?:)
  (")" ?))
  ("_" ?_)
  ("+" ?+)
- ("~" ?\e,L!\e(B)
- ("Q" ?\e,L9\e(B)
- ("W" ?\e,LF\e(B)
- ("E" ?\e,LC\e(B)
- ("R" ?\e,L:\e(B)
- ("T" ?\e,L5\e(B)
- ("Y" ?\e,L=\e(B)
- ("U" ?\e,L3\e(B)
- ("I" ?\e,LH\e(B)
- ("O" ?\e,LI\e(B)
- ("P" ?\e,L7\e(B)
- ("{" ?\e,LE\e(B)
- ("}" ?\e,LJ\e(B)
- ("A" ?\e,LD\e(B)
- ("S" ?\e,LK\e(B)
- ("D" ?\e,L2\e(B)
- ("F" ?\e,L0\e(B)
- ("G" ?\e,L?\e(B)
- ("H" ?\e,L@\e(B)
- ("J" ?\e,L>\e(B)
- ("K" ?\e,L;\e(B)
- ("L" ?\e,L4\e(B)
- (":" ?\e,L6\e(B)
- ("\"" ?\e,LM\e(B)
+ ("~" ?Ё)
+ ("Q" ?Й)
+ ("W" ?Ц)
+ ("E" ?У)
+ ("R" ?К)
+ ("T" ?Е)
+ ("Y" ?Н)
+ ("U" ?Г)
+ ("I" ?Ш)
+ ("O" ?Щ)
+ ("P" ?З)
+ ("{" ?Х)
+ ("}" ?Ъ)
+ ("A" ?Ф)
+ ("S" ?Ы)
+ ("D" ?В)
+ ("F" ?А)
+ ("G" ?П)
+ ("H" ?Р)
+ ("J" ?О)
+ ("K" ?Л)
+ ("L" ?Д)
+ (":" ?Ж)
+ ("\"" ?Э)
  ("|" ?|)
- ("Z" ?\e,LO\e(B)
- ("X" ?\e,LG\e(B)
- ("C" ?\e,LA\e(B)
- ("V" ?\e,L<\e(B)
- ("B" ?\e,L8\e(B)
- ("N" ?\e,LB\e(B)
- ("M" ?\e,LL\e(B)
- ("<" ?\e,L1\e(B)
- (">" ?\e,LN\e(B)
+ ("Z" ?Я)
+ ("X" ?Ч)
+ ("C" ?С)
+ ("V" ?М)
+ ("B" ?И)
+ ("N" ?Т)
+ ("M" ?Ь)
+ ("<" ?Б)
+ (">" ?Ю)
  ("?" ?,))
 
 ;; Mikhailian couldn't check the next two.
 ;; This seems to have the same layout for letters as mk in XKB, but at
 ;; least the top row is different.
 (quail-define-package
- "cyrillic-macedonian" "Cyrillic" "\e,L6\e(BM" nil
- "\e,L)*5@B7\e(B-\e,L#,\e(B keyboard layout based on JUS.I.K1.004"
+ "cyrillic-macedonian" "Cyrillic" "ЖM" nil
+ "ЉЊЕРТЗ-ЃЌ keyboard layout based on JUS.I.K1.004"
  nil t t t t nil nil nil nil nil t)
 
 ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
-;;   \e,L)\e(B  \e,L*\e(B  \e,L5\e(B  \e,L@\e(B  \e,LB\e(B  \e,L7\e(B  \e,LC\e(B  \e,L8\e(B  \e,L>\e(B  \e,L?\e(B  \e,LH\e(B  \e,L#\e(B
-;;    \e,L0\e(B  \e,LA\e(B  \e,L4\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L(\e(B  \e,L:\e(B  \e,L;\e(B  \e,LG\e(B  \e,L,\e(B  \e,L6\e(B
-;;     \e,L%\e(B  \e,L/\e(B  \e,LF\e(B  \e,L2\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,; .: -_
+;;   Љ  Њ  Е  Р  Т  З  У  И  О  П  Ш  Ѓ
+;;    А  С  Д  Ф  Г  Х  Ј  К  Л  Ч  Ќ  Ж
+;;     Ѕ  Џ  Ц  В  Б  Н  М  ,; .: -_
 
 (quail-define-rules
  ("1" ?1)
  ("-" ?/)
  ("=" ?+)
  ("`" ?<)
- ("q" ?\e,Ly\e(B)
- ("w" ?\e,Lz\e(B)
- ("e" ?\e,LU\e(B)
- ("r" ?\e,L`\e(B)
- ("t" ?\e,Lb\e(B)
- ("y" ?\e,LW\e(B)
- ("u" ?\e,Lc\e(B)
- ("i" ?\e,LX\e(B)
- ("o" ?\e,L^\e(B)
- ("p" ?\e,L_\e(B)
- ("[" ?\e,Lh\e(B)
- ("]" ?\e,Ls\e(B)
- ("a" ?\e,LP\e(B)
- ("s" ?\e,La\e(B)
- ("d" ?\e,LT\e(B)
- ("f" ?\e,Ld\e(B)
- ("g" ?\e,LS\e(B)
- ("h" ?\e,Le\e(B)
- ("j" ?\e,Lx\e(B)
- ("k" ?\e,LZ\e(B)
- ("l" ?\e,L[\e(B)
- (";" ?\e,Lg\e(B)
- ("'" ?\e,L|\e(B)
- ("\\" ?\e,LV\e(B)
- ("z" ?\e,Lu\e(B)
- ("x" ?\e,L\7f\e(B)
- ("c" ?\e,Lf\e(B)
- ("v" ?\e,LR\e(B)
- ("b" ?\e,LQ\e(B)
- ("n" ?\e,L]\e(B)
- ("m" ?\e,L\\e(B)
+ ("q" ?љ)
+ ("w" ?њ)
+ ("e" ?е)
+ ("r" ?р)
+ ("t" ?т)
+ ("y" ?з)
+ ("u" ?у)
+ ("i" ?и)
+ ("o" ?о)
+ ("p" ?п)
+ ("[" ?ш)
+ ("]" ?ѓ)
+ ("a" ?а)
+ ("s" ?с)
+ ("d" ?д)
+ ("f" ?ф)
+ ("g" ?г)
+ ("h" ?х)
+ ("j" ?ј)
+ ("k" ?к)
+ ("l" ?л)
+ (";" ?ч)
+ ("'" ?ќ)
+ ("\\" ?ж)
+ ("z" ?ѕ)
+ ("x" ?џ)
+ ("c" ?ц)
+ ("v" ?в)
+ ("b" ?б)
+ ("n" ?н)
+ ("m" ?м)
  ("," ?,)
  ("." ?.)
  ("/" ?-)
  ("_" ??)
  ("+" ?*)
  ("~" ?>)
- ("Q" ?\e,L)\e(B)
- ("W" ?\e,L*\e(B)
- ("E" ?\e,L5\e(B)
- ("R" ?\e,L@\e(B)
- ("T" ?\e,LB\e(B)
- ("Y" ?\e,L7\e(B)
- ("U" ?\e,LC\e(B)
- ("I" ?\e,L8\e(B)
- ("O" ?\e,L>\e(B)
- ("P" ?\e,L?\e(B)
- ("{" ?\e,LH\e(B)
- ("}" ?\e,L#\e(B)
- ("A" ?\e,L0\e(B)
- ("S" ?\e,LA\e(B)
- ("D" ?\e,L4\e(B)
- ("F" ?\e,LD\e(B)
- ("G" ?\e,L3\e(B)
- ("H" ?\e,LE\e(B)
- ("J" ?\e,L(\e(B)
- ("K" ?\e,L:\e(B)
- ("L" ?\e,L;\e(B)
- (":" ?\e,LG\e(B)
- ("\"" ?\e,L,\e(B)
- ("|" ?\e,L6\e(B)
- ("Z" ?\e,L%\e(B)
- ("X" ?\e,L/\e(B)
- ("C" ?\e,LF\e(B)
- ("V" ?\e,L2\e(B)
- ("B" ?\e,L1\e(B)
- ("N" ?\e,L=\e(B)
- ("M" ?\e,L<\e(B)
+ ("Q" ?Љ)
+ ("W" ?Њ)
+ ("E" ?Е)
+ ("R" ?Р)
+ ("T" ?Т)
+ ("Y" ?З)
+ ("U" ?У)
+ ("I" ?И)
+ ("O" ?О)
+ ("P" ?П)
+ ("{" ?Ш)
+ ("}" ?Ѓ)
+ ("A" ?А)
+ ("S" ?С)
+ ("D" ?Д)
+ ("F" ?Ф)
+ ("G" ?Г)
+ ("H" ?Х)
+ ("J" ?Ј)
+ ("K" ?К)
+ ("L" ?Л)
+ (":" ?Ч)
+ ("\"" ?Ќ)
+ ("|" ?Ж)
+ ("Z" ?Ѕ)
+ ("X" ?Џ)
+ ("C" ?Ц)
+ ("V" ?В)
+ ("B" ?Б)
+ ("N" ?Н)
+ ("M" ?М)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_))
 ;;
 
 (quail-define-package
- "cyrillic-serbian" "Cyrillic" "\e,L6\e(BS" nil
- "\e,L)*5@B7\e(B-\e,L"+\e(B keyboard layout based on JUS.I.K1.005"
+ "cyrillic-serbian" "Cyrillic" "ЖS" nil
+ "ЉЊЕРТЗ-ЂЋ keyboard layout based on JUS.I.K1.005"
  nil t t t t nil nil nil nil nil t)
 
 ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
-;;   \e,L)\e(B  \e,L*\e(B  \e,L5\e(B  \e,L@\e(B  \e,LB\e(B  \e,L7\e(B  \e,LC\e(B  \e,L8\e(B  \e,L>\e(B  \e,L?\e(B  \e,LH\e(B  \e,L"\e(B
-;;    \e,L0\e(B  \e,LA\e(B  \e,L4\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L(\e(B  \e,L:\e(B  \e,L;\e(B  \e,LG\e(B  \e,L+\e(B  \e,L6\e(B
-;;     \e,L%\e(B  \e,L/\e(B  \e,LF\e(B  \e,L2\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,; .: -_
+;;   Љ  Њ  Е  Р  Т  З  У  И  О  П  Ш  Ђ
+;;    А  С  Д  Ф  Г  Х  Ј  К  Л  Ч  Ћ  Ж
+;;     Ѕ  Џ  Ц  В  Б  Н  М  ,; .: -_
 
 (quail-define-rules
  ("1" ?1)
  ("-" ?/)
  ("=" ?+)
  ("`" ?<)
- ("q" ?\e,Ly\e(B)
- ("w" ?\e,Lz\e(B)
- ("e" ?\e,LU\e(B)
- ("r" ?\e,L`\e(B)
- ("t" ?\e,Lb\e(B)
- ("y" ?\e,LW\e(B)
- ("u" ?\e,Lc\e(B)
- ("i" ?\e,LX\e(B)
- ("o" ?\e,L^\e(B)
- ("p" ?\e,L_\e(B)
- ("[" ?\e,Lh\e(B)
- ("]" ?\e,Lr\e(B)
- ("a" ?\e,LP\e(B)
- ("s" ?\e,La\e(B)
- ("d" ?\e,LT\e(B)
- ("f" ?\e,Ld\e(B)
- ("g" ?\e,LS\e(B)
- ("h" ?\e,Le\e(B)
- ("j" ?\e,Lx\e(B)
- ("k" ?\e,LZ\e(B)
- ("l" ?\e,L[\e(B)
- (";" ?\e,Lg\e(B)
- ("'" ?\e,L{\e(B)
- ("\\" ?\e,LV\e(B)
- ("z" ?\e,Lu\e(B)
- ("x" ?\e,L\7f\e(B)
- ("c" ?\e,Lf\e(B)
- ("v" ?\e,LR\e(B)
- ("b" ?\e,LQ\e(B)
- ("n" ?\e,L]\e(B)
- ("m" ?\e,L\\e(B)
+ ("q" ?љ)
+ ("w" ?њ)
+ ("e" ?е)
+ ("r" ?р)
+ ("t" ?т)
+ ("y" ?з)
+ ("u" ?у)
+ ("i" ?и)
+ ("o" ?о)
+ ("p" ?п)
+ ("[" ?ш)
+ ("]" ?ђ)
+ ("a" ?а)
+ ("s" ?с)
+ ("d" ?д)
+ ("f" ?ф)
+ ("g" ?г)
+ ("h" ?х)
+ ("j" ?ј)
+ ("k" ?к)
+ ("l" ?л)
+ (";" ?ч)
+ ("'" ?ћ)
+ ("\\" ?ж)
+ ("z" ?ѕ)
+ ("x" ?џ)
+ ("c" ?ц)
+ ("v" ?в)
+ ("b" ?б)
+ ("n" ?н)
+ ("m" ?м)
  ("," ?,)
  ("." ?.)
  ("/" ?-)
  ("_" ??)
  ("+" ?*)
  ("~" ?>)
- ("Q" ?\e,L)\e(B)
- ("W" ?\e,L*\e(B)
- ("E" ?\e,L5\e(B)
- ("R" ?\e,L@\e(B)
- ("T" ?\e,LB\e(B)
- ("Y" ?\e,L7\e(B)
- ("U" ?\e,LC\e(B)
- ("I" ?\e,L8\e(B)
- ("O" ?\e,L>\e(B)
- ("P" ?\e,L?\e(B)
- ("{" ?\e,LH\e(B)
- ("}" ?\e,L"\e(B)
- ("A" ?\e,L0\e(B)
- ("S" ?\e,LA\e(B)
- ("D" ?\e,L4\e(B)
- ("F" ?\e,LD\e(B)
- ("G" ?\e,L3\e(B)
- ("H" ?\e,LE\e(B)
- ("J" ?\e,L(\e(B)
- ("K" ?\e,L:\e(B)
- ("L" ?\e,L;\e(B)
- (":" ?\e,LG\e(B)
- ("\"" ?\e,L+\e(B)
- ("|" ?\e,L6\e(B)
- ("Z" ?\e,L%\e(B)
- ("X" ?\e,L/\e(B)
- ("C" ?\e,LF\e(B)
- ("V" ?\e,L2\e(B)
- ("B" ?\e,L1\e(B)
- ("N" ?\e,L=\e(B)
- ("M" ?\e,L<\e(B)
+ ("Q" ?Љ)
+ ("W" ?Њ)
+ ("E" ?Е)
+ ("R" ?Р)
+ ("T" ?Т)
+ ("Y" ?З)
+ ("U" ?У)
+ ("I" ?И)
+ ("O" ?О)
+ ("P" ?П)
+ ("{" ?Ш)
+ ("}" ?Ђ)
+ ("A" ?А)
+ ("S" ?С)
+ ("D" ?Д)
+ ("F" ?Ф)
+ ("G" ?Г)
+ ("H" ?Х)
+ ("J" ?Ј)
+ ("K" ?К)
+ ("L" ?Л)
+ (":" ?Ч)
+ ("\"" ?Ћ)
+ ("|" ?Ж)
+ ("Z" ?Ѕ)
+ ("X" ?Џ)
+ ("C" ?Ц)
+ ("V" ?В)
+ ("B" ?Б)
+ ("N" ?Н)
+ ("M" ?М)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_))
 ;; [`derived from JUS.I.K1' according to an old Mule note -- fx]
 
 ;; (quail-define-package
-;;  "cyrillic-beylorussian" "Belarussian" "\e,L6\e(BB" nil
-;;  "\e,L)*5@B7\e(B-\e,L&.\e(B BEYLORUSSIAN (ISO 8859-5 encoding)"
+;;  "cyrillic-beylorussian" "Belarussian" "ЖB" nil
+;;  "ЉЊЕРТЗ-ІЎ BEYLORUSSIAN (ISO 8859-5 encoding)"
 ;;  nil t t t t nil nil nil nil nil t)
 
 ;; ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
-;; ;;   \e,L)\e(B  \e,L*\e(B  \e,L5\e(B  \e,L@\e(B  \e,LB\e(B  \e,L7\e(B  \e,LC\e(B  \e,L8\e(B  \e,L>\e(B  \e,L?\e(B  \e,LH\e(B  \e,L&\e(B
-;; ;;    \e,L0\e(B  \e,LA\e(B  \e,L4\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L(\e(B  \e,L:\e(B  \e,L;\e(B  \e,LG\e(B  \e,L.\e(B  \e,L6\e(B
-;; ;;     \e,L%\e(B  \e,L/\e(B  \e,LF\e(B  \e,L2\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,; .: -_
+;; ;;   Љ  Њ  Е  Р  Т  З  У  И  О  П  Ш  І
+;; ;;    А  С  Д  Ф  Г  Х  Ј  К  Л  Ч  Ў  Ж
+;; ;;     Ѕ  Џ  Ц  В  Б  Н  М  ,; .: -_
 
 ;; (quail-define-rules
 ;;  ("-" ?/)
 ;;  ("=" ?+)
 ;;  ("`" ?<)
-;;  ("q" ?\e,Ly\e(B)
-;;  ("w" ?\e,Lz\e(B)
-;;  ("e" ?\e,LU\e(B)
-;;  ("r" ?\e,L`\e(B)
-;;  ("t" ?\e,Lb\e(B)
-;;  ("y" ?\e,LW\e(B)
-;;  ("u" ?\e,Lc\e(B)
-;;  ("i" ?\e,LX\e(B)
-;;  ("o" ?\e,L^\e(B)
-;;  ("p" ?\e,L_\e(B)
-;;  ("[" ?\e,Lh\e(B)
-;;  ("]" ?\e,Lv\e(B)
-;;  ("a" ?\e,LP\e(B)
-;;  ("s" ?\e,La\e(B)
-;;  ("d" ?\e,LT\e(B)
-;;  ("f" ?\e,Ld\e(B)
-;;  ("g" ?\e,LS\e(B)
-;;  ("h" ?\e,Le\e(B)
-;;  ("j" ?\e,Lx\e(B)
-;;  ("k" ?\e,LZ\e(B)
-;;  ("l" ?\e,L[\e(B)
-;;  (";" ?\e,Lg\e(B)
-;;  ("'" ?\e,L~\e(B)
-;;  ("\\" ?\e,LV\e(B)
-;;  ("z" ?\e,Lu\e(B)
-;;  ("x" ?\e,L\7f\e(B)
-;;  ("c" ?\e,Lf\e(B)
-;;  ("v" ?\e,LR\e(B)
-;;  ("b" ?\e,LQ\e(B)
-;;  ("n" ?\e,L]\e(B)
-;;  ("m" ?\e,L\\e(B)
+;;  ("q" ?љ)
+;;  ("w" ?њ)
+;;  ("e" ?е)
+;;  ("r" ?р)
+;;  ("t" ?т)
+;;  ("y" ?з)
+;;  ("u" ?у)
+;;  ("i" ?и)
+;;  ("o" ?о)
+;;  ("p" ?п)
+;;  ("[" ?ш)
+;;  ("]" ?і)
+;;  ("a" ?а)
+;;  ("s" ?с)
+;;  ("d" ?д)
+;;  ("f" ?ф)
+;;  ("g" ?г)
+;;  ("h" ?х)
+;;  ("j" ?ј)
+;;  ("k" ?к)
+;;  ("l" ?л)
+;;  (";" ?ч)
+;;  ("'" ?ў)
+;;  ("\\" ?ж)
+;;  ("z" ?ѕ)
+;;  ("x" ?џ)
+;;  ("c" ?ц)
+;;  ("v" ?в)
+;;  ("b" ?б)
+;;  ("n" ?н)
+;;  ("m" ?м)
 ;;  ("/" ?-)
 
 ;;  ("@" ?\")
 ;;  ("_" ??)
 ;;  ("+" ?*)
 ;;  ("~" ?>)
-;;  ("Q" ?\e,L)\e(B)
-;;  ("W" ?\e,L*\e(B)
-;;  ("E" ?\e,L5\e(B)
-;;  ("R" ?\e,L@\e(B)
-;;  ("T" ?\e,LB\e(B)
-;;  ("Y" ?\e,L7\e(B)
-;;  ("U" ?\e,LC\e(B)
-;;  ("I" ?\e,L8\e(B)
-;;  ("O" ?\e,L>\e(B)
-;;  ("P" ?\e,L?\e(B)
-;;  ("{" ?\e,LH\e(B)
-;;  ("}" ?\e,L&\e(B)
-;;  ("A" ?\e,L0\e(B)
-;;  ("S" ?\e,LA\e(B)
-;;  ("D" ?\e,L4\e(B)
-;;  ("F" ?\e,LD\e(B)
-;;  ("G" ?\e,L3\e(B)
-;;  ("H" ?\e,LE\e(B)
-;;  ("J" ?\e,L(\e(B)
-;;  ("K" ?\e,L:\e(B)
-;;  ("L" ?\e,L;\e(B)
-;;  (":" ?\e,LG\e(B)
-;;  ("\"" ?\e,L.\e(B)
-;;  ("|" ?\e,L6\e(B)
-;;  ("Z" ?\e,L%\e(B)
-;;  ("X" ?\e,L/\e(B)
-;;  ("C" ?\e,LF\e(B)
-;;  ("V" ?\e,L2\e(B)
-;;  ("B" ?\e,L1\e(B)
-;;  ("N" ?\e,L=\e(B)
-;;  ("M" ?\e,L<\e(B)
+;;  ("Q" ?Љ)
+;;  ("W" ?Њ)
+;;  ("E" ?Е)
+;;  ("R" ?Р)
+;;  ("T" ?Т)
+;;  ("Y" ?З)
+;;  ("U" ?У)
+;;  ("I" ?И)
+;;  ("O" ?О)
+;;  ("P" ?П)
+;;  ("{" ?Ш)
+;;  ("}" ?І)
+;;  ("A" ?А)
+;;  ("S" ?С)
+;;  ("D" ?Д)
+;;  ("F" ?Ф)
+;;  ("G" ?Г)
+;;  ("H" ?Х)
+;;  ("J" ?Ј)
+;;  ("K" ?К)
+;;  ("L" ?Л)
+;;  (":" ?Ч)
+;;  ("\"" ?Ў)
+;;  ("|" ?Ж)
+;;  ("Z" ?Ѕ)
+;;  ("X" ?Џ)
+;;  ("C" ?Ц)
+;;  ("V" ?В)
+;;  ("B" ?Б)
+;;  ("N" ?Н)
+;;  ("M" ?М)
 ;;  ("<" ?\;)
 ;;  (">" ?:)
 ;;  ("?" ?_))
 
 ;; Fixme: add GHE_WITH_UPTURN.
 (quail-define-package
- "cyrillic-ukrainian" "Ukrainian" "\e,L6\e(BU" nil
- "\e,L$'5@B7\e(B-\e,L&.\e(B UKRAINIAN
+ "cyrillic-ukrainian" "Ukrainian" "ЖU" nil
+ "ЄЇЕРТЗ-ІЎ UKRAINIAN
 
 Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  nil t t t t nil nil nil nil nil t)
 
 ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
-;;   \e,L$\e(B  \e,L'\e(B  \e,L5\e(B  \e,L@\e(B  \e,LB\e(B  \e,L7\e(B  \e,LC\e(B  \e,L8\e(B  \e,L>\e(B  \e,L?\e(B  \e,LH\e(B  \e,L&\e(B
-;;    \e,L0\e(B  \e,LA\e(B  \e,L4\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L(\e(B  \e,L:\e(B  \e,L;\e(B  \e,LG\e(B  \e,L.\e(B  \e,L6\e(B
-;;     \e,L%\e(B  \e,L/\e(B  \e,LF\e(B  \e,L2\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,; .: -_
+;;   Є  Ї  Е  Р  Т  З  У  И  О  П  Ш  І
+;;    А  С  Д  Ф  Г  Х  Ј  К  Л  Ч  Ў  Ж
+;;     Ѕ  Џ  Ц  В  Б  Н  М  ,; .: -_
 
 (quail-define-rules
  ("1" ?1)
@@ -640,37 +640,37 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  ("-" ?/)
  ("=" ?+)
  ("`" ?<)
- ("q" ?\e,Lt\e(B)
- ("w" ?\e,Lw\e(B)
- ("e" ?\e,LU\e(B)
- ("r" ?\e,L`\e(B)
- ("t" ?\e,Lb\e(B)
- ("y" ?\e,LW\e(B)
- ("u" ?\e,Lc\e(B)
- ("i" ?\e,LX\e(B)
- ("o" ?\e,L^\e(B)
- ("p" ?\e,L_\e(B)
- ("[" ?\e,Lh\e(B)
- ("]" ?\e,Lv\e(B)
- ("a" ?\e,LP\e(B)
- ("s" ?\e,La\e(B)
- ("d" ?\e,LT\e(B)
- ("f" ?\e,Ld\e(B)
- ("g" ?\e,LS\e(B)
- ("h" ?\e,Le\e(B)
- ("j" ?\e,Lx\e(B)
- ("k" ?\e,LZ\e(B)
- ("l" ?\e,L[\e(B)
- (";" ?\e,Lg\e(B)
- ("'" ?\e,L~\e(B)
- ("\\" ?\e,LV\e(B)
- ("z" ?\e,Lu\e(B)
- ("x" ?\e,L\7f\e(B)
- ("c" ?\e,Lf\e(B)
- ("v" ?\e,LR\e(B)
- ("b" ?\e,LQ\e(B)
- ("n" ?\e,L]\e(B)
- ("m" ?\e,L\\e(B)
+ ("q" ?є)
+ ("w" ?ї)
+ ("e" ?е)
+ ("r" ?р)
+ ("t" ?т)
+ ("y" ?з)
+ ("u" ?у)
+ ("i" ?и)
+ ("o" ?о)
+ ("p" ?п)
+ ("[" ?ш)
+ ("]" ?і)
+ ("a" ?а)
+ ("s" ?с)
+ ("d" ?д)
+ ("f" ?ф)
+ ("g" ?г)
+ ("h" ?х)
+ ("j" ?ј)
+ ("k" ?к)
+ ("l" ?л)
+ (";" ?ч)
+ ("'" ?ў)
+ ("\\" ?ж)
+ ("z" ?ѕ)
+ ("x" ?џ)
+ ("c" ?ц)
+ ("v" ?в)
+ ("b" ?б)
+ ("n" ?н)
+ ("m" ?м)
  ("," ?,)
  ("." ?.)
  ("/" ?-)
@@ -688,37 +688,37 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  ("_" ??)
  ("+" ?*)
  ("~" ?>)
- ("Q" ?\e,L$\e(B)
- ("W" ?\e,L'\e(B)
- ("E" ?\e,L5\e(B)
- ("R" ?\e,L@\e(B)
- ("T" ?\e,LB\e(B)
- ("Y" ?\e,L7\e(B)
- ("U" ?\e,LC\e(B)
- ("I" ?\e,L8\e(B)
- ("O" ?\e,L>\e(B)
- ("P" ?\e,L?\e(B)
- ("{" ?\e,LH\e(B)
- ("}" ?\e,L&\e(B)
- ("A" ?\e,L0\e(B)
- ("S" ?\e,LA\e(B)
- ("D" ?\e,L4\e(B)
- ("F" ?\e,LD\e(B)
- ("G" ?\e,L3\e(B)
- ("H" ?\e,LE\e(B)
- ("J" ?\e,L(\e(B)
- ("K" ?\e,L:\e(B)
- ("L" ?\e,L;\e(B)
- (":" ?\e,LG\e(B)
- ("\"" ?\e,L.\e(B)
- ("|" ?\e,L6\e(B)
- ("Z" ?\e,L%\e(B)
- ("X" ?\e,L/\e(B)
- ("C" ?\e,LF\e(B)
- ("V" ?\e,L2\e(B)
- ("B" ?\e,L1\e(B)
- ("N" ?\e,L=\e(B)
- ("M" ?\e,L<\e(B)
+ ("Q" ?Є)
+ ("W" ?Ї)
+ ("E" ?Е)
+ ("R" ?Р)
+ ("T" ?Т)
+ ("Y" ?З)
+ ("U" ?У)
+ ("I" ?И)
+ ("O" ?О)
+ ("P" ?П)
+ ("{" ?Ш)
+ ("}" ?І)
+ ("A" ?А)
+ ("S" ?С)
+ ("D" ?Д)
+ ("F" ?Ф)
+ ("G" ?Г)
+ ("H" ?Х)
+ ("J" ?Ј)
+ ("K" ?К)
+ ("L" ?Л)
+ (":" ?Ч)
+ ("\"" ?Ў)
+ ("|" ?Ж)
+ ("Z" ?Ѕ)
+ ("X" ?Џ)
+ ("C" ?Ц)
+ ("V" ?В)
+ ("B" ?Б)
+ ("N" ?Н)
+ ("M" ?М)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_))
@@ -726,13 +726,13 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
 
 (quail-define-package
  "ukrainian-computer" "Ukrainian" "UK" nil
- "\e$,1(9(F(C(:(5(=\e(B Ukrainian (Unicode-based for use with KOI8-U encoding)."
+ "ЙЦУКЕН Ukrainian (Unicode-based for use with KOI8-U encoding)."
  nil t t t t nil nil nil nil nil t)
 
-;;  ' 1! 2" 3\e$,1uV\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+
-;;   \e$,1(9\e(B  \e$,1(F\e(B  \e$,1(C\e(B  \e$,1(:\e(B  \e$,1(5\e(B  \e$,1(=\e(B  \e$,1(3\e(B  \e$,1(H\e(B  \e$,1(I\e(B  \e$,1(7\e(B  \e$,1(E\e(B  \e$,1('\e(B
-;;    \e$,1(D\e(B  \e$,1(&\e(B  \e$,1(2\e(B  \e$,1(0\e(B  \e$,1(?\e(B  \e$,1(@\e(B  \e$,1(>\e(B  \e$,1(;\e(B  \e$,1(4\e(B  \e$,1(6\e(B  \e$,1($\e(B  \e$,1)P\e(B
-;;      \e$,1(O\e(B  \e$,1(G\e(B  \e$,1(A\e(B  \e$,1(<\e(B  \e$,1(8\e(B  \e$,1(B\e(B  \e$,1(L\e(B  \e$,1(1\e(B  \e$,1(N\e(B  .,
+;;  ' 1! 2" 3 4; 5% 6: 7? 8* 9( 0) -_ =+
+;;   Й  Ц  У  К  Е  Н  Г  Ш  Щ  З  Х  Ї
+;;    Ф  І  В  А  П  Р  О  Л  Д  Ж  Є  Ґ
+;;      Я  Ч  С  М  И  Т  Ь  Б  Ю  .,
 
 (quail-define-rules
  ("1" ?1)
@@ -748,42 +748,42 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  ("-" ?-)
  ("=" ?=)
  ("`" ?')
- ("q" ?\e$,1(Y\e(B)
- ("w" ?\e$,1(f\e(B)
- ("e" ?\e$,1(c\e(B)
- ("r" ?\e$,1(Z\e(B)
- ("t" ?\e$,1(U\e(B)
- ("y" ?\e$,1(]\e(B)
- ("u" ?\e$,1(S\e(B)
- ("i" ?\e$,1(h\e(B)
- ("o" ?\e$,1(i\e(B)
- ("p" ?\e$,1(W\e(B)
- ("[" ?\e$,1(e\e(B)
- ("]" ?\e$,1(w\e(B)
- ("a" ?\e$,1(d\e(B)
- ("s" ?\e$,1(v\e(B)
- ("d" ?\e$,1(R\e(B)
- ("f" ?\e$,1(P\e(B)
- ("g" ?\e$,1(_\e(B)
- ("h" ?\e$,1(`\e(B)
- ("j" ?\e$,1(^\e(B)
- ("k" ?\e$,1([\e(B)
- ("l" ?\e$,1(T\e(B)
- (";" ?\e$,1(V\e(B)
- ("'" ?\e$,1(t\e(B)
- ("z" ?\e$,1(o\e(B)
- ("x" ?\e$,1(g\e(B)
- ("c" ?\e$,1(a\e(B)
- ("v" ?\e$,1(\\e(B)
- ("b" ?\e$,1(X\e(B)
- ("n" ?\e$,1(b\e(B)
- ("m" ?\e$,1(l\e(B)
- ("," ?\e$,1(Q\e(B)
- ("." ?\e$,1(n\e(B)
+ ("q" ?й)
+ ("w" ?ц)
+ ("e" ?у)
+ ("r" ?к)
+ ("t" ?е)
+ ("y" ?н)
+ ("u" ?г)
+ ("i" ?ш)
+ ("o" ?щ)
+ ("p" ?з)
+ ("[" ?х)
+ ("]" ?ї)
+ ("a" ?ф)
+ ("s" ?і)
+ ("d" ?в)
+ ("f" ?а)
+ ("g" ?п)
+ ("h" ?р)
+ ("j" ?о)
+ ("k" ?л)
+ ("l" ?д)
+ (";" ?ж)
+ ("'" ?є)
+ ("z" ?я)
+ ("x" ?ч)
+ ("c" ?с)
+ ("v" ?м)
+ ("b" ?и)
+ ("n" ?т)
+ ("m" ?ь)
+ ("," ?б)
+ ("." ?ю)
  ("/" ?.)
  ("!" ?!)
  ("@" ?\")
- ("#" ?\e$,1uV\e(B)
+ ("#" ?)
  ("$" ?\;)
  ("%" ?%)
  ("^" ?:)
@@ -794,49 +794,49 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  ("_" ?_)
  ("+" ?+)
  ("~" ?')
- ("Q" ?\e$,1(9\e(B)
- ("W" ?\e$,1(F\e(B)
- ("E" ?\e$,1(C\e(B)
- ("R" ?\e$,1(:\e(B)
- ("T" ?\e$,1(5\e(B)
- ("Y" ?\e$,1(=\e(B)
- ("U" ?\e$,1(3\e(B)
- ("I" ?\e$,1(H\e(B)
- ("O" ?\e$,1(I\e(B)
- ("P" ?\e$,1(7\e(B)
- ("{" ?\e$,1(E\e(B)
- ("}" ?\e$,1('\e(B)
- ("A" ?\e$,1(D\e(B)
- ("S" ?\e$,1(&\e(B)
- ("D" ?\e$,1(2\e(B)
- ("F" ?\e$,1(0\e(B)
- ("G" ?\e$,1(?\e(B)
- ("H" ?\e$,1(@\e(B)
- ("J" ?\e$,1(>\e(B)
- ("K" ?\e$,1(;\e(B)
- ("L" ?\e$,1(4\e(B)
- (":" ?\e$,1(6\e(B)
- ("\"" ?\e$,1($\e(B)
- ("Z" ?\e$,1(O\e(B)
- ("X" ?\e$,1(G\e(B)
- ("C" ?\e$,1(A\e(B)
- ("V" ?\e$,1(<\e(B)
- ("B" ?\e$,1(8\e(B)
- ("N" ?\e$,1(B\e(B)
- ("M" ?\e$,1(L\e(B)
- ("<" ?\e$,1(1\e(B)
- (">" ?\e$,1(N\e(B)
+ ("Q" ?Й)
+ ("W" ?Ц)
+ ("E" ?У)
+ ("R" ?К)
+ ("T" ?Е)
+ ("Y" ?Н)
+ ("U" ?Г)
+ ("I" ?Ш)
+ ("O" ?Щ)
+ ("P" ?З)
+ ("{" ?Х)
+ ("}" ?Ї)
+ ("A" ?Ф)
+ ("S" ?І)
+ ("D" ?В)
+ ("F" ?А)
+ ("G" ?П)
+ ("H" ?Р)
+ ("J" ?О)
+ ("K" ?Л)
+ ("L" ?Д)
+ (":" ?Ж)
+ ("\"" ?Є)
+ ("Z" ?Я)
+ ("X" ?Ч)
+ ("C" ?С)
+ ("V" ?М)
+ ("B" ?И)
+ ("N" ?Т)
+ ("M" ?Ь)
+ ("<" ?Б)
+ (">" ?Ю)
  ("?" ?,)
- ("\\" ?\e$,1)Q\e(B)
- ("|" ?\e$,1)P\e(B))
+ ("\\" ?ґ)
+ ("|" ?Ґ))
 ;;
 
 ;; Alexander Mikhailian says this is of limited use.  It has been
 ;; popular among emigrants or foreigners who have to type in Cyrillic
 ;; (mostly Russian) from time to time.
 (quail-define-package
- "cyrillic-yawerty" "Cyrillic" "\e,L6O\e(B" nil
- "\e,LO25@BK\e(B Roman transcription
+ "cyrillic-yawerty" "Cyrillic" "ЖЯ" nil
+ "ЯВЕРТЫ Roman transcription
 
 This layout is based on Roman transcription by phonemic resemblance.
 When preceded by a '/', the second and the third rows (number key row) change
@@ -844,18 +844,18 @@ as follows.
 
   keytop | Q  W  E  R  T  Y  U  I  O  P  A  S  D
  --------+---------------------------------------
-  input  | \e,L"\e(B  \e,L#\e(B  \e,L$\e(B  \e,L%\e(B  \e,L&\e(B  \e,L'\e(B  \e,L(\e(B  \e,L)\e(B  \e,L*\e(B  \e,L+\e(B  \e,L,\e(B  \e,L.\e(B  \e,L/\e(B"
+  input  | Ђ  Ѓ  Є  Ѕ  І  Ї  Ј  Љ  Њ  Ћ  Ќ  Ў  Џ"
  nil t t t t nil nil nil nil nil t)
 
-;;  1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B  \e,LN\e(B
-;;   \e,LO\e(B  \e,L2\e(B  \e,L5\e(B  \e,L@\e(B  \e,LB\e(B  \e,LK\e(B  \e,LC\e(B  \e,L8\e(B  \e,L>\e(B  \e,L?\e(B  \e,LH\e(B  \e,LI\e(B
-;;    \e,L0\e(B  \e,LA\e(B  \e,L4\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L9\e(B  \e,L:\e(B  \e,L;\e(B  ;: '" \e,LM\e(B
-;;     \e,L7\e(B  \e,LL\e(B  \e,LF\e(B  \e,L6\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,< .> /?
+;;  1! 2ё 3ъ 4Ё 5% 6^ 7& 8* 9( 0) -_ Ч  Ю
+;;   Я  В  Е  Р  Т  Ы  У  И  О  П  Ш  Щ
+;;    А  С  Д  Ф  Г  Х  Й  К  Л  ;: '" Э
+;;     З  Ь  Ц  Ж  Б  Н  М  ,< .> /?
 
-;;  1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B  \e,LN\e(B
-;;   \e,L"\e(B  \e,L#\e(B  \e,L$\e(B  \e,L%\e(B  \e,L&\e(B  \e,L'\e(B  \e,L(\e(B  \e,L)\e(B  \e,L*\e(B  \e,L+\e(B  \e,LH\e(B  \e,LI\e(B
-;;    \e,L,\e(B  \e,L.\e(B  \e,L/\e(B  \e,LD\e(B  \e,L3\e(B  \e,LE\e(B  \e,L9\e(B  \e,L:\e(B  \e,L;\e(B  ;: '" \e,LM\e(B
-;;     \e,L7\e(B  \e,LL\e(B  \e,LF\e(B  \e,L6\e(B  \e,L1\e(B  \e,L=\e(B  \e,L<\e(B  ,< .> /?
+;;  1! 2ё 3ъ 4Ё 5% 6^ 7& 8* 9( 0) -_ Ч  Ю
+;;   Ђ  Ѓ  Є  Ѕ  І  Ї  Ј  Љ  Њ  Ћ  Ш  Щ
+;;    Ќ  Ў  Џ  Ф  Г  Х  Й  К  Л  ;: '" Э
+;;     З  Ь  Ц  Ж  Б  Н  М  ,< .> /?
 
 (quail-define-rules
  ("1" ?1)
@@ -869,47 +869,47 @@ as follows.
  ("9" ?9)
  ("0" ?0)
  ("-" ?-)
- ("=" ?\e,Lg\e(B)
- ("`" ?\e,Ln\e(B)
- ("q" ?\e,Lo\e(B)
- ("w" ?\e,LR\e(B)
- ("e" ?\e,LU\e(B)
- ("r" ?\e,L`\e(B)
- ("t" ?\e,Lb\e(B)
- ("y" ?\e,Lk\e(B)
- ("u" ?\e,Lc\e(B)
- ("i" ?\e,LX\e(B)
- ("o" ?\e,L^\e(B)
- ("p" ?\e,L_\e(B)
- ("[" ?\e,Lh\e(B)
- ("]" ?\e,Li\e(B)
- ("a" ?\e,LP\e(B)
- ("s" ?\e,La\e(B)
- ("d" ?\e,LT\e(B)
- ("f" ?\e,Ld\e(B)
- ("g" ?\e,LS\e(B)
- ("h" ?\e,Le\e(B)
- ("j" ?\e,LY\e(B)
- ("k" ?\e,LZ\e(B)
- ("l" ?\e,L[\e(B)
+ ("=" ?ч)
+ ("`" ?ю)
+ ("q" ?я)
+ ("w" ?в)
+ ("e" ?е)
+ ("r" ?р)
+ ("t" ?т)
+ ("y" ?ы)
+ ("u" ?у)
+ ("i" ?и)
+ ("o" ?о)
+ ("p" ?п)
+ ("[" ?ш)
+ ("]" ?щ)
+ ("a" ?а)
+ ("s" ?с)
+ ("d" ?д)
+ ("f" ?ф)
+ ("g" ?г)
+ ("h" ?х)
+ ("j" ?й)
+ ("k" ?к)
+ ("l" ?л)
  (";" ?\;)
  ("'" ?')
- ("\\" ?\e,Lm\e(B)
- ("z" ?\e,LW\e(B)
- ("x" ?\e,Ll\e(B)
- ("c" ?\e,Lf\e(B)
- ("v" ?\e,LV\e(B)
- ("b" ?\e,LQ\e(B)
- ("n" ?\e,L]\e(B)
- ("m" ?\e,L\\e(B)
+ ("\\" ?э)
+ ("z" ?з)
+ ("x" ?ь)
+ ("c" ?ц)
+ ("v" ?ж)
+ ("b" ?б)
+ ("n" ?н)
+ ("m" ?м)
  ("," ?,)
  ("." ?.)
  ("/" ?/)
 
  ("!" ?!)
- ("@" ?\e,Lq\e(B)
- ("#" ?\e,Lj\e(B)
- ("$" ?\e,L!\e(B)
+ ("@" ?ё)
+ ("#" ?ъ)
+ ("$" ?Ё)
  ("%" ?%)
  ("^" ?^)
  ("&" ?&)
@@ -917,70 +917,70 @@ as follows.
  ("(" ?\()
  (")" ?\))
  ("_" ?_)
- ("+" ?\e,LG\e(B)
- ("~" ?\e,LN\e(B)
- ("Q" ?\e,LO\e(B)
- ("W" ?\e,L2\e(B)
- ("E" ?\e,L5\e(B)
- ("R" ?\e,L@\e(B)
- ("T" ?\e,LB\e(B)
- ("Y" ?\e,LK\e(B)
- ("U" ?\e,LC\e(B)
- ("I" ?\e,L8\e(B)
- ("O" ?\e,L>\e(B)
- ("P" ?\e,L?\e(B)
- ("{" ?\e,LH\e(B)
- ("}" ?\e,LI\e(B)
- ("A" ?\e,L0\e(B)
- ("S" ?\e,LA\e(B)
- ("D" ?\e,L4\e(B)
- ("F" ?\e,LD\e(B)
- ("G" ?\e,L3\e(B)
- ("H" ?\e,LE\e(B)
- ("J" ?\e,L9\e(B)
- ("K" ?\e,L:\e(B)
- ("L" ?\e,L;\e(B)
+ ("+" ?Ч)
+ ("~" ?Ю)
+ ("Q" ?Я)
+ ("W" ?В)
+ ("E" ?Е)
+ ("R" ?Р)
+ ("T" ?Т)
+ ("Y" ?Ы)
+ ("U" ?У)
+ ("I" ?И)
+ ("O" ?О)
+ ("P" ?П)
+ ("{" ?Ш)
+ ("}" ?Щ)
+ ("A" ?А)
+ ("S" ?С)
+ ("D" ?Д)
+ ("F" ?Ф)
+ ("G" ?Г)
+ ("H" ?Х)
+ ("J" ?Й)
+ ("K" ?К)
+ ("L" ?Л)
  (":" ?:)
  ("\"" ?\")
- ("|" ?\e,LM\e(B)
- ("Z" ?\e,L7\e(B)
- ("X" ?\e,LL\e(B)
- ("C" ?\e,LF\e(B)
- ("V" ?\e,L6\e(B)
- ("B" ?\e,L1\e(B)
- ("N" ?\e,L=\e(B)
- ("M" ?\e,L<\e(B)
+ ("|" ?Э)
+ ("Z" ?З)
+ ("X" ?Ь)
+ ("C" ?Ц)
+ ("V" ?Ж)
+ ("B" ?Б)
+ ("N" ?Н)
+ ("M" ?М)
  ("<" ?<)
  (">" ?>)
  ("?" ??)
 
- ("/q" ?\e,Lr\e(B)
- ("/w" ?\e,Ls\e(B)
- ("/e" ?\e,Lt\e(B)
- ("/r" ?\e,Lu\e(B)
- ("/t" ?\e,Lv\e(B)
- ("/y" ?\e,Lw\e(B)
- ("/u" ?\e,Lx\e(B)
- ("/i" ?\e,Ly\e(B)
- ("/o" ?\e,Lz\e(B)
- ("/p" ?\e,L{\e(B)
- ("/a" ?\e,L|\e(B)
- ("/s" ?\e,L~\e(B)
- ("/d" ?\e,L\7f\e(B)
-
- ("/Q" ?\e,L"\e(B)
- ("/W" ?\e,L#\e(B)
- ("/E" ?\e,L$\e(B)
- ("/R" ?\e,L%\e(B)
- ("/T" ?\e,L&\e(B)
- ("/Y" ?\e,L'\e(B)
- ("/U" ?\e,L(\e(B)
- ("/I" ?\e,L)\e(B)
- ("/O" ?\e,L*\e(B)
- ("/P" ?\e,L+\e(B)
- ("/A" ?\e,L,\e(B)
- ("/S" ?\e,L.\e(B)
- ("/D" ?\e,L/\e(B))
+ ("/q" ?ђ)
+ ("/w" ?ѓ)
+ ("/e" ?є)
+ ("/r" ?ѕ)
+ ("/t" ?і)
+ ("/y" ?ї)
+ ("/u" ?ј)
+ ("/i" ?љ)
+ ("/o" ?њ)
+ ("/p" ?ћ)
+ ("/a" ?ќ)
+ ("/s" ?ў)
+ ("/d" ?џ)
+
+ ("/Q" ?Ђ)
+ ("/W" ?Ѓ)
+ ("/E" ?Є)
+ ("/R" ?Ѕ)
+ ("/T" ?І)
+ ("/Y" ?Ї)
+ ("/U" ?Ј)
+ ("/I" ?Љ)
+ ("/O" ?Њ)
+ ("/P" ?Ћ)
+ ("/A" ?Ќ)
+ ("/S" ?Ў)
+ ("/D" ?Џ))
 
 ;; This was provided by Valery Alexeev <valery@domovoy.math.uga.edu>.
 
@@ -998,150 +998,150 @@ as follows.
 ;; language-independent and universal.  It should be able to generate all
 ;; Cyrillic symbols.
 (quail-define-package
- "cyrillic-translit" "Cyrillic" "\e,L6\e(Bt" t
+ "cyrillic-translit" "Cyrillic" "Жt" t
  "Intuitively transliterated keyboard layout.
 Most convenient for entering Russian, but all Cyrillic characters
 are included.  Should handle most cases.  However:
-  for \e,Lf\e(B (TSE) use \"c\", never \"ts\"
-  \e,Li\e(B (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\",
-  \e,Lm\e(B (REVERSE ROUNDED E) = \"e\\\"
-  \e,Le\e(B (KHA) when after \e,La\e(B (S) = \"x\" or \"kh\"
-  \e,Lj\e(B (HARD SIGN) = \"~\", \e,LJ\e(B (CAPITAL HARD SIGN) = \"~~\",
-  \e,Ll\e(B (SOFT SIGN) = \"'\", \e,LL\e(B (CAPITAL SOFT SIGN) = \"''\",
-  \e,Lo\e(B (YA) = \"ya\", \"ja\" or \"q\".
+  for ц (TSE) use \"c\", never \"ts\"
+  щ (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\",
+  э (REVERSE ROUNDED E) = \"e\\\"
+  х (KHA) when after с (S) = \"x\" or \"kh\"
+  ъ (HARD SIGN) = \"~\", Ъ (CAPITAL HARD SIGN) = \"~~\",
+  ь (SOFT SIGN) = \"'\", Ь (CAPITAL SOFT SIGN) = \"''\",
+  я (YA) = \"ya\", \"ja\" or \"q\".
 
 Russian alphabet: a b v=w g d e yo=jo zh z i j=j' k l m n o p r s t
 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e\\ yu=ju ya=ja=q
 
-Also included are Ukrainian \e,Lt\e(B (YE) = \"/e\", \e,Lw\e(B (YI) = \"yi\",
-\e$,1)Q\e(B (GHE WITH UPTURN) = \"g'\",
-Belarusian \e,L~\e(B (SHORT U) = \"u~\",
-Serbo-Croatian \e,Lr\e(B (DJE) = \"/d\", \e,L{\e(B (CHJE)= \"/ch\",
-Macedonian \e,Ls\e(B (GJE) = \"/g\", \e,Lu\e(B (DZE) = \"/s\", \e,L|\e(B (KJE) = \"/k\",
-cyrillic \e,Lv\e(B (I DECIMAL) = \"/i\", \e,Lx\e(B (JE) = \"/j\",
-\e,Ly\e(B (LJE) = \"/l\", \e,Lz\e(B (NJE) = \"/n\" and \e,L\7f\e(B (DZE) =\"/z\"."
+Also included are Ukrainian є (YE) = \"/e\", ї (YI) = \"yi\",
+ґ (GHE WITH UPTURN) = \"g'\",
+Belarusian ў (SHORT U) = \"u~\",
+Serbo-Croatian ђ (DJE) = \"/d\", ћ (CHJE)= \"/ch\",
+Macedonian ѓ (GJE) = \"/g\", ѕ (DZE) = \"/s\", ќ (KJE) = \"/k\",
+cyrillic і (I DECIMAL) = \"/i\", ј (JE) = \"/j\",
+љ (LJE) = \"/l\", њ (NJE) = \"/n\" and џ (DZE) =\"/z\"."
  nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("a" ?\e,LP\e(B) ("b" ?\e,LQ\e(B) ("v" ?\e,LR\e(B) ("w" ?\e,LR\e(B) ("g" ?\e,LS\e(B) ("d" ?\e,LT\e(B)
- ("e" ?\e,LU\e(B) ("je" ?\e,LU\e(B)
- ("yo" ?\e,Lq\e(B) ("jo" ?\e,Lq\e(B)
- ("zh" ?\e,LV\e(B) ("z" ?\e,LW\e(B) ("i" ?\e,LX\e(B)
- ("j" ?\e,LY\e(B) ("j'" ?\e,LY\e(B) ("j`" ?\e,LY\e(B) ("k" ?\e,LZ\e(B) ("l" ?\e,L[\e(B)
- ("m" ?\e,L\\e(B) ("n" ?\e,L]\e(B) ("o" ?\e,L^\e(B) ("p" ?\e,L_\e(B) ("r" ?\e,L`\e(B) ("s" ?\e,La\e(B) ("t" ?\e,Lb\e(B) ("u" ?\e,Lc\e(B)
- ("f" ?\e,Ld\e(B) ("x" ?\e,Le\e(B) ("h" ?\e,Le\e(B) ("kh" ?\e,Le\e(B)
- ("c" ?\e,Lf\e(B) ("ch" ?\e,Lg\e(B)
- ("sh" ?\e,Lh\e(B)
- ("shch" ?\e,Li\e(B) ("sj" ?\e,Li\e(B)
- ("/sht" ?\e,Li\e(B) ("/t" ?\e,Li\e(B)
- ("~" ?\e,Lj\e(B) ("y" ?\e,Lk\e(B) ("'" ?\e,Ll\e(B) ("`" ?\e,Ll\e(B)
- ("e\\" ?\e,Lm\e(B) ("e'" ?\e,Lm\e(B) ("e`" ?\e,Lm\e(B) ("@" ?\e,Lm\e(B)
- ("yu" ?\e,Ln\e(B) ("ju" ?\e,Ln\e(B)
- ("ya" ?\e,Lo\e(B) ("ja" ?\e,Lo\e(B) ("q" ?\e,Lo\e(B)
-
- ("A" ?\e,L0\e(B) ("B" ?\e,L1\e(B) ("V" ?\e,L2\e(B) ("W" ?\e,L2\e(B) ("G" ?\e,L3\e(B) ("D" ?\e,L4\e(B)
- ("E" ?\e,L5\e(B) ("Je" ?\e,L5\e(B) ("JE" ?\e,L5\e(B)
- ("Yo" ?\e,L!\e(B) ("YO" ?\e,L!\e(B) ("Jo" ?\e,L!\e(B) ("JO" ?\e,L!\e(B)
- ("Zh" ?\e,L6\e(B) ("ZH" ?\e,L6\e(B) ("Z" ?\e,L7\e(B) ("I" ?\e,L8\e(B)
- ("J" ?\e,L9\e(B) ("J'" ?\e,L9\e(B) ("J`" ?\e,L9\e(B) ("K" ?\e,L:\e(B) ("L" ?\e,L;\e(B)
- ("M" ?\e,L<\e(B) ("N" ?\e,L=\e(B) ("O" ?\e,L>\e(B) ("P" ?\e,L?\e(B) ("R" ?\e,L@\e(B) ("S" ?\e,LA\e(B) ("T" ?\e,LB\e(B) ("U" ?\e,LC\e(B)
- ("F" ?\e,LD\e(B) ("X" ?\e,LE\e(B) ("H" ?\e,LE\e(B) ("Kh" ?\e,LE\e(B) ("KH" ?\e,LE\e(B)
- ("C" ?\e,LF\e(B) ("Ch" ?\e,LG\e(B) ("CH" ?\e,LG\e(B)
- ("Sh" ?\e,LH\e(B) ("SH" ?\e,LH\e(B)
- ("Shch" ?\e,LI\e(B) ("SHCH" ?\e,LI\e(B) ("Sj" ?\e,LI\e(B) ("SJ" ?\e,LI\e(B)
- ("/Sht" ?\e,LI\e(B) ("/SHT" ?\e,LI\e(B) ("/T" ?\e,LI\e(B)
- ("~~" ?\e,LJ\e(B) ("Y" ?\e,LK\e(B) ("''" ?\e,LL\e(B)
- ("E\\" ?\e,LM\e(B) ("E'" ?\e,LM\e(B) ("E`" ?\e,LM\e(B) ("@@" ?\e,LM\e(B)
- ("Yu" ?\e,LN\e(B) ("YU" ?\e,LN\e(B) ("Ju" ?\e,LN\e(B) ("JU" ?\e,LN\e(B)
- ("Ya" ?\e,LO\e(B) ("YA" ?\e,LO\e(B) ("Ja" ?\e,LO\e(B) ("JA" ?\e,LO\e(B) ("Q" ?\e,LO\e(B)
-
- ("/e" ?\e,Lt\e(B) ("yi" ?\e,Lw\e(B) ("u'" ?\e,L~\e(B) ("u~" ?\e,L~\e(B)
- ("g'" ?\e$,1)Q\e(B)
- ("/d" ?\e,Lr\e(B) ("/ch" ?\e,L{\e(B)
- ("/g" ?\e,Ls\e(B) ("/s" ?\e,Lu\e(B) ("/k" ?\e,L|\e(B)
- ("/i" ?\e,Lv\e(B) ("/j" ?\e,Lx\e(B) ("/l" ?\e,Ly\e(B) ("/n" ?\e,Lz\e(B) ("/z" ?\e,L\7f\e(B)
- ("/E" ?\e,L$\e(B) ("YE" ?\e,L$\e(B) ("Yi" ?\e,L'\e(B) ("YI" ?\e,L'\e(B) ("U'" ?\e,L.\e(B) ("U~" ?\e,L.\e(B)
- ("G'" ?\e$,1)P\e(B)
- ("/D" ?\e,L"\e(B) ("/Ch" ?\e,L+\e(B) ("/CH" ?\e,L+\e(B)
- ("/G" ?\e,L#\e(B) ("/S" ?\e,L%\e(B) ("/K" ?\e,L,\e(B)
- ("/I" ?\e,L&\e(B) ("/J" ?\e,L(\e(B) ("/L" ?\e,L)\e(B) ("/N" ?\e,L*\e(B) ("/Z" ?\e,L/\e(B)
+ ("a" ?а) ("b" ?б) ("v" ?в) ("w" ?в) ("g" ?г) ("d" ?д)
+ ("e" ?е) ("je" ?е)
+ ("yo" ?ё) ("jo" ?ё)
+ ("zh" ?ж) ("z" ?з) ("i" ?и)
+ ("j" ?й) ("j'" ?й) ("j`" ?й) ("k" ?к) ("l" ?л)
+ ("m" ?м) ("n" ?н) ("o" ?о) ("p" ?п) ("r" ?р) ("s" ?с) ("t" ?т) ("u" ?у)
+ ("f" ?ф) ("x" ?х) ("h" ?х) ("kh" ?х)
+ ("c" ?ц) ("ch" ?ч)
+ ("sh" ?ш)
+ ("shch" ?щ) ("sj" ?щ)
+ ("/sht" ?щ) ("/t" ?щ)
+ ("~" ?ъ) ("y" ?ы) ("'" ?ь) ("`" ?ь)
+ ("e\\" ?э) ("e'" ?э) ("e`" ?э) ("@" ?э)
+ ("yu" ?ю) ("ju" ?ю)
+ ("ya" ?я) ("ja" ?я) ("q" ?я)
+
+ ("A" ?А) ("B" ?Б) ("V" ?В) ("W" ?В) ("G" ?Г) ("D" ?Д)
+ ("E" ?Е) ("Je" ?Е) ("JE" ?Е)
+ ("Yo" ?Ё) ("YO" ?Ё) ("Jo" ?Ё) ("JO" ?Ё)
+ ("Zh" ?Ж) ("ZH" ?Ж) ("Z" ?З) ("I" ?И)
+ ("J" ?Й) ("J'" ?Й) ("J`" ?Й) ("K" ?К) ("L" ?Л)
+ ("M" ?М) ("N" ?Н) ("O" ?О) ("P" ?П) ("R" ?Р) ("S" ?С) ("T" ?Т) ("U" ?У)
+ ("F" ?Ф) ("X" ?Х) ("H" ?Х) ("Kh" ?Х) ("KH" ?Х)
+ ("C" ?Ц) ("Ch" ?Ч) ("CH" ?Ч)
+ ("Sh" ?Ш) ("SH" ?Ш)
+ ("Shch" ?Щ) ("SHCH" ?Щ) ("Sj" ?Щ) ("SJ" ?Щ)
+ ("/Sht" ?Щ) ("/SHT" ?Щ) ("/T" ?Щ)
+ ("~~" ?Ъ) ("Y" ?Ы) ("''" ?Ь)
+ ("E\\" ?Э) ("E'" ?Э) ("E`" ?Э) ("@@" ?Э)
+ ("Yu" ?Ю) ("YU" ?Ю) ("Ju" ?Ю) ("JU" ?Ю)
+ ("Ya" ?Я) ("YA" ?Я) ("Ja" ?Я) ("JA" ?Я) ("Q" ?Я)
+
+ ("/e" ?є) ("yi" ?ї) ("u'" ?ў) ("u~" ?ў)
+ ("g'" ?ґ)
+ ("/d" ?ђ) ("/ch" ?ћ)
+ ("/g" ?ѓ) ("/s" ?ѕ) ("/k" ?ќ)
+ ("/i" ?і) ("/j" ?ј) ("/l" ?љ) ("/n" ?њ) ("/z" ?џ)
+ ("/E" ?Є) ("YE" ?Є) ("Yi" ?Ї) ("YI" ?Ї) ("U'" ?Ў) ("U~" ?Ў)
+ ("G'" ?Ґ)
+ ("/D" ?Ђ) ("/Ch" ?Ћ) ("/CH" ?Ћ)
+ ("/G" ?Ѓ) ("/S" ?Ѕ) ("/K" ?Ќ)
+ ("/I" ?І) ("/J" ?Ј) ("/L" ?Љ) ("/N" ?Њ) ("/Z" ?Џ)
 
  ;; Combining accents as a separate character
- ("//'" ?\e$(O+Z\e(B) ("//`" ?\e$(O+\\e(B)
+ ("//'" ?́) ("//`" ?̀)
 
  ;; In the following two rules the accent is not a separate character
- ("i`" ?\e$,1(}\e(B) ("I`" ?\e$,1(-\e(B)
-
- ("/-"  ?\e$(G!9\e(B)  ;; EN DASH
- ("/--" ?\e$(G!7\e(B)  ;; EM DASH
- ("/*" ?\e$(O#@\e(B)   ;; BULLET
- ("/." ?\e$,1s$\e(B)   ;; ONE DOT LEADER
- ("/.." ?\e$(G!-\e(B)  ;; TWO DOT LEADER
- ("/..." ?\e$A!-\e(B) ;; HORIZONTAL ELLIPSIS
- ("/,," ?\e,Y%\e(B)  ;; DOUBLE LOW-9 QUOTATION MARK
- ("/," ?\e$,1rz\e(B)   ;; SINGLE LOW-9 QUOTATION MARK
- ("/''" ?\e,Y!\e(B)  ;; RIGHT DOUBLE QUOTATION MARK
- ("/'" ?\e,F"\e(B)   ;; RIGHT SINGLE QUOTATION MARK
- ("/``" ?\e,Y4\e(B)  ;; LEFT DOUBLE QUOTATION MARK
- ("/`" ?\e,F!\e(B)   ;; LEFT SINGLE QUOTATION MARK
- ("/<<" ?\e,A+\e(B)  ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- ("/>>" ?\e,A;\e(B)  ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-
- ("/&" ?\e,A'\e(B)
- ("/ab" ?\e,A'\e(B)                             ; _\e,LPQ\e(B_\e,LWPf\e(B
- ("/pa" ?\e,A'\e(B)                             ; _pa_ragraph
- ("/#" ?\e,Lp\e(B)
- ("/no" ?\e,Lp\e(B)                             ; _\e,L]^\e(B_\e,L\U`\e(B
-
- ("/c" ?\e,A)\e(B)
- ("/tm" ?\e$(D"o\e(B)
- ("/reg" ?\e,A.\e(B)
- ("/eu"  ?\e,b$\e(B)
- ("/ce"  ?\e,A"\e(B)
+ ("i`" ?ѝ) ("I`" ?Ѝ)
+
+ ("/-"  ?)  ;; EN DASH
+ ("/--" ?)  ;; EM DASH
+ ("/*" ?)   ;; BULLET
+ ("/." ?)   ;; ONE DOT LEADER
+ ("/.." ?)  ;; TWO DOT LEADER
+ ("/..." ?) ;; HORIZONTAL ELLIPSIS
+ ("/,," ?)  ;; DOUBLE LOW-9 QUOTATION MARK
+ ("/," ?)   ;; SINGLE LOW-9 QUOTATION MARK
+ ("/''" ?)  ;; RIGHT DOUBLE QUOTATION MARK
+ ("/'" ?)   ;; RIGHT SINGLE QUOTATION MARK
+ ("/``" ?)  ;; LEFT DOUBLE QUOTATION MARK
+ ("/`" ?)   ;; LEFT SINGLE QUOTATION MARK
+ ("/<<" ?«)  ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ("/>>" ?»)  ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+
+ ("/&" ?§)
+ ("/ab" ?§)                             ; _аб_зац
+ ("/pa" ?§)                             ; _pa_ragraph
+ ("/#" ?)
+ ("/no" ?№)                             ; _но_мер
+
+ ("/c" ?©)
+ ("/tm" ?)
+ ("/reg" ?®)
+ ("/eu"  ?)
+ ("/ce"  ?¢)
 
  ;; fractions
- ("/78" ?\e$(C(~\e(B)
- ("/58" ?\e$(C(}\e(B)
- ("/38" ?\e$(C(|\e(B)
- ("/18" ?\e$(C({\e(B)
- ("/56" ?\e$,1v:\e(B)
- ("/16" ?\e$,1v9\e(B)
- ("/45" ?\e$,1v8\e(B)
- ("/35" ?\e$,1v7\e(B)
- ("/25" ?\e$,1v6\e(B)
- ("/15" ?\e$(O'z\e(B)
- ("/23" ?\e$(O'y\e(B)
- ("/13" ?\e$(O'x\e(B)
- ("/34" ?\e,A>\e(B)
- ("/12" ?\e,A=\e(B)
- ("/14" ?\e,A<\e(B)
+ ("/78" ?)
+ ("/58" ?)
+ ("/38" ?)
+ ("/18" ?)
+ ("/56" ?)
+ ("/16" ?)
+ ("/45" ?)
+ ("/35" ?)
+ ("/25" ?)
+ ("/15" ?)
+ ("/23" ?)
+ ("/13" ?)
+ ("/34" ?¾)
+ ("/12" ?½)
+ ("/14" ?¼)
 
  ;; Roman numerals, commonly used for months and section/subsection numbers
- ("/RI" ?\e$A"q\e(B)
- ("/RII" ?\e$A"r\e(B)
- ("/RIII" ?\e$A"s\e(B)
- ("/RIV" ?\e$A"t\e(B)
- ("/RV" ?\e$A"u\e(B)
- ("/RVI" ?\e$A"v\e(B)
- ("/RVII" ?\e$A"w\e(B)
- ("/RVIII" ?\e$A"x\e(B)
- ("/RIX" ?\e$A"y\e(B)
- ("/RX" ?\e$A"z\e(B)
- ("/RXI" ?\e$A"{\e(B)
- ("/RXII" ?\e$A"|\e(B)
-
- ("/ri" ?\e$(G&5\e(B)
- ("/rii" ?\e$(G&6\e(B)
- ("/riii" ?\e$(G&7\e(B)
- ("/riv" ?\e$(G&8\e(B)
- ("/rv" ?\e$(G&9\e(B)
- ("/rvi" ?\e$(G&:\e(B)
- ("/rvii" ?\e$(G&;\e(B)
- ("/rviii" ?\e$(G&<\e(B)
- ("/rix" ?\e$(G&=\e(B)
- ("/rx" ?\e$(G&>\e(B)
- ("/rxi" ?\e$(O,?\e(B)
- ("/rxii" ?\e$(O,@\e(B)
+ ("/RI" ?)
+ ("/RII" ?)
+ ("/RIII" ?)
+ ("/RIV" ?)
+ ("/RV" ?)
+ ("/RVI" ?)
+ ("/RVII" ?)
+ ("/RVIII" ?)
+ ("/RIX" ?)
+ ("/RX" ?)
+ ("/RXI" ?)
+ ("/RXII" ?)
+
+ ("/ri" ?)
+ ("/rii" ?)
+ ("/riii" ?)
+ ("/riv" ?)
+ ("/rv" ?)
+ ("/rvi" ?)
+ ("/rvii" ?)
+ ("/rviii" ?)
+ ("/rix" ?)
+ ("/rx" ?)
+ ("/rxi" ?)
+ ("/rxii" ?)
 )
 
 ;; Originally from Yudit's `Belarusian input table according to
@@ -1149,113 +1149,113 @@ cyrillic \e,Lv\e(B (I DECIMAL) = \"/i\", \e,Lx\e(B (JE) = \"/j\",
 ;; <mikhailian@altern.org>, subsequently amended by AM.
 (quail-define-package
  "belarusian" "Belarusian" "BE" nil
- "\e$,1(9(F(C(:(5(=\e(B keyboard layout registered as STB955-94 Belarusian standard.
+ "ЙЦУКЕН keyboard layout registered as STB955-94 Belarusian standard.
 Unicode based."
  nil t t t t nil nil nil nil nil t)
 
-;; \e$,1(q(!\e(B 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+
-;;     \e$,1(9\e(B  \e$,1(F\e(B  \e$,1(C\e(B  \e$,1(:\e(B  \e$,1(5\e(B  \e$,1(=\e(B  \e$,1(3\e(B  \e$,1(H\e(B  \e$,1(.\e(B  \e$,1(7\e(B  \e$,1(E\e(B  '
-;;      \e$,1(D\e(B  \e$,1(K\e(B  \e$,1(2\e(B  \e$,1(0\e(B  \e$,1(?\e(B  \e$,1(@\e(B  \e$,1(>\e(B  \e$,1(;\e(B  \e$,1(4\e(B  \e$,1(6\e(B  \e$,1(M\e(B
-;;       \e$,1(O\e(B  \e$,1(G\e(B  \e$,1(A\e(B  \e$,1(<\e(B  \e$,1(&\e(B  \e$,1(B\e(B  \e$,1(L\e(B  \e$,1(1\e(B  \e$,1(N\e(B  .,
+;; ёЁ 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+
+;;     Й  Ц  У  К  Е  Н  Г  Ш  Ў  З  Х  '
+;;      Ф  Ы  В  А  П  Р  О  Л  Д  Ж  Э
+;;       Я  Ч  С  М  І  Т  Ь  Б  Ю  .,
 
 (quail-define-rules
- ("~" ?\e$,1(!\e(B)
+ ("~" ?Ё)
  ("@" ?\")
- ("#" ?\e$,1uV\e(B)
+ ("#" ?)
  ("$" ?\;)
  ("%" ?%)
  ("^" ?:)
  ("&" ??)
- ("Q" ?\e$,1(9\e(B)
- ("W" ?\e$,1(F\e(B)
- ("E" ?\e$,1(C\e(B)
- ("R" ?\e$,1(:\e(B)
- ("T" ?\e$,1(5\e(B)
- ("Y" ?\e$,1(=\e(B)
- ("U" ?\e$,1(3\e(B)
- ("I" ?\e$,1(H\e(B)
- ("O" ?\e$,1(.\e(B)
- ("P" ?\e$,1(7\e(B)
- ("{" ?\e$,1(E\e(B)
+ ("Q" ?Й)
+ ("W" ?Ц)
+ ("E" ?У)
+ ("R" ?К)
+ ("T" ?Е)
+ ("Y" ?Н)
+ ("U" ?Г)
+ ("I" ?Ш)
+ ("O" ?Ў)
+ ("P" ?З)
+ ("{" ?Х)
  ("}" ?')
- ("A" ?\e$,1(D\e(B)
- ("S" ?\e$,1(K\e(B)
- ("D" ?\e$,1(2\e(B)
- ("F" ?\e$,1(0\e(B)
- ("G" ?\e$,1(?\e(B)
- ("H" ?\e$,1(@\e(B)
- ("J" ?\e$,1(>\e(B)
- ("K" ?\e$,1(;\e(B)
- ("L" ?\e$,1(4\e(B)
- (":" ?\e$,1(6\e(B)
- ("\"" ?\e$,1(M\e(B)
+ ("A" ?Ф)
+ ("S" ?Ы)
+ ("D" ?В)
+ ("F" ?А)
+ ("G" ?П)
+ ("H" ?Р)
+ ("J" ?О)
+ ("K" ?Л)
+ ("L" ?Д)
+ (":" ?Ж)
+ ("\"" ?Э)
  ("|" ?|)
- ("Z" ?\e$,1(O\e(B)
- ("X" ?\e$,1(G\e(B)
- ("C" ?\e$,1(A\e(B)
- ("V" ?\e$,1(<\e(B)
- ("B" ?\e$,1(&\e(B)
- ("N" ?\e$,1(B\e(B)
- ("M" ?\e$,1(L\e(B)
- ("<" ?\e$,1(1\e(B)
- (">" ?\e$,1(N\e(B)
+ ("Z" ?Я)
+ ("X" ?Ч)
+ ("C" ?С)
+ ("V" ?М)
+ ("B" ?І)
+ ("N" ?Т)
+ ("M" ?Ь)
+ ("<" ?Б)
+ (">" ?Ю)
  ("?" ?,)
 
- ("`" ?\e$,1(q\e(B)
- ("q" ?\e$,1(Y\e(B)
- ("w" ?\e$,1(f\e(B)
- ("e" ?\e$,1(c\e(B)
- ("r" ?\e$,1(Z\e(B)
- ("t" ?\e$,1(U\e(B)
- ("y" ?\e$,1(]\e(B)
- ("u" ?\e$,1(S\e(B)
- ("i" ?\e$,1(h\e(B)
- ("o" ?\e$,1(~\e(B)
- ("p" ?\e$,1(W\e(B)
- ("[" ?\e$,1(e\e(B)
+ ("`" ?ё)
+ ("q" ?й)
+ ("w" ?ц)
+ ("e" ?у)
+ ("r" ?к)
+ ("t" ?е)
+ ("y" ?н)
+ ("u" ?г)
+ ("i" ?ш)
+ ("o" ?ў)
+ ("p" ?з)
+ ("[" ?х)
  ("]" ?')
- ("a" ?\e$,1(d\e(B)
- ("s" ?\e$,1(k\e(B)
- ("d" ?\e$,1(R\e(B)
- ("f" ?\e$,1(P\e(B)
- ("g" ?\e$,1(_\e(B)
- ("h" ?\e$,1(`\e(B)
- ("j" ?\e$,1(^\e(B)
- ("k" ?\e$,1([\e(B)
- ("l" ?\e$,1(T\e(B)
- (";" ?\e$,1(V\e(B)
- ("'" ?\e$,1(m\e(B)
- ("z" ?\e$,1(o\e(B)
- ("x" ?\e$,1(g\e(B)
- ("c" ?\e$,1(a\e(B)
- ("v" ?\e$,1(\\e(B)
- ("b" ?\e$,1(v\e(B)
- ("n" ?\e$,1(b\e(B)
- ("m" ?\e$,1(l\e(B)
- ("," ?\e$,1(Q\e(B)
- ("." ?\e$,1(n\e(B)
+ ("a" ?ф)
+ ("s" ?ы)
+ ("d" ?в)
+ ("f" ?а)
+ ("g" ?п)
+ ("h" ?р)
+ ("j" ?о)
+ ("k" ?л)
+ ("l" ?д)
+ (";" ?ж)
+ ("'" ?э)
+ ("z" ?я)
+ ("x" ?ч)
+ ("c" ?с)
+ ("v" ?м)
+ ("b" ?і)
+ ("n" ?т)
+ ("m" ?ь)
+ ("," ?б)
+ ("." ?ю)
  ("/" ?.))
 
 (quail-define-package
- "bulgarian-alt-phonetic" "Bulgarian" "\e$,1(1(=(D\e(B"
+ "bulgarian-alt-phonetic" "Bulgarian" "БНФ"
  nil
  "Bulgarian alternative Phonetic keyboard layout, producing Unicode.
 
 This phonetic layout replaces all the Latin letters with Bulgarian
 \(Cyrillic\) letters based on similarities in their pronunciation or look.
 
-Note that, since the letters '\e,Li\e(B', '\e,Ll\e(B', '\e,Ln\e(B' and '\e,Lo\e(B' are attached to the
+Note that, since the letters 'щ', 'ь', 'ю' and 'я' are attached to the
 ']', '\', '`' and '[' keys respectively, Caps Lock does not affect them."
 nil t t t t nil nil nil nil nil t)
 
-;;  \e$,1(N\e(B  1! 2@ 3\e$,1uV\e(B 4$ 5% 6\e$,1tL\e(B 7\e,A'\e(B 8* 9( 0) -\e$,1rs\e(B =+ \e$,1(l(}\e(B
-;;      \e$,1(G\e(B  \e$,1(H\e(B  \e$,1(5\e(B  \e$,1(@\e(B  \e$,1(B\e(B  \e$,1(J\e(B  \e$,1(C\e(B  \e$,1(8\e(B  \e$,1(>\e(B  \e$,1(?\e(B  \e$,1(O\e(B  \e$,1(I\e(B
-;;       \e,L0\e(B  \e$,1(A\e(B  \e$,1(4\e(B  \e$,1(D\e(B  \e$,1(3\e(B  \e$,1(E\e(B  \e$,1(9\e(B  \e$,1(:\e(B  \e$,1(;\e(B  :; '"
-;;        \e$,1(7\e(B  \e$,1(6\e(B  \e$,1(F\e(B  \e$,1(2\e(B  \e$,1(1\e(B  \e$,1(=\e(B  \e$,1(<\e(B  ,\e$,1r~\e(B .\e$,1r|\e(B /?
+;;  Ю  1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
+;;      Ч  Ш  Е  Р  Т  Ъ  У  И  О  П  Я  Щ
+;;       А  С  Д  Ф  Г  Х  Й  К  Л  :; '"
+;;        З  Ж  Ц  В  Б  Н  М  ,„ .“ /?
 
 (quail-define-rules
- ("#" ?\e,Lp\e(B)
- ("&" ?\e,A'\e(B)
+ ("#" ?)
+ ("&" ?§)
  ("/#" ?#)
  ("/&" ?&)
  ("/<" ?<)
@@ -1270,44 +1270,44 @@ nil t t t t nil nil nil nil nil t)
  ("/|" ?|)
  ("/}" ?})
  ("/~" ?~)
- ("<" ?\e$,1r~\e(B)
- (">" ?\e$,1r|\e(B)
- ("A" ?\e$,1(0\e(B) ("a" ?\e$,1(P\e(B)
- ("B" ?\e$,1(1\e(B) ("b" ?\e$,1(Q\e(B)
- ("C" ?\e$,1(F\e(B) ("c" ?\e$,1(f\e(B)
- ("D" ?\e$,1(4\e(B) ("d" ?\e$,1(T\e(B)
- ("E" ?\e$,1(5\e(B) ("e" ?\e$,1(U\e(B)
- ("F" ?\e$,1(D\e(B) ("f" ?\e$,1(d\e(B)
- ("G" ?\e$,1(3\e(B) ("g" ?\e$,1(S\e(B)
- ("H" ?\e$,1(E\e(B) ("h" ?\e$,1(e\e(B)
- ("I" ?\e$,1(8\e(B) ("i" ?\e$,1(X\e(B)
- ("J" ?\e$,1(9\e(B) ("j" ?\e$,1(Y\e(B)
- ("K" ?\e$,1(:\e(B) ("k" ?\e$,1(Z\e(B)
- ("L" ?\e$,1(;\e(B) ("l" ?\e$,1([\e(B)
- ("M" ?\e$,1(<\e(B) ("m" ?\e$,1(\\e(B)
- ("N" ?\e$,1(=\e(B) ("n" ?\e$,1(]\e(B)
- ("O" ?\e$,1(>\e(B) ("o" ?\e$,1(^\e(B)
- ("P" ?\e$,1(?\e(B) ("p" ?\e$,1(_\e(B)
- ("Q" ?\e$,1(G\e(B) ("q" ?\e$,1(g\e(B)
- ("R" ?\e$,1(@\e(B) ("r" ?\e$,1(`\e(B)
- ("S" ?\e$,1(A\e(B) ("s" ?\e$,1(a\e(B)
- ("T" ?\e$,1(B\e(B) ("t" ?\e$,1(b\e(B)
- ("U" ?\e$,1(C\e(B) ("u" ?\e$,1(c\e(B)
- ("V" ?\e$,1(2\e(B) ("v" ?\e$,1(R\e(B)
- ("W" ?\e$,1(H\e(B) ("w" ?\e$,1(h\e(B)
- ("X" ?\e$,1(6\e(B) ("x" ?\e$,1(V\e(B)
- ("Y" ?\e$,1(J\e(B) ("y" ?\e$,1(j\e(B)
- ("Z" ?\e$,1(7\e(B) ("z" ?\e$,1(W\e(B)
- ("[" ?\e$,1(o\e(B)
- ("\\" ?\e$,1(l\e(B)
- ("]" ?\e$,1(i\e(B)
- ("^" ?\e$,1tL\e(B)
- ("_" ?\e$,1rs\e(B)
- ("`" ?\e$,1(n\e(B)
- ("{" ?\e$,1(O\e(B)
- ("|" ?\e$,1(}\e(B)
- ("}" ?\e$,1(I\e(B)
- ("~" ?\e$,1(N\e(B))
+ ("<" ?)
+ (">" ?)
+ ("A" ?А) ("a" ?а)
+ ("B" ?Б) ("b" ?б)
+ ("C" ?Ц) ("c" ?ц)
+ ("D" ?Д) ("d" ?д)
+ ("E" ?Е) ("e" ?е)
+ ("F" ?Ф) ("f" ?ф)
+ ("G" ?Г) ("g" ?г)
+ ("H" ?Х) ("h" ?х)
+ ("I" ?И) ("i" ?и)
+ ("J" ?Й) ("j" ?й)
+ ("K" ?К) ("k" ?к)
+ ("L" ?Л) ("l" ?л)
+ ("M" ?М) ("m" ?м)
+ ("N" ?Н) ("n" ?н)
+ ("O" ?О) ("o" ?о)
+ ("P" ?П) ("p" ?п)
+ ("Q" ?Ч) ("q" ?ч)
+ ("R" ?Р) ("r" ?р)
+ ("S" ?С) ("s" ?с)
+ ("T" ?Т) ("t" ?т)
+ ("U" ?У) ("u" ?у)
+ ("V" ?В) ("v" ?в)
+ ("W" ?Ш) ("w" ?ш)
+ ("X" ?Ж) ("x" ?ж)
+ ("Y" ?Ъ) ("y" ?ъ)
+ ("Z" ?З) ("z" ?з)
+ ("[" ?я)
+ ("\\" ?ь)
+ ("]" ?щ)
+ ("^" ?)
+ ("_" ?)
+ ("`" ?ю)
+ ("{" ?Я)
+ ("|" ?ѝ)
+ ("}" ?Щ)
+ ("~" ?Ю))
 
 ;; From `Bulgarian-PHO.kmap for Yudit', Alexander Shopov
 ;; <al_shopov@web.bg>.
@@ -1317,108 +1317,108 @@ nil t t t t nil nil nil nil nil t)
 ;; <ogi@fmi.uni-sofia.bg> and name changes from Anton Zinoviev
 ;; <anton@lml.bas.bg>.
 (quail-define-package
- "bulgarian-phonetic" "Bulgarian" "\e$,1(6(1(D\e(B"
+ "bulgarian-phonetic" "Bulgarian" "ЖБФ"
  nil
  "Bulgarian Phonetic keyboard layout, producing Unicode.
 
 The layout is similar to `cyrillic-translit', but all Bulgarian
 characters are typed with a single key.
 
-Use /& for \e,A'\e(B (Cyrillic paragraph) and /# for \e$,1uV\e(B.
+Use /& for § (Cyrillic paragraph) and /# for №.
 
-The letters \e$,1(G\e(B, \e$,1(H\e(B, \e$,1(I\e(B and \e$,1(N\e(B are not affected by Caps Lock."
+The letters Ч, Ш, Щ and Ю are not affected by Caps Lock."
  nil t t t t nil nil nil nil nil t)
 
-;;  \e$,1(G\e(B
-;;      \e$,1(O\e(B  \e$,1(2\e(B  \e$,1(5\e(B  \e$,1(@\e(B  \e$,1(B\e(B  \e$,1(J\e(B  \e$,1(C\e(B  \e$,1(8\e(B  \e$,1(>\e(B  \e$,1(?\e(B  \e$,1(H\e(B  \e$,1(I\e(B
-;;       \e$,1(0\e(B  \e$,1(A\e(B  \e$,1(4\e(B  \e$,1(D\e(B  \e$,1(3\e(B  \e$,1(E\e(B  \e$,1(9\e(B  \e$,1(:\e(B  \e$,1(;\e(B        \e$,1(N\e(B
-;;        \e$,1(7\e(B  \e$,1(L\e(B  \e$,1(F\e(B  \e$,1(6\e(B  \e$,1(1\e(B  \e$,1(=\e(B  \e$,1(<\e(B
+;;  Ч
+;;      Я  В  Е  Р  Т  Ъ  У  И  О  П  Ш  Щ
+;;       А  С  Д  Ф  Г  Х  Й  К  Л        Ю
+;;        З  Ь  Ц  Ж  Б  Н  М
 
 (quail-define-rules
- ("/&" ?\e,A'\e(B)
- ("/#" ?\e$,1uV\e(B)
- ("A" ?\e$,1(0\e(B)
- ("B" ?\e$,1(1\e(B)
- ("W" ?\e$,1(2\e(B)
- ("G" ?\e$,1(3\e(B)
- ("D" ?\e$,1(4\e(B)
- ("E" ?\e$,1(5\e(B)
- ("V" ?\e$,1(6\e(B)
- ("Z" ?\e$,1(7\e(B)
- ("I" ?\e$,1(8\e(B)
- ("J" ?\e$,1(9\e(B)
- ("K" ?\e$,1(:\e(B)
- ("L" ?\e$,1(;\e(B)
- ("M" ?\e$,1(<\e(B)
- ("N" ?\e$,1(=\e(B)
- ("O" ?\e$,1(>\e(B)
- ("P" ?\e$,1(?\e(B)
- ("R" ?\e$,1(@\e(B)
- ("S" ?\e$,1(A\e(B)
- ("T" ?\e$,1(B\e(B)
- ("U" ?\e$,1(C\e(B)
- ("F" ?\e$,1(D\e(B)
- ("H" ?\e$,1(E\e(B)
- ("C" ?\e$,1(F\e(B)
- ("~" ?\e$,1(G\e(B)
- ("{" ?\e$,1(H\e(B)
- ("}" ?\e$,1(I\e(B)
- ("Y" ?\e$,1(J\e(B)
- ("X" ?\e$,1(L\e(B)
- ("|" ?\e$,1(N\e(B)
- ("Q" ?\e$,1(O\e(B)
- ("a" ?\e$,1(P\e(B)
- ("b" ?\e$,1(Q\e(B)
- ("w" ?\e$,1(R\e(B)
- ("g" ?\e$,1(S\e(B)
- ("d" ?\e$,1(T\e(B)
- ("e" ?\e$,1(U\e(B)
- ("v" ?\e$,1(V\e(B)
- ("z" ?\e$,1(W\e(B)
- ("i" ?\e$,1(X\e(B)
- ("j" ?\e$,1(Y\e(B)
- ("k" ?\e$,1(Z\e(B)
- ("l" ?\e$,1([\e(B)
- ("m" ?\e$,1(\\e(B)
- ("n" ?\e$,1(]\e(B)
- ("o" ?\e$,1(^\e(B)
- ("p" ?\e$,1(_\e(B)
- ("r" ?\e$,1(`\e(B)
- ("s" ?\e$,1(a\e(B)
- ("t" ?\e$,1(b\e(B)
- ("u" ?\e$,1(c\e(B)
- ("f" ?\e$,1(d\e(B)
- ("h" ?\e$,1(e\e(B)
- ("c" ?\e$,1(f\e(B)
- ("`" ?\e$,1(g\e(B)
- ("[" ?\e$,1(h\e(B)
- ("]" ?\e$,1(i\e(B)
- ("y" ?\e$,1(j\e(B)
- ("x" ?\e$,1(l\e(B)
- ("\\" ?\e$,1(n\e(B)
- ("q" ?\e$,1(o\e(B))
+ ("/&" ?§)
+ ("/#" ?)
+ ("A" ?А)
+ ("B" ?Б)
+ ("W" ?В)
+ ("G" ?Г)
+ ("D" ?Д)
+ ("E" ?Е)
+ ("V" ?Ж)
+ ("Z" ?З)
+ ("I" ?И)
+ ("J" ?Й)
+ ("K" ?К)
+ ("L" ?Л)
+ ("M" ?М)
+ ("N" ?Н)
+ ("O" ?О)
+ ("P" ?П)
+ ("R" ?Р)
+ ("S" ?С)
+ ("T" ?Т)
+ ("U" ?У)
+ ("F" ?Ф)
+ ("H" ?Х)
+ ("C" ?Ц)
+ ("~" ?Ч)
+ ("{" ?Ш)
+ ("}" ?Щ)
+ ("Y" ?Ъ)
+ ("X" ?Ь)
+ ("|" ?Ю)
+ ("Q" ?Я)
+ ("a" ?а)
+ ("b" ?б)
+ ("w" ?в)
+ ("g" ?г)
+ ("d" ?д)
+ ("e" ?е)
+ ("v" ?ж)
+ ("z" ?з)
+ ("i" ?и)
+ ("j" ?й)
+ ("k" ?к)
+ ("l" ?л)
+ ("m" ?м)
+ ("n" ?н)
+ ("o" ?о)
+ ("p" ?п)
+ ("r" ?р)
+ ("s" ?с)
+ ("t" ?т)
+ ("u" ?у)
+ ("f" ?ф)
+ ("h" ?х)
+ ("c" ?ц)
+ ("`" ?ч)
+ ("[" ?ш)
+ ("]" ?щ)
+ ("y" ?ъ)
+ ("x" ?ь)
+ ("\\" ?ю)
+ ("q" ?я))
 
 ;; Based on an implementation by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
 ;; This follows XKB bg.
 
 (quail-define-package
- "bulgarian-bds" "Bulgarian" "\e$,1(1(4(A\e(B" nil
+ "bulgarian-bds" "Bulgarian" "БДС" nil
  "Bulgarian standard keyboard layout (BDS)
 
 This keyboard layout is standard for Bulgarian typewriters.
 
-The letters \e$,1(F\e(B, \e$,1(<\e(B, \e$,1(G\e(B, \e$,1(@\e(B, \e$,1(;\e(B, \e$,1(1\e(B and \e$,1(K\e(B are not affected by Caps Lock.
+The letters Ц, М, Ч, Р, Л, Б and Ы are not affected by Caps Lock.
 
 In addition to original Bulgarian typewriter layout, keys \\ and |
-are transformed into ' and \e$,1(K\e(B respectively.  Some keyboards mark these
+are transformed into ' and Ы respectively.  Some keyboards mark these
 keys as being transformed into ( and ) respectively.  For ( and ), use
 ` and ~ respectively.  This input method follows XKB."
  nil t t t t nil nil nil nil nil t)
 
-;;  () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0\e$,1uV\e(B -I .V
-;;      ,\e$,1(k\e(B \e$,1(C\e(B  \e$,1(5\e(B  \e$,1(8\e(B  \e$,1(H\e(B  \e$,1(I\e(B  \e$,1(:\e(B  \e$,1(A\e(B  \e$,1(4\e(B  \e$,1(7\e(B  \e$,1(F\e(B  ;\e,A'\e(B
-;;       \e$,1(L\e(B  \e$,1(O\e(B  \e$,1(0\e(B  \e$,1(>\e(B  \e$,1(6\e(B  \e$,1(3\e(B  \e$,1(B\e(B  \e$,1(=\e(B  \e$,1(2\e(B  \e$,1(<\e(B  \e$,1(G\e(B  '\e$,1(K\e(B
-;;        \e$,1(N\e(B  \e$,1(9\e(B  \e$,1(J\e(B  \e$,1(M\e(B  \e$,1(D\e(B  \e$,1(E\e(B  \e$,1(?\e(B  \e$,1(@\e(B  \e$,1(;\e(B  \e$,1(1\e(B
+;;  () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0 -I .V
+;;      ,ы У  Е  И  Ш  Щ  К  С  Д  З  Ц  ;§
+;;       Ь  Я  А  О  Ж  Г  Т  Н  В  М  Ч  'Ы
+;;        Ю  Й  Ъ  Э  Ф  Х  П  Р  Л  Б
 
 (quail-define-rules
 
@@ -1431,50 +1431,50 @@ keys as being transformed into ( and ) respectively.  For ( and ), use
  ("7" ?7) ("&" ?:)
  ("8" ?8) ("*" ?/)
  ("9" ?9) ("(" ?_)
- ("0" ?0) (")" ?\e$,1uV\e(B)
+ ("0" ?0) (")" ?)
  ("-" ?-) ("_" ?I)
  ("=" ?.) ("+" ?V)
 
- ("q" ?,) ("Q" ?\e$,1(k\e(B)
- ("w" ?\e$,1(c\e(B) ("W" ?\e$,1(C\e(B)
- ("e" ?\e$,1(U\e(B) ("E" ?\e$,1(5\e(B)
- ("r" ?\e$,1(X\e(B) ("R" ?\e$,1(8\e(B)
- ("t" ?\e$,1(h\e(B) ("T" ?\e$,1(H\e(B)
- ("y" ?\e$,1(i\e(B) ("Y" ?\e$,1(I\e(B)
- ("u" ?\e$,1(Z\e(B) ("U" ?\e$,1(:\e(B)
- ("i" ?\e$,1(a\e(B) ("I" ?\e$,1(A\e(B)
- ("o" ?\e$,1(T\e(B) ("O" ?\e$,1(4\e(B)
- ("p" ?\e$,1(W\e(B) ("P" ?\e$,1(7\e(B)
- ("[" ?\e$,1(f\e(B) ("{" ?\e$,1(F\e(B)
- ("]" ?\;) ("}" ?\e,A'\e(B)
-
- ("a" ?\e$,1(l\e(B) ("A" ?\e$,1(L\e(B)
- ("s" ?\e$,1(o\e(B) ("S" ?\e$,1(O\e(B)
- ("d" ?\e$,1(P\e(B) ("D" ?\e$,1(0\e(B)
- ("f" ?\e$,1(^\e(B) ("F" ?\e$,1(>\e(B)
- ("g" ?\e$,1(V\e(B) ("G" ?\e$,1(6\e(B)
- ("h" ?\e$,1(S\e(B) ("H" ?\e$,1(3\e(B)
- ("j" ?\e$,1(b\e(B) ("J" ?\e$,1(B\e(B)
- ("k" ?\e$,1(]\e(B) ("K" ?\e$,1(=\e(B)
- ("l" ?\e$,1(R\e(B) ("L" ?\e$,1(2\e(B)
- (";" ?\e$,1(\\e(B) (":" ?\e$,1(<\e(B)
- ("'" ?\e$,1(g\e(B) ("\"" ?\e$,1(G\e(B)
+ ("q" ?,) ("Q" ?ы)
+ ("w" ?у) ("W" ?У)
+ ("e" ?е) ("E" ?Е)
+ ("r" ?и) ("R" ?И)
+ ("t" ?ш) ("T" ?Ш)
+ ("y" ?щ) ("Y" ?Щ)
+ ("u" ?к) ("U" ?К)
+ ("i" ?с) ("I" ?С)
+ ("o" ?д) ("O" ?Д)
+ ("p" ?з) ("P" ?З)
+ ("[" ?ц) ("{" ?Ц)
+ ("]" ?\;) ("}" ?§)
+
+ ("a" ?ь) ("A" ?Ь)
+ ("s" ?я) ("S" ?Я)
+ ("d" ?а) ("D" ?А)
+ ("f" ?о) ("F" ?О)
+ ("g" ?ж) ("G" ?Ж)
+ ("h" ?г) ("H" ?Г)
+ ("j" ?т) ("J" ?Т)
+ ("k" ?н) ("K" ?Н)
+ ("l" ?в) ("L" ?В)
+ (";" ?м) (":" ?М)
+ ("'" ?ч) ("\"" ?Ч)
  ("`" ?\() ("~" ?\))
 
- ("z" ?\e$,1(n\e(B) ("Z" ?\e$,1(N\e(B)
- ("x" ?\e$,1(Y\e(B) ("X" ?\e$,1(9\e(B)
- ("c" ?\e$,1(j\e(B) ("C" ?\e$,1(J\e(B)
- ("v" ?\e$,1(m\e(B) ("V" ?\e$,1(M\e(B)
- ("b" ?\e$,1(d\e(B) ("B" ?\e$,1(D\e(B)
- ("n" ?\e$,1(e\e(B) ("N" ?\e$,1(E\e(B)
- ("m" ?\e$,1(_\e(B) ("M" ?\e$,1(?\e(B)
- ("," ?\e$,1(`\e(B) ("<" ?\e$,1(@\e(B)
- ("." ?\e$,1([\e(B) (">" ?\e$,1(;\e(B)
- ("/" ?\e$,1(Q\e(B) ("?" ?\e$,1(1\e(B)
- ("\\" ?') ("|" ?\e$,1(K\e(B))
+ ("z" ?ю) ("Z" ?Ю)
+ ("x" ?й) ("X" ?Й)
+ ("c" ?ъ) ("C" ?Ъ)
+ ("v" ?э) ("V" ?Э)
+ ("b" ?ф) ("B" ?Ф)
+ ("n" ?х) ("N" ?Х)
+ ("m" ?п) ("M" ?П)
+ ("," ?р) ("<" ?Р)
+ ("." ?л) (">" ?Л)
+ ("/" ?б) ("?" ?Б)
+ ("\\" ?') ("|" ?Ы))
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
 
 ;;; cyrillic.el ends here
index 187e1d882923d63349d06c148ac28b4e12535254..9f2ad84e36870fff7a9a3edd8aa9cefea50bc281 100644 (file)
@@ -1,9 +1,9 @@
-;;; czech.el --- Quail package for inputting Czech -*-coding: iso-2022-7bit;-*-
+;;; czech.el --- Quail package for inputting Czech -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <pdm@zamazal.org>
-;; Maintainer: Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
+;; Maintainer: Pavel Janík <Pavel@Janik.cz>
 ;; Keywords: i18n, multilingual, input method, Czech
 
 ;; This file is part of GNU Emacs.
 
 (quail-define-rules
  ("1" ?+)
- ("2" ?\e,Bl\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,Bx\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("2" ?ě)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ř)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("!" ?1)
  ("@" ?2)
  ("#" ?3)
  (")" ?0)
  ("-" ?=)
  ("_" ?%)
- ("[" ?\e,Bz\e(B)
+ ("[" ?ú)
  ("{" ?/)
  ("]" ?\))
  ("}" ?\()
  ("|" ?`)
- (";" ?\e,By\e(B)
+ (";" ?ů)
  (":" ?\")
- ("'" ?\e,B'\e(B)
+ ("'" ?§)
  ("\"" ?!)
  ("<" ??)
  (">" ?:)
  ("z" ?y)
  ("Y" ?Z)
  ("Z" ?Y)
- ("\\a" ?\e,Bd\e(B)
- ("\\o" ?\e,Bv\e(B)
- ("\\s" ?\e,B_\e(B)
- ("\\u" ?\e,B|\e(B)
- ("\\A" ?\e,BD\e(B)
- ("\\O" ?\e,BV\e(B)
- ("\\S" ?\e,B_\e(B)
- ("\\U" ?\e,B\\e(B)
- ("~u" ?\e,By\e(B)
- ("~U" ?\e,BY\e(B)
- ("=a" ?\e,Ba\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("=e" ?\e,Bi\e(B)
- ("+e" ?\e,Bl\e(B)
- ("=i" ?\e,Bm\e(B)
- ("+n" ?\e,Br\e(B)
- ("=o" ?\e,Bs\e(B)
- ("+r" ?\e,Bx\e(B)
- ("+s" ?\e,B9\e(B)
- ("+t" ?\e,B;\e(B)
- ("=u" ?\e,Bz\e(B)
- ("=z" ?\e,B}\e(B)
- ("+y" ?\e,B>\e(B)
- ("=A" ?\e,BA\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("=E" ?\e,BI\e(B)
- ("+E" ?\e,BL\e(B)
- ("=I" ?\e,BM\e(B)
- ("+N" ?\e,BR\e(B)
- ("=O" ?\e,BS\e(B)
- ("+R" ?\e,BX\e(B)
- ("+S" ?\e,B)\e(B)
- ("+T" ?\e,B+\e(B)
- ("=U" ?\e,BZ\e(B)
- ("=Z" ?\e,B]\e(B)
- ("+Y" ?\e,B.\e(B)
+ ("\\a" ?ä)
+ ("\\o" ?ö)
+ ("\\s" ?ß)
+ ("\\u" ?ü)
+ ("\\A" ?Ä)
+ ("\\O" ?Ö)
+ ("\\S" ?ß)
+ ("\\U" ?Ü)
+ ("~u" ?ů)
+ ("~U" ?Ů)
+ ("=a" ?á)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("=e" ?é)
+ ("+e" ?ě)
+ ("=i" ?í)
+ ("+n" ?ň)
+ ("=o" ?ó)
+ ("+r" ?ř)
+ ("+s" ?š)
+ ("+t" ?ť)
+ ("=u" ?ú)
+ ("=z" ?ý)
+ ("+y" ?ž)
+ ("=A" ?Á)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("=E" ?É)
+ ("+E" ?Ě)
+ ("=I" ?Í)
+ ("+N" ?Ň)
+ ("=O" ?Ó)
+ ("+R" ?Ř)
+ ("+S" ?Š)
+ ("+T" ?Ť)
+ ("=U" ?Ú)
+ ("=Z" ?Ý)
+ ("+Y" ?Ž)
  ("=1" ?!)
  ("=2" ?@)
  ("=3" ?#)
 
 (quail-define-rules
  ("1" ?+)
- ("2" ?\e,Bl\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,Bx\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("2" ?ě)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ř)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("!" ?1)
  ("@" ?2)
  ("#" ?3)
  (")" ?0)
  ("-" ?=)
  ("_" ?%)
- ("[" ?\e,Bz\e(B)
+ ("[" ?ú)
  ("{" ?/)
  ("]" ?\))
  ("}" ?\()
  ("|" ?`)
- (";" ?\e,By\e(B)
+ (";" ?ů)
  (":" ?\")
- ("'" ?\e,B'\e(B)
+ ("'" ?§)
  ("\"" ?!)
  ("<" ??)
  (">" ?:)
  ("/" ?-)
  ("?" ?_)
  ("`" ?\;)
- ("\\a" ?\e,Bd\e(B)
- ("\\o" ?\e,Bv\e(B)
- ("\\s" ?\e,B_\e(B)
- ("\\u" ?\e,B|\e(B)
- ("\\A" ?\e,BD\e(B)
- ("\\O" ?\e,BV\e(B)
- ("\\S" ?\e,B_\e(B)
- ("\\U" ?\e,B\\e(B)
- ("~u" ?\e,By\e(B)
- ("~U" ?\e,BY\e(B)
- ("=a" ?\e,Ba\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("=e" ?\e,Bi\e(B)
- ("+e" ?\e,Bl\e(B)
- ("=i" ?\e,Bm\e(B)
- ("+n" ?\e,Br\e(B)
- ("=o" ?\e,Bs\e(B)
- ("+r" ?\e,Bx\e(B)
- ("+s" ?\e,B9\e(B)
- ("+t" ?\e,B;\e(B)
- ("=u" ?\e,Bz\e(B)
- ("=y" ?\e,B}\e(B)
- ("+z" ?\e,B>\e(B)
- ("=A" ?\e,BA\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("=E" ?\e,BI\e(B)
- ("+E" ?\e,BL\e(B)
- ("=I" ?\e,BM\e(B)
- ("+N" ?\e,BR\e(B)
- ("=O" ?\e,BS\e(B)
- ("+R" ?\e,BX\e(B)
- ("+S" ?\e,B)\e(B)
- ("+T" ?\e,B+\e(B)
- ("=Y" ?\e,B]\e(B)
- ("+Z" ?\e,B.\e(B)
- ("=U" ?\e,BZ\e(B)
+ ("\\a" ?ä)
+ ("\\o" ?ö)
+ ("\\s" ?ß)
+ ("\\u" ?ü)
+ ("\\A" ?Ä)
+ ("\\O" ?Ö)
+ ("\\S" ?ß)
+ ("\\U" ?Ü)
+ ("~u" ?ů)
+ ("~U" ?Ů)
+ ("=a" ?á)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("=e" ?é)
+ ("+e" ?ě)
+ ("=i" ?í)
+ ("+n" ?ň)
+ ("=o" ?ó)
+ ("+r" ?ř)
+ ("+s" ?š)
+ ("+t" ?ť)
+ ("=u" ?ú)
+ ("=y" ?ý)
+ ("+z" ?ž)
+ ("=A" ?Á)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("=E" ?É)
+ ("+E" ?Ě)
+ ("=I" ?Í)
+ ("+N" ?Ň)
+ ("=O" ?Ó)
+ ("+R" ?Ř)
+ ("+S" ?Š)
+ ("+T" ?Ť)
+ ("=Y" ?Ý)
+ ("+Z" ?Ž)
+ ("=U" ?Ú)
  ("=1" ?!)
  ("=2" ?@)
  ("=3" ?#)
@@ -286,15 +286,15 @@ All other keys are the same as on standard US keyboard."
 
 (quail-define-rules
  ("1" ?+)
- ("2" ?\e,Bl\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,Bx\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("2" ?ě)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ř)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("+1" ?1)
  ("+2" ?2)
  ("+3" ?3)
@@ -305,52 +305,52 @@ All other keys are the same as on standard US keyboard."
  ("+8" ?8)
  ("+9" ?9)
  ("+0" ?0)
- ("+a" ?\e,Ba\e(B)
- ("++a" ?\e,Bd\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("+e" ?\e,Bi\e(B)
- ("++e" ?\e,Bl\e(B)
- ("+i" ?\e,Bm\e(B)
- ("+l" ?\e,Be\e(B)
- ("++l" ?\e,B5\e(B)
- ("+n" ?\e,Br\e(B)
- ("+o" ?\e,Bs\e(B)
- ("++o" ?\e,Bv\e(B)
- ("+++o" ?\e,Bt\e(B)
- ("+r" ?\e,Bx\e(B)
- ("++r" ?\e,B`\e(B)
- ("+s" ?\e,B9\e(B)
- ("++s" ?\e,B_\e(B)
- ("+t" ?\e,B;\e(B)
- ("+u" ?\e,Bz\e(B)
- ("++u" ?\e,By\e(B)
- ("+++u" ?\e,B|\e(B)
- ("+y" ?\e,B}\e(B)
- ("+z" ?\e,B>\e(B)
- ("+A" ?\e,BA\e(B)
- ("++A" ?\e,BD\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("+E" ?\e,BI\e(B)
- ("++E" ?\e,BL\e(B)
- ("+I" ?\e,BM\e(B)
- ("+L" ?\e,BE\e(B)
- ("++L" ?\e,B%\e(B)
- ("+N" ?\e,BR\e(B)
- ("+O" ?\e,BS\e(B)
- ("++O" ?\e,BV\e(B)
- ("+++O" ?\e,BT\e(B)
- ("+R" ?\e,BX\e(B)
- ("++R" ?\e,B@\e(B)
- ("+S" ?\e,B)\e(B)
- ("++S" ?\e,B_\e(B)
- ("+T" ?\e,B+\e(B)
- ("+U" ?\e,BZ\e(B)
- ("++U" ?\e,BY\e(B)
- ("+++U" ?\e,B\\e(B)
- ("+Y" ?\e,B]\e(B)
- ("+Z" ?\e,B.\e(B)
+ ("+a" ?á)
+ ("++a" ?ä)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("+e" ?é)
+ ("++e" ?ě)
+ ("+i" ?í)
+ ("+l" ?ĺ)
+ ("++l" ?ľ)
+ ("+n" ?ň)
+ ("+o" ?ó)
+ ("++o" ?ö)
+ ("+++o" ?ô)
+ ("+r" ?ř)
+ ("++r" ?ŕ)
+ ("+s" ?š)
+ ("++s" ?ß)
+ ("+t" ?ť)
+ ("+u" ?ú)
+ ("++u" ?ů)
+ ("+++u" ?ü)
+ ("+y" ?ý)
+ ("+z" ?ž)
+ ("+A" ?Á)
+ ("++A" ?Ä)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("+E" ?É)
+ ("++E" ?Ě)
+ ("+I" ?Í)
+ ("+L" ?Ĺ)
+ ("++L" ?Ľ)
+ ("+N" ?Ň)
+ ("+O" ?Ó)
+ ("++O" ?Ö)
+ ("+++O" ?Ô)
+ ("+R" ?Ř)
+ ("++R" ?Ŕ)
+ ("+S" ?Š)
+ ("++S" ?ß)
+ ("+T" ?Ť)
+ ("+U" ?Ú)
+ ("++U" ?Ů)
+ ("+++U" ?Ü)
+ ("+Y" ?Ý)
+ ("+Z" ?Ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
@@ -369,22 +369,22 @@ All other keys are the same as on standard US keyboard."
 
 All digits except of `1' are replaced by Czech characters as on the standard
 Czech keyboard.
-`1' is replaced by `\e,By\e(B'.
+`1' is replaced by `ů'.
 `+' is a dead key.  Multiple presses of the dead key generate various accents.
 All other keys are the same as on standard US keyboard."
  nil t nil nil t nil nil nil nil nil t)
 
 (quail-define-rules
- ("1" ?\e,By\e(B)
- ("2" ?\e,Bl\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,Bx\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("1" ?ů)
+ ("2" ?ě)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ř)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("+1" ?1)
  ("+2" ?2)
  ("+3" ?3)
@@ -395,52 +395,52 @@ All other keys are the same as on standard US keyboard."
  ("+8" ?8)
  ("+9" ?9)
  ("+0" ?0)
- ("+a" ?\e,Ba\e(B)
- ("++a" ?\e,Bd\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("+e" ?\e,Bi\e(B)
- ("++e" ?\e,Bl\e(B)
- ("+i" ?\e,Bm\e(B)
- ("+l" ?\e,Be\e(B)
- ("++l" ?\e,B5\e(B)
- ("+n" ?\e,Br\e(B)
- ("+o" ?\e,Bs\e(B)
- ("++o" ?\e,Bv\e(B)
- ("+++o" ?\e,Bt\e(B)
- ("+r" ?\e,Bx\e(B)
- ("++r" ?\e,B`\e(B)
- ("+s" ?\e,B9\e(B)
- ("++s" ?\e,B_\e(B)
- ("+t" ?\e,B;\e(B)
- ("+u" ?\e,Bz\e(B)
- ("++u" ?\e,By\e(B)
- ("+++u" ?\e,B|\e(B)
- ("+y" ?\e,B}\e(B)
- ("+z" ?\e,B>\e(B)
- ("+A" ?\e,BA\e(B)
- ("++A" ?\e,BD\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("+E" ?\e,BI\e(B)
- ("++E" ?\e,BL\e(B)
- ("+I" ?\e,BM\e(B)
- ("+L" ?\e,BE\e(B)
- ("++L" ?\e,B%\e(B)
- ("+N" ?\e,BR\e(B)
- ("+O" ?\e,BS\e(B)
- ("++O" ?\e,BV\e(B)
- ("+++O" ?\e,BT\e(B)
- ("+R" ?\e,BX\e(B)
- ("++R" ?\e,B@\e(B)
- ("+S" ?\e,B)\e(B)
- ("++S" ?\e,B_\e(B)
- ("+T" ?\e,B+\e(B)
- ("+U" ?\e,BZ\e(B)
- ("++U" ?\e,BY\e(B)
- ("+++U" ?\e,B\\e(B)
- ("+Y" ?\e,B]\e(B)
- ("+Z" ?\e,B.\e(B)
+ ("+a" ?á)
+ ("++a" ?ä)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("+e" ?é)
+ ("++e" ?ě)
+ ("+i" ?í)
+ ("+l" ?ĺ)
+ ("++l" ?ľ)
+ ("+n" ?ň)
+ ("+o" ?ó)
+ ("++o" ?ö)
+ ("+++o" ?ô)
+ ("+r" ?ř)
+ ("++r" ?ŕ)
+ ("+s" ?š)
+ ("++s" ?ß)
+ ("+t" ?ť)
+ ("+u" ?ú)
+ ("++u" ?ů)
+ ("+++u" ?ü)
+ ("+y" ?ý)
+ ("+z" ?ž)
+ ("+A" ?Á)
+ ("++A" ?Ä)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("+E" ?É)
+ ("++E" ?Ě)
+ ("+I" ?Í)
+ ("+L" ?Ĺ)
+ ("++L" ?Ľ)
+ ("+N" ?Ň)
+ ("+O" ?Ó)
+ ("++O" ?Ö)
+ ("+++O" ?Ô)
+ ("+R" ?Ř)
+ ("++R" ?Ŕ)
+ ("+S" ?Š)
+ ("++S" ?ß)
+ ("+T" ?Ť)
+ ("+U" ?Ú)
+ ("++U" ?Ů)
+ ("+++U" ?Ü)
+ ("+Y" ?Ý)
+ ("+Z" ?Ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
@@ -460,24 +460,24 @@ keyboard from the obsolete `emacs-czech' package.
 
 All digits except of `1' are replaced by Czech characters as on the standard
 Czech keyboard.
-`[' and `]' are replaced with `\e,Bz\e(B' and `\e,By\e(B', respectively.
+`[' and `]' are replaced with `ú' and `ů', respectively.
 There are two dead keys on `=' and `+'.  Characters with diaereses are
 accessible through `+='.
 All other keys are the same as on standard US keyboard."
  nil t nil nil t nil nil nil nil nil t)
 
 (quail-define-rules
- ("2" ?\e,Bl\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,Bx\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
- ("[" ?\e,Bz\e(B)
- ("]" ?\e,By\e(B)
+ ("2" ?ě)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ř)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
+ ("[" ?ú)
+ ("]" ?ů)
  ("==" ?=)
  ("++" ?+)
  ("=+" ?+)
@@ -505,54 +505,54 @@ All other keys are the same as on standard US keyboard."
  ("+8" ?8)
  ("+9" ?9)
  ("+0" ?0)
- ("=A" ?\e,BA\e(B)
- ("+A" ?\e,BD\e(B)
- ("+=A" ?\e,BD\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("=E" ?\e,BI\e(B)
- ("+E" ?\e,BL\e(B)
- ("=I" ?\e,BM\e(B)
- ("=L" ?\e,B%\e(B)
- ("+L" ?\e,BE\e(B)
- ("+N" ?\e,BR\e(B)
- ("=O" ?\e,BS\e(B)
- ("+O" ?\e,BT\e(B)
- ("+=O" ?\e,BV\e(B)
- ("=R" ?\e,B@\e(B)
- ("+R" ?\e,BX\e(B)
- ("+S" ?\e,B)\e(B)
- ("=S" ?\e,B_\e(B)
- ("+T" ?\e,B+\e(B)
- ("=U" ?\e,BZ\e(B)
- ("+U" ?\e,BY\e(B)
- ("+=U" ?\e,B\\e(B)
- ("=Y" ?\e,B]\e(B)
- ("+Z" ?\e,B.\e(B)
- ("=a" ?\e,Ba\e(B)
- ("+a" ?\e,Bd\e(B)
- ("+=a" ?\e,Bd\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("=e" ?\e,Bi\e(B)
- ("+e" ?\e,Bl\e(B)
- ("=i" ?\e,Bm\e(B)
- ("=l" ?\e,B5\e(B)
- ("+l" ?\e,Be\e(B)
- ("+n" ?\e,Br\e(B)
- ("=o" ?\e,Bs\e(B)
- ("+o" ?\e,Bt\e(B)
- ("+=o" ?\e,Bv\e(B)
- ("=r" ?\e,B`\e(B)
- ("+r" ?\e,Bx\e(B)
- ("+s" ?\e,B9\e(B)
- ("=s" ?\e,B_\e(B)
- ("+t" ?\e,B;\e(B)
- ("=u" ?\e,Bz\e(B)
- ("+u" ?\e,By\e(B)
- ("+=u" ?\e,B|\e(B)
- ("=y" ?\e,B}\e(B)
- ("+z" ?\e,B>\e(B)
+ ("=A" ?Á)
+ ("+A" ?Ä)
+ ("+=A" ?Ä)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("=E" ?É)
+ ("+E" ?Ě)
+ ("=I" ?Í)
+ ("=L" ?Ľ)
+ ("+L" ?Ĺ)
+ ("+N" ?Ň)
+ ("=O" ?Ó)
+ ("+O" ?Ô)
+ ("+=O" ?Ö)
+ ("=R" ?Ŕ)
+ ("+R" ?Ř)
+ ("+S" ?Š)
+ ("=S" ?ß)
+ ("+T" ?Ť)
+ ("=U" ?Ú)
+ ("+U" ?Ů)
+ ("+=U" ?Ü)
+ ("=Y" ?Ý)
+ ("+Z" ?Ž)
+ ("=a" ?á)
+ ("+a" ?ä)
+ ("+=a" ?ä)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("=e" ?é)
+ ("+e" ?ě)
+ ("=i" ?í)
+ ("=l" ?ľ)
+ ("+l" ?ĺ)
+ ("+n" ?ň)
+ ("=o" ?ó)
+ ("+o" ?ô)
+ ("+=o" ?ö)
+ ("=r" ?ŕ)
+ ("+r" ?ř)
+ ("+s" ?š)
+ ("=s" ?ß)
+ ("+t" ?ť)
+ ("=u" ?ú)
+ ("+u" ?ů)
+ ("+=u" ?ü)
+ ("=y" ?ý)
+ ("+z" ?ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
index 569d6e6b245783a258d3b7147f02330c200955c9..d99f649e5e7e9f71ec89b2604621394f8976275f 100644 (file)
@@ -1,4 +1,4 @@
-;;; ethiopic.el --- Quail package for inputting Ethiopic characters  -*-coding: iso-2022-7bit;-*-
+;;; ethiopic.el --- Quail package for inputting Ethiopic characters  -*-coding: utf-8-emacs;-*-
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
@@ -37,9 +37,9 @@
 
 (quail-define-package
  "ethiopic" "Ethiopic"
- '("\e$(3$Q#U!.\e(B "
-   (ethio-prefer-ascii-space "_" "\e$(3$h\e(B")
-   "\e$(3$i\e(B")
+ '("ፊደል "
+   (ethio-prefer-ascii-space "_" "")
+   "")
  t "  Quail package for Ethiopic (Tigrigna and Amharic)
 
 When you are in Ethiopic language environment, the following special
@@ -47,17 +47,17 @@ keys are available.
 
 C-F9 or `M-x ethio-toggle-space'
   Toggles space characters for keyboard input.  The current mode is
-  indicated in mode-line, whether by `_' (ASCII space) or `\e$(3$h\e(B'
-  (Ethiopic colon-like word separator).  Even in the `\e$(3$h\e(B' mode, an
+  indicated in mode-line, whether by `_' (ASCII space) or `'
+  (Ethiopic colon-like word separator).  Even in the `' mode, an
   ASCII space is inserted if the point is preceded by `an Ethiopic
   punctuation followed by zero or more ASCII spaces'.
 
 S-F5 or `M-x ethio-toggle-punctuation'
   Toggles ASCII punctuation and Ethiopic punctuation for keyboard input.
-  The current mode is indicated by `.' (ASCII) or `\e$(3$i\e(B' (Ethiopic).
+  The current mode is indicated by `.' (ASCII) or `' (Ethiopic).
 
 S-SPC or `M-x ethio-insert-ethio-space'
-  Always insert an Ethiopic word separator `\e$(3$h\e(B'.  With a prefix number,
+  Always insert an Ethiopic word separator `'.  With a prefix number,
   insert that many word separators.
 
 C-' or `M-x ethio-gemination'
@@ -75,1075 +75,1075 @@ C-' or `M-x ethio-gemination'
  t t)
 
 (quail-define-rules
- ("he" ?\e$(3!!\e(B)
- ("hu" ?\e$(3!"\e(B)
- ("hi" ?\e$(3!#\e(B)
- ("ha" ?\e$(3!$\e(B)
- ("hE" ?\e$(3!%\e(B)
- ("hee" ?\e$(3!%\e(B)
- ("h" ?\e$(3!&\e(B)
- ("ho" ?\e$(3!'\e(B)
- ("hW" ?\e$(3"N\e(B)
- ("hWa" ?\e$(3"N\e(B)
- ("hWe" ?\e$(3"K\e(B)
- ("hWu" ?\e$(3"P\e(B)
- ("hWi" ?\e$(3"M\e(B)
- ("hWE" ?\e$(3"O\e(B)
- ("hW'" ?\e$(3"P\e(B)
-
- ("le" ?\e$(3!)\e(B)
- ("lu" ?\e$(3!*\e(B)
- ("li" ?\e$(3!+\e(B)
- ("la" ?\e$(3!,\e(B)
- ("lE" ?\e$(3!-\e(B)
- ("lee" ?\e$(3!-\e(B)
- ("l" ?\e$(3!.\e(B)
- ("lo" ?\e$(3!/\e(B)
- ("lW" ?\e$(3!0\e(B)
- ("lWa" ?\e$(3!0\e(B)
- ("lWe" ["\e$(3!.%n\e(B"])
- ("lWu" ["\e$(3!.%r\e(B"])
- ("lWi" ["\e$(3!.%o\e(B"])
- ("lWE" ["\e$(3!.%q\e(B"])
- ("lW'" ["\e$(3!.%r\e(B"])
-
- ("Le" ?\e$(3!)\e(B)
- ("Lu" ?\e$(3!*\e(B)
- ("Li" ?\e$(3!+\e(B)
- ("La" ?\e$(3!,\e(B)
- ("LE" ?\e$(3!-\e(B)
- ("Lee" ?\e$(3!-\e(B)
- ("L" ?\e$(3!.\e(B)
- ("Lo" ?\e$(3!/\e(B)
- ("LW" ?\e$(3!0\e(B)
- ("LWa" ?\e$(3!0\e(B)
- ("LWe" ["\e$(3!.%n\e(B"])
- ("LWu" ["\e$(3!.%r\e(B"])
- ("LWi" ["\e$(3!.%o\e(B"])
- ("LWE" ["\e$(3!.%q\e(B"])
- ("LW'" ["\e$(3!.%r\e(B"])
-
- ("He" ?\e$(3!1\e(B)
- ("Hu" ?\e$(3!2\e(B)
- ("Hi" ?\e$(3!3\e(B)
- ("Ha" ?\e$(3!4\e(B)
- ("HE" ?\e$(3!5\e(B)
- ("Hee" ?\e$(3!5\e(B)
- ("H" ?\e$(3!6\e(B)
- ("Ho" ?\e$(3!7\e(B)
- ("HW" ?\e$(3!8\e(B)
- ("HWa" ?\e$(3!8\e(B)
- ("HWe" ["\e$(3!6%n\e(B"])
- ("HWu" ["\e$(3!6%r\e(B"])
- ("HWi" ["\e$(3!6%o\e(B"])
- ("HWE" ["\e$(3!6%q\e(B"])
- ("HW'" ["\e$(3!6%r\e(B"])
-
- ("me" ?\e$(3!9\e(B)
- ("mu" ?\e$(3!:\e(B)
- ("mi" ?\e$(3!;\e(B)
- ("ma" ?\e$(3!<\e(B)
- ("mE" ?\e$(3!=\e(B)
- ("mee" ?\e$(3!=\e(B)
- ("m" ?\e$(3!>\e(B)
- ("mo" ?\e$(3!?\e(B)
- ("mWe" ?\e$(3%1\e(B)
- ("mWu" ?\e$(3%a\e(B)
- ("mWi" ?\e$(3%A\e(B)
- ("mW" ?\e$(3!@\e(B)
- ("mWa" ?\e$(3!@\e(B)
- ("mWE" ?\e$(3%Q\e(B)
- ("mWee" ?\e$(3%Q\e(B)
- ("mW'" ?\e$(3%a\e(B)
- ("mY" ?\e$(3$_\e(B)
- ("mYa" ?\e$(3$_\e(B)
-
- ("Me" ?\e$(3!9\e(B)
- ("Mu" ?\e$(3!:\e(B)
- ("Mi" ?\e$(3!;\e(B)
- ("Ma" ?\e$(3!<\e(B)
- ("ME" ?\e$(3!=\e(B)
- ("Mee" ?\e$(3!=\e(B)
- ("M" ?\e$(3!>\e(B)
- ("Mo" ?\e$(3!?\e(B)
- ("MWe" ?\e$(3%1\e(B)
- ("MWu" ?\e$(3%a\e(B)
- ("MWi" ?\e$(3%A\e(B)
- ("MW" ?\e$(3!@\e(B)
- ("MWa" ?\e$(3!@\e(B)
- ("MWE" ?\e$(3%Q\e(B)
- ("MWee" ?\e$(3%Q\e(B)
- ("MW'" ?\e$(3%a\e(B)
- ("MY" ?\e$(3$_\e(B)
- ("MYa" ?\e$(3$_\e(B)
-
- ("`se" ?\e$(3!A\e(B)
- ("`su" ?\e$(3!B\e(B)
- ("`si" ?\e$(3!C\e(B)
- ("`sa" ?\e$(3!D\e(B)
- ("`sE" ?\e$(3!E\e(B)
- ("`see" ?\e$(3!E\e(B)
- ("`s" ?\e$(3!F\e(B)
- ("`so" ?\e$(3!G\e(B)
- ("`sW" ?\e$(3!H\e(B)
- ("`sWa" ?\e$(3!H\e(B)
- ("`sWe" ["\e$(3!F%n\e(B"])
- ("`sWu" ["\e$(3!F%r\e(B"])
- ("`sWi" ["\e$(3!F%o\e(B"])
- ("`sWE" ["\e$(3!F%q\e(B"])
- ("`sWee" ["\e$(3!F%q\e(B"])
- ("`sW'" ["\e$(3!F%r\e(B"])
-
- ("s2e" ?\e$(3!A\e(B)
- ("s2u" ?\e$(3!B\e(B)
- ("s2i" ?\e$(3!C\e(B)
- ("s2a" ?\e$(3!D\e(B)
- ("s2E" ?\e$(3!E\e(B)
- ("s2ee" ?\e$(3!E\e(B)
- ("s2" ?\e$(3!F\e(B)
- ("s2o" ?\e$(3!G\e(B)
- ("s2W" ?\e$(3!H\e(B)
- ("s2Wa" ?\e$(3!H\e(B)
- ("s2We" ["\e$(3!F%n\e(B"])
- ("s2Wu" ["\e$(3!F%r\e(B"])
- ("s2Wi" ["\e$(3!F%o\e(B"])
- ("s2WE" ["\e$(3!F%q\e(B"])
- ("s2Wee" ["\e$(3!F%q\e(B"])
- ("s2W'" ["\e$(3!F%r\e(B"])
-
- ("sse" ?\e$(3!A\e(B)
- ("ssu" ?\e$(3!B\e(B)
- ("ssi" ?\e$(3!C\e(B)
- ("ssa" ?\e$(3!D\e(B)
- ("ssE" ?\e$(3!E\e(B)
- ("ssee" ?\e$(3!E\e(B)
- ("ss" ?\e$(3!F\e(B)
- ("sso" ?\e$(3!G\e(B)
- ("ssW" ?\e$(3!H\e(B)
- ("ssWa" ?\e$(3!H\e(B)
- ("ssWe" ["\e$(3!F%n\e(B"])
- ("ssWu" ["\e$(3!F%r\e(B"])
- ("ssWi" ["\e$(3!F%o\e(B"])
- ("ssWE" ["\e$(3!F%q\e(B"])
- ("ssWee" ["\e$(3!F%q\e(B"])
- ("ssW'" ["\e$(3!F%r\e(B"])
-
- ("re" ?\e$(3!I\e(B)
- ("ru" ?\e$(3!J\e(B)
- ("ri" ?\e$(3!K\e(B)
- ("ra" ?\e$(3!L\e(B)
- ("rE" ?\e$(3!M\e(B)
- ("ree" ?\e$(3!M\e(B)
- ("r" ?\e$(3!N\e(B)
- ("ro" ?\e$(3!O\e(B)
- ("rW" ?\e$(3!P\e(B)
- ("rWa" ?\e$(3!P\e(B)
- ("rY" ?\e$(3$`\e(B)
- ("rYa" ?\e$(3$`\e(B)
- ("rWe" ["\e$(3!N%n\e(B"])
- ("rWu" ["\e$(3!N%r\e(B"])
- ("rWi" ["\e$(3!N%o\e(B"])
- ("rWE" ["\e$(3!N%q\e(B"])
- ("rWee" ["\e$(3!N%q\e(B"])
- ("rW'" ["\e$(3!N%r\e(B"])
-
- ("Re" ?\e$(3!I\e(B)
- ("Ru" ?\e$(3!J\e(B)
- ("Ri" ?\e$(3!K\e(B)
- ("Ra" ?\e$(3!L\e(B)
- ("RE" ?\e$(3!M\e(B)
- ("Ree" ?\e$(3!M\e(B)
- ("R" ?\e$(3!N\e(B)
- ("Ro" ?\e$(3!O\e(B)
- ("RW" ?\e$(3!P\e(B)
- ("RWa" ?\e$(3!P\e(B)
- ("RYa" ?\e$(3$`\e(B)
- ("RWe" ["\e$(3!N%n\e(B"])
- ("RWu" ["\e$(3!N%r\e(B"])
- ("RWi" ["\e$(3!N%o\e(B"])
- ("RWE" ["\e$(3!N%q\e(B"])
- ("RWee" ["\e$(3!N%q\e(B"])
- ("RW'" ["\e$(3!N%r\e(B"])
-
- ("se" ?\e$(3!Q\e(B)
- ("su" ?\e$(3!R\e(B)
- ("si" ?\e$(3!S\e(B)
- ("sa" ?\e$(3!T\e(B)
- ("sE" ?\e$(3!U\e(B)
- ("see" ?\e$(3!U\e(B)
- ("s" ?\e$(3!V\e(B)
- ("so" ?\e$(3!W\e(B)
- ("sW" ?\e$(3!X\e(B)
- ("sWa" ?\e$(3!X\e(B)
- ("sWe" ["\e$(3!V%n\e(B"])
- ("sWu" ["\e$(3!V%r\e(B"])
- ("sWi" ["\e$(3!V%o\e(B"])
- ("sWE" ["\e$(3!V%q\e(B"])
- ("sWee" ["\e$(3!V%q\e(B"])
- ("sW'" ["\e$(3!V%r\e(B"])
-
- ("xe" ?\e$(3!Y\e(B)
- ("xu" ?\e$(3!Z\e(B)
- ("xi" ?\e$(3![\e(B)
- ("xa" ?\e$(3!\\e(B)
- ("xE" ?\e$(3!]\e(B)
- ("xee" ?\e$(3!]\e(B)
- ("x" ?\e$(3!^\e(B)
- ("xo" ?\e$(3!_\e(B)
- ("xW" ?\e$(3!`\e(B)
- ("xWa" ?\e$(3!`\e(B)
- ("xWe" ["\e$(3!^%n\e(B"])
- ("xWu" ["\e$(3!^%r\e(B"])
- ("xWi" ["\e$(3!^%o\e(B"])
- ("xWE" ["\e$(3!^%q\e(B"])
- ("xWee" ["\e$(3!^%q\e(B"])
- ("xW'" ["\e$(3!^%r\e(B"])
-
- ("qe" ?\e$(3!a\e(B)
- ("qu" ?\e$(3!b\e(B)
- ("qi" ?\e$(3!c\e(B)
- ("qa" ?\e$(3!d\e(B)
- ("qE" ?\e$(3!e\e(B)
- ("qee" ?\e$(3!e\e(B)
- ("q" ?\e$(3!f\e(B)
- ("qo" ?\e$(3!g\e(B)
- ("qWe" ?\e$(3!i\e(B)
- ("qWu" ?\e$(3!n\e(B)
- ("qWi" ?\e$(3!k\e(B)
- ("qW" ?\e$(3!l\e(B)
- ("qWa" ?\e$(3!l\e(B)
- ("qWE" ?\e$(3!m\e(B)
- ("qWee" ?\e$(3!m\e(B)
- ("qW'" ?\e$(3!n\e(B)
-
- ("`qe" ?\e$(3%)\e(B)
- ("`qu" ?\e$(3%*\e(B)
- ("`qi" ?\e$(3%+\e(B)
- ("`qa" ?\e$(3%,\e(B)
- ("`qE" ?\e$(3%-\e(B)
- ("`qee" ?\e$(3%-\e(B)
- ("`q" ?\e$(3%.\e(B)
- ("`qo" ?\e$(3%/\e(B)
-
- ("q2e" ?\e$(3%)\e(B)
- ("q2u" ?\e$(3%*\e(B)
- ("q2i" ?\e$(3%+\e(B)
- ("q2a" ?\e$(3%,\e(B)
- ("q2E" ?\e$(3%-\e(B)
- ("q2ee" ?\e$(3%-\e(B)
- ("q2" ?\e$(3%.\e(B)
- ("q2o" ?\e$(3%/\e(B)
-
- ("qqe" ?\e$(3%)\e(B)
- ("qqu" ?\e$(3%*\e(B)
- ("qqi" ?\e$(3%+\e(B)
- ("qqa" ?\e$(3%,\e(B)
- ("qqE" ?\e$(3%-\e(B)
- ("qqee" ?\e$(3%-\e(B)
- ("qq" ?\e$(3%.\e(B)
- ("qqo" ?\e$(3%/\e(B)
-
- ("Qe" ?\e$(3!q\e(B)
- ("Qu" ?\e$(3!r\e(B)
- ("Qi" ?\e$(3!s\e(B)
- ("Qa" ?\e$(3!t\e(B)
- ("QE" ?\e$(3!u\e(B)
- ("Qee" ?\e$(3!u\e(B)
- ("Q" ?\e$(3!v\e(B)
- ("Qo" ?\e$(3!w\e(B)
- ("QWe" ?\e$(3!y\e(B)
- ("QWu" ?\e$(3!~\e(B)
- ("QWi" ?\e$(3!{\e(B)
- ("QW" ?\e$(3!|\e(B)
- ("QWa" ?\e$(3!|\e(B)
- ("QWE" ?\e$(3!}\e(B)
- ("QWee" ?\e$(3!}\e(B)
- ("QW'" ?\e$(3!~\e(B)
-
- ("be" ?\e$(3"#\e(B)
- ("bu" ?\e$(3"$\e(B)
- ("bi" ?\e$(3"%\e(B)
- ("ba" ?\e$(3"&\e(B)
- ("bE" ?\e$(3"'\e(B)
- ("bee" ?\e$(3"'\e(B)
- ("b" ?\e$(3"(\e(B)
- ("bo" ?\e$(3")\e(B)
- ("bWe" ?\e$(3%2\e(B)
- ("bWu" ?\e$(3%b\e(B)
- ("bWi" ?\e$(3%B\e(B)
- ("bW" ?\e$(3"*\e(B)
- ("bWa" ?\e$(3"*\e(B)
- ("bWE" ?\e$(3%R\e(B)
- ("bWee" ?\e$(3%R\e(B)
- ("bW'" ?\e$(3%b\e(B)
-
- ("Be" ?\e$(3"#\e(B)
- ("Bu" ?\e$(3"$\e(B)
- ("Bi" ?\e$(3"%\e(B)
- ("Ba" ?\e$(3"&\e(B)
- ("BE" ?\e$(3"'\e(B)
- ("Bee" ?\e$(3"'\e(B)
- ("B" ?\e$(3"(\e(B)
- ("Bo" ?\e$(3")\e(B)
- ("BWe" ?\e$(3%2\e(B)
- ("BWu" ?\e$(3%b\e(B)
- ("BWi" ?\e$(3%B\e(B)
- ("BW" ?\e$(3"*\e(B)
- ("BWa" ?\e$(3"*\e(B)
- ("BWE" ?\e$(3%R\e(B)
- ("BWee" ?\e$(3%R\e(B)
- ("BW'" ?\e$(3%b\e(B)
-
- ("ve" ?\e$(3"+\e(B)
- ("vu" ?\e$(3",\e(B)
- ("vi" ?\e$(3"-\e(B)
- ("va" ?\e$(3".\e(B)
- ("vE" ?\e$(3"/\e(B)
- ("vee" ?\e$(3"/\e(B)
- ("v" ?\e$(3"0\e(B)
- ("vo" ?\e$(3"1\e(B)
- ("vW" ?\e$(3"2\e(B)
- ("vWa" ?\e$(3"2\e(B)
- ("vWe" ["\e$(3"0%n\e(B"])
- ("vWu" ["\e$(3"0%r\e(B"])
- ("vWi" ["\e$(3"0%o\e(B"])
- ("vWE" ["\e$(3"0%q\e(B"])
- ("vWee" ["\e$(3"0%q\e(B"])
- ("vW'" ["\e$(3"0%r\e(B"])
-
- ("Ve" ?\e$(3"+\e(B)
- ("Vu" ?\e$(3",\e(B)
- ("Vi" ?\e$(3"-\e(B)
- ("Va" ?\e$(3".\e(B)
- ("VE" ?\e$(3"/\e(B)
- ("Vee" ?\e$(3"/\e(B)
- ("V" ?\e$(3"0\e(B)
- ("Vo" ?\e$(3"1\e(B)
- ("VW" ?\e$(3"2\e(B)
- ("VWa" ?\e$(3"2\e(B)
- ("VWe" ["\e$(3"0%n\e(B"])
- ("VWu" ["\e$(3"0%r\e(B"])
- ("VWi" ["\e$(3"0%o\e(B"])
- ("VWE" ["\e$(3"0%q\e(B"])
- ("VWee" ["\e$(3"0%q\e(B"])
- ("VW'" ["\e$(3"0%r\e(B"])
-
- ("te" ?\e$(3"3\e(B)
- ("tu" ?\e$(3"4\e(B)
- ("ti" ?\e$(3"5\e(B)
- ("ta" ?\e$(3"6\e(B)
- ("tE" ?\e$(3"7\e(B)
- ("tee" ?\e$(3"7\e(B)
- ("t" ?\e$(3"8\e(B)
- ("to" ?\e$(3"9\e(B)
- ("tW" ?\e$(3":\e(B)
- ("tWa" ?\e$(3":\e(B)
- ("tWe" ["\e$(3"8%n\e(B"])
- ("tWu" ["\e$(3"8%r\e(B"])
- ("tWi" ["\e$(3"8%o\e(B"])
- ("tWE" ["\e$(3"8%q\e(B"])
- ("tWee" ["\e$(3"8%q\e(B"])
- ("tW'" ["\e$(3"8%r\e(B"])
-
- ("ce" ?\e$(3";\e(B)
- ("cu" ?\e$(3"<\e(B)
- ("ci" ?\e$(3"=\e(B)
- ("ca" ?\e$(3">\e(B)
- ("cE" ?\e$(3"?\e(B)
- ("cee" ?\e$(3"?\e(B)
- ("c" ?\e$(3"@\e(B)
- ("co" ?\e$(3"A\e(B)
- ("cW" ?\e$(3"B\e(B)
- ("cWa" ?\e$(3"B\e(B)
- ("cWe" ["\e$(3"@%n\e(B"])
- ("cWu" ["\e$(3"@%r\e(B"])
- ("cWi" ["\e$(3"@%o\e(B"])
- ("cWE" ["\e$(3"@%q\e(B"])
- ("cWee" ["\e$(3"@%q\e(B"])
- ("cW'" ["\e$(3"@%r\e(B"])
-
- ("`he" ?\e$(3"C\e(B)
- ("`hu" ?\e$(3"D\e(B)
- ("`hi" ?\e$(3"E\e(B)
- ("`ha" ?\e$(3"F\e(B)
- ("`hE" ?\e$(3"G\e(B)
- ("`hee" ?\e$(3"G\e(B)
- ("`h" ?\e$(3"H\e(B)
- ("`ho" ?\e$(3"I\e(B)
- ("`hWe" ?\e$(3"K\e(B)
- ("`hWu" ?\e$(3"P\e(B)
- ("`hWi" ?\e$(3"M\e(B)
- ("`hW" ?\e$(3"N\e(B)
- ("`hWa" ?\e$(3"N\e(B)
- ("`hWE" ?\e$(3"O\e(B)
- ("`hWee" ?\e$(3"O\e(B)
- ("`hW'" ?\e$(3"P\e(B)
-
- ("h2e" ?\e$(3"C\e(B)
- ("h2u" ?\e$(3"D\e(B)
- ("h2i" ?\e$(3"E\e(B)
- ("h2a" ?\e$(3"F\e(B)
- ("h2E" ?\e$(3"G\e(B)
- ("h2ee" ?\e$(3"G\e(B)
- ("h2" ?\e$(3"H\e(B)
- ("h2o" ?\e$(3"I\e(B)
- ("h2We" ?\e$(3"K\e(B)
- ("h2Wu" ?\e$(3"P\e(B)
- ("h2Wi" ?\e$(3"M\e(B)
- ("h2W" ?\e$(3"N\e(B)
- ("h2Wa" ?\e$(3"N\e(B)
- ("h2WE" ?\e$(3"O\e(B)
- ("h2Wee" ?\e$(3"O\e(B)
- ("h2W'" ?\e$(3"P\e(B)
-
- ("hhe" ?\e$(3"C\e(B)
- ("hhu" ?\e$(3"D\e(B)
- ("hhi" ?\e$(3"E\e(B)
- ("hha" ?\e$(3"F\e(B)
- ("hhE" ?\e$(3"G\e(B)
- ("hhee" ?\e$(3"G\e(B)
- ("hh" ?\e$(3"H\e(B)
- ("hho" ?\e$(3"I\e(B)
- ("hhWe" ?\e$(3"K\e(B)
- ("hhWu" ?\e$(3"P\e(B)
- ("hhWi" ?\e$(3"M\e(B)
- ("hhW" ?\e$(3"N\e(B)
- ("hhWa" ?\e$(3"N\e(B)
- ("hhWE" ?\e$(3"O\e(B)
- ("hhWee" ?\e$(3"O\e(B)
- ("hhW'" ?\e$(3"P\e(B)
-
- ("ne" ?\e$(3"S\e(B)
- ("nu" ?\e$(3"T\e(B)
- ("ni" ?\e$(3"U\e(B)
- ("na" ?\e$(3"V\e(B)
- ("nE" ?\e$(3"W\e(B)
- ("nee" ?\e$(3"W\e(B)
- ("n" ?\e$(3"X\e(B)
- ("no" ?\e$(3"Y\e(B)
- ("nW" ?\e$(3"Z\e(B)
- ("nWa" ?\e$(3"Z\e(B)
- ("nWe" ["\e$(3"X%n\e(B"])
- ("nWu" ["\e$(3"X%r\e(B"])
- ("nWi" ["\e$(3"X%o\e(B"])
- ("nWE" ["\e$(3"X%q\e(B"])
- ("nWee" ["\e$(3"X%q\e(B"])
- ("nW'" ["\e$(3"X%r\e(B"])
-
- ("Ne" ?\e$(3"[\e(B)
- ("Nu" ?\e$(3"\\e(B)
- ("Ni" ?\e$(3"]\e(B)
- ("Na" ?\e$(3"^\e(B)
- ("NE" ?\e$(3"_\e(B)
- ("Nee" ?\e$(3"_\e(B)
- ("N" ?\e$(3"`\e(B)
- ("No" ?\e$(3"a\e(B)
- ("NW" ?\e$(3"b\e(B)
- ("NWa" ?\e$(3"b\e(B)
- ("NWe" ["\e$(3"`%n\e(B"])
- ("NWu" ["\e$(3"`%r\e(B"])
- ("NWi" ["\e$(3"`%o\e(B"])
- ("NWE" ["\e$(3"`%q\e(B"])
- ("NWee" ["\e$(3"`%q\e(B"])
- ("NW'" ["\e$(3"`%r\e(B"])
-
- ; ("e" ?\e$(3"c\e(B) ; old style
- ("u" ?\e$(3"d\e(B)
- ("U" ?\e$(3"d\e(B)
- ("i" ?\e$(3"e\e(B)
- ("a" ?\e$(3"f\e(B)
- ("A" ?\e$(3"f\e(B)
- ("E" ?\e$(3"g\e(B)
- ; ("ee" ?\e$(3"g\e(B) ; Alef-E is rare vs Aynu-I, so ee = Aynu-I
- ("I" ?\e$(3"h\e(B)
- ("e" ?\e$(3"h\e(B)    ; This is the premise to "new style" for vowels
-
- ("o" ?\e$(3"i\e(B)
- ("O" ?\e$(3"i\e(B)
- ("ea" ?\e$(3"j\e(B)
-
- ("ke" ?\e$(3"k\e(B)
- ("ku" ?\e$(3"l\e(B)
- ("ki" ?\e$(3"m\e(B)
- ("ka" ?\e$(3"n\e(B)
- ("kE" ?\e$(3"o\e(B)
- ("kee" ?\e$(3"o\e(B)
- ("k" ?\e$(3"p\e(B)
- ("ko" ?\e$(3"q\e(B)
- ("kWe" ?\e$(3"s\e(B)
- ("kWu" ?\e$(3"x\e(B)
- ("kWi" ?\e$(3"u\e(B)
- ("kW" ?\e$(3"v\e(B)
- ("kWa" ?\e$(3"v\e(B)
- ("kWE" ?\e$(3"w\e(B)
- ("kWee" ?\e$(3"w\e(B)
- ("kW'" ?\e$(3"x\e(B)
-
- ("`ke" ?\e$(3%9\e(B)
- ("`ku" ?\e$(3%:\e(B)
- ("`ki" ?\e$(3%;\e(B)
- ("`ka" ?\e$(3%<\e(B)
- ("`kE" ?\e$(3%=\e(B)
- ("`kee" ?\e$(3%=\e(B)
- ("`k" ?\e$(3%>\e(B)
- ("`ko" ?\e$(3%?\e(B)
-
- ("k2e" ?\e$(3%9\e(B)
- ("k2u" ?\e$(3%:\e(B)
- ("k2i" ?\e$(3%;\e(B)
- ("k2a" ?\e$(3%<\e(B)
- ("k2E" ?\e$(3%=\e(B)
- ("k2ee" ?\e$(3%=\e(B)
- ("k2" ?\e$(3%>\e(B)
- ("k2o" ?\e$(3%?\e(B)
-
- ("kke" ?\e$(3%9\e(B)
- ("kku" ?\e$(3%:\e(B)
- ("kki" ?\e$(3%;\e(B)
- ("kka" ?\e$(3%<\e(B)
- ("kkE" ?\e$(3%=\e(B)
- ("kkee" ?\e$(3%=\e(B)
- ("kk" ?\e$(3%>\e(B)
- ("kko" ?\e$(3%?\e(B)
-
- ("Ke" ?\e$(3"{\e(B)
- ("Ku" ?\e$(3"|\e(B)
- ("Ki" ?\e$(3"}\e(B)
- ("Ka" ?\e$(3"~\e(B)
- ("KE" ?\e$(3#!\e(B)
- ("Kee" ?\e$(3#!\e(B)
- ("K" ?\e$(3#"\e(B)
- ("Ko" ?\e$(3##\e(B)
- ("KWe" ?\e$(3#%\e(B)
- ("KWu" ?\e$(3#*\e(B)
- ("KWi" ?\e$(3#'\e(B)
- ("KW" ?\e$(3#(\e(B)
- ("KWa" ?\e$(3#(\e(B)
- ("KWE" ?\e$(3#)\e(B)
- ("KWee" ?\e$(3#)\e(B)
- ("KW'" ?\e$(3#*\e(B)
-
- ("Xe" ?\e$(3%I\e(B)
- ("Xu" ?\e$(3%J\e(B)
- ("Xi" ?\e$(3%K\e(B)
- ("Xa" ?\e$(3%L\e(B)
- ("XE" ?\e$(3%M\e(B)
- ("Xee" ?\e$(3%M\e(B)
- ("X" ?\e$(3%N\e(B)
- ("Xo" ?\e$(3%O\e(B)
-
- ("we" ?\e$(3#-\e(B)
- ("wu" ?\e$(3#.\e(B)
- ("wi" ?\e$(3#/\e(B)
- ("wa" ?\e$(3#0\e(B)
- ("wE" ?\e$(3#1\e(B)
- ("wee" ?\e$(3#1\e(B)
- ("w" ?\e$(3#2\e(B)
- ("wo" ?\e$(3#3\e(B)
-
- ("`e" ?\e$(3#5\e(B)
- ("`u" ?\e$(3#6\e(B)
- ("`U" ?\e$(3#6\e(B)
- ("`i" ?\e$(3#7\e(B)
- ("`a" ?\e$(3#8\e(B)
- ("`A" ?\e$(3#8\e(B)
- ("`E" ?\e$(3#9\e(B)
- ("`ee" ?\e$(3#9\e(B)
- ("`I" ?\e$(3#:\e(B)
- ("`o" ?\e$(3#;\e(B)
- ("`O" ?\e$(3#;\e(B)
-
- ("e2" ?\e$(3#5\e(B)
- ("u2" ?\e$(3#6\e(B)
- ("U2" ?\e$(3#6\e(B)
- ("i2" ?\e$(3#7\e(B)
- ("a2" ?\e$(3#8\e(B)
- ("A2" ?\e$(3#8\e(B)
- ("E2" ?\e$(3#9\e(B)
- ("ee2" ?\e$(3#9\e(B)
- ("I2" ?\e$(3#:\e(B)
- ("o2" ?\e$(3#;\e(B)
- ("O2" ?\e$(3#;\e(B)
-
- ; ("ee" ?\e$(3#5\e(B) ; old style
- ("ae" ?\e$(3#5\e(B)   ; new style
- ("aaa" ?\e$(3#5\e(B)  ; new style
- ("uu" ?\e$(3#6\e(B)
- ("UU" ?\e$(3#6\e(B)
- ("ii" ?\e$(3#7\e(B)
- ("aa" ?\e$(3#8\e(B)
- ("AA" ?\e$(3#8\e(B)
- ("EE" ?\e$(3#9\e(B)
- ("II" ?\e$(3#:\e(B)
- ("ee" ?\e$(3#:\e(B)   ; new style
- ("oo" ?\e$(3#;\e(B)
- ("OO" ?\e$(3#;\e(B)
-
- ("ze" ?\e$(3#=\e(B)
- ("zu" ?\e$(3#>\e(B)
- ("zi" ?\e$(3#?\e(B)
- ("za" ?\e$(3#@\e(B)
- ("zE" ?\e$(3#A\e(B)
- ("zee" ?\e$(3#A\e(B)
- ("z" ?\e$(3#B\e(B)
- ("zo" ?\e$(3#C\e(B)
- ("zW" ?\e$(3#D\e(B)
- ("zWa" ?\e$(3#D\e(B)
- ("zWe" ["\e$(3#B%n\e(B"])
- ("zWu" ["\e$(3#B%r\e(B"])
- ("zWi" ["\e$(3#B%o\e(B"])
- ("zWE" ["\e$(3#B%q\e(B"])
- ("zWee" ["\e$(3#B%q\e(B"])
- ("zW'" ["\e$(3#B%r\e(B"])
-
- ("Ze" ?\e$(3#E\e(B)
- ("Zu" ?\e$(3#F\e(B)
- ("Zi" ?\e$(3#G\e(B)
- ("Za" ?\e$(3#H\e(B)
- ("ZE" ?\e$(3#I\e(B)
- ("Zee" ?\e$(3#I\e(B)
- ("Z" ?\e$(3#J\e(B)
- ("Zo" ?\e$(3#K\e(B)
- ("ZW" ?\e$(3#L\e(B)
- ("ZWa" ?\e$(3#L\e(B)
- ("ZWe" ["\e$(3#J%n\e(B"])
- ("ZWu" ["\e$(3#J%r\e(B"])
- ("ZWi" ["\e$(3#J%o\e(B"])
- ("ZWE" ["\e$(3#J%q\e(B"])
- ("ZWee" ["\e$(3#J%q\e(B"])
- ("ZW'" ["\e$(3#J%r\e(B"])
-
- ("ye" ?\e$(3#M\e(B)
- ("yu" ?\e$(3#N\e(B)
- ("yi" ?\e$(3#O\e(B)
- ("ya" ?\e$(3#P\e(B)
- ("yE" ?\e$(3#Q\e(B)
- ("yee" ?\e$(3#Q\e(B)
- ("y" ?\e$(3#R\e(B)
- ("yo" ?\e$(3#S\e(B)
- ("yW" ?\e$(3#T\e(B)
- ("yWa" ?\e$(3#T\e(B)
- ("yWe" ["\e$(3#R%n\e(B"])
- ("yWu" ["\e$(3#R%r\e(B"])
- ("yWi" ["\e$(3#R%o\e(B"])
- ("yWE" ["\e$(3#R%q\e(B"])
- ("yWee" ["\e$(3#R%q\e(B"])
- ("yW'" ["\e$(3#R%r\e(B"])
-
- ("Ye" ?\e$(3#M\e(B)
- ("Yu" ?\e$(3#N\e(B)
- ("Yi" ?\e$(3#O\e(B)
- ("Ya" ?\e$(3#P\e(B)
- ("YE" ?\e$(3#Q\e(B)
- ("Yee" ?\e$(3#Q\e(B)
- ("Y" ?\e$(3#R\e(B)
- ("Yo" ?\e$(3#S\e(B)
- ("YW" ?\e$(3#T\e(B)
- ("YWa" ?\e$(3#T\e(B)
- ("YWe" ["\e$(3#R%n\e(B"])
- ("YWu" ["\e$(3#R%r\e(B"])
- ("YWi" ["\e$(3#R%o\e(B"])
- ("YWE" ["\e$(3#R%q\e(B"])
- ("YWee" ["\e$(3#R%q\e(B"])
- ("YW'" ["\e$(3#R%r\e(B"])
-
- ("de" ?\e$(3#U\e(B)
- ("du" ?\e$(3#V\e(B)
- ("di" ?\e$(3#W\e(B)
- ("da" ?\e$(3#X\e(B)
- ("dE" ?\e$(3#Y\e(B)
- ("dee" ?\e$(3#Y\e(B)
- ("d" ?\e$(3#Z\e(B)
- ("do" ?\e$(3#[\e(B)
- ("dW" ?\e$(3#\\e(B)
- ("dWa" ?\e$(3#\\e(B)
- ("dWe" ["\e$(3#Z%n\e(B"])
- ("dWu" ["\e$(3#Z%r\e(B"])
- ("dWi" ["\e$(3#Z%o\e(B"])
- ("dWE" ["\e$(3#Z%q\e(B"])
- ("dWee" ["\e$(3#Z%q\e(B"])
- ("dW'" ["\e$(3#Z%r\e(B"])
-
- ("De" ?\e$(3#]\e(B)
- ("Du" ?\e$(3#^\e(B)
- ("Di" ?\e$(3#_\e(B)
- ("Da" ?\e$(3#`\e(B)
- ("DE" ?\e$(3#a\e(B)
- ("Dee" ?\e$(3#a\e(B)
- ("D" ?\e$(3#b\e(B)
- ("Do" ?\e$(3#c\e(B)
- ("DW" ?\e$(3#d\e(B)
- ("DWa" ?\e$(3#d\e(B)
- ("DWe" ["\e$(3#b%n\e(B"])
- ("DWu" ["\e$(3#b%r\e(B"])
- ("DWi" ["\e$(3#b%o\e(B"])
- ("DWE" ["\e$(3#b%q\e(B"])
- ("DWee" ["\e$(3#b%q\e(B"])
- ("DW'" ["\e$(3#b%r\e(B"])
-
- ("je" ?\e$(3#e\e(B)
- ("ju" ?\e$(3#f\e(B)
- ("ji" ?\e$(3#g\e(B)
- ("ja" ?\e$(3#h\e(B)
- ("jE" ?\e$(3#i\e(B)
- ("jee" ?\e$(3#i\e(B)
- ("j" ?\e$(3#j\e(B)
- ("jo" ?\e$(3#k\e(B)
- ("jW" ?\e$(3#l\e(B)
- ("jWa" ?\e$(3#l\e(B)
- ("jWe" ["\e$(3#j%n\e(B"])
- ("jWu" ["\e$(3#j%r\e(B"])
- ("jWi" ["\e$(3#j%o\e(B"])
- ("jWE" ["\e$(3#j%q\e(B"])
- ("jWee" ["\e$(3#j%q\e(B"])
- ("jW'" ["\e$(3#j%r\e(B"])
-
- ("Je" ?\e$(3#e\e(B)
- ("Ju" ?\e$(3#f\e(B)
- ("Ji" ?\e$(3#g\e(B)
- ("Ja" ?\e$(3#h\e(B)
- ("JE" ?\e$(3#i\e(B)
- ("Jee" ?\e$(3#i\e(B)
- ("J" ?\e$(3#j\e(B)
- ("Jo" ?\e$(3#k\e(B)
- ("JW" ?\e$(3#l\e(B)
- ("JWa" ?\e$(3#l\e(B)
- ("JWe" ["\e$(3#j%n\e(B"])
- ("JWu" ["\e$(3#j%r\e(B"])
- ("JWi" ["\e$(3#j%o\e(B"])
- ("JWE" ["\e$(3#j%q\e(B"])
- ("JWee" ["\e$(3#j%q\e(B"])
- ("JW'" ["\e$(3#j%r\e(B"])
-
- ("ge" ?\e$(3#m\e(B)
- ("gu" ?\e$(3#n\e(B)
- ("gi" ?\e$(3#o\e(B)
- ("ga" ?\e$(3#p\e(B)
- ("gE" ?\e$(3#q\e(B)
- ("gee" ?\e$(3#q\e(B)
- ("g" ?\e$(3#r\e(B)
- ("go" ?\e$(3#s\e(B)
- ("gWe" ?\e$(3#u\e(B)
- ("gWu" ?\e$(3#z\e(B)
- ("gWi" ?\e$(3#w\e(B)
- ("gW" ?\e$(3#x\e(B)
- ("gWa" ?\e$(3#x\e(B)
- ("gWE" ?\e$(3#y\e(B)
- ("gWee" ?\e$(3#y\e(B)
- ("gW'" ?\e$(3#z\e(B)
-
- ("`ge" ?\e$(3%Y\e(B)
- ("`gu" ?\e$(3%Z\e(B)
- ("`gi" ?\e$(3%[\e(B)
- ("`ga" ?\e$(3%\\e(B)
- ("`gE" ?\e$(3%]\e(B)
- ("`gee" ?\e$(3%]\e(B)
- ("`g" ?\e$(3%^\e(B)
- ("`go" ?\e$(3%_\e(B)
-
- ("g2e" ?\e$(3%Y\e(B)
- ("g2u" ?\e$(3%Z\e(B)
- ("g2i" ?\e$(3%[\e(B)
- ("g2a" ?\e$(3%\\e(B)
- ("g2E" ?\e$(3%]\e(B)
- ("g2ee" ?\e$(3%]\e(B)
- ("g2" ?\e$(3%^\e(B)
- ("g2o" ?\e$(3%_\e(B)
-
- ("gge" ?\e$(3%Y\e(B)
- ("ggu" ?\e$(3%Z\e(B)
- ("ggi" ?\e$(3%[\e(B)
- ("gga" ?\e$(3%\\e(B)
- ("ggE" ?\e$(3%]\e(B)
- ("ggee" ?\e$(3%]\e(B)
- ("gg" ?\e$(3%^\e(B)
- ("ggo" ?\e$(3%_\e(B)
-
- ("Ge" ?\e$(3#}\e(B)
- ("Gu" ?\e$(3#~\e(B)
- ("Gi" ?\e$(3$!\e(B)
- ("Ga" ?\e$(3$"\e(B)
- ("GE" ?\e$(3$#\e(B)
- ("Gee" ?\e$(3$#\e(B)
- ("G" ?\e$(3$$\e(B)
- ("Go" ?\e$(3$%\e(B)
- ("GWe" ?\e$(3%3\e(B)
- ("GWu" ?\e$(3%c\e(B)
- ("GWi" ?\e$(3%C\e(B)
- ("GW" ?\e$(3$&\e(B)
- ("GWa" ?\e$(3$&\e(B)
- ("GWE" ?\e$(3%S\e(B)
- ("GWee" ?\e$(3%S\e(B)
- ("GW'" ?\e$(3%c\e(B)
-
- ("Te" ?\e$(3$'\e(B)
- ("Tu" ?\e$(3$(\e(B)
- ("Ti" ?\e$(3$)\e(B)
- ("Ta" ?\e$(3$*\e(B)
- ("TE" ?\e$(3$+\e(B)
- ("Tee" ?\e$(3$+\e(B)
- ("T" ?\e$(3$,\e(B)
- ("To" ?\e$(3$-\e(B)
- ("TW" ?\e$(3$.\e(B)
- ("TWa" ?\e$(3$.\e(B)
- ("TWe" ["\e$(3$,%n\e(B"])
- ("TWu" ["\e$(3$,%r\e(B"])
- ("TWi" ["\e$(3$,%o\e(B"])
- ("TWE" ["\e$(3$,%q\e(B"])
- ("TWee" ["\e$(3$,%q\e(B"])
- ("TW'" ["\e$(3$,%r\e(B"])
-
- ("Ce" ?\e$(3$/\e(B)
- ("Cu" ?\e$(3$0\e(B)
- ("Ci" ?\e$(3$1\e(B)
- ("Ca" ?\e$(3$2\e(B)
- ("CE" ?\e$(3$3\e(B)
- ("Cee" ?\e$(3$3\e(B)
- ("C" ?\e$(3$4\e(B)
- ("Co" ?\e$(3$5\e(B)
- ("CW" ?\e$(3$6\e(B)
- ("CWa" ?\e$(3$6\e(B)
- ("CWe" ["\e$(3$4%n\e(B"])
- ("CWu" ["\e$(3$4%r\e(B"])
- ("CWi" ["\e$(3$4%o\e(B"])
- ("CWE" ["\e$(3$4%q\e(B"])
- ("CWee" ["\e$(3$4%q\e(B"])
- ("CW'" ["\e$(3$4%r\e(B"])
-
- ("Pe" ?\e$(3$7\e(B)
- ("Pu" ?\e$(3$8\e(B)
- ("Pi" ?\e$(3$9\e(B)
- ("Pa" ?\e$(3$:\e(B)
- ("PE" ?\e$(3$;\e(B)
- ("Pee" ?\e$(3$;\e(B)
- ("P" ?\e$(3$<\e(B)
- ("Po" ?\e$(3$=\e(B)
- ("PW" ?\e$(3$>\e(B)
- ("PWa" ?\e$(3$>\e(B)
- ("PWe" ["\e$(3$<%n\e(B"])
- ("PWu" ["\e$(3$<%r\e(B"])
- ("PWi" ["\e$(3$<%o\e(B"])
- ("PWE" ["\e$(3$<%q\e(B"])
- ("PWee" ["\e$(3$<%q\e(B"])
- ("PW'" ["\e$(3$<%r\e(B"])
-
- ("Se" ?\e$(3$?\e(B)
- ("Su" ?\e$(3$@\e(B)
- ("Si" ?\e$(3$A\e(B)
- ("Sa" ?\e$(3$B\e(B)
- ("SE" ?\e$(3$C\e(B)
- ("See" ?\e$(3$C\e(B)
- ("S" ?\e$(3$D\e(B)
- ("So" ?\e$(3$E\e(B)
- ("SW" ?\e$(3$F\e(B)
- ("SWa" ?\e$(3$F\e(B)
- ("SWe" ["\e$(3$D%n\e(B"])
- ("SWu" ["\e$(3$D%r\e(B"])
- ("SWi" ["\e$(3$D%o\e(B"])
- ("SWE" ["\e$(3$D%q\e(B"])
- ("SWee" ["\e$(3$D%q\e(B"])
- ("SW'" ["\e$(3$D%r\e(B"])
-
- ("`Se" ?\e$(3$G\e(B)
- ("`Su" ?\e$(3$H\e(B)
- ("`Si" ?\e$(3$I\e(B)
- ("`Sa" ?\e$(3$J\e(B)
- ("`SE" ?\e$(3$K\e(B)
- ("`See" ?\e$(3$K\e(B)
- ("`S" ?\e$(3$L\e(B)
- ("`So" ?\e$(3$M\e(B)
- ("`SW" ?\e$(3$F\e(B)
- ("`SWa" ?\e$(3$F\e(B)
- ("`SWe" ["\e$(3$L%n\e(B"])
- ("`SWu" ["\e$(3$L%r\e(B"])
- ("`SWi" ["\e$(3$L%o\e(B"])
- ("`SWE" ["\e$(3$L%q\e(B"])
- ("`SWee" ["\e$(3$L%q\e(B"])
- ("`SW'" ["\e$(3$L%r\e(B"])
-
- ("S2e" ?\e$(3$G\e(B)
- ("S2u" ?\e$(3$H\e(B)
- ("S2i" ?\e$(3$I\e(B)
- ("S2a" ?\e$(3$J\e(B)
- ("S2E" ?\e$(3$K\e(B)
- ("S2ee" ?\e$(3$K\e(B)
- ("S2" ?\e$(3$L\e(B)
- ("S2o" ?\e$(3$M\e(B)
- ("S2W" ?\e$(3$F\e(B)
- ("S2Wa" ?\e$(3$F\e(B)
- ("S2We" ["\e$(3$L%n\e(B"])
- ("S2Wu" ["\e$(3$L%r\e(B"])
- ("S2Wi" ["\e$(3$L%o\e(B"])
- ("S2WE" ["\e$(3$L%q\e(B"])
- ("S2Wee" ["\e$(3$L%q\e(B"])
- ("S2W'" ["\e$(3$L%r\e(B"])
-
- ("SSe" ?\e$(3$G\e(B)
- ("SSu" ?\e$(3$H\e(B)
- ("SSi" ?\e$(3$I\e(B)
- ("SSa" ?\e$(3$J\e(B)
- ("SSE" ?\e$(3$K\e(B)
- ("SSee" ?\e$(3$K\e(B)
- ("SS" ?\e$(3$L\e(B)
- ("SSo" ?\e$(3$M\e(B)
- ("SSW" ?\e$(3$F\e(B)
- ("SSWa" ?\e$(3$F\e(B)
- ("SSWe" ["\e$(3$L%n\e(B"])
- ("SSWu" ["\e$(3$L%r\e(B"])
- ("SSWi" ["\e$(3$L%o\e(B"])
- ("SSWE" ["\e$(3$L%q\e(B"])
- ("SSWee" ["\e$(3$L%q\e(B"])
- ("SW'" ["\e$(3$L%r\e(B"])
-
- ("fe" ?\e$(3$O\e(B)
- ("fu" ?\e$(3$P\e(B)
- ("fi" ?\e$(3$Q\e(B)
- ("fa" ?\e$(3$R\e(B)
- ("fE" ?\e$(3$S\e(B)
- ("fee" ?\e$(3$S\e(B)
- ("f" ?\e$(3$T\e(B)
- ("fo" ?\e$(3$U\e(B)
- ("fWe" ?\e$(3%4\e(B)
- ("fWu" ?\e$(3%d\e(B)
- ("fWi" ?\e$(3%D\e(B)
- ("fW" ?\e$(3$V\e(B)
- ("fWa" ?\e$(3$V\e(B)
- ("fWE" ?\e$(3%T\e(B)
- ("fWee" ?\e$(3%T\e(B)
- ("fW'" ?\e$(3%d\e(B)
- ("fY" ?\e$(3$a\e(B)
- ("fYa" ?\e$(3$a\e(B)
-
- ("Fe" ?\e$(3$O\e(B)
- ("Fu" ?\e$(3$P\e(B)
- ("Fi" ?\e$(3$Q\e(B)
- ("Fa" ?\e$(3$R\e(B)
- ("FE" ?\e$(3$S\e(B)
- ("Fee" ?\e$(3$S\e(B)
- ("F" ?\e$(3$T\e(B)
- ("Fo" ?\e$(3$U\e(B)
- ("FWe" ?\e$(3%4\e(B)
- ("FWu" ?\e$(3%d\e(B)
- ("FWi" ?\e$(3%D\e(B)
- ("FW" ?\e$(3$V\e(B)
- ("FWa" ?\e$(3$V\e(B)
- ("FWE" ?\e$(3%T\e(B)
- ("FWee" ?\e$(3%T\e(B)
- ("FW'" ?\e$(3%d\e(B)
- ("FY" ?\e$(3$a\e(B)
- ("FYa" ?\e$(3$a\e(B)
-
- ("pe" ?\e$(3$W\e(B)
- ("pu" ?\e$(3$X\e(B)
- ("pi" ?\e$(3$Y\e(B)
- ("pa" ?\e$(3$Z\e(B)
- ("pE" ?\e$(3$[\e(B)
- ("pee" ?\e$(3$[\e(B)
- ("p" ?\e$(3$\\e(B)
- ("po" ?\e$(3$]\e(B)
- ("pWe" ?\e$(3%5\e(B)
- ("pWu" ?\e$(3%e\e(B)
- ("pWi" ?\e$(3%E\e(B)
- ("pW" ?\e$(3$^\e(B)
- ("pWa" ?\e$(3$^\e(B)
- ("pWE" ?\e$(3%U\e(B)
- ("pWee" ?\e$(3%U\e(B)
- ("pW'" ?\e$(3%e\e(B)
+ ("he" ?)
+ ("hu" ?)
+ ("hi" ?)
+ ("ha" ?)
+ ("hE" ?)
+ ("hee" ?)
+ ("h" ?)
+ ("ho" ?)
+ ("hW" ?)
+ ("hWa" ?)
+ ("hWe" ?)
+ ("hWu" ?)
+ ("hWi" ?)
+ ("hWE" ?)
+ ("hW'" ?)
+
+ ("le" ?)
+ ("lu" ?)
+ ("li" ?)
+ ("la" ?)
+ ("lE" ?)
+ ("lee" ?)
+ ("l" ?)
+ ("lo" ?)
+ ("lW" ?)
+ ("lWa" ?)
+ ("lWe" [""])
+ ("lWu" [""])
+ ("lWi" [""])
+ ("lWE" [""])
+ ("lW'" [""])
+
+ ("Le" ?)
+ ("Lu" ?)
+ ("Li" ?)
+ ("La" ?)
+ ("LE" ?)
+ ("Lee" ?)
+ ("L" ?)
+ ("Lo" ?)
+ ("LW" ?)
+ ("LWa" ?)
+ ("LWe" [""])
+ ("LWu" [""])
+ ("LWi" [""])
+ ("LWE" [""])
+ ("LW'" [""])
+
+ ("He" ?)
+ ("Hu" ?)
+ ("Hi" ?)
+ ("Ha" ?)
+ ("HE" ?)
+ ("Hee" ?)
+ ("H" ?)
+ ("Ho" ?)
+ ("HW" ?)
+ ("HWa" ?)
+ ("HWe" [""])
+ ("HWu" [""])
+ ("HWi" [""])
+ ("HWE" [""])
+ ("HW'" [""])
+
+ ("me" ?)
+ ("mu" ?)
+ ("mi" ?)
+ ("ma" ?)
+ ("mE" ?)
+ ("mee" ?)
+ ("m" ?)
+ ("mo" ?)
+ ("mWe" ?)
+ ("mWu" ?)
+ ("mWi" ?)
+ ("mW" ?)
+ ("mWa" ?)
+ ("mWE" ?)
+ ("mWee" ?)
+ ("mW'" ?)
+ ("mY" ?)
+ ("mYa" ?)
+
+ ("Me" ?)
+ ("Mu" ?)
+ ("Mi" ?)
+ ("Ma" ?)
+ ("ME" ?)
+ ("Mee" ?)
+ ("M" ?)
+ ("Mo" ?)
+ ("MWe" ?)
+ ("MWu" ?)
+ ("MWi" ?)
+ ("MW" ?)
+ ("MWa" ?)
+ ("MWE" ?)
+ ("MWee" ?)
+ ("MW'" ?)
+ ("MY" ?)
+ ("MYa" ?)
+
+ ("`se" ?)
+ ("`su" ?)
+ ("`si" ?)
+ ("`sa" ?)
+ ("`sE" ?)
+ ("`see" ?)
+ ("`s" ?)
+ ("`so" ?)
+ ("`sW" ?)
+ ("`sWa" ?)
+ ("`sWe" [""])
+ ("`sWu" [""])
+ ("`sWi" [""])
+ ("`sWE" [""])
+ ("`sWee" [""])
+ ("`sW'" [""])
+
+ ("s2e" ?)
+ ("s2u" ?)
+ ("s2i" ?)
+ ("s2a" ?)
+ ("s2E" ?)
+ ("s2ee" ?)
+ ("s2" ?)
+ ("s2o" ?)
+ ("s2W" ?)
+ ("s2Wa" ?)
+ ("s2We" [""])
+ ("s2Wu" [""])
+ ("s2Wi" [""])
+ ("s2WE" [""])
+ ("s2Wee" [""])
+ ("s2W'" [""])
+
+ ("sse" ?)
+ ("ssu" ?)
+ ("ssi" ?)
+ ("ssa" ?)
+ ("ssE" ?)
+ ("ssee" ?)
+ ("ss" ?)
+ ("sso" ?)
+ ("ssW" ?)
+ ("ssWa" ?)
+ ("ssWe" [""])
+ ("ssWu" [""])
+ ("ssWi" [""])
+ ("ssWE" [""])
+ ("ssWee" [""])
+ ("ssW'" [""])
+
+ ("re" ?)
+ ("ru" ?)
+ ("ri" ?)
+ ("ra" ?)
+ ("rE" ?)
+ ("ree" ?)
+ ("r" ?)
+ ("ro" ?)
+ ("rW" ?)
+ ("rWa" ?)
+ ("rY" ?)
+ ("rYa" ?)
+ ("rWe" [""])
+ ("rWu" [""])
+ ("rWi" [""])
+ ("rWE" [""])
+ ("rWee" [""])
+ ("rW'" [""])
+
+ ("Re" ?)
+ ("Ru" ?)
+ ("Ri" ?)
+ ("Ra" ?)
+ ("RE" ?)
+ ("Ree" ?)
+ ("R" ?)
+ ("Ro" ?)
+ ("RW" ?)
+ ("RWa" ?)
+ ("RYa" ?)
+ ("RWe" [""])
+ ("RWu" [""])
+ ("RWi" [""])
+ ("RWE" [""])
+ ("RWee" [""])
+ ("RW'" [""])
+
+ ("se" ?)
+ ("su" ?)
+ ("si" ?)
+ ("sa" ?)
+ ("sE" ?)
+ ("see" ?)
+ ("s" ?)
+ ("so" ?)
+ ("sW" ?)
+ ("sWa" ?)
+ ("sWe" [""])
+ ("sWu" [""])
+ ("sWi" [""])
+ ("sWE" [""])
+ ("sWee" [""])
+ ("sW'" [""])
+
+ ("xe" ?)
+ ("xu" ?)
+ ("xi" ?)
+ ("xa" ?)
+ ("xE" ?)
+ ("xee" ?)
+ ("x" ?)
+ ("xo" ?)
+ ("xW" ?)
+ ("xWa" ?)
+ ("xWe" [""])
+ ("xWu" [""])
+ ("xWi" [""])
+ ("xWE" [""])
+ ("xWee" [""])
+ ("xW'" [""])
+
+ ("qe" ?)
+ ("qu" ?)
+ ("qi" ?)
+ ("qa" ?)
+ ("qE" ?)
+ ("qee" ?)
+ ("q" ?)
+ ("qo" ?)
+ ("qWe" ?)
+ ("qWu" ?)
+ ("qWi" ?)
+ ("qW" ?)
+ ("qWa" ?)
+ ("qWE" ?)
+ ("qWee" ?)
+ ("qW'" ?)
+
+ ("`qe" ?)
+ ("`qu" ?)
+ ("`qi" ?)
+ ("`qa" ?)
+ ("`qE" ?)
+ ("`qee" ?)
+ ("`q" ?)
+ ("`qo" ?)
+
+ ("q2e" ?)
+ ("q2u" ?)
+ ("q2i" ?)
+ ("q2a" ?)
+ ("q2E" ?)
+ ("q2ee" ?)
+ ("q2" ?)
+ ("q2o" ?)
+
+ ("qqe" ?)
+ ("qqu" ?)
+ ("qqi" ?)
+ ("qqa" ?)
+ ("qqE" ?)
+ ("qqee" ?)
+ ("qq" ?)
+ ("qqo" ?)
+
+ ("Qe" ?)
+ ("Qu" ?)
+ ("Qi" ?)
+ ("Qa" ?)
+ ("QE" ?)
+ ("Qee" ?)
+ ("Q" ?)
+ ("Qo" ?)
+ ("QWe" ?)
+ ("QWu" ?)
+ ("QWi" ?)
+ ("QW" ?)
+ ("QWa" ?)
+ ("QWE" ?)
+ ("QWee" ?)
+ ("QW'" ?)
+
+ ("be" ?)
+ ("bu" ?)
+ ("bi" ?)
+ ("ba" ?)
+ ("bE" ?)
+ ("bee" ?)
+ ("b" ?)
+ ("bo" ?)
+ ("bWe" ?)
+ ("bWu" ?)
+ ("bWi" ?)
+ ("bW" ?)
+ ("bWa" ?)
+ ("bWE" ?)
+ ("bWee" ?)
+ ("bW'" ?)
+
+ ("Be" ?)
+ ("Bu" ?)
+ ("Bi" ?)
+ ("Ba" ?)
+ ("BE" ?)
+ ("Bee" ?)
+ ("B" ?)
+ ("Bo" ?)
+ ("BWe" ?)
+ ("BWu" ?)
+ ("BWi" ?)
+ ("BW" ?)
+ ("BWa" ?)
+ ("BWE" ?)
+ ("BWee" ?)
+ ("BW'" ?)
+
+ ("ve" ?)
+ ("vu" ?)
+ ("vi" ?)
+ ("va" ?)
+ ("vE" ?)
+ ("vee" ?)
+ ("v" ?)
+ ("vo" ?)
+ ("vW" ?)
+ ("vWa" ?)
+ ("vWe" [""])
+ ("vWu" [""])
+ ("vWi" [""])
+ ("vWE" [""])
+ ("vWee" [""])
+ ("vW'" [""])
+
+ ("Ve" ?)
+ ("Vu" ?)
+ ("Vi" ?)
+ ("Va" ?)
+ ("VE" ?)
+ ("Vee" ?)
+ ("V" ?)
+ ("Vo" ?)
+ ("VW" ?)
+ ("VWa" ?)
+ ("VWe" [""])
+ ("VWu" [""])
+ ("VWi" [""])
+ ("VWE" [""])
+ ("VWee" [""])
+ ("VW'" [""])
+
+ ("te" ?)
+ ("tu" ?)
+ ("ti" ?)
+ ("ta" ?)
+ ("tE" ?)
+ ("tee" ?)
+ ("t" ?)
+ ("to" ?)
+ ("tW" ?)
+ ("tWa" ?)
+ ("tWe" [""])
+ ("tWu" [""])
+ ("tWi" [""])
+ ("tWE" [""])
+ ("tWee" [""])
+ ("tW'" [""])
+
+ ("ce" ?)
+ ("cu" ?)
+ ("ci" ?)
+ ("ca" ?)
+ ("cE" ?)
+ ("cee" ?)
+ ("c" ?)
+ ("co" ?)
+ ("cW" ?)
+ ("cWa" ?)
+ ("cWe" [""])
+ ("cWu" [""])
+ ("cWi" [""])
+ ("cWE" [""])
+ ("cWee" [""])
+ ("cW'" [""])
+
+ ("`he" ?)
+ ("`hu" ?)
+ ("`hi" ?)
+ ("`ha" ?)
+ ("`hE" ?)
+ ("`hee" ?)
+ ("`h" ?)
+ ("`ho" ?)
+ ("`hWe" ?)
+ ("`hWu" ?)
+ ("`hWi" ?)
+ ("`hW" ?)
+ ("`hWa" ?)
+ ("`hWE" ?)
+ ("`hWee" ?)
+ ("`hW'" ?)
+
+ ("h2e" ?)
+ ("h2u" ?)
+ ("h2i" ?)
+ ("h2a" ?)
+ ("h2E" ?)
+ ("h2ee" ?)
+ ("h2" ?)
+ ("h2o" ?)
+ ("h2We" ?)
+ ("h2Wu" ?)
+ ("h2Wi" ?)
+ ("h2W" ?)
+ ("h2Wa" ?)
+ ("h2WE" ?)
+ ("h2Wee" ?)
+ ("h2W'" ?)
+
+ ("hhe" ?)
+ ("hhu" ?)
+ ("hhi" ?)
+ ("hha" ?)
+ ("hhE" ?)
+ ("hhee" ?)
+ ("hh" ?)
+ ("hho" ?)
+ ("hhWe" ?)
+ ("hhWu" ?)
+ ("hhWi" ?)
+ ("hhW" ?)
+ ("hhWa" ?)
+ ("hhWE" ?)
+ ("hhWee" ?)
+ ("hhW'" ?)
+
+ ("ne" ?)
+ ("nu" ?)
+ ("ni" ?)
+ ("na" ?)
+ ("nE" ?)
+ ("nee" ?)
+ ("n" ?)
+ ("no" ?)
+ ("nW" ?)
+ ("nWa" ?)
+ ("nWe" [""])
+ ("nWu" [""])
+ ("nWi" [""])
+ ("nWE" [""])
+ ("nWee" [""])
+ ("nW'" [""])
+
+ ("Ne" ?)
+ ("Nu" ?)
+ ("Ni" ?)
+ ("Na" ?)
+ ("NE" ?)
+ ("Nee" ?)
+ ("N" ?)
+ ("No" ?)
+ ("NW" ?)
+ ("NWa" ?)
+ ("NWe" [""])
+ ("NWu" [""])
+ ("NWi" [""])
+ ("NWE" [""])
+ ("NWee" [""])
+ ("NW'" [""])
+
+ ; ("e" ?) ; old style
+ ("u" ?)
+ ("U" ?)
+ ("i" ?)
+ ("a" ?)
+ ("A" ?)
+ ("E" ?)
+ ; ("ee" ?) ; Alef-E is rare vs Aynu-I, so ee = Aynu-I
+ ("I" ?)
+ ("e" ?)    ; This is the premise to "new style" for vowels
+
+ ("o" ?)
+ ("O" ?)
+ ("ea" ?)
+
+ ("ke" ?)
+ ("ku" ?)
+ ("ki" ?)
+ ("ka" ?)
+ ("kE" ?)
+ ("kee" ?)
+ ("k" ?)
+ ("ko" ?)
+ ("kWe" ?)
+ ("kWu" ?)
+ ("kWi" ?)
+ ("kW" ?)
+ ("kWa" ?)
+ ("kWE" ?)
+ ("kWee" ?)
+ ("kW'" ?)
+
+ ("`ke" ?)
+ ("`ku" ?)
+ ("`ki" ?)
+ ("`ka" ?)
+ ("`kE" ?)
+ ("`kee" ?)
+ ("`k" ?)
+ ("`ko" ?)
+
+ ("k2e" ?)
+ ("k2u" ?)
+ ("k2i" ?)
+ ("k2a" ?)
+ ("k2E" ?)
+ ("k2ee" ?)
+ ("k2" ?)
+ ("k2o" ?)
+
+ ("kke" ?)
+ ("kku" ?)
+ ("kki" ?)
+ ("kka" ?)
+ ("kkE" ?)
+ ("kkee" ?)
+ ("kk" ?)
+ ("kko" ?)
+
+ ("Ke" ?)
+ ("Ku" ?)
+ ("Ki" ?)
+ ("Ka" ?)
+ ("KE" ?)
+ ("Kee" ?)
+ ("K" ?)
+ ("Ko" ?)
+ ("KWe" ?)
+ ("KWu" ?)
+ ("KWi" ?)
+ ("KW" ?)
+ ("KWa" ?)
+ ("KWE" ?)
+ ("KWee" ?)
+ ("KW'" ?)
+
+ ("Xe" ?)
+ ("Xu" ?)
+ ("Xi" ?)
+ ("Xa" ?)
+ ("XE" ?)
+ ("Xee" ?)
+ ("X" ?)
+ ("Xo" ?)
+
+ ("we" ?)
+ ("wu" ?)
+ ("wi" ?)
+ ("wa" ?)
+ ("wE" ?)
+ ("wee" ?)
+ ("w" ?)
+ ("wo" ?)
+
+ ("`e" ?)
+ ("`u" ?)
+ ("`U" ?)
+ ("`i" ?)
+ ("`a" ?)
+ ("`A" ?)
+ ("`E" ?)
+ ("`ee" ?)
+ ("`I" ?)
+ ("`o" ?)
+ ("`O" ?)
+
+ ("e2" ?)
+ ("u2" ?)
+ ("U2" ?)
+ ("i2" ?)
+ ("a2" ?)
+ ("A2" ?)
+ ("E2" ?)
+ ("ee2" ?)
+ ("I2" ?)
+ ("o2" ?)
+ ("O2" ?)
+
+ ; ("ee" ?) ; old style
+ ("ae" ?)   ; new style
+ ("aaa" ?)  ; new style
+ ("uu" ?)
+ ("UU" ?)
+ ("ii" ?)
+ ("aa" ?)
+ ("AA" ?)
+ ("EE" ?)
+ ("II" ?)
+ ("ee" ?)   ; new style
+ ("oo" ?)
+ ("OO" ?)
+
+ ("ze" ?)
+ ("zu" ?)
+ ("zi" ?)
+ ("za" ?)
+ ("zE" ?)
+ ("zee" ?)
+ ("z" ?)
+ ("zo" ?)
+ ("zW" ?)
+ ("zWa" ?)
+ ("zWe" [""])
+ ("zWu" [""])
+ ("zWi" [""])
+ ("zWE" [""])
+ ("zWee" [""])
+ ("zW'" [""])
+
+ ("Ze" ?)
+ ("Zu" ?)
+ ("Zi" ?)
+ ("Za" ?)
+ ("ZE" ?)
+ ("Zee" ?)
+ ("Z" ?)
+ ("Zo" ?)
+ ("ZW" ?)
+ ("ZWa" ?)
+ ("ZWe" [""])
+ ("ZWu" [""])
+ ("ZWi" [""])
+ ("ZWE" [""])
+ ("ZWee" [""])
+ ("ZW'" [""])
+
+ ("ye" ?)
+ ("yu" ?)
+ ("yi" ?)
+ ("ya" ?)
+ ("yE" ?)
+ ("yee" ?)
+ ("y" ?)
+ ("yo" ?)
+ ("yW" ?)
+ ("yWa" ?)
+ ("yWe" [""])
+ ("yWu" [""])
+ ("yWi" [""])
+ ("yWE" [""])
+ ("yWee" [""])
+ ("yW'" [""])
+
+ ("Ye" ?)
+ ("Yu" ?)
+ ("Yi" ?)
+ ("Ya" ?)
+ ("YE" ?)
+ ("Yee" ?)
+ ("Y" ?)
+ ("Yo" ?)
+ ("YW" ?)
+ ("YWa" ?)
+ ("YWe" [""])
+ ("YWu" [""])
+ ("YWi" [""])
+ ("YWE" [""])
+ ("YWee" [""])
+ ("YW'" [""])
+
+ ("de" ?)
+ ("du" ?)
+ ("di" ?)
+ ("da" ?)
+ ("dE" ?)
+ ("dee" ?)
+ ("d" ?)
+ ("do" ?)
+ ("dW" ?)
+ ("dWa" ?)
+ ("dWe" [""])
+ ("dWu" [""])
+ ("dWi" [""])
+ ("dWE" [""])
+ ("dWee" [""])
+ ("dW'" [""])
+
+ ("De" ?)
+ ("Du" ?)
+ ("Di" ?)
+ ("Da" ?)
+ ("DE" ?)
+ ("Dee" ?)
+ ("D" ?)
+ ("Do" ?)
+ ("DW" ?)
+ ("DWa" ?)
+ ("DWe" [""])
+ ("DWu" [""])
+ ("DWi" [""])
+ ("DWE" [""])
+ ("DWee" [""])
+ ("DW'" [""])
+
+ ("je" ?)
+ ("ju" ?)
+ ("ji" ?)
+ ("ja" ?)
+ ("jE" ?)
+ ("jee" ?)
+ ("j" ?)
+ ("jo" ?)
+ ("jW" ?)
+ ("jWa" ?)
+ ("jWe" [""])
+ ("jWu" [""])
+ ("jWi" [""])
+ ("jWE" [""])
+ ("jWee" [""])
+ ("jW'" [""])
+
+ ("Je" ?)
+ ("Ju" ?)
+ ("Ji" ?)
+ ("Ja" ?)
+ ("JE" ?)
+ ("Jee" ?)
+ ("J" ?)
+ ("Jo" ?)
+ ("JW" ?)
+ ("JWa" ?)
+ ("JWe" [""])
+ ("JWu" [""])
+ ("JWi" [""])
+ ("JWE" [""])
+ ("JWee" [""])
+ ("JW'" [""])
+
+ ("ge" ?)
+ ("gu" ?)
+ ("gi" ?)
+ ("ga" ?)
+ ("gE" ?)
+ ("gee" ?)
+ ("g" ?)
+ ("go" ?)
+ ("gWe" ?)
+ ("gWu" ?)
+ ("gWi" ?)
+ ("gW" ?)
+ ("gWa" ?)
+ ("gWE" ?)
+ ("gWee" ?)
+ ("gW'" ?)
+
+ ("`ge" ?)
+ ("`gu" ?)
+ ("`gi" ?)
+ ("`ga" ?)
+ ("`gE" ?)
+ ("`gee" ?)
+ ("`g" ?)
+ ("`go" ?)
+
+ ("g2e" ?)
+ ("g2u" ?)
+ ("g2i" ?)
+ ("g2a" ?)
+ ("g2E" ?)
+ ("g2ee" ?)
+ ("g2" ?)
+ ("g2o" ?)
+
+ ("gge" ?)
+ ("ggu" ?)
+ ("ggi" ?)
+ ("gga" ?)
+ ("ggE" ?)
+ ("ggee" ?)
+ ("gg" ?)
+ ("ggo" ?)
+
+ ("Ge" ?)
+ ("Gu" ?)
+ ("Gi" ?)
+ ("Ga" ?)
+ ("GE" ?)
+ ("Gee" ?)
+ ("G" ?)
+ ("Go" ?)
+ ("GWe" ?)
+ ("GWu" ?)
+ ("GWi" ?)
+ ("GW" ?)
+ ("GWa" ?)
+ ("GWE" ?)
+ ("GWee" ?)
+ ("GW'" ?)
+
+ ("Te" ?)
+ ("Tu" ?)
+ ("Ti" ?)
+ ("Ta" ?)
+ ("TE" ?)
+ ("Tee" ?)
+ ("T" ?)
+ ("To" ?)
+ ("TW" ?)
+ ("TWa" ?)
+ ("TWe" [""])
+ ("TWu" [""])
+ ("TWi" [""])
+ ("TWE" [""])
+ ("TWee" [""])
+ ("TW'" [""])
+
+ ("Ce" ?)
+ ("Cu" ?)
+ ("Ci" ?)
+ ("Ca" ?)
+ ("CE" ?)
+ ("Cee" ?)
+ ("C" ?)
+ ("Co" ?)
+ ("CW" ?)
+ ("CWa" ?)
+ ("CWe" [""])
+ ("CWu" [""])
+ ("CWi" [""])
+ ("CWE" [""])
+ ("CWee" [""])
+ ("CW'" [""])
+
+ ("Pe" ?)
+ ("Pu" ?)
+ ("Pi" ?)
+ ("Pa" ?)
+ ("PE" ?)
+ ("Pee" ?)
+ ("P" ?)
+ ("Po" ?)
+ ("PW" ?)
+ ("PWa" ?)
+ ("PWe" [""])
+ ("PWu" [""])
+ ("PWi" [""])
+ ("PWE" [""])
+ ("PWee" [""])
+ ("PW'" [""])
+
+ ("Se" ?)
+ ("Su" ?)
+ ("Si" ?)
+ ("Sa" ?)
+ ("SE" ?)
+ ("See" ?)
+ ("S" ?)
+ ("So" ?)
+ ("SW" ?)
+ ("SWa" ?)
+ ("SWe" [""])
+ ("SWu" [""])
+ ("SWi" [""])
+ ("SWE" [""])
+ ("SWee" [""])
+ ("SW'" [""])
+
+ ("`Se" ?)
+ ("`Su" ?)
+ ("`Si" ?)
+ ("`Sa" ?)
+ ("`SE" ?)
+ ("`See" ?)
+ ("`S" ?)
+ ("`So" ?)
+ ("`SW" ?)
+ ("`SWa" ?)
+ ("`SWe" [""])
+ ("`SWu" [""])
+ ("`SWi" [""])
+ ("`SWE" [""])
+ ("`SWee" [""])
+ ("`SW'" [""])
+
+ ("S2e" ?)
+ ("S2u" ?)
+ ("S2i" ?)
+ ("S2a" ?)
+ ("S2E" ?)
+ ("S2ee" ?)
+ ("S2" ?)
+ ("S2o" ?)
+ ("S2W" ?)
+ ("S2Wa" ?)
+ ("S2We" [""])
+ ("S2Wu" [""])
+ ("S2Wi" [""])
+ ("S2WE" [""])
+ ("S2Wee" [""])
+ ("S2W'" [""])
+
+ ("SSe" ?)
+ ("SSu" ?)
+ ("SSi" ?)
+ ("SSa" ?)
+ ("SSE" ?)
+ ("SSee" ?)
+ ("SS" ?)
+ ("SSo" ?)
+ ("SSW" ?)
+ ("SSWa" ?)
+ ("SSWe" [""])
+ ("SSWu" [""])
+ ("SSWi" [""])
+ ("SSWE" [""])
+ ("SSWee" [""])
+ ("SW'" [""])
+
+ ("fe" ?)
+ ("fu" ?)
+ ("fi" ?)
+ ("fa" ?)
+ ("fE" ?)
+ ("fee" ?)
+ ("f" ?)
+ ("fo" ?)
+ ("fWe" ?)
+ ("fWu" ?)
+ ("fWi" ?)
+ ("fW" ?)
+ ("fWa" ?)
+ ("fWE" ?)
+ ("fWee" ?)
+ ("fW'" ?)
+ ("fY" ?)
+ ("fYa" ?)
+
+ ("Fe" ?)
+ ("Fu" ?)
+ ("Fi" ?)
+ ("Fa" ?)
+ ("FE" ?)
+ ("Fee" ?)
+ ("F" ?)
+ ("Fo" ?)
+ ("FWe" ?)
+ ("FWu" ?)
+ ("FWi" ?)
+ ("FW" ?)
+ ("FWa" ?)
+ ("FWE" ?)
+ ("FWee" ?)
+ ("FW'" ?)
+ ("FY" ?)
+ ("FYa" ?)
+
+ ("pe" ?)
+ ("pu" ?)
+ ("pi" ?)
+ ("pa" ?)
+ ("pE" ?)
+ ("pee" ?)
+ ("p" ?)
+ ("po" ?)
+ ("pWe" ?)
+ ("pWu" ?)
+ ("pWi" ?)
+ ("pW" ?)
+ ("pWa" ?)
+ ("pWE" ?)
+ ("pWee" ?)
+ ("pW'" ?)
 
  ("'" [""])
  ("''" ?')
- (":" ?\e$(3$h\e(B)
- ("::" ?\e$(3$i\e(B)
+ (":" ?)
+ ("::" ?)
  (":::" ?:)
- ("." ?\e$(3$i\e(B)
- (".." ?\e$(3%u\e(B)
+ ("." ?)
+ (".." ?)
  ("..." ?.)
- ("," ?\e$(3$j\e(B)
+ ("," ?)
  (",," ?,)
- (";" ?\e$(3$k\e(B)
+ (";" ?)
  (";;" ?\;)
- ("-:" ?\e$(3$l\e(B)
- (":-" ?\e$(3$m\e(B)
+ ("-:" ?)
+ (":-" ?)
  ("*" ?*)
- ("**" ?\e$(3$o\e(B)
- (":|:" ?\e$(3$o\e(B)
- ("?" ?\e$(3%x\e(B)
- ("??" ?\e$(3$n\e(B)
- ("`?" ?\e$(3$n\e(B)
+ ("**" ?)
+ (":|:" ?)
+ ("?" ?)
+ ("??" ?)
+ ("`?" ?)
  ("???" ??)
- ("<<" ?\e$(3%v\e(B)
- (">>" ?\e$(3%w\e(B)
- ("`!" ?\e$(3%t\e(B)
- ("wWe" ?\e$(3%n\e(B)
- ("wWu" ?\e$(3%r\e(B)
- ("wWi" ?\e$(3%o\e(B)
- ("wW" ?\e$(3%p\e(B)
- ("wWa" ?\e$(3%p\e(B)
- ("wWE" ?\e$(3%q\e(B)
- ("wWee" ?\e$(3%q\e(B)
- ("wW'" ?\e$(3%r\e(B)
- ("We" ?\e$(3%n\e(B)
- ("Wu" ?\e$(3%r\e(B)
- ("Wi" ?\e$(3%o\e(B)
- ("W" ?\e$(3%p\e(B)
- ("Wa" ?\e$(3%p\e(B)
- ("WE" ?\e$(3%q\e(B)
- ("Wee" ?\e$(3%q\e(B)
- ("W'" ?\e$(3%r\e(B)
- ("`1" ?\e$(3$p\e(B)
- ("`2" ?\e$(3$q\e(B)
- ("`3" ?\e$(3$r\e(B)
- ("`4" ?\e$(3$s\e(B)
- ("`5" ?\e$(3$t\e(B)
- ("`6" ?\e$(3$u\e(B)
- ("`7" ?\e$(3$v\e(B)
- ("`8" ?\e$(3$w\e(B)
- ("`9" ?\e$(3$x\e(B)
- ("`10" ?\e$(3$y\e(B)
- ("`20" ?\e$(3$z\e(B)
- ("`30" ?\e$(3${\e(B)
- ("`40" ?\e$(3$|\e(B)
- ("`50" ?\e$(3$}\e(B)
- ("`60" ?\e$(3$~\e(B)
- ("`70" ?\e$(3%!\e(B)
- ("`80" ?\e$(3%"\e(B)
- ("`90" ?\e$(3%#\e(B)
- ("`100" ?\e$(3%$\e(B)
- ("`1000" ["\e$(3$y%$\e(B"])
- ("`2000" ["\e$(3$z%$\e(B"])
- ("`3000" ["\e$(3${%$\e(B"])
- ("`4000" ["\e$(3$|%$\e(B"])
- ("`5000" ["\e$(3$}%$\e(B"])
- ("`6000" ["\e$(3$~%$\e(B"])
- ("`7000" ["\e$(3%!%$\e(B"])
- ("`8000" ["\e$(3%"%$\e(B"])
- ("`9000" ["\e$(3%#%$\e(B"])
- ("`10000" ?\e$(3%%\e(B)
- ("`20000" ["\e$(3$q%%\e(B"])
- ("`30000" ["\e$(3$r%%\e(B"])
- ("`40000" ["\e$(3$s%%\e(B"])
- ("`50000" ["\e$(3$t%%\e(B"])
- ("`60000" ["\e$(3$u%%\e(B"])
- ("`70000" ["\e$(3$v%%\e(B"])
- ("`80000" ["\e$(3$w%%\e(B"])
- ("`90000" ["\e$(3$x%%\e(B"])
- ("`100000" ["\e$(3$y%%\e(B"])
- ("`200000" ["\e$(3$z%%\e(B"])
- ("`300000" ["\e$(3${%%\e(B"])
- ("`400000" ["\e$(3$|%%\e(B"])
- ("`500000" ["\e$(3$}%%\e(B"])
- ("`600000" ["\e$(3$~%%\e(B"])
- ("`700000" ["\e$(3%!%%\e(B"])
- ("`800000" ["\e$(3%"%%\e(B"])
- ("`900000" ["\e$(3%#%%\e(B"])
- ("`1000000" ["\e$(3%$%%\e(B"])
+ ("<<" ?)
+ (">>" ?)
+ ("`!" ?)
+ ("wWe" ?)
+ ("wWu" ?)
+ ("wWi" ?)
+ ("wW" ?)
+ ("wWa" ?)
+ ("wWE" ?)
+ ("wWee" ?)
+ ("wW'" ?)
+ ("We" ?)
+ ("Wu" ?)
+ ("Wi" ?)
+ ("W" ?)
+ ("Wa" ?)
+ ("WE" ?)
+ ("Wee" ?)
+ ("W'" ?)
+ ("`1" ?)
+ ("`2" ?)
+ ("`3" ?)
+ ("`4" ?)
+ ("`5" ?)
+ ("`6" ?)
+ ("`7" ?)
+ ("`8" ?)
+ ("`9" ?)
+ ("`10" ?)
+ ("`20" ?)
+ ("`30" ?)
+ ("`40" ?)
+ ("`50" ?)
+ ("`60" ?)
+ ("`70" ?)
+ ("`80" ?)
+ ("`90" ?)
+ ("`100" ?)
+ ("`1000" ["፲፻"])
+ ("`2000" ["፳፻"])
+ ("`3000" ["፴፻"])
+ ("`4000" ["፵፻"])
+ ("`5000" ["፶፻"])
+ ("`6000" ["፷፻"])
+ ("`7000" ["፸፻"])
+ ("`8000" ["፹፻"])
+ ("`9000" ["፺፻"])
+ ("`10000" ?)
+ ("`20000" ["፪፼"])
+ ("`30000" ["፫፼"])
+ ("`40000" ["፬፼"])
+ ("`50000" ["፭፼"])
+ ("`60000" ["፮፼"])
+ ("`70000" ["፯፼"])
+ ("`80000" ["፰፼"])
+ ("`90000" ["፱፼"])
+ ("`100000" ["፲፼"])
+ ("`200000" ["፳፼"])
+ ("`300000" ["፴፼"])
+ ("`400000" ["፵፼"])
+ ("`500000" ["፶፼"])
+ ("`600000" ["፷፼"])
+ ("`700000" ["፸፼"])
+ ("`800000" ["፹፼"])
+ ("`900000" ["፺፼"])
+ ("`1000000" ["፻፼"])
 )
 
 (defun ethio-select-a-translation ()
   ;; The translation of `a' depends on the language
   ;; (either Tigrigna or Amharic).
   (quail-defrule "a"
-                (if (ethio-prefer-amharic-p) ?\e$(3"c\e(B ?\e$(3"f\e(B)
+                (if (ethio-prefer-amharic-p) ?አ ?ኣ)
                 "ethiopic"))
 
 ;;; ethiopic.el ends here
index bd309e9a889bdcf15295ff31bbfc8096107ee0e2..291592e473644c0d9e4580423811784ca07491a4 100644 (file)
@@ -1,4 +1,4 @@
-;;; greek.el --- Quail package for inputting Greek -*-coding: iso-2022-7bit-*-
+;;; greek.el --- Quail package for inputting Greek -*-coding: utf-8-*-
 
 ;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 (require 'quail)
 
 (quail-define-package
- "greek-jis" "Greek" "\e$B&8\e(B" nil
- "\e$B&%&K&K&G&M&I&J&A\e(B: Greek keyboard layout (JIS X0208.1983)
+ "greek-jis" "Greek" "Ω" nil
+ "Ελληνικα: Greek keyboard layout (JIS X0208.1983)
 
 The layout is same as greek, but uses JIS characters.
 Sorry, accents and terminal sigma are not supported in JIS."
  nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("1" ?\e$B#1\e(B)
- ("2" ?\e$B#2\e(B)
- ("3" ?\e$B#3\e(B)
- ("4" ?\e$B#4\e(B)
- ("5" ?\e$B#5\e(B)
- ("6" ?\e$B#6\e(B)
- ("7" ?\e$B#7\e(B)
- ("8" ?\e$B#8\e(B)
- ("9" ?\e$B#9\e(B)
- ("0" ?\e$B#0\e(B)
- ("-" ?\e$B!]\e(B)
- ("=" ?\e$B!a\e(B)
- ("`" ?\e$B!F\e(B)
- ("q" ?\e$B!&\e(B)
- ("w" ?\e$B&R\e(B)
- ("e" ?\e$B&E\e(B)
- ("r" ?\e$B&Q\e(B)
- ("t" ?\e$B&S\e(B)
- ("y" ?\e$B&T\e(B)
- ("u" ?\e$B&H\e(B)
- ("i" ?\e$B&I\e(B)
- ("o" ?\e$B&O\e(B)
- ("p" ?\e$B&P\e(B)
- ("[" ?\\e$B!N\e(B)
- ("]" ?\\e$B!O\e(B)
- ("a" ?\e$B&A\e(B)
- ("s" ?\e$B&R\e(B)
- ("d" ?\e$B&D\e(B)
- ("f" ?\e$B&U\e(B)
- ("g" ?\e$B&C\e(B)
- ("h" ?\e$B&G\e(B)
- ("j" ?\e$B&N\e(B)
- ("k" ?\e$B&J\e(B)
- ("l" ?\e$B&K\e(B)
- (";" ?\e$B!G\e(B)
- ("'" ?\e$B!G\e(B)
- ("\\" ?\e$B!@\e(B)
- ("z" ?\e$B&F\e(B)
- ("x" ?\e$B&V\e(B)
- ("c" ?\e$B&W\e(B)
- ("v" ?\e$B&X\e(B)
- ("b" ?\e$B&B\e(B)
- ("n" ?\e$B&M\e(B)
- ("m" ?\e$B&L\e(B)
+ ("1" ?)
+ ("2" ?)
+ ("3" ?)
+ ("4" ?)
+ ("5" ?)
+ ("6" ?)
+ ("7" ?)
+ ("8" ?)
+ ("9" ?)
+ ("0" ?)
+ ("-" ?)
+ ("=" ?)
+ ("`" ?)
+ ("q" ?)
+ ("w" ?σ)
+ ("e" ?ε)
+ ("r" ?ρ)
+ ("t" ?τ)
+ ("y" ?υ)
+ ("u" ?θ)
+ ("i" ?ι)
+ ("o" ?ο)
+ ("p" ?π)
+ ("[" ?\)
+ ("]" ?\)
+ ("a" ?α)
+ ("s" ?σ)
+ ("d" ?δ)
+ ("f" ?φ)
+ ("g" ?γ)
+ ("h" ?η)
+ ("j" ?ξ)
+ ("k" ?κ)
+ ("l" ?λ)
+ (";" ?)
+ ("'" ?)
+ ("\\" ?)
+ ("z" ?ζ)
+ ("x" ?χ)
+ ("c" ?ψ)
+ ("v" ?ω)
+ ("b" ?β)
+ ("n" ?ν)
+ ("m" ?μ)
  ("," ?, )
  ("." ?. )
- ("/" ?\e$B!?\e(B)
-
- ("!" ?\e$B!*\e(B)
- ("@" ?\e$B!w\e(B)
- ("#" ?\e$B!t\e(B)
- ("$" ?\e$B!t\e(B)
- ("%" ?\e$B!s\e(B)
- ("^" ?\e$B!0\e(B)
- ("&" ?\e$B!u\e(B)
- ("*" ?\e$B!v\e(B)
- ("(" ?\\e$B!J\e(B)
- (")" ?\\e$B!K\e(B)
- ("_" ?\e$B!2\e(B)
- ("+" ?\e$B!\\e(B)
- ("~" ?\e$B!1\e(B)
- ("Q" ?\e$B!]\e(B)
- ("W" ?\e$B&2\e(B)
- ("E" ?\e$B&%\e(B)
- ("R" ?\e$B&1\e(B)
- ("T" ?\e$B&3\e(B)
- ("Y" ?\e$B&4\e(B)
- ("U" ?\e$B&(\e(B)
- ("I" ?\e$B&)\e(B)
- ("O" ?\e$B&/\e(B)
- ("P" ?\e$B&1\e(B)
- ("{" ?\\e$B!P\e(B)
- ("}" ?\\e$B!Q\e(B)
- ("A" ?\e$B&!\e(B)
- ("S" ?\e$B&2\e(B)
- ("D" ?\e$B&$\e(B)
- ("F" ?\e$B&5\e(B)
- ("G" ?\e$B&#\e(B)
- ("H" ?\e$B&'\e(B)
- ("J" ?\e$B&.\e(B)
- ("K" ?\e$B&*\e(B)
- ("L" ?\e$B&+\e(B)
- (":" ?\e$B!I\e(B)
- ("\"" ?\e$B!I\e(B)
- ("|" ?\e$B!C\e(B)
- ("Z" ?\e$B&&\e(B)
- ("X" ?\e$B&6\e(B)
- ("C" ?\e$B&7\e(B)
- ("V" ?\e$B&8\e(B)
- ("B" ?\e$B&"\e(B)
- ("N" ?\e$B&-\e(B)
- ("M" ?\e$B&,\e(B)
- ("<" ?\e$B!(\e(B)
- (">" ?\e$B!'\e(B)
- ("?" ?\e$B!)\e(B))
+ ("/" ?)
+
+ ("!" ?)
+ ("@" ?)
+ ("#" ?)
+ ("$" ?)
+ ("%" ?)
+ ("^" ?)
+ ("&" ?)
+ ("*" ?)
+ ("(" ?\)
+ (")" ?\)
+ ("_" ?_)
+ ("+" ?)
+ ("~" ?)
+ ("Q" ?)
+ ("W" ?Σ)
+ ("E" ?Ε)
+ ("R" ?Ρ)
+ ("T" ?Τ)
+ ("Y" ?Υ)
+ ("U" ?Θ)
+ ("I" ?Ι)
+ ("O" ?Ο)
+ ("P" ?Ρ)
+ ("{" ?\)
+ ("}" ?\)
+ ("A" ?Α)
+ ("S" ?Σ)
+ ("D" ?Δ)
+ ("F" ?Φ)
+ ("G" ?Γ)
+ ("H" ?Η)
+ ("J" ?Ξ)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ (":" ?)
+ ("\"" ?)
+ ("|" ?)
+ ("Z" ?Ζ)
+ ("X" ?Χ)
+ ("C" ?Ψ)
+ ("V" ?Ω)
+ ("B" ?Β)
+ ("N" ?Ν)
+ ("M" ?Μ)
+ ("<" ?)
+ (">" ?)
+ ("?" ?))
 
 ;;
 
@@ -192,227 +192,227 @@ nil t t nil nil nil nil nil nil nil t)
 
 (quail-define-rules
 
- ("!" ?\e$,1'a\e(B) ; sampi
- ("#" ?\e$,1'\\e(B) ; DIGAMMA
- ("$" ?\e$,1'[\e(B) ; stigma
- ("%" ?\e$,1'_\e(B) ; koppa
- ("&" ?\e$,1'^\e(B) ; KOPPA
- ("'" ?\e$,1q\7f\e(B) ("v" ?\e$,1q\7f\e(B) ; psili
- ("/" ?\e$,1r]\e(B) ; oxia
- (":" ?\e$,1&g\e(B) ; ano teleia
- (";" ?\e$,1&^\e(B) ; erotimatiko
- ("\"" ?\e,A(\e(B) ; dialytika
-
- ("A" ?\e$,1&q\e(B)
- ("B" ?\e$,1&r\e(B)
- ("C" ?\e$,1''\e(B)
- ("D" ?\e$,1&t\e(B)
- ("E" ?\e$,1&u\e(B)
- ("F" ?\e$,1'&\e(B)
- ("G" ?\e$,1&s\e(B)
- ("H" ?\e$,1&w\e(B)
- ("I" ?\e$,1&y\e(B)
- ("wJ" ?\e$,1rS\e(B)
- ("K" ?\e$,1&z\e(B)
- ("L" ?\e$,1&{\e(B)
- ("M" ?\e$,1&|\e(B)
- ("N" ?\e$,1&}\e(B)
- ("O" ?\e$,1&\7f\e(B)
-
- ("P" ?\e$,1' \e(B)
- ("Q" ?\e$,1&x\e(B)
- ("R" ?\e$,1'!\e(B)
- ("S" ?\e$,1'#\e(B)
- ("T" ?\e$,1'$\e(B)
- ("U" ?\e$,1'%\e(B)
- ("hJ" ?\e$,1r#\e(B)
- ("W" ?\e$,1')\e(B)
- ("X" ?\e$,1&~\e(B)
- ("Y" ?\e$,1'(\e(B)
- ("Z" ?\e$,1&v\e(B)
- ("?" ?\e$,1rO\e(B) ; varia
- ("\\" ?\e$,1r \e(B) ("^" ?\e$,1r \e(B) ; perispomeni
-
- ("`" ?\e$,1r^\e(B) ("V" ?\e$,1r^\e(B) ; dasia
- ("a" ?\e$,1'1\e(B)
- ("b" ?\e$,1'2\e(B)
- ("c" ?\e$,1'G\e(B)
- ("d" ?\e$,1'4\e(B)
- ("e" ?\e$,1'5\e(B)
- ("f" ?\e$,1'F\e(B)
- ("g" ?\e$,1'3\e(B)
- ("h" ?\e$,1'7\e(B)
- ("i" ?\e$,1'9\e(B)
- ("j" ?\e$,1'B\e(B)
- ("k" ?\e$,1':\e(B)
- ("l" ?\e$,1';\e(B)
- ("m" ?\e$,1'<\e(B)
- ("n" ?\e$,1'=\e(B)
- ("o" ?\e$,1'?\e(B)
-
- ("p" ?\e$,1'@\e(B)
- ("q" ?\e$,1'8\e(B)
- ("r" ?\e$,1'A\e(B)
- ("s" ?\e$,1'C\e(B)
- ("t" ?\e$,1'D\e(B)
- ("u" ?\e$,1'E\e(B)
- ("aJ" ?\e$,1qs\e(B)
- ("w" ?\e$,1'I\e(B)
- ("x" ?\e$,1'>\e(B)
- ("y" ?\e$,1'H\e(B)
- ("z" ?\e$,1'6\e(B)
-
- ("i`" ?\e$,1pQ\e(B) ("iV" ?\e$,1pQ\e(B)
- ("i'" ?\e$,1pP\e(B) ("iv" ?\e$,1pP\e(B)
- ("i/" ?\e$,1q7\e(B)
- ("i`/" ?\e$,1pU\e(B) ("iV/" ?\e$,1pU\e(B) ("i/`" ?\e$,1pU\e(B) ("i/V" ?\e$,1pU\e(B)
- ("i'/" ?\e$,1pT\e(B) ("iv/" ?\e$,1pT\e(B) ("i/'" ?\e$,1pT\e(B) ("i/v" ?\e$,1pT\e(B)
- ("i?" ?\e$,1q6\e(B)
- ("i`?" ?\e$,1pS\e(B) ("iV?" ?\e$,1pS\e(B) ("i?`" ?\e$,1pS\e(B) ("i?V" ?\e$,1pS\e(B)
- ("i'?" ?\e$,1pR\e(B) ("iv?" ?\e$,1pR\e(B) ("i?'" ?\e$,1pR\e(B) ("i?v" ?\e$,1pR\e(B)
- ("i^"  ?\e$,1r6\e(B) ("i\\" ?\e$,1r6\e(B)
- ("i`^"  ?\e$,1pW\e(B) ("i`\\" ?\e$,1pW\e(B) ("iV^"  ?\e$,1pW\e(B) ("iV\\" ?\e$,1pW\e(B)
- ("i^`"  ?\e$,1pW\e(B) ("i\\`" ?\e$,1pW\e(B) ("i^V"  ?\e$,1pW\e(B) ("i\\V" ?\e$,1pW\e(B)
- ("i'^"  ?\e$,1pV\e(B) ("i'\\" ?\e$,1pV\e(B) ("iv^"  ?\e$,1pV\e(B) ("iv\\" ?\e$,1pV\e(B)
- ("i^'"  ?\e$,1pV\e(B) ("i\\'" ?\e$,1pV\e(B) ("i^v"  ?\e$,1pV\e(B) ("i\\v" ?\e$,1pV\e(B)
- ("i\"" ?\e$,1'J\e(B)
- ("i/\"" ?\e$,1r3\e(B) ("i\"/" ?\e$,1r3\e(B)
- ("i?\"" ?\e$,1r2\e(B) ("i\"?" ?\e$,1r2\e(B)
-
- ("^`"  ?\e$,1r?\e(B) ("^V"  ?\e$,1r?\e(B) ("\\`" ?\e$,1r?\e(B) ("\\V" ?\e$,1r?\e(B)
- ("`^"  ?\e$,1r?\e(B) ("V^"  ?\e$,1r?\e(B) ("`\\" ?\e$,1r?\e(B) ("V\\" ?\e$,1r?\e(B)
- ("^'"  ?\e$,1r/\e(B) ("^v"  ?\e$,1r/\e(B) ("\\'" ?\e$,1r/\e(B) ("\\v" ?\e$,1r/\e(B)
- ("'^"  ?\e$,1r/\e(B) ("v^"  ?\e$,1r/\e(B) ("'\\" ?\e$,1r/\e(B) ("v\\" ?\e$,1r/\e(B)
- ("/`" ?\e$,1r>\e(B) ("/V" ?\e$,1r>\e(B) ("`/" ?\e$,1r>\e(B) ("V/" ?\e$,1r>\e(B)
- ("/'" ?\e$,1r.\e(B) ("/v" ?\e$,1r.\e(B) ("'/" ?\e$,1r.\e(B) ("v/" ?\e$,1r.\e(B)
- ("?`" ?\e$,1r=\e(B) ("?V" ?\e$,1r=\e(B) ("`?" ?\e$,1r=\e(B) ("V?" ?\e$,1r=\e(B)
- ("?'" ?\e$,1r-\e(B) ("?v" ?\e$,1r-\e(B) ("'?" ?\e$,1r-\e(B) ("v?" ?\e$,1r-\e(B)
- ("\"/" ?\e$,1rN\e(B) ("/\"" ?\e$,1rN\e(B)
- ("\"?" ?\e$,1rM\e(B) ("?\"" ?\e$,1rM\e(B)
-
- ("e`" ?\e$,1p1\e(B) ("eV" ?\e$,1p1\e(B)
- ("e'" ?\e$,1p0\e(B) ("ev" ?\e$,1p0\e(B)
- ("e/" ?\e$,1q3\e(B)
- ("e/`" ?\e$,1p5\e(B) ("e/V" ?\e$,1p5\e(B) ("e`/" ?\e$,1p5\e(B) ("eV/" ?\e$,1p5\e(B)
- ("e/'" ?\e$,1p4\e(B) ("e/v" ?\e$,1p4\e(B) ("e'/" ?\e$,1p4\e(B) ("ev/" ?\e$,1p4\e(B)
- ("e?" ?\e$,1q2\e(B)
- ("e?`" ?\e$,1p3\e(B) ("e?V" ?\e$,1p3\e(B) ("e`?" ?\e$,1p3\e(B) ("eV?" ?\e$,1p3\e(B)
- ("e?'" ?\e$,1p2\e(B) ("e?v" ?\e$,1p2\e(B) ("e'?" ?\e$,1p2\e(B) ("ev?" ?\e$,1p2\e(B)
-
- ("a`" ?\e$,1p!\e(B) ("aV" ?\e$,1p!\e(B)
- ("a'" ?\e$,1p \e(B) ("av" ?\e$,1p \e(B)
- ("a/" ?\e$,1q1\e(B)
- ("a/`" ?\e$,1p%\e(B) ("a/V" ?\e$,1p%\e(B) ("a`/" ?\e$,1p%\e(B) ("aV/" ?\e$,1p%\e(B)
- ("a/'" ?\e$,1p$\e(B) ("a/v" ?\e$,1p$\e(B) ("a'/" ?\e$,1p$\e(B) ("av/" ?\e$,1p$\e(B)
- ("a?" ?\e$,1q0\e(B)
- ("a?`" ?\e$,1p#\e(B) ("a?V" ?\e$,1p#\e(B) ("a`?" ?\e$,1p#\e(B) ("aV?" ?\e$,1p#\e(B)
- ("a?'" ?\e$,1p"\e(B) ("a?v" ?\e$,1p"\e(B) ("a'?" ?\e$,1p"\e(B) ("av?" ?\e$,1p"\e(B)
- ("a^"  ?\e$,1qv\e(B) ("a\\" ?\e$,1qv\e(B)
- ("a^`"  ?\e$,1p'\e(B) ("a^V"  ?\e$,1p'\e(B) ("a\\`" ?\e$,1p'\e(B) ("a\\V" ?\e$,1p'\e(B)
- ("a`^"  ?\e$,1p'\e(B) ("aV^"  ?\e$,1p'\e(B) ("a`\\" ?\e$,1p'\e(B) ("aV\\" ?\e$,1p'\e(B)
- ("a^'"  ?\e$,1p&\e(B) ("a^v"  ?\e$,1p&\e(B) ("a\\'" ?\e$,1p&\e(B) ("a\\v" ?\e$,1p&\e(B)
- ("a'^"  ?\e$,1p&\e(B) ("av^"  ?\e$,1p&\e(B) ("a'\\" ?\e$,1p&\e(B) ("av\\" ?\e$,1p&\e(B)
-
- ("aJ`" ?\e$,1qA\e(B) ("aJV" ?\e$,1qA\e(B)
- ("aJ'" ?\e$,1q@\e(B) ("aJv" ?\e$,1q@\e(B)
- ("aJ/" ?\e$,1qt\e(B)
- ("aJ/`" ?\e$,1qE\e(B) ("aJ/V" ?\e$,1qE\e(B) ("aJ`/" ?\e$,1qE\e(B) ("aJV/" ?\e$,1qE\e(B)
- ("aJ/'" ?\e$,1qD\e(B) ("aJ/v" ?\e$,1qD\e(B) ("aJ'/" ?\e$,1qD\e(B) ("aJv/" ?\e$,1qD\e(B)
- ("aJ?" ?\e$,1qr\e(B)
- ("aJ?`" ?\e$,1qC\e(B) ("aJ?V" ?\e$,1qC\e(B) ("aJ`?" ?\e$,1qC\e(B) ("aJV?" ?\e$,1qC\e(B)
- ("aJ?'" ?\e$,1qB\e(B) ("aJ?v" ?\e$,1qB\e(B) ("aJ'?" ?\e$,1qB\e(B) ("aJv?" ?\e$,1qB\e(B)
- ("aJ^"  ?\e$,1qw\e(B) ("aJ\\" ?\e$,1qw\e(B)
- ("aJ^`"  ?\e$,1qG\e(B) ("aJ^V"  ?\e$,1qG\e(B) ("aJ\\`" ?\e$,1qG\e(B) ("aJ\\V" ?\e$,1qG\e(B)
- ("aJ`^"  ?\e$,1qG\e(B) ("aJV^"  ?\e$,1qG\e(B) ("aJ`\\" ?\e$,1qG\e(B) ("aJV\\" ?\e$,1qG\e(B)
- ("aJ^'"  ?\e$,1qF\e(B) ("aJ^v"  ?\e$,1qF\e(B) ("aJ\\'" ?\e$,1qF\e(B) ("aJ\\v" ?\e$,1qF\e(B)
- ("aJ'^"  ?\e$,1qF\e(B) ("aJv^"  ?\e$,1qF\e(B) ("aJ'\\" ?\e$,1qF\e(B) ("aJv\\" ?\e$,1qF\e(B)
-
- ("r`" ?\e$,1rE\e(B) ("rV" ?\e$,1rE\e(B)
- ("r'" ?\e$,1rD\e(B) ("rv" ?\e$,1rD\e(B)
-
- ("h`" ?\e$,1pA\e(B) ("hV" ?\e$,1pA\e(B)
- ("h'" ?\e$,1p@\e(B) ("hv" ?\e$,1p@\e(B)
- ("h/" ?\e$,1q5\e(B)
- ("h/`" ?\e$,1pE\e(B) ("h/V" ?\e$,1pE\e(B) ("h`/" ?\e$,1pE\e(B) ("hV/" ?\e$,1pE\e(B)
- ("h/'" ?\e$,1pD\e(B) ("h/v" ?\e$,1pD\e(B) ("h'/" ?\e$,1pD\e(B) ("hv/" ?\e$,1pD\e(B)
- ("h?" ?\e$,1q4\e(B)
- ("h?`" ?\e$,1pC\e(B) ("h?V" ?\e$,1pC\e(B) ("h`?" ?\e$,1pC\e(B) ("hV?" ?\e$,1pC\e(B)
- ("h?'" ?\e$,1pB\e(B) ("h?v" ?\e$,1pB\e(B) ("h'?" ?\e$,1pB\e(B) ("hv?" ?\e$,1pB\e(B)
- ("h^"  ?\e$,1r&\e(B) ("h\\" ?\e$,1r&\e(B)
- ("h^`"  ?\e$,1pG\e(B) ("h^V"  ?\e$,1pG\e(B) ("h\\`" ?\e$,1pG\e(B) ("h\\V" ?\e$,1pG\e(B)
- ("h`^"  ?\e$,1pG\e(B) ("h`\\" ?\e$,1pG\e(B) ("hV^"  ?\e$,1pG\e(B) ("hV\\" ?\e$,1pG\e(B)
- ("h^'"  ?\e$,1pF\e(B) ("h^v"  ?\e$,1pF\e(B) ("h\\'" ?\e$,1pF\e(B) ("h\\v" ?\e$,1pF\e(B)
- ("h'^"  ?\e$,1pF\e(B) ("h'\\" ?\e$,1pF\e(B) ("hv^"  ?\e$,1pF\e(B) ("hv\\" ?\e$,1pF\e(B)
-
- ("J" ?\e$,1&Z\e(B) ; ypogegrammeni
-
- ("hJ`" ?\e$,1qQ\e(B) ("hJV" ?\e$,1qQ\e(B)
- ("hJ'" ?\e$,1qP\e(B) ("hJv" ?\e$,1qP\e(B)
- ("hJ/" ?\e$,1r$\e(B)
- ("hJ`/" ?\e$,1qU\e(B) ("hJV/" ?\e$,1qU\e(B) ("hJ/`" ?\e$,1qU\e(B) ("hJ/V" ?\e$,1qU\e(B)
- ("hJ'/" ?\e$,1qT\e(B) ("hJv/" ?\e$,1qT\e(B) ("hJ/'" ?\e$,1qT\e(B) ("hJ/v" ?\e$,1qT\e(B)
- ("hJ?" ?\e$,1r"\e(B)
- ("hJ`?" ?\e$,1qS\e(B) ("hJV?" ?\e$,1qS\e(B) ("hJ?`" ?\e$,1qS\e(B) ("hJ?V" ?\e$,1qS\e(B)
- ("hJ'?" ?\e$,1qR\e(B) ("hJv?" ?\e$,1qR\e(B) ("hJ?'" ?\e$,1qR\e(B) ("hJ?v" ?\e$,1qR\e(B)
- ("hJ^"  ?\e$,1r'\e(B) ("hJ\\" ?\e$,1r'\e(B)
- ("hJ`^"  ?\e$,1qW\e(B) ("hJ`\\" ?\e$,1qW\e(B) ("hJV^"  ?\e$,1qW\e(B) ("hJV\\" ?\e$,1qW\e(B)
- ("hJ^`"  ?\e$,1qW\e(B) ("hJ\\`" ?\e$,1qW\e(B) ("hJ^V"  ?\e$,1qW\e(B) ("hJ\\V" ?\e$,1qW\e(B)
- ("hJ'^"  ?\e$,1qV\e(B) ("hJ'\\" ?\e$,1qV\e(B) ("hJv^"  ?\e$,1qV\e(B) ("hJv\\" ?\e$,1qV\e(B)
- ("hJ^'"  ?\e$,1qV\e(B) ("hJ\\'" ?\e$,1qV\e(B) ("hJ^v"  ?\e$,1qV\e(B) ("hJ\\v" ?\e$,1qV\e(B)
-
- ("o`" ?\e$,1pa\e(B) ("oV" ?\e$,1pa\e(B)
- ("o'" ?\e$,1p`\e(B) ("ov" ?\e$,1p`\e(B)
- ("o/" ?\e$,1q9\e(B)
- ("o/`" ?\e$,1pe\e(B) ("o/V" ?\e$,1pe\e(B) ("o`/" ?\e$,1pe\e(B) ("oV/" ?\e$,1pe\e(B)
- ("o/'" ?\e$,1pd\e(B) ("o/v" ?\e$,1pd\e(B) ("o'/" ?\e$,1pd\e(B) ("ov/" ?\e$,1pd\e(B)
- ("o?" ?\e$,1q8\e(B)
- ("o?`" ?\e$,1pc\e(B) ("o?V" ?\e$,1pc\e(B) ("o`?" ?\e$,1pc\e(B) ("oV?" ?\e$,1pc\e(B)
- ("o?'" ?\e$,1pb\e(B) ("o?v" ?\e$,1pb\e(B) ("o'?" ?\e$,1pb\e(B) ("ov?" ?\e$,1pb\e(B)
-
- ("u`" ?\e$,1pq\e(B) ("uV" ?\e$,1pq\e(B)
- ("u'" ?\e$,1pp\e(B) ("uv" ?\e$,1pp\e(B)
- ("u/" ?\e$,1q;\e(B)
- ("u/`" ?\e$,1pu\e(B) ("u/V" ?\e$,1pu\e(B) ("u`/" ?\e$,1pu\e(B) ("uV/" ?\e$,1pu\e(B)
- ("u/'" ?\e$,1pt\e(B) ("u/v" ?\e$,1pt\e(B) ("u'/" ?\e$,1pt\e(B) ("uv/" ?\e$,1pt\e(B)
- ("u?" ?\e$,1q:\e(B)
- ("u?`" ?\e$,1ps\e(B) ("u?V" ?\e$,1ps\e(B) ("u`?" ?\e$,1ps\e(B) ("uV?" ?\e$,1ps\e(B)
- ("u?'" ?\e$,1pr\e(B) ("u?v" ?\e$,1pr\e(B) ("u'?" ?\e$,1pr\e(B) ("uv?" ?\e$,1pr\e(B)
- ("u^"  ?\e$,1rF\e(B) ("u\\" ?\e$,1rF\e(B)
- ("u^`"  ?\e$,1pw\e(B) ("u^V"  ?\e$,1pw\e(B) ("u\\`" ?\e$,1pw\e(B) ("u\\V" ?\e$,1pw\e(B)
- ("u`^"  ?\e$,1pw\e(B) ("uV^"  ?\e$,1pw\e(B) ("u`\\" ?\e$,1pw\e(B) ("uV\\" ?\e$,1pw\e(B)
- ("u^'"  ?\e$,1pv\e(B) ("u^v"  ?\e$,1pv\e(B) ("u\\'" ?\e$,1pv\e(B) ("u\\v" ?\e$,1pv\e(B)
- ("u'^"  ?\e$,1pv\e(B) ("uv^"  ?\e$,1pv\e(B) ("u'\\" ?\e$,1pv\e(B) ("uv\\" ?\e$,1pv\e(B)
- ("u\"" ?\e$,1'K\e(B)
- ("u\"/" ?\e$,1rC\e(B) ("u/\"" ?\e$,1rC\e(B)
- ("u\"?" ?\e$,1rB\e(B) ("u?\"" ?\e$,1rB\e(B)
-
- ("w`" ?\e$,1q!\e(B) ("wV" ?\e$,1q!\e(B)
- ("w'" ?\e$,1q \e(B) ("wv" ?\e$,1q \e(B)
- ("w/" ?\e$,1q=\e(B)
- ("w/`" ?\e$,1q%\e(B) ("w/V" ?\e$,1q%\e(B) ("w`/" ?\e$,1q%\e(B) ("wV/" ?\e$,1q%\e(B)
- ("w/'" ?\e$,1q$\e(B) ("w/v" ?\e$,1q$\e(B) ("w'/" ?\e$,1q$\e(B) ("wv/" ?\e$,1q$\e(B)
- ("w?" ?\e$,1q<\e(B)
- ("w?`" ?\e$,1q#\e(B) ("w?V" ?\e$,1q#\e(B) ("w`?" ?\e$,1q#\e(B) ("wV?" ?\e$,1q#\e(B)
- ("w?'" ?\e$,1q"\e(B) ("w?v" ?\e$,1q"\e(B) ("w'?" ?\e$,1q"\e(B) ("wv?" ?\e$,1q"\e(B)
- ("w^"  ?\e$,1rV\e(B) ("w\\" ?\e$,1rV\e(B)
- ("w^`"  ?\e$,1q'\e(B) ("w^V"  ?\e$,1q'\e(B) ("w\\`" ?\e$,1q'\e(B) ("w\\V" ?\e$,1q'\e(B)
- ("w`^"  ?\e$,1q'\e(B) ("wV^"  ?\e$,1q'\e(B) ("w`\\" ?\e$,1q'\e(B) ("wV\\" ?\e$,1q'\e(B)
- ("w^'"  ?\e$,1q&\e(B) ("w^v"  ?\e$,1q&\e(B) ("w\\'" ?\e$,1q&\e(B) ("w\\v" ?\e$,1q&\e(B)
- ("w'^"  ?\e$,1q&\e(B) ("wv^"  ?\e$,1q&\e(B) ("w'\\" ?\e$,1q&\e(B) ("wv\\" ?\e$,1q&\e(B)
-
- ("wJ`" ?\e$,1qa\e(B) ("wJV" ?\e$,1qa\e(B)
- ("wJ'" ?\e$,1q`\e(B) ("wJv" ?\e$,1q`\e(B)
- ("wJ/" ?\e$,1rT\e(B)
- ("wJ/`" ?\e$,1qe\e(B) ("wJ/V" ?\e$,1qe\e(B) ("wJ`/" ?\e$,1qe\e(B) ("wJV/" ?\e$,1qe\e(B)
- ("wJ/'" ?\e$,1qd\e(B) ("wJ/v" ?\e$,1qd\e(B) ("wJ'/" ?\e$,1qd\e(B) ("wJv/" ?\e$,1qd\e(B)
- ("wJ?" ?\e$,1rR\e(B)
- ("wJ?`" ?\e$,1qc\e(B) ("wJ?V" ?\e$,1qc\e(B) ("wJ`?" ?\e$,1qc\e(B) ("wJV?" ?\e$,1qc\e(B)
- ("wJ?'" ?\e$,1qb\e(B) ("wJ?v" ?\e$,1qb\e(B) ("wJ'?" ?\e$,1qb\e(B) ("wJv?" ?\e$,1qb\e(B)
- ("wJ^"  ?\e$,1rW\e(B) ("wJ\\" ?\e$,1rW\e(B)
- ("wJ^`"  ?\e$,1qg\e(B) ("wJ^V"  ?\e$,1qg\e(B) ("wJ\\`" ?\e$,1qg\e(B) ("wJ\\V" ?\e$,1qg\e(B)
- ("wJ`^"  ?\e$,1qg\e(B) ("wJV^"  ?\e$,1qg\e(B) ("wJ`\\" ?\e$,1qg\e(B) ("wJV\\" ?\e$,1qg\e(B)
- ("wJ^'"  ?\e$,1qf\e(B) ("wJ^v"  ?\e$,1qf\e(B) ("wJ\\'" ?\e$,1qf\e(B) ("wJ\\v" ?\e$,1qf\e(B)
- ("wJ'^"  ?\e$,1qf\e(B) ("wJv^"  ?\e$,1qf\e(B) ("wJ'\\" ?\e$,1qf\e(B) ("wJv\\" ?\e$,1qf\e(B)
+ ("!" ?ϡ) ; sampi
+ ("#" ?Ϝ) ; DIGAMMA
+ ("$" ?ϛ) ; stigma
+ ("%" ?ϟ) ; koppa
+ ("&" ?Ϟ) ; KOPPA
+ ("'" ?᾿) ("v" ?᾿) ; psili
+ ("/" ?) ; oxia
+ (":" ?·) ; ano teleia
+ (";" ?;) ; erotimatiko
+ ("\"" ?¨) ; dialytika
+
+ ("A" ?Α)
+ ("B" ?Β)
+ ("C" ?Χ)
+ ("D" ?Δ)
+ ("E" ?Ε)
+ ("F" ?Φ)
+ ("G" ?Γ)
+ ("H" ?Η)
+ ("I" ?Ι)
+ ("wJ" ?)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ ("M" ?Μ)
+ ("N" ?Ν)
+ ("O" ?Ο)
+
+ ("P" ?Π)
+ ("Q" ?Θ)
+ ("R" ?Ρ)
+ ("S" ?Σ)
+ ("T" ?Τ)
+ ("U" ?Υ)
+ ("hJ" ?)
+ ("W" ?Ω)
+ ("X" ?Ξ)
+ ("Y" ?Ψ)
+ ("Z" ?Ζ)
+ ("?" ?) ; varia
+ ("\\" ?῀) ("^" ?῀) ; perispomeni
+
+ ("`" ?῾) ("V" ?῾) ; dasia
+ ("a" ?α)
+ ("b" ?β)
+ ("c" ?χ)
+ ("d" ?δ)
+ ("e" ?ε)
+ ("f" ?φ)
+ ("g" ?γ)
+ ("h" ?η)
+ ("i" ?ι)
+ ("j" ?ς)
+ ("k" ?κ)
+ ("l" ?λ)
+ ("m" ?μ)
+ ("n" ?ν)
+ ("o" ?ο)
+
+ ("p" ?π)
+ ("q" ?θ)
+ ("r" ?ρ)
+ ("s" ?σ)
+ ("t" ?τ)
+ ("u" ?υ)
+ ("aJ" ?)
+ ("w" ?ω)
+ ("x" ?ξ)
+ ("y" ?ψ)
+ ("z" ?ζ)
+
+ ("i`" ?ἱ) ("iV" ?ἱ)
+ ("i'" ?ἰ) ("iv" ?ἰ)
+ ("i/" ?)
+ ("i`/" ?ἵ) ("iV/" ?ἵ) ("i/`" ?ἵ) ("i/V" ?ἵ)
+ ("i'/" ?ἴ) ("iv/" ?ἴ) ("i/'" ?ἴ) ("i/v" ?ἴ)
+ ("i?" ?)
+ ("i`?" ?ἳ) ("iV?" ?ἳ) ("i?`" ?ἳ) ("i?V" ?ἳ)
+ ("i'?" ?ἲ) ("iv?" ?ἲ) ("i?'" ?ἲ) ("i?v" ?ἲ)
+ ("i^"  ?ῖ) ("i\\" ?ῖ)
+ ("i`^"  ?ἷ) ("i`\\" ?ἷ) ("iV^"  ?ἷ) ("iV\\" ?ἷ)
+ ("i^`"  ?ἷ) ("i\\`" ?ἷ) ("i^V"  ?ἷ) ("i\\V" ?ἷ)
+ ("i'^"  ?ἶ) ("i'\\" ?ἶ) ("iv^"  ?ἶ) ("iv\\" ?ἶ)
+ ("i^'"  ?ἶ) ("i\\'" ?ἶ) ("i^v"  ?ἶ) ("i\\v" ?ἶ)
+ ("i\"" ?ϊ)
+ ("i/\"" ?ΐ) ("i\"/" ?ΐ)
+ ("i?\"" ?ῒ) ("i\"?" ?ῒ)
+
+ ("^`"  ?῟) ("^V"  ?῟) ("\\`" ?῟) ("\\V" ?῟)
+ ("`^"  ?῟) ("V^"  ?῟) ("`\\" ?῟) ("V\\" ?῟)
+ ("^'"  ?῏) ("^v"  ?῏) ("\\'" ?῏) ("\\v" ?῏)
+ ("'^"  ?῏) ("v^"  ?῏) ("'\\" ?῏) ("v\\" ?῏)
+ ("/`" ?῞) ("/V" ?῞) ("`/" ?῞) ("V/" ?῞)
+ ("/'" ?῎) ("/v" ?῎) ("'/" ?῎) ("v/" ?῎)
+ ("?`" ?῝) ("?V" ?῝) ("`?" ?῝) ("V?" ?῝)
+ ("?'" ?῍) ("?v" ?῍) ("'?" ?῍) ("v?" ?῍)
+ ("\"/" ?΅) ("/\"" ?΅)
+ ("\"?" ?῭) ("?\"" ?῭)
+
+ ("e`" ?ἑ) ("eV" ?ἑ)
+ ("e'" ?ἐ) ("ev" ?ἐ)
+ ("e/" ?)
+ ("e/`" ?ἕ) ("e/V" ?ἕ) ("e`/" ?ἕ) ("eV/" ?ἕ)
+ ("e/'" ?ἔ) ("e/v" ?ἔ) ("e'/" ?ἔ) ("ev/" ?ἔ)
+ ("e?" ?)
+ ("e?`" ?ἓ) ("e?V" ?ἓ) ("e`?" ?ἓ) ("eV?" ?ἓ)
+ ("e?'" ?ἒ) ("e?v" ?ἒ) ("e'?" ?ἒ) ("ev?" ?ἒ)
+
+ ("a`" ?ἁ) ("aV" ?ἁ)
+ ("a'" ?ἀ) ("av" ?ἀ)
+ ("a/" ?)
+ ("a/`" ?ἅ) ("a/V" ?ἅ) ("a`/" ?ἅ) ("aV/" ?ἅ)
+ ("a/'" ?ἄ) ("a/v" ?ἄ) ("a'/" ?ἄ) ("av/" ?ἄ)
+ ("a?" ?)
+ ("a?`" ?ἃ) ("a?V" ?ἃ) ("a`?" ?ἃ) ("aV?" ?ἃ)
+ ("a?'" ?ἂ) ("a?v" ?ἂ) ("a'?" ?ἂ) ("av?" ?ἂ)
+ ("a^"  ?ᾶ) ("a\\" ?ᾶ)
+ ("a^`"  ?ἇ) ("a^V"  ?ἇ) ("a\\`" ?ἇ) ("a\\V" ?ἇ)
+ ("a`^"  ?ἇ) ("aV^"  ?ἇ) ("a`\\" ?ἇ) ("aV\\" ?ἇ)
+ ("a^'"  ?ἆ) ("a^v"  ?ἆ) ("a\\'" ?ἆ) ("a\\v" ?ἆ)
+ ("a'^"  ?ἆ) ("av^"  ?ἆ) ("a'\\" ?ἆ) ("av\\" ?ἆ)
+
+ ("aJ`" ?ᾁ) ("aJV" ?ᾁ)
+ ("aJ'" ?ᾀ) ("aJv" ?ᾀ)
+ ("aJ/" ?)
+ ("aJ/`" ?ᾅ) ("aJ/V" ?ᾅ) ("aJ`/" ?ᾅ) ("aJV/" ?ᾅ)
+ ("aJ/'" ?ᾄ) ("aJ/v" ?ᾄ) ("aJ'/" ?ᾄ) ("aJv/" ?ᾄ)
+ ("aJ?" ?)
+ ("aJ?`" ?ᾃ) ("aJ?V" ?ᾃ) ("aJ`?" ?ᾃ) ("aJV?" ?ᾃ)
+ ("aJ?'" ?ᾂ) ("aJ?v" ?ᾂ) ("aJ'?" ?ᾂ) ("aJv?" ?ᾂ)
+ ("aJ^"  ?ᾷ) ("aJ\\" ?ᾷ)
+ ("aJ^`"  ?ᾇ) ("aJ^V"  ?ᾇ) ("aJ\\`" ?ᾇ) ("aJ\\V" ?ᾇ)
+ ("aJ`^"  ?ᾇ) ("aJV^"  ?ᾇ) ("aJ`\\" ?ᾇ) ("aJV\\" ?ᾇ)
+ ("aJ^'"  ?ᾆ) ("aJ^v"  ?ᾆ) ("aJ\\'" ?ᾆ) ("aJ\\v" ?ᾆ)
+ ("aJ'^"  ?ᾆ) ("aJv^"  ?ᾆ) ("aJ'\\" ?ᾆ) ("aJv\\" ?ᾆ)
+
+ ("r`" ?ῥ) ("rV" ?ῥ)
+ ("r'" ?ῤ) ("rv" ?ῤ)
+
+ ("h`" ?ἡ) ("hV" ?ἡ)
+ ("h'" ?ἠ) ("hv" ?ἠ)
+ ("h/" ?)
+ ("h/`" ?ἥ) ("h/V" ?ἥ) ("h`/" ?ἥ) ("hV/" ?ἥ)
+ ("h/'" ?ἤ) ("h/v" ?ἤ) ("h'/" ?ἤ) ("hv/" ?ἤ)
+ ("h?" ?)
+ ("h?`" ?ἣ) ("h?V" ?ἣ) ("h`?" ?ἣ) ("hV?" ?ἣ)
+ ("h?'" ?ἢ) ("h?v" ?ἢ) ("h'?" ?ἢ) ("hv?" ?ἢ)
+ ("h^"  ?ῆ) ("h\\" ?ῆ)
+ ("h^`"  ?ἧ) ("h^V"  ?ἧ) ("h\\`" ?ἧ) ("h\\V" ?ἧ)
+ ("h`^"  ?ἧ) ("h`\\" ?ἧ) ("hV^"  ?ἧ) ("hV\\" ?ἧ)
+ ("h^'"  ?ἦ) ("h^v"  ?ἦ) ("h\\'" ?ἦ) ("h\\v" ?ἦ)
+ ("h'^"  ?ἦ) ("h'\\" ?ἦ) ("hv^"  ?ἦ) ("hv\\" ?ἦ)
+
+ ("J" ?ͺ) ; ypogegrammeni
+
+ ("hJ`" ?ᾑ) ("hJV" ?ᾑ)
+ ("hJ'" ?ᾐ) ("hJv" ?ᾐ)
+ ("hJ/" ?)
+ ("hJ`/" ?ᾕ) ("hJV/" ?ᾕ) ("hJ/`" ?ᾕ) ("hJ/V" ?ᾕ)
+ ("hJ'/" ?ᾔ) ("hJv/" ?ᾔ) ("hJ/'" ?ᾔ) ("hJ/v" ?ᾔ)
+ ("hJ?" ?)
+ ("hJ`?" ?ᾓ) ("hJV?" ?ᾓ) ("hJ?`" ?ᾓ) ("hJ?V" ?ᾓ)
+ ("hJ'?" ?ᾒ) ("hJv?" ?ᾒ) ("hJ?'" ?ᾒ) ("hJ?v" ?ᾒ)
+ ("hJ^"  ?ῇ) ("hJ\\" ?ῇ)
+ ("hJ`^"  ?ᾗ) ("hJ`\\" ?ᾗ) ("hJV^"  ?ᾗ) ("hJV\\" ?ᾗ)
+ ("hJ^`"  ?ᾗ) ("hJ\\`" ?ᾗ) ("hJ^V"  ?ᾗ) ("hJ\\V" ?ᾗ)
+ ("hJ'^"  ?ᾖ) ("hJ'\\" ?ᾖ) ("hJv^"  ?ᾖ) ("hJv\\" ?ᾖ)
+ ("hJ^'"  ?ᾖ) ("hJ\\'" ?ᾖ) ("hJ^v"  ?ᾖ) ("hJ\\v" ?ᾖ)
+
+ ("o`" ?ὁ) ("oV" ?ὁ)
+ ("o'" ?ὀ) ("ov" ?ὀ)
+ ("o/" ?)
+ ("o/`" ?ὅ) ("o/V" ?ὅ) ("o`/" ?ὅ) ("oV/" ?ὅ)
+ ("o/'" ?ὄ) ("o/v" ?ὄ) ("o'/" ?ὄ) ("ov/" ?ὄ)
+ ("o?" ?)
+ ("o?`" ?ὃ) ("o?V" ?ὃ) ("o`?" ?ὃ) ("oV?" ?ὃ)
+ ("o?'" ?ὂ) ("o?v" ?ὂ) ("o'?" ?ὂ) ("ov?" ?ὂ)
+
+ ("u`" ?ὑ) ("uV" ?ὑ)
+ ("u'" ?ὐ) ("uv" ?ὐ)
+ ("u/" ?)
+ ("u/`" ?ὕ) ("u/V" ?ὕ) ("u`/" ?ὕ) ("uV/" ?ὕ)
+ ("u/'" ?ὔ) ("u/v" ?ὔ) ("u'/" ?ὔ) ("uv/" ?ὔ)
+ ("u?" ?)
+ ("u?`" ?ὓ) ("u?V" ?ὓ) ("u`?" ?ὓ) ("uV?" ?ὓ)
+ ("u?'" ?ὒ) ("u?v" ?ὒ) ("u'?" ?ὒ) ("uv?" ?ὒ)
+ ("u^"  ?ῦ) ("u\\" ?ῦ)
+ ("u^`"  ?ὗ) ("u^V"  ?ὗ) ("u\\`" ?ὗ) ("u\\V" ?ὗ)
+ ("u`^"  ?ὗ) ("uV^"  ?ὗ) ("u`\\" ?ὗ) ("uV\\" ?ὗ)
+ ("u^'"  ?ὖ) ("u^v"  ?ὖ) ("u\\'" ?ὖ) ("u\\v" ?ὖ)
+ ("u'^"  ?ὖ) ("uv^"  ?ὖ) ("u'\\" ?ὖ) ("uv\\" ?ὖ)
+ ("u\"" ?ϋ)
+ ("u\"/" ?ΰ) ("u/\"" ?ΰ)
+ ("u\"?" ?ῢ) ("u?\"" ?ῢ)
+
+ ("w`" ?ὡ) ("wV" ?ὡ)
+ ("w'" ?ὠ) ("wv" ?ὠ)
+ ("w/" ?)
+ ("w/`" ?ὥ) ("w/V" ?ὥ) ("w`/" ?ὥ) ("wV/" ?ὥ)
+ ("w/'" ?ὤ) ("w/v" ?ὤ) ("w'/" ?ὤ) ("wv/" ?ὤ)
+ ("w?" ?)
+ ("w?`" ?ὣ) ("w?V" ?ὣ) ("w`?" ?ὣ) ("wV?" ?ὣ)
+ ("w?'" ?ὢ) ("w?v" ?ὢ) ("w'?" ?ὢ) ("wv?" ?ὢ)
+ ("w^"  ?ῶ) ("w\\" ?ῶ)
+ ("w^`"  ?ὧ) ("w^V"  ?ὧ) ("w\\`" ?ὧ) ("w\\V" ?ὧ)
+ ("w`^"  ?ὧ) ("wV^"  ?ὧ) ("w`\\" ?ὧ) ("wV\\" ?ὧ)
+ ("w^'"  ?ὦ) ("w^v"  ?ὦ) ("w\\'" ?ὦ) ("w\\v" ?ὦ)
+ ("w'^"  ?ὦ) ("wv^"  ?ὦ) ("w'\\" ?ὦ) ("wv\\" ?ὦ)
+
+ ("wJ`" ?ᾡ) ("wJV" ?ᾡ)
+ ("wJ'" ?ᾠ) ("wJv" ?ᾠ)
+ ("wJ/" ?)
+ ("wJ/`" ?ᾥ) ("wJ/V" ?ᾥ) ("wJ`/" ?ᾥ) ("wJV/" ?ᾥ)
+ ("wJ/'" ?ᾤ) ("wJ/v" ?ᾤ) ("wJ'/" ?ᾤ) ("wJv/" ?ᾤ)
+ ("wJ?" ?)
+ ("wJ?`" ?ᾣ) ("wJ?V" ?ᾣ) ("wJ`?" ?ᾣ) ("wJV?" ?ᾣ)
+ ("wJ?'" ?ᾢ) ("wJ?v" ?ᾢ) ("wJ'?" ?ᾢ) ("wJv?" ?ᾢ)
+ ("wJ^"  ?ῷ) ("wJ\\" ?ῷ)
+ ("wJ^`"  ?ᾧ) ("wJ^V"  ?ᾧ) ("wJ\\`" ?ᾧ) ("wJ\\V" ?ᾧ)
+ ("wJ`^"  ?ᾧ) ("wJV^"  ?ᾧ) ("wJ`\\" ?ᾧ) ("wJV\\" ?ᾧ)
+ ("wJ^'"  ?ᾦ) ("wJ^v"  ?ᾦ) ("wJ\\'" ?ᾦ) ("wJ\\v" ?ᾦ)
+ ("wJ'^"  ?ᾦ) ("wJv^"  ?ᾦ) ("wJ'\\" ?ᾦ) ("wJv\\" ?ᾦ)
  )
 
 ;;
@@ -474,315 +474,315 @@ nil t t nil nil nil nil nil nil nil t)
 
 (quail-define-rules
 
- ("!" ?\e$,1'a\e(B) ; sampi
- ("#" ?\e$,1'\\e(B) ; DIGAMMA
- ("$" ?\e$,1'[\e(B) ; stigma
- ("%" ?\e$,1'_\e(B) ; koppa
- ("&" ?\e$,1'^\e(B) ; KOPPA
- (">" ?\e$,1q\7f\e(B) ; psili
- ("'" ?\e$,1r]\e(B) ; oxia
- (";" ?\e$,1&g\e(B) ; ano teleia
- ("?" ?\e$,1&^\e(B) ; erotimatiko
- ("\"" ?\e,A(\e(B) ; dialytika
- ("|" ?\e$,1&Z\e(B) ; ypogegrammeni
- ("''" ?\e$,1q}\e(B) ; koronis
- ("((" ?\e,A+\e(B) ; #x00ab
- ("))" ?\e,A;\e(B) ; #x00bb
-
- ("A" ?\e$,1&q\e(B)
- ("A|" ?\e$,1q|\e(B)
- ("B" ?\e$,1&r\e(B)
- ("D" ?\e$,1&t\e(B)
- ("E" ?\e$,1&u\e(B)
- ("F" ?\e$,1'&\e(B)
- ("G" ?\e$,1&s\e(B)
- ("H" ?\e$,1&w\e(B)
- ("H|" ?\e$,1r,\e(B)
- ("I" ?\e$,1&y\e(B)
- ("J" ?\e$,1&x\e(B)
- ("K" ?\e$,1&z\e(B)
- ("L" ?\e$,1&{\e(B)
- ("M" ?\e$,1&|\e(B)
- ("N" ?\e$,1&}\e(B)
- ("O" ?\e$,1&\7f\e(B)
- ("P" ?\e$,1' \e(B)
- ("Q" ?\e$,1''\e(B)
- ("R" ?\e$,1'!\e(B)
- ("S" ?\e$,1'#\e(B)
- ("T" ?\e$,1'$\e(B)
- ("U" ?\e$,1'%\e(B)
- ("W" ?\e$,1')\e(B)
- ("W|" ?\e$,1r\\e(B)
- ("X" ?\e$,1&~\e(B)
- ("Y" ?\e$,1'(\e(B)
- ("Z" ?\e$,1&v\e(B)
- ("`" ?\e$,1rO\e(B) ; varia
- ("~" ?\e$,1r \e(B) ; perispomeni
-
- ("<" ?\e$,1r^\e(B) ; dasia
- ("a" ?\e$,1'1\e(B)
- ("a|" ?\e$,1qs\e(B)
- ("b" ?\e$,1'2\e(B)
- ("c" ?\e$,1'B\e(B)
- ("d" ?\e$,1'4\e(B)
- ("e" ?\e$,1'5\e(B)
- ("f" ?\e$,1'F\e(B)
- ("g" ?\e$,1'3\e(B)
- ("h" ?\e$,1'7\e(B)
- ("h|" ?\e$,1r#\e(B)
- ("i" ?\e$,1'9\e(B)
- ("j" ?\e$,1'8\e(B)
- ("k" ?\e$,1':\e(B)
- ("l" ?\e$,1';\e(B)
- ("m" ?\e$,1'<\e(B)
- ("n" ?\e$,1'=\e(B)
- ("o" ?\e$,1'?\e(B)
- ("p" ?\e$,1'@\e(B)
- ("q" ?\e$,1'G\e(B)
- ("r" ?\e$,1'A\e(B)
- ("s" ?\e$,1'C\e(B)
- ("t" ?\e$,1'D\e(B)
- ("u" ?\e$,1'E\e(B)
- ("w" ?\e$,1'I\e(B)
- ("w|" ?\e$,1rS\e(B)
- ("x" ?\e$,1'>\e(B)
- ("y" ?\e$,1'H\e(B)
- ("z" ?\e$,1'6\e(B)
-
- ("<i" ?\e$,1pQ\e(B)
- (">i" ?\e$,1pP\e(B)
- ("'i" ?\e$,1q7\e(B)
- ("<'i" ?\e$,1pU\e(B)
- (">'i" ?\e$,1pT\e(B)
- ("`i" ?\e$,1q6\e(B)
- ("<`i" ?\e$,1pS\e(B)
- (">`i" ?\e$,1pR\e(B)
- ("~i"  ?\e$,1r6\e(B)
- ("<~i"  ?\e$,1pW\e(B)
- (">~i"  ?\e$,1pV\e(B)
- ("\"i" ?\e$,1'J\e(B)
- ("\"'i" ?\e$,1r3\e(B)
- ("\"`i" ?\e$,1r2\e(B)
-
- ("<I" ?\e$,1pY\e(B)
- (">I" ?\e$,1pX\e(B)
- ("'I" ?\e$,1r;\e(B)
- ("<'I" ?\e$,1p]\e(B)
- (">'I" ?\e$,1p\\e(B)
- ("`I" ?\e$,1r:\e(B)
- ("<`I" ?\e$,1p[\e(B)
- (">`I" ?\e$,1pZ\e(B)
- ("<~I"  ?\e$,1p_\e(B)
- (">~I"  ?\e$,1p^\e(B)
- ("\"I" ?\e$,1'*\e(B)
-
- ("<~"  ?\e$,1r?\e(B)
- (">~"  ?\e$,1r/\e(B)
- ("<'" ?\e$,1r>\e(B)
- (">'" ?\e$,1r.\e(B)
- ("<`" ?\e$,1r=\e(B)
- (">`" ?\e$,1r-\e(B)
- ("\"'" ?\e$,1rN\e(B)
- ("\"`" ?\e$,1rM\e(B)
-
- ("<e" ?\e$,1p1\e(B)
- (">e" ?\e$,1p0\e(B)
- ("'e" ?\e$,1q3\e(B)
- ("<'e" ?\e$,1p5\e(B)
- (">'e" ?\e$,1p4\e(B)
- ("`e" ?\e$,1q2\e(B)
- ("<`e" ?\e$,1p3\e(B)
- (">`e" ?\e$,1p2\e(B)
-
- ("<E" ?\e$,1p9\e(B)
- (">E" ?\e$,1p8\e(B)
- ("'E" ?\e$,1r)\e(B)
- ("<'E" ?\e$,1p=\e(B)
- (">'E" ?\e$,1p<\e(B)
- ("`E" ?\e$,1r(\e(B)
- ("<`E" ?\e$,1p;\e(B)
- (">`E" ?\e$,1p:\e(B)
-
- ("<a" ?\e$,1p!\e(B)
- (">a" ?\e$,1p \e(B)
- ("'a" ?\e$,1q1\e(B)
- ("<'a" ?\e$,1p%\e(B)
- (">'a" ?\e$,1p$\e(B)
- ("`a" ?\e$,1q0\e(B)
- ("<`a" ?\e$,1p#\e(B)
- (">`a" ?\e$,1p"\e(B)
- ("~a"  ?\e$,1qv\e(B)
- ("<~a"  ?\e$,1p'\e(B)
- (">~a"  ?\e$,1p&\e(B)
-
- ("<A" ?\e$,1p)\e(B)
- (">A" ?\e$,1p(\e(B)
- ("'A" ?\e$,1q{\e(B)
- ("<'A" ?\e$,1p-\e(B)
- (">'A" ?\e$,1p,\e(B)
- ("`A" ?\e$,1qz\e(B)
- ("<`A" ?\e$,1p+\e(B)
- (">`A" ?\e$,1p*\e(B)
- ("<~A"  ?\e$,1p/\e(B)
- (">~A"  ?\e$,1p.\e(B)
-
- ("<a|" ?\e$,1qA\e(B)
- (">a|" ?\e$,1q@\e(B)
- ("'a|" ?\e$,1qt\e(B)
- ("<'a|" ?\e$,1qE\e(B)
- (">'a|" ?\e$,1qD\e(B)
- ("`a|" ?\e$,1qr\e(B)
- ("<`a|" ?\e$,1qC\e(B)
- (">`a|" ?\e$,1qB\e(B)
- ("~a|"  ?\e$,1qw\e(B)
- ("<~a|"  ?\e$,1qG\e(B)
- (">~a|"  ?\e$,1qF\e(B)
-
- ("<A|" ?\e$,1qI\e(B)
- (">A|" ?\e$,1qH\e(B)
- ("<'A|" ?\e$,1qM\e(B)
- (">'A|" ?\e$,1qL\e(B)
- ("<`A|" ?\e$,1qK\e(B)
- (">`A|" ?\e$,1qJ\e(B)
- ("<~A|"  ?\e$,1qO\e(B)
- (">~A|"  ?\e$,1qN\e(B)
-
- ("<r" ?\e$,1rE\e(B)
- (">r" ?\e$,1rD\e(B)
-
- ("<R" ?\e$,1rL\e(B)
-
- ("<h" ?\e$,1pA\e(B)
- (">h" ?\e$,1p@\e(B)
- ("'h" ?\e$,1q5\e(B)
- ("<'h" ?\e$,1pE\e(B)
- (">'h" ?\e$,1pD\e(B)
- ("`h" ?\e$,1q4\e(B)
- ("<`h" ?\e$,1pC\e(B)
- (">`h" ?\e$,1pB\e(B)
- ("~h"  ?\e$,1r&\e(B)
- ("<~h"  ?\e$,1pG\e(B)
- (">~h"  ?\e$,1pF\e(B)
-
- ("<H" ?\e$,1pI\e(B)
- (">H" ?\e$,1pH\e(B)
- ("'H" ?\e$,1r+\e(B)
- ("<'H" ?\e$,1pM\e(B)
- (">'H" ?\e$,1pL\e(B)
- ("`H" ?\e$,1r*\e(B)
- ("<`H" ?\e$,1pK\e(B)
- (">`H" ?\e$,1pJ\e(B)
- ("<~H"  ?\e$,1pO\e(B)
- (">~H"  ?\e$,1pN\e(B)
-
- ("|" ?\e$,1&Z\e(B) ; ypogegrammeni
-
- ("<h|" ?\e$,1qQ\e(B)
- (">h|" ?\e$,1qP\e(B)
- ("'h|" ?\e$,1r$\e(B)
- ("<'h|" ?\e$,1qU\e(B)
- (">'h|" ?\e$,1qT\e(B)
- ("`h|" ?\e$,1r"\e(B)
- ("<`h|" ?\e$,1qS\e(B)
- (">`h|" ?\e$,1qR\e(B)
- ("~h|"  ?\e$,1r'\e(B)
- ("<~h|"  ?\e$,1qW\e(B)
- (">~h|"  ?\e$,1qV\e(B)
-
- ("<H|" ?\e$,1qY\e(B)
- (">H|" ?\e$,1qX\e(B)
- ("<'H|" ?\e$,1q]\e(B)
- (">'H|" ?\e$,1q\\e(B)
- ("<`H|" ?\e$,1q[\e(B)
- (">`H|" ?\e$,1qZ\e(B)
- ("<~H|"  ?\e$,1q_\e(B)
- (">~H|"  ?\e$,1q^\e(B)
-
- ("<o" ?\e$,1pa\e(B)
- (">o" ?\e$,1p`\e(B)
- ("'o" ?\e$,1q9\e(B)
- ("<'o" ?\e$,1pe\e(B)
- (">'o" ?\e$,1pd\e(B)
- ("`o" ?\e$,1q8\e(B)
- ("<`o" ?\e$,1pc\e(B)
- (">`o" ?\e$,1pb\e(B)
-
- ("<O" ?\e$,1pi\e(B)
- (">O" ?\e$,1ph\e(B)
- ("'O" ?\e$,1rY\e(B)
- ("<'O" ?\e$,1pm\e(B)
- (">'O" ?\e$,1pl\e(B)
- ("`O" ?\e$,1rX\e(B)
- ("<`O" ?\e$,1pk\e(B)
- (">`O" ?\e$,1pj\e(B)
-
- ("<u"   ?\e$,1pq\e(B)
- (">u"   ?\e$,1pp\e(B)
- ("'u"   ?\e$,1q;\e(B)
- ("<'u"  ?\e$,1pu\e(B)
- (">'u"  ?\e$,1pt\e(B)
- ("`u"   ?\e$,1q:\e(B)
- ("<`u"  ?\e$,1ps\e(B)
- (">`u"  ?\e$,1pr\e(B)
- ("~u"   ?\e$,1rF\e(B)
- ("<~u"  ?\e$,1pw\e(B)
- (">~u"  ?\e$,1pv\e(B)
- ("\"u"  ?\e$,1'K\e(B)
- ("\"'u" ?\e$,1rC\e(B)
- ("`\"u" ?\e$,1rB\e(B)
-
- ("<U"   ?\e$,1py\e(B)
- ("'U"   ?\e$,1rK\e(B)
- ("<'U"  ?\e$,1p}\e(B)
- ("`U"   ?\e$,1rJ\e(B)
- ("<`U"  ?\e$,1p{\e(B)
- ("<~U"  ?\e$,1p\7f\e(B)
- ("\"U"  ?\e$,1'+\e(B)
-
- ("<w"  ?\e$,1q!\e(B)
- (">w"  ?\e$,1q \e(B)
- ("'w"  ?\e$,1q=\e(B)
- ("<'w" ?\e$,1q%\e(B)
- (">'w" ?\e$,1q$\e(B)
- ("`w"  ?\e$,1q<\e(B)
- ("<`w" ?\e$,1q#\e(B)
- (">`w" ?\e$,1q"\e(B)
- ("~w"  ?\e$,1rV\e(B)
- ("<~w" ?\e$,1q'\e(B)
- (">~w" ?\e$,1q&\e(B)
-
- ("<W"  ?\e$,1q)\e(B)
- (">W"  ?\e$,1q(\e(B)
- ("'W"  ?\e$,1r[\e(B)
- ("<'W" ?\e$,1q-\e(B)
- (">'W" ?\e$,1q,\e(B)
- ("`W"  ?\e$,1rZ\e(B)
- ("<`W" ?\e$,1q+\e(B)
- (">`W" ?\e$,1q*\e(B)
- ("<~W" ?\e$,1q/\e(B)
- (">~W" ?\e$,1q.\e(B)
-
- ("<w|"         ?\e$,1qa\e(B)
- (">w|"         ?\e$,1q`\e(B)
- ("'w|"         ?\e$,1rT\e(B)
- ("<'w|" ?\e$,1qe\e(B)
- (">'w|" ?\e$,1qd\e(B)
- ("`w|"  ?\e$,1rR\e(B)
- ("<`w|" ?\e$,1qc\e(B)
- (">`w|" ?\e$,1qb\e(B)
- ("~w|"         ?\e$,1rW\e(B)
- ("<~w|" ?\e$,1qg\e(B)
- (">~w|" ?\e$,1qf\e(B)
-
- ("<W|"         ?\e$,1qi\e(B)
- (">W|"         ?\e$,1qh\e(B)
- ("'W|"         ?\e$,1rT\e(B)
- ("<'W|" ?\e$,1qm\e(B)
- (">'W|" ?\e$,1ql\e(B)
- ("<`W|" ?\e$,1qk\e(B)
- (">`W|" ?\e$,1qj\e(B)
- ("<~W|" ?\e$,1qo\e(B)
- (">~W|" ?\e$,1qn\e(B)
+ ("!" ?ϡ) ; sampi
+ ("#" ?Ϝ) ; DIGAMMA
+ ("$" ?ϛ) ; stigma
+ ("%" ?ϟ) ; koppa
+ ("&" ?Ϟ) ; KOPPA
+ (">" ?᾿) ; psili
+ ("'" ?) ; oxia
+ (";" ?·) ; ano teleia
+ ("?" ?;) ; erotimatiko
+ ("\"" ?¨) ; dialytika
+ ("|" ?ͺ) ; ypogegrammeni
+ ("''" ?) ; koronis
+ ("((" ?«) ; #x00ab
+ ("))" ?») ; #x00bb
+
+ ("A" ?Α)
+ ("A|" ?)
+ ("B" ?Β)
+ ("D" ?Δ)
+ ("E" ?Ε)
+ ("F" ?Φ)
+ ("G" ?Γ)
+ ("H" ?Η)
+ ("H|" ?)
+ ("I" ?Ι)
+ ("J" ?Θ)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ ("M" ?Μ)
+ ("N" ?Ν)
+ ("O" ?Ο)
+ ("P" ?Π)
+ ("Q" ?Χ)
+ ("R" ?Ρ)
+ ("S" ?Σ)
+ ("T" ?Τ)
+ ("U" ?Υ)
+ ("W" ?Ω)
+ ("W|" ?)
+ ("X" ?Ξ)
+ ("Y" ?Ψ)
+ ("Z" ?Ζ)
+ ("`" ?) ; varia
+ ("~" ?) ; perispomeni
+
+ ("<" ?) ; dasia
+ ("a" ?α)
+ ("a|" ?)
+ ("b" ?β)
+ ("c" ?ς)
+ ("d" ?δ)
+ ("e" ?ε)
+ ("f" ?φ)
+ ("g" ?γ)
+ ("h" ?η)
+ ("h|" ?)
+ ("i" ?ι)
+ ("j" ?θ)
+ ("k" ?κ)
+ ("l" ?λ)
+ ("m" ?μ)
+ ("n" ?ν)
+ ("o" ?ο)
+ ("p" ?π)
+ ("q" ?χ)
+ ("r" ?ρ)
+ ("s" ?σ)
+ ("t" ?τ)
+ ("u" ?υ)
+ ("w" ?ω)
+ ("w|" ?)
+ ("x" ?ξ)
+ ("y" ?ψ)
+ ("z" ?ζ)
+
+ ("<i" ?)
+ (">i" ?)
+ ("'i" ?)
+ ("<'i" ?)
+ (">'i" ?)
+ ("`i" ?)
+ ("<`i" ?)
+ (">`i" ?)
+ ("~i"  ?)
+ ("<~i"  ?)
+ (">~i"  ?)
+ ("\"i" ?ϊ)
+ ("\"'i" ?)
+ ("\"`i" ?)
+
+ ("<I" ?)
+ (">I" ?)
+ ("'I" ?)
+ ("<'I" ?)
+ (">'I" ?)
+ ("`I" ?)
+ ("<`I" ?)
+ (">`I" ?)
+ ("<~I"  ?Ἷ)
+ (">~I"  ?)
+ ("\"I" ?Ϊ)
+
+ ("<~"  ?)
+ (">~"  ?)
+ ("<'" ?)
+ (">'" ?)
+ ("<`" ?)
+ (">`" ?)
+ ("\"'" ?)
+ ("\"`" ?)
+
+ ("<e" ?)
+ (">e" ?)
+ ("'e" ?)
+ ("<'e" ?)
+ (">'e" ?)
+ ("`e" ?)
+ ("<`e" ?)
+ (">`e" ?)
+
+ ("<E" ?)
+ (">E" ?)
+ ("'E" ?)
+ ("<'E" ?)
+ (">'E" ?)
+ ("`E" ?)
+ ("<`E" ?)
+ (">`E" ?)
+
+ ("<a" ?)
+ (">a" ?)
+ ("'a" ?)
+ ("<'a" ?)
+ (">'a" ?)
+ ("`a" ?)
+ ("<`a" ?)
+ (">`a" ?)
+ ("~a"  ?)
+ ("<~a"  ?)
+ (">~a"  ?)
+
+ ("<A" ?)
+ (">A" ?)
+ ("'A" ?)
+ ("<'A" ?)
+ (">'A" ?)
+ ("`A" ?)
+ ("<`A" ?)
+ (">`A" ?)
+ ("<~A"  ?)
+ (">~A"  ?)
+
+ ("<a|" ?)
+ (">a|" ?)
+ ("'a|" ?)
+ ("<'a|" ?)
+ (">'a|" ?)
+ ("`a|" ?)
+ ("<`a|" ?)
+ (">`a|" ?)
+ ("~a|"  ?)
+ ("<~a|"  ?)
+ (">~a|"  ?)
+
+ ("<A|" ?)
+ (">A|" ?)
+ ("<'A|" ?)
+ (">'A|" ?)
+ ("<`A|" ?)
+ (">`A|" ?)
+ ("<~A|"  ?)
+ (">~A|"  ?)
+
+ ("<r" ?)
+ (">r" ?)
+
+ ("<R" ?)
+
+ ("<h" ?)
+ (">h" ?)
+ ("'h" ?)
+ ("<'h" ?)
+ (">'h" ?)
+ ("`h" ?)
+ ("<`h" ?)
+ (">`h" ?)
+ ("~h"  ?)
+ ("<~h"  ?)
+ (">~h"  ?)
+
+ ("<H" ?)
+ (">H" ?)
+ ("'H" ?)
+ ("<'H" ?)
+ (">'H" ?)
+ ("`H" ?)
+ ("<`H" ?)
+ (">`H" ?)
+ ("<~H"  ?)
+ (">~H"  ?)
+
+ ("|" ?ͺ) ; ypogegrammeni
+
+ ("<h|" ?)
+ (">h|" ?)
+ ("'h|" ?)
+ ("<'h|" ?)
+ (">'h|" ?)
+ ("`h|" ?)
+ ("<`h|" ?)
+ (">`h|" ?)
+ ("~h|"  ?)
+ ("<~h|"  ?)
+ (">~h|"  ?)
+
+ ("<H|" ?)
+ (">H|" ?)
+ ("<'H|" ?)
+ (">'H|" ?)
+ ("<`H|" ?)
+ (">`H|" ?)
+ ("<~H|"  ?)
+ (">~H|"  ?)
+
+ ("<o" ?)
+ (">o" ?)
+ ("'o" ?)
+ ("<'o" ?)
+ (">'o" ?)
+ ("`o" ?)
+ ("<`o" ?)
+ (">`o" ?)
+
+ ("<O" ?)
+ (">O" ?)
+ ("'O" ?)
+ ("<'O" ?)
+ (">'O" ?)
+ ("`O" ?)
+ ("<`O" ?)
+ (">`O" ?)
+
+ ("<u"   ?)
+ (">u"   ?)
+ ("'u"   ?)
+ ("<'u"  ?)
+ (">'u"  ?)
+ ("`u"   ?)
+ ("<`u"  ?)
+ (">`u"  ?)
+ ("~u"   ?)
+ ("<~u"  ?)
+ (">~u"  ?)
+ ("\"u"  ?ϋ)
+ ("\"'u" ?)
+ ("`\"u" ?)
+
+ ("<U"   ?)
+ ("'U"   ?)
+ ("<'U"  ?)
+ ("`U"   ?)
+ ("<`U"  ?)
+ ("<~U"  ?)
+ ("\"U"  ?Ϋ)
+
+ ("<w"  ?)
+ (">w"  ?)
+ ("'w"  ?)
+ ("<'w" ?)
+ (">'w" ?)
+ ("`w"  ?)
+ ("<`w" ?)
+ (">`w" ?)
+ ("~w"  ?)
+ ("<~w" ?)
+ (">~w" ?)
+
+ ("<W"  ?)
+ (">W"  ?)
+ ("'W"  ?)
+ ("<'W" ?)
+ (">'W" ?)
+ ("`W"  ?)
+ ("<`W" ?)
+ (">`W" ?)
+ ("<~W" ?)
+ (">~W" ?)
+
+ ("<w|"         ?)
+ (">w|"         ?)
+ ("'w|"         ?)
+ ("<'w|" ?)
+ (">'w|" ?)
+ ("`w|"  ?)
+ ("<`w|" ?)
+ (">`w|" ?)
+ ("~w|"         ?)
+ ("<~w|" ?)
+ (">~w|" ?)
+
+ ("<W|"         ?)
+ (">W|"         ?)
+ ("'W|"         ?)
+ ("<'W|" ?)
+ (">'W|" ?)
+ ("<`W|" ?)
+ (">`W|" ?)
+ ("<~W|" ?)
+ (">~W|" ?)
  )
 
 ;;
@@ -795,370 +795,370 @@ nil t t nil nil nil nil nil nil nil t)
 
  ("{((}" ?\() ("((" ?\() ; #x0028
  ("{))}" ?\)) ("))" ?\)) ; #x0029
- ("<<" ?\e,A+\e(B) ; #x00ab
- (">>" ?\e,A;\e(B) ; #x00bb
-
- ("-" ?\e$,1rp\e(B) ; #x2010
- ("---" ?\e$,1rt\e(B) ; #x2014
- ("||" ?\e$,1rv\e(B) ; #x2016
- ("{`}" ?\e$,1rx\e(B) ("`" ?\e$,1rx\e(B) ; #x2018
- ("{'}" ?\e$,1ry\e(B) ("'" ?\e$,1ry\e(B) ; #x2019
- ("{``}" ?\e$,1r|\e(B) ("``" ?\e$,1r|\e(B) ; #x201c
- ("{''}" ?\e$,1r}\e(B) ("''" ?\e$,1r}\e(B) ; #x201d
- ("{\\dag}" ?\e$,1s \e(B) ("\\dag" ?\e$,1s \e(B) ; #x2020
- ("{\\ddag}" ?\e$,1s!\e(B) ("\\ddag" ?\e$,1s!\e(B) ; #x2021
- ("<" ?\e$,1s9\e(B) ; #x2039
- (">" ?\e$,1s:\e(B) ; #x203a
- ("$\\leftarrow$" ?\e$,1vp\e(B) ; #x2190
- ("$\\rightarrow$" ?\e$,1vr\e(B) ; #x2192
-
- ("?" ?\e$,1&^\e(B) ; #x037e ; erotimatiko
- (";" ?\e$,1&g\e(B) ; #x0387 ; ano teleia
- ("|" ?\e$,1&Z\e(B) ; #x037a ; ypogegrammeni
-
- ("A" ?\e$,1&q\e(B)
- ("B" ?\e$,1&r\e(B)
- ("G" ?\e$,1&s\e(B)
- ("D" ?\e$,1&t\e(B)
- ("E" ?\e$,1&u\e(B)
- ("Z" ?\e$,1&v\e(B)
- ("H" ?\e$,1&w\e(B)
- ("Q" ?\e$,1&x\e(B)
- ("I" ?\e$,1&y\e(B)
- ("K" ?\e$,1&z\e(B)
- ("L" ?\e$,1&{\e(B)
- ("M" ?\e$,1&|\e(B)
- ("N" ?\e$,1&}\e(B)
- ("C" ?\e$,1&~\e(B)
- ("O" ?\e$,1&\7f\e(B)
- ("P" ?\e$,1' \e(B)
- ("R" ?\e$,1'!\e(B)
- ("S" ?\e$,1'#\e(B)
- ("T" ?\e$,1'$\e(B)
- ("U" ?\e$,1'%\e(B)
- ("F" ?\e$,1'&\e(B)
- ("X" ?\e$,1''\e(B)
- ("Y" ?\e$,1'(\e(B)
- ("W" ?\e$,1')\e(B)
-
- ("a" ?\e$,1'1\e(B)
- ("b" ?\e$,1'2\e(B)
- ("g" ?\e$,1'3\e(B)
- ("d" ?\e$,1'4\e(B)
- ("e" ?\e$,1'5\e(B)
- ("z" ?\e$,1'6\e(B)
- ("h" ?\e$,1'7\e(B)
- ("q" ?\e$,1'8\e(B)
- ("i" ?\e$,1'9\e(B)
- ("k" ?\e$,1':\e(B)
- ("l" ?\e$,1';\e(B)
- ("m" ?\e$,1'<\e(B)
- ("n" ?\e$,1'=\e(B)
- ("c" ?\e$,1'>\e(B)
- ("o" ?\e$,1'?\e(B)
- ("p" ?\e$,1'@\e(B)
- ("r" ?\e$,1'A\e(B)
- ("j" ?\e$,1'B\e(B) ("s " ["\e$,1'B\e(B "]) ("s," ["\e$,1'B\e(B,"]) ("s." ["\e$,1'B\e(B."]) ("s?" ["\e$,1'B&^\e(B"]) ("s;" ["\e$,1'B&g\e(B"])
- ("s|" ?\e$,1'C\e(B) ("s" ?\e$,1'C\e(B)
- ("t" ?\e$,1'D\e(B)
- ("u" ?\e$,1'E\e(B)
- ("f" ?\e$,1'F\e(B)
- ("x" ?\e$,1'G\e(B)
- ("y" ?\e$,1'H\e(B)
- ("w" ?\e$,1'I\e(B)
-
- ("i+" ?\e$,1'J\e(B)
- ("u+" ?\e$,1'K\e(B)
- ("V" ?\e$,1'\\e(B) ; DIGAMMA
- ("v" ?\e$,1']\e(B) ; digamma
- ("K+" ?\e$,1'^\e(B) ; KOPPA
- ("k+" ?\e$,1'_\e(B) ; koppa
- ("S+" ?\e$,1'`\e(B) ; SAMPI
- ("s+" ?\e$,1'a\e(B) ; sampi
- ("c+" ?\e$,1'r\e(B) ; lunate sigma
-
- ("a)" ?\e$,1p \e(B)
- ("a(" ?\e$,1p!\e(B)
- ("a)`" ?\e$,1p"\e(B)
- ("a(`" ?\e$,1p#\e(B)
- ("a)'" ?\e$,1p$\e(B)
- ("a('" ?\e$,1p%\e(B)
- ("a)=" ?\e$,1p&\e(B)
- ("a(=" ?\e$,1p'\e(B)
-
- (")A" ?\e$,1p(\e(B)
- ("(A" ?\e$,1p)\e(B)
- (")`A" ?\e$,1p*\e(B)
- ("(`A" ?\e$,1p+\e(B)
- (")'A" ?\e$,1p,\e(B)
- ("('A" ?\e$,1p-\e(B)
- (")=A" ?\e$,1p.\e(B)
- ("(=A" ?\e$,1p/\e(B)
-
- ("e)" ?\e$,1p0\e(B)
- ("e(" ?\e$,1p1\e(B)
- ("e)`" ?\e$,1p2\e(B)
- ("e(`" ?\e$,1p3\e(B)
- ("e)'" ?\e$,1p4\e(B)
- ("e('" ?\e$,1p5\e(B)
-
- (")E" ?\e$,1p8\e(B)
- ("(E" ?\e$,1p9\e(B)
- (")`E" ?\e$,1p:\e(B)
- ("(`E" ?\e$,1p;\e(B)
- (")'E" ?\e$,1p<\e(B)
- ("('E" ?\e$,1p=\e(B)
-
- ("h)" ?\e$,1p@\e(B)
- ("h(" ?\e$,1pA\e(B)
- ("h)`" ?\e$,1pB\e(B)
- ("h(`" ?\e$,1pC\e(B)
- ("h)'" ?\e$,1pD\e(B)
- ("h('" ?\e$,1pE\e(B)
- ("h)=" ?\e$,1pF\e(B)
- ("h(=" ?\e$,1pG\e(B)
-
- (")H" ?\e$,1pH\e(B)
- ("(H" ?\e$,1pI\e(B)
- (")`H" ?\e$,1pJ\e(B)
- ("(`H" ?\e$,1pK\e(B)
- (")'H" ?\e$,1pL\e(B)
- ("('H" ?\e$,1pM\e(B)
- (")=H" ?\e$,1pN\e(B)
- ("(=H" ?\e$,1pO\e(B)
-
- ("i)" ?\e$,1pP\e(B)
- ("i(" ?\e$,1pQ\e(B)
- ("i)`" ?\e$,1pR\e(B)
- ("i(`" ?\e$,1pS\e(B)
- ("i)'" ?\e$,1pT\e(B)
- ("i('" ?\e$,1pU\e(B)
- ("i)=" ?\e$,1pV\e(B)
- ("i(=" ?\e$,1pW\e(B)
-
- (")I" ?\e$,1pX\e(B)
- ("(I" ?\e$,1pY\e(B)
- (")`I" ?\e$,1pZ\e(B)
- ("(`I" ?\e$,1p[\e(B)
- (")'I" ?\e$,1p\\e(B)
- ("('I" ?\e$,1p]\e(B)
- (")=I" ?\e$,1p^\e(B)
- ("(=I" ?\e$,1p_\e(B)
-
- ("o)" ?\e$,1p`\e(B)
- ("o(" ?\e$,1pa\e(B)
- ("o)`" ?\e$,1pb\e(B)
- ("o(`" ?\e$,1pc\e(B)
- ("o)'" ?\e$,1pd\e(B)
- ("o('" ?\e$,1pe\e(B)
-
- (")O" ?\e$,1ph\e(B)
- ("(O" ?\e$,1pi\e(B)
- (")`O" ?\e$,1pj\e(B)
- ("(`O" ?\e$,1pk\e(B)
- (")'O" ?\e$,1pl\e(B)
- ("('O" ?\e$,1pm\e(B)
-
- ("u)" ?\e$,1pp\e(B)
- ("u(" ?\e$,1pq\e(B)
- ("u)`" ?\e$,1pr\e(B)
- ("u(`" ?\e$,1ps\e(B)
- ("u)'" ?\e$,1pt\e(B)
- ("u('" ?\e$,1pu\e(B)
- ("u)=" ?\e$,1pv\e(B)
- ("u(=" ?\e$,1pw\e(B)
-
- ("(U" ?\e$,1py\e(B)
- ("(`U" ?\e$,1p{\e(B)
- ("('U" ?\e$,1p}\e(B)
- ("(=U" ?\e$,1p\7f\e(B)
-
- ("w)" ?\e$,1q \e(B)
- ("w(" ?\e$,1q!\e(B)
- ("w)`" ?\e$,1q"\e(B)
- ("w(`" ?\e$,1q#\e(B)
- ("w)'" ?\e$,1q$\e(B)
- ("w('" ?\e$,1q%\e(B)
- ("w)=" ?\e$,1q&\e(B)
- ("w(=" ?\e$,1q'\e(B)
-
- (")W" ?\e$,1q(\e(B)
- ("(W" ?\e$,1q)\e(B)
- (")`W" ?\e$,1q*\e(B)
- ("(`W" ?\e$,1q+\e(B)
- (")'W" ?\e$,1q,\e(B)
- ("('W" ?\e$,1q-\e(B)
- (")=W" ?\e$,1q.\e(B)
- ("(=W" ?\e$,1q/\e(B)
-
- ("a`" ?\e$,1q0\e(B)
- ("a'" ?\e$,1q1\e(B)
- ("e`" ?\e$,1q2\e(B)
- ("e'" ?\e$,1q3\e(B)
- ("h`" ?\e$,1q4\e(B)
- ("h'" ?\e$,1q5\e(B)
- ("i`" ?\e$,1q6\e(B)
- ("i'" ?\e$,1q7\e(B)
- ("o`" ?\e$,1q8\e(B)
- ("o'" ?\e$,1q9\e(B)
- ("u`" ?\e$,1q:\e(B)
- ("u'" ?\e$,1q;\e(B)
- ("w`" ?\e$,1q<\e(B)
- ("w'" ?\e$,1q=\e(B)
-
- ("a)|" ?\e$,1q@\e(B)
- ("a(|" ?\e$,1qA\e(B)
- ("a)`|" ?\e$,1qB\e(B)
- ("a(`|" ?\e$,1qC\e(B)
- ("a)'|" ?\e$,1qD\e(B)
- ("a('|" ?\e$,1qE\e(B)
- ("a)=|" ?\e$,1qF\e(B)
- ("a(=|" ?\e$,1qG\e(B)
-
- (")A|" ?\e$,1qH\e(B)
- ("(A|" ?\e$,1qI\e(B)
- (")`A|" ?\e$,1qJ\e(B)
- ("(`A|" ?\e$,1qK\e(B)
- (")'A|" ?\e$,1qL\e(B)
- ("('A|" ?\e$,1qM\e(B)
- (")=A|" ?\e$,1qN\e(B)
- ("(=A|" ?\e$,1qO\e(B)
-
- ("h)|" ?\e$,1qP\e(B)
- ("h(|" ?\e$,1qQ\e(B)
- ("h)`|" ?\e$,1qR\e(B)
- ("h(`|" ?\e$,1qS\e(B)
- ("h)'|" ?\e$,1qT\e(B)
- ("h('|" ?\e$,1qU\e(B)
- ("h)=|" ?\e$,1qV\e(B)
- ("h(=|" ?\e$,1qW\e(B)
-
- (")H|" ?\e$,1qX\e(B)
- ("(H|" ?\e$,1qY\e(B)
- (")`H|" ?\e$,1qZ\e(B)
- ("(`H|" ?\e$,1q[\e(B)
- (")'H|" ?\e$,1q\\e(B)
- ("('H|" ?\e$,1q]\e(B)
- (")=H|" ?\e$,1q^\e(B)
- ("(=H|" ?\e$,1q_\e(B)
-
- ("w)|" ?\e$,1q`\e(B)
- ("w(|" ?\e$,1qa\e(B)
- ("w)`|" ?\e$,1qb\e(B)
- ("w(`|" ?\e$,1qc\e(B)
- ("w)'|" ?\e$,1qd\e(B)
- ("w('|" ?\e$,1qe\e(B)
- ("w)=|" ?\e$,1qf\e(B)
- ("w(=|" ?\e$,1qg\e(B)
-
- (")W|" ?\e$,1qh\e(B)
- ("(W|" ?\e$,1qi\e(B)
- (")`W|" ?\e$,1qj\e(B)
- ("(`W|" ?\e$,1qk\e(B)
- (")'W|" ?\e$,1ql\e(B)
- ("('W|" ?\e$,1qm\e(B)
- (")=W|" ?\e$,1qn\e(B)
- ("(=W|" ?\e$,1qo\e(B)
-
- ("a`|" ?\e$,1qr\e(B)
- ("a|" ?\e$,1qs\e(B)
- ("a'|" ?\e$,1qt\e(B)
- ("a=" ?\e$,1qv\e(B)
- ("a=|" ?\e$,1qw\e(B)
-
- ("`A" ?\e$,1qz\e(B)
- ("'A" ?\e$,1q{\e(B)
- ("A|" ?\e$,1q|\e(B)
-
- (")" ?\e$,1q\7f\e(B) ; #x1fbf ; psili
- ("=" ?\e$,1r \e(B) ; #x1fc0 ; perispomeni
- ("+=" ?\e$,1r!\e(B) ; #x1fc1
-
- ("h`|" ?\e$,1r"\e(B)
- ("h|" ?\e$,1r#\e(B)
- ("h'|" ?\e$,1r$\e(B)
- ("h=" ?\e$,1r&\e(B)
- ("h=|" ?\e$,1r'\e(B)
-
- ("`E" ?\e$,1r(\e(B)
- ("'E" ?\e$,1r)\e(B)
-
- ("`H" ?\e$,1r*\e(B)
- ("'H" ?\e$,1r+\e(B)
- ("H|" ?\e$,1r,\e(B)
-
- (")`" ?\e$,1r-\e(B) ; #x1fcd
- (")'" ?\e$,1r.\e(B) ; #x1fce
- (")=" ?\e$,1r/\e(B) ; #x1fcf
-
- ("i+`" ?\e$,1r2\e(B)
- ("i+'" ?\e$,1r3\e(B)
- ("i=" ?\e$,1r6\e(B)
- ("i+=" ?\e$,1r7\e(B)
-
- ("`I" ?\e$,1r:\e(B)
- ("'I" ?\e$,1r;\e(B)
-
- ("(`" ?\e$,1r=\e(B) ; #x1fdd
- ("('" ?\e$,1r>\e(B) ; #x1fde
- ("(=" ?\e$,1r?\e(B) ; #x1fdf
-
- ("u+`" ?\e$,1rB\e(B)
- ("u+'" ?\e$,1rC\e(B)
-
- ("r)" ?\e$,1rD\e(B)
- ("r(" ?\e$,1rE\e(B)
-
- ("u=" ?\e$,1rF\e(B)
- ("u+=" ?\e$,1rG\e(B)
-
- ("`U" ?\e$,1rJ\e(B)
- ("'U" ?\e$,1rK\e(B)
-
- ("`R" ?\e$,1rL\e(B)
-
- ("+`" ?\e$,1rM\e(B) ; #x1fed
- ("+'" ?\e$,1rN\e(B) ; #x1fee
- ("`" ?\e$,1rO\e(B) ; #x1fef ; varia
-
- ("w`|" ?\e$,1rR\e(B)
- ("w|" ?\e$,1rS\e(B)
- ("w'|" ?\e$,1rT\e(B)
- ("w=" ?\e$,1rV\e(B)
- ("w=|" ?\e$,1rW\e(B)
-
- ("`O" ?\e$,1rX\e(B)
- ("'O" ?\e$,1rY\e(B)
-
- ("`W" ?\e$,1rZ\e(B)
- ("'W" ?\e$,1r[\e(B)
- ("W|" ?\e$,1r\\e(B)
-
- ("'" ?\e$,1r]\e(B) ; #x1ffd ; oxia
- ("(" ?\e$,1r^\e(B) ;  #x1ffe ; dasia
+ ("<<" ?«) ; #x00ab
+ (">>" ?») ; #x00bb
+
+ ("-" ?) ; #x2010
+ ("---" ?) ; #x2014
+ ("||" ?) ; #x2016
+ ("{`}" ?‘) ("`" ?‘) ; #x2018
+ ("{'}" ?’) ("'" ?’) ; #x2019
+ ("{``}" ?“) ("``" ?“) ; #x201c
+ ("{''}" ?”) ("''" ?”) ; #x201d
+ ("{\\dag}" ?†) ("\\dag" ?†) ; #x2020
+ ("{\\ddag}" ?‡) ("\\ddag" ?‡) ; #x2021
+ ("<" ?) ; #x2039
+ (">" ?) ; #x203a
+ ("$\\leftarrow$" ?) ; #x2190
+ ("$\\rightarrow$" ?) ; #x2192
+
+ ("?" ?;) ; #x037e ; erotimatiko
+ (";" ?·) ; #x0387 ; ano teleia
+ ("|" ?ͺ) ; #x037a ; ypogegrammeni
+
+ ("A" ?Α)
+ ("B" ?Β)
+ ("G" ?Γ)
+ ("D" ?Δ)
+ ("E" ?Ε)
+ ("Z" ?Ζ)
+ ("H" ?Η)
+ ("Q" ?Θ)
+ ("I" ?Ι)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ ("M" ?Μ)
+ ("N" ?Ν)
+ ("C" ?Ξ)
+ ("O" ?Ο)
+ ("P" ?Π)
+ ("R" ?Ρ)
+ ("S" ?Σ)
+ ("T" ?Τ)
+ ("U" ?Υ)
+ ("F" ?Φ)
+ ("X" ?Χ)
+ ("Y" ?Ψ)
+ ("W" ?Ω)
+
+ ("a" ?α)
+ ("b" ?β)
+ ("g" ?γ)
+ ("d" ?δ)
+ ("e" ?ε)
+ ("z" ?ζ)
+ ("h" ?η)
+ ("q" ?θ)
+ ("i" ?ι)
+ ("k" ?κ)
+ ("l" ?λ)
+ ("m" ?μ)
+ ("n" ?ν)
+ ("c" ?ξ)
+ ("o" ?ο)
+ ("p" ?π)
+ ("r" ?ρ)
+ ("j" ?ς) ("s " ["ς "]) ("s," ["ς,"]) ("s." ["ς."]) ("s?" ["ς;"]) ("s;" ["ς·"])
+ ("s|" ?σ) ("s" ?σ)
+ ("t" ?τ)
+ ("u" ?υ)
+ ("f" ?φ)
+ ("x" ?χ)
+ ("y" ?ψ)
+ ("w" ?ω)
+
+ ("i+" ?ϊ)
+ ("u+" ?ϋ)
+ ("V" ?Ϝ) ; DIGAMMA
+ ("v" ?ϝ) ; digamma
+ ("K+" ?Ϟ) ; KOPPA
+ ("k+" ?ϟ) ; koppa
+ ("S+" ?Ϡ) ; SAMPI
+ ("s+" ?ϡ) ; sampi
+ ("c+" ?ϲ) ; lunate sigma
+
+ ("a)" ?)
+ ("a(" ?)
+ ("a)`" ?)
+ ("a(`" ?)
+ ("a)'" ?)
+ ("a('" ?)
+ ("a)=" ?)
+ ("a(=" ?)
+
+ (")A" ?)
+ ("(A" ?)
+ (")`A" ?)
+ ("(`A" ?)
+ (")'A" ?)
+ ("('A" ?)
+ (")=A" ?)
+ ("(=A" ?)
+
+ ("e)" ?)
+ ("e(" ?)
+ ("e)`" ?)
+ ("e(`" ?)
+ ("e)'" ?)
+ ("e('" ?)
+
+ (")E" ?)
+ ("(E" ?)
+ (")`E" ?)
+ ("(`E" ?)
+ (")'E" ?)
+ ("('E" ?)
+
+ ("h)" ?)
+ ("h(" ?)
+ ("h)`" ?)
+ ("h(`" ?)
+ ("h)'" ?)
+ ("h('" ?)
+ ("h)=" ?)
+ ("h(=" ?)
+
+ (")H" ?)
+ ("(H" ?)
+ (")`H" ?)
+ ("(`H" ?)
+ (")'H" ?)
+ ("('H" ?)
+ (")=H" ?)
+ ("(=H" ?)
+
+ ("i)" ?)
+ ("i(" ?)
+ ("i)`" ?)
+ ("i(`" ?)
+ ("i)'" ?)
+ ("i('" ?)
+ ("i)=" ?)
+ ("i(=" ?)
+
+ (")I" ?)
+ ("(I" ?)
+ (")`I" ?)
+ ("(`I" ?)
+ (")'I" ?)
+ ("('I" ?)
+ (")=I" ?)
+ ("(=I" ?Ἷ)
+
+ ("o)" ?)
+ ("o(" ?)
+ ("o)`" ?)
+ ("o(`" ?)
+ ("o)'" ?)
+ ("o('" ?)
+
+ (")O" ?)
+ ("(O" ?)
+ (")`O" ?)
+ ("(`O" ?)
+ (")'O" ?)
+ ("('O" ?)
+
+ ("u)" ?)
+ ("u(" ?)
+ ("u)`" ?)
+ ("u(`" ?)
+ ("u)'" ?)
+ ("u('" ?)
+ ("u)=" ?)
+ ("u(=" ?)
+
+ ("(U" ?)
+ ("(`U" ?)
+ ("('U" ?)
+ ("(=U" ?)
+
+ ("w)" ?)
+ ("w(" ?)
+ ("w)`" ?)
+ ("w(`" ?)
+ ("w)'" ?)
+ ("w('" ?)
+ ("w)=" ?)
+ ("w(=" ?)
+
+ (")W" ?)
+ ("(W" ?)
+ (")`W" ?)
+ ("(`W" ?)
+ (")'W" ?)
+ ("('W" ?)
+ (")=W" ?)
+ ("(=W" ?)
+
+ ("a`" ?)
+ ("a'" ?)
+ ("e`" ?)
+ ("e'" ?)
+ ("h`" ?)
+ ("h'" ?)
+ ("i`" ?)
+ ("i'" ?)
+ ("o`" ?)
+ ("o'" ?)
+ ("u`" ?)
+ ("u'" ?)
+ ("w`" ?)
+ ("w'" ?)
+
+ ("a)|" ?)
+ ("a(|" ?)
+ ("a)`|" ?)
+ ("a(`|" ?)
+ ("a)'|" ?)
+ ("a('|" ?)
+ ("a)=|" ?)
+ ("a(=|" ?)
+
+ (")A|" ?)
+ ("(A|" ?)
+ (")`A|" ?)
+ ("(`A|" ?)
+ (")'A|" ?)
+ ("('A|" ?)
+ (")=A|" ?)
+ ("(=A|" ?)
+
+ ("h)|" ?)
+ ("h(|" ?)
+ ("h)`|" ?)
+ ("h(`|" ?)
+ ("h)'|" ?)
+ ("h('|" ?)
+ ("h)=|" ?)
+ ("h(=|" ?)
+
+ (")H|" ?)
+ ("(H|" ?)
+ (")`H|" ?)
+ ("(`H|" ?)
+ (")'H|" ?)
+ ("('H|" ?)
+ (")=H|" ?)
+ ("(=H|" ?)
+
+ ("w)|" ?)
+ ("w(|" ?)
+ ("w)`|" ?)
+ ("w(`|" ?)
+ ("w)'|" ?)
+ ("w('|" ?)
+ ("w)=|" ?)
+ ("w(=|" ?)
+
+ (")W|" ?)
+ ("(W|" ?)
+ (")`W|" ?)
+ ("(`W|" ?)
+ (")'W|" ?)
+ ("('W|" ?)
+ (")=W|" ?)
+ ("(=W|" ?)
+
+ ("a`|" ?)
+ ("a|" ?)
+ ("a'|" ?)
+ ("a=" ?)
+ ("a=|" ?)
+
+ ("`A" ?)
+ ("'A" ?)
+ ("A|" ?)
+
+ (")" ?᾿) ; #x1fbf ; psili
+ ("=" ?) ; #x1fc0 ; perispomeni
+ ("+=" ?) ; #x1fc1
+
+ ("h`|" ?)
+ ("h|" ?)
+ ("h'|" ?)
+ ("h=" ?)
+ ("h=|" ?)
+
+ ("`E" ?)
+ ("'E" ?)
+
+ ("`H" ?)
+ ("'H" ?)
+ ("H|" ?)
+
+ (")`" ?) ; #x1fcd
+ (")'" ?) ; #x1fce
+ (")=" ?) ; #x1fcf
+
+ ("i+`" ?)
+ ("i+'" ?)
+ ("i=" ?)
+ ("i+=" ?)
+
+ ("`I" ?)
+ ("'I" ?)
+
+ ("(`" ?) ; #x1fdd
+ ("('" ?) ; #x1fde
+ ("(=" ?) ; #x1fdf
+
+ ("u+`" ?)
+ ("u+'" ?)
+
+ ("r)" ?)
+ ("r(" ?)
+
+ ("u=" ?)
+ ("u+=" ?)
+
+ ("`U" ?)
+ ("'U" ?)
+
+ ("`R" ?)
+
+ ("+`" ?) ; #x1fed
+ ("+'" ?) ; #x1fee
+ ("`" ?) ; #x1fef ; varia
+
+ ("w`|" ?)
+ ("w|" ?)
+ ("w'|" ?)
+ ("w=" ?)
+ ("w=|" ?)
+
+ ("`O" ?)
+ ("'O" ?)
+
+ ("`W" ?)
+ ("'W" ?)
+ ("W|" ?)
+
+ ("'" ?) ; #x1ffd ; oxia
+ ("(" ?) ;  #x1ffe ; dasia
 )
 
 ;;
 
 (quail-define-package
- "greek" "Greek" "\e,FY\e(B" nil
- "\e,FEkkgmij\\e(B: Greek keyboard layout (ISO 8859-7)
+ "greek" "Greek" "Ω" nil
+ "Ελληνικά: Greek keyboard layout (ISO 8859-7)
 --------------
 
-In the right of \e,Fk\e(B key is a combination key, where
\e,F4\e(B acute
\e,F(\e(B diaeresis
+In the right of λ key is a combination key, where
΄ acute
¨ diaeresis
 
 e.g.
\e,F4\e(B + \e,Fa\e(B -> \e,F\\e(B
\e,F(\e(B + \e,Fi\e(B -> \e,Fz\e(B
\e,F(\e(B + \e,F4\e(B + \e,Fi\e(B -> \e,F@\e(B"
+ ΄ + α -> ά
+ ¨ + ι -> ϊ
¨ + ΄ + ι -> ΐ"
  nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2@  3#  4$  5%  6^  7&  8*  9(  0)  -_  =+  `~
-;;  ;:  \e,FrS\e(B  \e,FeE\e(B  \e,FqQ\e(B  \e,FtT\e(B  \e,FuU\e(B  \e,FhH\e(B  \e,FiI\e(B  \e,FoO\e(B  \e,FpP\e(B  [{  ]}
-;;   \e,FaA\e(B  \e,FsS\e(B  \e,FdD\e(B  \e,FvV\e(B  \e,FcC\e(B  \e,FgG\e(B  \e,FnN\e(B  \e,FjJ\e(B  \e,FkK\e(B  \e,F4(\e(B  '"  \|
-;;    \e,FfF\e(B  \e,FwW\e(B  \e,FxX\e(B  \e,FyY\e(B  \e,FbB\e(B  \e,FmM\e(B  \e,FlL\e(B  ,<  .>  /?
+;;  ;:  ςΣ  εΕ  ρΡ  τΤ  υΥ  θΘ  ιΙ  οΟ  πΠ  [{  ]}
+;;   αΑ  σΣ  δΔ  φΦ  γΓ  ηΗ  ξΞ  κΚ  λΛ  ΄¨  '"  \|
+;;    ζΖ  χΧ  ψΨ  ωΩ  βΒ  νΝ  μΜ  ,<  .>  /?
 
 (quail-define-rules
  ("1" ?1)
@@ -1175,36 +1175,36 @@ e.g.
  ("=" ?=)
  ("`" ?`)
  ("q" ?\;)
- ("w" ?\e,Fr\e(B)
- ("e" ?\e,Fe\e(B)
- ("r" ?\e,Fq\e(B)
- ("t" ?\e,Ft\e(B)
- ("y" ?\e,Fu\e(B)
- ("u" ?\e,Fh\e(B)
- ("i" ?\e,Fi\e(B)
- ("o" ?\e,Fo\e(B)
- ("p" ?\e,Fp\e(B)
+ ("w" ?ς)
+ ("e" ?ε)
+ ("r" ?ρ)
+ ("t" ?τ)
+ ("y" ?υ)
+ ("u" ?θ)
+ ("i" ?ι)
+ ("o" ?ο)
+ ("p" ?π)
  ("[" ?\[)
  ("]" ?\])
- ("a" ?\e,Fa\e(B)
- ("s" ?\e,Fs\e(B)
- ("d" ?\e,Fd\e(B)
- ("f" ?\e,Fv\e(B)
- ("g" ?\e,Fc\e(B)
- ("h" ?\e,Fg\e(B)
- ("j" ?\e,Fn\e(B)
- ("k" ?\e,Fj\e(B)
- ("l" ?\e,Fk\e(B)
- (";" ?\e,F4\e(B)
+ ("a" ?α)
+ ("s" ?σ)
+ ("d" ?δ)
+ ("f" ?φ)
+ ("g" ?γ)
+ ("h" ?η)
+ ("j" ?ξ)
+ ("k" ?κ)
+ ("l" ?λ)
+ (";" ?΄)
  ("'" ?')
  ("\\" ?\\)
- ("z" ?\e,Ff\e(B)
- ("x" ?\e,Fw\e(B)
- ("c" ?\e,Fx\e(B)
- ("v" ?\e,Fy\e(B)
- ("b" ?\e,Fb\e(B)
- ("n" ?\e,Fm\e(B)
- ("m" ?\e,Fl\e(B)
+ ("z" ?ζ)
+ ("x" ?χ)
+ ("c" ?ψ)
+ ("v" ?ω)
+ ("b" ?β)
+ ("n" ?ν)
+ ("m" ?μ)
  ("," ?,)
  ("." ?.)
  ("/" ?/)
@@ -1223,84 +1223,84 @@ e.g.
  ("+" ?+)
  ("~" ?~)
  ("Q" ?:)
- ("W" ?\e,FS\e(B)
- ("E" ?\e,FE\e(B)
- ("R" ?\e,FQ\e(B)
- ("T" ?\e,FT\e(B)
- ("Y" ?\e,FU\e(B)
- ("U" ?\e,FH\e(B)
- ("I" ?\e,FI\e(B)
- ("O" ?\e,FO\e(B)
- ("P" ?\e,FP\e(B)
+ ("W" ?Σ)
+ ("E" ?Ε)
+ ("R" ?Ρ)
+ ("T" ?Τ)
+ ("Y" ?Υ)
+ ("U" ?Θ)
+ ("I" ?Ι)
+ ("O" ?Ο)
+ ("P" ?Π)
  ("{" ?{)
  ("}" ?})
- ("A" ?\e,FA\e(B)
- ("S" ?\e,FS\e(B)
- ("D" ?\e,FD\e(B)
- ("F" ?\e,FV\e(B)
- ("G" ?\e,FC\e(B)
- ("H" ?\e,FG\e(B)
- ("J" ?\e,FN\e(B)
- ("K" ?\e,FJ\e(B)
- ("L" ?\e,FK\e(B)
- (":" ?\e,F(\e(B)
+ ("A" ?Α)
+ ("S" ?Σ)
+ ("D" ?Δ)
+ ("F" ?Φ)
+ ("G" ?Γ)
+ ("H" ?Η)
+ ("J" ?Ξ)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ (":" ?¨)
  ("\"" ?\")
  ("|" ?|)
- ("Z" ?\e,FF\e(B)
- ("X" ?\e,FW\e(B)
- ("C" ?\e,FX\e(B)
- ("V" ?\e,FY\e(B)
- ("B" ?\e,FB\e(B)
- ("N" ?\e,FM\e(B)
- ("M" ?\e,FL\e(B)
+ ("Z" ?Ζ)
+ ("X" ?Χ)
+ ("C" ?Ψ)
+ ("V" ?Ω)
+ ("B" ?Β)
+ ("N" ?Ν)
+ ("M" ?Μ)
  ("<" ?<)
  (">" ?>)
  ("?" ??)
 
- (";a" ?\e,F\\e(B)
- (";e" ?\e,F]\e(B)
- (";h" ?\e,F^\e(B)
- (";i" ?\e,F_\e(B)
- (";o" ?\e,F|\e(B)
- (";y" ?\e,F}\e(B)
- (";v" ?\e,F~\e(B)
- (";A" ?\e,F6\e(B)
- (";E" ?\e,F8\e(B)
- (";H" ?\e,F9\e(B)
- (";I" ?\e,F:\e(B)
- (";O" ?\e,F<\e(B)
- (";Y" ?\e,F>\e(B)
- (";V" ?\e,F?\e(B)
- (":i" ?\e,Fz\e(B)
- (":y" ?\e,F{\e(B)
- (":I" ?\e,FZ\e(B)
- (":Y" ?\e,F[\e(B)
- (";:i" ?\e,F@\e(B)
- (":;i" ?\e,F@\e(B)
- (";:y" ?\e,F`\e(B)
- (":;y" ?\e,F`\e(B)
- (";<" ?\e$(Q)(\e(B)
- (";>" ?\e$(Q)2\e(B))
+ (";a" ?ά)
+ (";e" ?έ)
+ (";h" ?ή)
+ (";i" ?ί)
+ (";o" ?ό)
+ (";y" ?ύ)
+ (";v" ?ώ)
+ (";A" ?Ά)
+ (";E" ?Έ)
+ (";H" ?Ή)
+ (";I" ?Ί)
+ (";O" ?Ό)
+ (";Y" ?Ύ)
+ (";V" ?Ώ)
+ (":i" ?ϊ)
+ (":y" ?ϋ)
+ (":I" ?Ϊ)
+ (":Y" ?Ϋ)
+ (";:i" ?ΐ)
+ (":;i" ?ΐ)
+ (";:y" ?ΰ)
+ (":;y" ?ΰ)
+ (";<" ?«)
+ (";>" ?»))
 
 (quail-define-package
- "greek-postfix" "GreekPost" "\e,FX\e(B" nil
- "\e,FEkkgmij\\e(B: Greek keyboard layout with postfix accents (ISO 8859-7)
+ "greek-postfix" "GreekPost" "Ψ" nil
+ "Ελληνικά: Greek keyboard layout with postfix accents (ISO 8859-7)
 --------------
 
-In the right of \e,Fk\e(B key is a combination key, where
\e,F4\e(B acute
\e,F(\e(B diaeresis
+In the right of λ key is a combination key, where
΄ acute
¨ diaeresis
 
 e.g.
\e,Fa\e(B + \e,F4\e(B -> \e,F\\e(B
\e,Fi\e(B + \e,F(\e(B -> \e,Fz\e(B
\e,Fi\e(B + \e,F(\e(B + \e,F4\e(B -> \e,F@\e(B"
+ α + ΄ -> ά
+ ι + ¨ -> ϊ
ι + ¨ + ΄ -> ΐ"
  nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2@  3#  4$  5%  6^  7&  8*  9(  0)  -_  =+  `~
-;;  \e,F7/\e(B  \e,FrS\e(B  \e,FeE\e(B  \e,FqQ\e(B  \e,FtT\e(B  \e,FuU\e(B  \e,FhH\e(B  \e,FiI\e(B  \e,FoO\e(B  \e,FpP\e(B  [{  ]}
-;;   \e,FaA\e(B  \e,FsS\e(B  \e,FdD\e(B  \e,FvV\e(B  \e,FcC\e(B  \e,FgG\e(B  \e,FnN\e(B  \e,FjJ\e(B  \e,FkK\e(B  \e,F4(\e(B  '"  \|
-;;    \e,FfF\e(B  \e,FwW\e(B  \e,FxX\e(B  \e,FyY\e(B  \e,FbB\e(B  \e,FmM\e(B  \e,FlL\e(B  ,;  .:  /?
+;;  ·―  ςΣ  εΕ  ρΡ  τΤ  υΥ  θΘ  ιΙ  οΟ  πΠ  [{  ]}
+;;   αΑ  σΣ  δΔ  φΦ  γΓ  ηΗ  ξΞ  κΚ  λΛ  ΄¨  '"  \|
+;;    ζΖ  χΧ  ψΨ  ωΩ  βΒ  νΝ  μΜ  ,;  .:  /?
 
 (quail-define-rules
  ("1" ?1)
@@ -1317,36 +1317,36 @@ e.g.
  ("=" ?=)
  ("`" ?`)
  ("q" ?\;)
- ("w" ?\e,Fr\e(B)
- ("e" ?\e,Fe\e(B)
- ("r" ?\e,Fq\e(B)
- ("t" ?\e,Ft\e(B)
- ("y" ?\e,Fu\e(B)
- ("u" ?\e,Fh\e(B)
- ("i" ?\e,Fi\e(B)
- ("o" ?\e,Fo\e(B)
- ("p" ?\e,Fp\e(B)
+ ("w" ?ς)
+ ("e" ?ε)
+ ("r" ?ρ)
+ ("t" ?τ)
+ ("y" ?υ)
+ ("u" ?θ)
+ ("i" ?ι)
+ ("o" ?ο)
+ ("p" ?π)
  ("[" ?\[)
  ("]" ?\])
- ("a" ?\e,Fa\e(B)
- ("s" ?\e,Fs\e(B)
- ("d" ?\e,Fd\e(B)
- ("f" ?\e,Fv\e(B)
- ("g" ?\e,Fc\e(B)
- ("h" ?\e,Fg\e(B)
- ("j" ?\e,Fn\e(B)
- ("k" ?\e,Fj\e(B)
- ("l" ?\e,Fk\e(B)
- (";" ?\e,F4\e(B)
+ ("a" ?α)
+ ("s" ?σ)
+ ("d" ?δ)
+ ("f" ?φ)
+ ("g" ?γ)
+ ("h" ?η)
+ ("j" ?ξ)
+ ("k" ?κ)
+ ("l" ?λ)
+ (";" ?΄)
  ("'" ?')
  ("\\" ?\\)
- ("z" ?\e,Ff\e(B)
- ("x" ?\e,Fw\e(B)
- ("c" ?\e,Fx\e(B)
- ("v" ?\e,Fy\e(B)
- ("b" ?\e,Fb\e(B)
- ("n" ?\e,Fm\e(B)
- ("m" ?\e,Fl\e(B)
+ ("z" ?ζ)
+ ("x" ?χ)
+ ("c" ?ψ)
+ ("v" ?ω)
+ ("b" ?β)
+ ("n" ?ν)
+ ("m" ?μ)
  ("," ?,)
  ("." ?.)
  ("/" ?/)
@@ -1365,67 +1365,67 @@ e.g.
  ("+" ?+)
  ("~" ?~)
  ("Q" ?:)
- ("W" ?\e,FS\e(B)
- ("E" ?\e,FE\e(B)
- ("R" ?\e,FQ\e(B)
- ("T" ?\e,FT\e(B)
- ("Y" ?\e,FU\e(B)
- ("U" ?\e,FH\e(B)
- ("I" ?\e,FI\e(B)
- ("O" ?\e,FO\e(B)
- ("P" ?\e,FP\e(B)
+ ("W" ?Σ)
+ ("E" ?Ε)
+ ("R" ?Ρ)
+ ("T" ?Τ)
+ ("Y" ?Υ)
+ ("U" ?Θ)
+ ("I" ?Ι)
+ ("O" ?Ο)
+ ("P" ?Π)
  ("{" ?{)
  ("}" ?})
- ("A" ?\e,FA\e(B)
- ("S" ?\e,FS\e(B)
- ("D" ?\e,FD\e(B)
- ("F" ?\e,FV\e(B)
- ("G" ?\e,FC\e(B)
- ("H" ?\e,FG\e(B)
- ("J" ?\e,FN\e(B)
- ("K" ?\e,FJ\e(B)
- ("L" ?\e,FK\e(B)
- (":" ?\e,F(\e(B)
+ ("A" ?Α)
+ ("S" ?Σ)
+ ("D" ?Δ)
+ ("F" ?Φ)
+ ("G" ?Γ)
+ ("H" ?Η)
+ ("J" ?Ξ)
+ ("K" ?Κ)
+ ("L" ?Λ)
+ (":" ?¨)
  ("\"" ?\")
  ("|" ?|)
- ("Z" ?\e,FF\e(B)
- ("X" ?\e,FW\e(B)
- ("C" ?\e,FX\e(B)
- ("V" ?\e,FY\e(B)
- ("B" ?\e,FB\e(B)
- ("N" ?\e,FM\e(B)
- ("M" ?\e,FL\e(B)
+ ("Z" ?Ζ)
+ ("X" ?Χ)
+ ("C" ?Ψ)
+ ("V" ?Ω)
+ ("B" ?Β)
+ ("N" ?Ν)
+ ("M" ?Μ)
  ("<" ?<)
  (">" ?>)
  ("?" ??)
 
- ("a;" ?\e,F\\e(B)
- ("e;" ?\e,F]\e(B)
- ("h;" ?\e,F^\e(B)
- ("i;" ?\e,F_\e(B)
- ("o;" ?\e,F|\e(B)
- ("y;" ?\e,F}\e(B)
- ("v;" ?\e,F~\e(B)
- ("A;" ?\e,F6\e(B)
- ("E;" ?\e,F8\e(B)
- ("H;" ?\e,F9\e(B)
- ("I;" ?\e,F:\e(B)
- ("O;" ?\e,F<\e(B)
- ("Y;" ?\e,F>\e(B)
- ("V;" ?\e,F?\e(B)
- ("i:" ?\e,Fz\e(B)
- ("y:" ?\e,F{\e(B)
- ("I:" ?\e,FZ\e(B)
- ("Y:" ?\e,F[\e(B)
- ("i:;" ?\e,F@\e(B)
- ("i;:" ?\e,F@\e(B)
- ("y:;" ?\e,F`\e(B)
- ("y;:" ?\e,F`\e(B)
+ ("a;" ?ά)
+ ("e;" ?έ)
+ ("h;" ?ή)
+ ("i;" ?ί)
+ ("o;" ?ό)
+ ("y;" ?ύ)
+ ("v;" ?ώ)
+ ("A;" ?Ά)
+ ("E;" ?Έ)
+ ("H;" ?Ή)
+ ("I;" ?Ί)
+ ("O;" ?Ό)
+ ("Y;" ?Ύ)
+ ("V;" ?Ώ)
+ ("i:" ?ϊ)
+ ("y:" ?ϋ)
+ ("I:" ?Ϊ)
+ ("Y:" ?Ϋ)
+ ("i:;" ?ΐ)
+ ("i;:" ?ΐ)
+ ("y:;" ?ΰ)
+ ("y;:" ?ΰ)
  ;; These two are asymmetric with ";<" and ";>" in "greek" input
  ;; method.  But, as the other Latin postfix methods adopt "<<" and
  ;; ">>", it may be better to follow them.
- ("<<" ?\e$(Q)(\e(B)
- (">>" ?\e$(Q)2\e(B))
+ ("<<" ?«)
+ (">>" ?»))
 
 
 ;;; greek.el ends here
index b25367f85c78d4aa183c86f2547bc168f2513e73..7b98161ddb5886c05f2449c6e2a9ef4abfc31e48 100644 (file)
@@ -1,4 +1,4 @@
-;;; hanja.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: iso-2022-7bit;-*-
+;;; hanja.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 (require 'korea-util)
 
 (quail-define-package
- "korean-hanja" "Korean" "\e$(CyS\e(B2" t
- "2\e$(C9z=D\e(BKSC\e$(CySm.\e(B: \e$(Cz1SWGO4B\e(B \e$(CySm.@G\e(B \e$(Cj$@;\e(B \e$(CGQ1[\e(B2\e$(C9zcR@87N\e(B \e$(C{<usGO?)\e(B \e$(C`TwI\e(B"
+ "korean-hanja" "Korean" "2" t
+ "2벌식KSC漢字: 該當하는 漢字의 韻을 한글2벌式으로 呼出하여 選擇"
                      nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("rk" "\e$(CJ!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=\e(B")
- ("rkr"        "\e$(CJ>J?J@JAJBJCJDJEJFJGJH\e(B")
- ("rks"        "\e$(CJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`\e(B")
- ("rkf"        "\e$(CJaJbJcJdJeJfJgJhJiJj\e(B")
- ("rka"        "\e$(CJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~\e(B")
- ("rkq"        "\e$(CK!K"K#K$K%K&\e(B")
- ("rkd"        "\e$(CK'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>\e(B")
- ("ro" "\e$(CK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKR\e(B")
- ("ror"        "\e$(CKSKT\e(B")
- ("rod"        "\e$(CKUKVKWKX\e(B")
- ("rir"        "\e$(CKY\e(B")
- ("rj" "\e$(CKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKj\e(B")
- ("rjs"        "\e$(CKkKlKmKnKoKpKqKrKsKtKuKv\e(B")
- ("rjf"        "\e$(CKwKxKyKz\e(B")
- ("rja"        "\e$(CK{K|K}K~L!L"L#\e(B")
- ("rjq"        "\e$(CL$L%L&\e(B")
- ("rp" "\e$(CL'L(L)\e(B")
- ("rur"        "\e$(CL*L+L,L-L.L/L0\e(B")
- ("rus"        "\e$(CL1L2L3L4L5L6L7L8L9L:L;\e(B")
- ("ruf"        "\e$(CL<L=L>L?L@LA\e(B")
- ("rua"        "\e$(CLBLCLDLELFLG\e(B")
- ("rud"        "\e$(CLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLt\e(B")
- ("rP" "\e$(CLuLvLwLxLyLzL{L|L}L~M!M"M#M$M%M&M'M(M)M*M+M,M-M.\e(B")
- ("rh" "\e$(CM/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMU\e(B")
- ("rhr"        "\e$(CMVMWMXMYMZM[M\\e(B")
- ("rhs"        "\e$(CM]M^M_M`MaMbMcMdMeMf\e(B")
- ("rhf"        "\e$(CMgMhMi\e(B")
- ("rhd"        "\e$(CMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMy\e(B")
- ("rhw"        "\e$(CMz\e(B")
- ("rhk"        "\e$(CM{M|M}M~N!N"N#N$N%N&N'N(\e(B")
- ("rhkr"       "\e$(CN)N*N+N,\e(B")
- ("rhks"       "\e$(CN-N.N/N0N1N2N3N4N5N6N7N8N9N:N;N<N=\e(B")
- ("rhkf"       "\e$(CN>N?N@NA\e(B")
- ("rhkd"       "\e$(CNBNCNDNENFNGNHNINJNKNLNMNN\e(B")
- ("rho"        "\e$(CNONPNQ\e(B")
- ("rhl"        "\e$(CNRNSNTNUNVNWNXNYNZ\e(B")
- ("rhld"       "\e$(CN[N\N]N^\e(B")
- ("ry" "\e$(CN_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNw\e(B")
- ("rn" "\e$(CNxNyNzN{N|N}N~O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOO\e(B")
- ("rnr"        "\e$(COPOQOROSOTOU\e(B")
- ("rns"        "\e$(COVOWOXOYOZO[\e(B")
- ("rnf"        "\e$(CO\O]O^O_\e(B")
- ("rnd"        "\e$(CO`OaObOcOdOe\e(B")
- ("rnjs"       "\e$(COfOgOhOiOjOkOlOmOnOo\e(B")
- ("rnjf"       "\e$(COpOqOrOsOt\e(B")
- ("rnp"        "\e$(COuOvOwOxOyOz\e(B")
- ("rnl"        "\e$(CO{O|O}O~P!P"\e(B")
- ("rb" "\e$(CP#P$P%P&P'P(P)P*P+P,P-P.P/P0P1\e(B")
- ("rbs"        "\e$(CP2P3P4P5P6P7P8\e(B")
- ("rbf"        "\e$(CP9\e(B")
- ("rmr"        "\e$(CP:P;P<P=P>P?P@\e(B")
- ("rms"        "\e$(CPAPBPCPDPEPFPGPHPIPJPKPLPMPNPO\e(B")
- ("rmf"        "\e$(CPP\e(B")
- ("rma"        "\e$(CPQPRPSPTPUPVPWPXPYPZP[P\P]P^\e(B")
- ("rmq"        "\e$(CP_P`PaPbPcPdPe\e(B")
- ("rmd"        "\e$(CPfPgPhPi\e(B")
- ("rl" "\e$(CPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQK\e(B")
- ("rls"        "\e$(CQL\e(B")
- ("rlf"        "\e$(CQMQNQOQP\e(B")
- ("rla"        "\e$(CQQ\e(B")
- ("Rlr"        "\e$(CQR\e(B")
- ("sk" "\e$(CQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`Qa\e(B")
- ("skr"        "\e$(CQbQcQdQeQfQgQhQi\e(B")
- ("sks"        "\e$(CQjQkQlQmQnQoQpQqQr\e(B")
- ("skf"        "\e$(CQsQt\e(B")
- ("ska"        "\e$(CQuQvQwQxQyQzQ{Q|Q}\e(B")
- ("skq"        "\e$(CQ~R!R"R#R$\e(B")
- ("skd"        "\e$(CR%R&R'R(R)R*R+\e(B")
- ("so" "\e$(CR,R-R.R/R0R1\e(B")
- ("sod"        "\e$(CR2\e(B")
- ("su" "\e$(CR3\e(B")
- ("sus"        "\e$(CR4R5R6\e(B")
- ("sua"        "\e$(CR7R8R9R:\e(B")
- ("sud"        "\e$(CR;R<\e(B")
- ("sh" "\e$(CR=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRN\e(B")
- ("shr"        "\e$(CRORPRQRRRSRT\e(B")
- ("shs"        "\e$(CRU\e(B")
- ("shd"        "\e$(CRVRWRXRYRZR[R\\e(B")
- ("shl"        "\e$(CR]R^R_R`RaRb\e(B")
- ("sy" "\e$(CRc\e(B")
- ("sn" "\e$(CRdReRfRgRhRiRjRk\e(B")
- ("sns"        "\e$(CRl\e(B")
- ("snf"        "\e$(CRm\e(B")
- ("sb" "\e$(CRnRo\e(B")
- ("smr"        "\e$(CRpRq\e(B")
- ("sma"        "\e$(CRr\e(B")
- ("smd"        "\e$(CRsRtRuRvRwRx\e(B")
- ("sl" "\e$(CRyRz\e(B")
- ("slr"        "\e$(CR{R|\e(B")
- ("ek" "\e$(CR}R~\e(B")
- ("eks"        "\e$(CS!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4\e(B")
- ("ekf"        "\e$(CS5S6S7S8S9\e(B")
- ("eka"        "\e$(CS:S;S<S=S>S?S@SASBSCSDSESFSGSHSISJ\e(B")
- ("ekq"        "\e$(CSKSLSMSNSO\e(B")
- ("ekd"        "\e$(CSPSQSRSSSTSUSVSWSXSYSZ\e(B")
- ("eo" "\e$(CS[S\S]S^S_S`SaSbScSdSeSfSgShSiSj\e(B")
- ("eor"        "\e$(CSk\e(B")
- ("ejr"        "\e$(CSlSm\e(B")
- ("eh" "\e$(CSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7\e(B")
- ("ehr"        "\e$(CT8T9T:T;T<T=T>T?T@TA\e(B")
- ("ehs"        "\e$(CTBTCTDTETFTGTHTITJTK\e(B")
- ("ehf"        "\e$(CTLTM\e(B")
- ("ehd"        "\e$(CTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^\e(B")
- ("en" "\e$(CT_T`TaTbTcTdTeTfTgThTi\e(B")
- ("ens"        "\e$(CTjTkTlTmTnTo\e(B")
- ("emr"        "\e$(CTp\e(B")
- ("emd"        "\e$(CTqTrTsTtTuTvTwTxTy\e(B")
- ("fk" "\e$(CTzT{T|T}T~U!U"U#U$\e(B")
- ("fkr"        "\e$(CU%U&U'U(U)U*U+U,U-\e(B")
- ("fks"        "\e$(CU.U/U0U1U2U3U4U5U6\e(B")
- ("fkf"        "\e$(CU7U8\e(B")
- ("fka"        "\e$(CU9U:U;U<U=U>U?U@UAUB\e(B")
- ("fkq"        "\e$(CUCUDUE\e(B")
- ("fkd"        "\e$(CUFUGUHUIUJUKULUM\e(B")
- ("fo" "\e$(CUNUOUPUQ\e(B")
- ("fod"        "\e$(CUR\e(B")
- ("fir"        "\e$(CUSUT\e(B")
- ("fid"        "\e$(CUUUVUWUXUYUZU[U\U]U^U_U`Ua\e(B")
- ("fu" "\e$(CUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUs\e(B")
- ("fur"        "\e$(CUtUuUvUwUxUyUz\e(B")
- ("fus"        "\e$(CU{U|U}U~V!V"V#V$V%V&V'V(\e(B")
- ("fuf"        "\e$(CV)V*V+V,V-V.\e(B")
- ("fua"        "\e$(CV/V0V1V2V3\e(B")
- ("fuq"        "\e$(CV4\e(B")
- ("fud"        "\e$(CV5V6V7V8V9V:V;V<V=V>V?V@VAVBVCVDVEVF\e(B")
- ("fP" "\e$(CVGVHVIVJVK\e(B")
- ("fh" "\e$(CVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]\e(B")
- ("fhr"        "\e$(CV^V_V`VaVbVcVd\e(B")
- ("fhs"        "\e$(CVe\e(B")
- ("fhd"        "\e$(CVfVgVhViVjVkVl\e(B")
- ("fhl"        "\e$(CVmVnVoVpVqVrVsVt\e(B")
- ("fy" "\e$(CVuVvVwVxVyVzV{V|V}V~W!W"\e(B")
- ("fyd"        "\e$(CW#\e(B")
- ("fn" "\e$(CW$W%W&W'W(W)W*W+W,W-W.W/W0\e(B")
- ("fb" "\e$(CW1W2W3W4W5W6W7W8W9W:W;W<W=W>\e(B")
- ("fbr"        "\e$(CW?W@WA\e(B")
- ("fbs"        "\e$(CWBWCWDWEWFWG\e(B")
- ("fbf"        "\e$(CWHWIWJWK\e(B")
- ("fbd"        "\e$(CWL\e(B")
- ("fmr"        "\e$(CWMWN\e(B")
- ("fma"        "\e$(CWO\e(B")
- ("fmd"        "\e$(CWPWQWRWSWTWU\e(B")
- ("fl" "\e$(CWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWo\e(B")
- ("fls"        "\e$(CWpWqWrWsWtWuWvWwWx\e(B")
- ("fla"        "\e$(CWyWzW{W|W}\e(B")
- ("flq"        "\e$(CW~X!X"X#\e(B")
- ("ak" "\e$(CX$X%X&X'X(X)X*X+\e(B")
- ("akr"        "\e$(CX,X-X.X/X0X1\e(B")
- ("aks"        "\e$(CX2X3X4X5X6X7X8X9X:X;X<X=X>X?X@XAXBXCXD\e(B")
- ("akf"        "\e$(CXEXFXGXHXIXJXK\e(B")
- ("akd"        "\e$(CXLXMXNXOXPXQXRXSXTXUXVXW\e(B")
- ("ao" "\e$(CXXXYXZX[X\X]X^X_X`XaXbXcXdXe\e(B")
- ("aor"        "\e$(CXfXgXhXiXj\e(B")
- ("aod"        "\e$(CXkXlXmXnXoXp\e(B")
- ("aur"        "\e$(CXqXr\e(B")
- ("aus"        "\e$(CXsXtXuXvXwXxXyXzX{X|X}\e(B")
- ("auf"        "\e$(CX~Y!\e(B")
- ("aud"        "\e$(CY"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0\e(B")
- ("aP" "\e$(CY1\e(B")
- ("ah" "\e$(CY2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYI\e(B")
- ("ahr"        "\e$(CYJYKYLYMYNYOYP\e(B")
- ("ahf"        "\e$(CYQYR\e(B")
- ("ahd"        "\e$(CYSYTYU\e(B")
- ("ay" "\e$(CYVYWYXYYYZY[Y\Y]Y^Y_Y`Ya\e(B")
- ("an" "\e$(CYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYw\e(B")
- ("anr"        "\e$(CYxYy\e(B")
- ("ans"        "\e$(CYzY{Y|Y}Y~Z!Z"Z#Z$Z%Z&Z'\e(B")
- ("anf"        "\e$(CZ(Z)Z*\e(B")
- ("al" "\e$(CZ+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=\e(B")
- ("als"        "\e$(CZ>Z?Z@ZAZBZCZDZEZFZGZHZIZJ\e(B")
- ("alf"        "\e$(CZKZLZM\e(B")
- ("qkr"        "\e$(CZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`\e(B")
- ("qks"        "\e$(CZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZy\e(B")
- ("qkf"        "\e$(CZzZ{Z|Z}Z~[!["[#[$[%[&\e(B")
- ("qkd"        "\e$(C['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B\e(B")
- ("qo" "\e$(C[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V\e(B")
- ("qor"        "\e$(C[W[X[Y[Z[[[\[][^\e(B")
- ("qjs"        "\e$(C[_[`[a[b[c[d[e[f[g[h\e(B")
- ("qjf"        "\e$(C[i[j[k[l\e(B")
- ("qja"        "\e$(C[m[n[o[p[q[r[s[t[u\e(B")
- ("qjq"        "\e$(C[v[w\e(B")
- ("qur"        "\e$(C[x[y[z[{[|[}[~\!\"\#\$\e(B")
- ("qus"        "\e$(C\%\&\'\(\)\*\+\e(B")
- ("quf"        "\e$(C\,\-\.\/\e(B")
- ("qud"        "\e$(C\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\e(B")
- ("qh" "\e$(C\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\e(B")
- ("qhr"        "\e$(C\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\e(B")
- ("qhs"        "\e$(C\b\e(B")
- ("qhf"        "\e$(C\c\e(B")
- ("qhd"        "\e$(C\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\e(B")
- ("qn" "\e$(C\t\u\v\w\x\y\z\{\|\}\~]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@\e(B")
- ("qnr"        "\e$(C]A\e(B")
- ("qns"        "\e$(C]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T\e(B")
- ("qnf"        "\e$(C]U]V]W]X]Y\e(B")
- ("qnd"        "\e$(C]Z][]\]]]^]_\e(B")
- ("ql" "\e$(C]`]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]{]|]}]~^!^"^#^$^%^&^'^(^)^*^+^,\e(B")
- ("qls"        "\e$(C^-^.^/^0^1^2^3^4^5^6^7^8^9^:\e(B")
- ("qld"        "\e$(C^;^<^=^>\e(B")
- ("tk" "\e$(C^?^@^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^[^\^]^^^_^`^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\e(B")
- ("tkr"        "\e$(C^{^|^}^~\e(B")
- ("tks"        "\e$(C_!_"_#_$_%_&_'_(_)_*_+_,\e(B")
- ("tkf"        "\e$(C_-_._/_0_1\e(B")
- ("tka"        "\e$(C_2_3_4_5_6_7_8_9\e(B")
- ("tkq"        "\e$(C_:_;_<_=\e(B")
- ("tkd"        "\e$(C_>_?_@_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_[_\\e(B")
- ("to" "\e$(C_]_^__\e(B")
- ("tor"        "\e$(C_`_a_b_c_d\e(B")
- ("tod"        "\e$(C_e_f_g_h_i\e(B")
- ("tj" "\e$(C_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_{_|_}_~`!`"`#`$`%`&`'`(`)\e(B")
- ("tjr"        "\e$(C`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8\e(B")
- ("tjs"        "\e$(C`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X\e(B")
- ("tjf"        "\e$(C`Y`Z`[`\`]`^`_```a`b`c`d`e\e(B")
- ("tja"        "\e$(C`f`g`h`i`j`k`l`m\e(B")
- ("tjq"        "\e$(C`n`o`p`q\e(B")
- ("tjd"        "\e$(C`r`s`t`u`v`w`x`y`z`{`|`}`~a!a"a#a$a%\e(B")
- ("tp" "\e$(Ca&a'a(a)a*a+a,a-a.\e(B")
- ("th" "\e$(Ca/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaS\e(B")
- ("thr"        "\e$(CaTaUaVaWaXaYaZa[a\\e(B")
- ("ths"        "\e$(Ca]a^a_a`aaab\e(B")
- ("thf"        "\e$(Cac\e(B")
- ("thd"        "\e$(Cadaeafagahaiajak\e(B")
- ("tho"        "\e$(Calamanaoap\e(B")
- ("thl"        "\e$(Caqar\e(B")
- ("tn" "\e$(Casatauavawaxayaza{a|a}a~b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQ\e(B")
- ("tnr"        "\e$(CbRbSbTbUbVbWbXbYbZb[b\b]\e(B")
- ("tns"        "\e$(Cb^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbx\e(B")
- ("tnf"        "\e$(Cbybzb{b|\e(B")
- ("tnd"        "\e$(Cb}b~c!\e(B")
- ("tmf"        "\e$(Cc"c#c$\e(B")
- ("tmq"        "\e$(Cc%c&c'c(c)\e(B")
- ("tmd"        "\e$(Cc*c+c,c-c.c/c0c1c2c3\e(B")
- ("tl" "\e$(Cc4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcO\e(B")
- ("tlr"        "\e$(CcPcQcRcScTcUcVcWcXcYcZc[c\c]c^\e(B")
- ("tls"        "\e$(Cc_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucv\e(B")
- ("tlf"        "\e$(Ccwcxcycz\e(B")
- ("tla"        "\e$(Cc{c|c}c~d!d"d#d$d%d&\e(B")
- ("tlq"        "\e$(Cd'd(d)\e(B")
- ("Tkd"        "\e$(Cd*\e(B")
- ("Tl" "\e$(Cd+\e(B")
- ("dk" "\e$(Cd,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=\e(B")
- ("dkr"        "\e$(Cd>d?d@dAdBdCdDdEdFdGdHdIdJdK\e(B")
- ("dks"        "\e$(CdLdMdNdOdPdQdRdSdTdU\e(B")
- ("dkf"        "\e$(CdVdWdXdY\e(B")
- ("dka"        "\e$(CdZd[d\d]d^d_d`da\e(B")
- ("dkq"        "\e$(Cdbdcddde\e(B")
- ("dkd"        "\e$(Cdfdgdhdidjdkdl\e(B")
- ("do" "\e$(Cdmdndodpdqdrdsdtdudvdw\e(B")
- ("dor"        "\e$(Cdxdydzd{d|d}d~\e(B")
- ("dod"        "\e$(Ce!e"e#e$\e(B")
- ("di" "\e$(Ce%e&e'e(e)e*e+e,e-e.e/\e(B")
- ("dir"        "\e$(Ce0e1e2e3e4e5e6e7e8\e(B")
- ("did"        "\e$(Ce9e:e;e<e=e>e?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeW\e(B")
- ("dj" "\e$(CeXeYeZe[e\e]e^e_e`ea\e(B")
- ("djr"        "\e$(Cebecedeeef\e(B")
- ("djs"        "\e$(Cegeheiejekel\e(B")
- ("djf"        "\e$(Cemen\e(B")
- ("dja"        "\e$(Ceoepeqereset\e(B")
- ("djq"        "\e$(Ceuev\e(B")
- ("dps"        "\e$(Cew\e(B")
- ("du" "\e$(Cexeyeze{e|e}e~f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1\e(B")
- ("dur"        "\e$(Cf2f3f4f5f6f7f8f9f:f;f<f=f>\e(B")
- ("dus"        "\e$(Cf?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcfdfefffgfhfi\e(B")
- ("duf"        "\e$(Cfjfkflfmfnfofpfqfrfs\e(B")
- ("dua"        "\e$(Cftfufvfwfxfyfzf{f|f}f~g!g"g#g$\e(B")
- ("duq"        "\e$(Cg%g&g'g(\e(B")
- ("dud"        "\e$(Cg)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgP\e(B")
- ("dP" "\e$(CgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcgdgegfgggh\e(B")
- ("dh" "\e$(Cgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~h!h"h#h$h%h&h'h(\e(B")
- ("dhr"        "\e$(Ch)h*h+h,h-\e(B")
- ("dhs"        "\e$(Ch.h/h0h1h2h3\e(B")
- ("dhf"        "\e$(Ch4\e(B")
- ("dhd"        "\e$(Ch5h6h7h8h9h:h;h<h=\e(B")
- ("dhk"        "\e$(Ch>h?h@hAhBhChDhE\e(B")
- ("dhks"       "\e$(ChFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhW\e(B")
- ("dhkf"       "\e$(ChX\e(B")
- ("dhkd"       "\e$(ChYhZh[h\h]\e(B")
- ("dho"        "\e$(Ch^h_h`ha\e(B")
- ("dhl"        "\e$(Chbhchdhehf\e(B")
- ("dy" "\e$(Chghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~i!i"i#i$i%i&i'i(i)i*i+i,i-i.\e(B")
- ("dyr"        "\e$(Ci/i0i1i2i3i4\e(B")
- ("dyd"        "\e$(Ci5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiL\e(B")
- ("dn" "\e$(CiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikil\e(B")
- ("dnr"        "\e$(Ciminioipiqirisitiu\e(B")
- ("dns"        "\e$(Civiwixiyizi{i|i}i~j!j"j#j$\e(B")
- ("dnf"        "\e$(Cj%j&j'\e(B")
- ("dnd"        "\e$(Cj(j)\e(B")
- ("dnjs"       "\e$(Cj*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjD\e(B")
- ("dnjf"       "\e$(CjEjFjG\e(B")
- ("dnl"        "\e$(CjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`\e(B")
- ("db" "\e$(Cjajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:\e(B")
- ("dbr"        "\e$(Ck;k<k=k>k?k@kA\e(B")
- ("dbs"        "\e$(CkBkCkDkEkFkGkHkIkJkKkLkMkN\e(B")
- ("dbf"        "\e$(CkOkPkQkRkS\e(B")
- ("dbd"        "\e$(CkTkUkVkWkX\e(B")
- ("dms"        "\e$(CkYkZk[k\k]k^k_\e(B")
- ("dmf"        "\e$(Ck`\e(B")
- ("dma"        "\e$(Ckakbkckdkekf\e(B")
- ("dmq"        "\e$(Ckgkhki\e(B")
- ("dmd"        "\e$(Ckjkkklkm\e(B")
- ("dml"        "\e$(Cknkokpkqkrksktkukvkwkxkykzk{k|k}k~l!l"\e(B")
- ("dl" "\e$(Cl#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlElFlGlH\e(B")
- ("dlr"        "\e$(ClIlJlKlLlMlNlOlP\e(B")
- ("dls"        "\e$(ClQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglh\e(B")
- ("dlf"        "\e$(Cliljlklllmlnlolplq\e(B")
- ("dla"        "\e$(Clrlsltlulvlwlxlylzl{l|\e(B")
- ("dlq"        "\e$(Cl}l~m!m"m#\e(B")
- ("dld"        "\e$(Cm$m%m&m'\e(B")
- ("wk" "\e$(Cm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;m<m=m>m?m@mA\e(B")
- ("wkr"        "\e$(CmBmCmDmEmFmGmHmImJmKmLmMmN\e(B")
- ("wks"        "\e$(CmOmPmQmRmS\e(B")
- ("wka"        "\e$(CmTmUmVmWmXmY\e(B")
- ("wkq"        "\e$(CmZ\e(B")
- ("wkd"        "\e$(Cm[m\m]m^m_m`mambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~n!\e(B")
- ("wo" "\e$(Cn"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2\e(B")
- ("wod"        "\e$(Cn3n4n5n6\e(B")
- ("wj" "\e$(Cn7n8n9n:n;n<n=n>n?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnR\e(B")
- ("wjr"        "\e$(CnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncndnenfngnhninjnk\e(B")
- ("wjs"        "\e$(Cnlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6\e(B")
- ("wjf"        "\e$(Co7o8o9o:o;o<o=o>\e(B")
- ("wja"        "\e$(Co?o@oAoBoCoDoEoFoG\e(B")
- ("wjq"        "\e$(CoHoIoJ\e(B")
- ("wjd"        "\e$(CoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozo{o|o}o~p!p"p#\e(B")
- ("wp" "\e$(Cp$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:\e(B")
- ("wh" "\e$(Cp;p<p=p>p?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgph\e(B")
- ("whr"        "\e$(Cpipjpkpl\e(B")
- ("whs"        "\e$(Cpmpn\e(B")
- ("whf"        "\e$(Cpopppq\e(B")
- ("whd"        "\e$(Cprpsptpupvpwpxpypzp{p|p}p~q!q"q#q$\e(B")
- ("whk"        "\e$(Cq%q&q'q(q)\e(B")
- ("whl"        "\e$(Cq*\e(B")
- ("wn" "\e$(Cq+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;q<q=q>q?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqR\e(B")
- ("wnr"        "\e$(CqSqT\e(B")
- ("wns"        "\e$(CqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqg\e(B")
- ("wnf"        "\e$(Cqh\e(B")
- ("wnd"        "\e$(Cqiqjqkql\e(B")
- ("wmr"        "\e$(Cqm\e(B")
- ("wmf"        "\e$(Cqn\e(B")
- ("wmq"        "\e$(Cqoqpqq\e(B")
- ("wmd"        "\e$(Cqrqsqtquqvqwqxqyqzq{q|\e(B")
- ("wl" "\e$(Cq}q~r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@\e(B")
- ("wlr"        "\e$(CrArBrCrDrE\e(B")
- ("wls"        "\e$(CrFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrh\e(B")
- ("wlf"        "\e$(Crirjrkrlrmrnrorprqrrrsrtrurvrw\e(B")
- ("wla"        "\e$(Crxry\e(B")
- ("wlq"        "\e$(Crzr{r|r}r~s!s"\e(B")
- ("wld"        "\e$(Cs#s$s%\e(B")
- ("ck" "\e$(Cs&s's(s)s*s+s,s-s.s/s0s1s2s3s4\e(B")
- ("ckr"        "\e$(Cs5s6s7s8s9s:s;\e(B")
- ("cks"        "\e$(Cs<s=s>s?s@sAsBsCsDsEsFsGsHsIsJ\e(B")
- ("ckf"        "\e$(CsKsLsMsNsO\e(B")
- ("cka"        "\e$(CsPsQsRsSsTsUsVsWsXsY\e(B")
- ("ckd"        "\e$(CsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnso\e(B")
- ("co" "\e$(Cspsqsrssstsusvswsxsyszs{\e(B")
- ("cor"        "\e$(Cs|s}s~t!\e(B")
- ("cj" "\e$(Ct"t#t$t%\e(B")
- ("cjr"        "\e$(Ct&t't(t)t*t+t,t-t.t/t0t1t2t3t4\e(B")
- ("cjs"        "\e$(Ct5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtG\e(B")
- ("cjf"        "\e$(CtHtItJtKtLtMtNtOtPtQ\e(B")
- ("cja"        "\e$(CtRtStTtUtVtWtXtYtZt[\e(B")
- ("cjq"        "\e$(Ct\t]t^t_t`tatbtctdte\e(B")
- ("cjd"        "\e$(Ctftgthtitjtktltm\e(B")
- ("cp" "\e$(Ctntotptqtrtstttutvtw\e(B")
- ("ch" "\e$(Ctxtytzt{t|t}t~u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4\e(B")
- ("chr"        "\e$(Cu5u6u7u8u9u:\e(B")
- ("chs"        "\e$(Cu;u<u=u>\e(B")
- ("chd"        "\e$(Cu?u@uAuBuCuDuEuFuGuH\e(B")
- ("chkf"       "\e$(CuI\e(B")
- ("chl"        "\e$(CuJuKuL\e(B")
- ("cn" "\e$(CuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubuc\e(B")
- ("cnr"        "\e$(Cudueufuguhuiujukulumunuo\e(B")
- ("cns"        "\e$(Cupuqur\e(B")
- ("cnf"        "\e$(Cusutuu\e(B")
- ("cnd"        "\e$(Cuvuwuxuyuzu{\e(B")
- ("cnp"        "\e$(Cu|u}u~v!\e(B")
- ("cnl"        "\e$(Cv"v#v$v%v&v'v(v)v*v+v,v-v.v/\e(B")
- ("cmr"        "\e$(Cv0v1v2v3v4\e(B")
- ("cmd"        "\e$(Cv5\e(B")
- ("cl" "\e$(Cv6v7v8v9v:v;v<v=v>v?v@vAvBvCvDvEvFvGvHvIvJvKvLvM\e(B")
- ("clr"        "\e$(CvNvOvP\e(B")
- ("cls"        "\e$(CvQ\e(B")
- ("clf"        "\e$(CvRvSvT\e(B")
- ("cla"        "\e$(CvUvVvWvXvYvZv[v\v]\e(B")
- ("clq"        "\e$(Cv^\e(B")
- ("cld"        "\e$(Cv_v`\e(B")
- ("zho"        "\e$(Cva\e(B")
- ("xk" "\e$(Cvbvcvdvevfvgvhvivjvkvlvmvnvo\e(B")
- ("xkr"        "\e$(Cvpvqvrvsvtvuvvvwvxvyvzv{v|v}v~w!\e(B")
- ("xks"        "\e$(Cw"w#w$w%w&w'w(w)w*w+\e(B")
- ("xkf"        "\e$(Cw,w-\e(B")
- ("xka"        "\e$(Cw.w/w0w1\e(B")
- ("xkq"        "\e$(Cw2w3w4\e(B")
- ("xkd"        "\e$(Cw5w6w7w8w9\e(B")
- ("xo" "\e$(Cw:w;w<w=w>w?w@wAwBwCwDwEwFwG\e(B")
- ("xor"        "\e$(CwHwIwJ\e(B")
- ("xod"        "\e$(CwK\e(B")
- ("xj" "\e$(CwL\e(B")
- ("xh" "\e$(CwMwNwOwP\e(B")
- ("xhd"        "\e$(CwQwRwSwTwUwVwW\e(B")
- ("xhl"        "\e$(CwXwYwZw[w\w]\e(B")
- ("xn" "\e$(Cw^w_w`wawbwc\e(B")
- ("xmr"        "\e$(Cwdwe\e(B")
- ("xma"        "\e$(Cwf\e(B")
- ("vk" "\e$(Cwgwhwiwjwkwlwmwnwowpwqwrwswtwuwv\e(B")
- ("vks"        "\e$(Cwwwxwywzw{w|w}w~x!\e(B")
- ("vkf"        "\e$(Cx"x#x$\e(B")
- ("vo" "\e$(Cx%x&x'x(x)x*x+x,x-x.x/\e(B")
- ("vod"        "\e$(Cx0x1x2x3\e(B")
- ("vir"        "\e$(Cx4\e(B")
- ("vus"        "\e$(Cx5x6x7x8x9x:x;x<x=x>\e(B")
- ("vua"        "\e$(Cx?\e(B")
- ("vud"        "\e$(Cx@xAxBxCxD\e(B")
- ("vP" "\e$(CxExFxGxHxIxJxKxLxMxN\e(B")
- ("vh" "\e$(CxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixj\e(B")
- ("vhr"        "\e$(Cxkxlxmxnxoxp\e(B")
- ("vy" "\e$(Cxqxrxsxtxuxvxwxxxyxzx{x|x}x~\e(B")
- ("vna"        "\e$(Cy!y"\e(B")
- ("vnd"        "\e$(Cy#y$y%y&y'\e(B")
- ("vl" "\e$(Cy(y)y*y+y,y-y.\e(B")
- ("vlf"        "\e$(Cy/y0y1y2y3y4y5y6y7y8\e(B")
- ("vlq"        "\e$(Cy9y:\e(B")
- ("gk" "\e$(Cy;y<y=y>y?y@yAyByCyDyEyFyGyH\e(B")
- ("gkr"        "\e$(CyIyJyKyLyM\e(B")
- ("gks"        "\e$(CyNyOyPyQyRySyTyUyVyWyXyYyZy[\e(B")
- ("gkf"        "\e$(Cy\y]\e(B")
- ("gka"        "\e$(Cy^y_y`yaybycydyeyfygyhyi\e(B")
- ("gkq"        "\e$(Cyjykylymynyoyp\e(B")
- ("gkd"        "\e$(Cyqyrysytyuyvywyxyyyzy{y|y}y~z!z"z#\e(B")
- ("go" "\e$(Cz$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5\e(B")
- ("gor"        "\e$(Cz6z7\e(B")
- ("god"        "\e$(Cz8z9z:z;z<\e(B")
- ("gid"        "\e$(Cz=z>z?z@zAzBzCzDzE\e(B")
- ("gj" "\e$(CzFzGzHzI\e(B")
- ("gjs"        "\e$(CzJzKzLzM\e(B")
- ("gjf"        "\e$(CzN\e(B")
- ("gja"        "\e$(CzOzP\e(B")
- ("gur"        "\e$(CzQzRzSzT\e(B")
- ("gus"        "\e$(CzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzi\e(B")
- ("guf"        "\e$(Czjzkzlzm\e(B")
- ("gua"        "\e$(Czn\e(B")
- ("guq"        "\e$(Czozpzqzrzsztzuzvzwzxzyzz\e(B")
- ("gud"        "\e$(Cz{z|z}z~{!{"{#{${%{&{'{({){*{+{,{-{.{/{0\e(B")
- ("gP" "\e$(C{1{2{3{4{5{6{7{8{9\e(B")
- ("gh" "\e$(C{:{;{<{={>{?{@{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{[{\{]{^{_{`{a{b\e(B")
- ("ghr"        "\e$(C{c{d{e\e(B")
- ("ghs"        "\e$(C{f{g{h{i{j{k\e(B")
- ("ghf"        "\e$(C{l{m{n\e(B")
- ("ghd"        "\e$(C{o{p{q{r{s{t{u{v{w{x\e(B")
- ("ghk"        "\e$(C{y{z{{{|{}{~|!|"|#|$|%|&|'|(\e(B")
- ("ghkr"       "\e$(C|)|*|+|,|-|.\e(B")
- ("ghks"       "\e$(C|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?\e(B")
- ("ghkf"       "\e$(C|@|A|B|C|D\e(B")
- ("ghkd"       "\e$(C|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\\e(B")
- ("ghl"        "\e$(C|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p\e(B")
- ("ghlr"       "\e$(C|q|r\e(B")
- ("ghld"       "\e$(C|s|t|u\e(B")
- ("gy" "\e$(C|v|w|x|y|z|{|||}|~}!}"}#}$\e(B")
- ("gn" "\e$(C}%}&}'}(})}*}+},}-}.}/}0}1\e(B")
- ("gns"        "\e$(C}2}3}4}5}6}7}8}9}:};\e(B")
- ("gnd"        "\e$(C}<\e(B")
- ("gnjs"       "\e$(C}=}>}?}@\e(B")
- ("gnp"        "\e$(C}A}B}C\e(B")
- ("gnl"        "\e$(C}D}E}F}G}H}I}J}K\e(B")
- ("gb" "\e$(C}L}M}N}O}P\e(B")
- ("gbf"        "\e$(C}Q}R}S\e(B")
- ("gbd"        "\e$(C}T}U}V}W}X\e(B")
- ("gmr"        "\e$(C}Y\e(B")
- ("gms"        "\e$(C}Z}[}\}]\e(B")
- ("gmf"        "\e$(C}^}_}`}a\e(B")
- ("gma"        "\e$(C}b}c}d\e(B")
- ("gmq"        "\e$(C}e}f}g}h\e(B")
- ("gmd"        "\e$(C}i\e(B")
- ("gml"        "\e$(C}j}k}l}m}n}o}p}q}r}s}t}u}v}w}x}y}z}{}|}}\e(B")
- ("glf"        "\e$(C}~\e(B"))
+ ("rk" "伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕")
+ ("rkr"        "刻却各恪慤殼珏脚覺角閣")
+ ("rks"        "侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間")
+ ("rkf"        "乫喝曷渴碣竭葛褐蝎鞨")
+ ("rka"        "勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕")
+ ("rkq"        "匣岬甲胛鉀閘")
+ ("rkd"        "剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇")
+ ("ro" "介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開")
+ ("ror"        "喀客")
+ ("rod"        "坑更粳羹")
+ ("rir"        "")
+ ("rj" "倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸")
+ ("rjs"        "乾件健巾建愆楗腱虔蹇鍵騫")
+ ("rjf"        "乞傑杰桀")
+ ("rja"        "儉劍劒檢瞼鈐黔")
+ ("rjq"        "劫怯迲")
+ ("rp" "偈憩揭")
+ ("rur"        "擊格檄激膈覡隔")
+ ("rus"        "堅牽犬甄絹繭肩見譴遣鵑")
+ ("ruf"        "抉決潔結缺訣")
+ ("rua"        "兼慊箝謙鉗鎌")
+ ("rud"        "京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨")
+ ("rP" "係啓堺契季屆悸戒桂械棨溪界癸磎稽系繫繼計誡谿階鷄")
+ ("rh" "古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓")
+ ("rhr"        "哭斛曲梏穀谷鵠")
+ ("rhs"        "困坤崑昆梱棍滾琨袞鯤")
+ ("rhf"        "汨滑骨")
+ ("rhd"        "供公共功孔工恐恭拱控攻珙空蚣貢鞏")
+ ("rhw"        "")
+ ("rhk"        "寡戈果瓜科菓誇課跨過鍋顆")
+ ("rhkr"       "廓槨藿郭")
+ ("rhks"       "串冠官寬慣棺款灌琯瓘管罐菅觀貫關館")
+ ("rhkf"       "刮恝括适")
+ ("rhkd"       "侊光匡壙廣曠洸炚狂珖筐胱鑛")
+ ("rho"        "卦掛罫")
+ ("rhl"        "乖傀塊壞怪愧拐槐魁")
+ ("rhld"       "宏紘肱轟")
+ ("ry" "交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫")
+ ("rn" "丘久九仇俱具勾區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜")
+ ("rnr"        "國局菊鞠鞫麴")
+ ("rns"        "君窘群裙軍郡")
+ ("rnf"        "堀屈掘窟")
+ ("rnd"        "宮弓穹窮芎躬")
+ ("rnjs"       "倦券勸卷圈拳捲權淃眷")
+ ("rnjf"       "厥獗蕨蹶闕")
+ ("rnp"        "机櫃潰詭軌饋")
+ ("rnl"        "句晷歸貴鬼龜")
+ ("rb" "叫圭奎揆槻珪硅窺竅糾葵規赳逵閨")
+ ("rbs"        "勻均畇筠菌鈞龜")
+ ("rbf"        "")
+ ("rmr"        "克剋劇戟棘極隙")
+ ("rms"        "僅劤勤懃斤根槿瑾筋芹菫覲謹近饉")
+ ("rmf"        "")
+ ("rma"        "今妗擒昑檎琴禁禽芩衾衿襟金錦")
+ ("rmq"        "伋及急扱汲級給")
+ ("rmd"        "亘兢矜肯")
+ ("rl" "企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒")
+ ("rls"        "")
+ ("rlf"        "佶吉拮桔")
+ ("rla"        "")
+ ("Rlr"        "")
+ ("sk" "儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那")
+ ("skr"        "樂洛烙珞落諾酪駱")
+ ("sks"        "亂卵暖欄煖爛蘭難鸞")
+ ("skf"        "捏捺")
+ ("ska"        "南嵐枏楠湳濫男藍襤")
+ ("skq"        "拉納臘蠟衲")
+ ("skd"        "囊娘廊朗浪狼郎")
+ ("so" "乃來內奈柰耐")
+ ("sod"        "")
+ ("su" "")
+ ("sus"        "年撚秊")
+ ("sua"        "念恬拈捻")
+ ("sud"        "寧寗")
+ ("sh" "努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺")
+ ("shr"        "碌祿綠菉錄鹿")
+ ("shs"        "")
+ ("shd"        "壟弄濃籠聾膿農")
+ ("shl"        "惱牢磊腦賂雷")
+ ("sy" "尿")
+ ("sn" "壘屢樓淚漏累縷陋")
+ ("sns"        "")
+ ("snf"        "")
+ ("sb" "杻紐")
+ ("smr"        "勒肋")
+ ("sma"        "")
+ ("smd"        "凌稜綾能菱陵")
+ ("sl" "尼泥")
+ ("slr"        "匿溺")
+ ("ek" "多茶")
+ ("eks"        "丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛")
+ ("ekf"        "撻澾獺疸達")
+ ("eka"        "啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟")
+ ("ekq"        "沓畓答踏遝")
+ ("ekd"        "唐堂塘幢戇撞棠當糖螳黨")
+ ("eo" "代垈坮大對岱帶待戴擡玳臺袋貸隊黛")
+ ("eor"        "")
+ ("ejr"        "德悳")
+ ("eh" "倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜")
+ ("ehr"        "毒瀆牘犢獨督禿篤纛讀")
+ ("ehs"        "墩惇敦旽暾沌焞燉豚頓")
+ ("ehf"        "乭突")
+ ("ehd"        "仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅")
+ ("en" "兜斗杜枓痘竇荳讀豆逗頭")
+ ("ens"        "屯臀芚遁遯鈍")
+ ("emr"        "")
+ ("emd"        "嶝橙燈登等藤謄鄧騰")
+ ("fk" "喇懶拏癩羅蘿螺裸邏")
+ ("fkr"        "樂洛烙珞絡落諾酪駱")
+ ("fks"        "丹亂卵欄欒瀾爛蘭鸞")
+ ("fkf"        "剌辣")
+ ("fka"        "嵐擥攬欖濫籃纜藍襤覽")
+ ("fkq"        "拉臘蠟")
+ ("fkd"        "廊朗浪狼琅瑯螂郞")
+ ("fo" "來崍徠萊")
+ ("fod"        "")
+ ("fir"        "掠略")
+ ("fid"        "亮倆兩凉梁樑粮粱糧良諒輛量")
+ ("fu" "侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎")
+ ("fur"        "力曆歷瀝礫轢靂")
+ ("fus"        "憐戀攣漣煉璉練聯蓮輦連鍊")
+ ("fuf"        "冽列劣洌烈裂")
+ ("fua"        "廉斂殮濂簾")
+ ("fuq"        "")
+ ("fud"        "令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡")
+ ("fP" "例澧禮醴隷")
+ ("fh" "勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵")
+ ("fhr"        "碌祿綠菉錄鹿麓")
+ ("fhs"        "")
+ ("fhd"        "壟弄朧瀧瓏籠聾")
+ ("fhl"        "儡瀨牢磊賂賚賴雷")
+ ("fy" "了僚寮廖料燎療瞭聊蓼遼鬧")
+ ("fyd"        "")
+ ("fn" "壘婁屢樓淚漏瘻累縷蔞褸鏤陋")
+ ("fb" "劉旒柳榴流溜瀏琉瑠留瘤硫謬類")
+ ("fbr"        "六戮陸")
+ ("fbs"        "侖倫崙淪綸輪")
+ ("fbf"        "律慄栗率")
+ ("fbd"        "")
+ ("fmr"        "勒肋")
+ ("fma"        "")
+ ("fmd"        "凌楞稜綾菱陵")
+ ("fl" "俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉")
+ ("fls"        "吝潾燐璘藺躪隣鱗麟")
+ ("fla"        "林淋琳臨霖")
+ ("flq"        "砬立笠粒")
+ ("ak" "摩瑪痲碼磨馬魔麻")
+ ("akr"        "寞幕漠膜莫邈")
+ ("aks"        "万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻")
+ ("akf"        "唜抹末沫茉襪靺")
+ ("akd"        "亡妄忘忙望網罔芒茫莽輞邙")
+ ("ao" "埋妹媒寐昧枚梅每煤罵買賣邁魅")
+ ("aor"        "脈貊陌驀麥")
+ ("aod"        "孟氓猛盲盟萌")
+ ("aur"        "冪覓")
+ ("aus"        "免冕勉棉沔眄眠綿緬面麵")
+ ("auf"        "滅蔑")
+ ("aud"        "冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴")
+ ("aP" "")
+ ("ah" "侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌")
+ ("ahr"        "木沐牧目睦穆鶩")
+ ("ahf"        "歿沒")
+ ("ahd"        "夢朦蒙")
+ ("ay" "卯墓妙廟描昴杳渺猫竗苗錨")
+ ("an" "務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡")
+ ("anr"        "墨默")
+ ("ans"        "們刎吻問文汶紊紋聞蚊門雯")
+ ("anf"        "勿沕物")
+ ("al" "味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴")
+ ("als"        "岷悶愍憫敏旻旼民泯玟珉緡閔")
+ ("alf"        "密蜜謐")
+ ("qkr"        "剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁")
+ ("qks"        "伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯")
+ ("qkf"        "勃拔撥渤潑發跋醱鉢髮魃")
+ ("qkd"        "倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐")
+ ("qo" "倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪")
+ ("qor"        "伯佰帛柏栢白百魄")
+ ("qjs"        "幡樊煩燔番磻繁蕃藩飜")
+ ("qjf"        "伐筏罰閥")
+ ("qja"        "凡帆梵氾汎泛犯範范")
+ ("qjq"        "法琺")
+ ("qur"        "僻劈壁擘檗璧癖碧蘗闢霹")
+ ("qus"        "便卞弁變辨辯邊")
+ ("quf"        "別瞥鱉鼈")
+ ("qud"        "丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈")
+ ("qh" "保堡報寶普步洑湺潽珤甫菩補褓譜輔")
+ ("qhr"        "伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒")
+ ("qhs"        "")
+ ("qhf"        "")
+ ("qhd"        "俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳")
+ ("qn" "不付俯傅剖副否咐埠夫婦孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧")
+ ("qnr"        "")
+ ("qns"        "分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰")
+ ("qnf"        "不佛弗彿拂")
+ ("qnd"        "崩朋棚硼繃鵬")
+ ("ql" "丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥脾臂菲蜚裨誹譬費鄙非飛鼻")
+ ("qls"        "嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻")
+ ("qld"        "憑氷聘騁")
+ ("tk" "乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝")
+ ("tkr"        "削數朔索")
+ ("tks"        "傘刪山散汕珊産疝算蒜酸霰")
+ ("tkf"        "乷撒殺煞薩")
+ ("tka"        "三參杉森渗芟蔘衫")
+ ("tkq"        "揷澁鈒颯")
+ ("tkd"        "上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜")
+ ("to" "塞璽賽")
+ ("tor"        "嗇塞穡索色")
+ ("tod"        "牲生甥省笙")
+ ("tj" "墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署胥舒薯西誓逝鋤黍鼠")
+ ("tjr"        "夕奭席惜昔晳析汐淅潟石碩蓆釋錫")
+ ("tjs"        "仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮")
+ ("tjf"        "卨屑楔泄洩渫舌薛褻設說雪齧")
+ ("tja"        "剡暹殲纖蟾贍閃陝")
+ ("tjq"        "攝涉燮葉")
+ ("tjd"        "城姓宬性惺成星晟猩珹盛省筬聖聲腥誠醒")
+ ("tp" "世勢歲洗稅笹細說貰")
+ ("th" "召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷")
+ ("thr"        "俗屬束涑粟續謖贖速")
+ ("ths"        "孫巽損蓀遜飡")
+ ("thf"        "")
+ ("thd"        "宋悚松淞訟誦送頌")
+ ("tho"        "刷殺灑碎鎖")
+ ("thl"        "衰釗")
+ ("tn" "修受嗽囚垂壽嫂守岫峀帥愁戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚")
+ ("tnr"        "叔塾夙孰宿淑潚熟琡璹肅菽")
+ ("tns"        "巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴")
+ ("tnf"        "戌術述鉥")
+ ("tnd"        "崇崧嵩")
+ ("tmf"        "瑟膝蝨")
+ ("tmq"        "濕拾習褶襲")
+ ("tmd"        "丞乘僧勝升承昇繩蠅陞")
+ ("tl" "侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺")
+ ("tlr"        "埴寔式息拭植殖湜熄篒蝕識軾食飾")
+ ("tls"        "伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅")
+ ("tlf"        "失室實悉")
+ ("tla"        "審尋心沁沈深瀋甚芯諶")
+ ("tlq"        "什十拾")
+ ("Tkd"        "")
+ ("Tl" "")
+ ("dk" "亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝")
+ ("dkr"        "堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷")
+ ("dks"        "安岸按晏案眼雁鞍顔鮟")
+ ("dkf"        "斡謁軋閼")
+ ("dka"        "唵岩巖庵暗癌菴闇")
+ ("dkq"        "壓押狎鴨")
+ ("dkd"        "仰央怏昻殃秧鴦")
+ ("do" "厓哀埃崖愛曖涯碍艾隘靄")
+ ("dor"        "厄扼掖液縊腋額")
+ ("dod"        "櫻罌鶯鸚")
+ ("di" "也倻冶夜惹揶椰爺耶若野")
+ ("dir"        "弱掠略約若葯蒻藥躍")
+ ("did"        "亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養")
+ ("dj" "圄御於漁瘀禦語馭魚齬")
+ ("djr"        "億憶抑檍臆")
+ ("djs"        "偃堰彦焉言諺")
+ ("djf"        "孼蘖")
+ ("dja"        "俺儼嚴奄掩淹")
+ ("djq"        "嶪業")
+ ("dps"        "")
+ ("du" "予余勵呂女如廬旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎")
+ ("dur"        "亦力域役易曆歷疫繹譯轢逆驛")
+ ("dus"        "嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶")
+ ("duf"        "列劣咽悅涅烈熱裂說閱")
+ ("dua"        "厭廉念捻染殮炎焰琰艶苒簾閻髥鹽")
+ ("duq"        "曄獵燁葉")
+ ("dud"        "令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領")
+ ("dP" "乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預")
+ ("dh" "五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳烏熬獒筽蜈誤鰲鼇")
+ ("dhr"        "屋沃獄玉鈺")
+ ("dhs"        "溫瑥瘟穩縕蘊")
+ ("dhf"        "")
+ ("dhd"        "壅擁瓮甕癰翁邕雍饔")
+ ("dhk"        "渦瓦窩窪臥蛙蝸訛")
+ ("dhks"       "婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑")
+ ("dhkf"       "")
+ ("dhkd"       "往旺枉汪王")
+ ("dho"        "倭娃歪矮")
+ ("dhl"        "外嵬巍猥畏")
+ ("dy" "了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療窈窯繇繞耀腰蓼蟯要謠遙遼邀饒")
+ ("dyr"        "慾欲浴縟褥辱")
+ ("dyd"        "俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍")
+ ("dn" "于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩")
+ ("dnr"        "勖彧旭昱栯煜稶郁頊")
+ ("dns"        "云暈橒殞澐熉耘芸蕓運隕雲韻")
+ ("dnf"        "蔚鬱亐")
+ ("dnd"        "熊雄")
+ ("dnjs"       "元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛")
+ ("dnjf"       "月越鉞")
+ ("dnl"        "位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏")
+ ("db" "乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類")
+ ("dbr"        "六堉戮毓肉育陸")
+ ("dbs"        "倫允奫尹崙淪潤玧胤贇輪鈗閏")
+ ("dbf"        "律慄栗率聿")
+ ("dbd"        "戎瀜絨融隆")
+ ("dms"        "垠恩慇殷誾銀隱")
+ ("dmf"        "")
+ ("dma"        "吟淫蔭陰音飮")
+ ("dmq"        "揖泣邑")
+ ("dmd"        "凝應膺鷹")
+ ("dml"        "依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼議醫")
+ ("dl" "二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌")
+ ("dlr"        "匿溺瀷益翊翌翼謚")
+ ("dls"        "人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟")
+ ("dlf"        "一佚佾壹日溢逸鎰馹")
+ ("dla"        "任壬妊姙恁林淋稔臨荏賃")
+ ("dlq"        "入卄立笠粒")
+ ("dld"        "仍剩孕芿")
+ ("wk" "仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌")
+ ("wkr"        "作勺嚼斫昨灼炸爵綽芍酌雀鵲")
+ ("wks"        "孱棧殘潺盞")
+ ("wka"        "岑暫潛箴簪蠶")
+ ("wkq"        "")
+ ("wkd"        "丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長障")
+ ("wo" "再哉在宰才材栽梓渽滓災縡裁財載齋齎")
+ ("wod"        "爭箏諍錚")
+ ("wj" "佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟")
+ ("wjr"        "勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑")
+ ("wjs"        "佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞")
+ ("wjf"        "切截折浙癤竊節絶")
+ ("wja"        "占岾店漸点粘霑鮎點")
+ ("wjq"        "接摺蝶")
+ ("wjd"        "丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖靜頂鼎")
+ ("wp" "制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊")
+ ("wh" "俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥")
+ ("whr"        "族簇足鏃")
+ ("whs"        "存尊")
+ ("whf"        "卒拙猝")
+ ("whd"        "倧宗從悰慫棕淙琮種終綜縱腫踪踵鍾鐘")
+ ("whk"        "佐坐左座挫")
+ ("whl"        "")
+ ("wn" "主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐")
+ ("wnr"        "竹粥")
+ ("wns"        "俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿")
+ ("wnf"        "")
+ ("wnd"        "中仲衆重")
+ ("wmr"        "")
+ ("wmf"        "")
+ ("wmq"        "楫汁葺")
+ ("wmd"        "增憎曾拯烝甑症繒蒸證贈")
+ ("wl" "之只咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲")
+ ("wlr"        "直稙稷織職")
+ ("wls"        "唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震")
+ ("wlf"        "侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭")
+ ("wla"        "斟朕")
+ ("wlq"        "什執潗緝輯鏶集")
+ ("wld"        "徵懲澄")
+ ("ck" "且侘借叉嗟嵯差次此磋箚茶蹉車遮")
+ ("ckr"        "捉搾着窄錯鑿齪")
+ ("cks"        "撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌")
+ ("ckf"        "刹察擦札紮")
+ ("cka"        "僭參塹慘慙懺斬站讒讖")
+ ("ckd"        "倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼")
+ ("co" "債埰寀寨彩採砦綵菜蔡采釵")
+ ("cor"        "冊柵策責")
+ ("cj" "凄妻悽處")
+ ("cjr"        "倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻")
+ ("cjs"        "仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆")
+ ("cjf"        "凸哲喆徹撤澈綴輟轍鐵")
+ ("cja"        "僉尖沾添甛瞻簽籤詹諂")
+ ("cjq"        "堞妾帖捷牒疊睫諜貼輒")
+ ("cjd"        "廳晴淸聽菁請靑鯖")
+ ("cp" "切剃替涕滯締諦逮遞體")
+ ("ch" "初剿哨憔抄招梢椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮")
+ ("chr"        "促囑燭矗蜀觸")
+ ("chs"        "寸忖村邨")
+ ("chd"        "叢塚寵悤憁摠總聰蔥銃")
+ ("chkf"       "")
+ ("chl"        "催崔最")
+ ("cn" "墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍")
+ ("cnr"        "丑畜祝竺筑築縮蓄蹙蹴軸逐")
+ ("cns"        "春椿瑃")
+ ("cnf"        "出朮黜")
+ ("cnd"        "充忠沖蟲衝衷")
+ ("cnp"        "悴膵萃贅")
+ ("cnl"        "取吹嘴娶就炊翠聚脆臭趣醉驟鷲")
+ ("cmr"        "側仄厠惻測")
+ ("cmd"        "")
+ ("cl" "侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒")
+ ("clr"        "則勅飭")
+ ("cls"        "")
+ ("clf"        "七柒漆")
+ ("cla"        "侵寢枕沈浸琛砧針鍼")
+ ("clq"        "")
+ ("cld"        "秤稱")
+ ("zho"        "")
+ ("xk" "他咤唾墮妥惰打拖朶楕舵陀馱駝")
+ ("xkr"        "倬卓啄坼度托拓擢晫柝濁濯琢琸託鐸")
+ ("xks"        "呑嘆坦彈憚歎灘炭綻誕")
+ ("xkf"        "奪脫")
+ ("xka"        "探眈耽貪")
+ ("xkq"        "塔搭榻")
+ ("xkd"        "宕帑湯糖蕩")
+ ("xo" "兌台太怠態殆汰泰笞胎苔跆邰颱")
+ ("xor"        "宅擇澤")
+ ("xod"        "")
+ ("xj" "")
+ ("xh" "兎吐土討")
+ ("xhd"        "慟桶洞痛筒統通")
+ ("xhl"        "堆槌腿褪退頹")
+ ("xn" "偸套妬投透鬪")
+ ("xmr"        "慝特")
+ ("xma"        "")
+ ("vk" "坡婆巴把播擺杷波派爬琶破罷芭跛頗")
+ ("vks"        "判坂板版瓣販辦鈑阪")
+ ("vkf"        "八叭捌")
+ ("vo" "佩唄悖敗沛浿牌狽稗覇貝")
+ ("vod"        "彭澎烹膨")
+ ("vir"        "")
+ ("vus"        "便偏扁片篇編翩遍鞭騙")
+ ("vua"        "")
+ ("vud"        "坪平枰萍評")
+ ("vP" "吠嬖幣廢弊斃肺蔽閉陛")
+ ("vh" "佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑")
+ ("vhr"        "幅暴曝瀑爆輻")
+ ("vy" "俵剽彪慓杓標漂瓢票表豹飇飄驃")
+ ("vna"        "品稟")
+ ("vnd"        "楓諷豊風馮")
+ ("vl" "彼披疲皮被避陂")
+ ("vlf"        "匹弼必泌珌畢疋筆苾馝")
+ ("vlq"        "乏逼")
+ ("gk" "下何厦夏廈昰河瑕荷蝦賀遐霞鰕")
+ ("gkr"        "壑學虐謔鶴")
+ ("gks"        "寒恨悍旱汗漢澣瀚罕翰閑閒限韓")
+ ("gkf"        "割轄")
+ ("gka"        "函含咸啣喊檻涵緘艦銜陷鹹")
+ ("gkq"        "合哈盒蛤閤闔陜")
+ ("gkd"        "亢伉姮嫦巷恒抗杭桁沆港缸肛航行降項")
+ ("go" "亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸")
+ ("gor"        "劾核")
+ ("god"        "倖幸杏荇行")
+ ("gid"        "享向嚮珦鄕響餉饗香")
+ ("gj" "噓墟虛許")
+ ("gjs"        "憲櫶獻軒")
+ ("gjf"        "")
+ ("gja"        "險驗")
+ ("gur"        "奕爀赫革")
+ ("gus"        "俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯")
+ ("guf"        "孑穴血頁")
+ ("gua"        "")
+ ("guq"        "俠協夾峽挾浹狹脅脇莢鋏頰")
+ ("gud"        "亨兄刑型形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨")
+ ("gP" "兮彗惠慧暳蕙蹊醯鞋")
+ ("gh" "乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥")
+ ("ghr"        "惑或酷")
+ ("ghs"        "婚昏混渾琿魂")
+ ("ghf"        "忽惚笏")
+ ("ghd"        "哄弘汞泓洪烘紅虹訌鴻")
+ ("ghk"        "化和嬅樺火畵禍禾花華話譁貨靴")
+ ("ghkr"       "廓擴攫確碻穫")
+ ("ghks"       "丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥")
+ ("ghkf"       "活滑猾豁闊")
+ ("ghkd"       "凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃")
+ ("ghl"        "匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄")
+ ("ghlr"       "劃獲")
+ ("ghld"       "宖橫鐄")
+ ("gy" "哮嚆孝效斅曉梟涍淆爻肴酵驍")
+ ("gn" "侯候厚后吼喉嗅帿後朽煦珝逅")
+ ("gns"        "勛勳塤壎焄熏燻薰訓暈")
+ ("gnd"        "")
+ ("gnjs"       "喧暄煊萱")
+ ("gnp"        "卉喙毁")
+ ("gnl"        "彙徽揮暉煇諱輝麾")
+ ("gb" "休携烋畦虧")
+ ("gbf"        "恤譎鷸")
+ ("gbd"        "兇凶匈洶胸")
+ ("gmr"        "")
+ ("gms"        "昕欣炘痕")
+ ("gmf"        "吃屹紇訖")
+ ("gma"        "欠欽歆")
+ ("gmq"        "吸恰洽翕")
+ ("gmd"        "")
+ ("gml"        "僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲")
+ ("glf"        ""))
 
 ;;; hanja.el ends here
index 892d134af86b989827084822080ccf8811c56693..788683d6a73114ac6d3321ef0f14cb35aa0642d6 100644 (file)
@@ -1,4 +1,4 @@
-;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: iso-2022-7bit;-*-
+;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1999, 2001-2013 Free Software Foundation, Inc.
 
 (require 'quail)
 
 (quail-define-package
- "korean-hanja3" "Korean" "\e$(CyS\e(B3" t
- "3\e$(C9z=D\e(BKSC\e$(CySm.\e(B: \e$(Cz1SWGO4B\e(B \e$(CySm.@G\e(B \e$(Cj$@;\e(B \e$(CGQ1[\e(B3\e$(C9zcR@87N\e(B \e$(C{<usGO?)\e(B \e$(C`TwI\e(B"
+ "korean-hanja3" "Korean" "3" t
+ "3벌식KSC漢字: 該當하는 漢字의 韻을 한글3벌式으로 呼出하여 選擇"
                       nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("kf" "\e$(CJ!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=\e(B")
- ("kfx" "\e$(CJ>J?J@JAJBJCJDJEJFJGJH\e(B")
- ("kfs" "\e$(CJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`\e(B")
- ("kfw" "\e$(CJaJbJcJdJeJfJgJhJiJj\e(B")
- ("kfz" "\e$(CJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~\e(B")
- ("kf3" "\e$(CK!K"K#K$K%K&\e(B")
- ("kfa" "\e$(CK'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>\e(B")
- ("kr" "\e$(CK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKR\e(B")
- ("krx" "\e$(CKSKT\e(B")
- ("kra" "\e$(CKUKVKWKX\e(B")
- ("k6x" "\e$(CKY\e(B")
- ("kt" "\e$(CKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKj\e(B")
- ("kts" "\e$(CKkKlKmKnKoKpKqKrKsKtKuKv\e(B")
- ("ktw" "\e$(CKwKxKyKz\e(B")
- ("ktz" "\e$(CK{K|K}K~L!L"L#\e(B")
- ("kt3" "\e$(CL$L%L&\e(B")
- ("kc" "\e$(CL'L(L)\e(B")
- ("kex" "\e$(CL*L+L,L-L.L/L0\e(B")
- ("kes" "\e$(CL1L2L3L4L5L6L7L8L9L:L;\e(B")
- ("kew" "\e$(CL<L=L>L?L@LA\e(B")
- ("kez" "\e$(CLBLCLDLELFLG\e(B")
- ("kea" "\e$(CLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLt\e(B")
- ("k7" "\e$(CLuLvLwLxLyLzL{L|L}L~M!M"M#M$M%M&M'M(M)M*M+M,M-M.\e(B")
- ("kv" "\e$(CM/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMU\e(B")
- ("kvx" "\e$(CMVMWMXMYMZM[M\\e(B")
- ("kvs" "\e$(CM]M^M_M`MaMbMcMdMeMf\e(B")
- ("kvw" "\e$(CMgMhMi\e(B")
- ("kva" "\e$(CMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMy\e(B")
- ("kv!" "\e$(CMz\e(B")
- ("k/" "\e$(CM/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMU\e(B")
- ("k/x" "\e$(CMVMWMXMYMZM[M\\e(B")
- ("k/s" "\e$(CM]M^M_M`MaMbMcMdMeMf\e(B")
- ("k/w" "\e$(CMgMhMi\e(B")
- ("k/a" "\e$(CMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMy\e(B")
- ("k/!" "\e$(CMz\e(B")
- ("k/f" "\e$(CM{M|M}M~N!N"N#N$N%N&N'N(\e(B")
- ("k/fx" "\e$(CN)N*N+N,\e(B")
- ("k/fs" "\e$(CN-N.N/N0N1N2N3N4N5N6N7N8N9N:N;N<N=\e(B")
- ("k/fw" "\e$(CN>N?N@NA\e(B")
- ("k/fa" "\e$(CNBNCNDNENFNGNHNINJNKNLNMNN\e(B")
- ("k/r" "\e$(CNONPNQ\e(B")
- ("k/d" "\e$(CNRNSNTNUNVNWNXNYNZ\e(B")
- ("k/da" "\e$(CN[N\N]N^\e(B")
- ("k4" "\e$(CN_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNw\e(B")
- ("kb" "\e$(CNxNyNzN{N|N}N~O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOO\e(B")
- ("kbx" "\e$(COPOQOROSOTOU\e(B")
- ("kbs" "\e$(COVOWOXOYOZO[\e(B")
- ("kbw" "\e$(CO\O]O^O_\e(B")
- ("kba" "\e$(CO`OaObOcOdOe\e(B")
- ("k9" "\e$(CNxNyNzN{N|N}N~O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOO\e(B")
- ("k9x" "\e$(COPOQOROSOTOU\e(B")
- ("k9s" "\e$(COVOWOXOYOZO[\e(B")
- ("k9w" "\e$(CO\O]O^O_\e(B")
- ("k9a" "\e$(CO`OaObOcOdOe\e(B")
- ("k9ts" "\e$(COfOgOhOiOjOkOlOmOnOo\e(B")
- ("k9tw" "\e$(COpOqOrOsOt\e(B")
- ("k9c" "\e$(COuOvOwOxOyOz\e(B")
- ("k9d" "\e$(CO{O|O}O~P!P"\e(B")
- ("k5" "\e$(CP#P$P%P&P'P(P)P*P+P,P-P.P/P0P1\e(B")
- ("k5s" "\e$(CP2P3P4P5P6P7P8\e(B")
- ("k5w" "\e$(CP9\e(B")
- ("kgx" "\e$(CP:P;P<P=P>P?P@\e(B")
- ("kgs" "\e$(CPAPBPCPDPEPFPGPHPIPJPKPLPMPNPO\e(B")
- ("kgw" "\e$(CPP\e(B")
- ("kgz" "\e$(CPQPRPSPTPUPVPWPXPYPZP[P\P]P^\e(B")
- ("kg3" "\e$(CP_P`PaPbPcPdPe\e(B")
- ("kga" "\e$(CPfPgPhPi\e(B")
- ("kd" "\e$(CPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQK\e(B")
- ("kds" "\e$(CQL\e(B")
- ("kdw" "\e$(CQMQNQOQP\e(B")
- ("kdz" "\e$(CQQ\e(B")
- ("kkdx" "\e$(CQR\e(B")
- ("hf" "\e$(CQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`Qa\e(B")
- ("hfx" "\e$(CQbQcQdQeQfQgQhQi\e(B")
- ("hfs" "\e$(CQjQkQlQmQnQoQpQqQr\e(B")
- ("hfw" "\e$(CQsQt\e(B")
- ("hfz" "\e$(CQuQvQwQxQyQzQ{Q|Q}\e(B")
- ("hf3" "\e$(CQ~R!R"R#R$\e(B")
- ("hfa" "\e$(CR%R&R'R(R)R*R+\e(B")
- ("hr" "\e$(CR,R-R.R/R0R1\e(B")
- ("hra" "\e$(CR2\e(B")
- ("he" "\e$(CR3\e(B")
- ("hes" "\e$(CR4R5R6\e(B")
- ("hez" "\e$(CR7R8R9R:\e(B")
- ("hea" "\e$(CR;R<\e(B")
- ("hv" "\e$(CR=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRN\e(B")
- ("hvx" "\e$(CRORPRQRRRSRT\e(B")
- ("hvs" "\e$(CRU\e(B")
- ("hva" "\e$(CRVRWRXRYRZR[R\\e(B")
- ("h/" "\e$(CR=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRN\e(B")
- ("h/x" "\e$(CRORPRQRRRSRT\e(B")
- ("h/s" "\e$(CRU\e(B")
- ("h/a" "\e$(CRVRWRXRYRZR[R\\e(B")
- ("h/d" "\e$(CR]R^R_R`RaRb\e(B")
- ("h4" "\e$(CRc\e(B")
- ("hb" "\e$(CRdReRfRgRhRiRjRk\e(B")
- ("hbs" "\e$(CRl\e(B")
- ("hbw" "\e$(CRm\e(B")
- ("h9" "\e$(CRdReRfRgRhRiRjRk\e(B")
- ("h9s" "\e$(CRl\e(B")
- ("h9w" "\e$(CRm\e(B")
- ("h5" "\e$(CRnRo\e(B")
- ("hgx" "\e$(CRpRq\e(B")
- ("hgz" "\e$(CRr\e(B")
- ("hga" "\e$(CRsRtRuRvRwRx\e(B")
- ("hd" "\e$(CRyRz\e(B")
- ("hdx" "\e$(CR{R|\e(B")
- ("uf" "\e$(CR}R~\e(B")
- ("ufs" "\e$(CS!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4\e(B")
- ("ufw" "\e$(CS5S6S7S8S9\e(B")
- ("ufz" "\e$(CS:S;S<S=S>S?S@SASBSCSDSESFSGSHSISJ\e(B")
- ("uf3" "\e$(CSKSLSMSNSO\e(B")
- ("ufa" "\e$(CSPSQSRSSSTSUSVSWSXSYSZ\e(B")
- ("ur" "\e$(CS[S\S]S^S_S`SaSbScSdSeSfSgShSiSj\e(B")
- ("urx" "\e$(CSk\e(B")
- ("utx" "\e$(CSlSm\e(B")
- ("uv" "\e$(CSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7\e(B")
- ("uvx" "\e$(CT8T9T:T;T<T=T>T?T@TA\e(B")
- ("uvs" "\e$(CTBTCTDTETFTGTHTITJTK\e(B")
- ("uvw" "\e$(CTLTM\e(B")
- ("uva" "\e$(CTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^\e(B")
- ("u/" "\e$(CSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7\e(B")
- ("u/x" "\e$(CT8T9T:T;T<T=T>T?T@TA\e(B")
- ("u/s" "\e$(CTBTCTDTETFTGTHTITJTK\e(B")
- ("u/w" "\e$(CTLTM\e(B")
- ("u/a" "\e$(CTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^\e(B")
- ("ub" "\e$(CT_T`TaTbTcTdTeTfTgThTi\e(B")
- ("ubs" "\e$(CTjTkTlTmTnTo\e(B")
- ("u9" "\e$(CT_T`TaTbTcTdTeTfTgThTi\e(B")
- ("u9s" "\e$(CTjTkTlTmTnTo\e(B")
- ("ugx" "\e$(CTp\e(B")
- ("uga" "\e$(CTqTrTsTtTuTvTwTxTy\e(B")
- ("yf" "\e$(CTzT{T|T}T~U!U"U#U$\e(B")
- ("yfx" "\e$(CU%U&U'U(U)U*U+U,U-\e(B")
- ("yfs" "\e$(CU.U/U0U1U2U3U4U5U6\e(B")
- ("yfw" "\e$(CU7U8\e(B")
- ("yfz" "\e$(CU9U:U;U<U=U>U?U@UAUB\e(B")
- ("yf3" "\e$(CUCUDUE\e(B")
- ("yfa" "\e$(CUFUGUHUIUJUKULUM\e(B")
- ("yr" "\e$(CUNUOUPUQ\e(B")
- ("yra" "\e$(CUR\e(B")
- ("y6x" "\e$(CUSUT\e(B")
- ("y6a" "\e$(CUUUVUWUXUYUZU[U\U]U^U_U`Ua\e(B")
- ("ye" "\e$(CUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUs\e(B")
- ("yex" "\e$(CUtUuUvUwUxUyUz\e(B")
- ("yes" "\e$(CU{U|U}U~V!V"V#V$V%V&V'V(\e(B")
- ("yew" "\e$(CV)V*V+V,V-V.\e(B")
- ("yez" "\e$(CV/V0V1V2V3\e(B")
- ("ye3" "\e$(CV4\e(B")
- ("yea" "\e$(CV5V6V7V8V9V:V;V<V=V>V?V@VAVBVCVDVEVF\e(B")
- ("y7" "\e$(CVGVHVIVJVK\e(B")
- ("yv" "\e$(CVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]\e(B")
- ("yvx" "\e$(CV^V_V`VaVbVcVd\e(B")
- ("yvs" "\e$(CVe\e(B")
- ("yva" "\e$(CVfVgVhViVjVkVl\e(B")
- ("y/" "\e$(CVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]\e(B")
- ("y/x" "\e$(CV^V_V`VaVbVcVd\e(B")
- ("y/s" "\e$(CVe\e(B")
- ("y/a" "\e$(CVfVgVhViVjVkVl\e(B")
- ("y/d" "\e$(CVmVnVoVpVqVrVsVt\e(B")
- ("y4" "\e$(CVuVvVwVxVyVzV{V|V}V~W!W"\e(B")
- ("y4a" "\e$(CW#\e(B")
- ("yb" "\e$(CW$W%W&W'W(W)W*W+W,W-W.W/W0\e(B")
- ("y9" "\e$(CW$W%W&W'W(W)W*W+W,W-W.W/W0\e(B")
- ("y5" "\e$(CW1W2W3W4W5W6W7W8W9W:W;W<W=W>\e(B")
- ("y5x" "\e$(CW?W@WA\e(B")
- ("y5s" "\e$(CWBWCWDWEWFWG\e(B")
- ("y5w" "\e$(CWHWIWJWK\e(B")
- ("y5a" "\e$(CWL\e(B")
- ("ygx" "\e$(CWMWN\e(B")
- ("ygz" "\e$(CWO\e(B")
- ("yga" "\e$(CWPWQWRWSWTWU\e(B")
- ("yd" "\e$(CWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWo\e(B")
- ("yds" "\e$(CWpWqWrWsWtWuWvWwWx\e(B")
- ("ydz" "\e$(CWyWzW{W|W}\e(B")
- ("yd3" "\e$(CW~X!X"X#\e(B")
- ("if" "\e$(CX$X%X&X'X(X)X*X+\e(B")
- ("ifx" "\e$(CX,X-X.X/X0X1\e(B")
- ("ifs" "\e$(CX2X3X4X5X6X7X8X9X:X;X<X=X>X?X@XAXBXCXD\e(B")
- ("ifw" "\e$(CXEXFXGXHXIXJXK\e(B")
- ("ifa" "\e$(CXLXMXNXOXPXQXRXSXTXUXVXW\e(B")
- ("ir" "\e$(CXXXYXZX[X\X]X^X_X`XaXbXcXdXe\e(B")
- ("irx" "\e$(CXfXgXhXiXj\e(B")
- ("ira" "\e$(CXkXlXmXnXoXp\e(B")
- ("iex" "\e$(CXqXr\e(B")
- ("ies" "\e$(CXsXtXuXvXwXxXyXzX{X|X}\e(B")
- ("iew" "\e$(CX~Y!\e(B")
- ("iea" "\e$(CY"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0\e(B")
- ("i7" "\e$(CY1\e(B")
- ("iv" "\e$(CY2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYI\e(B")
- ("ivx" "\e$(CYJYKYLYMYNYOYP\e(B")
- ("ivw" "\e$(CYQYR\e(B")
- ("iva" "\e$(CYSYTYU\e(B")
- ("i/" "\e$(CY2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYI\e(B")
- ("i/x" "\e$(CYJYKYLYMYNYOYP\e(B")
- ("i/w" "\e$(CYQYR\e(B")
- ("i/a" "\e$(CYSYTYU\e(B")
- ("i4" "\e$(CYVYWYXYYYZY[Y\Y]Y^Y_Y`Ya\e(B")
- ("ib" "\e$(CYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYw\e(B")
- ("ibx" "\e$(CYxYy\e(B")
- ("ibs" "\e$(CYzY{Y|Y}Y~Z!Z"Z#Z$Z%Z&Z'\e(B")
- ("ibw" "\e$(CZ(Z)Z*\e(B")
- ("i9" "\e$(CYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYw\e(B")
- ("i9x" "\e$(CYxYy\e(B")
- ("i9s" "\e$(CYzY{Y|Y}Y~Z!Z"Z#Z$Z%Z&Z'\e(B")
- ("i9w" "\e$(CZ(Z)Z*\e(B")
- ("id" "\e$(CZ+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=\e(B")
- ("ids" "\e$(CZ>Z?Z@ZAZBZCZDZEZFZGZHZIZJ\e(B")
- ("idw" "\e$(CZKZLZM\e(B")
- (";fx" "\e$(CZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`\e(B")
- (";fs" "\e$(CZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZy\e(B")
- (";fw" "\e$(CZzZ{Z|Z}Z~[!["[#[$[%[&\e(B")
- (";fa" "\e$(C['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B\e(B")
- (";r" "\e$(C[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V\e(B")
- (";rx" "\e$(C[W[X[Y[Z[[[\[][^\e(B")
- (";ts" "\e$(C[_[`[a[b[c[d[e[f[g[h\e(B")
- (";tw" "\e$(C[i[j[k[l\e(B")
- (";tz" "\e$(C[m[n[o[p[q[r[s[t[u\e(B")
- (";t3" "\e$(C[v[w\e(B")
- (";ex" "\e$(C[x[y[z[{[|[}[~\!\"\#\$\e(B")
- (";es" "\e$(C\%\&\'\(\)\*\+\e(B")
- (";ew" "\e$(C\,\-\.\/\e(B")
- (";ea" "\e$(C\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\e(B")
- (";v" "\e$(C\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\e(B")
- (";vx" "\e$(C\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\e(B")
- (";vs" "\e$(C\b\e(B")
- (";vw" "\e$(C\c\e(B")
- (";va" "\e$(C\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\e(B")
- (";/" "\e$(C\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\e(B")
- (";/x" "\e$(C\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\e(B")
- (";/s" "\e$(C\b\e(B")
- (";/w" "\e$(C\c\e(B")
- (";/a" "\e$(C\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\e(B")
- (";b" "\e$(C\t\u\v\w\x\y\z\{\|\}\~]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@\e(B")
- (";bx" "\e$(C]A\e(B")
- (";bs" "\e$(C]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T\e(B")
- (";bw" "\e$(C]U]V]W]X]Y\e(B")
- (";ba" "\e$(C]Z][]\]]]^]_\e(B")
- (";9" "\e$(C\t\u\v\w\x\y\z\{\|\}\~]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@\e(B")
- (";9x" "\e$(C]A\e(B")
- (";9s" "\e$(C]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T\e(B")
- (";9w" "\e$(C]U]V]W]X]Y\e(B")
- (";9a" "\e$(C]Z][]\]]]^]_\e(B")
- (";d" "\e$(C]`]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]{]|]}]~^!^"^#^$^%^&^'^(^)^*^+^,\e(B")
- (";ds" "\e$(C^-^.^/^0^1^2^3^4^5^6^7^8^9^:\e(B")
- (";da" "\e$(C^;^<^=^>\e(B")
- ("nf" "\e$(C^?^@^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^[^\^]^^^_^`^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\e(B")
- ("nfx" "\e$(C^{^|^}^~\e(B")
- ("nfs" "\e$(C_!_"_#_$_%_&_'_(_)_*_+_,\e(B")
- ("nfw" "\e$(C_-_._/_0_1\e(B")
- ("nfz" "\e$(C_2_3_4_5_6_7_8_9\e(B")
- ("nf3" "\e$(C_:_;_<_=\e(B")
- ("nfa" "\e$(C_>_?_@_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_[_\\e(B")
- ("nr" "\e$(C_]_^__\e(B")
- ("nrx" "\e$(C_`_a_b_c_d\e(B")
- ("nra" "\e$(C_e_f_g_h_i\e(B")
- ("nt" "\e$(C_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_{_|_}_~`!`"`#`$`%`&`'`(`)\e(B")
- ("ntx" "\e$(C`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8\e(B")
- ("nts" "\e$(C`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X\e(B")
- ("ntw" "\e$(C`Y`Z`[`\`]`^`_```a`b`c`d`e\e(B")
- ("ntz" "\e$(C`f`g`h`i`j`k`l`m\e(B")
- ("nt3" "\e$(C`n`o`p`q\e(B")
- ("nta" "\e$(C`r`s`t`u`v`w`x`y`z`{`|`}`~a!a"a#a$a%\e(B")
- ("nc" "\e$(Ca&a'a(a)a*a+a,a-a.\e(B")
- ("nv" "\e$(Ca/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaS\e(B")
- ("nvx" "\e$(CaTaUaVaWaXaYaZa[a\\e(B")
- ("nvs" "\e$(Ca]a^a_a`aaab\e(B")
- ("nvw" "\e$(Cac\e(B")
- ("nva" "\e$(Cadaeafagahaiajak\e(B")
- ("n/" "\e$(Ca/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaS\e(B")
- ("n/x" "\e$(CaTaUaVaWaXaYaZa[a\\e(B")
- ("n/s" "\e$(Ca]a^a_a`aaab\e(B")
- ("n/w" "\e$(Cac\e(B")
- ("n/a" "\e$(Cadaeafagahaiajak\e(B")
- ("n/r" "\e$(Calamanaoap\e(B")
- ("n/d" "\e$(Caqar\e(B")
- ("nb" "\e$(Casatauavawaxayaza{a|a}a~b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQ\e(B")
- ("nbx" "\e$(CbRbSbTbUbVbWbXbYbZb[b\b]\e(B")
- ("nbs" "\e$(Cb^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbx\e(B")
- ("nbw" "\e$(Cbybzb{b|\e(B")
- ("nba" "\e$(Cb}b~c!\e(B")
- ("n9" "\e$(Casatauavawaxayaza{a|a}a~b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQ\e(B")
- ("n9x" "\e$(CbRbSbTbUbVbWbXbYbZb[b\b]\e(B")
- ("n9s" "\e$(Cb^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbx\e(B")
- ("n9w" "\e$(Cbybzb{b|\e(B")
- ("n9a" "\e$(Cb}b~c!\e(B")
- ("ngw" "\e$(Cc"c#c$\e(B")
- ("ng3" "\e$(Cc%c&c'c(c)\e(B")
- ("nga" "\e$(Cc*c+c,c-c.c/c0c1c2c3\e(B")
- ("nd" "\e$(Cc4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcO\e(B")
- ("ndx" "\e$(CcPcQcRcScTcUcVcWcXcYcZc[c\c]c^\e(B")
- ("nds" "\e$(Cc_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucv\e(B")
- ("ndw" "\e$(Ccwcxcycz\e(B")
- ("ndz" "\e$(Cc{c|c}c~d!d"d#d$d%d&\e(B")
- ("nd3" "\e$(Cd'd(d)\e(B")
- ("nnfa" "\e$(Cd*\e(B")
- ("nnd" "\e$(Cd+\e(B")
- ("jf" "\e$(Cd,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=\e(B")
- ("jfx" "\e$(Cd>d?d@dAdBdCdDdEdFdGdHdIdJdK\e(B")
- ("jfs" "\e$(CdLdMdNdOdPdQdRdSdTdU\e(B")
- ("jfw" "\e$(CdVdWdXdY\e(B")
- ("jfz" "\e$(CdZd[d\d]d^d_d`da\e(B")
- ("jf3" "\e$(Cdbdcddde\e(B")
- ("jfa" "\e$(Cdfdgdhdidjdkdl\e(B")
- ("jr" "\e$(Cdmdndodpdqdrdsdtdudvdw\e(B")
- ("jrx" "\e$(Cdxdydzd{d|d}d~\e(B")
- ("jra" "\e$(Ce!e"e#e$\e(B")
- ("j6" "\e$(Ce%e&e'e(e)e*e+e,e-e.e/\e(B")
- ("j6x" "\e$(Ce0e1e2e3e4e5e6e7e8\e(B")
- ("j6a" "\e$(Ce9e:e;e<e=e>e?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeW\e(B")
- ("jt" "\e$(CeXeYeZe[e\e]e^e_e`ea\e(B")
- ("jtx" "\e$(Cebecedeeef\e(B")
- ("jts" "\e$(Cegeheiejekel\e(B")
- ("jtw" "\e$(Cemen\e(B")
- ("jtz" "\e$(Ceoepeqereset\e(B")
- ("jt3" "\e$(Ceuev\e(B")
- ("jcs" "\e$(Cew\e(B")
- ("je" "\e$(Cexeyeze{e|e}e~f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1\e(B")
- ("jex" "\e$(Cf2f3f4f5f6f7f8f9f:f;f<f=f>\e(B")
- ("jes" "\e$(Cf?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcfdfefffgfhfi\e(B")
- ("jew" "\e$(Cfjfkflfmfnfofpfqfrfs\e(B")
- ("jez" "\e$(Cftfufvfwfxfyfzf{f|f}f~g!g"g#g$\e(B")
- ("je3" "\e$(Cg%g&g'g(\e(B")
- ("jea" "\e$(Cg)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgP\e(B")
- ("j7" "\e$(CgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcgdgegfgggh\e(B")
- ("jv" "\e$(Cgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~h!h"h#h$h%h&h'h(\e(B")
- ("jvx" "\e$(Ch)h*h+h,h-\e(B")
- ("jvs" "\e$(Ch.h/h0h1h2h3\e(B")
- ("jvw" "\e$(Ch4\e(B")
- ("jva" "\e$(Ch5h6h7h8h9h:h;h<h=\e(B")
- ("j/" "\e$(Cgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~h!h"h#h$h%h&h'h(\e(B")
- ("j/x" "\e$(Ch)h*h+h,h-\e(B")
- ("j/s" "\e$(Ch.h/h0h1h2h3\e(B")
- ("j/w" "\e$(Ch4\e(B")
- ("j/a" "\e$(Ch5h6h7h8h9h:h;h<h=\e(B")
- ("j/f" "\e$(Ch>h?h@hAhBhChDhE\e(B")
- ("j/fs" "\e$(ChFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhW\e(B")
- ("j/fw" "\e$(ChX\e(B")
- ("j/fa" "\e$(ChYhZh[h\h]\e(B")
- ("j/r" "\e$(Ch^h_h`ha\e(B")
- ("j/d" "\e$(Chbhchdhehf\e(B")
- ("j4" "\e$(Chghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~i!i"i#i$i%i&i'i(i)i*i+i,i-i.\e(B")
- ("j4x" "\e$(Ci/i0i1i2i3i4\e(B")
- ("j4a" "\e$(Ci5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiL\e(B")
- ("jb" "\e$(CiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikil\e(B")
- ("jbx" "\e$(Ciminioipiqirisitiu\e(B")
- ("jbs" "\e$(Civiwixiyizi{i|i}i~j!j"j#j$\e(B")
- ("jbw" "\e$(Cj%j&j'\e(B")
- ("jba" "\e$(Cj(j)\e(B")
- ("j9" "\e$(CiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikil\e(B")
- ("j9x" "\e$(Ciminioipiqirisitiu\e(B")
- ("j9s" "\e$(Civiwixiyizi{i|i}i~j!j"j#j$\e(B")
- ("j9w" "\e$(Cj%j&j'\e(B")
- ("j9a" "\e$(Cj(j)\e(B")
- ("j9ts" "\e$(Cj*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjD\e(B")
- ("j9tw" "\e$(CjEjFjG\e(B")
- ("j9d" "\e$(CjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`\e(B")
- ("j5" "\e$(Cjajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:\e(B")
- ("j5x" "\e$(Ck;k<k=k>k?k@kA\e(B")
- ("j5s" "\e$(CkBkCkDkEkFkGkHkIkJkKkLkMkN\e(B")
- ("j5w" "\e$(CkOkPkQkRkS\e(B")
- ("j5a" "\e$(CkTkUkVkWkX\e(B")
- ("jgs" "\e$(CkYkZk[k\k]k^k_\e(B")
- ("jgw" "\e$(Ck`\e(B")
- ("jgz" "\e$(Ckakbkckdkekf\e(B")
- ("jg3" "\e$(Ckgkhki\e(B")
- ("jga" "\e$(Ckjkkklkm\e(B")
- ("j8" "\e$(Cknkokpkqkrksktkukvkwkxkykzk{k|k}k~l!l"\e(B")
- ("jd" "\e$(Cl#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlElFlGlH\e(B")
- ("jdx" "\e$(ClIlJlKlLlMlNlOlP\e(B")
- ("jds" "\e$(ClQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglh\e(B")
- ("jdw" "\e$(Cliljlklllmlnlolplq\e(B")
- ("jdz" "\e$(Clrlsltlulvlwlxlylzl{l|\e(B")
- ("jd3" "\e$(Cl}l~m!m"m#\e(B")
- ("jda" "\e$(Cm$m%m&m'\e(B")
- ("lf" "\e$(Cm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;m<m=m>m?m@mA\e(B")
- ("lfx" "\e$(CmBmCmDmEmFmGmHmImJmKmLmMmN\e(B")
- ("lfs" "\e$(CmOmPmQmRmS\e(B")
- ("lfz" "\e$(CmTmUmVmWmXmY\e(B")
- ("lf3" "\e$(CmZ\e(B")
- ("lfa" "\e$(Cm[m\m]m^m_m`mambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~n!\e(B")
- ("lr" "\e$(Cn"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2\e(B")
- ("lra" "\e$(Cn3n4n5n6\e(B")
- ("lt" "\e$(Cn7n8n9n:n;n<n=n>n?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnR\e(B")
- ("ltx" "\e$(CnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncndnenfngnhninjnk\e(B")
- ("lts" "\e$(Cnlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6\e(B")
- ("ltw" "\e$(Co7o8o9o:o;o<o=o>\e(B")
- ("ltz" "\e$(Co?o@oAoBoCoDoEoFoG\e(B")
- ("lt3" "\e$(CoHoIoJ\e(B")
- ("lta" "\e$(CoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozo{o|o}o~p!p"p#\e(B")
- ("lc" "\e$(Cp$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:\e(B")
- ("lv" "\e$(Cp;p<p=p>p?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgph\e(B")
- ("lvx" "\e$(Cpipjpkpl\e(B")
- ("lvs" "\e$(Cpmpn\e(B")
- ("lvw" "\e$(Cpopppq\e(B")
- ("lva" "\e$(Cprpsptpupvpwpxpypzp{p|p}p~q!q"q#q$\e(B")
- ("l/" "\e$(Cp;p<p=p>p?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgph\e(B")
- ("l/x" "\e$(Cpipjpkpl\e(B")
- ("l/s" "\e$(Cpmpn\e(B")
- ("l/w" "\e$(Cpopppq\e(B")
- ("l/a" "\e$(Cprpsptpupvpwpxpypzp{p|p}p~q!q"q#q$\e(B")
- ("l/f" "\e$(Cq%q&q'q(q)\e(B")
- ("l/d" "\e$(Cq*\e(B")
- ("lb" "\e$(Cq+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;q<q=q>q?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqR\e(B")
- ("lbx" "\e$(CqSqT\e(B")
- ("lbs" "\e$(CqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqg\e(B")
- ("lbw" "\e$(Cqh\e(B")
- ("lba" "\e$(Cqiqjqkql\e(B")
- ("l9" "\e$(Cq+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;q<q=q>q?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqR\e(B")
- ("l9x" "\e$(CqSqT\e(B")
- ("l9s" "\e$(CqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqg\e(B")
- ("l9w" "\e$(Cqh\e(B")
- ("l9a" "\e$(Cqiqjqkql\e(B")
- ("lgx" "\e$(Cqm\e(B")
- ("lgw" "\e$(Cqn\e(B")
- ("lg3" "\e$(Cqoqpqq\e(B")
- ("lga" "\e$(Cqrqsqtquqvqwqxqyqzq{q|\e(B")
- ("ld" "\e$(Cq}q~r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@\e(B")
- ("ldx" "\e$(CrArBrCrDrE\e(B")
- ("lds" "\e$(CrFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrh\e(B")
- ("ldw" "\e$(Crirjrkrlrmrnrorprqrrrsrtrurvrw\e(B")
- ("ldz" "\e$(Crxry\e(B")
- ("ld3" "\e$(Crzr{r|r}r~s!s"\e(B")
- ("lda" "\e$(Cs#s$s%\e(B")
- ("of" "\e$(Cs&s's(s)s*s+s,s-s.s/s0s1s2s3s4\e(B")
- ("ofx" "\e$(Cs5s6s7s8s9s:s;\e(B")
- ("ofs" "\e$(Cs<s=s>s?s@sAsBsCsDsEsFsGsHsIsJ\e(B")
- ("ofw" "\e$(CsKsLsMsNsO\e(B")
- ("ofz" "\e$(CsPsQsRsSsTsUsVsWsXsY\e(B")
- ("ofa" "\e$(CsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnso\e(B")
- ("or" "\e$(Cspsqsrssstsusvswsxsyszs{\e(B")
- ("orx" "\e$(Cs|s}s~t!\e(B")
- ("ot" "\e$(Ct"t#t$t%\e(B")
- ("otx" "\e$(Ct&t't(t)t*t+t,t-t.t/t0t1t2t3t4\e(B")
- ("ots" "\e$(Ct5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtG\e(B")
- ("otw" "\e$(CtHtItJtKtLtMtNtOtPtQ\e(B")
- ("otz" "\e$(CtRtStTtUtVtWtXtYtZt[\e(B")
- ("ot3" "\e$(Ct\t]t^t_t`tatbtctdte\e(B")
- ("ota" "\e$(Ctftgthtitjtktltm\e(B")
- ("oc" "\e$(Ctntotptqtrtstttutvtw\e(B")
- ("ov" "\e$(Ctxtytzt{t|t}t~u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4\e(B")
- ("ovx" "\e$(Cu5u6u7u8u9u:\e(B")
- ("ovs" "\e$(Cu;u<u=u>\e(B")
- ("ova" "\e$(Cu?u@uAuBuCuDuEuFuGuH\e(B")
- ("o/" "\e$(Ctxtytzt{t|t}t~u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4\e(B")
- ("o/x" "\e$(Cu5u6u7u8u9u:\e(B")
- ("o/s" "\e$(Cu;u<u=u>\e(B")
- ("o/a" "\e$(Cu?u@uAuBuCuDuEuFuGuH\e(B")
- ("o/fw" "\e$(CuI\e(B")
- ("o/d" "\e$(CuJuKuL\e(B")
- ("ob" "\e$(CuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubuc\e(B")
- ("obx" "\e$(Cudueufuguhuiujukulumunuo\e(B")
- ("obs" "\e$(Cupuqur\e(B")
- ("obw" "\e$(Cusutuu\e(B")
- ("oba" "\e$(Cuvuwuxuyuzu{\e(B")
- ("o9" "\e$(CuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubuc\e(B")
- ("o9x" "\e$(Cudueufuguhuiujukulumunuo\e(B")
- ("o9s" "\e$(Cupuqur\e(B")
- ("o9w" "\e$(Cusutuu\e(B")
- ("o9a" "\e$(Cuvuwuxuyuzu{\e(B")
- ("o9c" "\e$(Cu|u}u~v!\e(B")
- ("o9d" "\e$(Cv"v#v$v%v&v'v(v)v*v+v,v-v.v/\e(B")
- ("ogx" "\e$(Cv0v1v2v3v4\e(B")
- ("oga" "\e$(Cv5\e(B")
- ("od" "\e$(Cv6v7v8v9v:v;v<v=v>v?v@vAvBvCvDvEvFvGvHvIvJvKvLvM\e(B")
- ("odx" "\e$(CvNvOvP\e(B")
- ("ods" "\e$(CvQ\e(B")
- ("odw" "\e$(CvRvSvT\e(B")
- ("odz" "\e$(CvUvVvWvXvYvZv[v\v]\e(B")
- ("od3" "\e$(Cv^\e(B")
- ("oda" "\e$(Cv_v`\e(B")
- ("0/r" "\e$(Cva\e(B")
- ("'f" "\e$(Cvbvcvdvevfvgvhvivjvkvlvmvnvo\e(B")
- ("'fx" "\e$(Cvpvqvrvsvtvuvvvwvxvyvzv{v|v}v~w!\e(B")
- ("'fs" "\e$(Cw"w#w$w%w&w'w(w)w*w+\e(B")
- ("'fw" "\e$(Cw,w-\e(B")
- ("'fz" "\e$(Cw.w/w0w1\e(B")
- ("'f3" "\e$(Cw2w3w4\e(B")
- ("'fa" "\e$(Cw5w6w7w8w9\e(B")
- ("'r" "\e$(Cw:w;w<w=w>w?w@wAwBwCwDwEwFwG\e(B")
- ("'rx" "\e$(CwHwIwJ\e(B")
- ("'ra" "\e$(CwK\e(B")
- ("'t" "\e$(CwL\e(B")
- ("'v" "\e$(CwMwNwOwP\e(B")
- ("'va" "\e$(CwQwRwSwTwUwVwW\e(B")
- ("'/" "\e$(CwMwNwOwP\e(B")
- ("'/a" "\e$(CwQwRwSwTwUwVwW\e(B")
- ("'/d" "\e$(CwXwYwZw[w\w]\e(B")
- ("'b" "\e$(Cw^w_w`wawbwc\e(B")
- ("'9" "\e$(Cw^w_w`wawbwc\e(B")
- ("'gx" "\e$(Cwdwe\e(B")
- ("'gz" "\e$(Cwf\e(B")
- ("pf" "\e$(Cwgwhwiwjwkwlwmwnwowpwqwrwswtwuwv\e(B")
- ("pfs" "\e$(Cwwwxwywzw{w|w}w~x!\e(B")
- ("pfw" "\e$(Cx"x#x$\e(B")
- ("pr" "\e$(Cx%x&x'x(x)x*x+x,x-x.x/\e(B")
- ("pra" "\e$(Cx0x1x2x3\e(B")
- ("p6x" "\e$(Cx4\e(B")
- ("pes" "\e$(Cx5x6x7x8x9x:x;x<x=x>\e(B")
- ("pez" "\e$(Cx?\e(B")
- ("pea" "\e$(Cx@xAxBxCxD\e(B")
- ("p7" "\e$(CxExFxGxHxIxJxKxLxMxN\e(B")
- ("pv" "\e$(CxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixj\e(B")
- ("pvx" "\e$(Cxkxlxmxnxoxp\e(B")
- ("p/" "\e$(CxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixj\e(B")
- ("p/x" "\e$(Cxkxlxmxnxoxp\e(B")
- ("p4" "\e$(Cxqxrxsxtxuxvxwxxxyxzx{x|x}x~\e(B")
- ("pbz" "\e$(Cy!y"\e(B")
- ("pba" "\e$(Cy#y$y%y&y'\e(B")
- ("p9z" "\e$(Cy!y"\e(B")
- ("p9a" "\e$(Cy#y$y%y&y'\e(B")
- ("pd" "\e$(Cy(y)y*y+y,y-y.\e(B")
- ("pdw" "\e$(Cy/y0y1y2y3y4y5y6y7y8\e(B")
- ("pd3" "\e$(Cy9y:\e(B")
- ("mf" "\e$(Cy;y<y=y>y?y@yAyByCyDyEyFyGyH\e(B")
- ("mfx" "\e$(CyIyJyKyLyM\e(B")
- ("mfs" "\e$(CyNyOyPyQyRySyTyUyVyWyXyYyZy[\e(B")
- ("mfw" "\e$(Cy\y]\e(B")
- ("mfz" "\e$(Cy^y_y`yaybycydyeyfygyhyi\e(B")
- ("mf3" "\e$(Cyjykylymynyoyp\e(B")
- ("mfa" "\e$(Cyqyrysytyuyvywyxyyyzy{y|y}y~z!z"z#\e(B")
- ("mr" "\e$(Cz$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5\e(B")
- ("mrx" "\e$(Cz6z7\e(B")
- ("mra" "\e$(Cz8z9z:z;z<\e(B")
- ("m6a" "\e$(Cz=z>z?z@zAzBzCzDzE\e(B")
- ("mt" "\e$(CzFzGzHzI\e(B")
- ("mts" "\e$(CzJzKzLzM\e(B")
- ("mtw" "\e$(CzN\e(B")
- ("mtz" "\e$(CzOzP\e(B")
- ("mex" "\e$(CzQzRzSzT\e(B")
- ("mes" "\e$(CzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzi\e(B")
- ("mew" "\e$(Czjzkzlzm\e(B")
- ("mez" "\e$(Czn\e(B")
- ("me3" "\e$(Czozpzqzrzsztzuzvzwzxzyzz\e(B")
- ("mea" "\e$(Cz{z|z}z~{!{"{#{${%{&{'{({){*{+{,{-{.{/{0\e(B")
- ("m7" "\e$(C{1{2{3{4{5{6{7{8{9\e(B")
- ("mv" "\e$(C{:{;{<{={>{?{@{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{[{\{]{^{_{`{a{b\e(B")
- ("mvx" "\e$(C{c{d{e\e(B")
- ("mvs" "\e$(C{f{g{h{i{j{k\e(B")
- ("mvw" "\e$(C{l{m{n\e(B")
- ("mva" "\e$(C{o{p{q{r{s{t{u{v{w{x\e(B")
- ("m/" "\e$(C{:{;{<{={>{?{@{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{[{\{]{^{_{`{a{b\e(B")
- ("m/x" "\e$(C{c{d{e\e(B")
- ("m/s" "\e$(C{f{g{h{i{j{k\e(B")
- ("m/w" "\e$(C{l{m{n\e(B")
- ("m/a" "\e$(C{o{p{q{r{s{t{u{v{w{x\e(B")
- ("m/f" "\e$(C{y{z{{{|{}{~|!|"|#|$|%|&|'|(\e(B")
- ("m/fx" "\e$(C|)|*|+|,|-|.\e(B")
- ("m/fs" "\e$(C|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?\e(B")
- ("m/fw" "\e$(C|@|A|B|C|D\e(B")
- ("m/fa" "\e$(C|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\\e(B")
- ("m/d" "\e$(C|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p\e(B")
- ("m/dx" "\e$(C|q|r\e(B")
- ("m/da" "\e$(C|s|t|u\e(B")
- ("m4" "\e$(C|v|w|x|y|z|{|||}|~}!}"}#}$\e(B")
- ("mb" "\e$(C}%}&}'}(})}*}+},}-}.}/}0}1\e(B")
- ("mbs" "\e$(C}2}3}4}5}6}7}8}9}:};\e(B")
- ("mba" "\e$(C}<\e(B")
- ("m9" "\e$(C}%}&}'}(})}*}+},}-}.}/}0}1\e(B")
- ("m9s" "\e$(C}2}3}4}5}6}7}8}9}:};\e(B")
- ("m9a" "\e$(C}<\e(B")
- ("m9ts" "\e$(C}=}>}?}@\e(B")
- ("m9c" "\e$(C}A}B}C\e(B")
- ("m9d" "\e$(C}D}E}F}G}H}I}J}K\e(B")
- ("m5" "\e$(C}L}M}N}O}P\e(B")
- ("m5w" "\e$(C}Q}R}S\e(B")
- ("m5a" "\e$(C}T}U}V}W}X\e(B")
- ("mgx" "\e$(C}Y\e(B")
- ("mgs" "\e$(C}Z}[}\}]\e(B")
- ("mgw" "\e$(C}^}_}`}a\e(B")
- ("mgz" "\e$(C}b}c}d\e(B")
- ("mg3" "\e$(C}e}f}g}h\e(B")
- ("mga" "\e$(C}i\e(B")
- ("m8" "\e$(C}j}k}l}m}n}o}p}q}r}s}t}u}v}w}x}y}z}{}|}}\e(B")
- ("mdw" "\e$(C}~\e(B"))
+ ("kf" "伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕")
+ ("kfx" "刻却各恪慤殼珏脚覺角閣")
+ ("kfs" "侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間")
+ ("kfw" "乫喝曷渴碣竭葛褐蝎鞨")
+ ("kfz" "勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕")
+ ("kf3" "匣岬甲胛鉀閘")
+ ("kfa" "剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇")
+ ("kr" "介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開")
+ ("krx" "喀客")
+ ("kra" "坑更粳羹")
+ ("k6x" "")
+ ("kt" "倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸")
+ ("kts" "乾件健巾建愆楗腱虔蹇鍵騫")
+ ("ktw" "乞傑杰桀")
+ ("ktz" "儉劍劒檢瞼鈐黔")
+ ("kt3" "劫怯迲")
+ ("kc" "偈憩揭")
+ ("kex" "擊格檄激膈覡隔")
+ ("kes" "堅牽犬甄絹繭肩見譴遣鵑")
+ ("kew" "抉決潔結缺訣")
+ ("kez" "兼慊箝謙鉗鎌")
+ ("kea" "京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨")
+ ("k7" "係啓堺契季屆悸戒桂械棨溪界癸磎稽系繫繼計誡谿階鷄")
+ ("kv" "古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓")
+ ("kvx" "哭斛曲梏穀谷鵠")
+ ("kvs" "困坤崑昆梱棍滾琨袞鯤")
+ ("kvw" "汨滑骨")
+ ("kva" "供公共功孔工恐恭拱控攻珙空蚣貢鞏")
+ ("kv!" "")
+ ("k/" "古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓")
+ ("k/x" "哭斛曲梏穀谷鵠")
+ ("k/s" "困坤崑昆梱棍滾琨袞鯤")
+ ("k/w" "汨滑骨")
+ ("k/a" "供公共功孔工恐恭拱控攻珙空蚣貢鞏")
+ ("k/!" "")
+ ("k/f" "寡戈果瓜科菓誇課跨過鍋顆")
+ ("k/fx" "廓槨藿郭")
+ ("k/fs" "串冠官寬慣棺款灌琯瓘管罐菅觀貫關館")
+ ("k/fw" "刮恝括适")
+ ("k/fa" "侊光匡壙廣曠洸炚狂珖筐胱鑛")
+ ("k/r" "卦掛罫")
+ ("k/d" "乖傀塊壞怪愧拐槐魁")
+ ("k/da" "宏紘肱轟")
+ ("k4" "交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫")
+ ("kb" "丘久九仇俱具勾區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜")
+ ("kbx" "國局菊鞠鞫麴")
+ ("kbs" "君窘群裙軍郡")
+ ("kbw" "堀屈掘窟")
+ ("kba" "宮弓穹窮芎躬")
+ ("k9" "丘久九仇俱具勾區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜")
+ ("k9x" "國局菊鞠鞫麴")
+ ("k9s" "君窘群裙軍郡")
+ ("k9w" "堀屈掘窟")
+ ("k9a" "宮弓穹窮芎躬")
+ ("k9ts" "倦券勸卷圈拳捲權淃眷")
+ ("k9tw" "厥獗蕨蹶闕")
+ ("k9c" "机櫃潰詭軌饋")
+ ("k9d" "句晷歸貴鬼龜")
+ ("k5" "叫圭奎揆槻珪硅窺竅糾葵規赳逵閨")
+ ("k5s" "勻均畇筠菌鈞龜")
+ ("k5w" "")
+ ("kgx" "克剋劇戟棘極隙")
+ ("kgs" "僅劤勤懃斤根槿瑾筋芹菫覲謹近饉")
+ ("kgw" "")
+ ("kgz" "今妗擒昑檎琴禁禽芩衾衿襟金錦")
+ ("kg3" "伋及急扱汲級給")
+ ("kga" "亘兢矜肯")
+ ("kd" "企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒")
+ ("kds" "")
+ ("kdw" "佶吉拮桔")
+ ("kdz" "")
+ ("kkdx" "")
+ ("hf" "儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那")
+ ("hfx" "樂洛烙珞落諾酪駱")
+ ("hfs" "亂卵暖欄煖爛蘭難鸞")
+ ("hfw" "捏捺")
+ ("hfz" "南嵐枏楠湳濫男藍襤")
+ ("hf3" "拉納臘蠟衲")
+ ("hfa" "囊娘廊朗浪狼郎")
+ ("hr" "乃來內奈柰耐")
+ ("hra" "")
+ ("he" "")
+ ("hes" "年撚秊")
+ ("hez" "念恬拈捻")
+ ("hea" "寧寗")
+ ("hv" "努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺")
+ ("hvx" "碌祿綠菉錄鹿")
+ ("hvs" "")
+ ("hva" "壟弄濃籠聾膿農")
+ ("h/" "努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺")
+ ("h/x" "碌祿綠菉錄鹿")
+ ("h/s" "")
+ ("h/a" "壟弄濃籠聾膿農")
+ ("h/d" "惱牢磊腦賂雷")
+ ("h4" "尿")
+ ("hb" "壘屢樓淚漏累縷陋")
+ ("hbs" "")
+ ("hbw" "")
+ ("h9" "壘屢樓淚漏累縷陋")
+ ("h9s" "")
+ ("h9w" "")
+ ("h5" "杻紐")
+ ("hgx" "勒肋")
+ ("hgz" "")
+ ("hga" "凌稜綾能菱陵")
+ ("hd" "尼泥")
+ ("hdx" "匿溺")
+ ("uf" "多茶")
+ ("ufs" "丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛")
+ ("ufw" "撻澾獺疸達")
+ ("ufz" "啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟")
+ ("uf3" "沓畓答踏遝")
+ ("ufa" "唐堂塘幢戇撞棠當糖螳黨")
+ ("ur" "代垈坮大對岱帶待戴擡玳臺袋貸隊黛")
+ ("urx" "")
+ ("utx" "德悳")
+ ("uv" "倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜")
+ ("uvx" "毒瀆牘犢獨督禿篤纛讀")
+ ("uvs" "墩惇敦旽暾沌焞燉豚頓")
+ ("uvw" "乭突")
+ ("uva" "仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅")
+ ("u/" "倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜")
+ ("u/x" "毒瀆牘犢獨督禿篤纛讀")
+ ("u/s" "墩惇敦旽暾沌焞燉豚頓")
+ ("u/w" "乭突")
+ ("u/a" "仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅")
+ ("ub" "兜斗杜枓痘竇荳讀豆逗頭")
+ ("ubs" "屯臀芚遁遯鈍")
+ ("u9" "兜斗杜枓痘竇荳讀豆逗頭")
+ ("u9s" "屯臀芚遁遯鈍")
+ ("ugx" "")
+ ("uga" "嶝橙燈登等藤謄鄧騰")
+ ("yf" "喇懶拏癩羅蘿螺裸邏")
+ ("yfx" "樂洛烙珞絡落諾酪駱")
+ ("yfs" "丹亂卵欄欒瀾爛蘭鸞")
+ ("yfw" "剌辣")
+ ("yfz" "嵐擥攬欖濫籃纜藍襤覽")
+ ("yf3" "拉臘蠟")
+ ("yfa" "廊朗浪狼琅瑯螂郞")
+ ("yr" "來崍徠萊")
+ ("yra" "")
+ ("y6x" "掠略")
+ ("y6a" "亮倆兩凉梁樑粮粱糧良諒輛量")
+ ("ye" "侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎")
+ ("yex" "力曆歷瀝礫轢靂")
+ ("yes" "憐戀攣漣煉璉練聯蓮輦連鍊")
+ ("yew" "冽列劣洌烈裂")
+ ("yez" "廉斂殮濂簾")
+ ("ye3" "")
+ ("yea" "令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡")
+ ("y7" "例澧禮醴隷")
+ ("yv" "勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵")
+ ("yvx" "碌祿綠菉錄鹿麓")
+ ("yvs" "")
+ ("yva" "壟弄朧瀧瓏籠聾")
+ ("y/" "勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵")
+ ("y/x" "碌祿綠菉錄鹿麓")
+ ("y/s" "")
+ ("y/a" "壟弄朧瀧瓏籠聾")
+ ("y/d" "儡瀨牢磊賂賚賴雷")
+ ("y4" "了僚寮廖料燎療瞭聊蓼遼鬧")
+ ("y4a" "")
+ ("yb" "壘婁屢樓淚漏瘻累縷蔞褸鏤陋")
+ ("y9" "壘婁屢樓淚漏瘻累縷蔞褸鏤陋")
+ ("y5" "劉旒柳榴流溜瀏琉瑠留瘤硫謬類")
+ ("y5x" "六戮陸")
+ ("y5s" "侖倫崙淪綸輪")
+ ("y5w" "律慄栗率")
+ ("y5a" "")
+ ("ygx" "勒肋")
+ ("ygz" "")
+ ("yga" "凌楞稜綾菱陵")
+ ("yd" "俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉")
+ ("yds" "吝潾燐璘藺躪隣鱗麟")
+ ("ydz" "林淋琳臨霖")
+ ("yd3" "砬立笠粒")
+ ("if" "摩瑪痲碼磨馬魔麻")
+ ("ifx" "寞幕漠膜莫邈")
+ ("ifs" "万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻")
+ ("ifw" "唜抹末沫茉襪靺")
+ ("ifa" "亡妄忘忙望網罔芒茫莽輞邙")
+ ("ir" "埋妹媒寐昧枚梅每煤罵買賣邁魅")
+ ("irx" "脈貊陌驀麥")
+ ("ira" "孟氓猛盲盟萌")
+ ("iex" "冪覓")
+ ("ies" "免冕勉棉沔眄眠綿緬面麵")
+ ("iew" "滅蔑")
+ ("iea" "冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴")
+ ("i7" "")
+ ("iv" "侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌")
+ ("ivx" "木沐牧目睦穆鶩")
+ ("ivw" "歿沒")
+ ("iva" "夢朦蒙")
+ ("i/" "侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌")
+ ("i/x" "木沐牧目睦穆鶩")
+ ("i/w" "歿沒")
+ ("i/a" "夢朦蒙")
+ ("i4" "卯墓妙廟描昴杳渺猫竗苗錨")
+ ("ib" "務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡")
+ ("ibx" "墨默")
+ ("ibs" "們刎吻問文汶紊紋聞蚊門雯")
+ ("ibw" "勿沕物")
+ ("i9" "務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡")
+ ("i9x" "墨默")
+ ("i9s" "們刎吻問文汶紊紋聞蚊門雯")
+ ("i9w" "勿沕物")
+ ("id" "味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴")
+ ("ids" "岷悶愍憫敏旻旼民泯玟珉緡閔")
+ ("idw" "密蜜謐")
+ (";fx" "剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁")
+ (";fs" "伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯")
+ (";fw" "勃拔撥渤潑發跋醱鉢髮魃")
+ (";fa" "倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐")
+ (";r" "倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪")
+ (";rx" "伯佰帛柏栢白百魄")
+ (";ts" "幡樊煩燔番磻繁蕃藩飜")
+ (";tw" "伐筏罰閥")
+ (";tz" "凡帆梵氾汎泛犯範范")
+ (";t3" "法琺")
+ (";ex" "僻劈壁擘檗璧癖碧蘗闢霹")
+ (";es" "便卞弁變辨辯邊")
+ (";ew" "別瞥鱉鼈")
+ (";ea" "丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈")
+ (";v" "保堡報寶普步洑湺潽珤甫菩補褓譜輔")
+ (";vx" "伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒")
+ (";vs" "")
+ (";vw" "")
+ (";va" "俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳")
+ (";/" "保堡報寶普步洑湺潽珤甫菩補褓譜輔")
+ (";/x" "伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒")
+ (";/s" "")
+ (";/w" "")
+ (";/a" "俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳")
+ (";b" "不付俯傅剖副否咐埠夫婦孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧")
+ (";bx" "")
+ (";bs" "分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰")
+ (";bw" "不佛弗彿拂")
+ (";ba" "崩朋棚硼繃鵬")
+ (";9" "不付俯傅剖副否咐埠夫婦孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧")
+ (";9x" "")
+ (";9s" "分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰")
+ (";9w" "不佛弗彿拂")
+ (";9a" "崩朋棚硼繃鵬")
+ (";d" "丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥脾臂菲蜚裨誹譬費鄙非飛鼻")
+ (";ds" "嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻")
+ (";da" "憑氷聘騁")
+ ("nf" "乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝")
+ ("nfx" "削數朔索")
+ ("nfs" "傘刪山散汕珊産疝算蒜酸霰")
+ ("nfw" "乷撒殺煞薩")
+ ("nfz" "三參杉森渗芟蔘衫")
+ ("nf3" "揷澁鈒颯")
+ ("nfa" "上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜")
+ ("nr" "塞璽賽")
+ ("nrx" "嗇塞穡索色")
+ ("nra" "牲生甥省笙")
+ ("nt" "墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署胥舒薯西誓逝鋤黍鼠")
+ ("ntx" "夕奭席惜昔晳析汐淅潟石碩蓆釋錫")
+ ("nts" "仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮")
+ ("ntw" "卨屑楔泄洩渫舌薛褻設說雪齧")
+ ("ntz" "剡暹殲纖蟾贍閃陝")
+ ("nt3" "攝涉燮葉")
+ ("nta" "城姓宬性惺成星晟猩珹盛省筬聖聲腥誠醒")
+ ("nc" "世勢歲洗稅笹細說貰")
+ ("nv" "召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷")
+ ("nvx" "俗屬束涑粟續謖贖速")
+ ("nvs" "孫巽損蓀遜飡")
+ ("nvw" "")
+ ("nva" "宋悚松淞訟誦送頌")
+ ("n/" "召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷")
+ ("n/x" "俗屬束涑粟續謖贖速")
+ ("n/s" "孫巽損蓀遜飡")
+ ("n/w" "")
+ ("n/a" "宋悚松淞訟誦送頌")
+ ("n/r" "刷殺灑碎鎖")
+ ("n/d" "衰釗")
+ ("nb" "修受嗽囚垂壽嫂守岫峀帥愁戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚")
+ ("nbx" "叔塾夙孰宿淑潚熟琡璹肅菽")
+ ("nbs" "巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴")
+ ("nbw" "戌術述鉥")
+ ("nba" "崇崧嵩")
+ ("n9" "修受嗽囚垂壽嫂守岫峀帥愁戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚")
+ ("n9x" "叔塾夙孰宿淑潚熟琡璹肅菽")
+ ("n9s" "巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴")
+ ("n9w" "戌術述鉥")
+ ("n9a" "崇崧嵩")
+ ("ngw" "瑟膝蝨")
+ ("ng3" "濕拾習褶襲")
+ ("nga" "丞乘僧勝升承昇繩蠅陞")
+ ("nd" "侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺")
+ ("ndx" "埴寔式息拭植殖湜熄篒蝕識軾食飾")
+ ("nds" "伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅")
+ ("ndw" "失室實悉")
+ ("ndz" "審尋心沁沈深瀋甚芯諶")
+ ("nd3" "什十拾")
+ ("nnfa" "")
+ ("nnd" "")
+ ("jf" "亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝")
+ ("jfx" "堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷")
+ ("jfs" "安岸按晏案眼雁鞍顔鮟")
+ ("jfw" "斡謁軋閼")
+ ("jfz" "唵岩巖庵暗癌菴闇")
+ ("jf3" "壓押狎鴨")
+ ("jfa" "仰央怏昻殃秧鴦")
+ ("jr" "厓哀埃崖愛曖涯碍艾隘靄")
+ ("jrx" "厄扼掖液縊腋額")
+ ("jra" "櫻罌鶯鸚")
+ ("j6" "也倻冶夜惹揶椰爺耶若野")
+ ("j6x" "弱掠略約若葯蒻藥躍")
+ ("j6a" "亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養")
+ ("jt" "圄御於漁瘀禦語馭魚齬")
+ ("jtx" "億憶抑檍臆")
+ ("jts" "偃堰彦焉言諺")
+ ("jtw" "孼蘖")
+ ("jtz" "俺儼嚴奄掩淹")
+ ("jt3" "嶪業")
+ ("jcs" "")
+ ("je" "予余勵呂女如廬旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎")
+ ("jex" "亦力域役易曆歷疫繹譯轢逆驛")
+ ("jes" "嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶")
+ ("jew" "列劣咽悅涅烈熱裂說閱")
+ ("jez" "厭廉念捻染殮炎焰琰艶苒簾閻髥鹽")
+ ("je3" "曄獵燁葉")
+ ("jea" "令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領")
+ ("j7" "乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預")
+ ("jv" "五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳烏熬獒筽蜈誤鰲鼇")
+ ("jvx" "屋沃獄玉鈺")
+ ("jvs" "溫瑥瘟穩縕蘊")
+ ("jvw" "")
+ ("jva" "壅擁瓮甕癰翁邕雍饔")
+ ("j/" "五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳烏熬獒筽蜈誤鰲鼇")
+ ("j/x" "屋沃獄玉鈺")
+ ("j/s" "溫瑥瘟穩縕蘊")
+ ("j/w" "")
+ ("j/a" "壅擁瓮甕癰翁邕雍饔")
+ ("j/f" "渦瓦窩窪臥蛙蝸訛")
+ ("j/fs" "婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑")
+ ("j/fw" "")
+ ("j/fa" "往旺枉汪王")
+ ("j/r" "倭娃歪矮")
+ ("j/d" "外嵬巍猥畏")
+ ("j4" "了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療窈窯繇繞耀腰蓼蟯要謠遙遼邀饒")
+ ("j4x" "慾欲浴縟褥辱")
+ ("j4a" "俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍")
+ ("jb" "于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩")
+ ("jbx" "勖彧旭昱栯煜稶郁頊")
+ ("jbs" "云暈橒殞澐熉耘芸蕓運隕雲韻")
+ ("jbw" "蔚鬱亐")
+ ("jba" "熊雄")
+ ("j9" "于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩")
+ ("j9x" "勖彧旭昱栯煜稶郁頊")
+ ("j9s" "云暈橒殞澐熉耘芸蕓運隕雲韻")
+ ("j9w" "蔚鬱亐")
+ ("j9a" "熊雄")
+ ("j9ts" "元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛")
+ ("j9tw" "月越鉞")
+ ("j9d" "位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏")
+ ("j5" "乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類")
+ ("j5x" "六堉戮毓肉育陸")
+ ("j5s" "倫允奫尹崙淪潤玧胤贇輪鈗閏")
+ ("j5w" "律慄栗率聿")
+ ("j5a" "戎瀜絨融隆")
+ ("jgs" "垠恩慇殷誾銀隱")
+ ("jgw" "")
+ ("jgz" "吟淫蔭陰音飮")
+ ("jg3" "揖泣邑")
+ ("jga" "凝應膺鷹")
+ ("j8" "依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼議醫")
+ ("jd" "二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌")
+ ("jdx" "匿溺瀷益翊翌翼謚")
+ ("jds" "人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟")
+ ("jdw" "一佚佾壹日溢逸鎰馹")
+ ("jdz" "任壬妊姙恁林淋稔臨荏賃")
+ ("jd3" "入卄立笠粒")
+ ("jda" "仍剩孕芿")
+ ("lf" "仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌")
+ ("lfx" "作勺嚼斫昨灼炸爵綽芍酌雀鵲")
+ ("lfs" "孱棧殘潺盞")
+ ("lfz" "岑暫潛箴簪蠶")
+ ("lf3" "")
+ ("lfa" "丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長障")
+ ("lr" "再哉在宰才材栽梓渽滓災縡裁財載齋齎")
+ ("lra" "爭箏諍錚")
+ ("lt" "佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟")
+ ("ltx" "勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑")
+ ("lts" "佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞")
+ ("ltw" "切截折浙癤竊節絶")
+ ("ltz" "占岾店漸点粘霑鮎點")
+ ("lt3" "接摺蝶")
+ ("lta" "丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖靜頂鼎")
+ ("lc" "制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊")
+ ("lv" "俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥")
+ ("lvx" "族簇足鏃")
+ ("lvs" "存尊")
+ ("lvw" "卒拙猝")
+ ("lva" "倧宗從悰慫棕淙琮種終綜縱腫踪踵鍾鐘")
+ ("l/" "俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥")
+ ("l/x" "族簇足鏃")
+ ("l/s" "存尊")
+ ("l/w" "卒拙猝")
+ ("l/a" "倧宗從悰慫棕淙琮種終綜縱腫踪踵鍾鐘")
+ ("l/f" "佐坐左座挫")
+ ("l/d" "")
+ ("lb" "主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐")
+ ("lbx" "竹粥")
+ ("lbs" "俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿")
+ ("lbw" "")
+ ("lba" "中仲衆重")
+ ("l9" "主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐")
+ ("l9x" "竹粥")
+ ("l9s" "俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿")
+ ("l9w" "")
+ ("l9a" "中仲衆重")
+ ("lgx" "")
+ ("lgw" "")
+ ("lg3" "楫汁葺")
+ ("lga" "增憎曾拯烝甑症繒蒸證贈")
+ ("ld" "之只咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲")
+ ("ldx" "直稙稷織職")
+ ("lds" "唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震")
+ ("ldw" "侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭")
+ ("ldz" "斟朕")
+ ("ld3" "什執潗緝輯鏶集")
+ ("lda" "徵懲澄")
+ ("of" "且侘借叉嗟嵯差次此磋箚茶蹉車遮")
+ ("ofx" "捉搾着窄錯鑿齪")
+ ("ofs" "撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌")
+ ("ofw" "刹察擦札紮")
+ ("ofz" "僭參塹慘慙懺斬站讒讖")
+ ("ofa" "倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼")
+ ("or" "債埰寀寨彩採砦綵菜蔡采釵")
+ ("orx" "冊柵策責")
+ ("ot" "凄妻悽處")
+ ("otx" "倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻")
+ ("ots" "仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆")
+ ("otw" "凸哲喆徹撤澈綴輟轍鐵")
+ ("otz" "僉尖沾添甛瞻簽籤詹諂")
+ ("ot3" "堞妾帖捷牒疊睫諜貼輒")
+ ("ota" "廳晴淸聽菁請靑鯖")
+ ("oc" "切剃替涕滯締諦逮遞體")
+ ("ov" "初剿哨憔抄招梢椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮")
+ ("ovx" "促囑燭矗蜀觸")
+ ("ovs" "寸忖村邨")
+ ("ova" "叢塚寵悤憁摠總聰蔥銃")
+ ("o/" "初剿哨憔抄招梢椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮")
+ ("o/x" "促囑燭矗蜀觸")
+ ("o/s" "寸忖村邨")
+ ("o/a" "叢塚寵悤憁摠總聰蔥銃")
+ ("o/fw" "")
+ ("o/d" "催崔最")
+ ("ob" "墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍")
+ ("obx" "丑畜祝竺筑築縮蓄蹙蹴軸逐")
+ ("obs" "春椿瑃")
+ ("obw" "出朮黜")
+ ("oba" "充忠沖蟲衝衷")
+ ("o9" "墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍")
+ ("o9x" "丑畜祝竺筑築縮蓄蹙蹴軸逐")
+ ("o9s" "春椿瑃")
+ ("o9w" "出朮黜")
+ ("o9a" "充忠沖蟲衝衷")
+ ("o9c" "悴膵萃贅")
+ ("o9d" "取吹嘴娶就炊翠聚脆臭趣醉驟鷲")
+ ("ogx" "側仄厠惻測")
+ ("oga" "")
+ ("od" "侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒")
+ ("odx" "則勅飭")
+ ("ods" "")
+ ("odw" "七柒漆")
+ ("odz" "侵寢枕沈浸琛砧針鍼")
+ ("od3" "")
+ ("oda" "秤稱")
+ ("0/r" "")
+ ("'f" "他咤唾墮妥惰打拖朶楕舵陀馱駝")
+ ("'fx" "倬卓啄坼度托拓擢晫柝濁濯琢琸託鐸")
+ ("'fs" "呑嘆坦彈憚歎灘炭綻誕")
+ ("'fw" "奪脫")
+ ("'fz" "探眈耽貪")
+ ("'f3" "塔搭榻")
+ ("'fa" "宕帑湯糖蕩")
+ ("'r" "兌台太怠態殆汰泰笞胎苔跆邰颱")
+ ("'rx" "宅擇澤")
+ ("'ra" "")
+ ("'t" "")
+ ("'v" "兎吐土討")
+ ("'va" "慟桶洞痛筒統通")
+ ("'/" "兎吐土討")
+ ("'/a" "慟桶洞痛筒統通")
+ ("'/d" "堆槌腿褪退頹")
+ ("'b" "偸套妬投透鬪")
+ ("'9" "偸套妬投透鬪")
+ ("'gx" "慝特")
+ ("'gz" "")
+ ("pf" "坡婆巴把播擺杷波派爬琶破罷芭跛頗")
+ ("pfs" "判坂板版瓣販辦鈑阪")
+ ("pfw" "八叭捌")
+ ("pr" "佩唄悖敗沛浿牌狽稗覇貝")
+ ("pra" "彭澎烹膨")
+ ("p6x" "")
+ ("pes" "便偏扁片篇編翩遍鞭騙")
+ ("pez" "")
+ ("pea" "坪平枰萍評")
+ ("p7" "吠嬖幣廢弊斃肺蔽閉陛")
+ ("pv" "佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑")
+ ("pvx" "幅暴曝瀑爆輻")
+ ("p/" "佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑")
+ ("p/x" "幅暴曝瀑爆輻")
+ ("p4" "俵剽彪慓杓標漂瓢票表豹飇飄驃")
+ ("pbz" "品稟")
+ ("pba" "楓諷豊風馮")
+ ("p9z" "品稟")
+ ("p9a" "楓諷豊風馮")
+ ("pd" "彼披疲皮被避陂")
+ ("pdw" "匹弼必泌珌畢疋筆苾馝")
+ ("pd3" "乏逼")
+ ("mf" "下何厦夏廈昰河瑕荷蝦賀遐霞鰕")
+ ("mfx" "壑學虐謔鶴")
+ ("mfs" "寒恨悍旱汗漢澣瀚罕翰閑閒限韓")
+ ("mfw" "割轄")
+ ("mfz" "函含咸啣喊檻涵緘艦銜陷鹹")
+ ("mf3" "合哈盒蛤閤闔陜")
+ ("mfa" "亢伉姮嫦巷恒抗杭桁沆港缸肛航行降項")
+ ("mr" "亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸")
+ ("mrx" "劾核")
+ ("mra" "倖幸杏荇行")
+ ("m6a" "享向嚮珦鄕響餉饗香")
+ ("mt" "噓墟虛許")
+ ("mts" "憲櫶獻軒")
+ ("mtw" "")
+ ("mtz" "險驗")
+ ("mex" "奕爀赫革")
+ ("mes" "俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯")
+ ("mew" "孑穴血頁")
+ ("mez" "")
+ ("me3" "俠協夾峽挾浹狹脅脇莢鋏頰")
+ ("mea" "亨兄刑型形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨")
+ ("m7" "兮彗惠慧暳蕙蹊醯鞋")
+ ("mv" "乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥")
+ ("mvx" "惑或酷")
+ ("mvs" "婚昏混渾琿魂")
+ ("mvw" "忽惚笏")
+ ("mva" "哄弘汞泓洪烘紅虹訌鴻")
+ ("m/" "乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥")
+ ("m/x" "惑或酷")
+ ("m/s" "婚昏混渾琿魂")
+ ("m/w" "忽惚笏")
+ ("m/a" "哄弘汞泓洪烘紅虹訌鴻")
+ ("m/f" "化和嬅樺火畵禍禾花華話譁貨靴")
+ ("m/fx" "廓擴攫確碻穫")
+ ("m/fs" "丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥")
+ ("m/fw" "活滑猾豁闊")
+ ("m/fa" "凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃")
+ ("m/d" "匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄")
+ ("m/dx" "劃獲")
+ ("m/da" "宖橫鐄")
+ ("m4" "哮嚆孝效斅曉梟涍淆爻肴酵驍")
+ ("mb" "侯候厚后吼喉嗅帿後朽煦珝逅")
+ ("mbs" "勛勳塤壎焄熏燻薰訓暈")
+ ("mba" "")
+ ("m9" "侯候厚后吼喉嗅帿後朽煦珝逅")
+ ("m9s" "勛勳塤壎焄熏燻薰訓暈")
+ ("m9a" "")
+ ("m9ts" "喧暄煊萱")
+ ("m9c" "卉喙毁")
+ ("m9d" "彙徽揮暉煇諱輝麾")
+ ("m5" "休携烋畦虧")
+ ("m5w" "恤譎鷸")
+ ("m5a" "兇凶匈洶胸")
+ ("mgx" "")
+ ("mgs" "昕欣炘痕")
+ ("mgw" "吃屹紇訖")
+ ("mgz" "欠欽歆")
+ ("mg3" "吸恰洽翕")
+ ("mga" "")
+ ("m8" "僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲")
+ ("mdw" ""))
 
 ;;; hanja3.el ends here
index 307f7fa0c285642b1d5b7e05acff1a1a4b5c18dd..fe06b27a92213f378672639878322ea9ed66b02a 100644 (file)
@@ -1,4 +1,4 @@
-;; hebrew.el --- Quail package for inputting Hebrew characters  -*-coding: iso-2022-7bit;-*-
+;; hebrew.el --- Quail package for inputting Hebrew characters  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 ;;   2008, 2009, 2010, 2011
 (require 'quail)
 
 (quail-define-package
- "hebrew" "Hebrew" "\e,Hr\e(B" nil "Hebrew SI-1452 input method.
+ "hebrew" "Hebrew" "ע" nil "Hebrew SI-1452 input method.
 
 Based on SI-1452 keyboard layout.
 Only Hebrew-related characters are considered.
  'q' is used to switch levels instead of Alt-Gr.
- Maqaaf (\e$,1,^\e(B) is mapped to '/\e,Ht\e(B'.
+ Maqaaf (־) is mapped to '/פ'.
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
  ("`" ?\;)
  ("w" ?\')
- ("e" ?\e,Hw\e(B)  ; Qof
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,H`\e(B)  ; Alef
- ("y" ?\e,Hh\e(B)  ; Tet
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("e" ?ק)  ; Qof
+ ("r" ?ר)  ; Resh
+ ("t" ?א)  ; Alef
+ ("y" ?ט)  ; Tet
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e,Hi\e(B)  ; Yod
- ("j" ?\e,Hg\e(B)  ; Het
- ("k" ?\e,Hl\e(B)  ; Lamed
- ("l" ?\e,Hj\e(B)  ; Final Kaf
- (";" ?\e,Hs\e(B)  ; Final Pe
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?י)  ; Yod
+ ("j" ?ח)  ; Het
+ ("k" ?ל)  ; Lamed
+ ("l" ?ך)  ; Final Kaf
+ (";" ?ף)  ; Final Pe
  ("'" ?,)
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hq\e(B)  ; Samekh
- ("c" ?\e,Ha\e(B)  ; Bet
- ("v" ?\e,Hd\e(B)  ; He
- ("b" ?\e,Hp\e(B)  ; Nun
- ("n" ?\e,Hn\e(B)  ; Mem
- ("m" ?\e,Hv\e(B)  ; Tsadi
- ("," ?\e,Hz\e(B)  ; Tav
- ("." ?\e,Hu\e(B)  ; Final Tsadi
+ ("z" ?ז)  ; Zayin
+ ("x" ?ס)  ; Samekh
+ ("c" ?ב)  ; Bet
+ ("v" ?ה)  ; He
+ ("b" ?נ)  ; Nun
+ ("n" ?מ)  ; Mem
+ ("m" ?צ)  ; Tsadi
+ ("," ?ת)  ; Tav
+ ("." ?ץ)  ; Final Tsadi
  ("/" ?.)  ; Stop
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
@@ -80,36 +80,36 @@ Only Hebrew-related characters are considered.
  ("}" ?{)  ; mirroring
  ("<" ?>)  ; mirroring
  (">" ?<)  ; mirroring
- ("q`" ?\e$,1,P\e(B)  ; Sheva
- ("q1" ?\e$,1,Q\e(B)  ; Hataf Segol
- ("q2" ?\e$,1,R\e(B)  ; Hataf Patah
- ("q3" ?\e$,1,S\e(B)  ; Hataf Qamats
- ("q4" ?\e$,1,T\e(B)  ; Hiriq
- ("q5" ?\e$,1,U\e(B)  ; Tsere
- ("q6" ?\e$,1,V\e(B)  ; Segol (Point)
- ("q7" ?\e$,1,W\e(B)  ; Patah
- ("q8" ?\e$,1,X\e(B)  ; Qamats
- ("q9" ?\e$,1,b\e(B)  ; Sin dot
- ("q0" ?\e$,1,a\e(B)  ; Shin dot
- ("q-" ?\e$,1,Y\e(B)  ; Holam
- ("q=" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
- ("q\\" ?\e$,1,[\e(B)  ; Qubuts
+ ("q`" ?ְ)  ; Sheva
+ ("q1" ?ֱ)  ; Hataf Segol
+ ("q2" ?ֲ)  ; Hataf Patah
+ ("q3" ?ֳ)  ; Hataf Qamats
+ ("q4" ?ִ)  ; Hiriq
+ ("q5" ?ֵ)  ; Tsere
+ ("q6" ?ֶ)  ; Segol (Point)
+ ("q7" ?ַ)  ; Patah
+ ("q8" ?ָ)  ; Qamats
+ ("q9" ?ׂ)  ; Sin dot
+ ("q0" ?ׁ)  ; Shin dot
+ ("q-" ?ֹ)  ; Holam
+ ("q=" ?ּ)  ; Dagesh or Mapiq
+ ("q\\" ?ֻ)  ; Qubuts
  ("qq" ?/)
- ("qw" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("qi" ?\e$,1-0\e(B)  ; Yiddish Double Vav
- ("qp" ?\e$,1,^\e(B)  ; Maqaf
- ("q[" ?\e$,1,_\e(B)  ; Rafe
- ("q]" ?\e$,1,]\e(B)  ; Meteg
- ("qa" ?\e$,1tJ\e(B)  ; New Sheqel sign
- ("qh" ?\e$,1-2\e(B)  ; Yiddish Double Yod
- ("qj" ?\e$,1-1\e(B)  ; Yiddish Vav Yod
- ("q\"" ?\e$,1-4\e(B)  ; Gershayim (Punct.)
+ ("qw" ?׳)  ; Geresh (Punct.)
+ ("qi" ?װ)  ; Yiddish Double Vav
+ ("qp" ?־)  ; Maqaf
+ ("q[" ?ֿ)  ; Rafe
+ ("q]" ?ֽ)  ; Meteg
+ ("qa" ?)  ; New Sheqel sign
+ ("qh" ?ײ)  ; Yiddish Double Yod
+ ("qj" ?ױ)  ; Yiddish Vav Yod
+ ("q\"" ?״)  ; Gershayim (Punct.)
  ("q," ?\u200E)  ;  LRM
  ("q." ?\u200F)  ;  RLM
 )
 
 (quail-define-package
- "hebrew-new" "Hebrew" "\e,Hr\e(B" nil "Hebrew SI-1452 new draft input method.
+ "hebrew-new" "Hebrew" "ע" nil "Hebrew SI-1452 new draft input method.
 
 Based on latest draft of SI-1452 keyboard layout.
 Only Hebrew-related characters are considered.
@@ -120,36 +120,36 @@ Geresh is mapped to '`k'.
 (quail-define-rules
  ("q" ?/)
  ("w" ?\')
- ("e" ?\e,Hw\e(B)  ; Qof
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,H`\e(B)  ; Alef
- ("y" ?\e,Hh\e(B)  ; Tet
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("e" ?ק)  ; Qof
+ ("r" ?ר)  ; Resh
+ ("t" ?א)  ; Alef
+ ("y" ?ט)  ; Tet
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e,Hi\e(B)  ; Yod
- ("j" ?\e,Hg\e(B)  ; Het
- ("k" ?\e,Hl\e(B)  ; Lamed
- ("l" ?\e,Hj\e(B)  ; Final Kaf
- (";" ?\e,Hs\e(B)  ; Final Pe
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?י)  ; Yod
+ ("j" ?ח)  ; Het
+ ("k" ?ל)  ; Lamed
+ ("l" ?ך)  ; Final Kaf
+ (";" ?ף)  ; Final Pe
  ("'" ?,)
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hq\e(B)  ; Samekh
- ("c" ?\e,Ha\e(B)  ; Bet
- ("v" ?\e,Hd\e(B)  ; He
- ("b" ?\e,Hp\e(B)  ; Nun
- ("n" ?\e,Hn\e(B)  ; Mem
- ("m" ?\e,Hv\e(B)  ; Tsadi
- ("," ?\e,Hz\e(B)  ; Tav
- ("." ?\e,Hu\e(B)  ; Final Tsadi
+ ("z" ?ז)  ; Zayin
+ ("x" ?ס)  ; Samekh
+ ("c" ?ב)  ; Bet
+ ("v" ?ה)  ; He
+ ("b" ?נ)  ; Nun
+ ("n" ?מ)  ; Mem
+ ("m" ?צ)  ; Tsadi
+ ("," ?ת)  ; Tav
+ ("." ?ץ)  ; Final Tsadi
  ("/" ?.)  ; Stop
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
@@ -159,104 +159,104 @@ Geresh is mapped to '`k'.
  (">" ?<)  ; mirroring
 
  ("``" ?\;)
- ("`1" ?\e$,1,]\e(B)  ; Meteg
+ ("`1" ?ֽ)  ; Meteg
 ;("`2" ??)  ; Unassigned
- ("`3" ?\e,F$\e(B)  ; Euro Sign
- ("`4" ?\e$,1tJ\e(B)  ; New Sheqel sign
- ("`5" ?\e,A0\e(B)  ; Degree Sign
- ("`6" ?\e$,1,K\e(B)  ; Ole
+ ("`3" ?)  ; Euro Sign
+ ("`4" ?)  ; New Sheqel sign
+ ("`5" ?°)  ; Degree Sign
+ ("`6" ?֫)  ; Ole
 ;("`7" ??)  ; Unassigned
- ("`8" ?\e,AW\e(B)  ; Multiplication Sign
+ ("`8" ?×)  ; Multiplication Sign
  ("`9" ?\u200E)  ; LRM
  ("`0" ?\u200F)  ; RLM
- ("`-" ?\e$,1,^\e(B)  ; Maqaf
- ("`=" ?\e$(G!9\e(B)  ; En Dash
- ("`q" ?\e$,1,b\e(B)  ; Sin dot
- ("`w" ?\e$,1,a\e(B)  ; Shin dot
- ("`e" ?\e$,1,X\e(B)  ; Qamats
- ("`r" ?\e$,1,S\e(B)  ; Hataf Qamats
+ ("`-" ?־)  ; Maqaf
+ ("`=" ?)  ; En Dash
+ ("`q" ?ׂ)  ; Sin dot
+ ("`w" ?ׁ)  ; Shin dot
+ ("`e" ?ָ)  ; Qamats
+ ("`r" ?ֳ)  ; Hataf Qamats
 ;("`t" ??)  ; Unassigned
- ("`y" ?\e$,1-0\e(B)  ; Yiddish Double Vav
- ("`u" ?\e$,1,Y\e(B)  ; Holam
+ ("`y" ?װ)  ; Yiddish Double Vav
+ ("`u" ?ֹ)  ; Holam
 ;("`i" ??)  ; Unassigned
 ;("`o" ??)  ; Unassigned
- ("`p" ?\e$,1,W\e(B)  ; Patah
- ("`[" ?\e$,1,R\e(B)  ; Hataf Patah
- ("`]" ?\e$,1,_\e(B)  ; Rafe
- ("`\\" ?\e$,1,[\e(B)  ; Qubuts
- ("`a" ?\e$,1,P\e(B)  ; Sheva
- ("`s" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
+ ("`p" ?ַ)  ; Patah
+ ("`[" ?ֲ)  ; Hataf Patah
+ ("`]" ?ֿ)  ; Rafe
+ ("`\\" ?ֻ)  ; Qubuts
+ ("`a" ?ְ)  ; Sheva
+ ("`s" ?ּ)  ; Dagesh or Mapiq
 ;("`d" ??)  ; Unassigned
 ;("`f" ??)  ; Unassigned
- ("`g" ?\e$,1-1\e(B)  ; Yiddish Vav Yod
- ("`h" ?\e$,1-2\e(B)  ; Yiddish Double Yod
- ("`j" ?\e$,1,T\e(B)  ; Hiriq
- ("`k" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("`l" ?\e,Y4\e(B)  ; Left Double Quotation Mark
- ("`;" ?\e,Y!\e(B)  ; Right Double Quotation Mark
- ("`'" ?\e$,1-4\e(B)  ; Gershayim (Punct.)
+ ("`g" ?ױ)  ; Yiddish Vav Yod
+ ("`h" ?ײ)  ; Yiddish Double Yod
+ ("`j" ?ִ)  ; Hiriq
+ ("`k" ?׳)  ; Geresh (Punct.)
+ ("`l" ?)  ; Left Double Quotation Mark
+ ("`;" ?)  ; Right Double Quotation Mark
+ ("`'" ?״)  ; Gershayim (Punct.)
 ;("`z" ??)  ; Unassigned
- ("`x" ?\e$,1,V\e(B)  ; Segol (Point)
- ("`c" ?\e$,1,Q\e(B)  ; Hataf Segol
+ ("`x" ?ֶ)  ; Segol (Point)
+ ("`c" ?ֱ)  ; Hataf Segol
 ;("`v" ??)  ; Unassigned
 ;("`b" ??)  ; Unassigned
 ;("`n" ??)  ; Unassigned
- ("`m" ?\e$,1,U\e(B)  ; Tsere
+ ("`m" ?ֵ)  ; Tsere
 ;("`," ??)  ; Unassigned
 ;("`." ??)  ; Unassigned
- ("`/" ?\e,Aw\e(B)  ; Division Sign
-
- ("``" ?\e$,1,c\e(B)  ; Sof Pasuq
- ("`!" ?\e$,1,1\e(B)  ; Etnahta
- ("`@" ?\e$,1,2\e(B)  ; Segol (Accent)
- ("`#" ?\e$,1,3\e(B)  ; Shalshelet
- ("`$" ?\e$,1,4\e(B)  ; Zaqef Qatan
- ("`%" ?\e$,1,5\e(B)  ; Zaqef Gadol
- ("`^" ?\e$,1,6\e(B)  ; Tipeha
- ("`&" ?\e$,1,7\e(B)  ; Revia
- ("`*" ?\e$,1,8\e(B)  ; Zarqa
- ("`(" ?\e$,1,9\e(B)  ; Pashta
- ("`)" ?\e$,1,:\e(B)  ; Yetiv
- ("`_" ?\e$,1,;\e(B)  ; Tevir
- ("`+" ?\e$,1,<\e(B)  ; Geresh (Accent)
- ("`Q" ?\e$,1,=\e(B)  ; Geresh Muqdam
- ("`W" ?\e$,1,>\e(B)  ; Gershayim (Accent)
- ("`E" ?\e$,1,g\e(B)  ; Qamats Qatan
- ("`R" ?\e$,1,?\e(B)  ; Qarney Para
- ("`T" ?\e$,1,@\e(B)  ; Telisha Gedola
- ("`Y" ?\e$,1,A\e(B)  ; Pazer
- ("`U" ?\e$,1,Z\e(B)  ; Holam Haser for Vav
- ("`I" ?\e$,1,B\e(B)  ; Atnah Hafukh
- ("`O" ?\e$,1,C\e(B)  ; Munah
+ ("`/" ?÷)  ; Division Sign
+
+ ("``" ?׃)  ; Sof Pasuq
+ ("`!" ?֑)  ; Etnahta
+ ("`@" ?֒)  ; Segol (Accent)
+ ("`#" ?֓)  ; Shalshelet
+ ("`$" ?֔)  ; Zaqef Qatan
+ ("`%" ?֕)  ; Zaqef Gadol
+ ("`^" ?֖)  ; Tipeha
+ ("`&" ?֗)  ; Revia
+ ("`*" ?֘)  ; Zarqa
+ ("`(" ?֙)  ; Pashta
+ ("`)" ?֚)  ; Yetiv
+ ("`_" ?֛)  ; Tevir
+ ("`+" ?֜)  ; Geresh (Accent)
+ ("`Q" ?֝)  ; Geresh Muqdam
+ ("`W" ?֞)  ; Gershayim (Accent)
+ ("`E" ?ׇ)  ; Qamats Qatan
+ ("`R" ?֟)  ; Qarney Para
+ ("`T" ?֠)  ; Telisha Gedola
+ ("`Y" ?֡)  ; Pazer
+ ("`U" ?ֺ)  ; Holam Haser for Vav
+ ("`I" ?֢)  ; Atnah Hafukh
+ ("`O" ?֣)  ; Munah
 ;("`P" ??)  ; Reserved
- ("`{" ?\e$,1,D\e(B)  ; Mahapakh
- ("`}" ?\e$,1,E\e(B)  ; Merkha
- ("`|" ?\e$,1,F\e(B)  ; Merkha Kefula
+ ("`{" ?֤)  ; Mahapakh
+ ("`}" ?֥)  ; Merkha
+ ("`|" ?֦)  ; Merkha Kefula
 ;("`A" ??)  ; Reserved
 ;("`S" ??)  ; Reserved
- ("`D" ?\e$,1,G\e(B)  ; Darga
- ("`F" ?\e$,1,H\e(B)  ; Qadma
- ("`G" ?\e$,1,I\e(B)  ; Telisha Qetana
- ("`H" ?\e$,1,J\e(B)  ; Yerah Ben Yomo
+ ("`D" ?֧)  ; Darga
+ ("`F" ?֨)  ; Qadma
+ ("`G" ?֩)  ; Telisha Qetana
+ ("`H" ?֪)  ; Yerah Ben Yomo
  ("`J" ?\u200D)  ; ZWJ
- ("`K" ?\e$,1,L\e(B)  ; Iluy
- ("`L" ?\e,Y4\e(B)  ; Left Double Quotation Mark (2nd)
- ("`:" ?\e,Y%\e(B)  ; Double Low-9 Quotation Mark
- ("`\"" ?\e$,1,M\e(B)  ; Dehi
- ("`Z" ?\e$,1,N\e(B)  ; Zinor
- ("`X" ?\e$,1,O\e(B)  ; Masora Circle
+ ("`K" ?֬)  ; Iluy
+ ("`L" ?)  ; Left Double Quotation Mark (2nd)
+ ("`:" ?)  ; Double Low-9 Quotation Mark
+ ("`\"" ?֭)  ; Dehi
+ ("`Z" ?֮)  ; Zinor
+ ("`X" ?֯)  ; Masora Circle
  ("`C" ?\u034F)  ; CGJ
- ("`V" ?\e$,1,`\e(B)  ; Paseq
- ("`B" ?\e$,1,f\e(B)  ; Nun Hafukha
+ ("`V" ?׀)  ; Paseq
+ ("`B" ?׆)  ; Nun Hafukha
  ("`N" ?\u200C)  ; ZWNJ
 ;("`M" ??)  ; Unassigned
 ;("`<" ??)  ; Unassigned
- ("`>" ?\e$,1,e\e(B)  ; Lower Dot
- ("`?" ?\e$,1,d\e(B)  ; Upper Dot
+ ("`>" ?ׅ)  ; Lower Dot
+ ("`?" ?ׄ)  ; Upper Dot
 )
 
 (quail-define-package
- "hebrew-lyx" "Hebrew" "\e,Hl\e$,1,T\e(B" nil "Hebrew LyX input method.
+ "hebrew-lyx" "Hebrew" "לִ" nil "Hebrew LyX input method.
 
 Based on LyX keyboard layout.
 Additional mappings for Rafe and Yiddish ligatures.
@@ -264,142 +264,142 @@ Additional mappings for Rafe and Yiddish ligatures.
 
 (quail-define-rules
  ("`" ?\;)
- ("_" ?\e$,1,^\e(B)  ; Maqaf
- ("q`" ?\e$,1,P\e(B)  ; Sheva
+ ("_" ?־)  ; Maqaf
+ ("q`" ?ְ)  ; Sheva
  ("w" ?\')
- ("e" ?\e,Hw\e(B)  ; Qof
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,H`\e(B)  ; Alef
- ("y" ?\e,Hh\e(B)  ; Tet
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("e" ?ק)  ; Qof
+ ("r" ?ר)  ; Resh
+ ("t" ?א)  ; Alef
+ ("y" ?ט)  ; Tet
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e,Hi\e(B)  ; Yod
- ("j" ?\e,Hg\e(B)  ; Het
- ("k" ?\e,Hl\e(B)  ; Lamed
- ("l" ?\e,Hj\e(B)  ; Final Kaf
- (";" ?\e,Hs\e(B)  ; Final Pe
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?י)  ; Yod
+ ("j" ?ח)  ; Het
+ ("k" ?ל)  ; Lamed
+ ("l" ?ך)  ; Final Kaf
+ (";" ?ף)  ; Final Pe
  ("'" ?,)
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hq\e(B)  ; Samekh
- ("c" ?\e,Ha\e(B)  ; Bet
- ("v" ?\e,Hd\e(B)  ; He
- ("b" ?\e,Hp\e(B)  ; Nun
- ("n" ?\e,Hn\e(B)  ; Mem
- ("m" ?\e,Hv\e(B)  ; Tsadi
- ("," ?\e,Hz\e(B)  ; Tav
- ("." ?\e,Hu\e(B)  ; Final Tsadi
+ ("z" ?ז)  ; Zayin
+ ("x" ?ס)  ; Samekh
+ ("c" ?ב)  ; Bet
+ ("v" ?ה)  ; He
+ ("b" ?נ)  ; Nun
+ ("n" ?מ)  ; Mem
+ ("m" ?צ)  ; Tsadi
+ ("," ?ת)  ; Tav
+ ("." ?ץ)  ; Final Tsadi
  ("/" ?.)  ; Stop
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
- ("W" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("E" ?\e$,1,X\e(B)  ; Qamats
- ("R" ?\e$,1,_\e(B)  ; Rafe
+ ("W" ?׳)  ; Geresh (Punct.)
+ ("E" ?ָ)  ; Qamats
+ ("R" ?ֿ)  ; Rafe
  ("T" ?\u200E)  ; LRM
  ("Y" ?\u200F)  ; RLM
- ("U" ?\e$,1,Y\e(B)  ; Holam
- ("I" ?\e$,1-2\e(B)  ; Yiddish Double Yod
- ("O" ?\e$,1-0\e(B)  ; Yiddish Double Vav
- ("P" ?\e$,1,W\e(B)  ; Patah
+ ("U" ?ֹ)  ; Holam
+ ("I" ?ײ)  ; Yiddish Double Yod
+ ("O" ?װ)  ; Yiddish Double Vav
+ ("P" ?ַ)  ; Patah
  ("{" ?})  ; mirroring
  ("}" ?{)  ; mirroring
- ("A" ?\e$,1,P\e(B)  ; Sheva
- ("S" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
- ("F"  ?\e$,1-4\e(B)  ; Gershayim (Punct.)
- ("G" ?\e$,1,b\e(B)  ; Sin dot
- ("H" ?\e$,1,a\e(B)  ; Shin dot
- ("J" ?\e$,1,T\e(B)  ; Hiriq
- ("K" ?\e$,1tJ\e(B)  ; New Sheqel sign
- ("L" ?\e$,1-1\e(B)  ; Yiddish Vav Yod
- ("X" ?\e$,1,V\e(B)  ; Segol (Point)
- ("C" ?\e$,1,[\e(B)  ; Qubuts
- ("V" ?\e$,1,Q\e(B)  ; Hataf Segol
- ("B" ?\e$,1,R\e(B)  ; Hataf Patah
- ("N" ?\e$,1,S\e(B)  ; Hataf Qamats
- ("M" ?\e$,1,U\e(B)  ; Tsere
+ ("A" ?ְ)  ; Sheva
+ ("S" ?ּ)  ; Dagesh or Mapiq
+ ("F"  ?״)  ; Gershayim (Punct.)
+ ("G" ?ׂ)  ; Sin dot
+ ("H" ?ׁ)  ; Shin dot
+ ("J" ?ִ)  ; Hiriq
+ ("K" ?)  ; New Sheqel sign
+ ("L" ?ױ)  ; Yiddish Vav Yod
+ ("X" ?ֶ)  ; Segol (Point)
+ ("C" ?ֻ)  ; Qubuts
+ ("V" ?ֱ)  ; Hataf Segol
+ ("B" ?ֲ)  ; Hataf Patah
+ ("N" ?ֳ)  ; Hataf Qamats
+ ("M" ?ֵ)  ; Tsere
  ("<" ?>)  ; mirroring
  (">" ?<)  ; mirroring
 )
 
 
 (quail-define-package
- "hebrew-full" "Hebrew" "\e,Hr\e$,1,T,K\e(B" nil "Hebrew Full method.
+ "hebrew-full" "Hebrew" "עִ֫" nil "Hebrew Full method.
 
 Provides access to all Hebrew characters suitable to Modern Hebrew.
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
  ("`" ?\;)
- ("-" ?\e$,1,^\e(B)  ; Maqaf
+ ("-" ?־)  ; Maqaf
  ("w" ?')
- ("e" ?\e,Hw\e(B)  ; Qof
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,H`\e(B)  ; Alef
- ("y" ?\e,Hh\e(B)  ; Tet
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("e" ?ק)  ; Qof
+ ("r" ?ר)  ; Resh
+ ("t" ?א)  ; Alef
+ ("y" ?ט)  ; Tet
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e,Hi\e(B)  ; Yod
- ("j" ?\e,Hg\e(B)  ; Het
- ("k" ?\e,Hl\e(B)  ; Lamed
- ("l" ?\e,Hj\e(B)  ; Final Kaf
- (";" ?\e,Hs\e(B)  ; Final Pe
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?י)  ; Yod
+ ("j" ?ח)  ; Het
+ ("k" ?ל)  ; Lamed
+ ("l" ?ך)  ; Final Kaf
+ (";" ?ף)  ; Final Pe
  ("'" ?,)
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hq\e(B)  ; Samekh
- ("c" ?\e,Ha\e(B)  ; Bet
- ("v" ?\e,Hd\e(B)  ; He
- ("b" ?\e,Hp\e(B)  ; Nun
- ("n" ?\e,Hn\e(B)  ; Mem
- ("m" ?\e,Hv\e(B)  ; Tsadi
- ("," ?\e,Hz\e(B)  ; Tav
- ("." ?\e,Hu\e(B)  ; Final Tsadi
+ ("z" ?ז)  ; Zayin
+ ("x" ?ס)  ; Samekh
+ ("c" ?ב)  ; Bet
+ ("v" ?ה)  ; He
+ ("b" ?נ)  ; Nun
+ ("n" ?מ)  ; Mem
+ ("m" ?צ)  ; Tsadi
+ ("," ?ת)  ; Tav
+ ("." ?ץ)  ; Final Tsadi
  ("/" ?.)
 
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
  ("Q" ?/)
- ("W" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("E" ?\e$,1tJ\e(B)  ; New Sheqel Sign
- ("R" ?\e$,1,_\e(B)  ; Rafe
- ("T" ?\e$,1,Q\e(B)  ; Hataf Segol
- ("Y" ?\e$,1-1\e(B)  ; Yiddish Vav Yod
- ("U" ?\e$,1-0\e(B)  ; Yiddish Double Vav
- ("I" ?\e$,1,R\e(B)  ; Hataf Patah
- ("O" ?\e$,1,S\e(B)  ; Hataf Qamats
- ("P" ?\e$,1-4\e(B)  ; Gershayim (Punct.)
+ ("W" ?׳)  ; Geresh (Punct.)
+ ("E" ?)  ; New Sheqel Sign
+ ("R" ?ֿ)  ; Rafe
+ ("T" ?ֱ)  ; Hataf Segol
+ ("Y" ?ױ)  ; Yiddish Vav Yod
+ ("U" ?װ)  ; Yiddish Double Vav
+ ("I" ?ֲ)  ; Hataf Patah
+ ("O" ?ֳ)  ; Hataf Qamats
+ ("P" ?״)  ; Gershayim (Punct.)
  ("{" ?})  ; mirroring
  ("}" ?{)  ; mirroring
- ("A" ?\e$,1,P\e(B)  ; Sheva
- ("S" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
- ("D" ?\e$,1,[\e(B)  ; Qubuts
- ("F" ?\e$,1,Y\e(B)  ; Holam
- ("G" ?\e$,1,V\e(B)  ; Segol (Point)
- ("H" ?\e$,1,U\e(B)  ; Tsere
- ("J" ?\e$,1,T\e(B)  ; Hiriq
- ("K" ?\e$,1,W\e(B)  ; Patah
- ("L" ?\e$,1,X\e(B)  ; Qamats
- ("Z" ?\e$,1,b\e(B)  ; Sin Dot
- ("X" ?\e$,1,a\e(B)  ; Shin Dot
- ("C" ?\e$,1,K\e(B)  ; Ole
- ("V" ?\e$,1-2\e(B)  ; Yiddish Double Yod
- ("B" ?\e$,1,c\e(B)  ; Sof Pasuq
+ ("A" ?ְ)  ; Sheva
+ ("S" ?ּ)  ; Dagesh or Mapiq
+ ("D" ?ֻ)  ; Qubuts
+ ("F" ?ֹ)  ; Holam
+ ("G" ?ֶ)  ; Segol (Point)
+ ("H" ?ֵ)  ; Tsere
+ ("J" ?ִ)  ; Hiriq
+ ("K" ?ַ)  ; Patah
+ ("L" ?ָ)  ; Qamats
+ ("Z" ?ׂ)  ; Sin Dot
+ ("X" ?ׁ)  ; Shin Dot
+ ("C" ?֫)  ; Ole
+ ("V" ?ײ)  ; Yiddish Double Yod
+ ("B" ?׃)  ; Sof Pasuq
  ("N" ?\u200E)  ; LRM
  ("M" ?\u200F)  ; RLM
  ("<" ?>)  ; mirroring
@@ -411,165 +411,165 @@ Provides access to all Hebrew characters suitable to Modern Hebrew.
  ("q3" ?\u202B)  ; RLE
  ("q4" ?\u202C)  ; PDF
  ("q5" ?\u034F)  ; CGJ
- ("q6" ?\e$,1,L\e(B)  ; Iluy
- ("q8" ?\e$,1,M\e(B)  ; Dehi
- ("q9" ?\e$,1,g\e(B)  ; Qamats Qatan
- ("q0" ?\e$,1,=\e(B)  ; Geresh Muqdam
+ ("q6" ?֬)  ; Iluy
+ ("q8" ?֭)  ; Dehi
+ ("q9" ?ׇ)  ; Qamats Qatan
+ ("q0" ?֝)  ; Geresh Muqdam
  ("q-" ?-)  ; Minus
- ("q=" ?\e$,1,N\e(B)  ; Zinor
- ("q|" ?\e$,1,`\e(B)  ; Paseq
- ("qw" ?\e$,1,O\e(B)  ; Masora Circle
- ("qe" ?\e$,1,d\e(B)  ; Upper Dot
- ("qr" ?\e$,1,e\e(B)  ; Lower Dot
- ("qy" ?\e$,1,?\e(B)  ; Qarney Para
- ("qu" ?\e$,1,3\e(B)  ; Shalshelet
- ("qi" ?\e$,1,>\e(B)  ; Gershayim (Accent)
- ("qo" ?\e$,1,<\e(B)  ; Geresh (Accent)
- ("qp" ?\e$,1,H\e(B)  ; Qadma
- ("q[" ?\e$,1,f\e(B)  ; Nun Hafukha
- ("qa" ?\e$,1,Z\e(B)  ; Holam Haser for Vav
- ("qs" ?\e$,1,I\e(B)  ; Telisha Qetana
- ("qd" ?\e$,1,@\e(B)  ; Telisha Gedola
- ("qf" ?\e$,1,A\e(B)  ; Pazer
- ("qg" ?\e$,1,5\e(B)  ; Zaqef Gadol
- ("qh" ?\e$,1,4\e(B)  ; Zaqef Qatan
- ("qj" ?\e$,1,9\e(B)  ; Pashta
- ("qk" ?\e$,1,D\e(B)  ; Mahapakh
- ("ql" ?\e$,1,7\e(B)  ; Revia
- ("q;" ?\e$,1,2\e(B)  ; Segol (Accent)
- ("q'" ?\e$,1,8\e(B)  ; Zarqa
- ("qz" ?\e$,1,J\e(B)  ; Yerah Ben Yomo
- ("qx" ?\e$,1,F\e(B)  ; Merkha Kefula
- ("qc" ?\e$,1,:\e(B)  ; Yetiv
- ("qv" ?\e$,1,;\e(B)  ; Tevir
- ("qb" ?\e$,1,G\e(B)  ; Darga
- ("qn" ?\e$,1,1\e(B)  ; Etnahta
- ("qm" ?\e$,1,C\e(B)  ; Munah
- ("q," ?\e$,1,6\e(B)  ; Tipeha
- ("q." ?\e$,1,E\e(B)  ; Merkha
- ("q/" ?\e$,1,]\e(B)  ; Meteg
+ ("q=" ?֮)  ; Zinor
+ ("q|" ?׀)  ; Paseq
+ ("qw" ?֯)  ; Masora Circle
+ ("qe" ?ׄ)  ; Upper Dot
+ ("qr" ?ׅ)  ; Lower Dot
+ ("qy" ?֟)  ; Qarney Para
+ ("qu" ?֓)  ; Shalshelet
+ ("qi" ?֞)  ; Gershayim (Accent)
+ ("qo" ?֜)  ; Geresh (Accent)
+ ("qp" ?֨)  ; Qadma
+ ("q[" ?׆)  ; Nun Hafukha
+ ("qa" ?ֺ)  ; Holam Haser for Vav
+ ("qs" ?֩)  ; Telisha Qetana
+ ("qd" ?֠)  ; Telisha Gedola
+ ("qf" ?֡)  ; Pazer
+ ("qg" ?֕)  ; Zaqef Gadol
+ ("qh" ?֔)  ; Zaqef Qatan
+ ("qj" ?֙)  ; Pashta
+ ("qk" ?֤)  ; Mahapakh
+ ("ql" ?֗)  ; Revia
+ ("q;" ?֒)  ; Segol (Accent)
+ ("q'" ?֘)  ; Zarqa
+ ("qz" ?֪)  ; Yerah Ben Yomo
+ ("qx" ?֦)  ; Merkha Kefula
+ ("qc" ?֚)  ; Yetiv
+ ("qv" ?֛)  ; Tevir
+ ("qb" ?֧)  ; Darga
+ ("qn" ?֑)  ; Etnahta
+ ("qm" ?֣)  ; Munah
+ ("q," ?֖)  ; Tipeha
+ ("q." ?֥)  ; Merkha
+ ("q/" ?ֽ)  ; Meteg
 )
 
 
 (quail-define-package
- "hebrew-biblical-tiro" "Hebrew" "\e,Hz\e$,1,T\e,Hx\e$,1,Y\e(B" nil
+ "hebrew-biblical-tiro" "Hebrew" "תִרֹ" nil
 "Biblical Hebrew Tiro input method.
 
 Based on Society of Biblical Literature's Tiro keyboard layout.
 Not suitable for modern Hebrew input.
  'q' is used to switch levels instead of Alt-Gr.
- Combining dot above (Called Masora dot) (\e$,1%G\e(B) is mapped to 'q1'.
+ Combining dot above (Called Masora dot) (̇) is mapped to 'q1'.
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("`" ?\e$,1,c\e(B)  ; Sof Pasuq
- ("-" ?\e$,1,^\e(B)  ; Maqaf
- ("=" ?\e$(O#?\e(B)  ; White Bullet
- ("w" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("e" ?\e,Hw\e(B)  ; Qof
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,H`\e(B)  ; Alef
- ("y" ?\e,Hh\e(B)  ; Tet
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("`" ?׃)  ; Sof Pasuq
+ ("-" ?־)  ; Maqaf
+ ("=" ?)  ; White Bullet
+ ("w" ?׳)  ; Geresh (Punct.)
+ ("e" ?ק)  ; Qof
+ ("r" ?ר)  ; Resh
+ ("t" ?א)  ; Alef
+ ("y" ?ט)  ; Tet
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("\\" ?\e$,1,`\e(B)  ; Paseq
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e,Hi\e(B)  ; Yod
- ("j" ?\e,Hg\e(B)  ; Het
- ("k" ?\e,Hl\e(B)  ; Lamed
- ("l" ?\e,Hj\e(B)  ; Final Kaf
- (";" ?\e,Hs\e(B)  ; Final Pe
- ("'" ?\e$,1,:\e(B)  ; Yetiv
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hq\e(B)  ; Samekh
- ("c" ?\e,Ha\e(B)  ; Bet
- ("v" ?\e,Hd\e(B)  ; He
- ("b" ?\e,Hp\e(B)  ; Nun
- ("n" ?\e,Hn\e(B)  ; Mem
- ("m" ?\e,Hv\e(B)  ; Tsadi
- ("," ?\e,Hz\e(B)  ; Tav
- ("." ?\e,Hu\e(B)  ; Final Tsadi
- ("/" ?\e$,1,M\e(B)  ; Dehi
- ("~" ?\e$,1,N\e(B)  ; Zinor
- ("!" ?\e$,1,I\e(B)  ; Telisha Qetana
- ("@" ?\e$,1,9\e(B)  ; Pashta
- ("#" ?\e$,1,2\e(B)  ; Segol (Accent)
- ("$" ?\e$,1,O\e(B)  ; Masora circle
- ("%" ?\e$,1,Z\e(B)  ; Holam Haser for Vav
- ("^" ?\e$,1,Y\e(B)  ; Holam
- ("&" ?\e$,1,_\e(B)  ; Rafe
- ("*" ?\e$,1,b\e(B)  ; Sin dot
- ("(" ?\e$,1,a\e(B)  ; Shin dot
- (")" ?\e$,1,=\e(B)  ; Geresh Muqdam
- ("_" ?\e$,1,@\e(B)  ; Telisha Gedola
- ("+" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
- ("Q" ?\e$,1,d\e(B)  ; Upper dot
- ("W" ?\e$,1,L\e(B)  ; Iluy
- ("E" ?\e$,1,K\e(B)  ; Ole
- ("R" ?\e$,1,?\e(B)  ; Qarney Para
- ("T" ?\e$,1,3\e(B)  ; Shalshelet
- ("Y" ?\e$,1,>\e(B)  ; Gershayim (Accent)
- ("U" ?\e$,1,<\e(B)  ; Geresh (Accent)
- ("I" ?\e$,1,A\e(B)  ; Pazer
- ("O" ?\e$,1,5\e(B)  ; Zaqef Gadol
- ("P" ?\e$,1,4\e(B)  ; Zaqef Qatan
- ("{" ?\e$,1,7\e(B)  ; Revia
- ("}" ?\e$,1,8\e(B)  ; Zarqa
- ("|" ?\e$,1,H\e(B)  ; Qadma
- ("A" ?\e$,1,]\e(B)  ; Meteg
- ("S" ?\e$,1,P\e(B)  ; Sheva
- ("D" ?\e$,1,[\e(B)  ; Qubuts
- ("F" ?\e$,1,T\e(B)  ; Hiriq
- ("G" ?\e$,1,Q\e(B)  ; Hataf Segol
- ("H" ?\e$,1,V\e(B)  ; Segol (Point)
- ("J" ?\e$,1,U\e(B)  ; Tsere
- ("K" ?\e$,1,S\e(B)  ; Hataf Qamats
- ("L" ?\e$,1,X\e(B)  ; Qamats
- (":" ?\e$,1,R\e(B)  ; Hataf Patah
- ("\"" ?\e$,1,W\e(B)  ; Patah
- ("Z" ?\e$,1,e\e(B)  ; Lower dot
- ("X" ?\e$,1,D\e(B)  ; Mahapakh
- ("C" ?\e$,1,J\e(B)  ; Yerah Ben Yomo
- ("V" ?\e$,1,F\e(B)  ; Merkha Kefula
- ("B" ?\e$,1,E\e(B)  ; Merkha
- ("N" ?\e$,1,G\e(B)  ; Darga
- ("M" ?\e$,1,;\e(B)  ; Tevir
- ("<" ?\e$,1,1\e(B)  ; Etnahta
- (">" ?\e$,1,6\e(B)  ; Tipeha
- ("?" ?\e$,1,C\e(B)  ; Munah
+ ("\\" ?׀)  ; Paseq
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?י)  ; Yod
+ ("j" ?ח)  ; Het
+ ("k" ?ל)  ; Lamed
+ ("l" ?ך)  ; Final Kaf
+ (";" ?ף)  ; Final Pe
+ ("'" ?֚)  ; Yetiv
+ ("z" ?ז)  ; Zayin
+ ("x" ?ס)  ; Samekh
+ ("c" ?ב)  ; Bet
+ ("v" ?ה)  ; He
+ ("b" ?נ)  ; Nun
+ ("n" ?מ)  ; Mem
+ ("m" ?צ)  ; Tsadi
+ ("," ?ת)  ; Tav
+ ("." ?ץ)  ; Final Tsadi
+ ("/" ?֭)  ; Dehi
+ ("~" ?֮)  ; Zinor
+ ("!" ?֩)  ; Telisha Qetana
+ ("@" ?֙)  ; Pashta
+ ("#" ?֒)  ; Segol (Accent)
+ ("$" ?֯)  ; Masora circle
+ ("%" ?ֺ)  ; Holam Haser for Vav
+ ("^" ?ֹ)  ; Holam
+ ("&" ?ֿ)  ; Rafe
+ ("*" ?ׂ)  ; Sin dot
+ ("(" ?ׁ)  ; Shin dot
+ (")" ?֝)  ; Geresh Muqdam
+ ("_" ?֠)  ; Telisha Gedola
+ ("+" ?ּ)  ; Dagesh or Mapiq
+ ("Q" ?ׄ)  ; Upper dot
+ ("W" ?֬)  ; Iluy
+ ("E" ?֫)  ; Ole
+ ("R" ?֟)  ; Qarney Para
+ ("T" ?֓)  ; Shalshelet
+ ("Y" ?֞)  ; Gershayim (Accent)
+ ("U" ?֜)  ; Geresh (Accent)
+ ("I" ?֡)  ; Pazer
+ ("O" ?֕)  ; Zaqef Gadol
+ ("P" ?֔)  ; Zaqef Qatan
+ ("{" ?֗)  ; Revia
+ ("}" ?֘)  ; Zarqa
+ ("|" ?֨)  ; Qadma
+ ("A" ?ֽ)  ; Meteg
+ ("S" ?ְ)  ; Sheva
+ ("D" ?ֻ)  ; Qubuts
+ ("F" ?ִ)  ; Hiriq
+ ("G" ?ֱ)  ; Hataf Segol
+ ("H" ?ֶ)  ; Segol (Point)
+ ("J" ?ֵ)  ; Tsere
+ ("K" ?ֳ)  ; Hataf Qamats
+ ("L" ?ָ)  ; Qamats
+ (":" ?ֲ)  ; Hataf Patah
+ ("\"" ?ַ)  ; Patah
+ ("Z" ?ׅ)  ; Lower dot
+ ("X" ?֤)  ; Mahapakh
+ ("C" ?֪)  ; Yerah Ben Yomo
+ ("V" ?֦)  ; Merkha Kefula
+ ("B" ?֥)  ; Merkha
+ ("N" ?֧)  ; Darga
+ ("M" ?֛)  ; Tevir
+ ("<" ?֑)  ; Etnahta
+ (">" ?֖)  ; Tipeha
+ ("?" ?֣)  ; Munah
 
  ("q`" ?\;)
  ("q1" ?\u0307)  ; Combining dot above
  ("q2" ?\u0336)  ; Combining long stroke overlay
  ("q3" ?\u030A)  ; Combining ring above
- ("q4" ?\e$,1tJ\e(B)  ; New Sheqel Sign
+ ("q4" ?)  ; New Sheqel Sign
  ("q5" ?\u200D)  ; ZWJ
  ("q6" ?\u200C)  ; ZWNJ
  ("q7" ?\u034F)  ; CGJ
  ("q8" ?\u200E)  ; LRM
  ("q9" ?\u200F)  ; RLM
- ("q0" ?\e$,2",\e(B)  ; Dotted Circle
+ ("q0" ?)  ; Dotted Circle
  ("q-" ?-)  ; Minus
- ("q=" ?\e$(O#@\e(B)  ; Bullet
+ ("q=" ?)  ; Bullet
  ("qq" ?\u0308)  ; Combining Diaeresis
- ("qw" ?\e$,1-4\e(B)  ; Gershayim (Punct.)
- ("qe" ?\e,F$\e(B)  ; Euro Sign
- ("qu" ?\e$,1-0\e(B)  ; Yiddish Double Vav
+ ("qw" ?״)  ; Gershayim (Punct.)
+ ("qe" ?)  ; Euro Sign
+ ("qu" ?װ)  ; Yiddish Double Vav
  ("q\\" ?\\)
- ("qh" ?\e$,1-2\e(B)  ; Yiddish Double Yod
- ("qj" ?\e$,1-1\e(B)  ; Yiddish Vav Yod
- ("ql" ?\e$,1,g\e(B)  ; Qamats Qatan
+ ("qh" ?ײ)  ; Yiddish Double Yod
+ ("qj" ?ױ)  ; Yiddish Vav Yod
+ ("ql" ?ׇ)  ; Qamats Qatan
  ("q'" ?,)
- ("qc" ?\e$,1,B\e(B)  ; Atnah Hafukh
- ("qb" ?\e$,1,f\e(B)  ; Nun Hafukha
+ ("qc" ?֢)  ; Atnah Hafukh
+ ("qb" ?׆)  ; Nun Hafukha
  ("q/" ?.)
 
  ("q~" ?~)
@@ -598,127 +598,127 @@ Not suitable for modern Hebrew input.
 )
 
 (quail-define-package
- "hebrew-biblical-sil" "Hebrew" "\e,Hq\e$,1,T\e,Hl\e(B" nil
+ "hebrew-biblical-sil" "Hebrew" "סִל" nil
 "Biblical Hebrew SIL input method.
 
 Based on Society of Biblical Literature's SIL keyboard layout.
 Phonetic and not suitable for modern Hebrew input.
  '`' is used to switch levels instead of Alt-Gr.
- Euro Sign (\e,F$\e(B) is mapped to 'Z'.
+ Euro Sign () is mapped to 'Z'.
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("-" ?\e$,1,^\e(B)  ; Maqaf
- ("=" ?\e$,1,\\e(B)  ; Dagesh or Mapiq
- ("q" ?\e,Hw\e(B)  ; Qof
- ("w" ?\e,He\e(B)  ; Vav
- ("e" ?\e$,1,V\e(B)  ; Segol (Point)
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,Hz\e(B)  ; Tav
- ("y" ?\e,Hi\e(B)  ; Yod
- ("u" ?\e$,1,[\e(B)  ; Qubuts
- ("i" ?\e$,1,T\e(B)  ; Hiriq
- ("o" ?\e$,1,Y\e(B)  ; Holam
- ("p" ?\e,Ht\e(B)  ; Pe
+ ("-" ?־)  ; Maqaf
+ ("=" ?ּ)  ; Dagesh or Mapiq
+ ("q" ?ק)  ; Qof
+ ("w" ?ו)  ; Vav
+ ("e" ?ֶ)  ; Segol (Point)
+ ("r" ?ר)  ; Resh
+ ("t" ?ת)  ; Tav
+ ("y" ?י)  ; Yod
+ ("u" ?ֻ)  ; Qubuts
+ ("i" ?ִ)  ; Hiriq
+ ("o" ?ֹ)  ; Holam
+ ("p" ?פ)  ; Pe
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("\\" ?\e$,1,`\e(B)  ; Paseq
- ("a" ?\e$,1,W\e(B)  ; Patah
- ("s" ?\e,Hq\e(B)  ; Samekh
- ("d" ?\e,Hc\e(B)  ; Dalet
- ("f" [ "\e,Hy\e$,1,b\e(B" ])  ; Shin + Sin dot
- ("g" ?\e,Hb\e(B)  ; Gimel
- ("h" ?\e,Hd\e(B)  ; He
- ("j" [ "\e,Hy\e$,1,a\e(B" ])  ; Shin + Shin dot
- ("k" ?\e,Hk\e(B)  ; Kaf
- ("l" ?\e,Hl\e(B)  ; Lamed
- (";" ?\e$,1,P\e(B)  ; Sheva
- ("'" ?\e,F"\e(B)  ; Right Single Quotation Mark
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hg\e(B)  ; Het
- ("c" ?\e,Hv\e(B)  ; Tsadi
- ("v" ?\e,Hh\e(B)  ; Tet
- ("b" ?\e,Ha\e(B)  ; Bet
- ("n" ?\e,Hp\e(B)  ; Nun
- ("m" ?\e,Hn\e(B)  ; Mem
-
- ("~" ?\e$,1tJ\e(B)  ; New Sheqel Sign
- ("@" ?\e$,1,8\e(B)  ; Zarqa
- ("#" ?\e$,1,H\e(B)  ; Qadma
- ("$" ?\e$,1,<\e(B)  ; Geresh (Accent)
- ("%" ?\e$,1,>\e(B)  ; Gershayim (Accent)
- ("&" ?\e$,1,L\e(B)  ; Iluy
- ("*" ?\e$,1,=\e(B)  ; Geresh Muqdam
+ ("\\" ?׀)  ; Paseq
+ ("a" ?ַ)  ; Patah
+ ("s" ?ס)  ; Samekh
+ ("d" ?ד)  ; Dalet
+ ("f" [ "שׂ" ])  ; Shin + Sin dot
+ ("g" ?ג)  ; Gimel
+ ("h" ?ה)  ; He
+ ("j" [ "שׁ" ])  ; Shin + Shin dot
+ ("k" ?כ)  ; Kaf
+ ("l" ?ל)  ; Lamed
+ (";" ?ְ)  ; Sheva
+ ("'" ?)  ; Right Single Quotation Mark
+ ("z" ?ז)  ; Zayin
+ ("x" ?ח)  ; Het
+ ("c" ?צ)  ; Tsadi
+ ("v" ?ט)  ; Tet
+ ("b" ?ב)  ; Bet
+ ("n" ?נ)  ; Nun
+ ("m" ?מ)  ; Mem
+
+ ("~" ?)  ; New Sheqel Sign
+ ("@" ?֘)  ; Zarqa
+ ("#" ?֨)  ; Qadma
+ ("$" ?֜)  ; Geresh (Accent)
+ ("%" ?֞)  ; Gershayim (Accent)
+ ("&" ?֬)  ; Iluy
+ ("*" ?֝)  ; Geresh Muqdam
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
- ("_" ?\e$(G!9\e(B)  ; Em Dash
- ("Q" ?\e$,1,7\e(B)  ; Revia
- ("E" ?\e$,1,U\e(B)  ; Tsere
- ("Y" ?\e$,1,?\e(B)  ; Qarney Para
- ("O" ?\e$,1,Z\e(B)  ; Holam Haser for Vav
- ("P" ?\e,Hs\e(B)  ; Final Pe
+ ("_" ?)  ; Em Dash
+ ("Q" ?֗)  ; Revia
+ ("E" ?ֵ)  ; Tsere
+ ("Y" ?֟)  ; Qarney Para
+ ("O" ?ֺ)  ; Holam Haser for Vav
+ ("P" ?ף)  ; Final Pe
  ("{" ?})  ; mirroring
  ("}" ?{)  ; mirroring
 
- ("A" ?\e$,1,X\e(B)  ; Qamats
- ("S" ?\e,Hy\e(B)  ; Shin
- ("K" ?\e,Hj\e(B)  ; Final Kaf
- (":" ?\e$,1-4\e(B)  ; Gershayim (Punct.)
- ("\"" ?\e,Y!\e(B)  ; Right Double Quotation Mark
- ("Z" ?\e,F$\e(B)  ; Euro Sign
- ("C" ?\e,Hu\e(B)  ; Final Tsadi
- ("N" ?\e,Ho\e(B)  ; Final Nun
- ("M" ?\e,Hm\e(B)  ; Final Mem
- ("<" ?\e,Hr\e(B)  ; Ayin
- (">" ?\e,H`\e(B)  ; Alef
+ ("A" ?ָ)  ; Qamats
+ ("S" ?ש)  ; Shin
+ ("K" ?ך)  ; Final Kaf
+ (":" ?״)  ; Gershayim (Punct.)
+ ("\"" ?)  ; Right Double Quotation Mark
+ ("Z" ?)  ; Euro Sign
+ ("C" ?ץ)  ; Final Tsadi
+ ("N" ?ן)  ; Final Nun
+ ("M" ?ם)  ; Final Mem
+ ("<" ?ע)  ; Ayin
+ (">" ?א)  ; Alef
 
  ("``" ?$)
- ("`1" ?\e$,1,]\e(B)  ; Meteg
- ("`2" ?\e$,1,B\e(B)  ; Atnah Hafukh
- ("`3" ?\e$,1,6\e(B)  ; Tipeha
- ("`4" ?\e$,1,E\e(B)  ; Merkha
- ("`5" ?\e$,1,F\e(B)  ; Merkha Kefula
- ("`6" ?\e$,1,M\e(B)  ; Dehi
- ("`7" ?\e$,1,C\e(B)  ; Munah
- ("`8" ?\e$,1,;\e(B)  ; Tevir
- ("`9" ?\e$,1,G\e(B)  ; Darga
- ("`0" ?\e$,1,J\e(B)  ; Yerah Ben Yomo
- ("`-" ?\e$(G!7\e(B)  ; Em Dash
- ("`=" ?\e$,1,1\e(B)  ; Etnahta
- ("`]" ?\e$,1,:\e(B)  ; Accent Yetiv
- ("`\\" ?\e$,1,D\e(B)  ; Mahapakh
- ("`a" ?\e$,1,g\e(B)  ; Qamats Qatan
- ("`g" ? \e$(O#?\e(B)  ; White Bullet
+ ("`1" ?ֽ)  ; Meteg
+ ("`2" ?֢)  ; Atnah Hafukh
+ ("`3" ?֖)  ; Tipeha
+ ("`4" ?֥)  ; Merkha
+ ("`5" ?֦)  ; Merkha Kefula
+ ("`6" ?֭)  ; Dehi
+ ("`7" ?֣)  ; Munah
+ ("`8" ?֛)  ; Tevir
+ ("`9" ?֧)  ; Darga
+ ("`0" ?֪)  ; Yerah Ben Yomo
+ ("`-" ?)  ; Em Dash
+ ("`=" ?֑)  ; Etnahta
+ ("`]" ?֚)  ; Accent Yetiv
+ ("`\\" ?֤)  ; Mahapakh
+ ("`a" ?ׇ)  ; Qamats Qatan
+ ("`g" ? )  ; White Bullet
  ("`h" ?\u0336)  ; Combining Long Stroke Overlay
  ("`;" ?\;)
  ("`'" ?\u0323); Combining Dot Below (Lower Point??)
  ("`m" ?\u200C)  ; ZWNJ
- ("`," ?\e,A;\e(B)  ; mirroring
- ("`." ?\e,A+\e(B)  ; mirroring
- ("`/" ?\e$,1-3\e(B)  ; Geresh (Punct.)
-
- ("`!" ?\e$,1,7\e(B)  ; Revia
- ("`@" ?\e$,1,N\e(B)  ; Zinor
- ("`#" ?\e$,1,9\e(B)  ; Pashta
- ("`$" ?\e$,1,@\e(B)  ; Telisha Gedola
- ("`%" ?\e$,1,I\e(B)  ; Telisha Qetana
- ("`&" ?\e$,1,A\e(B)  ; Pazer
- ("`*" ?\e$,1,5\e(B)  ; Zaqef Gadol
- ("`(" ?\e$,1,3\e(B)  ; Shalshelet
- ("`)" ?\e$,1,O\e(B)  ; Masora Circle
- ("`_" ?\e$,1,_\e(B)  ; Rafe
- ("`+" ?\e$,2",\e(B)  ; Dotted Circle
- ("`E" ?\e$,1,Q\e(B)  ; Hataf Segol
- ("`O" ?\e$,1,S\e(B)  ; Hataf Qamats
+ ("`," ?»)  ; mirroring
+ ("`." ?«)  ; mirroring
+ ("`/" ?׳)  ; Geresh (Punct.)
+
+ ("`!" ?֗)  ; Revia
+ ("`@" ?֮)  ; Zinor
+ ("`#" ?֙)  ; Pashta
+ ("`$" ?֠)  ; Telisha Gedola
+ ("`%" ?֩)  ; Telisha Qetana
+ ("`&" ?֡)  ; Pazer
+ ("`*" ?֕)  ; Zaqef Gadol
+ ("`(" ?֓)  ; Shalshelet
+ ("`)" ?֯)  ; Masora Circle
+ ("`_" ?ֿ)  ; Rafe
+ ("`+" ?)  ; Dotted Circle
+ ("`E" ?ֱ)  ; Hataf Segol
+ ("`O" ?ֳ)  ; Hataf Qamats
  ("`P" ?\u034F)  ; CGJ
- ("`{" ?\e$,1,4\e(B)  ; Zaqef Qatan
- ("`}" ?\e$,1,2\e(B)  ; Segol (Accent)
- ("`|" ?\e$,1,K\e(B)  ; Ole
- ("`A" ?\e$,1,R\e(B)  ; Hataf Patah
- ("`G" ?\e$(O#@\e(B)  ; Bullet
+ ("`{" ?֔)  ; Zaqef Qatan
+ ("`}" ?֒)  ; Segol (Accent)
+ ("`|" ?֫)  ; Ole
+ ("`A" ?ֲ)  ; Hataf Patah
+ ("`G" ?)  ; Bullet
  ("`H" ?\u030A)  ; Combining ring above
- ("`:" ?\e$,1,c\e(B)  ; Sof Pasuq
- ("`\"" ?\e$,1,d\e(B)  ; Upper Dot
+ ("`:" ?׃)  ; Sof Pasuq
+ ("`\"" ?ׄ)  ; Upper Dot
  ("`M" ?\u200D)  ; ZWJ
  ("`<" ?\u0307)  ; Combining dot above
  ("`>" ?\u0308)  ; Combining Diaeresis
@@ -726,7 +726,7 @@ Phonetic and not suitable for modern Hebrew input.
 
 
 (quail-define-package
- "yiddish-royal" "Hebrew" "\e$,1-2\e,Hx\e(B" nil "Yiddish Royal input method.
+ "yiddish-royal" "Hebrew" "ײר" nil "Yiddish Royal input method.
 
 Based on Royal Yiddish typewriter.
 Better for yiddish than Hebrew methods.
@@ -734,82 +734,82 @@ Better for yiddish than Hebrew methods.
 
 (quail-define-rules
  ("`" ?~)
- ("q" ?\e,Hw\e(B)  ; Qof
- ("w" [ "\e,H`\e$,1,X\e(B" ])  ; Qamats Alef (Komets Alef)
- ("e" ?\e,Hx\e(B)  ; Resh
- ("r" ?\e,H`\e(B)  ; Alef (Shtumer Alef)
- ("t" ?\e,Hh\e(B)  ; Tet
- ("y" ?\e$,1-0\e(B)  ; Yiddish Double Vav (Tsvey Vovn)
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Ho\e(B)  ; Final Nun
- ("o" ?\e,Hm\e(B)  ; Final Mem
- ("p" [ "\e,Ht\e$,1,_\e(B" ])  ; Rafe Pe (Fey)
- ("[" [ "\e,Ht\e$,1,\\e(B" ])  ; Dagesh Pe (Pey)
+ ("q" ?ק)  ; Qof
+ ("w" [ "אָ" ])  ; Qamats Alef (Komets Alef)
+ ("e" ?ר)  ; Resh
+ ("r" ?א)  ; Alef (Shtumer Alef)
+ ("t" ?ט)  ; Tet
+ ("y" ?װ)  ; Yiddish Double Vav (Tsvey Vovn)
+ ("u" ?ו)  ; Vav
+ ("i" ?ן)  ; Final Nun
+ ("o" ?ם)  ; Final Mem
+ ("p" [ "פֿ" ])  ; Rafe Pe (Fey)
+ ("[" [ "פּ" ])  ; Dagesh Pe (Pey)
  ("]" ?,)
- ("a" ?\e,Hy\e(B)  ; Shin
- ("s" ?\e,Hc\e(B)  ; Dalet
- ("d" ?\e,Hb\e(B)  ; Gimel
- ("f" ?\e,Hk\e(B)  ; Kaf
- ("g" ?\e,Hr\e(B)  ; Ayin
- ("h" ?\e$,1-2\e(B)  ; Yiddish Double Yod (Tsvey Yudn)
- ("j" ?\e,Hi\e(B)  ; Yod
- ("k" ?\e,Hg\e(B)  ; Het
- ("l" ?\e,Hl\e(B)  ; Lamed
- (";" ?\e,Hj\e(B)  ; Final Kaf
- ("'" ?\e,Hs\e(B)  ; Final Pe
+ ("a" ?ש)  ; Shin
+ ("s" ?ד)  ; Dalet
+ ("d" ?ג)  ; Gimel
+ ("f" ?כ)  ; Kaf
+ ("g" ?ע)  ; Ayin
+ ("h" ?ײ)  ; Yiddish Double Yod (Tsvey Yudn)
+ ("j" ?י)  ; Yod
+ ("k" ?ח)  ; Het
+ ("l" ?ל)  ; Lamed
+ (";" ?ך)  ; Final Kaf
+ ("'" ?ף)  ; Final Pe
  ("z" ?.)
- ("x" ?\e,Hf\e(B)  ; Zayin
- ("c" ?\e,Hq\e(B)  ; Samekh
- ("v" ?\e,Ha\e(B)  ; Bet
- ("b" ?\e,Hd\e(B)  ; He
- ("n" ?\e,Hp\e(B)  ; Nun
- ("m" ?\e,Hn\e(B)  ; Mem
- ("," ?\e,Hv\e(B)  ; Tsadi
- ("." ?\e,Hz\e(B)  ; Tav
- ("/" ?\e,Hu\e(B)  ; Final Tsadi
+ ("x" ?ז)  ; Zayin
+ ("c" ?ס)  ; Samekh
+ ("v" ?ב)  ; Bet
+ ("b" ?ה)  ; He
+ ("n" ?נ)  ; Nun
+ ("m" ?מ)  ; Mem
+ ("," ?צ)  ; Tsadi
+ ("." ?ת)  ; Tav
+ ("/" ?ץ)  ; Final Tsadi
 
  ("~" ?@)
- ("!" ?\e,Y!\e(B)  ; Right Double Quotation Mark
- ("@" ?\e,Y%\e(B)  ; Double Low-9 Quotation Mark
+ ("!" ?)  ; Right Double Quotation Mark
+ ("@" ?)  ; Double Low-9 Quotation Mark
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
- ("Q" ?\e,Y4\e(B)  ; Left Double Quotation Mark
- ("W" ?\e,Y!\e(B)  ; Right Double Quotation Mark
- ("E" ?\e$,1-2\e(B)  ; Yiddish Double Yod (x2)
- ("R" [ "\e,H`\e$,1,W\e(B" ])  ; Patah Alef (Pasekh Alef)
+ ("Q" ?)  ; Left Double Quotation Mark
+ ("W" ?)  ; Right Double Quotation Mark
+ ("E" ?ײ)  ; Yiddish Double Yod (x2)
+ ("R" [ "אַ" ])  ; Patah Alef (Pasekh Alef)
 ; ("T" "")
- ("Y" ?\e$,1-1\e(B)  ; Ligature Yiddish Vav Yod (vov yud)
- ("U" [ "\e,He\e$,1,\\e(B" ])  ; Melupm vov
+ ("Y" ?ױ)  ; Ligature Yiddish Vav Yod (vov yud)
+ ("U" [ "וּ" ])  ; Melupm vov
  ("I" ?/)
  ("O" ?\\)
- ("P" ?\e,Ht\e(B)  ; Pe
+ ("P" ?פ)  ; Pe
  ("{" ??)
  ("}" ?!)
- ("A" [ "\e,Hy\e$,1,b\e(B" ])  ; Shin + Sin dot
- ("S" [ "\e,Hy\e$,1,b\e(B" ])  ; Shin + Sin dot
+ ("A" [ "שׂ" ])  ; Shin + Sin dot
+ ("S" [ "שׂ" ])  ; Shin + Sin dot
 ; ("D" "")
- ("F" [ "\e,Hk\e$,1,\\e(B" ])  ; Dagesh Kaf (Kof)
+ ("F" [ "כּ" ])  ; Dagesh Kaf (Kof)
 ; ("G" "")
- ("H" [ "\e$,1-2,W\e(B" ])  ; Yiddish Double Yod + Patah (Pasekh Tsvey Yudn)
- ("J" [ "\e,Hi\e$,1,T\e(B" ])  ; Khirik Yud
+ ("H" [ "ײַ" ])  ; Yiddish Double Yod + Patah (Pasekh Tsvey Yudn)
+ ("J" [ "יִ" ])  ; Khirik Yud
  ("K" ?})  ; mirroring
  ("L" ?{)  ; mirroring
  ("\"" ?\;)
  ("Z" ??)
  ("X" ?|)
- ("C"  [ "\e,Ha\e$,1,\\e(B" ])  ; Dagesh Bet (Beys)
- ("V" [ "\e,Ha\e$,1,_\e(B" ])  ; Rafe Bet (Veys)
+ ("C"  [ "בּ" ])  ; Dagesh Bet (Beys)
+ ("V" [ "בֿ" ])  ; Rafe Bet (Veys)
  ("B" ?\])  ; mirroring
  ("N" ?\[)  ; mirroring
  ("M" ?>)  ; mirroring
  ("<" ?<)  ; mirroring
- (">" [ "\e,Hz\e$,1,\\e(B" ])  ; Dagesh Tav (Tof)
+ (">" [ "תּ" ])  ; Dagesh Tav (Tof)
  ("?" ?\')
 )
 
 
 (quail-define-package
- "yiddish-keyman" "Hebrew" "\e$,1-2\e,Hw\e(B" nil "Yiddish Keyman input method.
+ "yiddish-keyman" "Hebrew" "ײק" nil "Yiddish Keyman input method.
 
 Based on Keyman keyboard layout.
 Better for yiddish than Hebrew methods..
@@ -817,64 +817,64 @@ Better for yiddish than Hebrew methods..
 
 (quail-define-rules
  ("`" ?\;)
- ("q" ?\e,Y%\e(B)  ; Double Low-9 Quotation Mark
- ("w" ?\e,Hy\e(B)  ; Shin
- ("e" ?\e,Hr\e(B)  ; Ayin
- ("r" ?\e,Hx\e(B)  ; Resh
- ("t" ?\e,Hh\e(B)  ; Tet
- ("y" ?\e,Hi\e(B)  ; Yod
- ("u" ?\e,He\e(B)  ; Vav
- ("i" ?\e,Hi\e(B)  ; Yod (x2)
- ("o" [ "\e,H`\e$,1,X\e(B" ])  ; Qamats Alef (Komets Alef)
- ("p" [ "\e,Ht\e$,1,\\e(B" ])  ; Dagesh Pe (Pey)
+ ("q" ?)  ; Double Low-9 Quotation Mark
+ ("w" ?ש)  ; Shin
+ ("e" ?ע)  ; Ayin
+ ("r" ?ר)  ; Resh
+ ("t" ?ט)  ; Tet
+ ("y" ?י)  ; Yod
+ ("u" ?ו)  ; Vav
+ ("i" ?י)  ; Yod (x2)
+ ("o" [ "אָ" ])  ; Qamats Alef (Komets Alef)
+ ("p" [ "פּ" ])  ; Dagesh Pe (Pey)
  ("[" ?\])  ; mirroring
  ("]" ?\[)  ; mirroring
- ("a"  [ "\e,H`\e$,1,W\e(B" ])  ; Patah Alef (Pasekh Alef)
- ("s" ?\e,Hq\e(B)  ; Samekh
- ("d" ?\e,Hc\e(B)  ; Dalet
- ("f" [ "\e,Ht\e$,1,_\e(B" ])  ; Rafe Pe (Fey)
- ("g" ?\e,Hb\e(B)  ; Gimel
- ("h" ?\e,Hd\e(B)  ; He
- ("j" ?\e$,1-2\e(B)  ; Yiddish Double Yod (Tsvey Yudn)
- ("k" ?\e,Hw\e(B)  ; Qof
- ("l" ?\e,Hl\e(B)  ; Lamed
- ("z" ?\e,Hf\e(B)  ; Zayin
- ("x" ?\e,Hk\e(B)  ; Kaf
- ("c" ?\e,Hv\e(B)  ; Tsadi
- ("v" ?\e$,1-0\e(B)  ; Yiddish Double Vav (Tsvey Vovn)
- ("b" ?\e,Ha\e(B)  ; Bet
- ("n" ?\e,Hp\e(B)  ; Nun
- ("m" ?\e,Hn\e(B)  ; Mem
+ ("a"  [ "אַ" ])  ; Patah Alef (Pasekh Alef)
+ ("s" ?ס)  ; Samekh
+ ("d" ?ד)  ; Dalet
+ ("f" [ "פֿ" ])  ; Rafe Pe (Fey)
+ ("g" ?ג)  ; Gimel
+ ("h" ?ה)  ; He
+ ("j" ?ײ)  ; Yiddish Double Yod (Tsvey Yudn)
+ ("k" ?ק)  ; Qof
+ ("l" ?ל)  ; Lamed
+ ("z" ?ז)  ; Zayin
+ ("x" ?כ)  ; Kaf
+ ("c" ?צ)  ; Tsadi
+ ("v" ?װ)  ; Yiddish Double Vav (Tsvey Vovn)
+ ("b" ?ב)  ; Bet
+ ("n" ?נ)  ; Nun
+ ("m" ?מ)  ; Mem
 
  ("(" ?\))  ; mirroring
  (")" ?\()  ; mirroring
- ("Q" ?\e,Y!\e(B)  ; Right Double Quotation Mark
- ("W" [ "\e,Hy\e$,1,b\e(B" ])  ; Shin + Sin dot
- ("E" ?\e$,1-2\e(B)  ; Yiddish Double Yod (x2)
+ ("Q" ?)  ; Right Double Quotation Mark
+ ("W" [ "שׂ" ])  ; Shin + Sin dot
+ ("E" ?ײ)  ; Yiddish Double Yod (x2)
 ; ("R" "")  ;
- ("T" [ "\e,Hz\e$,1,\\e(B" ])  ; Dagesh Tav (Tof)
- ("Y" [ "\e$,1-2,W\e(B" ])  ; Yiddish Double Yod + Patah (Pasekh Tsvey Yudn)
- ("U" [ "\e,He\e$,1,\\e(B" ])  ; Melupm vov
- ("I" [ "\e,Hi\e$,1,T\e(B" ])  ; Khirik Yud
- ("O" ?\e$,1-1\e(B)  ; Ligature Yiddish Vav Yod (vov yud)
+ ("T" [ "תּ" ])  ; Dagesh Tav (Tof)
+ ("Y" [ "ײַ" ])  ; Yiddish Double Yod + Patah (Pasekh Tsvey Yudn)
+ ("U" [ "וּ" ])  ; Melupm vov
+ ("I" [ "יִ" ])  ; Khirik Yud
+ ("O" ?ױ)  ; Ligature Yiddish Vav Yod (vov yud)
 ; ("P" "")
  ("{" ?})  ; mirroring
  ("}" ?{)  ; mirroring
- ("A" ?\e,H`\e(B)  ; Alef (Shtumer Alef)
- ("S" ?\e,Hz\e(B)  ; Tav
- ("F"  ?\e,Hs\e(B)  ; Final Pe
- ("G" ?\e$,1-3\e(B)  ; Geresh (Punct.)
- ("H" ?\e,Hg\e(B)  ; Het
- ("J" ?\e$,1-2\e(B)  ; Yiddish Double Yod (x2)
- ("K" [ "\e,Hk\e$,1,\\e(B" ])  ; Dagesh Kaf (Kof)
+ ("A" ?א)  ; Alef (Shtumer Alef)
+ ("S" ?ת)  ; Tav
+ ("F"  ?ף)  ; Final Pe
+ ("G" ?׳)  ; Geresh (Punct.)
+ ("H" ?ח)  ; Het
+ ("J" ?ײ)  ; Yiddish Double Yod (x2)
+ ("K" [ "כּ" ])  ; Dagesh Kaf (Kof)
 ; ("L" "")
 ; ("Z" "")
- ("X" ?\e,Hj\e(B)  ; Final Kaf
- ("C" ?\e,Hu\e(B)  ; Final Tsadi
- ("V" [ "\e,Ha\e$,1,_\e(B" ])  ; Rafe Bet (Veys) )  ; Bet
+ ("X" ?ך)  ; Final Kaf
+ ("C" ?ץ)  ; Final Tsadi
+ ("V" [ "בֿ" ])  ; Rafe Bet (Veys) )  ; Bet
 ; ("B" "")
- ("N" ?\e,Ho\e(B)  ; Final Nun
- ("M" ?\e,Hm\e(B)  ; Final Mem
+ ("N" ?ן)  ; Final Nun
+ ("M" ?ם)  ; Final Mem
  ("<" ?>)  ; mirroring
  (">" ?<)  ; mirroring
 )
index 268ee9c2b52ab9cad26bae7d619ece43611bbbe6..52357afd8dd21c7c8d08791f3b95372e0ec229e1 100644 (file)
@@ -1,4 +1,4 @@
-;;; lao.el --- Quail package for inputting Lao characters  -*-coding: iso-2022-7bit;-*-
+;;; lao.el --- Quail package for inputting Lao characters  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
     ("#" . "3")
     ("$" . "4")
     ("&" . "5")
-    ("%" . "\e(1l\e(B")
-    ("'" . "\e(1'\e(B")
+    ("%" . "")
+    ("'" . "")
     ("(" . "7")
     (")" . "8")
     ("*" . "6")
-    ("+" . ["\e(1mh\e(B"])
-    ("," . "\e(1A\e(B")
-    ("-" . "\e(1*\e(B")
-    ("." . "\e(1c\e(B")
-    ("/" . "\e(1=\e(B")
-    ("0" . "\e(1"\e(B")
-    ("1" . "\e(1B\e(B")
-    ("2" . "\e(1?\e(B")
-    ("3" . "\e(1b\e(B")
-    ("4" . "\e(16\e(B")
-    ("5" . "\e(1X\e(B")
-    ("6" . "\e(1Y\e(B")
-    ("7" . "\e(1$\e(B")
-    ("8" . "\e(15\e(B")
-    ("9" . "\e(1(\e(B")
+    ("+" . ["ໍ່"])
+    ("," . "")
+    ("-" . "")
+    ("." . "")
+    ("/" . "")
+    ("0" . "")
+    ("1" . "")
+    ("2" . "")
+    ("3" . "")
+    ("4" . "")
+    ("5" . "")
+    ("6" . "")
+    ("7" . "")
+    ("8" . "")
+    ("9" . "")
     (":" . "%")
-    (";" . "\e(1G\e(B")
-    ("<" . "\e(1}\e(B")
-    ("=" . "\e(1m\e(B")
+    (";" . "")
+    ("<" . "")
+    ("=" . "")
     (">" . "$")
     ("?" . ")")
     ("@" . "2")
-    ("A" . ["\e(1Qi\e(B"])
-    ("B" . ["\e(1Vi\e(B"])
-    ("C" . "\e(1O\e(B")
+    ("A" . ["ັ້"])
+    ("B" . ["ຶ້"])
+    ("C" . "")
     ("D" . ".")
-    ("E" . ["\e(1Si\e(B"])
+    ("E" . ["ຳ້"])
     ("F" . ",")
     ("G" . ":")
-    ("H" . "\e(1j\e(B")
-    ("I" . "\e(1N\e(B")
-    ("J" . "\e(1k\e(B")
+    ("H" . "")
+    ("I" . "")
+    ("J" . "")
     ("K" . "!")
     ("L" . "?")
-    ("M" . "\e(1f\e(B")
-    ("N" . ["\e(1Wi\e(B"])
-    ("O" . "\e(1|\e(B")
-    ("P" . "\e(1]\e(B")
-    ("Q" . ["\e(1[i\e(B"])
+    ("M" . "")
+    ("N" . ["ື້"])
+    ("O" . "")
+    ("P" . "")
+    ("Q" . ["ົ້"])
     ("R" . "_")
     ("S" . ";")
     ("T" . "+")
-    ("U" . ["\e(1Ui\e(B"])
+    ("U" . ["ີ້"])
     ("V" . "x")
     ("W" . "0")
     ("X" . "(")
-    ("Y" . ["\e(1Ti\e(B"])
+    ("Y" . ["ິ້"])
     ("Z" . "\"")
-    ("[" . "\e(1:\e(B")
-    ("]" . "\e(1E\e(B")
-    ("^" . "\e(1\\e(B")
+    ("[" . "")
+    ("]" . "")
+    ("^" . "")
     ("_" . "9")
-    ("`" . "\e(1'\e(B")
-    ("a" . "\e(1Q\e(B")
-    ("b" . "\e(1V\e(B")
-    ("c" . "\e(1a\e(B")
-    ("d" . "\e(1!\e(B")
-    ("e" . "\e(1S\e(B")
-    ("f" . "\e(14\e(B")
-    ("g" . "\e(1`\e(B")
-    ("h" . "\e(1i\e(B")
-    ("i" . "\e(1C\e(B")
-    ("j" . "\e(1h\e(B")
-    ("k" . "\e(1R\e(B")
-    ("l" . "\e(1J\e(B")
-    ("m" . "\e(17\e(B")
-    ("n" . "\e(1W\e(B")
-    ("o" . "\e(19\e(B")
-    ("p" . "\e(1-\e(B")
-    ("q" . "\e(1[\e(B")
-    ("r" . "\e(1>\e(B")
-    ("s" . "\e(1K\e(B")
-    ("t" . "\e(1P\e(B")
-    ("u" . "\e(1U\e(B")
-    ("v" . "\e(1M\e(B")
-    ("w" . "\e(1d\e(B")
-    ("x" . "\e(1;\e(B")
-    ("y" . "\e(1T\e(B")
-    ("z" . "\e(1<\e(B")
+    ("`" . "")
+    ("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" . "")
     ("{" . "-")
-    ("|" . ["\e(1K\\e(B"])
+    ("|" . ["ຫຼ"])
     ("}" . "/")
-    ("~" . "\e(1l\e(B")
-    ("\\0" . "\e(1p\e(B")
-    ("\\1" . "\e(1q\e(B")
-    ("\\2" . "\e(1r\e(B")
-    ("\\3" . "\e(1s\e(B")
-    ("\\4" . "\e(1t\e(B")
-    ("\\5" . "\e(1u\e(B")
-    ("\\6" . "\e(1v\e(B")
-    ("\\7" . "\e(1w\e(B")
-    ("\\8" . "\e(1x\e(B")
-    ("\\9" . "\e(1y\e(B")
+    ("~" . "")
+    ("\\0" . "")
+    ("\\1" . "")
+    ("\\2" . "")
+    ("\\3" . "")
+    ("\\4" . "")
+    ("\\5" . "")
+    ("\\6" . "")
+    ("\\7" . "")
+    ("\\8" . "")
+    ("\\9" . "")
     )
   "Alist of key sequences vs the corresponding Lao string to input.
 This variable is for the input method \"lao\".
@@ -155,7 +155,7 @@ you need to re-load it to properly re-initialize related alists.")
 ;; Temporary variable to initialize lao-consonant-key-alist, etc.
 (defconst lao-key-alist-vector
   (let ((tail lao-key-alist)
-       consonant-key-alist semivowel-key-alist vowel-key-alist 
+       consonant-key-alist semivowel-key-alist vowel-key-alist
        voweltone-key-alist tone-key-alist other-key-alist
        elt phonetic-type)
     (while tail
@@ -178,7 +178,7 @@ you need to re-load it to properly re-initialize related alists.")
             (setq semivowel-key-alist (cons elt semivowel-key-alist)))
            (t
             (setq other-key-alist (cons elt other-key-alist)))))
-    (vector consonant-key-alist semivowel-key-alist vowel-key-alist 
+    (vector consonant-key-alist semivowel-key-alist vowel-key-alist
            voweltone-key-alist tone-key-alist other-key-alist)))
 
 (defconst lao-consonant-key-alist (aref lao-key-alist-vector 0))
@@ -192,7 +192,7 @@ you need to re-load it to properly re-initialize related alists.")
 (makunbound 'lao-key-alist-vector)
 
 (quail-define-package
- "lao" "Lao" "\e(1E\e(B" t
+ "lao" "Lao" "" t
  "Lao input method simulating Lao keyboard layout based on Thai TIS620"
  nil t t t t nil nil nil 'quail-lao-update-translation nil t)
 
index ec39d72abbd086c212255cdb12eb9f4a122c7910..ec88020493c225d932a1c030d8229ee90ef3b3bd 100644 (file)
@@ -1,4 +1,4 @@
-;;; lrt.el --- Quail package for inputting Lao characters by LRT method  -*-coding: iso-2022-7bit;-*-
+;;; lrt.el --- Quail package for inputting Lao characters by LRT method  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 
 
 (quail-define-package
- "lao-lrt" "Lao" "\e(1E\e(BR" t
+ "lao-lrt" "Lao" "R" t
  "Lao input method using LRT (Lao Roman Transcription).
-`\\' (backslash) + number-key  => \e(1p\e(B,\e(1q\e(B,\e(1r\e(B,...  LAO DIGIT ZERO, ONE, TWO, ...
-`\\' (backslash) + `\\'                => \e(1f\e(B              LAO KO LA (REPETITION)
-`\\' (backslash) + `$'         => \e(1O\e(B              LAO ELLIPSIS
+`\\' (backslash) + number-key  => ໐,໑,໒,...      LAO DIGIT ZERO, ONE, TWO, ...
+`\\' (backslash) + `\\'                =>           LAO KO LA (REPETITION)
+`\\' (backslash) + `$'         =>           LAO ELLIPSIS
 "
  nil 'forget-last-selection 'deterministic 'kbd-translate 'show-layout
   nil nil nil 'quail-lao-update-translation nil t)
index fd891849cfdf776eba704f1c3cebfb8250218406..10d111421cc7410784674df5056bb1168ef9f436 100644 (file)
@@ -1,10 +1,10 @@
-;;; slovak.el --- Quail package for inputting Slovak  -*-coding: iso-2022-7bit;-*-
+;;; slovak.el --- Quail package for inputting Slovak  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc.
 
-;; Authors: Tibor \e,B)\e(Bimko <tibor.simko@fmph.uniba.sk>
+;; Authors: Tibor Šimko <tibor.simko@fmph.uniba.sk>
 ;;     Milan Zamazal <pdm@zamazal.org>
-;; Maintainer: Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
+;; Maintainer: Pavel Janík <Pavel@Janik.cz>
 ;; Keywords: i18n, multilingual, input method, Slovak
 
 ;; This file is part of GNU Emacs.
 
 (quail-define-rules
  ("1" ?+)
- ("2" ?\e,B5\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,B;\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("2" ?ľ)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ť)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("!" ?1)
  ("@" ?2)
  ("#" ?3)
  ("-" ?=)
  ("_" ?%)
  ("=" ?')
- ("[" ?\e,Bz\e(B)
+ ("[" ?ú)
  ("{" ?/)
- ("]" ?\e,Bd\e(B)
+ ("]" ?ä)
  ("}" ?\()
- ("\\" ?\e,Br\e(B)
+ ("\\" ?ň)
  ("|" ?\))
- (";" ?\e,Bt\e(B)
+ (";" ?ô)
  (":" ?\")
- ("'" ?\e,B'\e(B)
+ ("'" ?§)
  ("\"" ?!)
  ("<" ??)
  (">" ?:)
  ("z" ?y)
  ("Y" ?Z)
  ("Z" ?Y)
- ("=a" ?\e,Ba\e(B)
- ("+a" ?\e,Bd\e(B)
- ("+=a" ?\e,Bd\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("=e" ?\e,Bi\e(B)
- ("+e" ?\e,Bl\e(B)
- ("=i" ?\e,Bm\e(B)
- ("=l" ?\e,Be\e(B)
- ("+l" ?\e,B5\e(B)
- ("+n" ?\e,Br\e(B)
- ("=o" ?\e,Bs\e(B)
- ("+o" ?\e,Bt\e(B)
- ("~o" ?\e,Bt\e(B)
- ("+=o" ?\e,Bv\e(B)
- ("=r" ?\e,B`\e(B)
- ("+r" ?\e,Bx\e(B)
- ("=s" ?\e,B_\e(B)
- ("+s" ?\e,B9\e(B)
- ("+t" ?\e,B;\e(B)
- ("=u" ?\e,Bz\e(B)
- ("+u" ?\e,By\e(B)
- ("+=u" ?\e,B|\e(B)
- ("=z" ?\e,B}\e(B)
- ("+y" ?\e,B>\e(B)
- ("=A" ?\e,BA\e(B)
- ("+A" ?\e,BD\e(B)
- ("+=A" ?\e,BD\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("=E" ?\e,BI\e(B)
- ("+E" ?\e,BL\e(B)
- ("=I" ?\e,BM\e(B)
- ("=L" ?\e,BE\e(B)
- ("+L" ?\e,B%\e(B)
- ("+N" ?\e,BR\e(B)
- ("=O" ?\e,BS\e(B)
- ("+O" ?\e,BT\e(B)
- ("~O" ?\e,BT\e(B)
- ("+=O" ?\e,BV\e(B)
- ("=R" ?\e,B@\e(B)
- ("+R" ?\e,BX\e(B)
- ("=S" ?\e,B_\e(B)
- ("+S" ?\e,B)\e(B)
- ("+T" ?\e,B+\e(B)
- ("=U" ?\e,BZ\e(B)
- ("+U" ?\e,BY\e(B)
- ("+=U" ?\e,B\\e(B)
- ("=Z" ?\e,B]\e(B)
- ("+Y" ?\e,B.\e(B)
+ ("=a" ?á)
+ ("+a" ?ä)
+ ("+=a" ?ä)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("=e" ?é)
+ ("+e" ?ě)
+ ("=i" ?í)
+ ("=l" ?ĺ)
+ ("+l" ?ľ)
+ ("+n" ?ň)
+ ("=o" ?ó)
+ ("+o" ?ô)
+ ("~o" ?ô)
+ ("+=o" ?ö)
+ ("=r" ?ŕ)
+ ("+r" ?ř)
+ ("=s" ?ß)
+ ("+s" ?š)
+ ("+t" ?ť)
+ ("=u" ?ú)
+ ("+u" ?ů)
+ ("+=u" ?ü)
+ ("=z" ?ý)
+ ("+y" ?ž)
+ ("=A" ?Á)
+ ("+A" ?Ä)
+ ("+=A" ?Ä)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("=E" ?É)
+ ("+E" ?Ě)
+ ("=I" ?Í)
+ ("=L" ?Ĺ)
+ ("+L" ?Ľ)
+ ("+N" ?Ň)
+ ("=O" ?Ó)
+ ("+O" ?Ô)
+ ("~O" ?Ô)
+ ("+=O" ?Ö)
+ ("=R" ?Ŕ)
+ ("+R" ?Ř)
+ ("=S" ?ß)
+ ("+S" ?Š)
+ ("+T" ?Ť)
+ ("=U" ?Ú)
+ ("+U" ?Ů)
+ ("+=U" ?Ü)
+ ("=Z" ?Ý)
+ ("+Y" ?Ž)
  ("=q" ?`)
  ("=2" ?@)
  ("=3" ?#)
@@ -177,75 +177,75 @@ All other keys are the same as on standard US keyboard."
 
 (quail-define-rules
  ("[[[[" ?\[)
- ("2" ?\e,B5\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,B;\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
- ("[a" ?\e,Ba\e(B)
- ("[[a" ?\e,Bd\e(B)
- ("[[[a" ?\e,Bd\e(B)
- ("[c" ?\e,Bh\e(B)
- ("[[c" ?\e,Bh\e(B)
- ("[d" ?\e,Bo\e(B)
- ("[[d" ?\e,Bo\e(B)
- ("[e" ?\e,Bi\e(B)
- ("[[e" ?\e,Bl\e(B)
- ("[i" ?\e,Bm\e(B)
- ("[l" ?\e,Be\e(B)
- ("[[l" ?\e,B5\e(B)
- ("[n" ?\e,Br\e(B)
- ("[[n" ?\e,Br\e(B)
- ("[o" ?\e,Bs\e(B)
- ("[[o" ?\e,Bt\e(B)
- ("[[[o" ?\e,Bv\e(B)
- ("[r" ?\e,B`\e(B)
- ("[[r" ?\e,Bx\e(B)
- ("[s" ?\e,B9\e(B)
- ("[[s" ?\e,B9\e(B)
- ("[[[s" ?\e,B_\e(B)
- ("[t" ?\e,B;\e(B)
- ("[[t" ?\e,B;\e(B)
- ("[u" ?\e,Bz\e(B)
- ("[[u" ?\e,By\e(B)
- ("[[[u" ?\e,B|\e(B)
- ("[y" ?\e,B}\e(B)
- ("[z" ?\e,B>\e(B)
- ("[[z" ?\e,B>\e(B)
- ("[A" ?\e,BA\e(B)
- ("[[A" ?\e,BD\e(B)
- ("[[[A" ?\e,BD\e(B)
- ("[C" ?\e,BH\e(B)
- ("[[C" ?\e,BH\e(B)
- ("[D" ?\e,BO\e(B)
- ("[[D" ?\e,BO\e(B)
- ("[E" ?\e,BI\e(B)
- ("[[E" ?\e,BL\e(B)
- ("[I" ?\e,BM\e(B)
- ("[L" ?\e,BE\e(B)
- ("[[L" ?\e,B%\e(B)
- ("[N" ?\e,BR\e(B)
- ("[[N" ?\e,BR\e(B)
- ("[O" ?\e,BS\e(B)
- ("[[O" ?\e,BT\e(B)
- ("[[[O" ?\e,BV\e(B)
- ("[R" ?\e,B@\e(B)
- ("[[R" ?\e,BX\e(B)
- ("[S" ?\e,B)\e(B)
- ("[[S" ?\e,B)\e(B)
- ("[[[S" ?\e,B_\e(B)
- ("[T" ?\e,B+\e(B)
- ("[[T" ?\e,B+\e(B)
- ("[U" ?\e,BZ\e(B)
- ("[[U" ?\e,BY\e(B)
- ("[[[U" ?\e,B\\e(B)
- ("[Y" ?\e,B]\e(B)
- ("[Z" ?\e,B.\e(B)
- ("[[Z" ?\e,B.\e(B)
+ ("2" ?ľ)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ť)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
+ ("[a" ?á)
+ ("[[a" ?ä)
+ ("[[[a" ?ä)
+ ("[c" ?č)
+ ("[[c" ?č)
+ ("[d" ?ď)
+ ("[[d" ?ď)
+ ("[e" ?é)
+ ("[[e" ?ě)
+ ("[i" ?í)
+ ("[l" ?ĺ)
+ ("[[l" ?ľ)
+ ("[n" ?ň)
+ ("[[n" ?ň)
+ ("[o" ?ó)
+ ("[[o" ?ô)
+ ("[[[o" ?ö)
+ ("[r" ?ŕ)
+ ("[[r" ?ř)
+ ("[s" ?š)
+ ("[[s" ?š)
+ ("[[[s" ?ß)
+ ("[t" ?ť)
+ ("[[t" ?ť)
+ ("[u" ?ú)
+ ("[[u" ?ů)
+ ("[[[u" ?ü)
+ ("[y" ?ý)
+ ("[z" ?ž)
+ ("[[z" ?ž)
+ ("[A" ?Á)
+ ("[[A" ?Ä)
+ ("[[[A" ?Ä)
+ ("[C" ?Č)
+ ("[[C" ?Č)
+ ("[D" ?Ď)
+ ("[[D" ?Ď)
+ ("[E" ?É)
+ ("[[E" ?Ě)
+ ("[I" ?Í)
+ ("[L" ?Ĺ)
+ ("[[L" ?Ľ)
+ ("[N" ?Ň)
+ ("[[N" ?Ň)
+ ("[O" ?Ó)
+ ("[[O" ?Ô)
+ ("[[[O" ?Ö)
+ ("[R" ?Ŕ)
+ ("[[R" ?Ř)
+ ("[S" ?Š)
+ ("[[S" ?Š)
+ ("[[[S" ?ß)
+ ("[T" ?Ť)
+ ("[[T" ?Ť)
+ ("[U" ?Ú)
+ ("[[U" ?Ů)
+ ("[[[U" ?Ü)
+ ("[Y" ?Ý)
+ ("[Z" ?Ž)
+ ("[[Z" ?Ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
@@ -270,15 +270,15 @@ All other keys are the same as on standard US keyboard."
  nil t nil nil t nil nil nil nil nil t)
 
 (quail-define-rules
- ("2" ?\e,B5\e(B)
- ("3" ?\e,B9\e(B)
- ("4" ?\e,Bh\e(B)
- ("5" ?\e,B;\e(B)
- ("6" ?\e,B>\e(B)
- ("7" ?\e,B}\e(B)
- ("8" ?\e,Ba\e(B)
- ("9" ?\e,Bm\e(B)
- ("0" ?\e,Bi\e(B)
+ ("2" ?ľ)
+ ("3" ?š)
+ ("4" ?č)
+ ("5" ?ť)
+ ("6" ?ž)
+ ("7" ?ý)
+ ("8" ?á)
+ ("9" ?í)
+ ("0" ?é)
  ("==" ?=)
  ("++" ?+)
  ("=+" ?+)
@@ -300,54 +300,54 @@ All other keys are the same as on standard US keyboard."
  ("+8" ?8)
  ("+9" ?9)
  ("+0" ?0)
- ("=a" ?\e,Ba\e(B)
- ("+a" ?\e,Bd\e(B)
- ("+=a" ?\e,Bd\e(B)
- ("+c" ?\e,Bh\e(B)
- ("+d" ?\e,Bo\e(B)
- ("=e" ?\e,Bi\e(B)
- ("+e" ?\e,Bl\e(B)
- ("=i" ?\e,Bm\e(B)
- ("=l" ?\e,Be\e(B)
- ("+l" ?\e,B5\e(B)
- ("+n" ?\e,Br\e(B)
- ("=o" ?\e,Bs\e(B)
- ("+o" ?\e,Bt\e(B)
- ("+=o" ?\e,Bv\e(B)
- ("=r" ?\e,B`\e(B)
- ("+r" ?\e,Bx\e(B)
- ("=s" ?\e,B_\e(B)
- ("+s" ?\e,B9\e(B)
- ("+t" ?\e,B;\e(B)
- ("=u" ?\e,Bz\e(B)
- ("+u" ?\e,By\e(B)
- ("+=u" ?\e,B|\e(B)
- ("=y" ?\e,B}\e(B)
- ("+z" ?\e,B>\e(B)
- ("=A" ?\e,BA\e(B)
- ("+A" ?\e,BD\e(B)
- ("+=A" ?\e,BD\e(B)
- ("+C" ?\e,BH\e(B)
- ("+D" ?\e,BO\e(B)
- ("=E" ?\e,BI\e(B)
- ("+E" ?\e,BL\e(B)
- ("=I" ?\e,BM\e(B)
- ("=L" ?\e,BE\e(B)
- ("+L" ?\e,B%\e(B)
- ("+N" ?\e,BR\e(B)
- ("=O" ?\e,BS\e(B)
- ("+O" ?\e,BT\e(B)
- ("+=O" ?\e,BV\e(B)
- ("=R" ?\e,B@\e(B)
- ("+R" ?\e,BX\e(B)
- ("=S" ?\e,B_\e(B)
- ("+S" ?\e,B)\e(B)
- ("+T" ?\e,B+\e(B)
- ("=U" ?\e,BZ\e(B)
- ("+U" ?\e,BY\e(B)
- ("+=U" ?\e,B\\e(B)
- ("=Y" ?\e,B]\e(B)
- ("+Z" ?\e,B.\e(B)
+ ("=a" ?á)
+ ("+a" ?ä)
+ ("+=a" ?ä)
+ ("+c" ?č)
+ ("+d" ?ď)
+ ("=e" ?é)
+ ("+e" ?ě)
+ ("=i" ?í)
+ ("=l" ?ĺ)
+ ("+l" ?ľ)
+ ("+n" ?ň)
+ ("=o" ?ó)
+ ("+o" ?ô)
+ ("+=o" ?ö)
+ ("=r" ?ŕ)
+ ("+r" ?ř)
+ ("=s" ?ß)
+ ("+s" ?š)
+ ("+t" ?ť)
+ ("=u" ?ú)
+ ("+u" ?ů)
+ ("+=u" ?ü)
+ ("=y" ?ý)
+ ("+z" ?ž)
+ ("=A" ?Á)
+ ("+A" ?Ä)
+ ("+=A" ?Ä)
+ ("+C" ?Č)
+ ("+D" ?Ď)
+ ("=E" ?É)
+ ("+E" ?Ě)
+ ("=I" ?Í)
+ ("=L" ?Ĺ)
+ ("+L" ?Ľ)
+ ("+N" ?Ň)
+ ("=O" ?Ó)
+ ("+O" ?Ô)
+ ("+=O" ?Ö)
+ ("=R" ?Ŕ)
+ ("+R" ?Ř)
+ ("=S" ?ß)
+ ("+S" ?Š)
+ ("+T" ?Ť)
+ ("=U" ?Ú)
+ ("+U" ?Ů)
+ ("+=U" ?Ü)
+ ("=Y" ?Ý)
+ ("+Z" ?Ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
@@ -374,96 +374,96 @@ All other keys are the same as on standard US keyboard."
  ("[]" ?\])
  ("][" ?\[)
  ("]]" ?\])
- ("[a" ?\e,Ba\e(B)
- ("[[a" ?\e,Bd\e(B)
- ("[[[a" ?\e,Bd\e(B)
- ("]a" ?\e,Bd\e(B)
- ("][a" ?\e,Bd\e(B)
- ("[c" ?\e,Bh\e(B)
- ("[[c" ?\e,Bh\e(B)
- ("]c" ?\e,Bh\e(B)
- ("[d" ?\e,Bo\e(B)
- ("[[d" ?\e,Bo\e(B)
- ("]d" ?\e,Bo\e(B)
- ("[e" ?\e,Bi\e(B)
- ("[[e" ?\e,Bl\e(B)
- ("]e" ?\e,Bl\e(B)
- ("[i" ?\e,Bm\e(B)
- ("[l" ?\e,Be\e(B)
- ("[[l" ?\e,B5\e(B)
- ("]l" ?\e,B5\e(B)
- ("[n" ?\e,Br\e(B)
- ("[[n" ?\e,Br\e(B)
- ("]n" ?\e,Br\e(B)
- ("[[o" ?\e,Bt\e(B)
- ("[[[o" ?\e,Bv\e(B)
- ("[o" ?\e,Bs\e(B)
- ("]o" ?\e,Bt\e(B)
- ("][o" ?\e,Bv\e(B)
- ("[r" ?\e,B`\e(B)
- ("[[r" ?\e,Bx\e(B)
- ("]r" ?\e,Bx\e(B)
- ("[s" ?\e,B9\e(B)
- ("[[s" ?\e,B9\e(B)
- ("[[[s" ?\e,B_\e(B)
- ("]s" ?\e,B9\e(B)
- ("[t" ?\e,B;\e(B)
- ("[[t" ?\e,B;\e(B)
- ("]t" ?\e,B;\e(B)
- ("[u" ?\e,Bz\e(B)
- ("[[u" ?\e,By\e(B)
- ("[[[u" ?\e,B|\e(B)
- ("]u" ?\e,By\e(B)
- ("][u" ?\e,B|\e(B)
- ("[y" ?\e,B}\e(B)
- ("[z" ?\e,B>\e(B)
- ("[[z" ?\e,B>\e(B)
- ("]z" ?\e,B>\e(B)
- ("[A" ?\e,BA\e(B)
- ("[[A" ?\e,BD\e(B)
- ("[[[A" ?\e,BD\e(B)
- ("]A" ?\e,BD\e(B)
- ("][A" ?\e,BD\e(B)
- ("[C" ?\e,BH\e(B)
- ("[[C" ?\e,BH\e(B)
- ("]C" ?\e,BH\e(B)
- ("[D" ?\e,BO\e(B)
- ("[[D" ?\e,BO\e(B)
- ("]D" ?\e,BO\e(B)
- ("[E" ?\e,BI\e(B)
- ("[[E" ?\e,BL\e(B)
- ("]E" ?\e,BL\e(B)
- ("[I" ?\e,BM\e(B)
- ("[L" ?\e,BE\e(B)
- ("[[L" ?\e,B%\e(B)
- ("]L" ?\e,B%\e(B)
- ("[N" ?\e,BR\e(B)
- ("[[N" ?\e,BR\e(B)
- ("]N" ?\e,BR\e(B)
- ("[O" ?\e,BS\e(B)
- ("[[O" ?\e,BT\e(B)
- ("[[[O" ?\e,BV\e(B)
- ("]O" ?\e,BT\e(B)
- ("][O" ?\e,BV\e(B)
- ("[R" ?\e,B@\e(B)
- ("[[R" ?\e,BX\e(B)
- ("]R" ?\e,BX\e(B)
- ("[S" ?\e,B)\e(B)
- ("[[S" ?\e,B)\e(B)
- ("[[[S" ?\e,B_\e(B)
- ("]S" ?\e,B)\e(B)
- ("[T" ?\e,B+\e(B)
- ("[[T" ?\e,B+\e(B)
- ("]T" ?\e,B+\e(B)
- ("[U" ?\e,BZ\e(B)
- ("[[U" ?\e,BY\e(B)
- ("[[[U" ?\e,B\\e(B)
- ("]U" ?\e,BY\e(B)
- ("][U" ?\e,B\\e(B)
- ("[Y" ?\e,B]\e(B)
- ("[Z" ?\e,B.\e(B)
- ("[[Z" ?\e,B.\e(B)
- ("]Z" ?\e,B.\e(B)
+ ("[a" ?á)
+ ("[[a" ?ä)
+ ("[[[a" ?ä)
+ ("]a" ?ä)
+ ("][a" ?ä)
+ ("[c" ?č)
+ ("[[c" ?č)
+ ("]c" ?č)
+ ("[d" ?ď)
+ ("[[d" ?ď)
+ ("]d" ?ď)
+ ("[e" ?é)
+ ("[[e" ?ě)
+ ("]e" ?ě)
+ ("[i" ?í)
+ ("[l" ?ĺ)
+ ("[[l" ?ľ)
+ ("]l" ?ľ)
+ ("[n" ?ň)
+ ("[[n" ?ň)
+ ("]n" ?ň)
+ ("[[o" ?ô)
+ ("[[[o" ?ö)
+ ("[o" ?ó)
+ ("]o" ?ô)
+ ("][o" ?ö)
+ ("[r" ?ŕ)
+ ("[[r" ?ř)
+ ("]r" ?ř)
+ ("[s" ?š)
+ ("[[s" ?š)
+ ("[[[s" ?ß)
+ ("]s" ?š)
+ ("[t" ?ť)
+ ("[[t" ?ť)
+ ("]t" ?ť)
+ ("[u" ?ú)
+ ("[[u" ?ů)
+ ("[[[u" ?ü)
+ ("]u" ?ů)
+ ("][u" ?ü)
+ ("[y" ?ý)
+ ("[z" ?ž)
+ ("[[z" ?ž)
+ ("]z" ?ž)
+ ("[A" ?Á)
+ ("[[A" ?Ä)
+ ("[[[A" ?Ä)
+ ("]A" ?Ä)
+ ("][A" ?Ä)
+ ("[C" ?Č)
+ ("[[C" ?Č)
+ ("]C" ?Č)
+ ("[D" ?Ď)
+ ("[[D" ?Ď)
+ ("]D" ?Ď)
+ ("[E" ?É)
+ ("[[E" ?Ě)
+ ("]E" ?Ě)
+ ("[I" ?Í)
+ ("[L" ?Ĺ)
+ ("[[L" ?Ľ)
+ ("]L" ?Ľ)
+ ("[N" ?Ň)
+ ("[[N" ?Ň)
+ ("]N" ?Ň)
+ ("[O" ?Ó)
+ ("[[O" ?Ô)
+ ("[[[O" ?Ö)
+ ("]O" ?Ô)
+ ("][O" ?Ö)
+ ("[R" ?Ŕ)
+ ("[[R" ?Ř)
+ ("]R" ?Ř)
+ ("[S" ?Š)
+ ("[[S" ?Š)
+ ("[[[S" ?ß)
+ ("]S" ?Š)
+ ("[T" ?Ť)
+ ("[[T" ?Ť)
+ ("]T" ?Ť)
+ ("[U" ?Ú)
+ ("[[U" ?Ů)
+ ("[[[U" ?Ü)
+ ("]U" ?Ů)
+ ("][U" ?Ü)
+ ("[Y" ?Ý)
+ ("[Z" ?Ž)
+ ("[[Z" ?Ž)
+ ("]Z" ?Ž)
  ([kp-1] ?1)
  ([kp-2] ?2)
  ([kp-3] ?3)
index 0b8236e47096c79c581af35cb001f3e36588c9e5..5556173a420d43ab3f1c54a3948d92d089433330 100644 (file)
@@ -1,4 +1,4 @@
-;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601) -*-coding: iso-2022-7bit;-*-
+;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601) -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 (require 'korea-util)
 
 (quail-define-package
- "korean-symbol" "Korean" "\e$(C=I9z\e(B" t
- "\e$(CGQ1[=I9z@T7BG%\e(B:
-  \e$(C!<\e(B(\e$(C!=0}H#?-1b!<\e(Barrow\e$(C!=H-;l!<\e(Bsex\e$(C!=!N!O!<\e(Bindex\e$(C!=C7@Z\e(B  \e$(C!<\e(Baccent\e$(C!=>G<>F.\e(B
-  \e$(C!<\e(B)\e$(C!=0}H#4]1b!<\e(Bmusic\e$(C!=@=>G!<\e(Bdot\e$(C!=A!\e(B  \e$(C!<\e(Bquote\e$(C!=5{?HG%!<\e(Bxtext\e$(C!=!W!X"R"."/\e(B
-  \e$(C!<\e(BUnit\e$(C!=!I!J!K"5!<\e(Bmath\e$(C!=<vGP1bH#!<\e(Bpic\e$(C!=;sG|9.@Z!<\e(Bline\e$(C!=<19.@Z\e(B
-  \e$(C!<\e(Bunit\e$(C!=4\@'\e(B    \e$(C!<\e(Bfrac\e$(C!=:P<v\e(B    \e$(C!<\e(Btextline\e$(C!=!)!*!+!,!-\e(B
-  \e$(C!<\e(Bwn\e$(C!="_!<\e(Bks\e$(C!="^!<\e(BNo\e$(C!="`!<"a!="a\e(B \e$(C!<\e(Bdag\e$(C!="S\e(B \e$(C!<\e(Bddag\e$(C!="T!<\e(Bpercent\e$(C!="6\e(B
-  \e$(C!<\e(Bam\e$(C!="c!<\e(Bpm\e$(C!="d!<"b!="b!<\e(BTel\e$(C!="e!<\e(Bwon\e$(C!=#\\e(B \e$(C!<\e(Byen\e$(C!=!M\e(B \e$(C!<\e(Bpound\e$(C!=!L\e(B
-  \e$(C!<\e(BEng\e$(C!=#A#B#C!&\e(B \e$(C!<\e(Benum\e$(C!=#0#1#2!&\e(B \e$(C!<\e(BRuss\e$(C!=,!,",#!&!<\e(BGreek\e$(C!=%A%B%C!&\e(B
-  \e$(C!<\e(Beng\e$(C!=#a#b#c!&\e(B \e$(C!<\e(Beasc\e$(C!=?5>n\e(BASCII\e$(C!<\e(Bruss\e$(C!=,Q,R,S!&!<\e(Bgreek\e$(C!=%a%b%c!&\e(B
-  \e$(C!<\e(BRom\e$(C!=%0%1%2!&\e(B \e$(C!<\e(BScan\e$(C!=(!("(#!&\e(B \e$(C!<\e(Bhira\e$(C!=*!*"*#\e(B
-  \e$(C!<\e(Brom\e$(C!=%!%"%#!&\e(B \e$(C!<\e(Bscan\e$(C!=)!)")#!&\e(B \e$(C!<\e(Bkata\e$(C!=+!+"+#\e(B
-  \e$(C!<\e(Bojaso\e$(C!=(1!-(>!<\e(Bpjaso\e$(C!=)1!-)>!<\e(Boeng\e$(C!=(M!-(f!<\e(Bpeng\e$(C!=)M!-)f\e(B
-  \e$(C!<\e(Bogana\e$(C!=(?!-(L!<\e(Bpgana\e$(C!=)?!-)L!<\e(Bonum\e$(C!=(g!-(u!<\e(Bpnum\e$(C!=)g!-)u\e(B
-  \e$(C!<@Z<R!=\e(B2\e$(C9z=D\e(B + \e$(C$U\e(B(S) \e$(C$o\e(B(t_) \e$(C$q\e(B(D) \e$(C$p\e(B(DD) \e$(C$a\e(B(aD) \e$(C$v\e(B(_d) \e$(C$u\e(B(G) \e$(C$}\e(B(uk)")
+ "korean-symbol" "Korean" "심벌" t
+ "한글심벌입력표:
+  【(】괄호열기【arrow】화살【sex】♂♀【index】첨자  【accent】악센트
+  【)】괄호닫기【music】음악【dot】점  【quote】따옴표【xtext】§※¶¡¿
+  【Unit】℃Å¢℉【math】수학기호【pic】상형문자【line】선문자
+  【unit】단위    【frac】분수    【textline】­―∥\∼
+  【wn】㈜【ks】㉿【No】№【㏇】㏇ 【dag】† 【ddag】‡【percent】‰
+  【am】㏂【pm】㏘【™】™【Tel】℡【won】₩ 【yen】¥ 【pound】£
+  【Eng】ABC… 【enum】012… 【Russ】АБВ…【Greek】ΑΒΓ…
+  【eng】abc… 【easc】영어ASCII【russ】абв…【greek】αβγ…
+  【Rom】ⅠⅡⅢ… 【Scan】ÆЪ… 【hira】ぁあぃ
+  【rom】ⅰⅱⅲ… 【scan】æđð… 【kata】ァアィ
+  【ojaso】㉠∼㉭【pjaso】㈀∼㈍【oeng】ⓐ∼ⓩ【peng】⒜∼⒵
+  【ogana】㉮∼㉻【pgana】㈎∼㈛【onum】①∼⑮【pnum】⑴∼⒂
+  【자소】2벌식 + ㅥ(S) ㅿ(t_) ㆁ(D) ㆀ(DD) ㅱ(aD) ㆆ(_d) ㆅ(G) ㆍ(uk)")
 
 (quail-define-rules
- ("("  "\e$(C!2!4!6!8!:!<\e(B")
- (")"  "\e$(C!3!5!7!9!;!=\e(B")
- ("math"       "\e$(C!>!?!@!A!B!C!D!E!P!Q!R!S!T!U!V!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~"!"""#"$"1"2"3\e(B")
- ("pic"        "\e$(C!Y!Z![!\!]!^!_!`!a!b!c!d!e"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"4\e(B")
- ("arrow"      "\e$(C!f!g!h!i!j"U"V"W"X"Y\e(B")
- ("music"      "\e$(C"Z"["\"]\e(B")
- ("won"        "\e$(C#\\e(B")
- ("yen"        "\e$(C!M\e(B")
- ("pound"      "\e$(C!L\e(B")
- ("xtext"      "\e$(C!W!X"R"."/\e(B")
- ("dot"        "\e$(C!$!%!&!'"0\e(B")
- ("quote"      "\e$(C!"!#!(!.!/!0!1!F!G!H"%")\e(B")
- ("textline"   "\e$(C!)!*!+!,!-\e(B")
- ("Unit"       "\e$(C!I!J!K"5\e(B")
- ("sex"        "\e$(C!N!O\e(B")
- ("accent"     "\e$(C"&"'"("*"+","-\e(B")
- ("percent"    "\e$(C"6\e(B")
- ("dag"        "\e$(C"S\e(B")
- ("ddag"       "\e$(C"T\e(B")
- ("wn" "\e$(C"_\e(B")
- ("ks" "\e$(C"^\e(B")
- ("No" "\e$(C"`\e(B")
- ("Co" "\e$(C"a\e(B")
- ("TM" "\e$(C"b\e(B")
- ("am" "\e$(C"c\e(B")
- ("pm" "\e$(C"d\e(B")
- ("Tel"        "\e$(C"e\e(B")
- ("easc"       "\e$(C#!#"###$#%#&#'#(#)#*#+#,#-#.#/#:#;#<#=#>#?#@#[#]#^#_#`#{#|#}#~\e(B")
- ("enum"       "\e$(C#0#1#2#3#4#5#6#7#8#9\e(B")
- ("Eng"        "\e$(C#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\e(B")
- ("eng"        "\e$(C#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\e(B")
- ("r"  "\e$(C$!\e(B")
- ("R"  "\e$(C$"\e(B")
- ("rt" "\e$(C$#\e(B")
- ("s"  "\e$(C$$\e(B")
- ("sw" "\e$(C$%\e(B")
- ("sg" "\e$(C$&\e(B")
- ("e"  "\e$(C$'\e(B")
- ("E"  "\e$(C$(\e(B")
- ("f"  "\e$(C$)\e(B")
- ("fr" "\e$(C$*\e(B")
- ("fa" "\e$(C$+\e(B")
- ("fq" "\e$(C$,\e(B")
- ("ft" "\e$(C$-\e(B")
- ("fx" "\e$(C$.\e(B")
- ("fv" "\e$(C$/\e(B")
- ("fg" "\e$(C$0\e(B")
- ("a"  "\e$(C$1\e(B")
- ("q"  "\e$(C$2\e(B")
- ("Q"  "\e$(C$3\e(B")
- ("qt" "\e$(C$4\e(B")
- ("t"  "\e$(C$5\e(B")
- ("T"  "\e$(C$6\e(B")
- ("d"  "\e$(C$7\e(B")
- ("w"  "\e$(C$8\e(B")
- ("W"  "\e$(C$9\e(B")
- ("c"  "\e$(C$:\e(B")
- ("z"  "\e$(C$;\e(B")
- ("x"  "\e$(C$<\e(B")
- ("v"  "\e$(C$=\e(B")
- ("g"  "\e$(C$>\e(B")
- ("k"  "\e$(C$?\e(B")
- ("o"  "\e$(C$@\e(B")
- ("i"  "\e$(C$A\e(B")
- ("O"  "\e$(C$B\e(B")
- ("j"  "\e$(C$C\e(B")
- ("p"  "\e$(C$D\e(B")
- ("u"  "\e$(C$E\e(B")
- ("P"  "\e$(C$F\e(B")
- ("h"  "\e$(C$G\e(B")
- ("hk" "\e$(C$H\e(B")
- ("ho" "\e$(C$I\e(B")
- ("hl" "\e$(C$J\e(B")
- ("y"  "\e$(C$K\e(B")
- ("n"  "\e$(C$L\e(B")
- ("nj" "\e$(C$M\e(B")
- ("np" "\e$(C$N\e(B")
- ("nl" "\e$(C$O\e(B")
- ("b"  "\e$(C$P\e(B")
- ("m"  "\e$(C$Q\e(B")
- ("ml" "\e$(C$R\e(B")
- ("l"  "\e$(C$S\e(B")
- ("S"  "\e$(C$U\e(B")
- ("se" "\e$(C$V\e(B")
- ("st" "\e$(C$W\e(B")
- ("st_"        "\e$(C$X\e(B")
- ("frt"        "\e$(C$Y\e(B")
- ("fqt"        "\e$(C$[\e(B")
- ("fe" "\e$(C$Z\e(B")
- ("ft_"        "\e$(C$\\e(B")
- ("f_d"        "\e$(C$]\e(B")
- ("aq" "\e$(C$^\e(B")
- ("at" "\e$(C$_\e(B")
- ("at_"        "\e$(C$`\e(B")
- ("aD" "\e$(C$a\e(B")
- ("qr" "\e$(C$b\e(B")
- ("qe" "\e$(C$c\e(B")
- ("qtr"        "\e$(C$d\e(B")
- ("qte"        "\e$(C$e\e(B")
- ("qw" "\e$(C$f\e(B")
- ("qx" "\e$(C$g\e(B")
- ("qD" "\e$(C$h\e(B")
- ("QD" "\e$(C$i\e(B")
- ("tr" "\e$(C$j\e(B")
- ("ts" "\e$(C$k\e(B")
- ("te" "\e$(C$l\e(B")
- ("tq" "\e$(C$m\e(B")
- ("tw" "\e$(C$n\e(B")
- ("t_" "\e$(C$o\e(B")
- ("DD" "\e$(C$p\e(B")
- ("D"  "\e$(C$q\e(B")
- ("Dt" "\e$(C$r\e(B")
- ("Dt_"        "\e$(C$s\e(B")
- ("vD" "\e$(C$t\e(B")
- ("G"  "\e$(C$u\e(B")
- ("_d" "\e$(C$v\e(B")
- ("yi" "\e$(C$w\e(B")
- ("yO" "\e$(C$x\e(B")
- ("yl" "\e$(C$y\e(B")
- ("bu" "\e$(C$z\e(B")
- ("bP" "\e$(C${\e(B")
- ("bl" "\e$(C$|\e(B")
- ("uk" "\e$(C$}\e(B")
- ("ukl"        "\e$(C$~\e(B")
- ("Rom"        "\e$(C%0%1%2%3%4%5%6%7%8%9\e(B")
- ("rom"        "\e$(C%!%"%#%$%%%&%'%(%)%*\e(B")
- ("Greek"      "\e$(C%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X\e(B")
- ("greek"      "\e$(C%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x\e(B")
- ("line"       "\e$(C&!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&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&[&\&]&^&_&`&a&b&c&d\e(B")
- ("unit"       "\e$(C'!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'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'['\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o\e(B")
- ("Scan"       "\e$(C(!("(#($(&((()(*(+(,(-(.(/\e(B")
- ("ojaso"      "\e$(C(1(2(3(4(5(6(7(8(9(:(;(<(=(>\e(B")
- ("ogana"      "\e$(C(?(@(A(B(C(D(E(F(G(H(I(J(K(L\e(B")
- ("oeng"       "\e$(C(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c(d(e(f\e(B")
- ("onum"       "\e$(C(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u\e(B")
- ("frac"       "\e$(C(v(w(x(y(z({(|(}(~\e(B")
- ("scan"       "\e$(C)!)")#)$)%)&)')()))*)+),)-).)/)0\e(B")
- ("pjaso"      "\e$(C)1)2)3)4)5)6)7)8)9):);)<)=)>\e(B>")
- ("pgana"      "\e$(C)?)@)A)B)C)D)E)F)G)H)I)J)K)L\e(B")
- ("peng"       "\e$(C)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f\e(B")
- ("pnum"       "\e$(C)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u\e(B")
- ("index"      "\e$(C)v)w)x)y)z){)|)})~\e(B")
- ("hira"       "\e$(C*!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*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*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s\e(B")
- ("kata"       "\e$(C+!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+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+[+\+]+^+_+`+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v\e(B")
- ("Russ"       "\e$(C,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A\e(B")
- ("russ"       "\e$(C,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q\e(B"))
+ ("("  "〔〈《「『【")
+ (")"  "〕〉》」』】")
+ ("math"       "±×÷≠≤≥∞∴∠⊥⌒∂∇≡≒〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∮∑∏")
+ ("pic"        "☆★○●◎◇◆□■△▲▽▼◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¤")
+ ("arrow"      "→←↑↓↔↕↗↙↖↘")
+ ("music"      "♭♩♪♬")
+ ("won"        "")
+ ("yen"        "")
+ ("pound"      "")
+ ("xtext"      "§※¶¡¿")
+ ("dot"        "·‥…¨ː")
+ ("quote"      "、。〃‘’“”°′″´˝")
+ ("textline"   "­―∥\∼")
+ ("Unit"       "℃Å¢℉")
+ ("sex"        "♂♀")
+ ("accent"     "~ˇ˘˚˙¸˛")
+ ("percent"    "")
+ ("dag"        "")
+ ("ddag"       "")
+ ("wn" "")
+ ("ks" "")
+ ("No" "")
+ ("Co" "")
+ ("TM" "")
+ ("am" "")
+ ("pm" "")
+ ("Tel"        "")
+ ("easc"       "!"#$%&'()*+,-./:;<=>?@[]^_`{|} ̄")
+ ("enum"       "0123456789")
+ ("Eng"        "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
+ ("eng"        "abcdefghijklmnopqrstuvwxyz")
+ ("r"  "")
+ ("R"  "")
+ ("rt" "")
+ ("s"  "")
+ ("sw" "")
+ ("sg" "")
+ ("e"  "")
+ ("E"  "")
+ ("f"  "")
+ ("fr" "")
+ ("fa" "")
+ ("fq" "")
+ ("ft" "")
+ ("fx" "")
+ ("fv" "")
+ ("fg" "")
+ ("a"  "")
+ ("q"  "")
+ ("Q"  "")
+ ("qt" "")
+ ("t"  "")
+ ("T"  "")
+ ("d"  "")
+ ("w"  "")
+ ("W"  "")
+ ("c"  "")
+ ("z"  "")
+ ("x"  "")
+ ("v"  "")
+ ("g"  "")
+ ("k"  "")
+ ("o"  "")
+ ("i"  "")
+ ("O"  "")
+ ("j"  "")
+ ("p"  "")
+ ("u"  "")
+ ("P"  "")
+ ("h"  "")
+ ("hk" "")
+ ("ho" "")
+ ("hl" "")
+ ("y"  "")
+ ("n"  "")
+ ("nj" "")
+ ("np" "")
+ ("nl" "")
+ ("b"  "")
+ ("m"  "")
+ ("ml" "")
+ ("l"  "")
+ ("S"  "")
+ ("se" "")
+ ("st" "")
+ ("st_"        "")
+ ("frt"        "")
+ ("fqt"        "")
+ ("fe" "")
+ ("ft_"        "")
+ ("f_d"        "")
+ ("aq" "")
+ ("at" "")
+ ("at_"        "")
+ ("aD" "")
+ ("qr" "")
+ ("qe" "")
+ ("qtr"        "")
+ ("qte"        "")
+ ("qw" "")
+ ("qx" "")
+ ("qD" "")
+ ("QD" "")
+ ("tr" "")
+ ("ts" "")
+ ("te" "")
+ ("tq" "")
+ ("tw" "")
+ ("t_" "")
+ ("DD" "")
+ ("D"  "")
+ ("Dt" "")
+ ("Dt_"        "")
+ ("vD" "")
+ ("G"  "")
+ ("_d" "")
+ ("yi" "")
+ ("yO" "")
+ ("yl" "")
+ ("bu" "")
+ ("bP" "")
+ ("bl" "")
+ ("uk" "")
+ ("ukl"        "")
+ ("Rom"        "ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ")
+ ("rom"        "ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ")
+ ("Greek"      "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ")
+ ("greek"      "αβγδεζηθικλμνξοπρστυφχψω")
+ ("line"       "─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊")
+ ("unit"       "㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆")
+ ("Scan"       "ÆЪĦIJĿŁØŒºÞŦŊ")
+ ("ojaso"      "㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭")
+ ("ogana"      "㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻")
+ ("oeng"       "ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ")
+ ("onum"       "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮")
+ ("frac"       "½⅓⅔¼¾⅛⅜⅝⅞")
+ ("scan"       "æđðħıijĸŀłøœßþŧŋʼn")
+ ("pjaso"      "㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍>")
+ ("pgana"      "㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛")
+ ("peng"       "⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵")
+ ("pnum"       "⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂")
+ ("index"      "¹²³⁴ⁿ₁₂₃₄")
+ ("hira"       "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん")
+ ("kata"       "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ")
+ ("Russ"       "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")
+ ("russ"       "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"))
 
 ;;; symbol-ksc.el ends here
index 6514b6ab2adc18a4ea3fa5eb1f9ad219a06ed151..3717104264335e7abf5a4f08a21a5d60cfe563e3 100644 (file)
@@ -1,4 +1,4 @@
-;;; thai.el --- Quail package for inputting Thai characters -*-coding: iso-2022-7bit;-*-
+;;; thai.el --- Quail package for inputting Thai characters -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;; Thai Kesmanee keyboard support.
 
 (quail-define-package
- "thai-kesmanee" "Thai" "\e,T!!\e(B>" t
+ "thai-kesmanee" "Thai" "กก>" t
  "Thai Kesmanee input method with TIS620 keyboard layout
 
 The difference from the ordinal Thai keyboard:
-    '\e,T_\e(B' and '\e,To\e(B' are assigned to '\\' and '|' respectively,
-    '\e,T#\e(B' and '\e,T%\e(B' are assigned to '`' and '~' respectively,
-    Don't know where to assign characters '\e,Tz\e(B' and '\e,T{\e(B'."
+    '฿' and '๏' are assigned to '\\' and '|' respectively,
+    'ฃ' and 'ฅ' are assigned to '`' and '~' respectively,
+    Don't know where to assign characters '๚' and '๛'."
  nil t t t t nil nil nil nil nil t)
 
 (thai-generate-quail-map
@@ -56,38 +56,38 @@ The difference from the ordinal Thai keyboard:
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
 ;; This data is quite old.
-;;   0   "#" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,TQi\e(B" "\e,T'\e(B"    ; SPC .. '
-;;   "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"   ; ( .. /
-;;   "\e,T(\e(B" "\e,TE\e(B" "/" "_" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B"       ; 0 .. 7
-;;   "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"   ; 8 .. ?
-;;   "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"   ; @ .. G
-;;   "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "\e,Tn\e(B" "\e,Tl\e(B" "\e,TO\e(B"   ; H .. O
-;;   "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""        ; P .. W
-;;   ")" "\e,Tm\e(B" "(" "\e,T:\e(B" "\e,T_\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"       ; X .. _
-;;   "\e,T#\e(B" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"   ; ` .. g
-;;   "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"   ; h .. o
-;;   "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"   ; p .. w
-;;   "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,To\e(B" "," "\e,T%\e(B" 0 ; x .. DEL
+;;   0   "#" "." "๒" "๓" "๔" "ั้" "ง"      ; SPC .. '
+;;   "๖" "๗" "๕" "๙" "ม" "ข" "ใ" "ฝ"   ; ( .. /
+;;   "จ" "ล" "/" "_" "ภ" "ถ" "ุ" "ึ"       ; 0 .. 7
+;;   "ค" "ต" "ซ" "ว" "ฒ" "ช" "ฬ" "ฦ"   ; 8 .. ?
+;;   "๑" "ฤ" "ฺ" "ฉ" "ฏ" "ฎ" "โ" "ฌ"   ; @ .. G
+;;   "็" "ณ" "๋" "ษ" "ศ" "๎" "์" "ฯ"   ; H .. O
+;;   "ญ" "๐" "ฑ" "ฆ" "ธ" "๊" "ฮ" "\""    ; P .. W
+;;   ")" "ํ" "(" "บ" "฿" "ล" "ู" "๘"       ; X .. _
+;;   "ฃ" "ฟ" "ิ" "แ" "ก" "ำ" "ด" "เ"   ; ` .. g
+;;   "้" "ร" "่" "า" "ส" "ท" "ื" "น"   ; h .. o
+;;   "ย" "ๆ" "พ" "ห" "ะ" "ี" "อ" "ไ"   ; p .. w
+;;   "ป" "ั" "ผ" "ฐ" "๏" "," "ฅ" 0 ; x .. DEL
 ;; This is the correct data nowadays.
-  0  "+" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,T_\e(B" "\e,T'\e(B" ; SPC .. '
-  "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"      ; ( .. /
-  "\e,T(\e(B" "\e,Te\e(B" "/" "-" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B"  ; 0 .. 7
-  "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"      ; 8 .. ?
-  "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"      ; @ .. G
-  "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "?" "\e,Tl\e(B" "\e,TO\e(B"    ; H .. O
-  "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""   ; P .. W
-  "\)" "\e,Tm\e(B" "\(" "\e,T:\e(B" "\e,T#\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"        ; X .. _
-  "_" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"    ; ` .. g
-  "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"      ; h .. o
-  "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"      ; p .. w
-  "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,T%\e(B" "," "%" 0  ; x .. DEL
+  0  "+" "." "๒" "๓" "๔" "฿" "ง"     ; SPC .. '
+  "๖" "๗" "๕" "๙" "ม" "ข" "ใ" "ฝ"      ; ( .. /
+  "จ" "ๅ" "/" "-" "ภ" "ถ" "ุ" "ึ"  ; 0 .. 7
+  "ค" "ต" "ซ" "ว" "ฒ" "ช" "ฬ" "ฦ"      ; 8 .. ?
+  "๑" "ฤ" "ฺ" "ฉ" "ฏ" "ฎ" "โ" "ฌ"      ; @ .. G
+  "็" "ณ" "๋" "ษ" "ศ" "?" "์" "ฯ"        ; H .. O
+  "ญ" "๐" "ฑ" "ฆ" "ธ" "๊" "ฮ" "\""       ; P .. W
+  "\)" "ํ" "\(" "บ" "ฃ" "ล" "ู" "๘"        ; X .. _
+  "_" "ฟ" "ิ" "แ" "ก" "ำ" "ด" "เ"        ; ` .. g
+  "้" "ร" "่" "า" "ส" "ท" "ื" "น"      ; h .. o
+  "ย" "ๆ" "พ" "ห" "ะ" "ี" "อ" "ไ"      ; p .. w
+  "ป" "ั" "ผ" "ฐ" "ฅ" "," "%" 0      ; x .. DEL
   ])
 
 
 ;; Thai Pattachote keyboard support.
 
 (quail-define-package
- "thai-pattachote" "Thai" "\e,T!;\e(B>" t
+ "thai-pattachote" "Thai" "กป>" t
  "Thai Pattachote input method with TIS620 keyboard layout"
  nil t t t t nil nil nil nil nil t)
 
@@ -95,18 +95,18 @@ The difference from the ordinal Thai keyboard:
  [
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
-  0 "+" "\e,T1\e(B" "/" "," "?" "_" "\e,T"\e(B"            ; SPC .. '
-  "(" ")" "." "%" "\e,TP\e(B" "\e,Tq\e(B" "\e,T(\e(B" "\e,T>\e(B"      ; ( .. /
-  "\e,Tp\e(B" "=" "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,Tu\e(B" "\e,TY\e(B" "\e,Tw\e(B"    ; 0 .. 7
-  "\e,Tx\e(B" "\e,Ty\e(B" "\e,T&\e(B" "\e,Td\e(B" "\e,T?\e(B" "\e,Tv\e(B" "\e,T2\e(B" "\e,TL\e(B"      ; 8 .. ?
-  "\"" "\e,Tk\e(B" "\e,TQ\e(B" "\e,T0\e(B" "\e,TS\e(B" "\e,Tf\e(B" "\e,T3\e(B" "\e,Tl\e(B"   ; @ .. G
-  "\e,TW\e(B" "\e,T+\e(B" "\e,T<\e(B" "\e,T*\e(B" "\e,Tb\e(B" "\e,TN\e(B" "\e,TH\e(B" "\e,T6\e(B"      ; H .. O
-  "\e,T2\e(B" "\e,Tj\e(B" "\e,T-\e(B" "\e,T8\e(B" "\e,TI\e(B" "\e,T=\e(B" "\e,T@\e(B" "\e,TD\e(B"      ; P .. W
-  "\e,T.\e(B" "\e,TV\e(B" "\e,T.\e(B" "\e,Tc\e(B" "\e,TZ\e(B" "\e,T2\e(B" "\e,TX\e(B" "-"    ; X .. _
-  "\e,T#\e(B" "\e,Ti\e(B" "\e,TT\e(B" "\e,TE\e(B" "\e,T'\e(B" "\e,TB\e(B" "\e,T!\e(B" "\e,TQ\e(B"      ; ` .. g
-  "\e,TU\e(B" "\e,TA\e(B" "\e,TR\e(B" "\e,T9\e(B" "\e,T`\e(B" "\e,TJ\e(B" "\e,T$\e(B" "\e,TG\e(B"      ; h .. o
-  "\e,Ta\e(B" "\e,Tg\e(B" "\e,TM\e(B" "\e,T7\e(B" "\e,TC\e(B" "\e,T4\e(B" "\e,TK\e(B" "\e,T5\e(B"      ; p .. w
-  "\e,T;\e(B" "\e,Th\e(B" "\e,T:\e(B" "\e,TO\e(B" "\e,Tm\e(B" "\e,TF\e(B" "\e,T%\e(B" 0              ; x .. DEL
+  0 "+" "ฑ" "/" "," "?" "_" "ข"            ; SPC .. '
+  "(" ")" "." "%" "ะ" "๑" "จ" "พ"      ; ( .. /
+  "๐" "=" "๒" "๓" "๔" "๕" "ู" "๗"        ; 0 .. 7
+  "๘" "๙" "ฆ" "ไ" "ฟ" "๖" "ฒ" "ฬ"      ; 8 .. ?
+  "\"" "๋" "ั" "ฐ" "ำ" "ๆ" "ณ" "์"       ; @ .. G
+  "ื" "ซ" "ผ" "ช" "โ" "ฮ" "ศ" "ถ"      ; H .. O
+  "ฒ" "๊" "ญ" "ธ" "ษ" "ฝ" "ภ" "ฤ"      ; P .. W
+  "ฎ" "ึ" "ฎ" "ใ" "ฺ" "ฒ" "ุ" "-"        ; X .. _
+  "ฃ" "้" "ิ" "ล" "ง" "ย" "ก" "ั"      ; ` .. g
+  "ี" "ม" "า" "น" "เ" "ส" "ค" "ว"      ; h .. o
+  "แ" "็" "อ" "ท" "ร" "ด" "ห" "ต"      ; p .. w
+  "ป" "่" "บ" "ฯ" "ํ" "ฦ" "ฅ" 0          ; x .. DEL
   ])
 
 ;;; thai.el ends here
index d06e66695429a4a742b846690e8bfbfb7efd7e97..f43f246be27bd4ff9bfaeea5612bc027cb29648e 100644 (file)
@@ -1,4 +1,4 @@
-;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: iso-2022-7bit;-*-
+;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: utf-8-emacs;-*-
 
 ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 
 ;;; Wylie transcription based input methods.
 
-;; Special alist for `\e$(7"A\e(B'.  It must be treated as a subjoined
+;; Special alist for `'.  It must be treated as a subjoined
 ;; consonant if it follows a consonant.
 ;; * Removed by Tomabechi 2000/06/10 *
 ;; 'a chung must be explicitly typed as a vowel ("fa")
-;; \e$(7"A\e(B is now treated as normal base consonants
-;; (defconst tibetan-wylie-quote-alist '(("'" . ?\e$(7"A\e(B)))
+;;  is now treated as normal base consonants
+;; (defconst tibetan-wylie-quote-alist '(("'" . ?)))
 
 ;; Special alist to avoid default stacking.
 (defconst tibetan-wylie-non-stacking-alist
-  '(("-d" . "\e$(7"2\e(B")
-    ("-y" . "\e$(7"B\e(B")))
+  '(("-d" . "")
+    ("-y" . "")))
 
 ;; Punctuation characters are not transcribed.
 
 (defconst tibetan-wylie-punctuation-alist
    '(("."  . " ")
-     (":"  . "\e$(7"`\e(B")
-     (" "  . "\e$(7!;\e(B")
-     ("/"  . "\e$(7!=\e(B")
-     ("//" . "\e$(7!>\e(B")
-     ("////" . ["\e$(7!>\e(B \e$(7!>\e(B"])
-     ("$"  . "\e$(7!?\e(B")
-     ("/\"" . "\e$(7!@\e(B")                     ; Not defined in Ext. Wylie.
-     ("&"  . "\e$(7!@\e(B")
-     (";"  . "\e$(7!A\e(B")
-     ("%"  . "\e$(7!D\e(B")
-     ("!"  . "\e$(7!8\e(B")
-     ("<"  . "\e$(7!l\e(B")
-     (">"  . "\e$(7!m\e(B")
-     ("@"  . "\e$(7"f\e(B")
-     ("*"  . ["\e$(7!4!5\e(B"])
-     ("#"  . ["\e$(7!4!5!5\e(B"])
-     ("^"  . "\e$(7!6\e(B")
-     ("0" . "\e$(7!P\e(B")
-     ("1" . "\e$(7!Q\e(B")
-     ("2" . "\e$(7!R\e(B")
-     ("3" . "\e$(7!S\e(B")
-     ("4" . "\e$(7!T\e(B")
-     ("5" . "\e$(7!U\e(B")
-     ("6" . "\e$(7!V\e(B")
-     ("7" . "\e$(7!W\e(B")
-     ("8" . "\e$(7!X\e(B")
-     ("9" . "\e$(7!Y\e(B")
-     ("-0" . "\e$(7!c\e(B")
-     ("-1" . "\e$(7!Z\e(B")
-     ("-2" . "\e$(7![\e(B")
-     ("-3" . "\e$(7!\\e(B")
-     ("-4" . "\e$(7!]\e(B")
-     ("-5" . "\e$(7!^\e(B")
-     ("-6" . "\e$(7!_\e(B")
-     ("-7" . "\e$(7!`\e(B")
-     ("-8" . "\e$(7!a\e(B")
-     ("-9" . "\e$(7!b\e(B")
-     ("|"  . "\e$(7!0!1!2!3!7!9!:!B!C!E!F!G!H!I!J!K!L!M!N!O!d!f!h!j!k!n!o#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#`\e(B")))
+     (":"  . "ཿ")
+     (" "  . "")
+     ("/"  . "")
+     ("//" . "")
+     ("////" . ["༎ ༎"])
+     ("$"  . "")
+     ("/\"" . "༐")                   ; Not defined in Ext. Wylie.
+     ("&"  . "")
+     (";"  . "")
+     ("%"  . "")
+     ("!"  . "")
+     ("<"  . "")
+     (">"  . "")
+     ("@"  . "")
+     ("*"  . ["༄༅"])
+     ("#"  . ["༄༅༅"])
+     ("^"  . "")
+     ("0" . "")
+     ("1" . "")
+     ("2" . "")
+     ("3" . "")
+     ("4" . "")
+     ("5" . "")
+     ("6" . "")
+     ("7" . "")
+     ("8" . "")
+     ("9" . "")
+     ("-0" . "")
+     ("-1" . "")
+     ("-2" . "")
+     ("-3" . "")
+     ("-4" . "")
+     ("-5" . "")
+     ("-6" . "")
+     ("-7" . "")
+     ("-8" . "")
+     ("-9" . "")
+     ("|"  . "ༀ༁༂༃༇༉༊༒༓༕༖༗༘༙༚༛༜༝༞༟༴༶༸༺༻༾༿྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿏")))
 
 (quail-define-package "tibetan-wylie" "Tibetan" "TIBw" t
 "Tibetan character input by Extended Wylie key assignment.
 
     +-------------------------------------+
-    |\e$(7"!!;\e(B k |\e$(7""!;\e(B kh |\e$(7"#!;\e(B g  |\e$(7"$!;\e(B gh |\e$(7"%!;\e(B ng|   \e$(7"S\e(B i          \e$(7!=\e(B        /
-    |\e$(7"&!;\e(B c |\e$(7"'!;\e(B ch |\e$(7"(!;\e(B j  |       |\e$(7"*!;\e(B ny|   \e$(7"U\e(B u          \e$(7!>\e(B       //
-    |\e$(7"+!;\e(B T |\e$(7",!;\e(B TH |\e$(7"-!;\e(B D  |\e$(7".!;\e(B DH |\e$(7"/!;\e(B N |   \e$(7"[\e(B e          \e$(7!>\e(B \e$(7!>\e(B    ////
-    |\e$(7"0!;\e(B t |\e$(7"1!;\e(B th |\e$(7"2!;\e(B d  |\e$(7"3!;\e(B dh |\e$(7"4!;\e(B n |   \e$(7"]\e(B o          \e$(7!A\e(B       ;
-    |\e$(7"5!;\e(B p |\e$(7"6!;\e(B ph |\e$(7"7!;\e(B b  |\e$(7"8!;\e(B bh |\e$(7"9!;\e(B m |   \e$(7"\\e(B ai (ee, E) \e$(7!?\e(B        $
-    |\e$(7":!;\e(B ts|\e$(7";!;\e(B tsh|\e$(7"<!;\e(B dz |\e$(7"=!;\e(B dzh|\e$(7">!;\e(B w |   \e$(7"^\e(B au (oo, O) \e$(7!@\e(B        &
-    |\e$(7"?!;\e(B zh|\e$(7"@!;\e(B z  |\e$(7"A!;\e(B '  |       |\e$(7"B!;\e(B y |   \e$(7"a\e(B I          \e$(7!4!5\e(B   *
-    |\e$(7"C!;\e(B r |\e$(7"D!;\e(B l  |\e$(7"E!;\e(B sh |\e$(7"F!;\e(B SH |\e$(7"G!;\e(B s |   \e$(7"`\e(B :         \e$(7!4!5!5\e(B  #
-    |\e$(7"H!;\e(B h |\e$(7"I!;\e(B A  |\e$(7"J!;\e(B kSH|       |      |   \e$(7"_\e(B M           \e$(7!l\e(B \e$(7!m\e(B   < >
-    +-------------------------------------+   \e$(7!D\e(B  %
-    (The consonant \e$(7"I!;\e(B must be typed explicitly.)
+    |ཀ་ k |ཁ་ kh |ག་ g  |གྷ་ gh |ང་ ng|   ི i          །        /
+    |ཅ་ c |ཆ་ ch |ཇ་ j  |       |ཉ་ ny|   ུ u          ༎       //
+    |ཊ་ T |ཋ་ TH |ཌ་ D  |ཌྷ་ DH |ཎ་ N |   ེ e          ༎ ༎    ////
+    |ཏ་ t |ཐ་ th |ད་ d  |དྷ་ dh |ན་ n |   ོ o          ༑       ;
+    |པ་ p |ཕ་ ph |བ་ b  |བྷ་ bh |མ་ m |   ཻ ai (ee, E) ༏        $
+    |ཙ་ ts|ཚ་ tsh|ཛ་ dz |ཛྷ་ dzh|ཝ་ w |   ཽ au (oo, O) ༐        &
+    |ཞ་ zh|ཟ་ z  |འ་ '  |       |ཡ་ y |   ྀ I          ༄༅   *
+    |ར་ r |ལ་ l  |ཤ་ sh |ཥ་ SH |ས་ s |   ཿ :         ༄༅༅  #
+    |ཧ་ h |ཨ་ A  |ཀྵ་ kSH|       |      |   ཾ M           ༼ ༽   < >
+    +-------------------------------------+     %
+    (The consonant ཨ་ must be typed explicitly.)
 
   NOT SPECIFIED IN EXT. WYLIE:
     +--------------------------------------------------------+
-    |\e$(7"c\e(B = ~ |\e$(7"d\e(B = ` |\e$(7"e\e(B = , |\e$(7"f\e(B = @ |\e$(7!g\e(B = _o|\e$(7!e\e(B = _O|\e$(7!6\e(B = ^|
+    |ྂ = ~ |ྃ = ` |྄ = , |྅ = @ |༷ = _o|༵ = _O|༆ = ^|
     +--------------------------------------------------------+
-    |\e$(7"i\e(B = x |\e$(7"j\e(B = X |\e$(7"g\e(B = v |\e$(7"h\e(B = V |\e$(7"k\e(B = q |\e$(7"l\e(B = Q |
+    |ྈ = x |ྉ = X |྆ = v |྇ = V |ྊ = q |ྋ = Q |
     +-----------------------------------------------+
 
   SPECIAL KEYS
     ("h," . "+s")                      ; sa
     ("h." . "+h")                      ; ha
     ("h/" . "+A")                      ; Aa
-    ;; Special rule for `\e$(7"B\e(B' to avoid stacking.
+    ;; Special rule for `' to avoid stacking.
     ("E" . "-y")
     ))
 
          (error "No Tibetan transcription for %s" (cdr elt))))))
 
 (defconst tibetan-punctuation-tibkey-alist
-  '(("1" . "\e$(7!Q\e(B")
-    ("!" . "\e$(7!4\e(B")                ; nyi zla long
-    ("2" . "\e$(7!R\e(B")
-    ("@" . "\e$(7!5\e(B")                        ; nyi zla simple
-    ("3" . "\e$(7!S\e(B")
+  '(("1" . "")
+    ("!" . "༄")              ; nyi zla long
+    ("2" . "")
+    ("@" . "༅")                      ; nyi zla simple
+    ("3" . "")
 ;;; ("#" )
-    ("4" . "\e$(7!T\e(B")
+    ("4" . "")
 ;;; ("$" )
-    ("5" . "\e$(7!U\e(B")
-    ("%" . "\e$(7!D\e(B")
-    ("6" . "\e$(7!V\e(B")
-    ("^" . "\e$(7!1\e(B")
-    ("7" . "\e$(7!W\e(B")
-    ("8" . "\e$(7!X\e(B")
+    ("5" . "")
+    ("%" . "")
+    ("6" . "")
+    ("^" . "")
+    ("7" . "")
+    ("8" . "")
 ;;; ("*" ) ; avagraha, not supported yet
-    ("9" . "\e$(7!Y\e(B")
-    ("(" . "\e$(7!l\e(B")
-    ("0" . "\e$(7!P\e(B")
-    (")" . "\e$(7!m\e(B")
+    ("9" . "")
+    ("(" . "")
+    ("0" . "")
+    (")" . "")
 ;;; ("-" ) ; emphatic, not yet supported
 ;;; ("_" ) ; id.
 ;;; ("=" ) ; special sign, not yet supported
-    ("+" . "\e$(7!A\e(B")
-    ("\\" . "\e$(7!?\e(B")
-    ("|" . "\e$(7!8\e(B")
-    ("I" . "\e$(7"f\e(B")                                ; avagraha
-    (":" . "\e$(7"`\e(B")
-;;; (">" ?\e$(7!;\e(B) ; to be assigned to SPC
+    ("+" . "")
+    ("\\" . "")
+    ("|" . "")
+    ("I" . "྅")                              ; avagraha
+    (":" . "ཿ")
+;;; (">" ?) ; to be assigned to SPC
     (">" . " ")
-    ("?" . "\e$(7!=\e(B")
-    ("??" . "\e$(7!>\e(B")
-    ("????" . ["\e$(7!>\e(B \e$(7!>\e(B"])
-    (" " . "\e$(7!;\e(B")
+    ("?" . "")
+    ("??" . "")
+    ("????" . ["༎ ༎"])
+    (" " . "")
     ))
 
 ;; Convert TibKey string to Tibetan-Roman transcription string.
   [NOT SHIFTED]
 
   +-------------------------------------------------------+
-  |`\e$(7"d\e(B|1\e$(7!Q\e(B|2\e$(7!R\e(B|3\e$(7!S\e(B|4\e$(7!T\e(B|5\e$(7!U\e(B|6\e$(7!V\e(B|7\e$(7!W\e(B|8\e$(7!X\e(B|9\e$(7!Y\e(B|0\e$(7!P\e(B|-  |=  |\\\e$(7!8\e(B|
+  |`ྃ|1༡|2༢|3༣|4༤|5༥|6༦|7༧|8༨|9༩|0༠|-  |=  |\\༈|
   +-------------------------------------------------------+
-     |q\e$(7"!\e(B|w\e$(7""\e(B|e\e$(7"#\e(B|r\e$(7"%\e(B|t\e$(7"&\e(B|y\e$(7"'\e(B|u\e$(7"(\e(B|i\e$(7"*\e(B|o\e$(7"0\e(B|p\e$(7"1\e(B|[\e$(7"2\e(B|]\e$(7"4\e(B|
+     |qཀ|wཁ|eག|rང|tཅ|yཆ|uཇ|iཉ|oཏ|pཐ|[ད|]ན|
      +-----------------------------------------------+
-      |a\e$(7"5\e(B| s\e$(7"6\e(B| d\e$(7"7\e(B|f\e$(7"9\e(B|g\e$(7"U\e(B|h  |j\e$(7"]\e(B|k\e$(7":\e(B|l\e$(7";\e(B|;\e$(7"<\e(B|'\e$(7">\e(B|
+      |aཔ| sཕ| dབ|fམ|gུ|h  |jོ|kཙ|lཚ|;ཛ|'ཝ|
       +---------------------------------------------+
-         |z\e$(7"?\e(B|x\e$(7"@\e(B|c\e$(7"A\e(B|v\e$(7"B\e(B|b\e$(7"C\e(B|n\e$(7"D\e(B|m\e$(7"E\e(B|,\e$(7"G\e(B|.\e$(7"H\e(B|/\e$(7"I\e(B|
+         |zཞ|xཟ|cའ|vཡ|bར|nལ|mཤ|,ས|.ཧ|/ཨ|
          +---------------------------------------+
   The key 'h' is used for consonant stacking.
 
   [SHIFTED]
 
   +----------------------------------------------------------+
-  |~\e$(7"c\e(B|!\e$(7!4\e(B|@\e$(7!5\e(B|#  |$  |%\e$(7!D\e(B |^\e$(7!1\e(B|&  |*  |(\e$(7!l\e(B|)\e$(7!m\e(B|_  |+\e$(7!A\e(B| |\e$(7!8\e(B|
+  |~ྂ|!༄|@༅|#  |$  |%༔ |^༁|&  |*  |(༼|)༽|_  |+༑| |༈|
   +----------------------------------------------------------+
-     |Q\e$(7"J\e(B|W  |E  |R  |T\e$(7"a\e(B|Y  |U  |I\e$(7"f\e(B|O\e$(7"+\e(B|P\e$(7",\e(B|{\e$(7"-\e(B|}\e$(7"/\e(B|
+     |Qཀྵ|W  |E  |R  |Tྀ|Y  |U  |I྅|Oཊ|Pཋ|{ཌ|}ཎ|
      +-----------------------------------------------+
-      |A  |S  |D  |F\e$(7"_\e(B|G\e$(7"S\e(B|H\e$(7"e\e(B|J\e$(7"[\e(B|K  |L  |:\e$(7"`\e(B|\"\e$(7#>\e(B|
+      |A  |S  |D  |Fཾ|Gི|H྄|Jེ|K  |L  |:ཿ|\"ྭ|
       +-------------------------------------------+
-         |Z  |X  |C\e$(7"R\e(B|V\e$(7#B\e(B|B\e$(7#C\e(B|N\e$(7#D\e(B|M\e$(7"F\e(B|<  |>  |?\e$(7!=\e(B |
+         |Z  |X  |Cཱ|Vྱ|Bྲ|Nླ|Mཥ|<  |>  |?། |
          +---------------------------------------+
 
   DIFFERENCE FROM THE ORIGINAL TIBKEY:
        vowel sign for 'a'.
     2. Tsheg is assigned to SPC key. You can input a space
        by typing '>'.
-    4. To avoid the default stacking \e$(7$B\e(B and to obtain \e$(7"#"B\e(B,
-       type 'E' instead of 'v' (=\e$(7"B\e(B).
+    4. To avoid the default stacking  and to obtain གཡ,
+       type 'E' instead of 'v' (=).
     3. There are many characters that are not supported in the
        current implementation (especially special signs). I hope
        I'll complete in a future revision.
index a182c6c94c93a504ebf6302bc9163ed9a8f66773..c5c1c9401811f02fdcbb321e17daaeb5476ca664 100644 (file)
@@ -1,4 +1,4 @@
-;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system  -*-coding: iso-2022-7bit;-*-
+;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 
     effect   | postfix | examples
  ------------+---------+----------
-    breve    |    (    | a( -> \e,1e\e(B
-  circumflex |    ^    | a^ -> \e,1b\e(B
-    horn     |    +    | o+ -> \e,1=\e(B
+    breve    |    (    | a( -> ă
+  circumflex |    ^    | a^ -> â
+    horn     |    +    | o+ -> ơ
  ------------+---------+----------
-    acute    |    '    | a' -> \e,1a\e(B
-    grave    |    `    | a` -> \e,1`\e(B
-  hook above |    ?    | a? -> \e,1d\e(B
-    tilde    |    ~    | a~ -> \e,1c\e(B
-   dot below |    .    | a. -> \e,1U\e(B
+    acute    |    '    | a' -> á
+    grave    |    `    | a` -> à
+  hook above |    ?    | a? -> 
+    tilde    |    ~    | a~ -> ã
+   dot below |    .    | a. -> 
  ------------+---------+----------
-    d bar    |   dd    | dd -> \e,1p\e(B
+    d bar    |   dd    | dd -> đ
  ------------+---------+----------
   no compose |    \\    | a\\. -> a.
  ------------+---------+----------
-  combination|   (~    | a(~ -> \e,1G\e(B
+  combination|   (~    | a(~ -> 
 " nil t t nil nil t nil nil nil nil t)
 
 
index 732f9ad6c006d12dccb3ae7a1fa256a802e22f29..7b7b4925bbbf2774ae4de8d2659f8dbd7dc821da 100644 (file)
 
 Vowels with circumflex:
 
-  aa -> \e,1b\e(B, EE -> \e,2j\e(B, etc.
+  aa -> â, EE -> Ê, etc.
 
 Other diacritics:
 
   effect     postfix   examples
   ------------------------------
-  breve         w      aw -> \e,1e\e(B
-  horn          w      ow -> \e,1=\e(B
+  breve         w      aw -> ă
+  horn          w      ow -> ơ
 
-  acute         s      as -> \e,1a\e(B
-  grave         f      af -> \e,1`\e(B
-  hook above    r      ar -> \e,1d\e(B
-  tilde         x      ax -> \e,1c\e(B
-  dot below     j      aj -> \e,1U\e(B
+  acute         s      as -> á
+  grave         f      af -> à
+  hook above    r      ar -> 
+  tilde         x      ax -> ã
+  dot below     j      aj -> 
 
-  d bar                dd -> \e,1p\e(B
+  d bar                dd -> đ
 
 Combinations:
 
-  AWF -> \e,2"\e(B, owx -> \e,1^\e(B, etc.
+  AWF -> Ằ, owx -> ỡ, etc.
 
 Alternatives:
 
-  EE = Ee -> \e,2j\e(B, AWF = Awf -> \e,2"\e(B, etc.
+  EE = Ee -> Ê, AWF = Awf -> Ằ, etc.
 
 Doubling the postfix (but not in combinations) separates the letter
 and postfix: Eee -> Ee, ajj -> aj, etc.
@@ -81,208 +81,208 @@ and postfix: Eee -> Ee, ajj -> aj, etc.
  t)                              ; SIMPLE
 
 (quail-define-rules
- ("af" ?\e,1`\e(B)       ; LATIN SMALL LETTER A WITH GRAVE
- ("AF" ?\e,2`\e(B)       ; LATIN CAPITAL LETTER A WITH GRAVE
- ("Af" ?\e,2`\e(B)
- ("as" ?\e,1a\e(B)       ; LATIN SMALL LETTER A WITH ACUTE
- ("AS" ?\e,2a\e(B)       ; LATIN CAPITAL LETTER A WITH ACUTE
- ("As" ?\e,2a\e(B)
- ("aa" ?\e,1b\e(B)       ; LATIN SMALL LETTER A WITH CIRCUMFLEX
- ("AA" ?\e,2b\e(B)       ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- ("Aa" ?\e,2b\e(B)
- ("ax" ?\e,1c\e(B)       ; LATIN SMALL LETTER A WITH TILDE
- ("AX" ?\e,2c\e(B)       ; LATIN CAPITAL LETTER A WITH TILDE
- ("Ax" ?\e,2c\e(B)
- ("ef" ?\e,1h\e(B)       ; LATIN SMALL LETTER E WITH GRAVE
- ("EF" ?\e,2h\e(B)       ; LATIN CAPITAL LETTER E WITH GRAVE
- ("Ef" ?\e,2h\e(B)
- ("es" ?\e,1i\e(B)       ; LATIN SMALL LETTER E WITH ACUTE
- ("ES" ?\e,2i\e(B)       ; LATIN CAPITAL LETTER E WITH ACUTE
- ("Es" ?\e,2i\e(B)
- ("ee" ?\e,1j\e(B)       ; LATIN SMALL LETTER E WITH CIRCUMFLEX
- ("EE" ?\e,2j\e(B)       ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- ("Ee" ?\e,2j\e(B)
- ("if" ?\e,1l\e(B)       ; LATIN SMALL LETTER I WITH GRAVE
- ("IF" ?\e,2l\e(B)       ; LATIN CAPITAL LETTER I WITH GRAVE
- ("If" ?\e,2l\e(B)
- ("is" ?\e,1m\e(B)       ; LATIN SMALL LETTER I WITH ACUTE
- ("IS" ?\e,2m\e(B)       ; LATIN CAPITAL LETTER I WITH ACUTE
- ("Is" ?\e,2m\e(B)
- ("of" ?\e,1r\e(B)       ; LATIN SMALL LETTER O WITH GRAVE
- ("OF" ?\e,2r\e(B)       ; LATIN CAPITAL LETTER O WITH GRAVE
- ("Of" ?\e,2r\e(B)
- ("os" ?\e,1s\e(B)       ; LATIN SMALL LETTER O WITH ACUTE
- ("OS" ?\e,2s\e(B)       ; LATIN CAPITAL LETTER O WITH ACUTE
- ("Os" ?\e,2s\e(B)
- ("oo" ?\e,1t\e(B)       ; LATIN SMALL LETTER O WITH CIRCUMFLEX
- ("OO" ?\e,2t\e(B)       ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- ("Oo" ?\e,2t\e(B)
- ("ox" ?\e,1u\e(B)       ; LATIN SMALL LETTER O WITH TILDE
- ("OX" ?\e,2u\e(B)       ; LATIN CAPITAL LETTER O WITH TILDE
- ("Ox" ?\e,2u\e(B)
- ("uf" ?\e,1y\e(B)       ; LATIN SMALL LETTER U WITH GRAVE
- ("UF" ?\e,2y\e(B)       ; LATIN CAPITAL LETTER U WITH GRAVE
- ("Uf" ?\e,2y\e(B)
- ("us" ?\e,1z\e(B)       ; LATIN SMALL LETTER U WITH ACUTE
- ("US" ?\e,2z\e(B)       ; LATIN CAPITAL LETTER U WITH ACUTE
- ("Us" ?\e,2z\e(B)
- ("ys" ?\e,1}\e(B)       ; LATIN SMALL LETTER Y WITH ACUTE
- ("YS" ?\e,2}\e(B)       ; LATIN CAPITAL LETTER Y WITH ACUTE
- ("Ys" ?\e,2}\e(B)
- ("aw" ?\e,1e\e(B)       ; LATIN SMALL LETTER A WITH BREVE
- ("AW" ?\e,2e\e(B)       ; LATIN CAPITAL LETTER A WITH BREVE
- ("Aw" ?\e,2e\e(B)
- ("ix" ?\e,1n\e(B)       ; LATIN SMALL LETTER I WITH TILDE
- ("IX" ?\e,2n\e(B)       ; LATIN CAPITAL LETTER I WITH TILDE
- ("Ix" ?\e,2n\e(B)
- ("ux" ?\e,1{\e(B)       ; LATIN SMALL LETTER U WITH TILDE
- ("UX" ?\e,2{\e(B)       ; LATIN CAPITAL LETTER U WITH TILDE
- ("Ux" ?\e,2{\e(B)
- ("ow" ?\e,1=\e(B)       ; LATIN SMALL LETTER O WITH HORN
- ("OW" ?\e,2=\e(B)       ; LATIN CAPITAL LETTER O WITH HORN
- ("Ow" ?\e,2=\e(B)
- ("uw" ?\e,1_\e(B)       ; LATIN SMALL LETTER U WITH HORN
- ("UW" ?\e,2_\e(B)       ; LATIN CAPITAL LETTER U WITH HORN
- ("Uw" ?\e,2_\e(B)
- ("aj" ?\e,1U\e(B)       ; LATIN SMALL LETTER A WITH DOT BELOW
- ("AJ" ?\e,2U\e(B)       ; LATIN CAPITAL LETTER A WITH DOT BELOW
- ("Aj" ?\e,2U\e(B)
- ("ar" ?\e,1d\e(B)       ; LATIN SMALL LETTER A WITH HOOK ABOVE
- ("AR" ?\e,2d\e(B)       ; LATIN CAPITAL LETTER A WITH HOOK ABOVE
- ("Ar" ?\e,2d\e(B)
- ("aas" ?\e,1$\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
- ("AAS" ?\e,2$\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
- ("Aas" ?\e,2$\e(B)
- ("aaf" ?\e,1%\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
- ("AAF" ?\e,2%\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
- ("Aaf" ?\e,2%\e(B)
- ("aar" ?\e,1&\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
- ("AAR" ?\e,2&\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
- ("Aar" ?\e,2&\e(B)
- ("aax" ?\e,1g\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
- ("AAX" ?\e,2g\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
- ("Aax" ?\e,2g\e(B)
- ("aaj" ?\e,1'\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
- ("AAJ" ?\e,2'\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
- ("Aaj" ?\e,2'\e(B)
- ("aws" ?\e,1!\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND ACUTE
- ("AWS" ?\e,2!\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
- ("Aws" ?\e,2!\e(B)
- ("awf" ?\e,1"\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND GRAVE
- ("AWF" ?\e,2"\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
- ("Awf" ?\e,2"\e(B)
- ("awr" ?\e,1F\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
- ("AWR" ?\e,2F\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
- ("Awr" ?\e,2F\e(B)
- ("awx" ?\e,1G\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND TILDE
- ("AWX" ?\e,2G\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE
- ("Awx" ?\e,2G\e(B)
- ("awj" ?\e,1#\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
- ("AWJ" ?\e,2#\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
- ("Awj" ?\e,2#\e(B)
- ("ej" ?\e,1)\e(B)       ; LATIN SMALL LETTER E WITH DOT BELOW
- ("EJ" ?\e,2)\e(B)       ; LATIN CAPITAL LETTER E WITH DOT BELOW
- ("Ej" ?\e,2)\e(B)
- ("er" ?\e,1k\e(B)       ; LATIN SMALL LETTER E WITH HOOK ABOVE
- ("ER" ?\e,2k\e(B)       ; LATIN CAPITAL LETTER E WITH HOOK ABOVE
- ("Er" ?\e,2k\e(B)
- ("ex" ?\e,1(\e(B)       ; LATIN SMALL LETTER E WITH TILDE
- ("EX" ?\e,2(\e(B)       ; LATIN CAPITAL LETTER E WITH TILDE
- ("Ex" ?\e,2(\e(B)
- ("ees" ?\e,1*\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
- ("EES" ?\e,2*\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
- ("Ees" ?\e,2*\e(B)
- ("eef" ?\e,1+\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
- ("EEF" ?\e,2+\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
- ("Eef" ?\e,2+\e(B)
- ("eer" ?\e,1,\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
- ("EER" ?\e,2,\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
- ("Eer" ?\e,2,\e(B)
- ("eex" ?\e,1-\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
- ("EEX" ?\e,2-\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
- ("Eex" ?\e,2-\e(B)
- ("eej" ?\e,1.\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
- ("EEJ" ?\e,2.\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
- ("Eej" ?\e,2.\e(B)
- ("ir" ?\e,1o\e(B)       ; LATIN SMALL LETTER I WITH HOOK ABOVE
- ("IR" ?\e,2o\e(B)       ; LATIN CAPITAL LETTER I WITH HOOK ABOVE
- ("Ir" ?\e,2o\e(B)
- ("ij" ?\e,18\e(B)       ; LATIN SMALL LETTER I WITH DOT BELOW
- ("IJ" ?\e,28\e(B)       ; LATIN CAPITAL LETTER I WITH DOT BELOW
- ("Ij" ?\e,28\e(B)
- ("oj" ?\e,1w\e(B)       ; LATIN SMALL LETTER O WITH DOT BELOW
- ("OJ" ?\e,2w\e(B)       ; LATIN CAPITAL LETTER O WITH DOT BELOW
- ("Oj" ?\e,2w\e(B)
- ("or" ?\e,1v\e(B)       ; LATIN SMALL LETTER O WITH HOOK ABOVE
- ("OR" ?\e,2v\e(B)       ; LATIN CAPITAL LETTER O WITH HOOK ABOVE
- ("Or" ?\e,2v\e(B)
- ("oos" ?\e,1/\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
- ("OOS" ?\e,2/\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
- ("Oos" ?\e,2/\e(B)
- ("oof" ?\e,10\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
- ("OOF" ?\e,20\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
- ("Oof" ?\e,20\e(B)
- ("oor" ?\e,11\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
- ("OOR" ?\e,21\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
- ("Oor" ?\e,21\e(B)
- ("oox" ?\e,12\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
- ("OOX" ?\e,22\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
- ("Oox" ?\e,22\e(B)
- ("ooj" ?\e,15\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
- ("OOJ" ?\e,25\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
- ("Ooj" ?\e,25\e(B)
- ("ows" ?\e,1>\e(B)      ; LATIN SMALL LETTER O WITH HORN AND ACUTE
- ("OWS" ?\e,2>\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE
- ("Ows" ?\e,2>\e(B)
- ("owf" ?\e,16\e(B)      ; LATIN SMALL LETTER O WITH HORN AND GRAVE
- ("OWF" ?\e,26\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE
- ("Owf" ?\e,26\e(B)
- ("owr" ?\e,17\e(B)      ; LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
- ("OWR" ?\e,27\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
- ("Owr" ?\e,27\e(B)
- ("owx" ?\e,1^\e(B)      ; LATIN SMALL LETTER O WITH HORN AND TILDE
- ("OWX" ?\e,2^\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND TILDE
- ("Owx" ?\e,2^\e(B)
- ("owj" ?\e,1~\e(B)      ; LATIN SMALL LETTER O WITH HORN AND DOT BELOW
- ("OWJ" ?\e,2~\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
- ("Owj" ?\e,2~\e(B)
- ("uj" ?\e,1x\e(B)       ; LATIN SMALL LETTER U WITH DOT BELOW
- ("UJ" ?\e,2x\e(B)       ; LATIN CAPITAL LETTER U WITH DOT BELOW
- ("Uj" ?\e,2x\e(B)
- ("ur" ?\e,1|\e(B)       ; LATIN SMALL LETTER U WITH HOOK ABOVE
- ("UR" ?\e,2|\e(B)       ; LATIN CAPITAL LETTER U WITH HOOK ABOVE
- ("Ur" ?\e,2|\e(B)
- ("uws" ?\e,1Q\e(B)      ; LATIN SMALL LETTER U WITH HORN AND ACUTE
- ("UWS" ?\e,2Q\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE
- ("Uws" ?\e,2Q\e(B)
- ("uwf" ?\e,1W\e(B)      ; LATIN SMALL LETTER U WITH HORN AND GRAVE
- ("UWF" ?\e,2W\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE
- ("Uwf" ?\e,2W\e(B)
- ("uwr" ?\e,1X\e(B)      ; LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
- ("UWR" ?\e,2X\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
- ("Uwr" ?\e,2X\e(B)
- ("uwx" ?\e,1f\e(B)      ; LATIN SMALL LETTER U WITH HORN AND TILDE
- ("UWX" ?\e,2f\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND TILDE
- ("Uwx" ?\e,2f\e(B)
- ("uwj" ?\e,1q\e(B)      ; LATIN SMALL LETTER U WITH HORN AND DOT BELOW
- ("UWJ" ?\e,2q\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
- ("Uwj" ?\e,2q\e(B)
- ("yf" ?\e,1O\e(B)       ; LATIN SMALL LETTER Y WITH GRAVE
- ("YF" ?\e,2O\e(B)       ; LATIN CAPITAL LETTER Y WITH GRAVE
- ("Yf" ?\e,2O\e(B)
- ("yj" ?\e,1\\e(B)       ; LATIN SMALL LETTER Y WITH DOT BELOW
- ("YJ" ?\e,2\\e(B)       ; LATIN CAPITAL LETTER Y WITH DOT BELOW
- ("Yj" ?\e,2\\e(B)
- ("yr" ?\e,1V\e(B)       ; LATIN SMALL LETTER Y WITH HOOK ABOVE
- ("YR" ?\e,2V\e(B)       ; LATIN CAPITAL LETTER Y WITH HOOK ABOVE
- ("Yr" ?\e,2V\e(B)
- ("yx" ?\e,1[\e(B)       ; LATIN SMALL LETTER Y WITH TILDE
- ("YX" ?\e,2[\e(B)       ; LATIN CAPITAL LETTER Y WITH TILDE
- ("Yx" ?\e,2[\e(B)
- ("dd" ?\e,1p\e(B)       ; LATIN SMALL LETTER D WITH STROKE
- ("DD" ?\e,2p\e(B)       ; LATIN CAPITAL LETTER D WITH STROKE
- ("Dd" ?\e,2p\e(B)
-;("$$" ?\e$,1tK\e(B)     ; U+20AB DONG SIGN (#### check)
+ ("af" ?à)    ; LATIN SMALL LETTER A WITH GRAVE
+ ("AF" ?À)    ; LATIN CAPITAL LETTER A WITH GRAVE
+ ("Af" ?À)
+ ("as" ?á)    ; LATIN SMALL LETTER A WITH ACUTE
+ ("AS" ?Á)    ; LATIN CAPITAL LETTER A WITH ACUTE
+ ("As" ?Á)
+ ("aa" ?â)    ; LATIN SMALL LETTER A WITH CIRCUMFLEX
+ ("AA" ?Â)    ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ ("Aa" ?Â)
+ ("ax" ?ã)    ; LATIN SMALL LETTER A WITH TILDE
+ ("AX" ?Ã)    ; LATIN CAPITAL LETTER A WITH TILDE
+ ("Ax" ?Ã)
+ ("ef" ?è)    ; LATIN SMALL LETTER E WITH GRAVE
+ ("EF" ?È)    ; LATIN CAPITAL LETTER E WITH GRAVE
+ ("Ef" ?È)
+ ("es" ?é)    ; LATIN SMALL LETTER E WITH ACUTE
+ ("ES" ?É)    ; LATIN CAPITAL LETTER E WITH ACUTE
+ ("Es" ?É)
+ ("ee" ?ê)    ; LATIN SMALL LETTER E WITH CIRCUMFLEX
+ ("EE" ?Ê)    ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ ("Ee" ?Ê)
+ ("if" ?ì)    ; LATIN SMALL LETTER I WITH GRAVE
+ ("IF" ?Ì)    ; LATIN CAPITAL LETTER I WITH GRAVE
+ ("If" ?Ì)
+ ("is" ?í)    ; LATIN SMALL LETTER I WITH ACUTE
+ ("IS" ?Í)    ; LATIN CAPITAL LETTER I WITH ACUTE
+ ("Is" ?Í)
+ ("of" ?ò)    ; LATIN SMALL LETTER O WITH GRAVE
+ ("OF" ?Ò)    ; LATIN CAPITAL LETTER O WITH GRAVE
+ ("Of" ?Ò)
+ ("os" ?ó)    ; LATIN SMALL LETTER O WITH ACUTE
+ ("OS" ?Ó)    ; LATIN CAPITAL LETTER O WITH ACUTE
+ ("Os" ?Ó)
+ ("oo" ?ô)    ; LATIN SMALL LETTER O WITH CIRCUMFLEX
+ ("OO" ?Ô)    ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ ("Oo" ?Ô)
+ ("ox" ?õ)    ; LATIN SMALL LETTER O WITH TILDE
+ ("OX" ?Õ)    ; LATIN CAPITAL LETTER O WITH TILDE
+ ("Ox" ?Õ)
+ ("uf" ?ù)    ; LATIN SMALL LETTER U WITH GRAVE
+ ("UF" ?Ù)    ; LATIN CAPITAL LETTER U WITH GRAVE
+ ("Uf" ?Ù)
+ ("us" ?ú)    ; LATIN SMALL LETTER U WITH ACUTE
+ ("US" ?Ú)    ; LATIN CAPITAL LETTER U WITH ACUTE
+ ("Us" ?Ú)
+ ("ys" ?ý)    ; LATIN SMALL LETTER Y WITH ACUTE
+ ("YS" ?Ý)    ; LATIN CAPITAL LETTER Y WITH ACUTE
+ ("Ys" ?Ý)
+ ("aw" ?ă)    ; LATIN SMALL LETTER A WITH BREVE
+ ("AW" ?Ă)    ; LATIN CAPITAL LETTER A WITH BREVE
+ ("Aw" ?Ă)
+ ("ix" ?ĩ)    ; LATIN SMALL LETTER I WITH TILDE
+ ("IX" ?Ĩ)    ; LATIN CAPITAL LETTER I WITH TILDE
+ ("Ix" ?Ĩ)
+ ("ux" ?ũ)    ; LATIN SMALL LETTER U WITH TILDE
+ ("UX" ?Ũ)    ; LATIN CAPITAL LETTER U WITH TILDE
+ ("Ux" ?Ũ)
+ ("ow" ?ơ)    ; LATIN SMALL LETTER O WITH HORN
+ ("OW" ?Ơ)    ; LATIN CAPITAL LETTER O WITH HORN
+ ("Ow" ?Ơ)
+ ("uw" ?ư)    ; LATIN SMALL LETTER U WITH HORN
+ ("UW" ?Ư)    ; LATIN CAPITAL LETTER U WITH HORN
+ ("Uw" ?Ư)
+ ("aj" ?ạ)   ; LATIN SMALL LETTER A WITH DOT BELOW
+ ("AJ" ?Ạ)   ; LATIN CAPITAL LETTER A WITH DOT BELOW
+ ("Aj" ?)
+ ("ar" ?ả)   ; LATIN SMALL LETTER A WITH HOOK ABOVE
+ ("AR" ?Ả)   ; LATIN CAPITAL LETTER A WITH HOOK ABOVE
+ ("Ar" ?)
+ ("aas" ?ấ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+ ("AAS" ?Ấ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+ ("Aas" ?)
+ ("aaf" ?ầ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+ ("AAF" ?Ầ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+ ("Aaf" ?)
+ ("aar" ?ẩ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ ("AAR" ?Ẩ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ ("Aar" ?)
+ ("aax" ?ẫ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+ ("AAX" ?Ẫ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+ ("Aax" ?)
+ ("aaj" ?ậ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ ("AAJ" ?Ậ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ ("Aaj" ?)
+ ("aws" ?ắ)  ; LATIN SMALL LETTER A WITH BREVE AND ACUTE
+ ("AWS" ?Ắ)  ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+ ("Aws" ?)
+ ("awf" ?ằ)  ; LATIN SMALL LETTER A WITH BREVE AND GRAVE
+ ("AWF" ?Ằ)  ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+ ("Awf" ?)
+ ("awr" ?ẳ)  ; LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+ ("AWR" ?Ẳ)  ; LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+ ("Awr" ?)
+ ("awx" ?ẵ)  ; LATIN SMALL LETTER A WITH BREVE AND TILDE
+ ("AWX" ?Ẵ)  ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+ ("Awx" ?)
+ ("awj" ?ặ)  ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+ ("AWJ" ?Ặ)  ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+ ("Awj" ?)
+ ("ej" ?ẹ)   ; LATIN SMALL LETTER E WITH DOT BELOW
+ ("EJ" ?Ẹ)   ; LATIN CAPITAL LETTER E WITH DOT BELOW
+ ("Ej" ?)
+ ("er" ?ẻ)   ; LATIN SMALL LETTER E WITH HOOK ABOVE
+ ("ER" ?Ẻ)   ; LATIN CAPITAL LETTER E WITH HOOK ABOVE
+ ("Er" ?)
+ ("ex" ?ẽ)   ; LATIN SMALL LETTER E WITH TILDE
+ ("EX" ?Ẽ)   ; LATIN CAPITAL LETTER E WITH TILDE
+ ("Ex" ?)
+ ("ees" ?ế)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+ ("EES" ?Ế)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+ ("Ees" ?)
+ ("eef" ?ề)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+ ("EEF" ?Ề)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+ ("Eef" ?)
+ ("eer" ?ể)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ ("EER" ?Ể)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ ("Eer" ?)
+ ("eex" ?ễ)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+ ("EEX" ?Ễ)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+ ("Eex" ?)
+ ("eej" ?ệ)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ ("EEJ" ?Ệ)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ ("Eej" ?)
+ ("ir" ?ỉ)   ; LATIN SMALL LETTER I WITH HOOK ABOVE
+ ("IR" ?Ỉ)   ; LATIN CAPITAL LETTER I WITH HOOK ABOVE
+ ("Ir" ?)
+ ("ij" ?ị)   ; LATIN SMALL LETTER I WITH DOT BELOW
+ ("IJ" ?Ị)   ; LATIN CAPITAL LETTER I WITH DOT BELOW
+ ("Ij" ?)
+ ("oj" ?ọ)   ; LATIN SMALL LETTER O WITH DOT BELOW
+ ("OJ" ?Ọ)   ; LATIN CAPITAL LETTER O WITH DOT BELOW
+ ("Oj" ?)
+ ("or" ?ỏ)   ; LATIN SMALL LETTER O WITH HOOK ABOVE
+ ("OR" ?Ỏ)   ; LATIN CAPITAL LETTER O WITH HOOK ABOVE
+ ("Or" ?)
+ ("oos" ?ố)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+ ("OOS" ?Ố)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+ ("Oos" ?)
+ ("oof" ?ồ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+ ("OOF" ?Ồ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+ ("Oof" ?)
+ ("oor" ?ổ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ ("OOR" ?Ổ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ ("Oor" ?)
+ ("oox" ?ỗ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+ ("OOX" ?Ỗ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+ ("Oox" ?)
+ ("ooj" ?ộ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ ("OOJ" ?Ộ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ ("Ooj" ?)
+ ("ows" ?ớ)  ; LATIN SMALL LETTER O WITH HORN AND ACUTE
+ ("OWS" ?Ớ)  ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+ ("Ows" ?)
+ ("owf" ?ờ)  ; LATIN SMALL LETTER O WITH HORN AND GRAVE
+ ("OWF" ?Ờ)  ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+ ("Owf" ?)
+ ("owr" ?ở)  ; LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+ ("OWR" ?Ở)  ; LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+ ("Owr" ?)
+ ("owx" ?ỡ)  ; LATIN SMALL LETTER O WITH HORN AND TILDE
+ ("OWX" ?Ỡ)  ; LATIN CAPITAL LETTER O WITH HORN AND TILDE
+ ("Owx" ?)
+ ("owj" ?ợ)  ; LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+ ("OWJ" ?Ợ)  ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+ ("Owj" ?)
+ ("uj" ?ụ)   ; LATIN SMALL LETTER U WITH DOT BELOW
+ ("UJ" ?Ụ)   ; LATIN CAPITAL LETTER U WITH DOT BELOW
+ ("Uj" ?)
+ ("ur" ?ủ)   ; LATIN SMALL LETTER U WITH HOOK ABOVE
+ ("UR" ?Ủ)   ; LATIN CAPITAL LETTER U WITH HOOK ABOVE
+ ("Ur" ?)
+ ("uws" ?ứ)  ; LATIN SMALL LETTER U WITH HORN AND ACUTE
+ ("UWS" ?Ứ)  ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+ ("Uws" ?)
+ ("uwf" ?ừ)  ; LATIN SMALL LETTER U WITH HORN AND GRAVE
+ ("UWF" ?Ừ)  ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+ ("Uwf" ?)
+ ("uwr" ?ử)  ; LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+ ("UWR" ?Ử)  ; LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+ ("Uwr" ?)
+ ("uwx" ?ữ)  ; LATIN SMALL LETTER U WITH HORN AND TILDE
+ ("UWX" ?Ữ)  ; LATIN CAPITAL LETTER U WITH HORN AND TILDE
+ ("Uwx" ?)
+ ("uwj" ?ự)  ; LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+ ("UWJ" ?Ự)  ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ ("Uwj" ?)
+ ("yf" ?ỳ)   ; LATIN SMALL LETTER Y WITH GRAVE
+ ("YF" ?Ỳ)   ; LATIN CAPITAL LETTER Y WITH GRAVE
+ ("Yf" ?)
+ ("yj" ?ỵ)   ; LATIN SMALL LETTER Y WITH DOT BELOW
+ ("YJ" ?Ỵ)   ; LATIN CAPITAL LETTER Y WITH DOT BELOW
+ ("Yj" ?)
+ ("yr" ?ỷ)   ; LATIN SMALL LETTER Y WITH HOOK ABOVE
+ ("YR" ?Ỷ)   ; LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+ ("Yr" ?)
+ ("yx" ?ỹ)   ; LATIN SMALL LETTER Y WITH TILDE
+ ("YX" ?Ỹ)   ; LATIN CAPITAL LETTER Y WITH TILDE
+ ("Yx" ?)
+ ("dd" ?đ)    ; LATIN SMALL LETTER D WITH STROKE
+ ("DD" ?Đ)    ; LATIN CAPITAL LETTER D WITH STROKE
+ ("Dd" ?Đ)
+;("$$" ?₫)   ; U+20AB DONG SIGN (#### check)
 
  ("aff" ["af"])
  ("AFF" ["AF"])
@@ -422,7 +422,7 @@ and postfix: Eee -> Ee, ajj -> aj, etc.
 )
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
 
 ;;; vntelex.el ends here
index 167b1105e250195a8aeeda751e50a687bd640b32..b130962f8f369f4b0cbe0090cae9c9c3bb8259fd 100644 (file)
@@ -43,21 +43,21 @@ Diacritics:
 
   effect     postfix   examples
   ------------------------------
-  circumflex    6      a6 -> \e,Ab\e(B
-  breve         8      a8 -> \e,1e\e(B
-  horn          7      o7 -> \e,1=\e(B
+  circumflex    6      a6 -> â
+  breve         8      a8 -> ă
+  horn          7      o7 -> ơ
 
-  acute         1      a1 -> \e,1a\e(B
-  grave         2      a2 -> \e,1`\e(B
-  hook above    3      a3 -> \e,1d\e(B
-  tilde         4      a4 -> \e,1c\e(B
-  dot below     5      a5 -> \e,1U\e(B
+  acute         1      a1 -> á
+  grave         2      a2 -> à
+  hook above    3      a3 -> 
+  tilde         4      a4 -> ã
+  dot below     5      a5 -> 
 
-  d bar         9      d9 -> \e,1p\e(B
+  d bar         9      d9 -> đ
 
 Combinations:
 
-  A82 -> \e,2"\e(B, o74 -> \e,1^\e(B, etc.
+  A82 -> Ằ, o74 -> ỡ, etc.
 
 Doubling the postfix (but not in combinations) separates the letter
 and postfix: E66 -> E6, a55 -> a5, etc.
@@ -75,141 +75,141 @@ and postfix: E66 -> E6, a55 -> a5, etc.
  t)                              ; SIMPLE
 
 (quail-define-rules
- ("a2" ?\e,1`\e(B)       ; LATIN SMALL LETTER A WITH GRAVE
- ("A2" ?\e,2`\e(B)       ; LATIN CAPITAL LETTER A WITH GRAVE
- ("a1" ?\e,1a\e(B)       ; LATIN SMALL LETTER A WITH ACUTE
- ("A1" ?\e,2a\e(B)       ; LATIN CAPITAL LETTER A WITH ACUTE
- ("a6" ?\e,1b\e(B)       ; LATIN SMALL LETTER A WITH CIRCUMFLEX
- ("A6" ?\e,2b\e(B)       ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- ("a4" ?\e,1c\e(B)       ; LATIN SMALL LETTER A WITH TILDE
- ("A4" ?\e,2c\e(B)       ; LATIN CAPITAL LETTER A WITH TILDE
- ("e2" ?\e,1h\e(B)       ; LATIN SMALL LETTER E WITH GRAVE
- ("E2" ?\e,2h\e(B)       ; LATIN CAPITAL LETTER E WITH GRAVE
- ("e1" ?\e,1i\e(B)       ; LATIN SMALL LETTER E WITH ACUTE
- ("E1" ?\e,2i\e(B)       ; LATIN CAPITAL LETTER E WITH ACUTE
- ("e6" ?\e,1j\e(B)       ; LATIN SMALL LETTER E WITH CIRCUMFLEX
- ("E6" ?\e,2j\e(B)       ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- ("i2" ?\e,1l\e(B)       ; LATIN SMALL LETTER I WITH GRAVE
- ("I2" ?\e,2l\e(B)       ; LATIN CAPITAL LETTER I WITH GRAVE
- ("i1" ?\e,1m\e(B)       ; LATIN SMALL LETTER I WITH ACUTE
- ("I1" ?\e,2m\e(B)       ; LATIN CAPITAL LETTER I WITH ACUTE
- ("o2" ?\e,1r\e(B)       ; LATIN SMALL LETTER O WITH GRAVE
- ("O2" ?\e,2r\e(B)       ; LATIN CAPITAL LETTER O WITH GRAVE
- ("o1" ?\e,1s\e(B)       ; LATIN SMALL LETTER O WITH ACUTE
- ("O1" ?\e,2s\e(B)       ; LATIN CAPITAL LETTER O WITH ACUTE
- ("o6" ?\e,1t\e(B)       ; LATIN SMALL LETTER O WITH CIRCUMFLEX
- ("O6" ?\e,2t\e(B)       ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- ("o4" ?\e,1u\e(B)       ; LATIN SMALL LETTER O WITH TILDE
- ("O4" ?\e,2u\e(B)       ; LATIN CAPITAL LETTER O WITH TILDE
- ("u2" ?\e,1y\e(B)       ; LATIN SMALL LETTER U WITH GRAVE
- ("U2" ?\e,2y\e(B)       ; LATIN CAPITAL LETTER U WITH GRAVE
- ("u1" ?\e,1z\e(B)       ; LATIN SMALL LETTER U WITH ACUTE
- ("U1" ?\e,2z\e(B)       ; LATIN CAPITAL LETTER U WITH ACUTE
- ("y1" ?\e,1}\e(B)       ; LATIN SMALL LETTER Y WITH ACUTE
- ("Y1" ?\e,2}\e(B)       ; LATIN CAPITAL LETTER Y WITH ACUTE
- ("a8" ?\e,1e\e(B)       ; LATIN SMALL LETTER A WITH BREVE
- ("A8" ?\e,2e\e(B)       ; LATIN CAPITAL LETTER A WITH BREVE
- ("i4" ?\e,1n\e(B)       ; LATIN SMALL LETTER I WITH TILDE
- ("I4" ?\e,2n\e(B)       ; LATIN CAPITAL LETTER I WITH TILDE
- ("u4" ?\e,1{\e(B)       ; LATIN SMALL LETTER U WITH TILDE
- ("U4" ?\e,2{\e(B)       ; LATIN CAPITAL LETTER U WITH TILDE
- ("o7" ?\e,1=\e(B)       ; LATIN SMALL LETTER O WITH HORN
- ("O7" ?\e,2=\e(B)       ; LATIN CAPITAL LETTER O WITH HORN
- ("u7" ?\e,1_\e(B)       ; LATIN SMALL LETTER U WITH HORN
- ("U7" ?\e,2_\e(B)       ; LATIN CAPITAL LETTER U WITH HORN
- ("a5" ?\e,1U\e(B)       ; LATIN SMALL LETTER A WITH DOT BELOW
- ("A5" ?\e,2U\e(B)       ; LATIN CAPITAL LETTER A WITH DOT BELOW
- ("a3" ?\e,1d\e(B)       ; LATIN SMALL LETTER A WITH HOOK ABOVE
- ("A3" ?\e,2d\e(B)       ; LATIN CAPITAL LETTER A WITH HOOK ABOVE
- ("a61" ?\e,1$\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
- ("A61" ?\e,2$\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
- ("a62" ?\e,1%\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
- ("A62" ?\e,2%\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
- ("a63" ?\e,1&\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE
- ("A63" ?\e,2&\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE
- ("a64" ?\e,1g\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
- ("A64" ?\e,2g\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
- ("a65" ?\e,1'\e(B)      ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
- ("A65" ?\e,2'\e(B)      ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
- ("a81" ?\e,1!\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND ACUTE
- ("A81" ?\e,2!\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
- ("a82" ?\e,1"\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND GRAVE
- ("A82" ?\e,2"\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
- ("a83" ?\e,1F\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND HO6K ABOVE
- ("A83" ?\e,2F\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND HO6K ABOVE
- ("a84" ?\e,1G\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND TILDE
- ("A84" ?\e,2G\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE
- ("a85" ?\e,1#\e(B)      ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
- ("A85" ?\e,2#\e(B)      ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
- ("e5" ?\e,1)\e(B)       ; LATIN SMALL LETTER E WITH DOT BELOW
- ("E5" ?\e,2)\e(B)       ; LATIN CAPITAL LETTER E WITH DOT BELOW
- ("e3" ?\e,1k\e(B)       ; LATIN SMALL LETTER E WITH HO6K ABOVE
- ("E3" ?\e,2k\e(B)       ; LATIN CAPITAL LETTER E WITH HO6K ABOVE
- ("e4" ?\e,1(\e(B)       ; LATIN SMALL LETTER E WITH TILDE
- ("E4" ?\e,2(\e(B)       ; LATIN CAPITAL LETTER E WITH TILDE
- ("e61" ?\e,1*\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
- ("E61" ?\e,2*\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
- ("e62" ?\e,1+\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
- ("E62" ?\e,2+\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
- ("e63" ?\e,1,\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE
- ("E63" ?\e,2,\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE
- ("e64" ?\e,1-\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
- ("E64" ?\e,2-\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
- ("e65" ?\e,1.\e(B)      ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
- ("E65" ?\e,2.\e(B)      ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
- ("i3" ?\e,1o\e(B)       ; LATIN SMALL LETTER I WITH HO6K ABOVE
- ("I3" ?\e,2o\e(B)       ; LATIN CAPITAL LETTER I WITH HO6K ABOVE
- ("i5" ?\e,18\e(B)       ; LATIN SMALL LETTER I WITH DOT BELOW
- ("I5" ?\e,28\e(B)       ; LATIN CAPITAL LETTER I WITH DOT BELOW
- ("o5" ?\e,1w\e(B)       ; LATIN SMALL LETTER O WITH DOT BELOW
- ("O5" ?\e,2w\e(B)       ; LATIN CAPITAL LETTER O WITH DOT BELOW
- ("o3" ?\e,1v\e(B)       ; LATIN SMALL LETTER O WITH HO6K ABOVE
- ("O3" ?\e,2v\e(B)       ; LATIN CAPITAL LETTER O WITH HO6K ABOVE
- ("o61" ?\e,1/\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
- ("O61" ?\e,2/\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
- ("o62" ?\e,10\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
- ("O62" ?\e,20\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
- ("o63" ?\e,11\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE
- ("O63" ?\e,21\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE
- ("o64" ?\e,12\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
- ("O64" ?\e,22\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
- ("o65" ?\e,15\e(B)      ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELO7
- ("O65" ?\e,25\e(B)      ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELO7
- ("o71" ?\e,1>\e(B)      ; LATIN SMALL LETTER O WITH HORN AND ACUTE
- ("O71" ?\e,2>\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE
- ("o72" ?\e,16\e(B)      ; LATIN SMALL LETTER O WITH HORN AND GRAVE
- ("O72" ?\e,26\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE
- ("o73" ?\e,17\e(B)      ; LATIN SMALL LETTER O WITH HORN AND HO6K ABOVE
- ("O73" ?\e,27\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND HO6K ABOVE
- ("o74" ?\e,1^\e(B)      ; LATIN SMALL LETTER O WITH HORN AND TILDE
- ("O74" ?\e,2^\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND TILDE
- ("o75" ?\e,1~\e(B)      ; LATIN SMALL LETTER O WITH HORN AND DOT BELO7
- ("O75" ?\e,2~\e(B)      ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELO7
- ("u5" ?\e,1x\e(B)       ; LATIN SMALL LETTER U WITH DOT BELO7
- ("U5" ?\e,2x\e(B)       ; LATIN CAPITAL LETTER U WITH DOT BELO7
- ("u3" ?\e,1|\e(B)       ; LATIN SMALL LETTER U WITH HO6K ABOVE
- ("U3" ?\e,2|\e(B)       ; LATIN CAPITAL LETTER U WITH HO6K ABOVE
- ("u71" ?\e,1Q\e(B)      ; LATIN SMALL LETTER U WITH HORN AND ACUTE
- ("U71" ?\e,2Q\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE
- ("u72" ?\e,1W\e(B)      ; LATIN SMALL LETTER U WITH HORN AND GRAVE
- ("U72" ?\e,2W\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE
- ("u73" ?\e,1X\e(B)      ; LATIN SMALL LETTER U WITH HORN AND HO6K ABOVE
- ("U73" ?\e,2X\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND HO6K ABOVE
- ("u74" ?\e,1f\e(B)      ; LATIN SMALL LETTER U WITH HORN AND TILDE
- ("U74" ?\e,2f\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND TILDE
- ("u75" ?\e,1q\e(B)      ; LATIN SMALL LETTER U WITH HORN AND DOT BELO7
- ("U75" ?\e,2q\e(B)      ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELO7
- ("y2" ?\e,1O\e(B)       ; LATIN SMALL LETTER Y WITH GRAVE
- ("Y2" ?\e,2O\e(B)       ; LATIN CAPITAL LETTER Y WITH GRAVE
- ("y5" ?\e,1\\e(B)       ; LATIN SMALL LETTER Y WITH DOT BELO7
- ("Y5" ?\e,2\\e(B)       ; LATIN CAPITAL LETTER Y WITH DOT BELO7
- ("y3" ?\e,1V\e(B)       ; LATIN SMALL LETTER Y WITH HO6K ABOVE
- ("Y3" ?\e,2V\e(B)       ; LATIN CAPITAL LETTER Y WITH HO6K ABOVE
- ("y4" ?\e,1[\e(B)       ; LATIN SMALL LETTER Y WITH TILDE
- ("Y4" ?\e,2[\e(B)       ; LATIN CAPITAL LETTER Y WITH TILDE
- ("d9" ?\e,1p\e(B)       ; LATIN SMALL LETTER D WITH STROKE
- ("D9" ?\e,2p\e(B)       ; LATIN CAPITAL LETTER D WITH STROKE
-;("$$" ?\e$,1tK\e(B)     ; U+20AB DONG SIGN (#### check)
+ ("a2" ?à)    ; LATIN SMALL LETTER A WITH GRAVE
+ ("A2" ?À)    ; LATIN CAPITAL LETTER A WITH GRAVE
+ ("a1" ?á)    ; LATIN SMALL LETTER A WITH ACUTE
+ ("A1" ?Á)    ; LATIN CAPITAL LETTER A WITH ACUTE
+ ("a6" ?â)    ; LATIN SMALL LETTER A WITH CIRCUMFLEX
+ ("A6" ?Â)    ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ ("a4" ?ã)    ; LATIN SMALL LETTER A WITH TILDE
+ ("A4" ?Ã)    ; LATIN CAPITAL LETTER A WITH TILDE
+ ("e2" ?è)    ; LATIN SMALL LETTER E WITH GRAVE
+ ("E2" ?È)    ; LATIN CAPITAL LETTER E WITH GRAVE
+ ("e1" ?é)    ; LATIN SMALL LETTER E WITH ACUTE
+ ("E1" ?É)    ; LATIN CAPITAL LETTER E WITH ACUTE
+ ("e6" ?ê)    ; LATIN SMALL LETTER E WITH CIRCUMFLEX
+ ("E6" ?Ê)    ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ ("i2" ?ì)    ; LATIN SMALL LETTER I WITH GRAVE
+ ("I2" ?Ì)    ; LATIN CAPITAL LETTER I WITH GRAVE
+ ("i1" ?í)    ; LATIN SMALL LETTER I WITH ACUTE
+ ("I1" ?Í)    ; LATIN CAPITAL LETTER I WITH ACUTE
+ ("o2" ?ò)    ; LATIN SMALL LETTER O WITH GRAVE
+ ("O2" ?Ò)    ; LATIN CAPITAL LETTER O WITH GRAVE
+ ("o1" ?ó)    ; LATIN SMALL LETTER O WITH ACUTE
+ ("O1" ?Ó)    ; LATIN CAPITAL LETTER O WITH ACUTE
+ ("o6" ?ô)    ; LATIN SMALL LETTER O WITH CIRCUMFLEX
+ ("O6" ?Ô)    ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ ("o4" ?õ)    ; LATIN SMALL LETTER O WITH TILDE
+ ("O4" ?Õ)    ; LATIN CAPITAL LETTER O WITH TILDE
+ ("u2" ?ù)    ; LATIN SMALL LETTER U WITH GRAVE
+ ("U2" ?Ù)    ; LATIN CAPITAL LETTER U WITH GRAVE
+ ("u1" ?ú)    ; LATIN SMALL LETTER U WITH ACUTE
+ ("U1" ?Ú)    ; LATIN CAPITAL LETTER U WITH ACUTE
+ ("y1" ?ý)    ; LATIN SMALL LETTER Y WITH ACUTE
+ ("Y1" ?Ý)    ; LATIN CAPITAL LETTER Y WITH ACUTE
+ ("a8" ?ă)    ; LATIN SMALL LETTER A WITH BREVE
+ ("A8" ?Ă)    ; LATIN CAPITAL LETTER A WITH BREVE
+ ("i4" ?ĩ)    ; LATIN SMALL LETTER I WITH TILDE
+ ("I4" ?Ĩ)    ; LATIN CAPITAL LETTER I WITH TILDE
+ ("u4" ?ũ)    ; LATIN SMALL LETTER U WITH TILDE
+ ("U4" ?Ũ)    ; LATIN CAPITAL LETTER U WITH TILDE
+ ("o7" ?ơ)    ; LATIN SMALL LETTER O WITH HORN
+ ("O7" ?Ơ)    ; LATIN CAPITAL LETTER O WITH HORN
+ ("u7" ?ư)    ; LATIN SMALL LETTER U WITH HORN
+ ("U7" ?Ư)    ; LATIN CAPITAL LETTER U WITH HORN
+ ("a5" ?ạ)   ; LATIN SMALL LETTER A WITH DOT BELOW
+ ("A5" ?Ạ)   ; LATIN CAPITAL LETTER A WITH DOT BELOW
+ ("a3" ?ả)   ; LATIN SMALL LETTER A WITH HOOK ABOVE
+ ("A3" ?Ả)   ; LATIN CAPITAL LETTER A WITH HOOK ABOVE
+ ("a61" ?ấ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+ ("A61" ?Ấ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+ ("a62" ?ầ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+ ("A62" ?Ầ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+ ("a63" ?ẩ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE
+ ("A63" ?Ẩ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE
+ ("a64" ?ẫ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+ ("A64" ?Ẫ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+ ("a65" ?ậ)  ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ ("A65" ?Ậ)  ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ ("a81" ?ắ)  ; LATIN SMALL LETTER A WITH BREVE AND ACUTE
+ ("A81" ?Ắ)  ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+ ("a82" ?ằ)  ; LATIN SMALL LETTER A WITH BREVE AND GRAVE
+ ("A82" ?Ằ)  ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+ ("a83" ?ẳ)  ; LATIN SMALL LETTER A WITH BREVE AND HO6K ABOVE
+ ("A83" ?Ẳ)  ; LATIN CAPITAL LETTER A WITH BREVE AND HO6K ABOVE
+ ("a84" ?ẵ)  ; LATIN SMALL LETTER A WITH BREVE AND TILDE
+ ("A84" ?Ẵ)  ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+ ("a85" ?ặ)  ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+ ("A85" ?Ặ)  ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+ ("e5" ?ẹ)   ; LATIN SMALL LETTER E WITH DOT BELOW
+ ("E5" ?Ẹ)   ; LATIN CAPITAL LETTER E WITH DOT BELOW
+ ("e3" ?ẻ)   ; LATIN SMALL LETTER E WITH HO6K ABOVE
+ ("E3" ?Ẻ)   ; LATIN CAPITAL LETTER E WITH HO6K ABOVE
+ ("e4" ?ẽ)   ; LATIN SMALL LETTER E WITH TILDE
+ ("E4" ?Ẽ)   ; LATIN CAPITAL LETTER E WITH TILDE
+ ("e61" ?ế)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+ ("E61" ?Ế)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+ ("e62" ?ề)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+ ("E62" ?Ề)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+ ("e63" ?ể)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE
+ ("E63" ?Ể)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE
+ ("e64" ?ễ)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+ ("E64" ?Ễ)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+ ("e65" ?ệ)  ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ ("E65" ?Ệ)  ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ ("i3" ?ỉ)   ; LATIN SMALL LETTER I WITH HO6K ABOVE
+ ("I3" ?Ỉ)   ; LATIN CAPITAL LETTER I WITH HO6K ABOVE
+ ("i5" ?ị)   ; LATIN SMALL LETTER I WITH DOT BELOW
+ ("I5" ?Ị)   ; LATIN CAPITAL LETTER I WITH DOT BELOW
+ ("o5" ?ọ)   ; LATIN SMALL LETTER O WITH DOT BELOW
+ ("O5" ?Ọ)   ; LATIN CAPITAL LETTER O WITH DOT BELOW
+ ("o3" ?ỏ)   ; LATIN SMALL LETTER O WITH HO6K ABOVE
+ ("O3" ?Ỏ)   ; LATIN CAPITAL LETTER O WITH HO6K ABOVE
+ ("o61" ?ố)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+ ("O61" ?Ố)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+ ("o62" ?ồ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+ ("O62" ?Ồ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+ ("o63" ?ổ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE
+ ("O63" ?Ổ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE
+ ("o64" ?ỗ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+ ("O64" ?Ỗ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+ ("o65" ?ộ)  ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELO7
+ ("O65" ?Ộ)  ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELO7
+ ("o71" ?ớ)  ; LATIN SMALL LETTER O WITH HORN AND ACUTE
+ ("O71" ?Ớ)  ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+ ("o72" ?ờ)  ; LATIN SMALL LETTER O WITH HORN AND GRAVE
+ ("O72" ?Ờ)  ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+ ("o73" ?ở)  ; LATIN SMALL LETTER O WITH HORN AND HO6K ABOVE
+ ("O73" ?Ở)  ; LATIN CAPITAL LETTER O WITH HORN AND HO6K ABOVE
+ ("o74" ?ỡ)  ; LATIN SMALL LETTER O WITH HORN AND TILDE
+ ("O74" ?Ỡ)  ; LATIN CAPITAL LETTER O WITH HORN AND TILDE
+ ("o75" ?ợ)  ; LATIN SMALL LETTER O WITH HORN AND DOT BELO7
+ ("O75" ?Ợ)  ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELO7
+ ("u5" ?ụ)   ; LATIN SMALL LETTER U WITH DOT BELO7
+ ("U5" ?Ụ)   ; LATIN CAPITAL LETTER U WITH DOT BELO7
+ ("u3" ?ủ)   ; LATIN SMALL LETTER U WITH HO6K ABOVE
+ ("U3" ?Ủ)   ; LATIN CAPITAL LETTER U WITH HO6K ABOVE
+ ("u71" ?ứ)  ; LATIN SMALL LETTER U WITH HORN AND ACUTE
+ ("U71" ?Ứ)  ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+ ("u72" ?ừ)  ; LATIN SMALL LETTER U WITH HORN AND GRAVE
+ ("U72" ?Ừ)  ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+ ("u73" ?ử)  ; LATIN SMALL LETTER U WITH HORN AND HO6K ABOVE
+ ("U73" ?Ử)  ; LATIN CAPITAL LETTER U WITH HORN AND HO6K ABOVE
+ ("u74" ?ữ)  ; LATIN SMALL LETTER U WITH HORN AND TILDE
+ ("U74" ?Ữ)  ; LATIN CAPITAL LETTER U WITH HORN AND TILDE
+ ("u75" ?ự)  ; LATIN SMALL LETTER U WITH HORN AND DOT BELO7
+ ("U75" ?Ự)  ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELO7
+ ("y2" ?ỳ)   ; LATIN SMALL LETTER Y WITH GRAVE
+ ("Y2" ?Ỳ)   ; LATIN CAPITAL LETTER Y WITH GRAVE
+ ("y5" ?ỵ)   ; LATIN SMALL LETTER Y WITH DOT BELO7
+ ("Y5" ?Ỵ)   ; LATIN CAPITAL LETTER Y WITH DOT BELO7
+ ("y3" ?ỷ)   ; LATIN SMALL LETTER Y WITH HO6K ABOVE
+ ("Y3" ?Ỷ)   ; LATIN CAPITAL LETTER Y WITH HO6K ABOVE
+ ("y4" ?ỹ)   ; LATIN SMALL LETTER Y WITH TILDE
+ ("Y4" ?Ỹ)   ; LATIN CAPITAL LETTER Y WITH TILDE
+ ("d9" ?đ)    ; LATIN SMALL LETTER D WITH STROKE
+ ("D9" ?Đ)    ; LATIN CAPITAL LETTER D WITH STROKE
+;("$$" ?₫)   ; U+20AB DONG SIGN (#### check)
 
  ("a22" ["a22"])
  ("A22" ["A2"])
@@ -301,5 +301,5 @@ and postfix: E66 -> E6, a55 -> a5, etc.
 
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
index 62c450ddd25d42f6758de71d41ec54798acd0678..fa72dc5c27e7f0fde9f10f85b14df0e58fc3cefd 100644 (file)
@@ -1,4 +1,4 @@
-;;; welsh.el --- Quail package for inputting Welsh characters  -*-coding: iso-2022-7bit;-*-
+;;; welsh.el --- Quail package for inputting Welsh characters  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
 
 (require 'quail)
 
 (quail-define-package
- "welsh" "Welsh" "\e$,1!4\e(B" t
+ "welsh" "Welsh" "Ŵ" t
  "Welsh postfix input method"
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A\\" ?\e,A@\e(B)
- ("A/" ?\e,AA\e(B)
- ("A^" ?\e,AB\e(B)
- ("A+" ?\e,AB\e(B)
- ("A\"" ?\e,AD\e(B)
- ("a\\" ?\e,A`\e(B)
- ("a/" ?\e,Aa\e(B)
- ("a^" ?\e,Ab\e(B)
- ("a+" ?\e,Ab\e(B)
- ("a\"" ?\e,Ad\e(B)
-
- ("E\\" ?\e,AH\e(B)
- ("E/" ?\e,AI\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E+" ?\e,AJ\e(B)
- ("E\"" ?\e,AK\e(B)
- ("e\\" ?\e,Ah\e(B)
- ("e/" ?\e,Ai\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e+" ?\e,Aj\e(B)
- ("e\"" ?\e,Ak\e(B)
-
- ("I\\" ?\e,AL\e(B)
- ("I/" ?\e,AM\e(B)
- ("I^" ?\e,AN\e(B)
- ("I+" ?\e,AN\e(B)
- ("I\"" ?\e,AO\e(B)
- ("i\\" ?\e,Al\e(B)
- ("i/" ?\e,Am\e(B)
- ("i^" ?\e,An\e(B)
- ("i+" ?\e,An\e(B)
- ("i\"" ?\e,Ao\e(B)
-
- ("O\\" ?\e,AR\e(B)
- ("O/" ?\e,AS\e(B)
- ("O^" ?\e,AT\e(B)
- ("O+" ?\e,AT\e(B)
- ("O\"" ?\e,AV\e(B)
- ("o\\" ?\e,Ar\e(B)
- ("o/" ?\e,As\e(B)
- ("o^" ?\e,At\e(B)
- ("o+" ?\e,At\e(B)
- ("o\"" ?\e,Av\e(B)
-
- ("U\\" ?\e,AY\e(B)
- ("U/" ?\e,AZ\e(B)
- ("U^" ?\e,A[\e(B)
- ("U+" ?\e,A[\e(B)
- ("U\"" ?\e,A\\e(B)
- ("u\\" ?\e,Ay\e(B)
- ("u/" ?\e,Az\e(B)
- ("u^" ?\e,A{\e(B)
- ("u+" ?\e,A{\e(B)
- ("u\"" ?\e,A|\e(B)
-
- ("Y\\" ?\e$,1or\e(B)
- ("Y/" ?\e,A]\e(B)
- ("Y^" ?\e$,1!6\e(B)
- ("Y+" ?\e$,1!6\e(B)
- ("Y\"" ?\e$,1!8\e(B)
- ("y\\" ?\e$,1os\e(B)
- ("y/" ?\e,A}\e(B)
- ("y\"" ?\e,A\7f\e(B)
- ("y^" ?\e$,1!7\e(B)
- ("y+" ?\e$,1!7\e(B)
-
- ("W\\" ?\e$,1n`\e(B)
- ("W/" ?\e$,1nb\e(B)
- ("W^" ?\e$,1!4\e(B)
- ("W+" ?\e$,1!4\e(B)
- ("W\"" ?\e$,1nd\e(B)
- ("w\\" ?\e$,1na\e(B)
- ("w/" ?\e$,1nc\e(B)
- ("w^" ?\e$,1!5\e(B)
- ("w+" ?\e$,1!5\e(B)
- ("w\"" ?\e$,1ne\e(B)
+ ("A\\" ?À)
+ ("A/" ?Á)
+ ("A^" ?Â)
+ ("A+" ?Â)
+ ("A\"" ?Ä)
+ ("a\\" ?à)
+ ("a/" ?á)
+ ("a^" ?â)
+ ("a+" ?â)
+ ("a\"" ?ä)
+
+ ("E\\" ?È)
+ ("E/" ?É)
+ ("E^" ?Ê)
+ ("E+" ?Ê)
+ ("E\"" ?Ë)
+ ("e\\" ?è)
+ ("e/" ?é)
+ ("e^" ?ê)
+ ("e+" ?ê)
+ ("e\"" ?ë)
+
+ ("I\\" ?Ì)
+ ("I/" ?Í)
+ ("I^" ?Î)
+ ("I+" ?Î)
+ ("I\"" ?Ï)
+ ("i\\" ?ì)
+ ("i/" ?í)
+ ("i^" ?î)
+ ("i+" ?î)
+ ("i\"" ?ï)
+
+ ("O\\" ?Ò)
+ ("O/" ?Ó)
+ ("O^" ?Ô)
+ ("O+" ?Ô)
+ ("O\"" ?Ö)
+ ("o\\" ?ò)
+ ("o/" ?ó)
+ ("o^" ?ô)
+ ("o+" ?ô)
+ ("o\"" ?ö)
+
+ ("U\\" ?Ù)
+ ("U/" ?Ú)
+ ("U^" ?Û)
+ ("U+" ?Û)
+ ("U\"" ?Ü)
+ ("u\\" ?ù)
+ ("u/" ?ú)
+ ("u^" ?û)
+ ("u+" ?û)
+ ("u\"" ?ü)
+
+ ("Y\\" ?)
+ ("Y/" ?Ý)
+ ("Y^" ?Ŷ)
+ ("Y+" ?Ŷ)
+ ("Y\"" ?Ÿ)
+ ("y\\" ?)
+ ("y/" ?ý)
+ ("y\"" ?ÿ)
+ ("y^" ?ŷ)
+ ("y+" ?ŷ)
+
+ ("W\\" ?)
+ ("W/" ?)
+ ("W^" ?Ŵ)
+ ("W+" ?Ŵ)
+ ("W\"" ?)
+ ("w\\" ?)
+ ("w/" ?)
+ ("w^" ?ŵ)
+ ("w+" ?ŵ)
+ ("w\"" ?)
 
  ;; "hawlfraint" (copyright).  Dyma arwyddlun hawlfraint.
- ("(h)" ?\e$,1\7fW\e(B))
+ ("(h)" ?))
 
 ;; (quail-define-package
-;;  "welsh" "Welsh" "\e$,1!4\e(B" t
+;;  "welsh" "Welsh" "Ŵ" t
 ;;  "Welsh postfix input method, using Latin-8"
 ;;  nil t nil nil nil nil nil nil nil nil t)
 
 ;; (quail-define-rules
-;;  ("A\\" ?\e,A@\e(B)
-;;  ("A/" ?\e,AA\e(B)
-;;  ("A^" ?\e,AB\e(B)
-;;  ("A+" ?\e,AB\e(B)
-;;  ("A\"" ?\e,AD\e(B)
-;;  ("a\\" ?\e,A`\e(B)
-;;  ("a/" ?\e,Aa\e(B)
-;;  ("a^" ?\e,Ab\e(B)
-;;  ("a+" ?\e,Ab\e(B)
-;;  ("a\"" ?\e,Ad\e(B)
-
-;;  ("E\\" ?\e,AH\e(B)
-;;  ("E/" ?\e,AI\e(B)
-;;  ("E^" ?\e,AJ\e(B)
-;;  ("E+" ?\e,AJ\e(B)
-;;  ("E\"" ?\e,AK\e(B)
-;;  ("e\\" ?\e,Ah\e(B)
-;;  ("e/" ?\e,Ai\e(B)
-;;  ("e^" ?\e,Aj\e(B)
-;;  ("e+" ?\e,Aj\e(B)
-;;  ("e\"" ?\e,Ak\e(B)
-
-;;  ("I\\" ?\e,AL\e(B)
-;;  ("I/" ?\e,AM\e(B)
-;;  ("I^" ?\e,AN\e(B)
-;;  ("I+" ?\e,AN\e(B)
-;;  ("I\"" ?\e,AO\e(B)
-;;  ("i\\" ?\e,Al\e(B)
-;;  ("i/" ?\e,Am\e(B)
-;;  ("i^" ?\e,An\e(B)
-;;  ("i+" ?\e,An\e(B)
-;;  ("i\"" ?\e,Ao\e(B)
-
-;;  ("O\\" ?\e,AR\e(B)
-;;  ("O/" ?\e,AS\e(B)
-;;  ("O^" ?\e,AT\e(B)
-;;  ("O+" ?\e,AT\e(B)
-;;  ("O\"" ?\e,AV\e(B)
-;;  ("o\\" ?\e,Ar\e(B)
-;;  ("o/" ?\e,As\e(B)
-;;  ("o^" ?\e,At\e(B)
-;;  ("o+" ?\e,At\e(B)
-;;  ("o\"" ?\e,Av\e(B)
-
-;;  ("U\\" ?\e,AY\e(B)
-;;  ("U/" ?\e,AZ\e(B)
-;;  ("U^" ?\e,A[\e(B)
-;;  ("U+" ?\e,A[\e(B)
-;;  ("U\"" ?\e,A\\e(B)
-;;  ("u\\" ?\e,Ay\e(B)
-;;  ("u/" ?\e,Az\e(B)
-;;  ("u^" ?\e,A{\e(B)
-;;  ("u+" ?\e,A{\e(B)
-;;  ("u\"" ?\e,A|\e(B)
-
-;;  ("Y\\" ?\e,A,\e(B)
-;;  ("Y/" ?\e,A]\e(B)
-;;  ("Y^" ?\e,A^\e(B)
-;;  ("Y+" ?\e,A^\e(B)
-;;  ("Y\"" ?\e,A/\e(B)
-;;  ("y\\" ?\e,A<\e(B)
-;;  ("y/" ?\e,A}\e(B)
-;;  ("y\"" ?\e,A\7f\e(B)
-;;  ("y^" ?\e,A~\e(B)
-;;  ("y+" ?\e,A~\e(B)
-
-;;  ("W\\" ?\e,A(\e(B)
-;;  ("W/" ?\e,A*\e(B)
-;;  ("W^" ?\e,AP\e(B)
-;;  ("W+" ?\e,AP\e(B)
-;;  ("W\"" ?\e,A=\e(B)
-;;  ("w\\" ?\e,A8\e(B)
-;;  ("w/" ?\e,A:\e(B)
-;;  ("w^" ?\e,Ap\e(B)
-;;  ("w+" ?\e,Ap\e(B)
-;;  ("w\"" ?\e,A>\e(B))
+;;  ("A\\" ?À)
+;;  ("A/" ?Á)
+;;  ("A^" ?Â)
+;;  ("A+" ?Â)
+;;  ("A\"" ?Ä)
+;;  ("a\\" ?à)
+;;  ("a/" ?á)
+;;  ("a^" ?â)
+;;  ("a+" ?â)
+;;  ("a\"" ?ä)
+
+;;  ("E\\" ?È)
+;;  ("E/" ?É)
+;;  ("E^" ?Ê)
+;;  ("E+" ?Ê)
+;;  ("E\"" ?Ë)
+;;  ("e\\" ?è)
+;;  ("e/" ?é)
+;;  ("e^" ?ê)
+;;  ("e+" ?ê)
+;;  ("e\"" ?ë)
+
+;;  ("I\\" ?Ì)
+;;  ("I/" ?Í)
+;;  ("I^" ?Î)
+;;  ("I+" ?Î)
+;;  ("I\"" ?Ï)
+;;  ("i\\" ?ì)
+;;  ("i/" ?í)
+;;  ("i^" ?î)
+;;  ("i+" ?î)
+;;  ("i\"" ?ï)
+
+;;  ("O\\" ?Ò)
+;;  ("O/" ?Ó)
+;;  ("O^" ?Ô)
+;;  ("O+" ?Ô)
+;;  ("O\"" ?Ö)
+;;  ("o\\" ?ò)
+;;  ("o/" ?ó)
+;;  ("o^" ?ô)
+;;  ("o+" ?ô)
+;;  ("o\"" ?ö)
+
+;;  ("U\\" ?Ù)
+;;  ("U/" ?Ú)
+;;  ("U^" ?Û)
+;;  ("U+" ?Û)
+;;  ("U\"" ?Ü)
+;;  ("u\\" ?ù)
+;;  ("u/" ?ú)
+;;  ("u^" ?û)
+;;  ("u+" ?û)
+;;  ("u\"" ?ü)
+
+;;  ("Y\\" ?¬)
+;;  ("Y/" ?Ý)
+;;  ("Y^" ?Þ)
+;;  ("Y+" ?Þ)
+;;  ("Y\"" ?¯)
+;;  ("y\\" ?¼)
+;;  ("y/" ?ý)
+;;  ("y\"" ?ÿ)
+;;  ("y^" ?þ)
+;;  ("y+" ?þ)
+
+;;  ("W\\" ?¨)
+;;  ("W/" ?ª)
+;;  ("W^" ?Ð)
+;;  ("W+" ?Ð)
+;;  ("W\"" ?½)
+;;  ("w\\" ?¸)
+;;  ("w/" ?º)
+;;  ("w^" ?ð)
+;;  ("w+" ?ð)
+;;  ("w\"" ?¾))
 
 
 ;;; welsh.el ends here
index 10758d80872e6a90efe96cf55a187d0313a5835d..2089a50d47ba6f083899d816fab6798ceeb60ed1 100644 (file)
        (socket_connection) [!HAVE_KRB5_ERROR_TEXT && HAVE_KRB5_ERROR_E_TEXT]:
        Use ERROR_MAX, not ERRMAX.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
-
 2013-03-13  Paul Eggert  <eggert@cs.ucla.edu>
 
        File synchronization fixes (Bug#13944).
 
 2002-03-05  Francesco Potortì  <pot@gnu.org>
 
-       * etags.c: Honour #line directives.
+       * etags.c: Honor #line directives.
        (no_line_directive): New global var; set it for old behavior.
        (main): Remove some #ifdef in the getopt switch.
        (add_node, put_entries): Code added to merge different chunks of
index a341609e895b34121d0601cb8ae5a999c684da06..d8979a1cf744b61300b354ecdfef77a0bb302bea 100644 (file)
@@ -4,7 +4,7 @@ MOSTLYCLEANDIRS =
 MOSTLYCLEANFILES =
 noinst_LIBRARIES =
 
-AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
+AM_CFLAGS = $(PROFILING_CFLAGS) $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
 DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src
 
 include gnulib.mk
index 00a105b514266146f57460ff66be9a4ae91f26f5..95aadd40fd6910a4df9bb7f6290793e0f875ca0d 100644 (file)
@@ -1,3 +1,203 @@
+2013-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/edebug.el (edebug-mode): Fix typo (bug#14144).
+
+       * emacs-lisp/timer.el (timer-event-handler): Don't retrigger a canceled
+       timer (bug#14156).
+
+2013-04-07  Nic Ferrier  <nferrier@ferrier.me.uk>
+
+       * emacs-lisp/ert.el (should, should-not, should-error): Add edebug
+       declaration.
+
+2013-04-07  Leo Liu  <sdl.web@gmail.com>
+
+       * pcmpl-x.el: New file.
+
+2013-04-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not set x-display-name until X connection is established.
+       This is needed to prevent from weird situation described at
+       <http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00212.html>.
+       * frame.el (make-frame): Set x-display-name after call to
+       window system initialization function, not before.
+       * term/x-win.el (x-initialize-window-system): Add optional
+       display argument and use it.
+       * term/w32-win.el (w32-initialize-window-system):
+       * term/ns-win.el (ns-initialize-window-system):
+       * term/pc-win.el (msdos-initialize-window-system):
+       Add compatible optional display argument.
+
+2013-04-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * files.el (normal-backup-enable-predicate): On MS-Windows and
+       MS-DOS compare truenames of temporary-file-directory and of the
+       file, so that 8+3 aliases (usually found in $TEMP on Windows)
+       don't fail comparison by compare-strings.  Also, compare file
+       names case-insensitively on MS-Windows and MS-DOS.
+
+2013-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/package.el (package-compute-transaction): Fix last fix.
+       Suggested by Donald Curtis <dcurtis@coe.edu> (bug#14082).
+
+2013-04-05  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * whitespace.el (whitespace-color-on, whitespace-color-off):
+       Only call `font-lock-fontify-buffer' when `font-lock-mode' is on.
+
+2013-04-05  Jacek Chrząszcz  <chrzaszcz@mimuw.edu.pl> (tiny change)
+
+       * ispell.el (ispell-set-spellchecker-params):
+       Really set `ispell-args' for all equivs.
+
+2013-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * ido.el (ido-completions): Use extra elements of ido-decorations
+       (bug#14143).
+       (ido-decorations): Update docstring.
+
+2013-04-05  Michael Albinus  <michael.albinus@gmx.de>
+
+       * autorevert.el (auto-revert-mode, auto-revert-tail-mode)
+       (global-auto-revert-mode): Let-bind `auto-revert-use-notify' to
+       nil during initialization, in order not to miss changes since the
+       file was opened.  (Bug#14140)
+
+2013-04-05  Leo Liu  <sdl.web@gmail.com>
+
+       * kmacro.el (kmacro-call-macro): Fix bug#14135.
+
+2013-04-05  Jay Belanger  <jay.p.belanger@gmail.com>
+
+       * calc/calc-units.el (calc-convert-units): Rewrite conditional.
+
+2013-04-04  Glenn Morris  <rgm@gnu.org>
+
+       * electric.el (electric-pair-inhibit-predicate): Add :version.
+
+2013-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/package.el (package-compute-transaction): Fix ordering
+       when a package is required several times (bug#14082).
+
+2013-04-04  Roland Winkler  <winkler@gnu.org>
+
+       * faces.el (read-face-name): Behave as promised by the docstring.
+       Assume that arg default is a list of faces.
+       (describe-face): Call read-face-name with list of default faces.
+
+2013-04-04  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
+
+       * bookmark.el: Fix deletion of bookmarks (bug#13972).
+       (bookmark-bmenu-list): Don't toggle filenames if alist is empty.
+       (bookmark-bmenu-execute-deletions): Only skip first line if it's
+       the header.
+       (bookmark-exit-hook-internal): Save even if list is empty.
+
+2013-04-04  Yann Hodique  <yann.hodique@gmail.com>  (tiny change)
+
+       * emacs-lisp/package.el (package-pinned-packages): New var.
+       (package--add-to-archive-contents): Obey it (bug#14118).
+
+2013-04-03  Alan Mackenzie  <acm@muc.de>
+
+       Handle `parse-partial-sexp' landing inside a comment opener
+       (Bug#13244). Also adapt to the new values of element 7 of a parse
+       state.
+
+       * progmodes/cc-engine.el (c-state-pp-to-literal): New optional
+       parameter `not-in-delimiter'.  Handle being inside comment opener.
+       (c-invalidate-state-cache-1): Reckon with an extra "invalid"
+       character in case we're typing a '*' after a '/'.
+       (c-literal-limits): Handle the awkward "not-in-delimiter" cond arm
+       instead by passing the parameter to c-state-pp-to-literal.
+
+       * progmodes/cc-fonts.el (c-font-lock-doc-comments): New handling
+       for elt. 7 of a parse state.
+
+2013-04-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use UTF-8 for most files with non-ASCII characters (Bug#13936).
+       * international/latin1-disp.el, international/mule-util.el:
+       * language/cyril-util.el, language/european.el, language/ind-util.el:
+       * language/lao-util.el, language/thai.el, language/tibet-util.el:
+       * language/tibetan.el, language/viet-util.el:
+       Switch from iso-2022-7bit to utf-8 or (if needed) utf-8-emacs.
+
+2013-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * electric.el (electric-pair-inhibit-predicate): New var (bug#14000).
+       (electric-pair-post-self-insert-function): Use it.
+       (electric-pair-default-inhibit): New function, extracted from
+       electric-pair-post-self-insert-function.
+
+2013-03-31  Roland Winkler  <winkler@gnu.org>
+
+       * emacs-lisp/crm.el (completing-read-multiple): Doc fix.
+
+2013-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * hi-lock.el (hi-lock-mode): Cleanup after revert-buffer (bug#13891).
+
+2013-03-30  Fabián Ezequiel Gallina  <fabian@anue.biz>
+
+       Un-indent after "pass" and "return" statements (Bug#13888)
+       * progmodes/python.el (python-indent-block-enders): New var.
+       (python-indent-calculate-indentation): Use it.
+
+2013-03-30  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el (tramp-drop-volume-letter): Make it an ordinary
+       defun.  Defining it as defalias could introduce too eager
+       byte-compiler optimization.  (Bug#14030)
+
+2013-03-30  Chong Yidong  <cyd@gnu.org>
+
+       * iswitchb.el (iswitchb-read-buffer): Fix typo.
+
+2013-03-30  Leo Liu  <sdl.web@gmail.com>
+
+       * kmacro.el (kmacro-call-macro): Add optional arg MACRO.
+       (kmacro-execute-from-register): Pass the keyboard macro to
+       kmacro-call-macro or repeating won't work correctly.
+
+2013-03-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * progmodes/subword.el: Back to using `forward-symbol'.
+
+       * subr.el (forward-whitespace, forward-symbol)
+       (forward-same-syntax): Move from thingatpt.el.
+
+2013-03-29  Leo Liu  <sdl.web@gmail.com>
+
+       * kmacro.el (kmacro-to-register): New command.
+       (kmacro-execute-from-register): New function.
+       (kmacro-keymap): Bind to 'x'.  (Bug#14071)
+
+2013-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * mpc.el: Use defvar-local and setq-local.
+       (mpc--proc-connect): Connection failures are not bugs.
+       (mpc-mode-map): `follow-link' only applies to the buffer's content.
+       (mpc-volume-map): Bind to the up-events.
+
+2013-03-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * progmodes/subword.el (superword-mode): Use `forward-sexp'
+       instead of `forward-symbol'.
+
+2013-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/edebug.el (edebug-mode): Make it a minor mode.
+       (edebug--recursive-edit): Use it.
+       (edebug-kill-buffer): Don't let-bind kill-buffer-hook.
+       (edebug-temp-display-freq-count): Don't let-bind buffer-read-only.
+
+2013-03-28  Leo Liu  <sdl.web@gmail.com>
+
+       * vc/vc-bzr.el (vc-bzr-revert): Don't backup.  (Bug#14066)
+
 2013-03-27  Eli Zaretskii  <eliz@gnu.org>
 
        * facemenu.el (list-colors-callback): New defvar.
        over symbol_words (parallels and leverages `subword-mode' which
        does word motion inside MixedCaseWords).
 
+2013-03-27  Aidan Gauland  <aidalgol@no8wireless.co.nz>
+
+       * eshell/em-unix.el: Move su and sudo to...
+       * eshell/em-tramp.el: ...Eshell tramp module
+
 2013-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * desktop.el (desktop--v2s): Rename from desktop-internal-v2s.
 
        * thingatpt.el (end-of-sexp): Fix bug#13952.  Use syntax-after.
 
-2013-03-16  Glenn Morris  <rgm@gnu.org>
-
-       * Version 24.3 released.
-
 2013-03-16  Eli Zaretskii  <eliz@gnu.org>
 
        * startup.el (command-line-normalize-file-name): Fix handling of
        (eieio-browse-tree, eieio-browse): Use eieio--check-type.
 
 
+2013-02-18  Aidan Gauland  <aidalgol@no8wireless.co.nz>
+
+       * eshell/em-cmpl.el: Correct "context-related help" keybinding in
+       commentary.
+
 2013-02-18  Michael Heerdegen  <michael_heerdegen@web.de>
 
        * emacs-lisp/eldoc.el (eldoc-highlight-function-argument):
 
        * term/ns-win.el (ns-read-file-name): Update declaration to match
        nsfns.m.
-       (ns-respond-to-change-font): Change fontsize separatly so we are sure
+       (ns-respond-to-change-font): Change fontsize separately so we are sure
        it is set when font is acted upon.
 
 2012-10-07  Fabián Ezequiel Gallina  <fgallina@cuca>
index 641ab617043a1b5018f4fe27242b7db6ec9646ec..2d331a2819de60328902830da9fcd90a37a33d5b 100644 (file)
        * menu-bar.el (menu-bar-showhide-scroll-bar-menu):
        Quote `window-system'.
 
-       * tmm.el (tmm-get-keymap): Honour :visible in `menu-item'.
+       * tmm.el (tmm-get-keymap): Honor :visible in `menu-item'.
        Add Keywords header.  Update Commentary section.
        Update copyright notice.
 
index a2d70c37762b48a3d25de3a2f865f0856adf1bf3..02a99ce98e71ef63887b27ec2214c4604553e027 100644 (file)
@@ -367,8 +367,9 @@ without being changed in the part that is already in the buffer."
          (delq (current-buffer) auto-revert-buffer-list)))
   (auto-revert-set-timer)
   (when auto-revert-mode
-    (auto-revert-buffers)
-    (setq auto-revert-tail-mode nil)))
+    (let (auto-revert-use-notify)
+      (auto-revert-buffers)
+      (setq auto-revert-tail-mode nil))))
 
 
 ;;;###autoload
@@ -422,7 +423,8 @@ Use `auto-revert-mode' for changes other than appends!"
            (y-or-n-p "File changed on disk, content may be missing.  \
 Perform a full revert? ")
            ;; Use this (not just revert-buffer) for point-preservation.
-           (auto-revert-handler))
+          (let (auto-revert-use-notify)
+            (auto-revert-handler)))
       ;; else we might reappend our own end when we save
       (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t)
       (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position
@@ -467,7 +469,8 @@ specifies in the mode line."
   :global t :group 'auto-revert :lighter global-auto-revert-mode-text
   (auto-revert-set-timer)
   (if global-auto-revert-mode
-      (auto-revert-buffers)
+      (let (auto-revert-use-notify)
+       (auto-revert-buffers))
     (dolist (buf (buffer-list))
       (with-current-buffer buf
        (when auto-revert-use-notify
index 47e137996256f131b7083651f43b11af1b215984..c1d8a4a0a5ebc36dc8228df9e4f5ce15013a3fd2 100644 (file)
@@ -1582,8 +1582,8 @@ deletion, or > if it is flagged for displaying."
     (if bookmark-bmenu-use-header-line
        (bookmark-bmenu-set-header)
       (forward-line bookmark-bmenu-inline-header-height))
-    (if bookmark-bmenu-toggle-filenames
-        (bookmark-bmenu-toggle-filenames t))))
+    (when (and bookmark-alist bookmark-bmenu-toggle-filenames)
+      (bookmark-bmenu-toggle-filenames t))))
 
 ;;;###autoload
 (defalias 'list-bookmarks 'bookmark-bmenu-list)
@@ -1998,7 +1998,8 @@ To carry out the deletions that you've marked, use \\<bookmark-bmenu-mode-map>\\
                        (progn (end-of-line) (point))))))
         (o-col     (current-column)))
     (goto-char (point-min))
-    (forward-line 1)
+    (unless bookmark-bmenu-use-header-line
+      (forward-line 1))
     (while (re-search-forward "^D" (point-max) t)
       (bookmark-delete (bookmark-bmenu-bookmark) t)) ; pass BATCH arg
     (bookmark-bmenu-list)
@@ -2186,8 +2187,7 @@ strings returned are not."
   "Save bookmark state, if necessary, at Emacs exit time.
 This also runs `bookmark-exit-hook'."
   (run-hooks 'bookmark-exit-hook)
-  (and bookmark-alist
-       (bookmark-time-to-save-p t)
+  (and (bookmark-time-to-save-p t)
        (bookmark-save)))
 
 (unless noninteractive
index 335980af4dd7f79e07c1d9ff3f7a4d3f0e31187b..0d6f0b0e535df30a33fd9e30eb9a60102c6650a7 100644 (file)
@@ -437,7 +437,7 @@ If COMP or STD is non-nil, put that in the units table instead."
                  (list new-units (car default-units))
                  math-default-units-table))))))
 
-(defvar calc-allow-units-as-numbers)
+(defvar calc-allow-units-as-numbers t)
 
 (defun calc-convert-units (&optional old-units new-units)
   (interactive)
@@ -451,7 +451,9 @@ If COMP or STD is non-nil, put that in the units table instead."
          defunits)
      (if (or (not (math-units-in-expr-p expr t))
              (setq unitscancel (and
-                                calc-allow-units-as-numbers
+                                (if (get 'calc-allow-units-as-numbers 'saved-value)
+                                    (car (get 'calc-allow-units-as-numbers 'saved-value))
+                                  calc-allow-units-as-numbers)
                                 (eq (math-get-standard-units expr) 1))))
        (let ((uold (or old-units
                       (progn
index db30d53d537af87157356af0339db204af006743..c35e7650254b2ca015ecfa658b49e545785ce26b 100644 (file)
@@ -426,14 +426,6 @@ when converting units."
   :version "24.3"
   :type 'boolean)
 
-(defcustom calc-allow-units-as-numbers
-  t
-  "If non-nil, allow unit expressions to be treated like numbers 
-when converting units, if the expression can be simplified to be unitless."
-  :group 'calc
-  :version "24.4"
-  :type 'boolean)
-
 (defcustom calc-undo-length
   100
   "The number of undo steps that will be preserved when Calc is quit."
index cf2009ced304ac3d1ee083b562aa26f742511359..47ba16ade7f80fb5f06643074f932e13de26233b 100644 (file)
@@ -347,7 +347,7 @@ exist, it should return nil."
                    :documentation
                    "Compilation command that will be used for this project.
 It could be string or function that will accept proj argument and should return string.
-The string will be passed to 'compuile' function that will be issued in root
+The string will be passed to 'compile' function that will be issued in root
 directory of project."
                    )
    )
@@ -509,7 +509,7 @@ This is for project include paths and spp source files."
              (table (when expfile
                       (semanticdb-file-table-object expfile)))
              )
-        (cond 
+        (cond
          ((not (file-exists-p expfile))
           (message "Cannot find file %s in project." F))
          ((string= expfile (buffer-file-name))
index 53da7b65661635e25499065842c7bb82c8c7fed3..bc7be980998fec4b86763dc214e15ffd6c0ccb37 100644 (file)
@@ -151,7 +151,7 @@ See `semantic-tag-similar-p' for details."
    ;; Added for performance when testing a relatively common case in some uses
    ;; of this code.
    (eq tag1 tag2)
-   ;; More complex similarness test.
+   ;; More complex similarity test.
    (let* ((ignore (append ignorable-attributes semantic-tag-similar-ignorable-attributes))
          (A1 (and (semantic--tag-similar-names-p tag1 tag2 (memq :name ignore))
                   (semantic--tag-similar-types-p tag1 tag2)
index 58b8e10cb717916e6ab1ddd175f5fdad61269641..86997d4aac7259f6e2a7737df3a12fc5d3468979 100644 (file)
@@ -302,6 +302,27 @@ This can be convenient for people who find it easier to hit ) than C-f."
   :version "24.1"
   :type 'boolean)
 
+(defcustom electric-pair-inhibit-predicate
+  #'electric-pair-default-inhibit
+  "Predicate to prevent insertion of a matching pair.
+The function is called with a single char (the opening char just inserted).
+If it returns non-nil, then `electric-pair-mode' will not insert a matching
+closer."
+  :version "24.4"
+  :type '(choice
+          (const :tag "Default" electric-pair-default-inhibit)
+          (const :tag "Always pair" ignore)
+          function))
+
+(defun electric-pair-default-inhibit (char)
+  (or
+   ;; I find it more often preferable not to pair when the
+   ;; same char is next.
+   (eq char (char-after))
+   (eq char (char-before (1- (point))))
+   ;; I also find it often preferable not to pair next to a word.
+   (eq (char-syntax (following-char)) ?w)))
+
 (defun electric-pair-syntax (command-event)
   (and electric-pair-mode
        (let ((x (assq command-event electric-pair-pairs)))
@@ -351,12 +372,7 @@ This can be convenient for people who find it easier to hit ) than C-f."
      ;; Insert matching pair.
      ((not (or (not (memq syntax `(?\( ?\" ?\$)))
                overwrite-mode
-               ;; I find it more often preferable not to pair when the
-               ;; same char is next.
-               (eq last-command-event (char-after))
-               (eq last-command-event (char-before (1- (point))))
-               ;; I also find it often preferable not to pair next to a word.
-               (eq (char-syntax (following-char)) ?w)))
+               (funcall electric-pair-inhibit-predicate last-command-event)))
       (save-excursion (insert closer))))))
 
 (defun electric-pair-will-use-region ()
index e1e1847dd59dc15133e862f46b226e51767b0ecd..b8e327625e7fb6ee86d45314f9f317951945696e 100644 (file)
@@ -263,7 +263,8 @@ Completion is available on a per-element basis.  For example, if the
 contents of the minibuffer are 'alice,bob,eve' and point is between
 'l' and 'i', pressing TAB operates on the element 'alice'.
 
-The return value of this function is a list of the read strings.
+The return value of this function is a list of the read strings
+with empty strings removed.
 
 See the documentation for `completing-read' for details on the arguments:
 PROMPT, TABLE, PREDICATE, REQUIRE-MATCH, INITIAL-INPUT, HIST, DEF, and
@@ -287,7 +288,7 @@ INHERIT-INPUT-METHOD."
                       prompt initial-input map
                       nil hist def inherit-input-method)))
          (and def (string-equal input "") (setq input def))
-          ;; Ignore empty strings in the list of return values.
+          ;; Remove empty strings in the list of read strings.
          (split-string input crm-separator t)))
     (remove-hook 'choose-completion-string-functions
                 'crm--choose-completion-string)))
index 41b02da82fe20b0e1d6128b5c076b9f5807558ce..e91e0408481be8e01e5a7ad03093517dab037f5a 100644 (file)
 ;;; Code:
 
 (require 'macroexp)
-
-;;; Bug reporting
-
-(defalias 'edebug-submit-bug-report 'report-emacs-bug)
+(eval-when-compile (require 'cl-lib))
+(eval-when-compile (require 'pcase))
 
 ;;; Options
 
@@ -2128,11 +2126,6 @@ expressions; a `progn' form will be returned enclosing these forms."
 
 (defvar edebug-active nil)  ;; Non-nil when edebug is active
 
-;;; add minor-mode-alist entry
-(or (assq 'edebug-active minor-mode-alist)
-    (setq minor-mode-alist (cons (list 'edebug-active " *Debugging*")
-                                minor-mode-alist)))
-
 (defvar edebug-stack nil)
 ;; Stack of active functions evaluated via edebug.
 ;; Should be nil at the top level.
@@ -2777,8 +2770,7 @@ MSG is printed after `::::} '."
   ;; Start up a recursive edit inside of edebug.
   ;; The current buffer is the edebug-buffer, which is put into edebug-mode.
   ;; Assume that none of the variables below are buffer-local.
-  (let ((edebug-buffer-read-only buffer-read-only)
-       ;; match-data must be done in the outside buffer
+  (let (;; match-data must be done in the outside buffer
        (edebug-outside-match-data
         (with-current-buffer edebug-outside-buffer ; in case match buffer different
           (match-data)))
@@ -2792,12 +2784,6 @@ MSG is printed after `::::} '."
        ;; during a recursive-edit
        edebug-inside-windows
 
-       (edebug-outside-map (current-local-map))
-
-        (edebug-outside-overriding-local-map overriding-local-map)
-        (edebug-outside-overriding-terminal-local-map
-         overriding-terminal-local-map)
-
         ;; Save the outside value of executing macro.  (here??)
         (edebug-outside-executing-macro executing-kbd-macro)
         (edebug-outside-pre-command-hook
@@ -2867,10 +2853,9 @@ MSG is printed after `::::} '."
                   (not (memq edebug-arg-mode '(after error))))
              (message "Break"))
 
-         (setq buffer-read-only t)
          (setq signal-hook-function nil)
 
-         (edebug-mode)
+         (edebug-mode 1)
          (unwind-protect
              (recursive-edit)          ;  <<<<<<<<<< Recursive edit
 
@@ -2893,10 +2878,7 @@ MSG is printed after `::::} '."
                  (set-buffer edebug-buffer)
                  (if (memq edebug-execution-mode '(go Go-nonstop))
                      (edebug-overlay-arrow))
-                 (setq buffer-read-only edebug-buffer-read-only)
-                 (use-local-map edebug-outside-map)
-                 (remove-hook 'kill-buffer-hook 'edebug-kill-buffer t)
-                 )
+                  (edebug-mode -1))
              ;; gotta have a buffer to let its buffer local variables be set
              (get-buffer-create " bogus edebug buffer"))
            ));; inner let
@@ -3838,7 +3820,9 @@ be installed in `emacs-lisp-mode-map'.")
   (interactive)
   (describe-function 'edebug-mode))
 
-(defun edebug-mode ()
+(defvar edebug--mode-saved-vars nil)
+
+(define-minor-mode edebug-mode
   "Mode for Emacs Lisp buffers while in Edebug.
 
 In addition to all Emacs Lisp commands (except those that modify the
@@ -3872,20 +3856,32 @@ Options:
 `edebug-on-signal'
 `edebug-unwrap-results'
 `edebug-global-break-condition'"
+  :lighter " *Debugging*"
+  :keymap edebug-mode-map
   ;; If the user kills the buffer in which edebug is currently active,
   ;; exit to top level, because the edebug command loop can't usefully
   ;; continue running in such a case.
   ;;
-  ;; Append `edebug-kill-buffer' to the hook to avoid interfering with
-  ;; other entries that are ungarded against deleted buffer.
-  (add-hook 'kill-buffer-hook 'edebug-kill-buffer t t)
-  (use-local-map edebug-mode-map))
+  (if (not edebug-mode)
+      (progn
+        (while edebug--mode-saved-vars
+          (let ((setting (pop edebug--mode-saved-vars)))
+            (if (consp setting)
+                (set (car setting) (cdr setting))
+              (kill-local-variable setting))))
+        (remove-hook 'kill-buffer-hook 'edebug-kill-buffer t))
+    (pcase-dolist (`(,var . ,val) '((buffer-read-only . t)))
+      (push
+       (if (local-variable-p var) (cons var (symbol-value var)) var)
+       edebug--mode-saved-vars)
+      (set (make-local-variable var) val))
+    ;; Append `edebug-kill-buffer' to the hook to avoid interfering with
+    ;; other entries that are unguarded against deleted buffer.
+    (add-hook 'kill-buffer-hook 'edebug-kill-buffer t t)))
 
 (defun edebug-kill-buffer ()
   "Used on `kill-buffer-hook' when Edebug is operating in a buffer of Lisp code."
-  (let (kill-buffer-hook)
-    (kill-buffer (current-buffer)))
-  (top-level))
+  (run-with-timer 0 nil #'top-level))
 
 ;;; edebug eval list mode
 
@@ -4214,7 +4210,7 @@ reinstrument it."
 It is removed when you hit any char."
   ;; This seems not to work with Emacs 18.59. It undoes too far.
   (interactive)
-  (let ((buffer-read-only nil))
+  (let ((inhibit-read-only t))
     (undo-boundary)
     (edebug-display-freq-count)
     (setq unread-command-events (append unread-command-events (read-event)))
index 7df3acccbc98fd6d1cac62763787bf36566e321d..656cb0a6a142795ab897dc401ca009830f76c927 100644 (file)
@@ -464,6 +464,7 @@ FORM-DESCRIPTION-FORM before it has called INNER-FORM."
   "Evaluate FORM.  If it returns nil, abort the current test as failed.
 
 Returns the value of FORM."
+  (declare (debug t))
   (ert--expand-should `(should ,form) form
                       (lambda (inner-form form-description-form _value-var)
                         `(unless ,inner-form
@@ -473,6 +474,7 @@ Returns the value of FORM."
   "Evaluate FORM.  If it returns non-nil, abort the current test as failed.
 
 Returns nil."
+  (declare (debug t))
   (ert--expand-should `(should-not ,form) form
                       (lambda (inner-form form-description-form _value-var)
                         `(unless (not ,inner-form)
@@ -520,6 +522,7 @@ non-nil, the error matches TYPE if it is an element of TYPE.
 If the error matches, returns (ERROR-SYMBOL . DATA) from the
 error.  If not, or if no error was signaled, abort the test as
 failed."
+  (declare (debug t))
   (unless type (setq type ''error))
   (ert--expand-should
    `(should-error ,form ,@keys)
index c15c9e079fe910fbfabb80589f10f6fad2fa176f..605d1cf375c94d92c61ca9bae845e5dbee014c61 100644 (file)
@@ -4,7 +4,7 @@
 
 ;; Author: Tom Tromey <tromey@redhat.com>
 ;; Created: 10 Mar 2007
-;; Version: 1.0
+;; Version: 1.0.1
 ;; Keywords: tools
 
 ;; This file is part of GNU Emacs.
@@ -234,11 +234,28 @@ a package can run arbitrary code."
   :group 'package
   :version "24.1")
 
+(defcustom package-pinned-packages nil
+  "An alist of packages that are pinned to a specific archive
+
+Each element has the form (SYM . ID).
+ SYM is a package, as a symbol.
+ ID is an archive name, as a string. This should correspond to an
+ entry in `package-archives'.
+
+If the archive of name ID does not contain the package SYM, no
+other location will be considered, which will make the
+package unavailable."
+  :type '(alist :key-type (symbol :tag "Package")
+                :value-type (string :tag "Archive name"))
+  :risky t
+  :group 'package
+  :version "24.4")
+
 (defconst package-archive-version 1
   "Version number of the package archive understood by this file.
 Lower version numbers than this will probably be understood as well.")
 
-(defconst package-el-version "1.0"
+(defconst package-el-version "1.0.1"
   "Version of package.el.")
 
 ;; We don't prime the cache since it tends to get out of date.
@@ -792,9 +809,8 @@ but version %s required"
             "Need package `%s-%s', but only %s is available"
             (symbol-name next-pkg) (package-version-join next-version)
             (package-version-join (package-desc-vers (cdr pkg-desc)))))
-         ;; Only add to the transaction if we don't already have it.
-         (unless (memq next-pkg package-list)
-           (push next-pkg package-list))
+          ;; Move to front, so it gets installed early enough (bug#14082).
+          (setq package-list (cons next-pkg (delq next-pkg package-list)))
          (setq package-list
                (package-compute-transaction package-list
                                             (package-desc-reqs
@@ -857,8 +873,13 @@ Also, add the originating archive to the end of the package vector."
          (version (package-desc-vers (cdr package)))
          (entry   (cons name
                        (vconcat (cdr package) (vector archive))))
-         (existing-package (assq name package-archive-contents)))
-    (cond ((not existing-package)
+         (existing-package (assq name package-archive-contents))
+         (pinned-to-archive (assoc name package-pinned-packages)))
+    (cond ((and pinned-to-archive
+                ;; If pinned to another archive, skip entirely.
+                (not (equal (cdr pinned-to-archive) archive)))
+           nil)
+          ((not existing-package)
           (add-to-list 'package-archive-contents entry))
          ((version-list-< (package-desc-vers (cdr existing-package))
                           version)
index 8b019d0a7855c042c895f4eecd7e9c51d050e2e4..8b1dca8cb784d107866ef7da4a8f15b8d86f474f 100644 (file)
@@ -314,8 +314,12 @@ This function is called, by name, directly by the C code."
               (save-current-buffer
                 (apply (timer--function timer) (timer--args timer)))
            (error (message "Error in timer: %S" err)))
-         (if retrigger
-             (setf (timer--triggered timer) nil)))
+         (when (and retrigger
+                     ;; If the timer's been canceled, don't "retrigger" it
+                     ;; since it might still be in the copy of timer-list kept
+                     ;; by keyboard.c:timer_check (bug#14156).
+                     (memq timer timer-list))
+            (setf (timer--triggered timer) nil)))
       (error "Bogus timer event"))))
 
 ;; This function is incompatible with the one in levents.el.
index 60410733514f9c0f5b18c28bdbbd1a2748187bf1..400b475429fd9e0155b72ec8ed98bf04a72b3583 100644 (file)
@@ -935,80 +935,79 @@ a colon.
 
 The optional argument DEFAULT specifies the default face name(s)
 to return if the user just types RET.  If its value is non-nil,
-it should be a list of face names (symbols); in that case, the
-default return value is the `car' of DEFAULT (if the argument
+it should be a list of face names (symbols or strings); in that case,
+the default return value is the `car' of DEFAULT (if the argument
 MULTIPLE is non-nil), or DEFAULT (if MULTIPLE is nil).  See below
 for the meaning of MULTIPLE.
 
 If DEFAULT is nil, the list of default face names is taken from
-the `read-face-name' property of the text at point, or, if that
-is nil, from the `face' property of the text at point.
+the symbol at point and the `read-face-name' property of the text at point,
+or, if that is nil, from the `face' property of the text at point.
 
-This function uses `completing-read-multiple' with \",\" as the
-separator character.  Thus, the user may enter multiple face
+This function uses `completing-read-multiple' with \"[ \\t]*,[ \\t]*\"
+as the separator regexp.  Thus, the user may enter multiple face
 names, separated by commas.  The optional argument MULTIPLE
 specifies the form of the return value.  If MULTIPLE is non-nil,
 return a list of face names; if the user entered just one face
 name, the return value would be a list of one face name.
 Otherwise, return a single face name; if the user entered more
 than one face name, return only the first one."
-  (let ((faceprop (or (get-char-property (point) 'read-face-name)
-                     (get-char-property (point) 'face)))
-        (aliasfaces nil)
-        (nonaliasfaces nil)
-       faces)
-    ;; Try to get a face name from the buffer.
-    (if (memq (intern-soft (thing-at-point 'symbol)) (face-list))
-       (setq faces (list (intern-soft (thing-at-point 'symbol)))))
-    ;; Add the named faces that the `face' property uses.
-    (if (and (listp faceprop)
-            ;; Don't treat an attribute spec as a list of faces.
-            (not (keywordp (car faceprop)))
-            (not (memq (car faceprop) '(foreground-color background-color))))
-       (dolist (f faceprop)
-         (if (symbolp f)
-             (push f faces)))
-      (if (symbolp faceprop)
-         (push faceprop faces)))
-    (delete-dups faces)
-
-    ;; Build up the completion tables.
+  ;; Should we better not generate automagically a value for DEFAULT
+  ;; when `read-face-name' was called with DEFAULT being nil?
+  ;; Such magic is somewhat unusual for a function  `read-...'.
+  ;; Also, one cannot skip this magic by means of a suitable
+  ;; value of DEFAULT.  It would be cleaner to use
+  ;; (read-face-name prompt (face-at-point)).
+  (unless default
+    ;; Try to get a default face name from the buffer.
+    (let ((thing (intern-soft (thing-at-point 'symbol))))
+      (if (memq thing (face-list))
+          (setq default (list thing))))
+    ;; Add the named faces that the `read-face-name' or `face' property uses.
+    (let ((faceprop (or (get-char-property (point) 'read-face-name)
+                        (get-char-property (point) 'face))))
+      (if (and (listp faceprop)
+               ;; Don't treat an attribute spec as a list of faces.
+               (not (keywordp (car faceprop)))
+               (not (memq (car faceprop) '(foreground-color background-color))))
+          (dolist (face faceprop)
+            (if (symbolp face)
+                (push face default)))
+        (if (symbolp faceprop)
+            (push faceprop default)))
+      (delete-dups default)))
+
+  ;; If we only want one, and the default is more than one,
+  ;; discard the unwanted ones now.
+  (if (and default (not multiple))
+      (setq default (list (car default))))
+
+  (if default
+      (setq default (mapconcat (lambda (f)
+                                 (if (symbolp f) (symbol-name f) f))
+                               default ", ")))
+
+  ;; Build up the completion tables.
+  (let (aliasfaces nonaliasfaces)
     (mapatoms (lambda (s)
                 (if (custom-facep s)
                     (if (get s 'face-alias)
                         (push (symbol-name s) aliasfaces)
                       (push (symbol-name s) nonaliasfaces)))))
 
-    ;; If we only want one, and the default is more than one,
-    ;; discard the unwanted ones now.
-    (unless multiple
-      (if faces
-         (setq faces (list (car faces)))))
-    (require 'crm)
-    (let* ((input
-           ;; Read the input.
-           (completing-read-multiple
-            (if (or faces default)
-                (format "%s (default `%s'): " prompt
-                        (if faces (mapconcat 'symbol-name faces ",")
-                          default))
-              (format "%s: " prompt))
-            (completion-table-in-turn nonaliasfaces aliasfaces)
-            nil t nil 'face-name-history
-            (if faces (mapconcat 'symbol-name faces ","))))
-          ;; Canonicalize the output.
-          (output
-           (cond ((or (equal input "") (equal input '("")))
-                  (or faces (unless (stringp default) default)))
-                 ((stringp input)
-                  (mapcar 'intern (split-string input ", *" t)))
-                 ((listp input)
-                  (mapcar 'intern input))
-                 (input))))
+    (let ((faces
+           ;; Read the faces.
+           (mapcar 'intern
+                   (completing-read-multiple
+                    (if default
+                        (format "%s (default `%s'): " prompt default)
+                      (format "%s: " prompt))
+                    (completion-table-in-turn nonaliasfaces aliasfaces)
+                    nil t nil 'face-name-history default))))
       ;; Return either a list of faces or just one face.
       (if multiple
-         output
-       (car output)))))
+         faces
+       (car faces)))))
 
 ;; Not defined without X, but behind window-system test.
 (defvar x-bitmap-file-path)
@@ -1363,7 +1362,10 @@ and FRAME defaults to the selected frame.
 If the optional argument FRAME is given, report on face FACE in that frame.
 If FRAME is t, report on the defaults for face FACE (for new frames).
 If FRAME is omitted or nil, use the selected frame."
-  (interactive (list (read-face-name "Describe face" 'default t)))
+  (interactive (list (read-face-name "Describe face"
+                                     (if (eq 'default (face-at-point))
+                                         '(default))
+                                     t)))
   (let* ((attrs '((:family . "Family")
                  (:foundry . "Foundry")
                  (:width . "Width")
index 06958622d14da8628b0e63381dd00463834570de..d098f0fcec7fd50aa96db669a64a52a0547504fe 100644 (file)
@@ -4180,23 +4180,31 @@ ignored."
   "Default `backup-enable-predicate' function.
 Checks for files in `temporary-file-directory',
 `small-temporary-file-directory', and /tmp."
-  (not (or (let ((comp (compare-strings temporary-file-directory 0 nil
-                                       name 0 nil)))
-            ;; Directory is under temporary-file-directory.
-            (and (not (eq comp t))
-                 (< comp (- (length temporary-file-directory)))))
-          (let ((comp (compare-strings "/tmp" 0 nil
-                                       name 0 nil)))
-            ;; Directory is under /tmp.
-            (and (not (eq comp t))
-                 (< comp (- (length "/tmp")))))
-          (if small-temporary-file-directory
-              (let ((comp (compare-strings small-temporary-file-directory
-                                           0 nil
-                                           name 0 nil)))
-                ;; Directory is under small-temporary-file-directory.
-                (and (not (eq comp t))
-                     (< comp (- (length small-temporary-file-directory)))))))))
+  (let ((temporary-file-directory temporary-file-directory)
+       caseless)
+    ;; On MS-Windows, file-truename will convert short 8+3 alises to
+    ;; their long file-name equivalents, so compare-strings does TRT.
+    (if (memq system-type '(ms-dos windows-nt))
+       (setq temporary-file-directory (file-truename temporary-file-directory)
+             name (file-truename name)
+             caseless t))
+    (not (or (let ((comp (compare-strings temporary-file-directory 0 nil
+                                         name 0 nil caseless)))
+              ;; Directory is under temporary-file-directory.
+              (and (not (eq comp t))
+                   (< comp (- (length temporary-file-directory)))))
+            (let ((comp (compare-strings "/tmp" 0 nil
+                                         name 0 nil)))
+              ;; Directory is under /tmp.
+              (and (not (eq comp t))
+                   (< comp (- (length "/tmp")))))
+            (if small-temporary-file-directory
+                (let ((comp (compare-strings small-temporary-file-directory
+                                             0 nil
+                                             name 0 nil caseless)))
+                  ;; Directory is under small-temporary-file-directory.
+                  (and (not (eq comp t))
+                       (< comp (- (length small-temporary-file-directory))))))))))
 
 (defun make-backup-file-name (file)
   "Create the non-numeric backup file name for FILE.
index 4bf885b27b26957049ed3cd00391e5be240c8b04..454b229d59e636547bf8883ebc8a257ae6d659ba 100644 (file)
@@ -655,9 +655,8 @@ the new frame according to its own rules."
       (error "Don't know how to create a frame on window system %s" w))
 
     (unless (get w 'window-system-initialized)
-      (unless x-display-name
-        (setq x-display-name display))
-      (funcall (cdr (assq w window-system-initialization-alist)))
+      (funcall (cdr (assq w window-system-initialization-alist)) display)
+      (setq x-display-name display)
       (put w 'window-system-initialized t))
 
     ;; Add parameters from `window-system-default-frame-alist'.
index cbfb0109aecd0f456f80414cb8d825f3811a4bd4..ca78e7c99b440ed1ec9c6a34b5b4b232cf9be460 100644 (file)
@@ -1,3 +1,50 @@
+2013-04-04  Andrew Cohen  <cohen@bu.edu>
+
+       * nnir.el (gnus-nnir-group-p): New function.
+       (nnir-possibly-change-group): Use it.
+
+       * gnus-msg.el (gnus-setup-message): Use it.
+
+2013-04-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * mml.el (mml-minibuffer-read-description): Use `default' insted of
+       `initial-input' for the argument name.
+       Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
+
+2013-04-03  Kevin Layer  <layer@known.net>  (tiny change)
+
+       * mml.el (mml-minibuffer-read-description): Allow passing in a prefix
+       (used by MH-E).
+
+2013-04-01  Andrew Cohen  <cohen@bu.edu>
+
+       * nnir.el (nnir-request-update-mark): Improve mark updating in original
+       group.
+
+       * gnus-msg.el (nnir-article-number, nnir-article-group): Autoload to
+       fix compilation.
+
+2013-03-31  Andrew Cohen  <cohen@bu.edu>
+
+       * nnir.el (nnir-method-default-engines): And another typo.
+
+2013-03-30  Andrew Cohen  <cohen@bu.edu>
+
+       * nnir.el (nnir-method-default-engines): Fix typo.
+
+2013-03-29  Andrew Cohen  <cohen@bu.edu>
+
+       * nnir.el: Define 'number-sequence for xemacs.
+       (gnus-summary-create-nnir-group): New function to create an nnir group
+       from an nnir summary buffer based on the current query.
+       (nnir-request-create-group): Update to allow nnir group creation based
+       on the current query.
+
+2013-03-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nndraft.el (nndraft-request-expire-articles):
+       Make expiry target always `delete'.
+
 2013-03-27  Andrew Cohen  <cohen@bu.edu>
 
        * gnus-msg.el (gnus-setup-message): When replying from an nnir summary
 2013-01-30  Christopher Schmidt  <christopher@ch.ristopher.com>
 
        * gnus-int.el (gnus-backend-trace-elapsed): New variable.
-       (gnus-backend-trace): Honour gnus-backend-trace.
+       (gnus-backend-trace): Honor gnus-backend-trace.
 
        * mml.el (mml-insert-part): Insert closing tag.
 
index 067465b0e6f553c78a8ea7a36c092c128137bd3a..36135556c738c37fdfeab4d167182bc2af8e0460 100644 (file)
@@ -415,6 +415,11 @@ Thank you for your help in stamping out bugs.
      (gnus-inews-make-draft-meta-information
       ,(gnus-group-decoded-name gnus-newsgroup-name) ',articles)))
 
+(autoload 'nnir-article-number "nnir" nil nil 'macro)
+(autoload 'nnir-article-group "nnir" nil nil 'macro)
+(autoload 'gnus-nnir-group-p "nnir")
+
+
 (defvar gnus-article-reply nil)
 (defmacro gnus-setup-message (config &rest forms)
   (let ((winconf (make-symbol "gnus-setup-message-winconf"))
@@ -426,17 +431,15 @@ Thank you for your help in stamping out bugs.
     `(let ((,winconf (current-window-configuration))
           (,winconf-name gnus-current-window-configuration)
           (,buffer (buffer-name (current-buffer)))
-          (,article (or  (when (and
-                                (string-match "^nnir:" gnus-newsgroup-name)
-                                gnus-article-reply)
-                           (nnir-article-number gnus-article-reply))
-                          gnus-article-reply))
-          (,yanked gnus-article-yanked-articles)
-          (,group (or (when (and
-                             (string-match "^nnir:" gnus-newsgroup-name)
+          (,article (if (and (gnus-nnir-group-p gnus-newsgroup-name)
                              gnus-article-reply)
-                        (nnir-article-group gnus-article-reply))
-                      gnus-newsgroup-name))
+                        (nnir-article-number gnus-article-reply)
+                      gnus-article-reply))
+          (,yanked gnus-article-yanked-articles)
+          (,group (if (and (gnus-nnir-group-p gnus-newsgroup-name)
+                           gnus-article-reply)
+                      (nnir-article-group gnus-article-reply)
+                    gnus-newsgroup-name))
           (message-header-setup-hook
            (copy-sequence message-header-setup-hook))
           (mbl mml-buffer-list)
index 3c9344a62c3412ae90644400c451c73293cae525..91f0e325182d2aaa4a5a3dfc57eb41fb058ba3fe 100644 (file)
@@ -1212,8 +1212,8 @@ If not set, `default-directory' will be used."
        string
       default)))
 
-(defun mml-minibuffer-read-description ()
-  (let ((description (read-string "One line description: ")))
+(defun mml-minibuffer-read-description (&optional default)
+  (let ((description (read-string "One line description: " default)))
     (when (string-match "\\`[ \t]*\\'" description)
       (setq description nil))
     description))
index b19b56ae6ea7cd7ce93fd2da379fb1e833af431b..c9625f4c44753594bd6448580e9b8f7a22c86857 100644 (file)
@@ -255,11 +255,16 @@ are generated if and only if they are also in `message-draft-headers'.")
 (deffoo nndraft-request-expire-articles (articles group &optional server force)
   (nndraft-possibly-change-group group)
   (let* ((nnmh-allow-delete-final t)
-        (nnmail-expiry-target
-         (or (gnus-group-find-parameter
-              (gnus-group-prefixed-name group (list 'nndraft server))
-              'expiry-target t)
-             nnmail-expiry-target))
+        (nnmail-expiry-target 'delete)
+        ;; FIXME: If we want to move a draft message to an expiry group,
+        ;; there are things to have to improve:
+        ;; - Remove a header separator.
+        ;; - Encode it, including attachments, into a MIME message.
+        ;;(nnmail-expiry-target
+        ;; (or (gnus-group-find-parameter
+        ;;      (gnus-group-prefixed-name group (list 'nndraft server))
+        ;;      'expiry-target t)
+        ;;     nnmail-expiry-target))
         (res (nnoo-parent-function 'nndraft
                                    'nnmh-request-expire-articles
                                    (list articles group server force)))
index a48c6043e82de6f92f740f3a53509e579e02f1cd..b96f0c1cb789a9621cc31002688943aa35c149f3 100644 (file)
 
 ;; For Emacs <22.2 and XEmacs.
 (eval-and-compile
-  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))))
+  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
+  (unless (fboundp 'number-sequence)
+    (defun number-sequence (from to)
+      (let (seq (n 0) (next from))
+       (while (<= next to)
+         (setq seq (cons next seq)
+               n (1+ n)
+               next (+ from  n )))
+       (nreverse seq)))))
 
 (require 'nnoo)
 (require 'gnus-group)
@@ -576,11 +584,11 @@ needs the variables `nnir-namazu-program',
 
 Add an entry here when adding a new search engine.")
 
-(defcustom nnir-method-default-engines  '((nnimap . imap) (nttp . gmane))
+(defcustom nnir-method-default-engines  '((nnimap . imap) (nntp . gmane))
   "*Alist of default search engines keyed by server method."
   :version "24.1"
   :group 'nnir
-  :type `(repeat (cons (choice (const nnimap) (const nttp) (const nnspool)
+  :type `(repeat (cons (choice (const nnimap) (const nntp) (const nnspool)
                               (const nneething) (const nndir) (const nnmbox)
                               (const nnml) (const nnmh) (const nndraft)
                               (const nnfolder) (const nnmaildir))
@@ -833,6 +841,11 @@ skips all prompting."
     (gnus-summary-read-group-1 backend-article-group t t  nil
                                nil (list backend-article-number))))
 
+(deffoo nnir-request-update-mark (group article mark)
+  (let ((artgroup (nnir-article-group article))
+       (artnumber (nnir-article-number article)))
+    (gnus-request-update-mark artgroup artnumber mark)))
+
 
 (deffoo nnir-request-update-info (group info &optional server)
   (let ((articles-by-group
@@ -1694,6 +1707,12 @@ actually)."
 
 ;;; Util Code:
 
+(defun gnus-nnir-group-p (group)
+  "Say whether GROUP is nnir or not."
+  (if (gnus-group-prefixed-p group)
+      (eq 'nnir (car (gnus-find-method-for-group group)))
+    (and group (string-match "^nnir" group))))
+
 (defun nnir-read-parms (nnir-search-engine)
   "Reads additional search parameters according to `nnir-engines'."
   (let ((parmspec (caddr (assoc nnir-search-engine nnir-engines))))
@@ -1741,7 +1760,7 @@ environment unless `not-global' is non-nil."
 
 (defun nnir-possibly-change-group (group &optional server)
   (or (not server) (nnir-server-opened server) (nnir-open-server server))
-  (when (and group (string-match "\\`nnir" group))
+  (when (gnus-nnir-group-p group)
     (setq nnir-artlist (gnus-group-get-parameter
                        (gnus-group-prefixed-name
                         (gnus-group-short-name group) '(nnir "nnir"))
@@ -1840,24 +1859,38 @@ article came from is also searched."
       (add-hook 'gnus-summary-article-expire-hook 'nnir-registry-action t t))))
 
 
+(defun gnus-summary-create-nnir-group ()
+  (interactive)
+  (let ((name (gnus-read-group "Group name: "))
+       (method "nnir")
+       (pgroup (if (gnus-group-prefixed-p gnus-newsgroup-name)
+                   gnus-newsgroup-name
+                 (gnus-group-prefixed-name
+                  gnus-newsgroup-name '(nnir "nnir")))))
+    (with-current-buffer gnus-group-buffer
+      (gnus-group-make-group
+       name method nil
+       (gnus-group-find-parameter pgroup)))))
+
 
 (deffoo nnir-request-create-group (group &optional server args)
   (message "Creating nnir group %s" group)
-  (let ((group (gnus-group-prefixed-name  group '(nnir "nnir")))
-       (query-spec
-         (list (cons 'query
-                     (read-string "Query: " nil 'nnir-search-history))))
-        (group-spec (list (list (read-string "Server: " nil nil)))))
-    (gnus-group-set-parameter
-     group 'nnir-specs
-     (list (cons 'nnir-query-spec query-spec)
-          (cons 'nnir-group-spec group-spec)))
+  (let* ((group (gnus-group-prefixed-name  group '(nnir "nnir")))
+         (specs (assoc 'nnir-specs args))
+         (query-spec
+          (or (cdr (assoc 'nnir-query-spec specs))
+              (list (cons 'query
+                          (read-string "Query: " nil 'nnir-search-history)))))
+         (group-spec
+          (or (cdr (assoc 'nnir-group-spec specs))
+              (list (list (read-string "Server: " nil nil)))))
+         (nnir-specs (list (cons 'nnir-query-spec query-spec)
+                           (cons 'nnir-group-spec group-spec))))
+    (gnus-group-set-parameter group 'nnir-specs nnir-specs)
     (gnus-group-set-parameter
      group 'nnir-artlist
-     (setq nnir-artlist
-          (nnir-run-query
-           (list (cons 'nnir-query-spec query-spec)
-                 (cons 'nnir-group-spec group-spec)))))
+     (or (cdr (assoc 'nnir-artlist args))
+         (nnir-run-query nnir-specs)))
     (nnir-request-update-info group (gnus-get-info group)))
   t)
 
index 38e5e8acb15a61b9ecd6b6dd8d271ce244d4cc6f..e2dc4eac67b4e6a1398bf71427c51a52b7df2042 100644 (file)
@@ -389,7 +389,9 @@ versions before 22 use the following in your init file:
        (define-key-after menu-bar-edit-menu [hi-lock]
          (cons "Regexp Highlighting" hi-lock-menu))
        (hi-lock-find-patterns)
-       (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook nil t))
+        (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook nil t)
+        ;; Remove regexps from font-lock-keywords (bug#13891).
+       (add-hook 'change-major-mode-hook (lambda () (hi-lock-mode -1)) nil t))
     ;; Turned off.
     (when (or hi-lock-interactive-patterns
              hi-lock-file-patterns)
index 7ace1811daaabe7b6a60b146f122e9a6a89865cc..bedf00e638db528d3e978dc6648f57fde46bc128 100644 (file)
@@ -765,7 +765,7 @@ Obsolete.  Set 3rd element of `ido-decorations' instead."
 
 (defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]" " [Confirm]")
   "List of strings used by ido to display the alternatives in the minibuffer.
-There are 11 elements in this list:
+There are between 11 and 13 elements in this list:
 1st and 2nd elements are used as brackets around the prospect list,
 3rd element is the separator between prospects (ignored if `ido-separator' is set),
 4th element is the string inserted at the end of a truncated list of prospects,
@@ -775,7 +775,9 @@ can be completed using TAB,
 8th element is displayed if there is a single match (and faces are not used),
 9th element is displayed when the current directory is non-readable,
 10th element is displayed when directory exceeds `ido-max-directory-size',
-11th element is displayed to confirm creating new file or buffer."
+11th element is displayed to confirm creating new file or buffer.
+12th and 13th elements (if present) are used as brackets around the sole
+remaining completion.  If absent, elements 5 and 6 are used instead."
   :type '(repeat string)
   :group 'ido)
 
@@ -4581,10 +4583,12 @@ For details of keybindings, see `ido-find-file'."
                          (string-equal (match-string 0 (ido-name (car comps)))
                                        (ido-name (car comps))))
                        ""
-                     ;; when there is one match, show the matching file name in full
-                     (concat (nth 4 ido-decorations)  ;; [ ... ]
-                             (ido-name (car comps))
-                             (nth 5 ido-decorations)))
+                     ;; When there is only one match, show the matching file
+                     ;; name in full, wrapped in [ ... ].
+                     (concat
+                      (or (nth 11 ido-decorations) (nth 4 ido-decorations))
+                      (ido-name (car comps))
+                      (or (nth 12 ido-decorations) (nth 5 ido-decorations))))
                   (if (not ido-use-faces) (nth 7 ido-decorations))))  ;; [Matched]
          (t                            ;multiple matches
           (let* ((items (if (> ido-max-prospects 0) (1+ ido-max-prospects) 999))
index 2099da004046381c6d421b82d4d362c37a13a147..2eadd8f8eb5507957d91ffa49dbf545a93bc2b6a 100644 (file)
@@ -1,4 +1,4 @@
-;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*-
+;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: utf-8;-*-
 
 ;; Copyright (C) 2000-2013 Free Software Foundation, Inc.
 
@@ -107,18 +107,18 @@ display for all of `latin1-display-sets'. See also
          (mapc
           (lambda (l)
             (apply 'latin1-display-char l))
-          '((?\\e$,1rz\e(B ",") ;; SINGLE LOW-9 QUOTATION MARK
-            (?\\e$,1r~\e(B ",,") ;; DOUBLE LOW-9 QUOTATION MARK
-            (?\\e$,1s&\e(B "...") ;; HORIZONTAL ELLIPSIS
-            (?\\e$,1s0\e(B "o/oo") ;; PER MILLE SIGN
-            (?\\e$,1s9\e(B "<") ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-            (?\\e$,1r|\e(B "``") ;; LEFT DOUBLE QUOTATION MARK
-            (?\\e$,1r}\e(B "''") ;; RIGHT DOUBLE QUOTATION MARK
-            (?\\e$,1rs\e(B "-") ;; EN DASH
-            (?\\e$,1rt\e(B "--") ;; EM DASH
-            (?\\e$,1ub\e(B "TM") ;; TRADE MARK SIGN
-            (?\\e$,1s:\e(B ">") ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-            (?\e$,1s"\e(B  "\e,A7\e(B")
+          '((?\ ",") ;; SINGLE LOW-9 QUOTATION MARK
+            (?\„ ",,")       ;; DOUBLE LOW-9 QUOTATION MARK
+            (?\ "...") ;; HORIZONTAL ELLIPSIS
+            (?\ "o/oo") ;; PER MILLE SIGN
+            (?\ "<") ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+            (?\“ "``")       ;; LEFT DOUBLE QUOTATION MARK
+            (?\” "''")       ;; RIGHT DOUBLE QUOTATION MARK
+            (?\ "-") ;; EN DASH
+            (?\— "--")       ;; EM DASH
+            (?\™ "TM")       ;; TRADE MARK SIGN
+            (?\ ">") ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+            (?•  "·")
             )))
          (setq latin1-display t))
     (mapc #'latin1-display-reset latin1-display-sets)
@@ -217,66 +217,66 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,BF\e(B "'C" "C'")
-        (?\e,BP\e(B "'D" "/D")
-        (?\e,B&\e(B "'S" "S'")
-        (?\e,Bf\e(B "'c" "c'")
-        (?\e,Bp\e(B "'d" "/d")
-        (?\e,BE\e(B "'L" "L'")
-        (?\e,Bq\e(B "'n" "n'")
-        (?\e,BQ\e(B "'N" "N'")
-        (?\e,B`\e(B "'r" "r'")
-        (?\e,B@\e(B "'R" "R'")
-        (?\e,B6\e(B "'s" "s'")
-        (?\e,B<\e(B "'z" "z'")
-        (?\e,B,\e(B "'Z" "Z'")
-        (?\e,B!\e(B "`A" "A;")
-        (?\e,BJ\e(B "`E" "E;")
-        (?\e,B#\e(B "`L" "/L")
-        (?\e,B*\e(B "`S" ",S")
-        (?\e,B^\e(B "`T" ",T")
-        (?\e,B/\e(B "`Z" "Z^.")
-        (?\e,B1\e(B "`a" "a;")
-        (?\e,B3\e(B "`l" "/l")
-        (?\e,Bj\e(B "`e" "e;")
-        (?\e,B:\e(B "`s" ",s")
-        (?\e,B~\e(B "`t" ",t")
-        (?\e,B?\e(B "`z" "z^.")
-        (?\e,B\7f\e(B "`." "'.")
-        (?\e,BC\e(B "~A" "A(")
-        (?\e,BH\e(B "~C" "C<")
-        (?\e,BO\e(B "~D" "D<")
-        (?\e,BL\e(B "~E" "E<")
-        (?\e,Bl\e(B "~e" "e<")
-        (?\e,B%\e(B "~L" "L<")
-        (?\e,BR\e(B "~N" "N<")
-        (?\e,BU\e(B "~O" "O''")
-        (?\e,BX\e(B "~R" "R<")
-        (?\e,B)\e(B "~S" "S<")
-        (?\e,B+\e(B "~T" "T<")
-        (?\e,B[\e(B "~U" "U''")
-        (?\e,B.\e(B "~Z" "Z<")
-        (?\e,Bc\e(B "~a" "a(}")
-        (?\e,Bh\e(B "~c" "c<")
-        (?\e,Bo\e(B "~d" "d<")
-        (?\e,B5\e(B "~l" "l<")
-        (?\e,Br\e(B "~n" "n<")
-        (?\e,Bu\e(B "~o" "o''")
-        (?\e,Bx\e(B "~r" "r<")
-        (?\e,B9\e(B "~s" "s<")
-        (?\e,B;\e(B "~t" "t<")
-        (?\e,B{\e(B "~u" "u''")
-        (?\e,B>\e(B "~z" "z<")
-        (?\e,B7\e(B "~v" "'<")                   ; ?\e,B"\e(B in latin-pre
-        (?\e,B"\e(B "~~" "'(")
-        (?\e,By\e(B "uu" "u^0")
-        (?\e,BY\e(B "UU" "U^0")
-        (?\e,BD\e(B "\"A")
-        (?\e,Bd\e(B "\"a")
-        (?\e,BK\e(B "\"E" "E:")
-        (?\e,Bk\e(B "\"e")
-        (?\e,B=\e(B "''" "'")
-        (?\e,B7\e(B "'<")                        ; Lynx's rendering of caron
+       '((?Ć "'C" "C'")
+        (?Đ "'D" "/D")
+        (?Ś "'S" "S'")
+        (?ć "'c" "c'")
+        (?đ "'d" "/d")
+        (?Ĺ "'L" "L'")
+        (?ń "'n" "n'")
+        (?Ń "'N" "N'")
+        (?ŕ "'r" "r'")
+        (?Ŕ "'R" "R'")
+        (?ś "'s" "s'")
+        (?ź "'z" "z'")
+        (?Ź "'Z" "Z'")
+        (?Ą "`A" "A;")
+        (?Ę "`E" "E;")
+        (?Ł "`L" "/L")
+        (?Ş "`S" ",S")
+        (?Ţ "`T" ",T")
+        (?Ż "`Z" "Z^.")
+        (?ą "`a" "a;")
+        (?ł "`l" "/l")
+        (?ę "`e" "e;")
+        (?ş "`s" ",s")
+        (?ţ "`t" ",t")
+        (?ż "`z" "z^.")
+        (?˙ "`." "'.")
+        (?Ă "~A" "A(")
+        (?Č "~C" "C<")
+        (?Ď "~D" "D<")
+        (?Ě "~E" "E<")
+        (?ě "~e" "e<")
+        (?Ľ "~L" "L<")
+        (?Ň "~N" "N<")
+        (?Ő "~O" "O''")
+        (?Ř "~R" "R<")
+        (?Š "~S" "S<")
+        (?Ť "~T" "T<")
+        (?Ű "~U" "U''")
+        (?Ž "~Z" "Z<")
+        (?ă "~a" "a(}")
+        (?č "~c" "c<")
+        (?ď "~d" "d<")
+        (?ľ "~l" "l<")
+        (?ň "~n" "n<")
+        (?ő "~o" "o''")
+        (?ř "~r" "r<")
+        (?š "~s" "s<")
+        (?ť "~t" "t<")
+        (?ű "~u" "u''")
+        (?ž "~z" "z<")
+        (?ˇ "~v" "'<")                        ; ?˘ in latin-pre
+        (?˘ "~~" "'(")
+        (?ů "uu" "u^0")
+        (?Ů "UU" "U^0")
+        (?Ä "\"A")
+        (?ä "\"a")
+        (?Ë "\"E" "E:")
+        (?ë "\"e")
+        (?˝ "''" "'")
+        (?ˇ "'<")                     ; Lynx's rendering of caron
         )))
 
    ((eq set 'latin-3)
@@ -285,34 +285,34 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,C!\e(B "/H")
-        (?\e,C"\e(B "~`" "'(")
-        (?\e,C&\e(B "^H" "H^")
-        (?\e,C6\e(B "^h" "h^")
-        (?\e,C)\e(B ".I" "I^.")
-        (?\e,C*\e(B ",S")
-        (?\e,C+\e(B "~G" "G(")
-        (?\e,C,\e(B "^J" "J^")
-        (?\e,C/\e(B ".Z" "Z^.")
-        (?\e,C1\e(B "/h")
-        (?\e,C9\e(B ".i" "i^.")
-        (?\e,C:\e(B ",s")
-        (?\e,C;\e(B "~g" "g(")
-        (?\e,C<\e(B "^j" "j^")
-        (?\e,C?\e(B ".Z" "z^.")
-        (?\e,CE\e(B ".c" "C^.")
-        (?\e,CF\e(B "^C" "C^")
-        (?\e,CU\e(B ".G" "G^.")
-        (?\e,CX\e(B "^G" "G^")
-        (?\e,C]\e(B "~U" "U(")
-        (?\e,C^\e(B "^S" "S^")
-        (?\e,Ce\e(B ".C" "c^.")
-        (?\e,Cf\e(B "^c" "c^")
-        (?\e,Cu\e(B ".g" "g^.")
-        (?\e,Cx\e(B "^g" "g^")
-        (?\e,C}\e(B "~u" "u(")
-        (?\e,C~\e(B "^s" "s^")
-        (?\e,C\7f\e(B "/." "^."))))
+       '((?Ħ "/H")
+        (?˘ "~`" "'(")
+        (?Ĥ "^H" "H^")
+        (?ĥ "^h" "h^")
+        (?İ ".I" "I^.")
+        (?Ş ",S")
+        (?Ğ "~G" "G(")
+        (?Ĵ "^J" "J^")
+        (?Ż ".Z" "Z^.")
+        (?ħ "/h")
+        (?ı ".i" "i^.")
+        (?ş ",s")
+        (?ğ "~g" "g(")
+        (?ĵ "^j" "j^")
+        (?ż ".Z" "z^.")
+        (?Ċ ".c" "C^.")
+        (?Ĉ "^C" "C^")
+        (?Ġ ".G" "G^.")
+        (?Ĝ "^G" "G^")
+        (?Ŭ "~U" "U(")
+        (?Ŝ "^S" "S^")
+        (?ċ ".C" "c^.")
+        (?ĉ "^c" "c^")
+        (?ġ ".g" "g^.")
+        (?ĝ "^g" "g^")
+        (?ŭ "~u" "u(")
+        (?ŝ "^s" "s^")
+        (?˙ "/." "^."))))
 
    ((eq set 'latin-4)
     (latin1-display-identities set)
@@ -320,55 +320,55 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,D!\e(B "A," "A;")
-        (?\e,D"\e(B "k/" "kk")
-        (?\e,D#\e(B "R," ",R")
-        (?\e,D%\e(B "I~" "?I")
-        (?\e,D&\e(B "L," ",L")
-        (?\e,D)\e(B "S~" "S<")
-        (?\e,D*\e(B "E-")
-        (?\e,D+\e(B "G," ",G")
-        (?\e,D,\e(B "T/" "/T")
-        (?\e,D.\e(B "Z~" "Z<")
-        (?\e,D1\e(B "a," "a;")
-        (?\e,D2\e(B "';")
-        (?\e,D3\e(B "r," ",r")
-        (?\e,D5\e(B "i~" "~i")
-        (?\e,D6\e(B "l," ",l")
-        (?\e,D7\e(B "'<")
-        (?\e,D9\e(B "s~" "s<")
-        (?\e,D:\e(B "e-")
-        (?\e,D;\e(B "g," ",g")
-        (?\e,D<\e(B "t/" "/t")
-        (?\e,D=\e(B "N/" "NG")
-        (?\e,D>\e(B "z~" "z<")
-        (?\e,D?\e(B "n/" "ng")
-        (?\e,D@\e(B "A-")
-        (?\e,DG\e(B "I," "I;")
-        (?\e,DH\e(B "C~" "C<")
-        (?\e,DJ\e(B "E," "E;")
-        (?\e,DL\e(B "E." "E^.")
-        (?\e,DO\e(B "I-")
-        (?\e,DQ\e(B "N," ",N")
-        (?\e,DR\e(B "O-")
-        (?\e,DS\e(B "K," ",K")
-        (?\e,DY\e(B "U," "U;")
-        (?\e,D]\e(B "U~" "~U")
-        (?\e,D^\e(B "U-")
-        (?\e,D`\e(B "a-")
-        (?\e,Dg\e(B "i," "i;")
-        (?\e,Dh\e(B "c~" "c<")
-        (?\e,Dj\e(B "e," "e;")
-        (?\e,Dl\e(B "e." "e^.")
-        (?\e,Do\e(B "i-")
-        (?\e,Dp\e(B "d/" "/d")
-        (?\e,Dq\e(B "n," ",n")
-        (?\e,Dr\e(B "o-")
-        (?\e,Ds\e(B "k," ",k")
-        (?\e,Dy\e(B "u," "u;")
-        (?\e,D}\e(B "u~" "~u")
-        (?\e,D~\e(B "u-")
-        (?\e,D\7f\e(B "^."))))
+       '((?Ą "A," "A;")
+        (?ĸ "k/" "kk")
+        (?Ŗ "R," ",R")
+        (?Ĩ "I~" "?I")
+        (?Ļ "L," ",L")
+        (?Š "S~" "S<")
+        (?Ē "E-")
+        (?Ģ "G," ",G")
+        (?Ŧ "T/" "/T")
+        (?Ž "Z~" "Z<")
+        (?ą "a," "a;")
+        (?˛ "';")
+        (?ŗ "r," ",r")
+        (?ĩ "i~" "~i")
+        (?ļ "l," ",l")
+        (?ˇ "'<")
+        (?š "s~" "s<")
+        (?ē "e-")
+        (?ģ "g," ",g")
+        (?ŧ "t/" "/t")
+        (?Ŋ "N/" "NG")
+        (?ž "z~" "z<")
+        (?ŋ "n/" "ng")
+        (?Ā "A-")
+        (?Į "I," "I;")
+        (?Č "C~" "C<")
+        (?Ę "E," "E;")
+        (?Ė "E." "E^.")
+        (?Ī "I-")
+        (?Ņ "N," ",N")
+        (?Ō "O-")
+        (?Ķ "K," ",K")
+        (?Ų "U," "U;")
+        (?Ũ "U~" "~U")
+        (?Ū "U-")
+        (?ā "a-")
+        (?į "i," "i;")
+        (?č "c~" "c<")
+        (?ę "e," "e;")
+        (?ė "e." "e^.")
+        (?ī "i-")
+        (?đ "d/" "/d")
+        (?ņ "n," ",n")
+        (?ō "o-")
+        (?ķ "k," ",k")
+        (?ų "u," "u;")
+        (?ũ "u~" "~u")
+        (?ū "u-")
+        (?˙ "^."))))
 
    ((eq set 'latin-5)
     (latin1-display-identities set)
@@ -376,15 +376,15 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
         (apply 'latin1-display-char l)))
-       '((?\e,Mp\e(B "~g" "g(")
-        (?\e,MP\e(B "~G" "G(")
-        (?\e,M]\e(B ".I" "I^.")
-        (?\e,M~\e(B ",s")
-        (?\e,M^\e(B ",S")
-        (?\e,Mj\e(B "^e" "e<")                   ; from latin-post
-        (?\e,Ml\e(B ".e" "e^.")
-        (?\e,Mo\e(B "\"i" "i-")          ; from latin-post
-        (?\e,M}\e(B ".i" "i."))))
+       '((?ğ "~g" "g(")
+        (?Ğ "~G" "G(")
+        (?İ ".I" "I^.")
+        (?ş ",s")
+        (?Ş ",S")
+        (?ê "^e" "e<")                        ; from latin-post
+        (?ì ".e" "e^.")
+        (?ï "\"i" "i-")               ; from latin-post
+        (?ı ".i" "i."))))
 
    ((eq set 'latin-8)
     (latin1-display-identities set)
@@ -392,37 +392,37 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,_!\e(B ".B" "B`")
-        (?\e,_"\e(B ".b" "b`")
-        (?\e,_%\e(B ".c" "c`")
-        (?\e,_$\e(B ".C" "C`")
-        (?\e,_&\e(B ".D" "D`")
-        (?\e,_+\e(B ".d" "d`")
-        (?\e,_8\e(B "`w")
-        (?\e,_(\e(B "`W")
-        (?\e,_:\e(B "'w" "w'")
-        (?\e,_*\e(B "'W" "W'")
-        (?\e,_<\e(B "`y")
-        (?\e,_,\e(B "`Y")
-        (?\e,_1\e(B ".f" "f`")
-        (?\e,_0\e(B ".F" "F`")
-        (?\e,_3\e(B ".g" "g`")
-        (?\e,_2\e(B ".G" "G`")
-        (?\e,_5\e(B ".m" "m`")
-        (?\e,_4\e(B ".M" "M`")
-        (?\e,_9\e(B ".p" "p`")
-        (?\e,_7\e(B ".P" "P`")
-        (?\e,_?\e(B ".s" "s`")
-        (?\e,_;\e(B ".S" "S`")
-        (?\e,_>\e(B "\"w")
-        (?\e,_=\e(B "\"W")
-        (?\e,_p\e(B "^w" "w^")
-        (?\e,_P\e(B "^W" "W^")
-        (?\e,_w\e(B ".t" "t`")
-        (?\e,_W\e(B ".T" "T`")
-        (?\e,_~\e(B "^y" "y^")
-        (?\e,_^\e(B "^Y" "Y^")
-        (?\e,_/\e(B "\"Y"))))
+       '((? ".B" "B`")
+        (? ".b" "b`")
+        (?ċ ".c" "c`")
+        (?Ċ ".C" "C`")
+        (? ".D" "D`")
+        (? ".d" "d`")
+        (? "`w")
+        (? "`W")
+        (? "'w" "w'")
+        (? "'W" "W'")
+        (? "`y")
+        (? "`Y")
+        (? ".f" "f`")
+        (? ".F" "F`")
+        (?ġ ".g" "g`")
+        (?Ġ ".G" "G`")
+        (? ".m" "m`")
+        (? ".M" "M`")
+        (? ".p" "p`")
+        (? ".P" "P`")
+        (? ".s" "s`")
+        (? ".S" "S`")
+        (? "\"w")
+        (? "\"W")
+        (?ŵ "^w" "w^")
+        (?Ŵ "^W" "W^")
+        (? ".t" "t`")
+        (? ".T" "T`")
+        (?ŷ "^y" "y^")
+        (?Ŷ "^Y" "Y^")
+        (?Ÿ "\"Y"))))
 
    ((eq set 'latin-9)
     (latin1-display-identities set)
@@ -430,97 +430,97 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,b(\e(B "~s" "s<")
-        (?\e,b&\e(B "~S" "S<")
-        (?\e,b$\e(B "Euro" "E=")
-        (?\e,b8\e(B "~z" "z<")
-        (?\e,b4\e(B "~Z" "Z<")
-        (?\e,b>\e(B "\"Y")
-        (?\e,b=\e(B "oe")
-        (?\e,b<\e(B "OE"))))
+       '((?š "~s" "s<")
+        (?Š "~S" "S<")
+        (? "Euro" "E=")
+        (?ž "~z" "z<")
+        (?Ž "~Z" "Z<")
+        (?Ÿ "\"Y")
+        (?œ "oe")
+        (?Œ "OE"))))
 
    ((eq set 'greek)
     (mapc
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,F!\e(B "9'")
-        (?\e,F"\e(B "'9")
-        (?\e,F/\e(B "-M")
-        (?\e,F5\e(B "'%")
-        (?\e,F6\e(B "'A")
-        (?\e,F8\e(B "'E")
-        (?\e,F9\e(B "'H")
-        (?\e,F:\e(B "'I")
-        (?\e,F<\e(B "'O")
-        (?\e,F>\e(B "'Y")
-        (?\e,F?\e(B "W%")
-        (?\e,F@\e(B "i3")
-        (?\e,FC\e(B "G*")
-        (?\e,FD\e(B "D*")
-        (?\e,FH\e(B "TH")
-        (?\e,FK\e(B "L*")
-        (?\e,FN\e(B "C*")
-        (?\e,FP\e(B "P*")
-        (?\e,FS\e(B "S*")
-        (?\e,FV\e(B "F*")
-        (?\e,FX\e(B "Q*")
-        (?\e,FY\e(B "W*")
-        (?\e,FZ\e(B "\"I")
-        (?\e,F[\e(B "\"Y")
-        (?\e,F\\e(B "a%")
-        (?\e,F]\e(B "e%")
-        (?\e,F^\e(B "y%")
-        (?\e,F_\e(B "i%")
-        (?\e,F`\e(B "u3")
-        (?\e,Fa\e(B "a*")
-        (?\e,Fb\e(B "b*")
-        (?\e,Fc\e(B "g*")
-        (?\e,Fd\e(B "d*")
-        (?\e,Fe\e(B "e*")
-        (?\e,Ff\e(B "z*")
-        (?\e,Fg\e(B "y*")
-        (?\e,Fh\e(B "h*")
-        (?\e,Fi\e(B "i*")
-        (?\e,Fj\e(B "k")
-        (?\e,Fk\e(B "l*")
-        (?\e,Fl\e(B "m*")
-        (?\e,Fm\e(B "n*")
-        (?\e,Fn\e(B "c*")
-        (?\e,Fp\e(B "p*")
-        (?\e,Fq\e(B "r*")
-        (?\e,Fr\e(B "*s")
-        (?\e,Fs\e(B "s*")
-        (?\e,Ft\e(B "t*")
-        (?\e,Fu\e(B "u")
-        (?\e,Fv\e(B "f*")
-        (?\e,Fw\e(B "x*")
-        (?\e,Fx\e(B "q*")
-        (?\e,Fy\e(B "w*")
-        (?\e,Fz\e(B "\"i")
-        (?\e,F{\e(B "\"u")
-        (?\e,F|\e(B "'o")
-        (?\e,F}\e(B "'u")
-        (?\e,F~\e(B "'w")))
+       '((? "9'")
+        (? "'9")
+        (? "-M")
+        (?΅ "'%")
+        (?Ά "'A")
+        (?Έ "'E")
+        (?Ή "'H")
+        (?Ί "'I")
+        (?Ό "'O")
+        (?Ύ "'Y")
+        (?Ώ "W%")
+        (?ΐ "i3")
+        (?Γ "G*")
+        (?Δ "D*")
+        (?Θ "TH")
+        (?Λ "L*")
+        (?Ξ "C*")
+        (?Π "P*")
+        (?Σ "S*")
+        (?Φ "F*")
+        (?Ψ "Q*")
+        (?Ω "W*")
+        (?Ϊ "\"I")
+        (?Ϋ "\"Y")
+        (?ά "a%")
+        (?έ "e%")
+        (?ή "y%")
+        (?ί "i%")
+        (?ΰ "u3")
+        (?α "a*")
+        (?β "b*")
+        (?γ "g*")
+        (?δ "d*")
+        (?ε "e*")
+        (?ζ "z*")
+        (?η "y*")
+        (?θ "h*")
+        (?ι "i*")
+        (?κ "k")
+        (?λ "l*")
+        (?μ "m*")
+        (?ν "n*")
+        (?ξ "c*")
+        (?π "p*")
+        (?ρ "r*")
+        (?ς "*s")
+        (?σ "s*")
+        (?τ "t*")
+        (?υ "u")
+        (?φ "f*")
+        (?χ "x*")
+        (?ψ "q*")
+        (?ω "w*")
+        (?ϊ "\"i")
+        (?ϋ "\"u")
+        (?ό "'o")
+        (?ύ "'u")
+        (?ώ "'w")))
     (mapc
      (lambda (l)
        (or (char-displayable-p (car l))
           (aset standard-display-table (car l) (string-to-vector (cadr l)))))
-       '((?\e,FA\e(B "A")
-        (?\e,FB\e(B "B")
-        (?\e,FE\e(B "E")
-        (?\e,FF\e(B "Z")
-        (?\e,FG\e(B "H")
-        (?\e,FI\e(B "I")
-        (?\e,FJ\e(B "J")
-        (?\e,FL\e(B "M")
-        (?\e,FM\e(B "N")
-        (?\e,FO\e(B "O")
-        (?\e,FQ\e(B "P")
-        (?\e,FT\e(B "T")
-        (?\e,FU\e(B "Y")
-        (?\e,FW\e(B "X")
-        (?\e,Fo\e(B "o"))))
+       '((?Α "A")
+        (?Β "B")
+        (?Ε "E")
+        (?Ζ "Z")
+        (?Η "H")
+        (?Ι "I")
+        (?Κ "J")
+        (?Μ "M")
+        (?Ν "N")
+        (?Ο "O")
+        (?Ρ "P")
+        (?Τ "T")
+        (?Υ "Y")
+        (?Χ "X")
+        (?ο "o"))))
 
    ((eq set 'hebrew)
     ;; Don't start with identities, since we don't have definitions
@@ -537,96 +537,96 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (aset standard-display-table (car l) (string-to-vector (cadr l)))))
-       '((?\e,H_\e(B "=2")
-        (?\e,H`\e(B "A+")
-        (?\e,Ha\e(B "B+")
-        (?\e,Hb\e(B "G+")
-        (?\e,Hc\e(B "D+")
-        (?\e,Hd\e(B "H+")
-        (?\e,He\e(B "W+")
-        (?\e,Hf\e(B "Z+")
-        (?\e,Hg\e(B "X+")
-        (?\e,Hh\e(B "Tj")
-        (?\e,Hi\e(B "J+")
-        (?\e,Hj\e(B "K%")
-        (?\e,Hk\e(B "K+")
-        (?\e,Hl\e(B "L+")
-        (?\e,Hm\e(B "M%")
-        (?\e,Hn\e(B "M+")
-        (?\e,Ho\e(B "N%")
-        (?\e,Hp\e(B "N+")
-        (?\e,Hq\e(B "S+")
-        (?\e,Hr\e(B "E+")
-        (?\e,Hs\e(B "P%")
-        (?\e,Ht\e(B "P+")
-        (?\e,Hu\e(B "Zj")
-        (?\e,Hv\e(B "ZJ")
-        (?\e,Hw\e(B "Q+")
-        (?\e,Hx\e(B "R+")
-        (?\e,Hy\e(B "Sh")
-        (?\e,Hz\e(B "T+"))))
+       '((? "=2")
+        (?א "A+")
+        (?ב "B+")
+        (?ג "G+")
+        (?ד "D+")
+        (?ה "H+")
+        (?ו "W+")
+        (?ז "Z+")
+        (?ח "X+")
+        (?ט "Tj")
+        (?י "J+")
+        (?ך "K%")
+        (?כ "K+")
+        (?ל "L+")
+        (?ם "M%")
+        (?מ "M+")
+        (?ן "N%")
+        (?נ "N+")
+        (?ס "S+")
+        (?ע "E+")
+        (?ף "P%")
+        (?פ "P+")
+        (?ץ "Zj")
+        (?צ "ZJ")
+        (?ק "Q+")
+        (?ר "R+")
+        (?ש "Sh")
+        (?ת "T+"))))
 
    ;; Arabic probably isn't so useful in the absence of Arabic
    ;; language support...
    ((eq set 'arabic)
     (setq set 'arabic)
-    (or (char-displayable-p ?\e,G \e(B)
-       (aset standard-display-table ?\e,G \e(B "\e,A \e(B"))
-    (or (char-displayable-p ?\e,G$\e(B)
-       (aset standard-display-table ?\e,G$\e(B "\e,A$\e(B"))
-    (or (char-displayable-p ?\e,G-\e(B)
-       (aset standard-display-table ?\e,G-\e(B "\e,A-\e(B"))
+    (or (char-displayable-p ? )
+       (aset standard-display-table ?  " "))
+    (or (char-displayable-p ?¤)
+       (aset standard-display-table ?¤ "¤"))
+    (or (char-displayable-p ?­)
+       (aset standard-display-table ?­ "­"))
     (mapc (lambda (l)
            (or (char-displayable-p (car l))
                (apply  'latin1-display-char l)))
-           '((?\e,G,\e(B ",+")
-             (?\e,G;\e(B ";+")
-             (?\e,G?\e(B "?+")
-             (?\e,GA\e(B "H'")
-             (?\e,GB\e(B "aM")
-             (?\e,GC\e(B "aH")
-             (?\e,GD\e(B "wH")
-             (?\e,GE\e(B "ah")
-             (?\e,GF\e(B "yH")
-             (?\e,GG\e(B "a+")
-             (?\e,GH\e(B "b+")
-             (?\e,GI\e(B "tm")
-             (?\e,GJ\e(B "t+")
-             (?\e,GK\e(B "tk")
-             (?\e,GL\e(B "g+")
-             (?\e,GM\e(B "hk")
-             (?\e,GN\e(B "x+")
-             (?\e,GO\e(B "d+")
-             (?\e,GP\e(B "dk")
-             (?\e,GQ\e(B "r+")
-             (?\e,GR\e(B "z+")
-             (?\e,GS\e(B "s+")
-             (?\e,GT\e(B "sn")
-             (?\e,GU\e(B "c+")
-             (?\e,GV\e(B "dd")
-             (?\e,GW\e(B "tj")
-             (?\e,GX\e(B "zH")
-             (?\e,GY\e(B "e+")
-             (?\e,GZ\e(B "i+")
-             (?\e,G`\e(B "++")
-             (?\e,Ga\e(B "f+")
-             (?\e,Gb\e(B "q+")
-             (?\e,Gc\e(B "k+")
-             (?\e,Gd\e(B "l+")
-             (?\e,Ge\e(B "m+")
-             (?\e,Gf\e(B "n+")
-             (?\e,Gg\e(B "h+")
-             (?\e,Gh\e(B "w+")
-             (?\e,Gi\e(B "j+")
-             (?\e,Gj\e(B "y+")
-             (?\e,Gk\e(B ":+")
-             (?\e,Gl\e(B "\"+")
-             (?\e,Gm\e(B "=+")
-             (?\e,Gn\e(B "/+")
-             (?\e,Go\e(B "'+")
-             (?\e,Gp\e(B "1+")
-             (?\e,Gq\e(B "3+")
-             (?\e,Gr\e(B "0+"))))
+           '((?، ",+")
+             (?؛ ";+")
+             (?؟ "?+")
+             (?ء "H'")
+             (?آ "aM")
+             (?أ "aH")
+             (?ؤ "wH")
+             (?إ "ah")
+             (?ئ "yH")
+             (?ا "a+")
+             (?ب "b+")
+             (?ة "tm")
+             (?ت "t+")
+             (?ث "tk")
+             (?ج "g+")
+             (?ح "hk")
+             (?خ "x+")
+             (?د "d+")
+             (?ذ "dk")
+             (?ر "r+")
+             (?ز "z+")
+             (?س "s+")
+             (?ش "sn")
+             (?ص "c+")
+             (?ض "dd")
+             (?ط "tj")
+             (?ظ "zH")
+             (?ع "e+")
+             (?غ "i+")
+             (?ـ "++")
+             (?ف "f+")
+             (?ق "q+")
+             (?ك "k+")
+             (?ل "l+")
+             (?م "m+")
+             (?ن "n+")
+             (?ه "h+")
+             (?و "w+")
+             (?ى "j+")
+             (?ي "y+")
+             (?ً ":+")
+             (?ٌ "\"+")
+             (?ٍ "=+")
+             (?َ "/+")
+             (?ُ "'+")
+             (?ِ "1+")
+             (?ّ "3+")
+             (?ْ "0+"))))
 
    ((eq set 'cyrillic)
     (setq set 'cyrillic-iso)
@@ -634,105 +634,105 @@ is.  If FORCE is non-nil, set up the display regardless."
      (lambda (l)
        (or (char-displayable-p (car l))
           (apply 'latin1-display-char l)))
-       '((?\e,L"\e(B "Dj")
-        (?\e,L#\e(B "Gj")
-        (?\e,L$\e(B "IE")
-        (?\e,L)\e(B "Lj")
-        (?\e,L*\e(B "Nj")
-        (?\e,L+\e(B "Ts")
-        (?\e,L,\e(B "Kj")
-        (?\e,L.\e(B "V%")
-        (?\e,L/\e(B "Dzh")
-        (?\e,L1\e(B "B=")
-        (?\e,L3\e(B "\e,Ab\e(B")
-        (?\e,L4\e(B "D")
-        (?\e,L6\e(B "Z%")
-        (?\e,L7\e(B "3")
-        (?\e,L8\e(B "U")
-        (?\e,L9\e(B "J=")
-        (?\e,L;\e(B "L=")
-        (?\e,L?\e(B "P=")
-        (?\e,LC\e(B "Y")
-        (?\e,LD\e(B "\e,Ah\e(B")
-        (?\e,LF\e(B "C=")
-        (?\e,LG\e(B "C%")
-        (?\e,LH\e(B "S%")
-        (?\e,LI\e(B "Sc")
-        (?\e,LJ\e(B "=\"")
-        (?\e,LK\e(B "Y=")
-        (?\e,LL\e(B "%\"")
-        (?\e,LM\e(B "Ee")
-        (?\e,LN\e(B "Yu")
-        (?\e,LO\e(B "Ya")
-        (?\e,LQ\e(B "b")
-        (?\e,LR\e(B "v=")
-        (?\e,LS\e(B "g=")
-        (?\e,LT\e(B "g")
-        (?\e,LV\e(B "z%")
-        (?\e,LW\e(B "z=")
-        (?\e,LX\e(B "u")
-        (?\e,LY\e(B "j=")
-        (?\e,LZ\e(B "k")
-        (?\e,L[\e(B "l=")
-        (?\e,L\\e(B "m=")
-        (?\e,L]\e(B "n=")
-        (?\e,L_\e(B "n")
-        (?\e,L`\e(B "p")
-        (?\e,Lb\e(B "t=")
-        (?\e,Ld\e(B "f=")
-        (?\e,Lf\e(B "c=")
-        (?\e,Lg\e(B "c%")
-        (?\e,Lh\e(B "s%")
-        (?\e,Li\e(B "sc")
-        (?\e,Lj\e(B "='")
-        (?\e,Lk\e(B "y=")
-        (?\e,Ll\e(B "%'")
-        (?\e,Lm\e(B "ee")
-        (?\e,Ln\e(B "yu")
-        (?\e,Lo\e(B "ya")
-        (?\e,Lp\e(B "N0")
-        (?\e,Lr\e(B "dj")
-        (?\e,Ls\e(B "gj")
-        (?\e,Lt\e(B "ie")
-        (?\e,Ly\e(B "lj")
-        (?\e,Lz\e(B "nj")
-        (?\e,L{\e(B "ts")
-        (?\e,L|\e(B "kj")
-        (?\e,L~\e(B "v%")
-        (?\e,L\7f\e(B "dzh")))
+       '((?Ђ "Dj")
+        (?Ѓ "Gj")
+        (?Є "IE")
+        (?Љ "Lj")
+        (?Њ "Nj")
+        (?Ћ "Ts")
+        (?Ќ "Kj")
+        (?Ў "V%")
+        (?Џ "Dzh")
+        (?Б "B=")
+        (?Г "â")
+        (?Д "D")
+        (?Ж "Z%")
+        (?З "3")
+        (?И "U")
+        (?Й "J=")
+        (?Л "L=")
+        (?П "P=")
+        (?У "Y")
+        (?Ф "è")
+        (?Ц "C=")
+        (?Ч "C%")
+        (?Ш "S%")
+        (?Щ "Sc")
+        (?Ъ "=\"")
+        (?Ы "Y=")
+        (?Ь "%\"")
+        (?Э "Ee")
+        (?Ю "Yu")
+        (?Я "Ya")
+        (?б "b")
+        (?в "v=")
+        (?г "g=")
+        (?д "g")
+        (?ж "z%")
+        (?з "z=")
+        (?и "u")
+        (?й "j=")
+        (?к "k")
+        (?л "l=")
+        (?м "m=")
+        (?н "n=")
+        (?п "n")
+        (?р "p")
+        (?т "t=")
+        (?ф "f=")
+        (?ц "c=")
+        (?ч "c%")
+        (?ш "s%")
+        (?щ "sc")
+        (?ъ "='")
+        (?ы "y=")
+        (?ь "%'")
+        (?э "ee")
+        (?ю "yu")
+        (?я "ya")
+        (? "N0")
+        (?ђ "dj")
+        (?ѓ "gj")
+        (?є "ie")
+        (?љ "lj")
+        (?њ "nj")
+        (?ћ "ts")
+        (?ќ "kj")
+        (?ў "v%")
+        (?џ "dzh")))
     (mapc
      (lambda (l)
        (or (char-displayable-p (car l))
           (aset standard-display-table (car l) (string-to-vector (cadr l)))))
-       '((?\e,L!\e(B "\e,AK\e(B")
-        (?\e,L%\e(B "S")
-        (?\e,L&\e(B "I")
-        (?\e,L'\e(B "\e,AO\e(B")
-        (?\e,L(\e(B "J")
-        (?\e,Lq\e(B "\e,Ak\e(B")
-        (?\e,L}\e(B "\e,A'\e(B")
-        (?\e,L-\e(B "-")
-        (?\e,L0\e(B "A")
-        (?\e,L2\e(B "B")
-        (?\e,L5\e(B "E")
-        (?\e,L:\e(B "K")
-        (?\e,L<\e(B "M")
-        (?\e,L=\e(B "H")
-        (?\e,L>\e(B "O")
-        (?\e,L@\e(B "P")
-        (?\e,LA\e(B "C")
-        (?\e,LB\e(B "T")
-        (?\e,LE\e(B "X")
-        (?\e,LP\e(B "a")
-        (?\e,LU\e(B "e")
-        (?\e,L^\e(B "o")
-        (?\e,La\e(B "c")
-        (?\e,Lc\e(B "y")
-        (?\e,Le\e(B "x")
-        (?\e,Lu\e(B "s")
-        (?\e,Lv\e(B "i")
-        (?\e,Lw\e(B "\e,Ao\e(B")
-        (?\e,Lx\e(B "j"))))
+       '((?Ё "Ë")
+        (?Ѕ "S")
+        (?І "I")
+        (?Ї "Ï")
+        (?Ј "J")
+        (?ё "ë")
+        (?§ "§")
+        (?­ "-")
+        (?А "A")
+        (?В "B")
+        (?Е "E")
+        (?К "K")
+        (?М "M")
+        (?Н "H")
+        (?О "O")
+        (?Р "P")
+        (?С "C")
+        (?Т "T")
+        (?Х "X")
+        (?а "a")
+        (?е "e")
+        (?о "o")
+        (?с "c")
+        (?у "y")
+        (?х "x")
+        (?ѕ "s")
+        (?і "i")
+        (?ї "ï")
+        (?ј "j"))))
 
    (t (error "Unsupported character set: %S" set)))
 
@@ -773,2417 +773,2417 @@ isn't changed if the display can render Unicode characters."
           ;; Table derived by running Lynx on a suitable list of
           ;; characters in a utf-8 file, except for some added by
           ;; hand at the end.
-          '((?\\e$,1  \e(B "A")
-            (?\\e$,1 !\e(B "a")
-            (?\\e$,1 "\e(B "A")
-            (?\\e$,1 #\e(B "a")
-            (?\\e$,1 $\e(B "A")
-            (?\\e$,1 %\e(B "a")
-            (?\\e$,1 &\e(B "C")
-            (?\\e$,1 '\e(B "c")
-            (?\\e$,1 (\e(B "C")
-            (?\\e$,1 )\e(B "c")
-            (?\\e$,1 *\e(B "C")
-            (?\\e$,1 +\e(B "c")
-            (?\\e$,1 ,\e(B "C")
-            (?\\e$,1 -\e(B "c")
-            (?\\e$,1 .\e(B "D")
-            (?\\e$,1 /\e(B "d")
-            (?\\e$,1 0\e(B "\e,AP\e(B")
-            (?\\e$,1 1\e(B "d/")
-            (?\\e$,1 2\e(B "E")
-            (?\\e$,1 3\e(B "e")
-            (?\\e$,1 4\e(B "E")
-            (?\\e$,1 5\e(B "e")
-            (?\\e$,1 6\e(B "E")
-            (?\\e$,1 7\e(B "e")
-            (?\\e$,1 8\e(B "E")
-            (?\\e$,1 9\e(B "e")
-            (?\\e$,1 :\e(B "E")
-            (?\\e$,1 ;\e(B "e")
-            (?\\e$,1 <\e(B "G")
-            (?\\e$,1 =\e(B "g")
-            (?\\e$,1 >\e(B "G")
-            (?\\e$,1 ?\e(B "g")
-            (?\\e$,1 @\e(B "G")
-            (?\\e$,1 A\e(B "g")
-            (?\\e$,1 B\e(B "G")
-            (?\\e$,1 C\e(B "g")
-            (?\\e$,1 D\e(B "H")
-            (?\\e$,1 E\e(B "h")
-            (?\\e$,1 F\e(B "H/")
-            (?\\e$,1 G\e(B "H")
-            (?\\e$,1 H\e(B "I")
-            (?\\e$,1 I\e(B "i")
-            (?\\e$,1 J\e(B "I")
-            (?\\e$,1 K\e(B "i")
-            (?\\e$,1 L\e(B "I")
-            (?\\e$,1 M\e(B "i")
-            (?\\e$,1 N\e(B "I")
-            (?\\e$,1 O\e(B "i")
-            (?\\e$,1 P\e(B "I")
-            (?\\e$,1 Q\e(B "i")
-            (?\\e$,1 R\e(B "IJ")
-            (?\\e$,1 S\e(B "ij")
-            (?\\e$,1 T\e(B "J")
-            (?\\e$,1 U\e(B "j")
-            (?\\e$,1 V\e(B "K")
-            (?\\e$,1 W\e(B "k")
-            (?\\e$,1 X\e(B "kk")
-            (?\\e$,1 Y\e(B "L")
-            (?\\e$,1 Z\e(B "l")
-            (?\\e$,1 [\e(B "L")
-            (?\\e$,1 \\e(B "l")
-            (?\\e$,1 ]\e(B "L")
-            (?\\e$,1 ^\e(B "l")
-            (?\\e$,1 _\e(B "L.")
-            (?\\e$,1 `\e(B "l.")
-            (?\\e$,1 a\e(B "L/")
-            (?\\e$,1 b\e(B "l/")
-            (?\\e$,1 c\e(B "N")
-            (?\\e$,1 d\e(B "n")
-            (?\\e$,1 e\e(B "N")
-            (?\\e$,1 f\e(B "n")
-            (?\\e$,1 g\e(B "N")
-            (?\\e$,1 h\e(B "n")
-            (?\\e$,1 i\e(B "'n")
-            (?\\e$,1 j\e(B "NG")
-            (?\\e$,1 k\e(B "N")
-            (?\\e$,1 l\e(B "O")
-            (?\\e$,1 m\e(B "o")
-            (?\\e$,1 n\e(B "O")
-            (?\\e$,1 o\e(B "o")
-            (?\\e$,1 p\e(B "O\"")
-            (?\\e$,1 q\e(B "o\"")
-            (?\\e$,1 r\e(B "OE")
-            (?\\e$,1 s\e(B "oe")
-            (?\\e$,1 t\e(B "R")
-            (?\\e$,1 u\e(B "r")
-            (?\\e$,1 v\e(B "R")
-            (?\\e$,1 w\e(B "r")
-            (?\\e$,1 x\e(B "R")
-            (?\\e$,1 y\e(B "r")
-            (?\\e$,1 z\e(B "S")
-            (?\\e$,1 {\e(B "s")
-            (?\\e$,1 |\e(B "S")
-            (?\\e$,1 }\e(B "s")
-            (?\\e$,1 ~\e(B "S")
-            (?\\e$,1 \7f\e(B "s")
-            (?\\e$,1! \e(B "S")
-            (?\\e$,1!!\e(B "s")
-            (?\\e$,1!"\e(B "T")
-            (?\\e$,1!#\e(B "t")
-            (?\\e$,1!$\e(B "T")
-            (?\\e$,1!%\e(B "t")
-            (?\\e$,1!&\e(B "T/")
-            (?\\e$,1!'\e(B "t/")
-            (?\\e$,1!(\e(B "U")
-            (?\\e$,1!)\e(B "u")
-            (?\\e$,1!*\e(B "U")
-            (?\\e$,1!+\e(B "u")
-            (?\\e$,1!,\e(B "U")
-            (?\\e$,1!-\e(B "u")
-            (?\\e$,1!.\e(B "U")
-            (?\\e$,1!/\e(B "u")
-            (?\\e$,1!0\e(B "U\"")
-            (?\\e$,1!1\e(B "u\"")
-            (?\\e$,1!2\e(B "U")
-            (?\\e$,1!3\e(B "u")
-            (?\\e$,1!4\e(B "W")
-            (?\\e$,1!5\e(B "w")
-            (?\\e$,1!6\e(B "Y")
-            (?\\e$,1!7\e(B "y")
-            (?\\e$,1!8\e(B "Y")
-            (?\\e$,1!9\e(B "Z")
-            (?\\e$,1!:\e(B "z")
-            (?\\e$,1!;\e(B "Z")
-            (?\\e$,1!<\e(B "z")
-            (?\\e$,1!=\e(B "Z")
-            (?\\e$,1!>\e(B "z")
-            (?\\e$,1!?\e(B "s1")
-            (?\\e$,1!G\e(B "C2")
-            (?\\e$,1!H\e(B "c2")
-            (?\\e$,1!Q\e(B "F2")
-            (?\\e$,1!R\e(B " f")
-            (?\\e$,1!X\e(B "K2")
-            (?\\e$,1!Y\e(B "k2")
-            (?\\e$,1!`\e(B "O9")
-            (?\\e$,1!a\e(B "o9")
-            (?\\e$,1!b\e(B "OI")
-            (?\\e$,1!c\e(B "oi")
-            (?\\e$,1!f\e(B "yr")
-            (?\\e$,1!o\e(B "U9")
-            (?\\e$,1!p\e(B "u9")
-            (?\\e$,1!u\e(B "Z/")
-            (?\\e$,1!v\e(B "z/")
-            (?\\e$,1!w\e(B "ED")
-            (?\\e$,1"-\e(B "A")
-            (?\\e$,1".\e(B "a")
-            (?\\e$,1"/\e(B "I")
-            (?\\e$,1"0\e(B "i")
-            (?\\e$,1"1\e(B "O")
-            (?\\e$,1"2\e(B "o")
-            (?\\e$,1"3\e(B "U")
-            (?\\e$,1"4\e(B "u")
-            (?\\e$,1"5\e(B "U:-")
-            (?\\e$,1"6\e(B "u:-")
-            (?\\e$,1"7\e(B "U:'")
-            (?\\e$,1"8\e(B "u:'")
-            (?\\e$,1"9\e(B "U:<")
-            (?\\e$,1":\e(B "u:<")
-            (?\\e$,1";\e(B "U:!")
-            (?\\e$,1"<\e(B "u:!")
-            (?\\e$,1">\e(B "A1")
-            (?\\e$,1"?\e(B "a1")
-            (?\\e$,1"@\e(B "A7")
-            (?\\e$,1"A\e(B "a7")
-            (?\\e$,1"B\e(B "A3")
-            (?\\e$,1"C\e(B "a3")
-            (?\\e$,1"D\e(B "G/")
-            (?\\e$,1"E\e(B "g/")
-            (?\\e$,1"F\e(B "G")
-            (?\\e$,1"G\e(B "g")
-            (?\\e$,1"H\e(B "K")
-            (?\\e$,1"I\e(B "k")
-            (?\\e$,1"J\e(B "O")
-            (?\\e$,1"K\e(B "o")
-            (?\\e$,1"L\e(B "O1")
-            (?\\e$,1"M\e(B "o1")
-            (?\\e$,1"N\e(B "EZ")
-            (?\\e$,1"O\e(B "ez")
-            (?\\e$,1"P\e(B "j")
-            (?\\e$,1"T\e(B "G")
-            (?\\e$,1"U\e(B "g")
-            (?\\e$,1"Z\e(B "AA'")
-            (?\\e$,1"[\e(B "aa'")
-            (?\\e$,1"\\e(B "AE'")
-            (?\\e$,1"]\e(B "ae'")
-            (?\\e$,1"^\e(B "O/'")
-            (?\\e$,1"_\e(B "o/'")
-            (?\\e$,1"`\e(B "A!!")
-            (?\\e$,1"a\e(B "a!!")
-            (?\\e$,1"b\e(B "A)")
-            (?\\e$,1"c\e(B "a)")
-            (?\\e$,1"d\e(B "E!!")
-            (?\\e$,1"e\e(B "e!!")
-            (?\\e$,1"f\e(B "E)")
-            (?\\e$,1"g\e(B "e)")
-            (?\\e$,1"h\e(B "I!!")
-            (?\\e$,1"i\e(B "i!!")
-            (?\\e$,1"j\e(B "I)")
-            (?\\e$,1"k\e(B "i)")
-            (?\\e$,1"l\e(B "O!!")
-            (?\\e$,1"m\e(B "o!!")
-            (?\\e$,1"n\e(B "O)")
-            (?\\e$,1"o\e(B "o)")
-            (?\\e$,1"p\e(B "R!!")
-            (?\\e$,1"q\e(B "r!!")
-            (?\\e$,1"r\e(B "R)")
-            (?\\e$,1"s\e(B "r)")
-            (?\\e$,1"t\e(B "U!!")
-            (?\\e$,1"u\e(B "u!!")
-            (?\\e$,1"v\e(B "U)")
-            (?\\e$,1"w\e(B "u)")
-            (?\\e$,1"}\e(B "Z")
-            (?\\e$,1#Q\e(B "A")
-            (?\\e$,1#R\e(B "A.")
-            (?\\e$,1#S\e(B "b`")
-            (?\\e$,1#T\e(B "O")
-            (?\\e$,1#V\e(B "d.")
-            (?\\e$,1#W\e(B "d`")
-            (?\\e$,1#X\e(B "@<umd>")
-            (?\\e$,1#Y\e(B "@")
-            (?\\e$,1#Z\e(B "R")
-            (?\\e$,1#[\e(B "E")
-            (?\\e$,1#\\e(B "V\"")
-            (?\\e$,1#]\e(B "R<umd>")
-            (?\\e$,1#^\e(B "O\"")
-            (?\\e$,1#_\e(B "J")
-            (?\\e$,1#`\e(B "g`")
-            (?\\e$,1#a\e(B "g")
-            (?\\e$,1#b\e(B "G")
-            (?\\e$,1#c\e(B "Q")
-            (?\\e$,1#d\e(B "o-")
-            (?\\e$,1#e\e(B "j<rnd>")
-            (?\\e$,1#f\e(B "h<?>")
-            (?\\e$,1#h\e(B "i\"")
-            (?\\e$,1#i\e(B "I")
-            (?\\e$,1#j\e(B "I")
-            (?\\e$,1#k\e(B "L")
-            (?\\e$,1#l\e(B "L")
-            (?\\e$,1#m\e(B "l.")
-            (?\\e$,1#n\e(B "z<lat>")
-            (?\\e$,1#o\e(B "u-")
-            (?\\e$,1#p\e(B "j<vel>")
-            (?\\e$,1#q\e(B "M")
-            (?\\e$,1#s\e(B "n.")
-            (?\\e$,1#t\e(B "n\"")
-            (?\\e$,1#u\e(B "@.")
-            (?\\e$,1#v\e(B "&.")
-            (?\\e$,1#w\e(B "U")
-            (?\\e$,1#y\e(B "r")
-            (?\\e$,1#z\e(B "*<lat>")
-            (?\\e$,1#{\e(B "r.")
-            (?\\e$,1#}\e(B "*.")
-            (?\\e$,1#~\e(B "*")
-            (?\\e$,1$ \e(B "R")
-            (?\\e$,1$!\e(B "g\"")
-            (?\\e$,1$"\e(B "s.")
-            (?\\e$,1$#\e(B "S")
-            (?\\e$,1$$\e(B "J`")
-            (?\\e$,1$'\e(B "t!")
-            (?\\e$,1$(\e(B "t.")
-            (?\\e$,1$)\e(B "u\"")
-            (?\\e$,1$*\e(B "U")
-            (?\\e$,1$+\e(B "r<lbd>")
-            (?\\e$,1$,\e(B "V")
-            (?\\e$,1$-\e(B "w<vls>")
-            (?\\e$,1$.\e(B "l^")
-            (?\\e$,1$/\e(B "I.")
-            (?\\e$,1$0\e(B "z.")
-            (?\\e$,1$2\e(B "Z")
-            (?\\e$,1$4\e(B "?")
-            (?\\e$,1$5\e(B "H<vcd>")
-            (?\\e$,1$6\e(B "l!")
-            (?\\e$,1$7\e(B "c!")
-            (?\\e$,1$8\e(B "p!")
-            (?\\e$,1$9\e(B "b<trl>")
-            (?\\e$,1$;\e(B "G`")
-            (?\\e$,1$=\e(B "j")
-            (?\\e$,1$>\e(B "k!")
-            (?\\e$,1$?\e(B "L")
-            (?\\e$,1$@\e(B "q`")
-            (?\\e$,1$D\e(B "d3")
-            (?\\e$,1$F\e(B "ts")
-            (?\\e$,1$G\e(B "tS")
-            (?\\e$,1$P\e(B "<h>")
-            (?\\e$,1$Q\e(B "<?>")
-            (?\\e$,1$R\e(B ";")
-            (?\\e$,1$S\e(B "<r>")
-            (?\\e$,1$W\e(B "<w>")
-            (?\\e$,1$[\e(B ";S")
-            (?\\e$,1$\\e(B "`")
-            (?\\e$,1$f\e(B "^")
-            (?\\e$,1$g\e(B "'<")
-            (?\\e$,1$h\e(B "|")
-            (?\\e$,1$i\e(B "1-")
-            (?\\e$,1$k\e(B "1!")
-            (?\\e$,1$p\e(B ":")
-            (?\\e$,1$q\e(B ":\\")
-            (?\\e$,1$v\e(B "+")
-            (?\\e$,1$w\e(B "-")
-            (?\\e$,1$x\e(B "'(")
-            (?\\e$,1$y\e(B "'.")
-            (?\\e$,1$z\e(B "'0")
-            (?\\e$,1${\e(B "';")
-            (?\\e$,1$|\e(B "~")
-            (?\\e$,1$}\e(B "'\"")
-            (?\\e$,1%%\e(B "_T")
-            (?\\e$,1%&\e(B "_H")
-            (?\\e$,1%'\e(B "_M")
-            (?\\e$,1%(\e(B "_L")
-            (?\\e$,1%)\e(B "_B")
-            (?\\e$,1%,\e(B "_v")
-            (?\\e$,1%.\e(B "''")
-            (?\\e$,1%@\e(B "`")
-            (?\\e$,1%A\e(B "'")
-            (?\\e$,1%B\e(B "^")
-            (?\\e$,1%C\e(B "~")
-            (?\\e$,1%D\e(B "\e,A/\e(B")
-            (?\\e$,1%G\e(B "\e,A7\e(B")
-            (?\\e$,1%H\e(B "\e,A(\e(B")
-            (?\\e$,1%J\e(B "\e,A0\e(B")
-            (?\\e$,1%K\e(B "''")
-            (?\\e$,1%M\e(B "|")
-            (?\\e$,1%N\e(B "||")
-            (?\\e$,1%O\e(B "``")
-            (?\\e$,1%a\e(B ";")
-            (?\\e$,1%b\e(B ".")
-            (?\\e$,1%c\e(B ".")
-            (?\\e$,1%d\e(B "<?>")
-            (?\\e$,1%e\e(B "<o>")
-            (?\\e$,1%f\e(B ",")
-            (?\\e$,1%g\e(B "\e,A8\e(B")
-            (?\\e$,1%i\e(B "-")
-            (?\\e$,1%j\e(B "[")
-            (?\\e$,1%k\e(B "<w>")
-            (?\\e$,1%t\e(B "~")
-            (?\\e$,1%w\e(B "/")
-            (?\\e$,1%x\e(B "/")
-            (?\\e$,1& \e(B "`")
-            (?\\e$,1&!\e(B "'")
-            (?\\e$,1&"\e(B "~")
-            (?\\e$,1&$\e(B "'%")
-            (?\\e$,1&%\e(B "j3")
-            (?\\e$,1&'\e(B "=")
-            (?\\e$,1&@\e(B "~~")
-            (?\\e$,1&T\e(B "'")
-            (?\\e$,1&U\e(B ",")
-            (?\\e$,1&Z\e(B "j3")
-            (?\\e$,1&^\e(B "?%")
-            (?\\e$,1&d\e(B "'*")
-            (?\\e$,1&e\e(B "'%")
-            (?\\e$,1&f\e(B "A'")
-            (?\\e$,1&g\e(B "\e,A7\e(B")
-            (?\\e$,1&h\e(B "E'")
-            (?\\e$,1&i\e(B "Y%")
-            (?\\e$,1&j\e(B "I'")
-            (?\\e$,1&l\e(B "O'")
-            (?\\e$,1&n\e(B "U%")
-            (?\\e$,1&o\e(B "W%")
-            (?\\e$,1&p\e(B "i3")
-            (?\\e$,1&q\e(B "A")
-            (?\\e$,1&r\e(B "B")
-            (?\\e$,1&s\e(B "G")
-            (?\\e$,1&t\e(B "D")
-            (?\\e$,1&u\e(B "E")
-            (?\\e$,1&v\e(B "Z")
-            (?\\e$,1&w\e(B "Y")
-            (?\\e$,1&x\e(B "TH")
-            (?\\e$,1&y\e(B "I")
-            (?\\e$,1&z\e(B "K")
-            (?\\e$,1&{\e(B "L")
-            (?\\e$,1&|\e(B "M")
-            (?\\e$,1&}\e(B "N")
-            (?\\e$,1&~\e(B "C")
-            (?\\e$,1&\7f\e(B "O")
-            (?\\e$,1' \e(B "P")
-            (?\\e$,1'!\e(B "R")
-            (?\\e$,1'#\e(B "S")
-            (?\\e$,1'$\e(B "T")
-            (?\\e$,1'%\e(B "U")
-            (?\\e$,1'&\e(B "F")
-            (?\\e$,1''\e(B "X")
-            (?\\e$,1'(\e(B "Q")
-            (?\\e$,1')\e(B "W*")
-            (?\\e$,1'*\e(B "J")
-            (?\\e$,1'+\e(B "V*")
-            (?\\e$,1',\e(B "a'")
-            (?\\e$,1'-\e(B "e'")
-            (?\\e$,1'.\e(B "y%")
-            (?\\e$,1'/\e(B "i'")
-            (?\\e$,1'0\e(B "u3")
-            (?\\e$,1'1\e(B "a")
-            (?\\e$,1'2\e(B "b")
-            (?\\e$,1'3\e(B "g")
-            (?\\e$,1'4\e(B "d")
-            (?\\e$,1'5\e(B "e")
-            (?\\e$,1'6\e(B "z")
-            (?\\e$,1'7\e(B "y")
-            (?\\e$,1'8\e(B "th")
-            (?\\e$,1'9\e(B "i")
-            (?\\e$,1':\e(B "k")
-            (?\\e$,1';\e(B "l")
-            (?\\e$,1'<\e(B "\e,A5\e(B")
-            (?\\e$,1'=\e(B "n")
-            (?\\e$,1'>\e(B "c")
-            (?\\e$,1'?\e(B "o")
-            (?\\e$,1'@\e(B "p")
-            (?\\e$,1'A\e(B "r")
-            (?\\e$,1'B\e(B "*s")
-            (?\\e$,1'C\e(B "s")
-            (?\\e$,1'D\e(B "t")
-            (?\\e$,1'E\e(B "u")
-            (?\\e$,1'F\e(B "f")
-            (?\\e$,1'G\e(B "x")
-            (?\\e$,1'H\e(B "q")
-            (?\\e$,1'I\e(B "w")
-            (?\\e$,1'J\e(B "j")
-            (?\\e$,1'K\e(B "v*")
-            (?\\e$,1'L\e(B "o'")
-            (?\\e$,1'M\e(B "u%")
-            (?\\e$,1'N\e(B "w%")
-            (?\\e$,1'P\e(B "beta ")
-            (?\\e$,1'Q\e(B "theta ")
-            (?\\e$,1'R\e(B "upsi ")
-            (?\\e$,1'U\e(B "phi ")
-            (?\\e$,1'V\e(B "pi ")
-            (?\\e$,1'W\e(B "k.")
-            (?\\e$,1'Z\e(B "T3")
-            (?\\e$,1'[\e(B "t3")
-            (?\\e$,1'\\e(B "M3")
-            (?\\e$,1']\e(B "m3")
-            (?\\e$,1'^\e(B "K3")
-            (?\\e$,1'_\e(B "k3")
-            (?\\e$,1'`\e(B "P3")
-            (?\\e$,1'a\e(B "p3")
-            (?\\e$,1'p\e(B "kappa ")
-            (?\\e$,1'q\e(B "rho ")
-            (?\\e$,1's\e(B "J")
-            (?\\e$,1't\e(B "'%")
-            (?\\e$,1'u\e(B "j3")
-            (?\\e$,1(!\e(B "IO")
-            (?\\e$,1("\e(B "D%")
-            (?\\e$,1(#\e(B "G%")
-            (?\\e$,1($\e(B "IE")
-            (?\\e$,1(%\e(B "DS")
-            (?\\e$,1(&\e(B "II")
-            (?\\e$,1('\e(B "YI")
-            (?\\e$,1((\e(B "J%")
-            (?\\e$,1()\e(B "LJ")
-            (?\\e$,1(*\e(B "NJ")
-            (?\\e$,1(+\e(B "Ts")
-            (?\\e$,1(,\e(B "KJ")
-            (?\\e$,1(.\e(B "V%")
-            (?\\e$,1(/\e(B "DZ")
-            (?\\e$,1(0\e(B "A")
-            (?\\e$,1(1\e(B "B")
-            (?\\e$,1(2\e(B "V")
-            (?\\e$,1(3\e(B "G")
-            (?\\e$,1(4\e(B "D")
-            (?\\e$,1(5\e(B "E")
-            (?\\e$,1(6\e(B "ZH")
-            (?\\e$,1(7\e(B "Z")
-            (?\\e$,1(8\e(B "I")
-            (?\\e$,1(9\e(B "J")
-            (?\\e$,1(:\e(B "K")
-            (?\\e$,1(;\e(B "L")
-            (?\\e$,1(<\e(B "M")
-            (?\\e$,1(=\e(B "N")
-            (?\\e$,1(>\e(B "O")
-            (?\\e$,1(?\e(B "P")
-            (?\\e$,1(@\e(B "R")
-            (?\\e$,1(A\e(B "S")
-            (?\\e$,1(B\e(B "T")
-            (?\\e$,1(C\e(B "U")
-            (?\\e$,1(D\e(B "F")
-            (?\\e$,1(E\e(B "H")
-            (?\\e$,1(F\e(B "C")
-            (?\\e$,1(G\e(B "CH")
-            (?\\e$,1(H\e(B "SH")
-            (?\\e$,1(I\e(B "SCH")
-            (?\\e$,1(J\e(B "\"")
-            (?\\e$,1(K\e(B "Y")
-            (?\\e$,1(L\e(B "'")
-            (?\\e$,1(M\e(B "`E")
-            (?\\e$,1(N\e(B "YU")
-            (?\\e$,1(O\e(B "YA")
-            (?\\e$,1(P\e(B "a")
-            (?\\e$,1(Q\e(B "b")
-            (?\\e$,1(R\e(B "v")
-            (?\\e$,1(S\e(B "g")
-            (?\\e$,1(T\e(B "d")
-            (?\\e$,1(U\e(B "e")
-            (?\\e$,1(V\e(B "zh")
-            (?\\e$,1(W\e(B "z")
-            (?\\e$,1(X\e(B "i")
-            (?\\e$,1(Y\e(B "j")
-            (?\\e$,1(Z\e(B "k")
-            (?\\e$,1([\e(B "l")
-            (?\\e$,1(\\e(B "m")
-            (?\\e$,1(]\e(B "n")
-            (?\\e$,1(^\e(B "o")
-            (?\\e$,1(_\e(B "p")
-            (?\\e$,1(`\e(B "r")
-            (?\\e$,1(a\e(B "s")
-            (?\\e$,1(b\e(B "t")
-            (?\\e$,1(c\e(B "u")
-            (?\\e$,1(d\e(B "f")
-            (?\\e$,1(e\e(B "h")
-            (?\\e$,1(f\e(B "c")
-            (?\\e$,1(g\e(B "ch")
-            (?\\e$,1(h\e(B "sh")
-            (?\\e$,1(i\e(B "sch")
-            (?\\e$,1(j\e(B "\"")
-            (?\\e$,1(k\e(B "y")
-            (?\\e$,1(l\e(B "'")
-            (?\\e$,1(m\e(B "`e")
-            (?\\e$,1(n\e(B "yu")
-            (?\\e$,1(o\e(B "ya")
-            (?\\e$,1(q\e(B "io")
-            (?\\e$,1(r\e(B "d%")
-            (?\\e$,1(s\e(B "g%")
-            (?\\e$,1(t\e(B "ie")
-            (?\\e$,1(u\e(B "ds")
-            (?\\e$,1(v\e(B "ii")
-            (?\\e$,1(w\e(B "yi")
-            (?\\e$,1(x\e(B "j%")
-            (?\\e$,1(y\e(B "lj")
-            (?\\e$,1(z\e(B "nj")
-            (?\\e$,1({\e(B "ts")
-            (?\\e$,1(|\e(B "kj")
-            (?\\e$,1(~\e(B "v%")
-            (?\\e$,1(\7f\e(B "dz")
-            (?\\e$,1)"\e(B "Y3")
-            (?\\e$,1)#\e(B "y3")
-            (?\\e$,1)*\e(B "O3")
-            (?\\e$,1)+\e(B "o3")
-            (?\\e$,1)2\e(B "F3")
-            (?\\e$,1)3\e(B "f3")
-            (?\\e$,1)4\e(B "V3")
-            (?\\e$,1)5\e(B "v3")
-            (?\\e$,1)@\e(B "C3")
-            (?\\e$,1)A\e(B "c3")
-            (?\\e$,1)P\e(B "G3")
-            (?\\e$,1)Q\e(B "g3")
-            (?\\e$,1*4\e(B "AE")
-            (?\\e$,1*5\e(B "ae")
-            (?\\e$,1,T\e(B "i")
-            (?\\e$,1,W\e(B "a")
-            (?\\e$,1,X\e(B "o")
-            (?\\e$,1,\\e(B "u")
-            (?\\e$,1,_\e(B "h")
-            (?\\e$,1,b\e(B ":")
-            (?\\e$,1,p\e(B "#")
-            (?\\e$,1,q\e(B "B+")
-            (?\\e$,1,r\e(B "G+")
-            (?\\e$,1,s\e(B "D+")
-            (?\\e$,1,t\e(B "H+")
-            (?\\e$,1,u\e(B "W+")
-            (?\\e$,1,v\e(B "Z+")
-            (?\\e$,1,w\e(B "X+")
-            (?\\e$,1,x\e(B "Tj")
-            (?\\e$,1,y\e(B "J+")
-            (?\\e$,1,z\e(B "K%")
-            (?\\e$,1,{\e(B "K+")
-            (?\\e$,1,|\e(B "L+")
-            (?\\e$,1,}\e(B "M%")
-            (?\\e$,1,~\e(B "M+")
-            (?\\e$,1,\7f\e(B "N%")
-            (?\\e$,1- \e(B "N+")
-            (?\\e$,1-!\e(B "S+")
-            (?\\e$,1-"\e(B "E+")
-            (?\\e$,1-#\e(B "P%")
-            (?\\e$,1-$\e(B "P+")
-            (?\\e$,1-%\e(B "Zj")
-            (?\\e$,1-&\e(B "ZJ")
-            (?\\e$,1-'\e(B "Q+")
-            (?\\e$,1-(\e(B "R+")
-            (?\\e$,1-)\e(B "Sh")
-            (?\\e$,1-*\e(B "T+")
-            (?\\e$,1-0\e(B "v")
-            (?\\e$,1-1\e(B "oy")
-            (?\\e$,1-2\e(B "ey")
-            (?\\e$,1-L\e(B ",+")
-            (?\\e$,1-[\e(B ";+")
-            (?\\e$,1-_\e(B "?+")
-            (?\\e$,1-a\e(B "H'")
-            (?\\e$,1-b\e(B "aM")
-            (?\\e$,1-c\e(B "aH")
-            (?\\e$,1-d\e(B "wH")
-            (?\\e$,1-e\e(B "ah")
-            (?\\e$,1-f\e(B "yH")
-            (?\\e$,1-g\e(B "a+")
-            (?\\e$,1-h\e(B "b+")
-            (?\\e$,1-i\e(B "tm")
-            (?\\e$,1-j\e(B "t+")
-            (?\\e$,1-k\e(B "tk")
-            (?\\e$,1-l\e(B "g+")
-            (?\\e$,1-m\e(B "hk")
-            (?\\e$,1-n\e(B "x+")
-            (?\\e$,1-o\e(B "d+")
-            (?\\e$,1-p\e(B "dk")
-            (?\\e$,1-q\e(B "r+")
-            (?\\e$,1-r\e(B "z+")
-            (?\\e$,1-s\e(B "s+")
-            (?\\e$,1-t\e(B "sn")
-            (?\\e$,1-u\e(B "c+")
-            (?\\e$,1-v\e(B "dd")
-            (?\\e$,1-w\e(B "tj")
-            (?\\e$,1-x\e(B "zH")
-            (?\\e$,1-y\e(B "e+")
-            (?\\e$,1-z\e(B "i+")
-            (?\\e$,1. \e(B "++")
-            (?\\e$,1.!\e(B "f+")
-            (?\\e$,1."\e(B "q+")
-            (?\\e$,1.#\e(B "k+")
-            (?\\e$,1.$\e(B "l+")
-            (?\\e$,1.%\e(B "m+")
-            (?\\e$,1.&\e(B "n+")
-            (?\\e$,1.'\e(B "h+")
-            (?\\e$,1.(\e(B "w+")
-            (?\\e$,1.)\e(B "j+")
-            (?\\e$,1.*\e(B "y+")
-            (?\\e$,1.+\e(B ":+")
-            (?\\e$,1.,\e(B "\"+")
-            (?\\e$,1.-\e(B "=+")
-            (?\\e$,1..\e(B "/+")
-            (?\\e$,1./\e(B "'+")
-            (?\\e$,1.0\e(B "1+")
-            (?\\e$,1.1\e(B "3+")
-            (?\\e$,1.2\e(B "0+")
-            (?\\e$,1.@\e(B "0a")
-            (?\\e$,1.A\e(B "1a")
-            (?\\e$,1.B\e(B "2a")
-            (?\\e$,1.C\e(B "3a")
-            (?\\e$,1.D\e(B "4a")
-            (?\\e$,1.E\e(B "5a")
-            (?\\e$,1.F\e(B "6a")
-            (?\\e$,1.G\e(B "7a")
-            (?\\e$,1.H\e(B "8a")
-            (?\\e$,1.I\e(B "9a")
-            (?\\e$,1.P\e(B "aS")
-            (?\\e$,1.^\e(B "p+")
-            (?\\e$,1.a\e(B "hH")
-            (?\\e$,1.f\e(B "tc")
-            (?\\e$,1.x\e(B "zj")
-            (?\\e$,1/$\e(B "v+")
-            (?\\e$,1//\e(B "gf")
-            (?\\e$,1/p\e(B "0a")
-            (?\\e$,1/q\e(B "1a")
-            (?\\e$,1/r\e(B "2a")
-            (?\\e$,1/s\e(B "3a")
-            (?\\e$,1/t\e(B "4a")
-            (?\\e$,1/u\e(B "5a")
-            (?\\e$,1/v\e(B "6a")
-            (?\\e$,1/w\e(B "7a")
-            (?\\e$,1/x\e(B "8a")
-            (?\\e$,1/y\e(B "9a")
-            (?\\e$,1M@\e(B "he")
-            (?\\e$,1MA\e(B "hu")
-            (?\\e$,1MB\e(B "hi")
-            (?\\e$,1MC\e(B "ha")
-            (?\\e$,1MD\e(B "hE")
-            (?\\e$,1ME\e(B "h")
-            (?\\e$,1MF\e(B "ho")
-            (?\\e$,1MH\e(B "le")
-            (?\\e$,1MI\e(B "lu")
-            (?\\e$,1MJ\e(B "li")
-            (?\\e$,1MK\e(B "la")
-            (?\\e$,1ML\e(B "lE")
-            (?\\e$,1MM\e(B "l")
-            (?\\e$,1MN\e(B "lo")
-            (?\\e$,1MO\e(B "lWa")
-            (?\\e$,1MP\e(B "He")
-            (?\\e$,1MQ\e(B "Hu")
-            (?\\e$,1MR\e(B "Hi")
-            (?\\e$,1MS\e(B "Ha")
-            (?\\e$,1MT\e(B "HE")
-            (?\\e$,1MU\e(B "H")
-            (?\\e$,1MV\e(B "Ho")
-            (?\\e$,1MW\e(B "HWa")
-            (?\\e$,1MX\e(B "me")
-            (?\\e$,1MY\e(B "mu")
-            (?\\e$,1MZ\e(B "mi")
-            (?\\e$,1M[\e(B "ma")
-            (?\\e$,1M\\e(B "mE")
-            (?\\e$,1M]\e(B "m")
-            (?\\e$,1M^\e(B "mo")
-            (?\\e$,1M_\e(B "mWa")
-            (?\\e$,1M`\e(B "`se")
-            (?\\e$,1Ma\e(B "`su")
-            (?\\e$,1Mb\e(B "`si")
-            (?\\e$,1Mc\e(B "`sa")
-            (?\\e$,1Md\e(B "`sE")
-            (?\\e$,1Me\e(B "`s")
-            (?\\e$,1Mf\e(B "`so")
-            (?\\e$,1Mg\e(B "`sWa")
-            (?\\e$,1Mh\e(B "re")
-            (?\\e$,1Mi\e(B "ru")
-            (?\\e$,1Mj\e(B "ri")
-            (?\\e$,1Mk\e(B "ra")
-            (?\\e$,1Ml\e(B "rE")
-            (?\\e$,1Mm\e(B "r")
-            (?\\e$,1Mn\e(B "ro")
-            (?\\e$,1Mo\e(B "rWa")
-            (?\\e$,1Mp\e(B "se")
-            (?\\e$,1Mq\e(B "su")
-            (?\\e$,1Mr\e(B "si")
-            (?\\e$,1Ms\e(B "sa")
-            (?\\e$,1Mt\e(B "sE")
-            (?\\e$,1Mu\e(B "s")
-            (?\\e$,1Mv\e(B "so")
-            (?\\e$,1Mw\e(B "sWa")
-            (?\\e$,1Mx\e(B "xe")
-            (?\\e$,1My\e(B "xu")
-            (?\\e$,1Mz\e(B "xi")
-            (?\\e$,1M{\e(B "xa")
-            (?\\e$,1M|\e(B "xE")
-            (?\\e$,1M}\e(B "xa")
-            (?\\e$,1M~\e(B "xo")
-            (?\\e$,1M\7f\e(B "xWa")
-            (?\\e$,1N \e(B "qe")
-            (?\\e$,1N!\e(B "qu")
-            (?\\e$,1N"\e(B "qi")
-            (?\\e$,1N#\e(B "qa")
-            (?\\e$,1N$\e(B "qE")
-            (?\\e$,1N%\e(B "q")
-            (?\\e$,1N&\e(B "qo")
-            (?\\e$,1N(\e(B "qWe")
-            (?\\e$,1N*\e(B "qWi")
-            (?\\e$,1N+\e(B "qWa")
-            (?\\e$,1N,\e(B "qWE")
-            (?\\e$,1N-\e(B "qW")
-            (?\\e$,1N0\e(B "Qe")
-            (?\\e$,1N1\e(B "Qu")
-            (?\\e$,1N2\e(B "Qi")
-            (?\\e$,1N3\e(B "Qa")
-            (?\\e$,1N4\e(B "QE")
-            (?\\e$,1N5\e(B "Q")
-            (?\\e$,1N6\e(B "Qo")
-            (?\\e$,1N8\e(B "QWe")
-            (?\\e$,1N:\e(B "QWi")
-            (?\\e$,1N;\e(B "QWa")
-            (?\\e$,1N<\e(B "QWE")
-            (?\\e$,1N=\e(B "QW")
-            (?\\e$,1N@\e(B "be")
-            (?\\e$,1NA\e(B "bu")
-            (?\\e$,1NB\e(B "bi")
-            (?\\e$,1NC\e(B "ba")
-            (?\\e$,1ND\e(B "bE")
-            (?\\e$,1NE\e(B "b")
-            (?\\e$,1NF\e(B "bo")
-            (?\\e$,1NG\e(B "bWa")
-            (?\\e$,1NH\e(B "ve")
-            (?\\e$,1NI\e(B "vu")
-            (?\\e$,1NJ\e(B "vi")
-            (?\\e$,1NK\e(B "va")
-            (?\\e$,1NL\e(B "vE")
-            (?\\e$,1NM\e(B "v")
-            (?\\e$,1NN\e(B "vo")
-            (?\\e$,1NO\e(B "vWa")
-            (?\\e$,1NP\e(B "te")
-            (?\\e$,1NQ\e(B "tu")
-            (?\\e$,1NR\e(B "ti")
-            (?\\e$,1NS\e(B "ta")
-            (?\\e$,1NT\e(B "tE")
-            (?\\e$,1NU\e(B "t")
-            (?\\e$,1NV\e(B "to")
-            (?\\e$,1NW\e(B "tWa")
-            (?\\e$,1NX\e(B "ce")
-            (?\\e$,1NY\e(B "cu")
-            (?\\e$,1NZ\e(B "ci")
-            (?\\e$,1N[\e(B "ca")
-            (?\\e$,1N\\e(B "cE")
-            (?\\e$,1N]\e(B "c")
-            (?\\e$,1N^\e(B "co")
-            (?\\e$,1N_\e(B "cWa")
-            (?\\e$,1N`\e(B "`he")
-            (?\\e$,1Na\e(B "`hu")
-            (?\\e$,1Nb\e(B "`hi")
-            (?\\e$,1Nc\e(B "`ha")
-            (?\\e$,1Nd\e(B "`hE")
-            (?\\e$,1Ne\e(B "`h")
-            (?\\e$,1Nf\e(B "`ho")
-            (?\\e$,1Nh\e(B "hWe")
-            (?\\e$,1Nj\e(B "hWi")
-            (?\\e$,1Nk\e(B "hWa")
-            (?\\e$,1Nl\e(B "hWE")
-            (?\\e$,1Nm\e(B "hW")
-            (?\\e$,1Np\e(B "na")
-            (?\\e$,1Nq\e(B "nu")
-            (?\\e$,1Nr\e(B "ni")
-            (?\\e$,1Ns\e(B "na")
-            (?\\e$,1Nt\e(B "nE")
-            (?\\e$,1Nu\e(B "n")
-            (?\\e$,1Nv\e(B "no")
-            (?\\e$,1Nw\e(B "nWa")
-            (?\\e$,1Nx\e(B "Ne")
-            (?\\e$,1Ny\e(B "Nu")
-            (?\\e$,1Nz\e(B "Ni")
-            (?\\e$,1N{\e(B "Na")
-            (?\\e$,1N|\e(B "NE")
-            (?\\e$,1N}\e(B "N")
-            (?\\e$,1N~\e(B "No")
-            (?\\e$,1N\7f\e(B "NWa")
-            (?\\e$,1O \e(B "e")
-            (?\\e$,1O!\e(B "u")
-            (?\\e$,1O"\e(B "i")
-            (?\\e$,1O#\e(B "a")
-            (?\\e$,1O$\e(B "E")
-            (?\\e$,1O%\e(B "I")
-            (?\\e$,1O&\e(B "o")
-            (?\\e$,1O'\e(B "e3")
-            (?\\e$,1O(\e(B "ke")
-            (?\\e$,1O)\e(B "ku")
-            (?\\e$,1O*\e(B "ki")
-            (?\\e$,1O+\e(B "ka")
-            (?\\e$,1O,\e(B "kE")
-            (?\\e$,1O-\e(B "k")
-            (?\\e$,1O.\e(B "ko")
-            (?\\e$,1O0\e(B "kWe")
-            (?\\e$,1O2\e(B "kWi")
-            (?\\e$,1O3\e(B "kWa")
-            (?\\e$,1O4\e(B "kWE")
-            (?\\e$,1O5\e(B "kW")
-            (?\\e$,1O8\e(B "Ke")
-            (?\\e$,1O9\e(B "Ku")
-            (?\\e$,1O:\e(B "Ki")
-            (?\\e$,1O;\e(B "Ka")
-            (?\\e$,1O<\e(B "KE")
-            (?\\e$,1O=\e(B "K")
-            (?\\e$,1O>\e(B "Ko")
-            (?\\e$,1O@\e(B "KWe")
-            (?\\e$,1OB\e(B "KWi")
-            (?\\e$,1OC\e(B "KWa")
-            (?\\e$,1OD\e(B "KWE")
-            (?\\e$,1OE\e(B "KW")
-            (?\\e$,1OH\e(B "we")
-            (?\\e$,1OI\e(B "wu")
-            (?\\e$,1OJ\e(B "wi")
-            (?\\e$,1OK\e(B "wa")
-            (?\\e$,1OL\e(B "wE")
-            (?\\e$,1OM\e(B "w")
-            (?\\e$,1ON\e(B "wo")
-            (?\\e$,1OP\e(B "`e")
-            (?\\e$,1OQ\e(B "`u")
-            (?\\e$,1OR\e(B "`i")
-            (?\\e$,1OS\e(B "`a")
-            (?\\e$,1OT\e(B "`E")
-            (?\\e$,1OU\e(B "`I")
-            (?\\e$,1OV\e(B "`o")
-            (?\\e$,1OX\e(B "ze")
-            (?\\e$,1OY\e(B "zu")
-            (?\\e$,1OZ\e(B "zi")
-            (?\\e$,1O[\e(B "za")
-            (?\\e$,1O\\e(B "zE")
-            (?\\e$,1O]\e(B "z")
-            (?\\e$,1O^\e(B "zo")
-            (?\\e$,1O_\e(B "zWa")
-            (?\\e$,1O`\e(B "Ze")
-            (?\\e$,1Oa\e(B "Zu")
-            (?\\e$,1Ob\e(B "Zi")
-            (?\\e$,1Oc\e(B "Za")
-            (?\\e$,1Od\e(B "ZE")
-            (?\\e$,1Oe\e(B "Z")
-            (?\\e$,1Of\e(B "Zo")
-            (?\\e$,1Og\e(B "ZWa")
-            (?\\e$,1Oh\e(B "ye")
-            (?\\e$,1Oi\e(B "yu")
-            (?\\e$,1Oj\e(B "yi")
-            (?\\e$,1Ok\e(B "ya")
-            (?\\e$,1Ol\e(B "yE")
-            (?\\e$,1Om\e(B "y")
-            (?\\e$,1On\e(B "yo")
-            (?\\e$,1Oo\e(B "yWa")
-            (?\\e$,1Op\e(B "de")
-            (?\\e$,1Oq\e(B "du")
-            (?\\e$,1Or\e(B "di")
-            (?\\e$,1Os\e(B "da")
-            (?\\e$,1Ot\e(B "dE")
-            (?\\e$,1Ou\e(B "d")
-            (?\\e$,1Ov\e(B "do")
-            (?\\e$,1Ow\e(B "dWa")
-            (?\\e$,1Ox\e(B "De")
-            (?\\e$,1Oy\e(B "Du")
-            (?\\e$,1Oz\e(B "Di")
-            (?\\e$,1O{\e(B "Da")
-            (?\\e$,1O|\e(B "DE")
-            (?\\e$,1O}\e(B "D")
-            (?\\e$,1O~\e(B "Do")
-            (?\\e$,1O\7f\e(B "DWa")
-            (?\\e$,1P \e(B "je")
-            (?\\e$,1P!\e(B "ju")
-            (?\\e$,1P"\e(B "ji")
-            (?\\e$,1P#\e(B "ja")
-            (?\\e$,1P$\e(B "jE")
-            (?\\e$,1P%\e(B "j")
-            (?\\e$,1P&\e(B "jo")
-            (?\\e$,1P'\e(B "jWa")
-            (?\\e$,1P(\e(B "ga")
-            (?\\e$,1P)\e(B "gu")
-            (?\\e$,1P*\e(B "gi")
-            (?\\e$,1P+\e(B "ga")
-            (?\\e$,1P,\e(B "gE")
-            (?\\e$,1P-\e(B "g")
-            (?\\e$,1P.\e(B "go")
-            (?\\e$,1P0\e(B "gWu")
-            (?\\e$,1P2\e(B "gWi")
-            (?\\e$,1P3\e(B "gWa")
-            (?\\e$,1P4\e(B "gWE")
-            (?\\e$,1P5\e(B "gW")
-            (?\\e$,1P8\e(B "Ge")
-            (?\\e$,1P9\e(B "Gu")
-            (?\\e$,1P:\e(B "Gi")
-            (?\\e$,1P;\e(B "Ga")
-            (?\\e$,1P<\e(B "GE")
-            (?\\e$,1P=\e(B "G")
-            (?\\e$,1P>\e(B "Go")
-            (?\\e$,1P?\e(B "GWa")
-            (?\\e$,1P@\e(B "Te")
-            (?\\e$,1PA\e(B "Tu")
-            (?\\e$,1PB\e(B "Ti")
-            (?\\e$,1PC\e(B "Ta")
-            (?\\e$,1PD\e(B "TE")
-            (?\\e$,1PE\e(B "T")
-            (?\\e$,1PF\e(B "To")
-            (?\\e$,1PG\e(B "TWa")
-            (?\\e$,1PH\e(B "Ce")
-            (?\\e$,1PI\e(B "Ca")
-            (?\\e$,1PJ\e(B "Cu")
-            (?\\e$,1PK\e(B "Ca")
-            (?\\e$,1PL\e(B "CE")
-            (?\\e$,1PM\e(B "C")
-            (?\\e$,1PN\e(B "Co")
-            (?\\e$,1PO\e(B "CWa")
-            (?\\e$,1PP\e(B "Pe")
-            (?\\e$,1PQ\e(B "Pu")
-            (?\\e$,1PR\e(B "Pi")
-            (?\\e$,1PS\e(B "Pa")
-            (?\\e$,1PT\e(B "PE")
-            (?\\e$,1PU\e(B "P")
-            (?\\e$,1PV\e(B "Po")
-            (?\\e$,1PW\e(B "PWa")
-            (?\\e$,1PX\e(B "SWe")
-            (?\\e$,1PY\e(B "SWu")
-            (?\\e$,1PZ\e(B "SWi")
-            (?\\e$,1P[\e(B "SWa")
-            (?\\e$,1P\\e(B "SWE")
-            (?\\e$,1P]\e(B "SW")
-            (?\\e$,1P^\e(B "SWo")
-            (?\\e$,1P_\e(B "SWa")
-            (?\\e$,1P`\e(B "`Sa")
-            (?\\e$,1Pa\e(B "`Su")
-            (?\\e$,1Pb\e(B "`Si")
-            (?\\e$,1Pc\e(B "`Sa")
-            (?\\e$,1Pd\e(B "`SE")
-            (?\\e$,1Pe\e(B "`S")
-            (?\\e$,1Pf\e(B "`So")
-            (?\\e$,1Ph\e(B "fa")
-            (?\\e$,1Pi\e(B "fu")
-            (?\\e$,1Pj\e(B "fi")
-            (?\\e$,1Pk\e(B "fa")
-            (?\\e$,1Pl\e(B "fE")
-            (?\\e$,1Pm\e(B "o")
-            (?\\e$,1Pn\e(B "fo")
-            (?\\e$,1Po\e(B "fWa")
-            (?\\e$,1Pp\e(B "pe")
-            (?\\e$,1Pq\e(B "pu")
-            (?\\e$,1Pr\e(B "pi")
-            (?\\e$,1Ps\e(B "pa")
-            (?\\e$,1Pt\e(B "pE")
-            (?\\e$,1Pu\e(B "p")
-            (?\\e$,1Pv\e(B "po")
-            (?\\e$,1Pw\e(B "pWa")
-            (?\\e$,1Px\e(B "mYa")
-            (?\\e$,1Py\e(B "rYa")
-            (?\\e$,1Pz\e(B "fYa")
-            (?\\e$,1Q \e(B " ")
-            (?\\e$,1Q!\e(B ":")
-            (?\\e$,1Q"\e(B "::")
-            (?\\e$,1Q#\e(B ",")
-            (?\\e$,1Q$\e(B ";")
-            (?\\e$,1Q%\e(B "-:")
-            (?\\e$,1Q&\e(B ":-")
-            (?\\e$,1Q'\e(B "`?")
-            (?\\e$,1Q(\e(B ":|:")
-            (?\\e$,1Q)\e(B "`1")
-            (?\\e$,1Q*\e(B "`2")
-            (?\\e$,1Q+\e(B "`3")
-            (?\\e$,1Q,\e(B "`4")
-            (?\\e$,1Q-\e(B "`5")
-            (?\\e$,1Q.\e(B "`6")
-            (?\\e$,1Q/\e(B "`7")
-            (?\\e$,1Q0\e(B "`8")
-            (?\\e$,1Q1\e(B "`9")
-            (?\\e$,1Q2\e(B "`10")
-            (?\\e$,1Q3\e(B "`20")
-            (?\\e$,1Q4\e(B "`30")
-            (?\\e$,1Q5\e(B "`40")
-            (?\\e$,1Q6\e(B "`50")
-            (?\\e$,1Q7\e(B "`60")
-            (?\\e$,1Q8\e(B "`70")
-            (?\\e$,1Q9\e(B "`80")
-            (?\\e$,1Q:\e(B "`90")
-            (?\\e$,1Q;\e(B "`100")
-            (?\\e$,1Q<\e(B "`10000")
-            (?\\e$,1m@\e(B "A-0")
-            (?\\e$,1mA\e(B "a-0")
-            (?\\e$,1mB\e(B "B.")
-            (?\\e$,1mC\e(B "b.")
-            (?\\e$,1mD\e(B "B-.")
-            (?\\e$,1mE\e(B "b-.")
-            (?\\e$,1mF\e(B "B_")
-            (?\\e$,1mG\e(B "b_")
-            (?\\e$,1mH\e(B "C,'")
-            (?\\e$,1mI\e(B "c,'")
-            (?\\e$,1mJ\e(B "D.")
-            (?\\e$,1mK\e(B "d.")
-            (?\\e$,1mL\e(B "D-.")
-            (?\\e$,1mM\e(B "d-.")
-            (?\\e$,1mN\e(B "D_")
-            (?\\e$,1mO\e(B "d_")
-            (?\\e$,1mP\e(B "D,")
-            (?\\e$,1mQ\e(B "d,")
-            (?\\e$,1mR\e(B "D->")
-            (?\\e$,1mS\e(B "d->")
-            (?\\e$,1mT\e(B "E-!")
-            (?\\e$,1mU\e(B "e-!")
-            (?\\e$,1mV\e(B "E-'")
-            (?\\e$,1mW\e(B "e-'")
-            (?\\e$,1mX\e(B "E->")
-            (?\\e$,1mY\e(B "e->")
-            (?\\e$,1mZ\e(B "E-?")
-            (?\\e$,1m[\e(B "e-?")
-            (?\\e$,1m\\e(B "E,(")
-            (?\\e$,1m]\e(B "e,(")
-            (?\\e$,1m^\e(B "F.")
-            (?\\e$,1m_\e(B "f.")
-            (?\\e$,1m`\e(B "G-")
-            (?\\e$,1ma\e(B "g-")
-            (?\\e$,1mb\e(B "H.")
-            (?\\e$,1mc\e(B "h.")
-            (?\\e$,1md\e(B "H-.")
-            (?\\e$,1me\e(B "h-.")
-            (?\\e$,1mf\e(B "H:")
-            (?\\e$,1mg\e(B "h:")
-            (?\\e$,1mh\e(B "H,")
-            (?\\e$,1mi\e(B "h,")
-            (?\\e$,1mj\e(B "H-(")
-            (?\\e$,1mk\e(B "h-(")
-            (?\\e$,1ml\e(B "I-?")
-            (?\\e$,1mm\e(B "i-?")
-            (?\\e$,1mn\e(B "I:'")
-            (?\\e$,1mo\e(B "i:'")
-            (?\\e$,1mp\e(B "K'")
-            (?\\e$,1mq\e(B "k'")
-            (?\\e$,1mr\e(B "K-.")
-            (?\\e$,1ms\e(B "k-.")
-            (?\\e$,1mt\e(B "K_")
-            (?\\e$,1mu\e(B "k_")
-            (?\\e$,1mv\e(B "L-.")
-            (?\\e$,1mw\e(B "l-.")
-            (?\\e$,1mx\e(B "L--.")
-            (?\\e$,1my\e(B "l--.")
-            (?\\e$,1mz\e(B "L_")
-            (?\\e$,1m{\e(B "l_")
-            (?\\e$,1m|\e(B "L->")
-            (?\\e$,1m}\e(B "l->")
-            (?\\e$,1m~\e(B "M'")
-            (?\\e$,1m\7f\e(B "m'")
-            (?\\e$,1n \e(B "M.")
-            (?\\e$,1n!\e(B "m.")
-            (?\\e$,1n"\e(B "M-.")
-            (?\\e$,1n#\e(B "m-.")
-            (?\\e$,1n$\e(B "N.")
-            (?\\e$,1n%\e(B "n.")
-            (?\\e$,1n&\e(B "N-.")
-            (?\\e$,1n'\e(B "n-.")
-            (?\\e$,1n(\e(B "N_")
-            (?\\e$,1n)\e(B "n_")
-            (?\\e$,1n*\e(B "N->")
-            (?\\e$,1n+\e(B "n->")
-            (?\\e$,1n,\e(B "O?'")
-            (?\\e$,1n-\e(B "o?'")
-            (?\\e$,1n.\e(B "O?:")
-            (?\\e$,1n/\e(B "o?:")
-            (?\\e$,1n0\e(B "O-!")
-            (?\\e$,1n1\e(B "o-!")
-            (?\\e$,1n2\e(B "O-'")
-            (?\\e$,1n3\e(B "o-'")
-            (?\\e$,1n4\e(B "P'")
-            (?\\e$,1n5\e(B "p'")
-            (?\\e$,1n6\e(B "P.")
-            (?\\e$,1n7\e(B "p.")
-            (?\\e$,1n8\e(B "R.")
-            (?\\e$,1n9\e(B "r.")
-            (?\\e$,1n:\e(B "R-.")
-            (?\\e$,1n;\e(B "r-.")
-            (?\\e$,1n<\e(B "R--.")
-            (?\\e$,1n=\e(B "r--.")
-            (?\\e$,1n>\e(B "R_")
-            (?\\e$,1n?\e(B "r_")
-            (?\\e$,1n@\e(B "S.")
-            (?\\e$,1nA\e(B "s.")
-            (?\\e$,1nB\e(B "S-.")
-            (?\\e$,1nC\e(B "s-.")
-            (?\\e$,1nD\e(B "S'.")
-            (?\\e$,1nE\e(B "s'.")
-            (?\\e$,1nF\e(B "S<.")
-            (?\\e$,1nG\e(B "s<.")
-            (?\\e$,1nH\e(B "S.-.")
-            (?\\e$,1nI\e(B "s.-.")
-            (?\\e$,1nJ\e(B "T.")
-            (?\\e$,1nK\e(B "t.")
-            (?\\e$,1nL\e(B "T-.")
-            (?\\e$,1nM\e(B "t-.")
-            (?\\e$,1nN\e(B "T_")
-            (?\\e$,1nO\e(B "t_")
-            (?\\e$,1nP\e(B "T->")
-            (?\\e$,1nQ\e(B "t->")
-            (?\\e$,1nR\e(B "U--:")
-            (?\\e$,1nS\e(B "u--:")
-            (?\\e$,1nT\e(B "U-?")
-            (?\\e$,1nU\e(B "u-?")
-            (?\\e$,1nV\e(B "U->")
-            (?\\e$,1nW\e(B "u->")
-            (?\\e$,1nX\e(B "U?'")
-            (?\\e$,1nY\e(B "u?'")
-            (?\\e$,1nZ\e(B "U-:")
-            (?\\e$,1n[\e(B "u-:")
-            (?\\e$,1n\\e(B "V?")
-            (?\\e$,1n]\e(B "v?")
-            (?\\e$,1n^\e(B "V-.")
-            (?\\e$,1n_\e(B "v-.")
-            (?\\e$,1n`\e(B "W!")
-            (?\\e$,1na\e(B "w!")
-            (?\\e$,1nb\e(B "W'")
-            (?\\e$,1nc\e(B "w'")
-            (?\\e$,1nd\e(B "W:")
-            (?\\e$,1ne\e(B "w:")
-            (?\\e$,1nf\e(B "W.")
-            (?\\e$,1ng\e(B "w.")
-            (?\\e$,1nh\e(B "W-.")
-            (?\\e$,1ni\e(B "w-.")
-            (?\\e$,1nj\e(B "X.")
-            (?\\e$,1nk\e(B "x.")
-            (?\\e$,1nl\e(B "X:")
-            (?\\e$,1nm\e(B "x:")
-            (?\\e$,1nn\e(B "Y.")
-            (?\\e$,1no\e(B "y.")
-            (?\\e$,1np\e(B "Z>")
-            (?\\e$,1nq\e(B "z>")
-            (?\\e$,1nr\e(B "Z-.")
-            (?\\e$,1ns\e(B "z-.")
-            (?\\e$,1nt\e(B "Z_")
-            (?\\e$,1nu\e(B "z_")
-            (?\\e$,1nv\e(B "h_")
-            (?\\e$,1nw\e(B "t:")
-            (?\\e$,1nx\e(B "w0")
-            (?\\e$,1ny\e(B "y0")
-            (?\\e$,1o \e(B "A-.")
-            (?\\e$,1o!\e(B "a-.")
-            (?\\e$,1o"\e(B "A2")
-            (?\\e$,1o#\e(B "a2")
-            (?\\e$,1o$\e(B "A>'")
-            (?\\e$,1o%\e(B "a>'")
-            (?\\e$,1o&\e(B "A>!")
-            (?\\e$,1o'\e(B "a>!")
-            (?\\e$,1o(\e(B "A>2")
-            (?\\e$,1o)\e(B "a>2")
-            (?\\e$,1o*\e(B "A>?")
-            (?\\e$,1o+\e(B "a>?")
-            (?\\e$,1o,\e(B "A>-.")
-            (?\\e$,1o-\e(B "a>-.")
-            (?\\e$,1o.\e(B "A('")
-            (?\\e$,1o/\e(B "a('")
-            (?\\e$,1o0\e(B "A(!")
-            (?\\e$,1o1\e(B "a(!")
-            (?\\e$,1o2\e(B "A(2")
-            (?\\e$,1o3\e(B "a(2")
-            (?\\e$,1o4\e(B "A(?")
-            (?\\e$,1o5\e(B "a(?")
-            (?\\e$,1o6\e(B "A(-.")
-            (?\\e$,1o7\e(B "a(-.")
-            (?\\e$,1o8\e(B "E-.")
-            (?\\e$,1o9\e(B "e-.")
-            (?\\e$,1o:\e(B "E2")
-            (?\\e$,1o;\e(B "e2")
-            (?\\e$,1o<\e(B "E?")
-            (?\\e$,1o=\e(B "e?")
-            (?\\e$,1o>\e(B "E>'")
-            (?\\e$,1o?\e(B "e>'")
-            (?\\e$,1o@\e(B "E>!")
-            (?\\e$,1oA\e(B "e>!")
-            (?\\e$,1oB\e(B "E>2")
-            (?\\e$,1oC\e(B "e>2")
-            (?\\e$,1oD\e(B "E>?")
-            (?\\e$,1oE\e(B "e>?")
-            (?\\e$,1oF\e(B "E>-.")
-            (?\\e$,1oG\e(B "e>-.")
-            (?\\e$,1oH\e(B "I2")
-            (?\\e$,1oI\e(B "i2")
-            (?\\e$,1oJ\e(B "I-.")
-            (?\\e$,1oK\e(B "i-.")
-            (?\\e$,1oL\e(B "O-.")
-            (?\\e$,1oM\e(B "o-.")
-            (?\\e$,1oN\e(B "O2")
-            (?\\e$,1oO\e(B "o2")
-            (?\\e$,1oP\e(B "O>'")
-            (?\\e$,1oQ\e(B "o>'")
-            (?\\e$,1oR\e(B "O>!")
-            (?\\e$,1oS\e(B "o>!")
-            (?\\e$,1oT\e(B "O>2")
-            (?\\e$,1oU\e(B "o>2")
-            (?\\e$,1oV\e(B "O>?")
-            (?\\e$,1oW\e(B "o>?")
-            (?\\e$,1oX\e(B "O>-.")
-            (?\\e$,1oY\e(B "o>-.")
-            (?\\e$,1oZ\e(B "O9'")
-            (?\\e$,1o[\e(B "o9'")
-            (?\\e$,1o\\e(B "O9!")
-            (?\\e$,1o]\e(B "o9!")
-            (?\\e$,1o^\e(B "O92")
-            (?\\e$,1o_\e(B "o92")
-            (?\\e$,1o`\e(B "O9?")
-            (?\\e$,1oa\e(B "o9?")
-            (?\\e$,1ob\e(B "O9-.")
-            (?\\e$,1oc\e(B "o9-.")
-            (?\\e$,1od\e(B "U-.")
-            (?\\e$,1oe\e(B "u-.")
-            (?\\e$,1of\e(B "U2")
-            (?\\e$,1og\e(B "u2")
-            (?\\e$,1oh\e(B "U9'")
-            (?\\e$,1oi\e(B "u9'")
-            (?\\e$,1oj\e(B "U9!")
-            (?\\e$,1ok\e(B "u9!")
-            (?\\e$,1ol\e(B "U92")
-            (?\\e$,1om\e(B "u92")
-            (?\\e$,1on\e(B "U9?")
-            (?\\e$,1oo\e(B "u9?")
-            (?\\e$,1op\e(B "U9-.")
-            (?\\e$,1oq\e(B "u9-.")
-            (?\\e$,1or\e(B "Y!")
-            (?\\e$,1os\e(B "y!")
-            (?\\e$,1ot\e(B "Y-.")
-            (?\\e$,1ou\e(B "y-.")
-            (?\\e$,1ov\e(B "Y2")
-            (?\\e$,1ow\e(B "y2")
-            (?\\e$,1ox\e(B "Y?")
-            (?\\e$,1oy\e(B "y?")
-            (?\\e$,1p \e(B "a")
-            (?\\e$,1p!\e(B "ha")
-            (?\\e$,1p"\e(B "`a")
-            (?\\e$,1p#\e(B "h`a")
-            (?\\e$,1p$\e(B "a'")
-            (?\\e$,1p%\e(B "ha'")
-            (?\\e$,1p&\e(B "a~")
-            (?\\e$,1p'\e(B "ha~")
-            (?\\e$,1p(\e(B "A")
-            (?\\e$,1p)\e(B "hA")
-            (?\\e$,1p*\e(B "`A")
-            (?\\e$,1p+\e(B "h`A")
-            (?\\e$,1p,\e(B "A'")
-            (?\\e$,1p-\e(B "hA'")
-            (?\\e$,1p.\e(B "A~")
-            (?\\e$,1p/\e(B "hA~")
-            (?\\e$,1p1\e(B "he")
-            (?\\e$,1p9\e(B "hE")
-            (?\\e$,1pQ\e(B "hi")
-            (?\\e$,1pY\e(B "hI")
-            (?\\e$,1pa\e(B "ho")
-            (?\\e$,1pi\e(B "hO")
-            (?\\e$,1pq\e(B "hu")
-            (?\\e$,1py\e(B "hU")
-            (?\\e$,1q\7f\e(B ",,")
-            (?\\e$,1r \e(B "?*")
-            (?\\e$,1r!\e(B "?:")
-            (?\\e$,1r-\e(B ",!")
-            (?\\e$,1r.\e(B ",'")
-            (?\\e$,1r/\e(B "?,")
-            (?\\e$,1r=\e(B ";!")
-            (?\\e$,1r>\e(B ";'")
-            (?\\e$,1r?\e(B "?;")
-            (?\\e$,1rE\e(B "rh")
-            (?\\e$,1rL\e(B "Rh")
-            (?\\e$,1rM\e(B "!:")
-            (?\\e$,1rO\e(B "!*")
-            (?\\e$,1r^\e(B ";;")
-            (?\\e$,1r`\e(B " ")
-            (?\\e$,1ra\e(B "  ")
-            (?\\e$,1rb\e(B " ")
-            (?\\e$,1rc\e(B "  ")
-            (?\\e$,1rd\e(B " ")
-            (?\\e$,1re\e(B " ")
-            (?\\e$,1rf\e(B " ")
-            (?\\e$,1rg\e(B "\e,A \e(B")
-            (?\\e$,1rh\e(B " ")
-            (?\\e$,1ri\e(B " ")
-            (?\\e$,1rp\e(B "-")
-            (?\\e$,1rq\e(B "-")
-            (?\\e$,1rs\e(B "-")
-            (?\\e$,1rt\e(B "--")
-            (?\\e$,1ru\e(B "-")
-            (?\\e$,1rv\e(B "||")
-            (?\\e$,1rw\e(B "=2")
-            (?\\e$,1rx\e(B "`")
-            (?\\e$,1ry\e(B "'")
-            (?\\e$,1rz\e(B "'")
-            (?\\e$,1r{\e(B "'")
-            (?\\e$,1r|\e(B "\"")
-            (?\\e$,1r}\e(B "\"")
-            (?\\e$,1r~\e(B "\"")
-            (?\\e$,1r\7f\e(B "\"")
-            (?\\e$,1s \e(B "/-")
-            (?\\e$,1s!\e(B "/=")
-            (?\\e$,1s"\e(B " o ")
-            (?\\e$,1s$\e(B ".")
-            (?\\e$,1s%\e(B "..")
-            (?\\e$,1s&\e(B "...")
-            (?\\e$,1s'\e(B "\e,A7\e(B")
-            (?\\e$,1s0\e(B " 0/00")
-            (?\\e$,1s2\e(B "'")
-            (?\\e$,1s3\e(B "''")
-            (?\\e$,1s4\e(B "'''")
-            (?\\e$,1s5\e(B "`")
-            (?\\e$,1s6\e(B "``")
-            (?\\e$,1s7\e(B "```")
-            (?\\e$,1s8\e(B "Ca")
-            (?\\e$,1s9\e(B "<")
-            (?\\e$,1s:\e(B ">")
-            (?\\e$,1s;\e(B ":X")
-            (?\\e$,1s<\e(B "!!")
-            (?\\e$,1s>\e(B "'-")
-            (?\\e$,1sC\e(B "-")
-            (?\\e$,1sD\e(B "/")
-            (?\\e$,1sH\e(B "?!")
-            (?\\e$,1sI\e(B "!?")
-            (?\\e$,1sp\e(B "^0")
-            (?\\e$,1st\e(B "^4")
-            (?\\e$,1su\e(B "^5")
-            (?\\e$,1sv\e(B "^6")
-            (?\\e$,1sw\e(B "^7")
-            (?\\e$,1sx\e(B "^8")
-            (?\\e$,1sy\e(B "^9")
-            (?\\e$,1sz\e(B "^+")
-            (?\\e$,1s{\e(B "^-")
-            (?\\e$,1s|\e(B "^=")
-            (?\\e$,1s}\e(B "^(")
-            (?\\e$,1s~\e(B "^)")
-            (?\\e$,1s\7f\e(B "^n")
-            (?\\e$,1t \e(B "_0")
-            (?\\e$,1t!\e(B "_1")
-            (?\\e$,1t"\e(B "_2")
-            (?\\e$,1t#\e(B "_3")
-            (?\\e$,1t$\e(B "_4")
-            (?\\e$,1t%\e(B "_5")
-            (?\\e$,1t&\e(B "_6")
-            (?\\e$,1t'\e(B "_7")
-            (?\\e$,1t(\e(B "_8")
-            (?\\e$,1t)\e(B "_9")
-            (?\\e$,1t*\e(B "_+")
-            (?\\e$,1t+\e(B "_-")
-            (?\\e$,1t,\e(B "_=")
-            (?\\e$,1t-\e(B "(")
-            (?\\e$,1t.\e(B ")")
-            (?\\e$,1tC\e(B "Ff")
-            (?\\e$,1tD\e(B "Li")
-            (?\\e$,1tG\e(B "Pt")
-            (?\\e$,1tI\e(B "W=")
-            (?\\e$,1tL\e(B "EUR")
-            (?\\e$,1u@\e(B "a/c")
-            (?\\e$,1uA\e(B "a/s")
-            (?\\e$,1uC\e(B "oC")
-            (?\\e$,1uE\e(B "c/o")
-            (?\\e$,1uF\e(B "c/u")
-            (?\\e$,1uI\e(B "oF")
-            (?\\e$,1uJ\e(B "g")
-            (?\\e$,1uN\e(B "h")
-            (?\\e$,1uO\e(B "\\hbar")
-            (?\\e$,1uQ\e(B "Im")
-            (?\\e$,1uS\e(B "l")
-            (?\\e$,1uV\e(B "No.")
-            (?\\e$,1uW\e(B "PO")
-            (?\\e$,1uX\e(B "P")
-            (?\\e$,1u\\e(B "Re")
-            (?\\e$,1u^\e(B "Rx")
-            (?\\e$,1u`\e(B "(SM)")
-            (?\\e$,1ua\e(B "TEL")
-            (?\\e$,1ub\e(B "(TM)")
-            (?\\e$,1uf\e(B "Ohm")
-            (?\\e$,1uj\e(B "K")
-            (?\\e$,1uk\e(B "Ang.")
-            (?\\e$,1un\e(B "est.")
-            (?\\e$,1ut\e(B "o")
-            (?\\e$,1uu\e(B "Aleph ")
-            (?\\e$,1uv\e(B "Bet ")
-            (?\\e$,1uw\e(B "Gimel ")
-            (?\\e$,1ux\e(B "Dalet ")
-            (?\\e$,1v3\e(B " 1/3")
-            (?\\e$,1v4\e(B " 2/3")
-            (?\\e$,1v5\e(B " 1/5")
-            (?\\e$,1v6\e(B " 2/5")
-            (?\\e$,1v7\e(B " 3/5")
-            (?\\e$,1v8\e(B " 4/5")
-            (?\\e$,1v9\e(B " 1/6")
-            (?\\e$,1v:\e(B " 5/6")
-            (?\\e$,1v;\e(B " 1/8")
-            (?\\e$,1v<\e(B " 3/8")
-            (?\\e$,1v=\e(B " 5/8")
-            (?\\e$,1v>\e(B " 7/8")
-            (?\\e$,1v?\e(B " 1/")
-            (?\\e$,1v@\e(B "I")
-            (?\\e$,1vA\e(B "II")
-            (?\\e$,1vB\e(B "III")
-            (?\\e$,1vC\e(B "IV")
-            (?\\e$,1vD\e(B "V")
-            (?\\e$,1vE\e(B "VI")
-            (?\\e$,1vF\e(B "VII")
-            (?\\e$,1vG\e(B "VIII")
-            (?\\e$,1vH\e(B "IX")
-            (?\\e$,1vI\e(B "X")
-            (?\\e$,1vJ\e(B "XI")
-            (?\\e$,1vK\e(B "XII")
-            (?\\e$,1vL\e(B "L")
-            (?\\e$,1vM\e(B "C")
-            (?\\e$,1vN\e(B "D")
-            (?\\e$,1vO\e(B "M")
-            (?\\e$,1vP\e(B "i")
-            (?\\e$,1vQ\e(B "ii")
-            (?\\e$,1vR\e(B "iii")
-            (?\\e$,1vS\e(B "iv")
-            (?\\e$,1vT\e(B "v")
-            (?\\e$,1vU\e(B "vi")
-            (?\\e$,1vV\e(B "vii")
-            (?\\e$,1vW\e(B "viii")
-            (?\\e$,1vX\e(B "ix")
-            (?\\e$,1vY\e(B "x")
-            (?\\e$,1vZ\e(B "xi")
-            (?\\e$,1v[\e(B "xii")
-            (?\\e$,1v\\e(B "l")
-            (?\\e$,1v]\e(B "c")
-            (?\\e$,1v^\e(B "d")
-            (?\\e$,1v_\e(B "m")
-            (?\\e$,1v`\e(B "1000RCD")
-            (?\\e$,1va\e(B "5000R")
-            (?\\e$,1vb\e(B "10000R")
-            (?\\e$,1vp\e(B "<-")
-            (?\\e$,1vq\e(B "-^")
-            (?\\e$,1vr\e(B "->")
-            (?\\e$,1vs\e(B "-v")
-            (?\\e$,1vt\e(B "<->")
-            (?\\e$,1vu\e(B "UD")
-            (?\\e$,1vv\e(B "<!!")
-            (?\\e$,1vw\e(B "//>")
-            (?\\e$,1vx\e(B "!!>")
-            (?\\e$,1vy\e(B "<//")
-            (?\\e$,1w(\e(B "UD-")
-            (?\\e$,1w5\e(B "RET")
-            (?\\e$,1w@\e(B ">V")
-            (?\\e$,1wP\e(B "<=")
-            (?\\e$,1wQ\e(B "^^")
-            (?\\e$,1wR\e(B "=>")
-            (?\\e$,1wS\e(B "vv")
-            (?\\e$,1wT\e(B "<=>")
-            (?\\e$,1x \e(B "FA")
-            (?\\e$,1x"\e(B "\\partial")
-            (?\\e$,1x#\e(B "TE")
-            (?\\e$,1x%\e(B "{}")
-            (?\\e$,1x&\e(B "Delta")
-            (?\\e$,1x'\e(B "Nabla")
-            (?\\e$,1x(\e(B "(-")
-            (?\\e$,1x)\e(B "!(-")
-            (?\\e$,1x*\e(B "(-")
-            (?\\e$,1x+\e(B "-)")
-            (?\\e$,1x,\e(B "!-)")
-            (?\\e$,1x-\e(B "-)")
-            (?\\e$,1x.\e(B " qed")
-            (?\\e$,1x/\e(B "\\prod")
-            (?\\e$,1x1\e(B "\\sum")
-            (?\\e$,1x2\e(B " -")
-            (?\\e$,1x3\e(B "-/+")
-            (?\\e$,1x4\e(B ".+")
-            (?\\e$,1x5\e(B "/")
-            (?\\e$,1x6\e(B " - ")
-            (?\\e$,1x7\e(B "*")
-            (?\\e$,1x8\e(B " \e,A0\e(B ")
-            (?\\e$,1x9\e(B "sb")
-            (?\\e$,1x:\e(B " SQRT ")
-            (?\\e$,1x;\e(B " ROOT\e,A3\e(B ")
-            (?\\e$,1x<\e(B " ROOT4 ")
-            (?\\e$,1x=\e(B "0(")
-            (?\\e$,1x>\e(B "infty")
-            (?\\e$,1x?\e(B "-L")
-            (?\\e$,1x@\e(B "-V")
-            (?\\e$,1xE\e(B "PP")
-            (?\\e$,1xF\e(B " !PP ")
-            (?\\e$,1xG\e(B "AND")
-            (?\\e$,1xH\e(B "OR")
-            (?\\e$,1xI\e(B "(U")
-            (?\\e$,1xJ\e(B ")U")
-            (?\\e$,1xK\e(B "\int ")
-            (?\\e$,1xL\e(B "DI")
-            (?\\e$,1xN\e(B "Io")
-            (?\\e$,1xT\e(B ".:")
-            (?\\e$,1xU\e(B ":.")
-            (?\\e$,1xV\e(B ":R")
-            (?\\e$,1xW\e(B "::")
-            (?\\e$,1x\\e(B "?1")
-            (?\\e$,1x^\e(B "CG")
-            (?\\e$,1xc\e(B "?-")
-            (?\\e$,1xe\e(B "?=")
-            (?\\e$,1xh\e(B "~=")
-            (?\\e$,1xi\e(B " !~= ")
-            (?\\e$,1xl\e(B "=?")
-            (?\\e$,1xs\e(B "HI")
-            (?\\e$,1xt\e(B ":=")
-            (?\\e$,1xu\e(B "=:")
-            (?\\e$,1y \e(B "!=")
-            (?\\e$,1y!\e(B "=3")
-            (?\\e$,1y"\e(B " !=3 ")
-            (?\\e$,1y$\e(B "=<")
-            (?\\e$,1y%\e(B ">=")
-            (?\\e$,1y&\e(B ".LE.")
-            (?\\e$,1y'\e(B ".GE.")
-            (?\\e$,1y(\e(B ".LT.NOT.EQ.")
-            (?\\e$,1y)\e(B ".GT.NOT.EQ.")
-            (?\\e$,1y*\e(B "<<")
-            (?\\e$,1y+\e(B ">>")
-            (?\\e$,1y.\e(B "!<")
-            (?\\e$,1y/\e(B "!>")
-            (?\\e$,1y6\e(B " <> ")
-            (?\\e$,1y7\e(B " >< ")
-            (?\\e$,1yB\e(B "(C")
-            (?\\e$,1yC\e(B ")C")
-            (?\\e$,1yD\e(B " !(C ")
-            (?\\e$,1yE\e(B " !)C ")
-            (?\\e$,1yF\e(B "(_")
-            (?\\e$,1yG\e(B ")_")
-            (?\\e$,1yU\e(B "(+)")
-            (?\\e$,1yV\e(B "(-)")
-            (?\\e$,1yW\e(B "(\e,AW\e(B)")
-            (?\\e$,1yX\e(B "(/)")
-            (?\\e$,1yY\e(B "(\e,A7\e(B)")
-            (?\\e$,1yZ\e(B "(\e,A0\e(B)")
-            (?\\e$,1y[\e(B "(*)")
-            (?\\e$,1y\\e(B "(=)")
-            (?\\e$,1y]\e(B "(-)")
-            (?\\e$,1y^\e(B "[+]")
-            (?\\e$,1y_\e(B "[-]")
-            (?\\e$,1y`\e(B "[\e,AW\e(B]")
-            (?\\e$,1ya\e(B "[\e,A7\e(B]")
-            (?\\e$,1ye\e(B "-T")
-            (?\\e$,1yg\e(B " MODELS ")
-            (?\\e$,1yh\e(B " TRUE ")
-            (?\\e$,1yi\e(B " FORCES ")
-            (?\\e$,1yl\e(B " !PROVES ")
-            (?\\e$,1ym\e(B " NOT TRUE ")
-            (?\\e$,1yn\e(B " !FORCES ")
-            (?\\e$,1yr\e(B " NORMAL SUBGROUP OF ")
-            (?\\e$,1ys\e(B " CONTAINS AS NORMAL SUBGROUP ")
-            (?\\e$,1yt\e(B " NORMAL SUBGROUP OF OR EQUAL TO ")
-            (?\\e$,1yu\e(B " CONTAINS AS NORMAL SUBGROUP OR EQUAL TO ")
-            (?\\e$,1yx\e(B " MULTIMAP ")
-            (?\\e$,1yz\e(B " INTERCALATE ")
-            (?\\e$,1y{\e(B " XOR ")
-            (?\\e$,1y|\e(B " NAND ")
-            (?\\e$,1z%\e(B " \e,A7\e(B ")
-            (?\\e$,1z6\e(B "<.")
-            (?\\e$,1z7\e(B ">.")
-            (?\\e$,1z8\e(B "<<<")
-            (?\\e$,1z9\e(B ">>>")
-            (?\\e$,1zN\e(B ":3")
-            (?\\e$,1zO\e(B ".3")
-            (?\\e$,1zb\e(B "Eh")
-            (?\\e$,1zg\e(B "~~")
-            (?\\e$,1zh\e(B "<7")
-            (?\\e$,1zi\e(B ">7")
-            (?\\e$,1zj\e(B "7<")
-            (?\\e$,1zk\e(B "7>")
-            (?\\e$,1zp\e(B "NI")
-            (?\\e$,1zr\e(B "(A")
-            (?\\e$,1zu\e(B "TR")
-            (?\\e$,1zx\e(B "88")
-            (?\\e$,1{ \e(B "Iu")
-            (?\\e$,1{!\e(B "Il")
-            (?\\e$,1{"\e(B ":(")
-            (?\\e$,1{#\e(B ":)")
-            (?\\e$,1{$\e(B "|^|")
-            (?\\e$,1{'\e(B "[X]")
-            (?\\e$,1{)\e(B "</")
-            (?\\e$,1{*\e(B "/>")
-            (?\\e$,1}c\e(B "Vs")
-            (?\\e$,1~ \e(B "1h")
-            (?\\e$,1~!\e(B "3h")
-            (?\\e$,1~"\e(B "2h")
-            (?\\e$,1~#\e(B "4h")
-            (?\\e$,1~&\e(B "1j")
-            (?\\e$,1~'\e(B "2j")
-            (?\\e$,1~(\e(B "3j")
-            (?\\e$,1~)\e(B "4j")
-            (?\\e$,1~@\e(B "1-o")
-            (?\\e$,1~A\e(B "2-o")
-            (?\\e$,1~B\e(B "3-o")
-            (?\\e$,1~C\e(B "4-o")
-            (?\\e$,1~D\e(B "5-o")
-            (?\\e$,1~E\e(B "6-o")
-            (?\\e$,1~F\e(B "7-o")
-            (?\\e$,1~G\e(B "8-o")
-            (?\\e$,1~H\e(B "9-o")
-            (?\\e$,1~I\e(B "10-o")
-            (?\\e$,1~J\e(B "11-o")
-            (?\\e$,1~K\e(B "12-o")
-            (?\\e$,1~L\e(B "13-o")
-            (?\\e$,1~M\e(B "14-o")
-            (?\\e$,1~N\e(B "15-o")
-            (?\\e$,1~O\e(B "16-o")
-            (?\\e$,1~P\e(B "17-o")
-            (?\\e$,1~Q\e(B "18-o")
-            (?\\e$,1~R\e(B "19-o")
-            (?\\e$,1~S\e(B "20-o")
-            (?\\e$,1~T\e(B "(1)")
-            (?\\e$,1~U\e(B "(2)")
-            (?\\e$,1~V\e(B "(3)")
-            (?\\e$,1~W\e(B "(4)")
-            (?\\e$,1~X\e(B "(5)")
-            (?\\e$,1~Y\e(B "(6)")
-            (?\\e$,1~Z\e(B "(7)")
-            (?\\e$,1~[\e(B "(8)")
-            (?\\e$,1~\\e(B "(9)")
-            (?\\e$,1~]\e(B "(10)")
-            (?\\e$,1~^\e(B "(11)")
-            (?\\e$,1~_\e(B "(12)")
-            (?\\e$,1~`\e(B "(13)")
-            (?\\e$,1~a\e(B "(14)")
-            (?\\e$,1~b\e(B "(15)")
-            (?\\e$,1~c\e(B "(16)")
-            (?\\e$,1~d\e(B "(17)")
-            (?\\e$,1~e\e(B "(18)")
-            (?\\e$,1~f\e(B "(19)")
-            (?\\e$,1~g\e(B "(20)")
-            (?\\e$,1~h\e(B "1.")
-            (?\\e$,1~i\e(B "2.")
-            (?\\e$,1~j\e(B "3.")
-            (?\\e$,1~k\e(B "4.")
-            (?\\e$,1~l\e(B "5.")
-            (?\\e$,1~m\e(B "6.")
-            (?\\e$,1~n\e(B "7.")
-            (?\\e$,1~o\e(B "8.")
-            (?\\e$,1~p\e(B "9.")
-            (?\\e$,1~q\e(B "10.")
-            (?\\e$,1~r\e(B "11.")
-            (?\\e$,1~s\e(B "12.")
-            (?\\e$,1~t\e(B "13.")
-            (?\\e$,1~u\e(B "14.")
-            (?\\e$,1~v\e(B "15.")
-            (?\\e$,1~w\e(B "16.")
-            (?\\e$,1~x\e(B "17.")
-            (?\\e$,1~y\e(B "18.")
-            (?\\e$,1~z\e(B "19.")
-            (?\\e$,1~{\e(B "20.")
-            (?\\e$,1~|\e(B "(a)")
-            (?\\e$,1~}\e(B "(b)")
-            (?\\e$,1~~\e(B "(c)")
-            (?\\e$,1~\7f\e(B "(d)")
-            (?\\e$,1\7f \e(B "(e)")
-            (?\\e$,1\7f!\e(B "(f)")
-            (?\\e$,1\7f"\e(B "(g)")
-            (?\\e$,1\7f#\e(B "(h)")
-            (?\\e$,1\7f$\e(B "(i)")
-            (?\\e$,1\7f%\e(B "(j)")
-            (?\\e$,1\7f&\e(B "(k)")
-            (?\\e$,1\7f'\e(B "(l)")
-            (?\\e$,1\7f(\e(B "(m)")
-            (?\\e$,1\7f)\e(B "(n)")
-            (?\\e$,1\7f*\e(B "(o)")
-            (?\\e$,1\7f+\e(B "(p)")
-            (?\\e$,1\7f,\e(B "(q)")
-            (?\\e$,1\7f-\e(B "(r)")
-            (?\\e$,1\7f.\e(B "(s)")
-            (?\\e$,1\7f/\e(B "(t)")
-            (?\\e$,1\7f0\e(B "(u)")
-            (?\\e$,1\7f1\e(B "(v)")
-            (?\\e$,1\7f2\e(B "(w)")
-            (?\\e$,1\7f3\e(B "(x)")
-            (?\\e$,1\7f4\e(B "(y)")
-            (?\\e$,1\7f5\e(B "(z)")
-            (?\\e$,1\7f6\e(B "A-o")
-            (?\\e$,1\7f7\e(B "B-o")
-            (?\\e$,1\7f8\e(B "C-o")
-            (?\\e$,1\7f9\e(B "D-o")
-            (?\\e$,1\7f:\e(B "E-o")
-            (?\\e$,1\7f;\e(B "F-o")
-            (?\\e$,1\7f<\e(B "G-o")
-            (?\\e$,1\7f=\e(B "H-o")
-            (?\\e$,1\7f>\e(B "I-o")
-            (?\\e$,1\7f?\e(B "J-o")
-            (?\\e$,1\7f@\e(B "K-o")
-            (?\\e$,1\7fA\e(B "L-o")
-            (?\\e$,1\7fB\e(B "M-o")
-            (?\\e$,1\7fC\e(B "N-o")
-            (?\\e$,1\7fD\e(B "O-o")
-            (?\\e$,1\7fE\e(B "P-o")
-            (?\\e$,1\7fF\e(B "Q-o")
-            (?\\e$,1\7fG\e(B "R-o")
-            (?\\e$,1\7fH\e(B "S-o")
-            (?\\e$,1\7fI\e(B "T-o")
-            (?\\e$,1\7fJ\e(B "U-o")
-            (?\\e$,1\7fK\e(B "V-o")
-            (?\\e$,1\7fL\e(B "W-o")
-            (?\\e$,1\7fM\e(B "X-o")
-            (?\\e$,1\7fN\e(B "Y-o")
-            (?\\e$,1\7fO\e(B "Z-o")
-            (?\\e$,1\7fP\e(B "a-o")
-            (?\\e$,1\7fQ\e(B "b-o")
-            (?\\e$,1\7fR\e(B "c-o")
-            (?\\e$,1\7fS\e(B "d-o")
-            (?\\e$,1\7fT\e(B "e-o")
-            (?\\e$,1\7fU\e(B "f-o")
-            (?\\e$,1\7fV\e(B "g-o")
-            (?\\e$,1\7fW\e(B "h-o")
-            (?\\e$,1\7fX\e(B "i-o")
-            (?\\e$,1\7fY\e(B "j-o")
-            (?\\e$,1\7fZ\e(B "k-o")
-            (?\\e$,1\7f[\e(B "l-o")
-            (?\\e$,1\7f\\e(B "m-o")
-            (?\\e$,1\7f]\e(B "n-o")
-            (?\\e$,1\7f^\e(B "o-o")
-            (?\\e$,1\7f_\e(B "p-o")
-            (?\\e$,1\7f`\e(B "q-o")
-            (?\\e$,1\7fa\e(B "r-o")
-            (?\\e$,1\7fb\e(B "s-o")
-            (?\\e$,1\7fc\e(B "t-o")
-            (?\\e$,1\7fd\e(B "u-o")
-            (?\\e$,1\7fe\e(B "v-o")
-            (?\\e$,1\7ff\e(B "w-o")
-            (?\\e$,1\7fg\e(B "x-o")
-            (?\\e$,1\7fh\e(B "y-o")
-            (?\\e$,1\7fi\e(B "z-o")
-            (?\\e$,1\7fj\e(B "0-o")
-            (?\\e$,2  \e(B "-")
-            (?\\e$,2 !\e(B "=")
-            (?\\e$,2 "\e(B "|")
-            (?\\e$,2 #\e(B "|")
-            (?\\e$,2 $\e(B "-")
-            (?\\e$,2 %\e(B "=")
-            (?\\e$,2 &\e(B "|")
-            (?\\e$,2 '\e(B "|")
-            (?\\e$,2 (\e(B "-")
-            (?\\e$,2 )\e(B "=")
-            (?\\e$,2 *\e(B "|")
-            (?\\e$,2 +\e(B "|")
-            (?\\e$,2 ,\e(B "+")
-            (?\\e$,2 -\e(B "+")
-            (?\\e$,2 .\e(B "+")
-            (?\\e$,2 /\e(B "+")
-            (?\\e$,2 0\e(B "+")
-            (?\\e$,2 1\e(B "+")
-            (?\\e$,2 2\e(B "+")
-            (?\\e$,2 3\e(B "+")
-            (?\\e$,2 4\e(B "+")
-            (?\\e$,2 5\e(B "+")
-            (?\\e$,2 6\e(B "+")
-            (?\\e$,2 7\e(B "+")
-            (?\\e$,2 8\e(B "+")
-            (?\\e$,2 9\e(B "+")
-            (?\\e$,2 :\e(B "+")
-            (?\\e$,2 ;\e(B "+")
-            (?\\e$,2 <\e(B "+")
-            (?\\e$,2 =\e(B "+")
-            (?\\e$,2 >\e(B "+")
-            (?\\e$,2 ?\e(B "+")
-            (?\\e$,2 @\e(B "+")
-            (?\\e$,2 A\e(B "+")
-            (?\\e$,2 B\e(B "+")
-            (?\\e$,2 C\e(B "+")
-            (?\\e$,2 D\e(B "+")
-            (?\\e$,2 E\e(B "+")
-            (?\\e$,2 F\e(B "+")
-            (?\\e$,2 G\e(B "+")
-            (?\\e$,2 H\e(B "+")
-            (?\\e$,2 I\e(B "+")
-            (?\\e$,2 J\e(B "+")
-            (?\\e$,2 K\e(B "+")
-            (?\\e$,2 L\e(B "+")
-            (?\\e$,2 M\e(B "+")
-            (?\\e$,2 N\e(B "+")
-            (?\\e$,2 O\e(B "+")
-            (?\\e$,2 P\e(B "+")
-            (?\\e$,2 Q\e(B "+")
-            (?\\e$,2 R\e(B "+")
-            (?\\e$,2 S\e(B "+")
-            (?\\e$,2 T\e(B "+")
-            (?\\e$,2 U\e(B "+")
-            (?\\e$,2 V\e(B "+")
-            (?\\e$,2 W\e(B "+")
-            (?\\e$,2 X\e(B "+")
-            (?\\e$,2 Y\e(B "+")
-            (?\\e$,2 Z\e(B "+")
-            (?\\e$,2 [\e(B "+")
-            (?\\e$,2 \\e(B "+")
-            (?\\e$,2 ]\e(B "+")
-            (?\\e$,2 ^\e(B "+")
-            (?\\e$,2 _\e(B "+")
-            (?\\e$,2 `\e(B "+")
-            (?\\e$,2 a\e(B "+")
-            (?\\e$,2 b\e(B "+")
-            (?\\e$,2 c\e(B "+")
-            (?\\e$,2 d\e(B "+")
-            (?\\e$,2 e\e(B "+")
-            (?\\e$,2 f\e(B "+")
-            (?\\e$,2 g\e(B "+")
-            (?\\e$,2 h\e(B "+")
-            (?\\e$,2 i\e(B "+")
-            (?\\e$,2 j\e(B "+")
-            (?\\e$,2 k\e(B "+")
-            (?\\e$,2 l\e(B "+")
-            (?\\e$,2 m\e(B "+")
-            (?\\e$,2 n\e(B "+")
-            (?\\e$,2 o\e(B "+")
-            (?\\e$,2 p\e(B "+")
-            (?\\e$,2 q\e(B "+")
-            (?\\e$,2 r\e(B "+")
-            (?\\e$,2 s\e(B "+")
-            (?\\e$,2 t\e(B "+")
-            (?\\e$,2 u\e(B "+")
-            (?\\e$,2 v\e(B "+")
-            (?\\e$,2 w\e(B "+")
-            (?\\e$,2 x\e(B "+")
-            (?\\e$,2 y\e(B "+")
-            (?\\e$,2 z\e(B "+")
-            (?\\e$,2 {\e(B "+")
-            (?\\e$,2 |\e(B "+")
-            (?\\e$,2 }\e(B "+")
-            (?\\e$,2 ~\e(B "+")
-            (?\\e$,2 \7f\e(B "+")
-            (?\\e$,2! \e(B "+")
-            (?\\e$,2!!\e(B "+")
-            (?\\e$,2!"\e(B "+")
-            (?\\e$,2!#\e(B "+")
-            (?\\e$,2!$\e(B "+")
-            (?\\e$,2!%\e(B "+")
-            (?\\e$,2!&\e(B "+")
-            (?\\e$,2!'\e(B "+")
-            (?\\e$,2!(\e(B "+")
-            (?\\e$,2!)\e(B "+")
-            (?\\e$,2!*\e(B "+")
-            (?\\e$,2!+\e(B "+")
-            (?\\e$,2!,\e(B "+")
-            (?\\e$,2!1\e(B "/")
-            (?\\e$,2!2\e(B "\\")
-            (?\\e$,2!@\e(B "TB")
-            (?\\e$,2!D\e(B "LB")
-            (?\\e$,2!H\e(B "FB")
-            (?\\e$,2!L\e(B "lB")
-            (?\\e$,2!P\e(B "RB")
-            (?\\e$,2!Q\e(B ".S")
-            (?\\e$,2!R\e(B ":S")
-            (?\\e$,2!S\e(B "?S")
-            (?\\e$,2!`\e(B "fS")
-            (?\\e$,2!a\e(B "OS")
-            (?\\e$,2!b\e(B "RO")
-            (?\\e$,2!c\e(B "Rr")
-            (?\\e$,2!d\e(B "RF")
-            (?\\e$,2!e\e(B "RY")
-            (?\\e$,2!f\e(B "RH")
-            (?\\e$,2!g\e(B "RZ")
-            (?\\e$,2!h\e(B "RK")
-            (?\\e$,2!i\e(B "RX")
-            (?\\e$,2!j\e(B "sB")
-            (?\\e$,2!l\e(B "SR")
-            (?\\e$,2!m\e(B "Or")
-            (?\\e$,2!r\e(B "^")
-            (?\\e$,2!s\e(B "uT")
-            (?\\e$,2!v\e(B "|>")
-            (?\\e$,2!w\e(B "Tr")
-            (?\\e$,2!z\e(B "|>")
-            (?\\e$,2!|\e(B "v")
-            (?\\e$,2!}\e(B "dT")
-            (?\\e$,2" \e(B "<|")
-            (?\\e$,2"!\e(B "Tl")
-            (?\\e$,2"$\e(B "<|")
-            (?\\e$,2"&\e(B "Db")
-            (?\\e$,2"'\e(B "Dw")
-            (?\\e$,2"*\e(B "LZ")
-            (?\\e$,2"+\e(B "0m")
-            (?\\e$,2".\e(B "0o")
-            (?\\e$,2"/\e(B "0M")
-            (?\\e$,2"0\e(B "0L")
-            (?\\e$,2"1\e(B "0R")
-            (?\\e$,2"8\e(B "Sn")
-            (?\\e$,2"9\e(B "Ic")
-            (?\\e$,2"B\e(B "Fd")
-            (?\\e$,2"C\e(B "Bd")
-            (?\\e$,2"O\e(B "Ci")
-            (?\\e$,2"e\e(B "*2")
-            (?\\e$,2"f\e(B "*1")
-            (?\\e$,2"n\e(B "TEL")
-            (?\\e$,2"o\e(B "tel")
-            (?\\e$,2"|\e(B "<--")
-            (?\\e$,2"~\e(B "-->")
-            (?\\e$,2#!\e(B "CAUTION ")
-            (?\\e$,2#'\e(B "XP")
-            (?\\e$,2#9\e(B ":-(")
-            (?\\e$,2#:\e(B ":-)")
-            (?\\e$,2#;\e(B "(-:")
-            (?\\e$,2#<\e(B "SU")
-            (?\\e$,2#@\e(B "f.")
-            (?\\e$,2#B\e(B "m.")
-            (?\\e$,2#`\e(B "cS")
-            (?\\e$,2#a\e(B "cH")
-            (?\\e$,2#b\e(B "cD")
-            (?\\e$,2#c\e(B "cC")
-            (?\\e$,2#d\e(B "cS-")
-            (?\\e$,2#e\e(B "cH-")
-            (?\\e$,2#f\e(B "cD-")
-            (?\\e$,2#g\e(B "cC-")
-            (?\\e$,2#i\e(B "Md")
-            (?\\e$,2#j\e(B "M8")
-            (?\\e$,2#k\e(B "M2")
-            (?\\e$,2#l\e(B "M16")
-            (?\\e$,2#m\e(B "b")
-            (?\\e$,2#n\e(B "Mx")
-            (?\\e$,2#o\e(B "#")
-            (?\\e$,2%S\e(B "X")
-            (?\\e$,2%W\e(B "X")
-            (?\\e$,2%`\e(B "-X")
-            (?\\e$,2=@\e(B " ")
-            (?\\e$,2=A\e(B ",_")
-            (?\\e$,2=B\e(B "._")
-            (?\\e$,2=C\e(B "+\"")
-            (?\\e$,2=D\e(B "JIS")
-            (?\\e$,2=E\e(B "*_")
-            (?\\e$,2=F\e(B ";_")
-            (?\\e$,2=G\e(B "0_")
-            (?\\e$,2=J\e(B "<+")
-            (?\\e$,2=K\e(B ">+")
-            (?\\e$,2=L\e(B "<'")
-            (?\\e$,2=M\e(B ">'")
-            (?\\e$,2=N\e(B "<\"")
-            (?\\e$,2=O\e(B ">\"")
-            (?\\e$,2=P\e(B "(\"")
-            (?\\e$,2=Q\e(B ")\"")
-            (?\\e$,2=R\e(B "=T")
-            (?\\e$,2=S\e(B "=_")
-            (?\\e$,2=T\e(B "('")
-            (?\\e$,2=U\e(B ")'")
-            (?\\e$,2=V\e(B "(I")
-            (?\\e$,2=W\e(B ")I")
-            (?\\e$,2=Z\e(B "[[")
-            (?\\e$,2=[\e(B "]]")
-            (?\\e$,2=\\e(B "-?")
-            (?\\e$,2=`\e(B "=T:)")
-            (?\\e$,2=\7f\e(B " ")
-            (?\\e$,2>!\e(B "A5")
-            (?\\e$,2>"\e(B "a5")
-            (?\\e$,2>#\e(B "I5")
-            (?\\e$,2>$\e(B "i5")
-            (?\\e$,2>%\e(B "U5")
-            (?\\e$,2>&\e(B "u5")
-            (?\\e$,2>'\e(B "E5")
-            (?\\e$,2>(\e(B "e5")
-            (?\\e$,2>)\e(B "O5")
-            (?\\e$,2>*\e(B "o5")
-            (?\\e$,2>+\e(B "ka")
-            (?\\e$,2>,\e(B "ga")
-            (?\\e$,2>-\e(B "ki")
-            (?\\e$,2>.\e(B "gi")
-            (?\\e$,2>/\e(B "ku")
-            (?\\e$,2>0\e(B "gu")
-            (?\\e$,2>1\e(B "ke")
-            (?\\e$,2>2\e(B "ge")
-            (?\\e$,2>3\e(B "ko")
-            (?\\e$,2>4\e(B "go")
-            (?\\e$,2>5\e(B "sa")
-            (?\\e$,2>6\e(B "za")
-            (?\\e$,2>7\e(B "si")
-            (?\\e$,2>8\e(B "zi")
-            (?\\e$,2>9\e(B "su")
-            (?\\e$,2>:\e(B "zu")
-            (?\\e$,2>;\e(B "se")
-            (?\\e$,2><\e(B "ze")
-            (?\\e$,2>=\e(B "so")
-            (?\\e$,2>>\e(B "zo")
-            (?\\e$,2>?\e(B "ta")
-            (?\\e$,2>@\e(B "da")
-            (?\\e$,2>A\e(B "ti")
-            (?\\e$,2>B\e(B "di")
-            (?\\e$,2>C\e(B "tU")
-            (?\\e$,2>D\e(B "tu")
-            (?\\e$,2>E\e(B "du")
-            (?\\e$,2>F\e(B "te")
-            (?\\e$,2>G\e(B "de")
-            (?\\e$,2>H\e(B "to")
-            (?\\e$,2>I\e(B "do")
-            (?\\e$,2>J\e(B "na")
-            (?\\e$,2>K\e(B "ni")
-            (?\\e$,2>L\e(B "nu")
-            (?\\e$,2>M\e(B "ne")
-            (?\\e$,2>N\e(B "no")
-            (?\\e$,2>O\e(B "ha")
-            (?\\e$,2>P\e(B "ba")
-            (?\\e$,2>Q\e(B "pa")
-            (?\\e$,2>R\e(B "hi")
-            (?\\e$,2>S\e(B "bi")
-            (?\\e$,2>T\e(B "pi")
-            (?\\e$,2>U\e(B "hu")
-            (?\\e$,2>V\e(B "bu")
-            (?\\e$,2>W\e(B "pu")
-            (?\\e$,2>X\e(B "he")
-            (?\\e$,2>Y\e(B "be")
-            (?\\e$,2>Z\e(B "pe")
-            (?\\e$,2>[\e(B "ho")
-            (?\\e$,2>\\e(B "bo")
-            (?\\e$,2>]\e(B "po")
-            (?\\e$,2>^\e(B "ma")
-            (?\\e$,2>_\e(B "mi")
-            (?\\e$,2>`\e(B "mu")
-            (?\\e$,2>a\e(B "me")
-            (?\\e$,2>b\e(B "mo")
-            (?\\e$,2>c\e(B "yA")
-            (?\\e$,2>d\e(B "ya")
-            (?\\e$,2>e\e(B "yU")
-            (?\\e$,2>f\e(B "yu")
-            (?\\e$,2>g\e(B "yO")
-            (?\\e$,2>h\e(B "yo")
-            (?\\e$,2>i\e(B "ra")
-            (?\\e$,2>j\e(B "ri")
-            (?\\e$,2>k\e(B "ru")
-            (?\\e$,2>l\e(B "re")
-            (?\\e$,2>m\e(B "ro")
-            (?\\e$,2>n\e(B "wA")
-            (?\\e$,2>o\e(B "wa")
-            (?\\e$,2>p\e(B "wi")
-            (?\\e$,2>q\e(B "we")
-            (?\\e$,2>r\e(B "wo")
-            (?\\e$,2>s\e(B "n5")
-            (?\\e$,2>t\e(B "vu")
-            (?\\e$,2>{\e(B "\"5")
-            (?\\e$,2>|\e(B "05")
-            (?\\e$,2>}\e(B "*5")
-            (?\\e$,2>~\e(B "+5")
-            (?\\e$,2?!\e(B "a6")
-            (?\\e$,2?"\e(B "A6")
-            (?\\e$,2?#\e(B "i6")
-            (?\\e$,2?$\e(B "I6")
-            (?\\e$,2?%\e(B "u6")
-            (?\\e$,2?&\e(B "U6")
-            (?\\e$,2?'\e(B "e6")
-            (?\\e$,2?(\e(B "E6")
-            (?\\e$,2?)\e(B "o6")
-            (?\\e$,2?*\e(B "O6")
-            (?\\e$,2?+\e(B "Ka")
-            (?\\e$,2?,\e(B "Ga")
-            (?\\e$,2?-\e(B "Ki")
-            (?\\e$,2?.\e(B "Gi")
-            (?\\e$,2?/\e(B "Ku")
-            (?\\e$,2?0\e(B "Gu")
-            (?\\e$,2?1\e(B "Ke")
-            (?\\e$,2?2\e(B "Ge")
-            (?\\e$,2?3\e(B "Ko")
-            (?\\e$,2?4\e(B "Go")
-            (?\\e$,2?5\e(B "Sa")
-            (?\\e$,2?6\e(B "Za")
-            (?\\e$,2?7\e(B "Si")
-            (?\\e$,2?8\e(B "Zi")
-            (?\\e$,2?9\e(B "Su")
-            (?\\e$,2?:\e(B "Zu")
-            (?\\e$,2?;\e(B "Se")
-            (?\\e$,2?<\e(B "Ze")
-            (?\\e$,2?=\e(B "So")
-            (?\\e$,2?>\e(B "Zo")
-            (?\\e$,2??\e(B "Ta")
-            (?\\e$,2?@\e(B "Da")
-            (?\\e$,2?A\e(B "Ti")
-            (?\\e$,2?B\e(B "Di")
-            (?\\e$,2?C\e(B "TU")
-            (?\\e$,2?D\e(B "Tu")
-            (?\\e$,2?E\e(B "Du")
-            (?\\e$,2?F\e(B "Te")
-            (?\\e$,2?G\e(B "De")
-            (?\\e$,2?H\e(B "To")
-            (?\\e$,2?I\e(B "Do")
-            (?\\e$,2?J\e(B "Na")
-            (?\\e$,2?K\e(B "Ni")
-            (?\\e$,2?L\e(B "Nu")
-            (?\\e$,2?M\e(B "Ne")
-            (?\\e$,2?N\e(B "No")
-            (?\\e$,2?O\e(B "Ha")
-            (?\\e$,2?P\e(B "Ba")
-            (?\\e$,2?Q\e(B "Pa")
-            (?\\e$,2?R\e(B "Hi")
-            (?\\e$,2?S\e(B "Bi")
-            (?\\e$,2?T\e(B "Pi")
-            (?\\e$,2?U\e(B "Hu")
-            (?\\e$,2?V\e(B "Bu")
-            (?\\e$,2?W\e(B "Pu")
-            (?\\e$,2?X\e(B "He")
-            (?\\e$,2?Y\e(B "Be")
-            (?\\e$,2?Z\e(B "Pe")
-            (?\\e$,2?[\e(B "Ho")
-            (?\\e$,2?\\e(B "Bo")
-            (?\\e$,2?]\e(B "Po")
-            (?\\e$,2?^\e(B "Ma")
-            (?\\e$,2?_\e(B "Mi")
-            (?\\e$,2?`\e(B "Mu")
-            (?\\e$,2?a\e(B "Me")
-            (?\\e$,2?b\e(B "Mo")
-            (?\\e$,2?c\e(B "YA")
-            (?\\e$,2?d\e(B "Ya")
-            (?\\e$,2?e\e(B "YU")
-            (?\\e$,2?f\e(B "Yu")
-            (?\\e$,2?g\e(B "YO")
-            (?\\e$,2?h\e(B "Yo")
-            (?\\e$,2?i\e(B "Ra")
-            (?\\e$,2?j\e(B "Ri")
-            (?\\e$,2?k\e(B "Ru")
-            (?\\e$,2?l\e(B "Re")
-            (?\\e$,2?m\e(B "Ro")
-            (?\\e$,2?n\e(B "WA")
-            (?\\e$,2?o\e(B "Wa")
-            (?\\e$,2?p\e(B "Wi")
-            (?\\e$,2?q\e(B "We")
-            (?\\e$,2?r\e(B "Wo")
-            (?\\e$,2?s\e(B "N6")
-            (?\\e$,2?t\e(B "Vu")
-            (?\\e$,2?u\e(B "KA")
-            (?\\e$,2?v\e(B "KE")
-            (?\\e$,2?w\e(B "Va")
-            (?\\e$,2?x\e(B "Vi")
-            (?\\e$,2?y\e(B "Ve")
-            (?\\e$,2?z\e(B "Vo")
-            (?\\e$,2?{\e(B ".6")
-            (?\\e$,2?|\e(B "-6")
-            (?\\e$,2?}\e(B "*6")
-            (?\\e$,2?~\e(B "+6")
-            (?\\e$,2@%\e(B "b4")
-            (?\\e$,2@&\e(B "p4")
-            (?\\e$,2@'\e(B "m4")
-            (?\\e$,2@(\e(B "f4")
-            (?\\e$,2@)\e(B "d4")
-            (?\\e$,2@*\e(B "t4")
-            (?\\e$,2@+\e(B "n4")
-            (?\\e$,2@,\e(B "l4")
-            (?\\e$,2@-\e(B "g4")
-            (?\\e$,2@.\e(B "k4")
-            (?\\e$,2@/\e(B "h4")
-            (?\\e$,2@0\e(B "j4")
-            (?\\e$,2@1\e(B "q4")
-            (?\\e$,2@2\e(B "x4")
-            (?\\e$,2@3\e(B "zh")
-            (?\\e$,2@4\e(B "ch")
-            (?\\e$,2@5\e(B "sh")
-            (?\\e$,2@6\e(B "r4")
-            (?\\e$,2@7\e(B "z4")
-            (?\\e$,2@8\e(B "c4")
-            (?\\e$,2@9\e(B "s4")
-            (?\\e$,2@:\e(B "a4")
-            (?\\e$,2@;\e(B "o4")
-            (?\\e$,2@<\e(B "e4")
-            (?\\e$,2@=\e(B "eh4")
-            (?\\e$,2@>\e(B "ai")
-            (?\\e$,2@?\e(B "ei")
-            (?\\e$,2@@\e(B "au")
-            (?\\e$,2@A\e(B "ou")
-            (?\\e$,2@B\e(B "an")
-            (?\\e$,2@C\e(B "en")
-            (?\\e$,2@D\e(B "aN")
-            (?\\e$,2@E\e(B "eN")
-            (?\\e$,2@F\e(B "er")
-            (?\\e$,2@G\e(B "i4")
-            (?\\e$,2@H\e(B "u4")
-            (?\\e$,2@I\e(B "iu")
-            (?\\e$,2@J\e(B "v4")
-            (?\\e$,2@K\e(B "nG")
-            (?\\e$,2@L\e(B "gn")
-            (?\\e$,2B|\e(B "(JU)")
-            (?\\e$,2C \e(B "1c")
-            (?\\e$,2C!\e(B "2c")
-            (?\\e$,2C"\e(B "3c")
-            (?\\e$,2C#\e(B "4c")
-            (?\\e$,2C$\e(B "5c")
-            (?\\e$,2C%\e(B "6c")
-            (?\\e$,2C&\e(B "7c")
-            (?\\e$,2C'\e(B "8c")
-            (?\\e$,2C(\e(B "9c")
-            (?\\e$,2C)\e(B "10c")
-            (?\\e$,2C\7f\e(B "KSC")
-            (?\\e$,2GB\e(B "am")
-            (?\\e$,2GX\e(B "pm")
-            (?\\e$,3h \e(B "ff")
-            (?\\e$,3h!\e(B "fi")
-            (?\\e$,3h"\e(B "fl")
-            (?\\e$,3h#\e(B "ffi")
-            (?\\e$,3h$\e(B "ffl")
-            (?\\e$,3h%\e(B "St")
-            (?\\e$,3h&\e(B "st")
-            (?\\e$,3q=\e(B "3+;")
-            (?\\e$,3qB\e(B "aM.")
-            (?\\e$,3qD\e(B "aH.")
-            (?\\e$,3qH\e(B "ah.")
-            (?\\e$,3qM\e(B "a+-")
-            (?\\e$,3qN\e(B "a+.")
-            (?\\e$,3qO\e(B "b+-")
-            (?\\e$,3qP\e(B "b+.")
-            (?\\e$,3qQ\e(B "b+,")
-            (?\\e$,3qR\e(B "b+;")
-            (?\\e$,3qS\e(B "tm-")
-            (?\\e$,3qT\e(B "tm.")
-            (?\\e$,3qU\e(B "t+-")
-            (?\\e$,3qV\e(B "t+.")
-            (?\\e$,3qW\e(B "t+,")
-            (?\\e$,3qX\e(B "t+;")
-            (?\\e$,3qY\e(B "tk-")
-            (?\\e$,3qZ\e(B "tk.")
-            (?\\e$,3q[\e(B "tk,")
-            (?\\e$,3q\\e(B "tk;")
-            (?\\e$,3q]\e(B "g+-")
-            (?\\e$,3q^\e(B "g+.")
-            (?\\e$,3q_\e(B "g+,")
-            (?\\e$,3q`\e(B "g+;")
-            (?\\e$,3qa\e(B "hk-")
-            (?\\e$,3qb\e(B "hk.")
-            (?\\e$,3qc\e(B "hk,")
-            (?\\e$,3qd\e(B "hk;")
-            (?\\e$,3qe\e(B "x+-")
-            (?\\e$,3qf\e(B "x+.")
-            (?\\e$,3qg\e(B "x+,")
-            (?\\e$,3qh\e(B "x+;")
-            (?\\e$,3qi\e(B "d+-")
-            (?\\e$,3qj\e(B "d+.")
-            (?\\e$,3qk\e(B "dk-")
-            (?\\e$,3ql\e(B "dk.")
-            (?\\e$,3qm\e(B "r+-")
-            (?\\e$,3qn\e(B "r+.")
-            (?\\e$,3qo\e(B "z+-")
-            (?\\e$,3qp\e(B "z+.")
-            (?\\e$,3qq\e(B "s+-")
-            (?\\e$,3qr\e(B "s+.")
-            (?\\e$,3qs\e(B "s+,")
-            (?\\e$,3qt\e(B "s+;")
-            (?\\e$,3qu\e(B "sn-")
-            (?\\e$,3qv\e(B "sn.")
-            (?\\e$,3qw\e(B "sn,")
-            (?\\e$,3qx\e(B "sn;")
-            (?\\e$,3qy\e(B "c+-")
-            (?\\e$,3qz\e(B "c+.")
-            (?\\e$,3q{\e(B "c+,")
-            (?\\e$,3q|\e(B "c+;")
-            (?\\e$,3q}\e(B "dd-")
-            (?\\e$,3q~\e(B "dd.")
-            (?\\e$,3q\7f\e(B "dd,")
-            (?\\e$,3r \e(B "dd;")
-            (?\\e$,3r!\e(B "tj-")
-            (?\\e$,3r"\e(B "tj.")
-            (?\\e$,3r#\e(B "tj,")
-            (?\\e$,3r$\e(B "tj;")
-            (?\\e$,3r%\e(B "zH-")
-            (?\\e$,3r&\e(B "zH.")
-            (?\\e$,3r'\e(B "zH,")
-            (?\\e$,3r(\e(B "zH;")
-            (?\\e$,3r)\e(B "e+-")
-            (?\\e$,3r*\e(B "e+.")
-            (?\\e$,3r+\e(B "e+,")
-            (?\\e$,3r,\e(B "e+;")
-            (?\\e$,3r-\e(B "i+-")
-            (?\\e$,3r.\e(B "i+.")
-            (?\\e$,3r/\e(B "i+,")
-            (?\\e$,3r0\e(B "i+;")
-            (?\\e$,3r1\e(B "f+-")
-            (?\\e$,3r2\e(B "f+.")
-            (?\\e$,3r3\e(B "f+,")
-            (?\\e$,3r4\e(B "f+;")
-            (?\\e$,3r5\e(B "q+-")
-            (?\\e$,3r6\e(B "q+.")
-            (?\\e$,3r7\e(B "q+,")
-            (?\\e$,3r8\e(B "q+;")
-            (?\\e$,3r9\e(B "k+-")
-            (?\\e$,3r:\e(B "k+.")
-            (?\\e$,3r;\e(B "k+,")
-            (?\\e$,3r<\e(B "k+;")
-            (?\\e$,3r=\e(B "l+-")
-            (?\\e$,3r>\e(B "l+.")
-            (?\\e$,3r?\e(B "l+,")
-            (?\\e$,3r@\e(B "l+;")
-            (?\\e$,3rA\e(B "m+-")
-            (?\\e$,3rB\e(B "m+.")
-            (?\\e$,3rC\e(B "m+,")
-            (?\\e$,3rD\e(B "m+;")
-            (?\\e$,3rE\e(B "n+-")
-            (?\\e$,3rF\e(B "n+.")
-            (?\\e$,3rG\e(B "n+,")
-            (?\\e$,3rH\e(B "n+;")
-            (?\\e$,3rI\e(B "h+-")
-            (?\\e$,3rJ\e(B "h+.")
-            (?\\e$,3rK\e(B "h+,")
-            (?\\e$,3rL\e(B "h+;")
-            (?\\e$,3rM\e(B "w+-")
-            (?\\e$,3rN\e(B "w+.")
-            (?\\e$,3rO\e(B "j+-")
-            (?\\e$,3rP\e(B "j+.")
-            (?\\e$,3rQ\e(B "y+-")
-            (?\\e$,3rR\e(B "y+.")
-            (?\\e$,3rS\e(B "y+,")
-            (?\\e$,3rT\e(B "y+;")
-            (?\\e$,3rU\e(B "lM-")
-            (?\\e$,3rV\e(B "lM.")
-            (?\\e$,3rW\e(B "lH-")
-            (?\\e$,3rX\e(B "lH.")
-            (?\\e$,3rY\e(B "lh-")
-            (?\\e$,3rZ\e(B "lh.")
-            (?\\e$,3r[\e(B "la-")
-            (?\\e$,3r\\e(B "la.")
-            (?\\e$,3ra\e(B "!")
-            (?\\e$,3rb\e(B "\"")
-            (?\\e$,3rc\e(B "#")
-            (?\\e$,3rd\e(B "$")
-            (?\\e$,3re\e(B "%")
-            (?\\e$,3rf\e(B "&")
-            (?\\e$,3rg\e(B "'")
-            (?\\e$,3rh\e(B "(")
-            (?\\e$,3ri\e(B ")")
-            (?\\e$,3rj\e(B "*")
-            (?\\e$,3rk\e(B "+")
-            (?\\e$,3rl\e(B ",")
-            (?\\e$,3rm\e(B "-")
-            (?\\e$,3rn\e(B ".")
-            (?\\e$,3ro\e(B "/")
-            (?\\e$,3rp\e(B "0")
-            (?\\e$,3rq\e(B "1")
-            (?\\e$,3rr\e(B "2")
-            (?\\e$,3rs\e(B "3")
-            (?\\e$,3rt\e(B "4")
-            (?\\e$,3ru\e(B "5")
-            (?\\e$,3rv\e(B "6")
-            (?\\e$,3rw\e(B "7")
-            (?\\e$,3rx\e(B "8")
-            (?\\e$,3ry\e(B "9")
-            (?\\e$,3rz\e(B ":")
-            (?\\e$,3r{\e(B ";")
-            (?\\e$,3r|\e(B "<")
-            (?\\e$,3r}\e(B "=")
-            (?\\e$,3r~\e(B ">")
-            (?\\e$,3r\7f\e(B "?")
-            (?\\e$,3s \e(B "@")
-            (?\\e$,3s!\e(B "A")
-            (?\\e$,3s"\e(B "B")
-            (?\\e$,3s#\e(B "C")
-            (?\\e$,3s$\e(B "D")
-            (?\\e$,3s%\e(B "E")
-            (?\\e$,3s&\e(B "F")
-            (?\\e$,3s'\e(B "G")
-            (?\\e$,3s(\e(B "H")
-            (?\\e$,3s)\e(B "I")
-            (?\\e$,3s*\e(B "J")
-            (?\\e$,3s+\e(B "K")
-            (?\\e$,3s,\e(B "L")
-            (?\\e$,3s-\e(B "M")
-            (?\\e$,3s.\e(B "N")
-            (?\\e$,3s/\e(B "O")
-            (?\\e$,3s0\e(B "P")
-            (?\\e$,3s1\e(B "Q")
-            (?\\e$,3s2\e(B "R")
-            (?\\e$,3s3\e(B "S")
-            (?\\e$,3s4\e(B "T")
-            (?\\e$,3s5\e(B "U")
-            (?\\e$,3s6\e(B "V")
-            (?\\e$,3s7\e(B "W")
-            (?\\e$,3s8\e(B "X")
-            (?\\e$,3s9\e(B "Y")
-            (?\\e$,3s:\e(B "Z")
-            (?\\e$,3s;\e(B "[")
-            (?\\e$,3s<\e(B "\\")
-            (?\\e$,3s=\e(B "]")
-            (?\\e$,3s>\e(B "^")
-            (?\\e$,3s?\e(B "_")
-            (?\\e$,3s@\e(B "`")
-            (?\\e$,3sA\e(B "a")
-            (?\\e$,3sB\e(B "b")
-            (?\\e$,3sC\e(B "c")
-            (?\\e$,3sD\e(B "d")
-            (?\\e$,3sE\e(B "e")
-            (?\\e$,3sF\e(B "f")
-            (?\\e$,3sG\e(B "g")
-            (?\\e$,3sH\e(B "h")
-            (?\\e$,3sI\e(B "i")
-            (?\\e$,3sJ\e(B "j")
-            (?\\e$,3sK\e(B "k")
-            (?\\e$,3sL\e(B "l")
-            (?\\e$,3sM\e(B "m")
-            (?\\e$,3sN\e(B "n")
-            (?\\e$,3sO\e(B "o")
-            (?\\e$,3sP\e(B "p")
-            (?\\e$,3sQ\e(B "q")
-            (?\\e$,3sR\e(B "r")
-            (?\\e$,3sS\e(B "s")
-            (?\\e$,3sT\e(B "t")
-            (?\\e$,3sU\e(B "u")
-            (?\\e$,3sV\e(B "v")
-            (?\\e$,3sW\e(B "w")
-            (?\\e$,3sX\e(B "x")
-            (?\\e$,3sY\e(B "y")
-            (?\\e$,3sZ\e(B "z")
-            (?\\e$,3s[\e(B "{")
-            (?\\e$,3s\\e(B "|")
-            (?\\e$,3s]\e(B "}")
-            (?\\e$,3s^\e(B "~")
-            (?\\e$,3sa\e(B ".")
-            (?\\e$,3sb\e(B "\"")
-            (?\\e$,3sc\e(B "\"")
-            (?\\e$,3sd\e(B ",")
+          '((?\Ā "A")
+            (?\ā "a")
+            (?\Ă "A")
+            (?\ă "a")
+            (?\Ą "A")
+            (?\ą "a")
+            (?\Ć "C")
+            (?\ć "c")
+            (?\Ĉ "C")
+            (?\ĉ "c")
+            (?\Ċ "C")
+            (?\ċ "c")
+            (?\Č "C")
+            (?\č "c")
+            (?\Ď "D")
+            (?\ď "d")
+            (?\Đ "Ð")
+            (?\đ "d/")
+            (?\Ē "E")
+            (?\ē "e")
+            (?\Ĕ "E")
+            (?\ĕ "e")
+            (?\Ė "E")
+            (?\ė "e")
+            (?\Ę "E")
+            (?\ę "e")
+            (?\Ě "E")
+            (?\ě "e")
+            (?\Ĝ "G")
+            (?\ĝ "g")
+            (?\Ğ "G")
+            (?\ğ "g")
+            (?\Ġ "G")
+            (?\ġ "g")
+            (?\Ģ "G")
+            (?\ģ "g")
+            (?\Ĥ "H")
+            (?\ĥ "h")
+            (?\Ħ "H/")
+            (?\ħ "H")
+            (?\Ĩ "I")
+            (?\ĩ "i")
+            (?\Ī "I")
+            (?\ī "i")
+            (?\Ĭ "I")
+            (?\ĭ "i")
+            (?\Į "I")
+            (?\į "i")
+            (?\İ "I")
+            (?\ı "i")
+            (?\IJ "IJ")
+            (?\ij "ij")
+            (?\Ĵ "J")
+            (?\ĵ "j")
+            (?\Ķ "K")
+            (?\ķ "k")
+            (?\ĸ "kk")
+            (?\Ĺ "L")
+            (?\ĺ "l")
+            (?\Ļ "L")
+            (?\ļ "l")
+            (?\Ľ "L")
+            (?\ľ "l")
+            (?\Ŀ "L.")
+            (?\ŀ "l.")
+            (?\Ł "L/")
+            (?\ł "l/")
+            (?\Ń "N")
+            (?\ń "n")
+            (?\Ņ "N")
+            (?\ņ "n")
+            (?\Ň "N")
+            (?\ň "n")
+            (?\ʼn "'n")
+            (?\Ŋ "NG")
+            (?\ŋ "N")
+            (?\Ō "O")
+            (?\ō "o")
+            (?\Ŏ "O")
+            (?\ŏ "o")
+            (?\Ő "O\"")
+            (?\ő "o\"")
+            (?\Œ "OE")
+            (?\œ "oe")
+            (?\Ŕ "R")
+            (?\ŕ "r")
+            (?\Ŗ "R")
+            (?\ŗ "r")
+            (?\Ř "R")
+            (?\ř "r")
+            (?\Ś "S")
+            (?\ś "s")
+            (?\Ŝ "S")
+            (?\ŝ "s")
+            (?\Ş "S")
+            (?\ş "s")
+            (?\Š "S")
+            (?\š "s")
+            (?\Ţ "T")
+            (?\ţ "t")
+            (?\Ť "T")
+            (?\ť "t")
+            (?\Ŧ "T/")
+            (?\ŧ "t/")
+            (?\Ũ "U")
+            (?\ũ "u")
+            (?\Ū "U")
+            (?\ū "u")
+            (?\Ŭ "U")
+            (?\ŭ "u")
+            (?\Ů "U")
+            (?\ů "u")
+            (?\Ű "U\"")
+            (?\ű "u\"")
+            (?\Ų "U")
+            (?\ų "u")
+            (?\Ŵ "W")
+            (?\ŵ "w")
+            (?\Ŷ "Y")
+            (?\ŷ "y")
+            (?\Ÿ "Y")
+            (?\Ź "Z")
+            (?\ź "z")
+            (?\Ż "Z")
+            (?\ż "z")
+            (?\Ž "Z")
+            (?\ž "z")
+            (?\ſ "s1")
+            (?\Ƈ "C2")
+            (?\ƈ "c2")
+            (?\Ƒ "F2")
+            (?\ƒ " f")
+            (?\Ƙ "K2")
+            (?\ƙ "k2")
+            (?\Ơ "O9")
+            (?\ơ "o9")
+            (?\Ƣ "OI")
+            (?\ƣ "oi")
+            (?\Ʀ "yr")
+            (?\Ư "U9")
+            (?\ư "u9")
+            (?\Ƶ "Z/")
+            (?\ƶ "z/")
+            (?\Ʒ "ED")
+            (?\Ǎ "A")
+            (?\ǎ "a")
+            (?\Ǐ "I")
+            (?\ǐ "i")
+            (?\Ǒ "O")
+            (?\ǒ "o")
+            (?\Ǔ "U")
+            (?\ǔ "u")
+            (?\Ǖ "U:-")
+            (?\ǖ "u:-")
+            (?\Ǘ "U:'")
+            (?\ǘ "u:'")
+            (?\Ǚ "U:<")
+            (?\ǚ "u:<")
+            (?\Ǜ "U:!")
+            (?\ǜ "u:!")
+            (?\Ǟ "A1")
+            (?\ǟ "a1")
+            (?\Ǡ "A7")
+            (?\ǡ "a7")
+            (?\Ǣ "A3")
+            (?\ǣ "a3")
+            (?\Ǥ "G/")
+            (?\ǥ "g/")
+            (?\Ǧ "G")
+            (?\ǧ "g")
+            (?\Ǩ "K")
+            (?\ǩ "k")
+            (?\Ǫ "O")
+            (?\ǫ "o")
+            (?\Ǭ "O1")
+            (?\ǭ "o1")
+            (?\Ǯ "EZ")
+            (?\ǯ "ez")
+            (?\ǰ "j")
+            (?\Ǵ "G")
+            (?\ǵ "g")
+            (?\Ǻ "AA'")
+            (?\ǻ "aa'")
+            (?\Ǽ "AE'")
+            (?\ǽ "ae'")
+            (?\Ǿ "O/'")
+            (?\ǿ "o/'")
+            (?\Ȁ "A!!")
+            (?\ȁ "a!!")
+            (?\Ȃ "A)")
+            (?\ȃ "a)")
+            (?\Ȅ "E!!")
+            (?\ȅ "e!!")
+            (?\Ȇ "E)")
+            (?\ȇ "e)")
+            (?\Ȉ "I!!")
+            (?\ȉ "i!!")
+            (?\Ȋ "I)")
+            (?\ȋ "i)")
+            (?\Ȍ "O!!")
+            (?\ȍ "o!!")
+            (?\Ȏ "O)")
+            (?\ȏ "o)")
+            (?\Ȑ "R!!")
+            (?\ȑ "r!!")
+            (?\Ȓ "R)")
+            (?\ȓ "r)")
+            (?\Ȕ "U!!")
+            (?\ȕ "u!!")
+            (?\Ȗ "U)")
+            (?\ȗ "u)")
+            (?\ȝ "Z")
+            (?\ɑ "A")
+            (?\ɒ "A.")
+            (?\ɓ "b`")
+            (?\ɔ "O")
+            (?\ɖ "d.")
+            (?\ɗ "d`")
+            (?\ɘ "@<umd>")
+            (?\ə "@")
+            (?\ɚ "R")
+            (?\ɛ "E")
+            (?\ɜ "V\"")
+            (?\ɝ "R<umd>")
+            (?\ɞ "O\"")
+            (?\ɟ "J")
+            (?\ɠ "g`")
+            (?\ɡ "g")
+            (?\ɢ "G")
+            (?\ɣ "Q")
+            (?\ɤ "o-")
+            (?\ɥ "j<rnd>")
+            (?\ɦ "h<?>")
+            (?\ɨ "i\"")
+            (?\ɩ "I")
+            (?\ɪ "I")
+            (?\ɫ "L")
+            (?\ɬ "L")
+            (?\ɭ "l.")
+            (?\ɮ "z<lat>")
+            (?\ɯ "u-")
+            (?\ɰ "j<vel>")
+            (?\ɱ "M")
+            (?\ɳ "n.")
+            (?\ɴ "n\"")
+            (?\ɵ "@.")
+            (?\ɶ "&.")
+            (?\ɷ "U")
+            (?\ɹ "r")
+            (?\ɺ "*<lat>")
+            (?\ɻ "r.")
+            (?\ɽ "*.")
+            (?\ɾ "*")
+            (?\ʀ "R")
+            (?\ʁ "g\"")
+            (?\ʂ "s.")
+            (?\ʃ "S")
+            (?\ʄ "J`")
+            (?\ʇ "t!")
+            (?\ʈ "t.")
+            (?\ʉ "u\"")
+            (?\ʊ "U")
+            (?\ʋ "r<lbd>")
+            (?\ʌ "V")
+            (?\ʍ "w<vls>")
+            (?\ʎ "l^")
+            (?\ʏ "I.")
+            (?\ʐ "z.")
+            (?\ʒ "Z")
+            (?\ʔ "?")
+            (?\ʕ "H<vcd>")
+            (?\ʖ "l!")
+            (?\ʗ "c!")
+            (?\ʘ "p!")
+            (?\ʙ "b<trl>")
+            (?\ʛ "G`")
+            (?\ʝ "j")
+            (?\ʞ "k!")
+            (?\ʟ "L")
+            (?\ʠ "q`")
+            (?\ʤ "d3")
+            (?\ʦ "ts")
+            (?\ʧ "tS")
+            (?\ʰ "<h>")
+            (?\ʱ "<?>")
+            (?\ʲ ";")
+            (?\ʳ "<r>")
+            (?\ʷ "<w>")
+            (?\ʻ ";S")
+            (?\ʼ "`")
+            (?\ˆ "^")
+            (?\ˇ "'<")
+            (?\ˈ "|")
+            (?\ˉ "1-")
+            (?\ˋ "1!")
+            (?\ː ":")
+            (?\ˑ ":\\")
+            (?\˖ "+")
+            (?\˗ "-")
+            (?\˘ "'(")
+            (?\˙ "'.")
+            (?\˚ "'0")
+            (?\˛ "';")
+            (?\˜ "~")
+            (?\˝ "'\"")
+            (?\˥ "_T")
+            (?\˦ "_H")
+            (?\˧ "_M")
+            (?\˨ "_L")
+            (?\˩ "_B")
+            (?\ˬ "_v")
+            (?\ˮ "''")
+            (?\̀ "`")
+            (?\́ "'")
+            (?\̂ "^")
+            (?\̃ "~")
+            (?\̄ "¯")
+            (?\̇ "·")
+            (?\̈ "¨")
+            (?\̊ "°")
+            (?\̋ "''")
+            (?\̍ "|")
+            (?\̎ "||")
+            (?\̏ "``")
+            (?\̡ ";")
+            (?\̢ ".")
+            (?\̣ ".")
+            (?\̤ "<?>")
+            (?\̥ "<o>")
+            (?\̦ ",")
+            (?\̧ "¸")
+            (?\̩ "-")
+            (?\̪ "[")
+            (?\̫ "<w>")
+            (?\̴ "~")
+            (?\̷ "/")
+            (?\̸ "/")
+            (?\̀ "`")
+            (?\́ "'")
+            (?\͂ "~")
+            (?\̈́ "'%")
+            (?\ͅ "j3")
+            (?\͇ "=")
+            (?\͠ "~~")
+            (?\ʹ "'")
+            (?\͵ ",")
+            (?\ͺ "j3")
+            (?\; "?%")
+            (?\΄ "'*")
+            (?\΅ "'%")
+            (?\Ά "A'")
+            (?\· "·")
+            (?\Έ "E'")
+            (?\Ή "Y%")
+            (?\Ί "I'")
+            (?\Ό "O'")
+            (?\Ύ "U%")
+            (?\Ώ "W%")
+            (?\ΐ "i3")
+            (?\Α "A")
+            (?\Β "B")
+            (?\Γ "G")
+            (?\Δ "D")
+            (?\Ε "E")
+            (?\Ζ "Z")
+            (?\Η "Y")
+            (?\Θ "TH")
+            (?\Ι "I")
+            (?\Κ "K")
+            (?\Λ "L")
+            (?\Μ "M")
+            (?\Ν "N")
+            (?\Ξ "C")
+            (?\Ο "O")
+            (?\Π "P")
+            (?\Ρ "R")
+            (?\Σ "S")
+            (?\Τ "T")
+            (?\Υ "U")
+            (?\Φ "F")
+            (?\Χ "X")
+            (?\Ψ "Q")
+            (?\Ω "W*")
+            (?\Ϊ "J")
+            (?\Ϋ "V*")
+            (?\ά "a'")
+            (?\έ "e'")
+            (?\ή "y%")
+            (?\ί "i'")
+            (?\ΰ "u3")
+            (?\α "a")
+            (?\β "b")
+            (?\γ "g")
+            (?\δ "d")
+            (?\ε "e")
+            (?\ζ "z")
+            (?\η "y")
+            (?\θ "th")
+            (?\ι "i")
+            (?\κ "k")
+            (?\λ "l")
+            (?\μ "µ")
+            (?\ν "n")
+            (?\ξ "c")
+            (?\ο "o")
+            (?\π "p")
+            (?\ρ "r")
+            (?\ς "*s")
+            (?\σ "s")
+            (?\τ "t")
+            (?\υ "u")
+            (?\φ "f")
+            (?\χ "x")
+            (?\ψ "q")
+            (?\ω "w")
+            (?\ϊ "j")
+            (?\ϋ "v*")
+            (?\ό "o'")
+            (?\ύ "u%")
+            (?\ώ "w%")
+            (?\ϐ "beta ")
+            (?\ϑ "theta ")
+            (?\ϒ "upsi ")
+            (?\ϕ "phi ")
+            (?\ϖ "pi ")
+            (?\ϗ "k.")
+            (?\Ϛ "T3")
+            (?\ϛ "t3")
+            (?\Ϝ "M3")
+            (?\ϝ "m3")
+            (?\Ϟ "K3")
+            (?\ϟ "k3")
+            (?\Ϡ "P3")
+            (?\ϡ "p3")
+            (?\ϰ "kappa ")
+            (?\ϱ "rho ")
+            (?\ϳ "J")
+            (?\ϴ "'%")
+            (?\ϵ "j3")
+            (?\Ё "IO")
+            (?\Ђ "D%")
+            (?\Ѓ "G%")
+            (?\Є "IE")
+            (?\Ѕ "DS")
+            (?\І "II")
+            (?\Ї "YI")
+            (?\Ј "J%")
+            (?\Љ "LJ")
+            (?\Њ "NJ")
+            (?\Ћ "Ts")
+            (?\Ќ "KJ")
+            (?\Ў "V%")
+            (?\Џ "DZ")
+            (?\А "A")
+            (?\Б "B")
+            (?\В "V")
+            (?\Г "G")
+            (?\Д "D")
+            (?\Е "E")
+            (?\Ж "ZH")
+            (?\З "Z")
+            (?\И "I")
+            (?\Й "J")
+            (?\К "K")
+            (?\Л "L")
+            (?\М "M")
+            (?\Н "N")
+            (?\О "O")
+            (?\П "P")
+            (?\Р "R")
+            (?\С "S")
+            (?\Т "T")
+            (?\У "U")
+            (?\Ф "F")
+            (?\Х "H")
+            (?\Ц "C")
+            (?\Ч "CH")
+            (?\Ш "SH")
+            (?\Щ "SCH")
+            (?\Ъ "\"")
+            (?\Ы "Y")
+            (?\Ь "'")
+            (?\Э "`E")
+            (?\Ю "YU")
+            (?\Я "YA")
+            (?\а "a")
+            (?\б "b")
+            (?\в "v")
+            (?\г "g")
+            (?\д "d")
+            (?\е "e")
+            (?\ж "zh")
+            (?\з "z")
+            (?\и "i")
+            (?\й "j")
+            (?\к "k")
+            (?\л "l")
+            (?\м "m")
+            (?\н "n")
+            (?\о "o")
+            (?\п "p")
+            (?\р "r")
+            (?\с "s")
+            (?\т "t")
+            (?\у "u")
+            (?\ф "f")
+            (?\х "h")
+            (?\ц "c")
+            (?\ч "ch")
+            (?\ш "sh")
+            (?\щ "sch")
+            (?\ъ "\"")
+            (?\ы "y")
+            (?\ь "'")
+            (?\э "`e")
+            (?\ю "yu")
+            (?\я "ya")
+            (?\ё "io")
+            (?\ђ "d%")
+            (?\ѓ "g%")
+            (?\є "ie")
+            (?\ѕ "ds")
+            (?\і "ii")
+            (?\ї "yi")
+            (?\ј "j%")
+            (?\љ "lj")
+            (?\њ "nj")
+            (?\ћ "ts")
+            (?\ќ "kj")
+            (?\ў "v%")
+            (?\џ "dz")
+            (?\Ѣ "Y3")
+            (?\ѣ "y3")
+            (?\Ѫ "O3")
+            (?\ѫ "o3")
+            (?\Ѳ "F3")
+            (?\ѳ "f3")
+            (?\Ѵ "V3")
+            (?\ѵ "v3")
+            (?\Ҁ "C3")
+            (?\ҁ "c3")
+            (?\Ґ "G3")
+            (?\ґ "g3")
+            (?\Ӕ "AE")
+            (?\ӕ "ae")
+            (?\ִ "i")
+            (?\ַ "a")
+            (?\ָ "o")
+            (?\ּ "u")
+            (?\ֿ "h")
+            (?\ׂ ":")
+            (?\א "#")
+            (?\ב "B+")
+            (?\ג "G+")
+            (?\ד "D+")
+            (?\ה "H+")
+            (?\ו "W+")
+            (?\ז "Z+")
+            (?\ח "X+")
+            (?\ט "Tj")
+            (?\י "J+")
+            (?\ך "K%")
+            (?\כ "K+")
+            (?\ל "L+")
+            (?\ם "M%")
+            (?\מ "M+")
+            (?\ן "N%")
+            (?\נ "N+")
+            (?\ס "S+")
+            (?\ע "E+")
+            (?\ף "P%")
+            (?\פ "P+")
+            (?\ץ "Zj")
+            (?\צ "ZJ")
+            (?\ק "Q+")
+            (?\ר "R+")
+            (?\ש "Sh")
+            (?\ת "T+")
+            (?\װ "v")
+            (?\ױ "oy")
+            (?\ײ "ey")
+            (?\، ",+")
+            (?\؛ ";+")
+            (?\؟ "?+")
+            (?\ء "H'")
+            (?\آ "aM")
+            (?\أ "aH")
+            (?\ؤ "wH")
+            (?\إ "ah")
+            (?\ئ "yH")
+            (?\ا "a+")
+            (?\ب "b+")
+            (?\ة "tm")
+            (?\ت "t+")
+            (?\ث "tk")
+            (?\ج "g+")
+            (?\ح "hk")
+            (?\خ "x+")
+            (?\د "d+")
+            (?\ذ "dk")
+            (?\ر "r+")
+            (?\ز "z+")
+            (?\س "s+")
+            (?\ش "sn")
+            (?\ص "c+")
+            (?\ض "dd")
+            (?\ط "tj")
+            (?\ظ "zH")
+            (?\ع "e+")
+            (?\غ "i+")
+            (?\ـ "++")
+            (?\ف "f+")
+            (?\ق "q+")
+            (?\ك "k+")
+            (?\ل "l+")
+            (?\م "m+")
+            (?\ن "n+")
+            (?\ه "h+")
+            (?\و "w+")
+            (?\ى "j+")
+            (?\ي "y+")
+            (?\ً ":+")
+            (?\ٌ "\"+")
+            (?\ٍ "=+")
+            (?\َ "/+")
+            (?\ُ "'+")
+            (?\ِ "1+")
+            (?\ّ "3+")
+            (?\ْ "0+")
+            (?\٠ "0a")
+            (?\١ "1a")
+            (?\٢ "2a")
+            (?\٣ "3a")
+            (?\٤ "4a")
+            (?\٥ "5a")
+            (?\٦ "6a")
+            (?\٧ "7a")
+            (?\٨ "8a")
+            (?\٩ "9a")
+            (?\ٰ "aS")
+            (?\پ "p+")
+            (?\ځ "hH")
+            (?\چ "tc")
+            (?\ژ "zj")
+            (?\ڤ "v+")
+            (?\گ "gf")
+            (?\۰ "0a")
+            (?\۱ "1a")
+            (?\۲ "2a")
+            (?\۳ "3a")
+            (?\۴ "4a")
+            (?\۵ "5a")
+            (?\۶ "6a")
+            (?\۷ "7a")
+            (?\۸ "8a")
+            (?\۹ "9a")
+            (?\ "he")
+            (?\ "hu")
+            (?\ "hi")
+            (?\ "ha")
+            (?\ "hE")
+            (?\ "h")
+            (?\ "ho")
+            (?\ "le")
+            (?\ "lu")
+            (?\ "li")
+            (?\ "la")
+            (?\ "lE")
+            (?\ "l")
+            (?\ "lo")
+            (?\ "lWa")
+            (?\ "He")
+            (?\ "Hu")
+            (?\ "Hi")
+            (?\ "Ha")
+            (?\ "HE")
+            (?\ "H")
+            (?\ "Ho")
+            (?\ "HWa")
+            (?\ "me")
+            (?\ "mu")
+            (?\ "mi")
+            (?\ "ma")
+            (?\ "mE")
+            (?\ "m")
+            (?\ "mo")
+            (?\ "mWa")
+            (?\ "`se")
+            (?\ "`su")
+            (?\ "`si")
+            (?\ "`sa")
+            (?\ "`sE")
+            (?\ "`s")
+            (?\ "`so")
+            (?\ "`sWa")
+            (?\ "re")
+            (?\ "ru")
+            (?\ "ri")
+            (?\ "ra")
+            (?\ "rE")
+            (?\ "r")
+            (?\ "ro")
+            (?\ "rWa")
+            (?\ "se")
+            (?\ "su")
+            (?\ "si")
+            (?\ "sa")
+            (?\ "sE")
+            (?\ "s")
+            (?\ "so")
+            (?\ "sWa")
+            (?\ "xe")
+            (?\ "xu")
+            (?\ "xi")
+            (?\ "xa")
+            (?\ "xE")
+            (?\ "xa")
+            (?\ "xo")
+            (?\ "xWa")
+            (?\ "qe")
+            (?\ "qu")
+            (?\ "qi")
+            (?\ "qa")
+            (?\ "qE")
+            (?\ "q")
+            (?\ "qo")
+            (?\ "qWe")
+            (?\ "qWi")
+            (?\ "qWa")
+            (?\ "qWE")
+            (?\ "qW")
+            (?\ "Qe")
+            (?\ "Qu")
+            (?\ "Qi")
+            (?\ "Qa")
+            (?\ "QE")
+            (?\ "Q")
+            (?\ "Qo")
+            (?\ "QWe")
+            (?\ "QWi")
+            (?\ "QWa")
+            (?\ "QWE")
+            (?\ "QW")
+            (?\ "be")
+            (?\ "bu")
+            (?\ "bi")
+            (?\ "ba")
+            (?\ "bE")
+            (?\ "b")
+            (?\ "bo")
+            (?\ "bWa")
+            (?\ "ve")
+            (?\ "vu")
+            (?\ "vi")
+            (?\ "va")
+            (?\ "vE")
+            (?\ "v")
+            (?\ "vo")
+            (?\ "vWa")
+            (?\ "te")
+            (?\ "tu")
+            (?\ "ti")
+            (?\ "ta")
+            (?\ "tE")
+            (?\ "t")
+            (?\ "to")
+            (?\ "tWa")
+            (?\ "ce")
+            (?\ "cu")
+            (?\ "ci")
+            (?\ "ca")
+            (?\ "cE")
+            (?\ "c")
+            (?\ "co")
+            (?\ "cWa")
+            (?\ "`he")
+            (?\ "`hu")
+            (?\ "`hi")
+            (?\ "`ha")
+            (?\ "`hE")
+            (?\ "`h")
+            (?\ "`ho")
+            (?\ "hWe")
+            (?\ "hWi")
+            (?\ "hWa")
+            (?\ "hWE")
+            (?\ "hW")
+            (?\ "na")
+            (?\ "nu")
+            (?\ "ni")
+            (?\ "na")
+            (?\ "nE")
+            (?\ "n")
+            (?\ "no")
+            (?\ "nWa")
+            (?\ "Ne")
+            (?\ "Nu")
+            (?\ "Ni")
+            (?\ "Na")
+            (?\ "NE")
+            (?\ "N")
+            (?\ "No")
+            (?\ "NWa")
+            (?\ "e")
+            (?\ "u")
+            (?\ "i")
+            (?\ "a")
+            (?\ "E")
+            (?\ "I")
+            (?\ "o")
+            (?\ "e3")
+            (?\ "ke")
+            (?\ "ku")
+            (?\ "ki")
+            (?\ "ka")
+            (?\ "kE")
+            (?\ "k")
+            (?\ "ko")
+            (?\ "kWe")
+            (?\ "kWi")
+            (?\ "kWa")
+            (?\ "kWE")
+            (?\ "kW")
+            (?\ "Ke")
+            (?\ "Ku")
+            (?\ "Ki")
+            (?\ "Ka")
+            (?\ "KE")
+            (?\ "K")
+            (?\ "Ko")
+            (?\ "KWe")
+            (?\ "KWi")
+            (?\ "KWa")
+            (?\ "KWE")
+            (?\ "KW")
+            (?\ "we")
+            (?\ "wu")
+            (?\ "wi")
+            (?\ "wa")
+            (?\ "wE")
+            (?\ "w")
+            (?\ "wo")
+            (?\ "`e")
+            (?\ "`u")
+            (?\ "`i")
+            (?\ "`a")
+            (?\ "`E")
+            (?\ "`I")
+            (?\ "`o")
+            (?\ "ze")
+            (?\ "zu")
+            (?\ "zi")
+            (?\ "za")
+            (?\ "zE")
+            (?\ "z")
+            (?\ "zo")
+            (?\ "zWa")
+            (?\ "Ze")
+            (?\ "Zu")
+            (?\ "Zi")
+            (?\ "Za")
+            (?\ "ZE")
+            (?\ "Z")
+            (?\ "Zo")
+            (?\ "ZWa")
+            (?\ "ye")
+            (?\ "yu")
+            (?\ "yi")
+            (?\ "ya")
+            (?\ "yE")
+            (?\ "y")
+            (?\ "yo")
+            (?\ "yWa")
+            (?\ "de")
+            (?\ "du")
+            (?\ "di")
+            (?\ "da")
+            (?\ "dE")
+            (?\ "d")
+            (?\ "do")
+            (?\ "dWa")
+            (?\ "De")
+            (?\ "Du")
+            (?\ "Di")
+            (?\ "Da")
+            (?\ "DE")
+            (?\ "D")
+            (?\ "Do")
+            (?\ "DWa")
+            (?\ "je")
+            (?\ "ju")
+            (?\ "ji")
+            (?\ "ja")
+            (?\ "jE")
+            (?\ "j")
+            (?\ "jo")
+            (?\ "jWa")
+            (?\ "ga")
+            (?\ "gu")
+            (?\ "gi")
+            (?\ "ga")
+            (?\ "gE")
+            (?\ "g")
+            (?\ "go")
+            (?\ "gWu")
+            (?\ "gWi")
+            (?\ "gWa")
+            (?\ "gWE")
+            (?\ "gW")
+            (?\ "Ge")
+            (?\ "Gu")
+            (?\ "Gi")
+            (?\ "Ga")
+            (?\ "GE")
+            (?\ "G")
+            (?\ "Go")
+            (?\ "GWa")
+            (?\ "Te")
+            (?\ "Tu")
+            (?\ "Ti")
+            (?\ "Ta")
+            (?\ "TE")
+            (?\ "T")
+            (?\ "To")
+            (?\ "TWa")
+            (?\ "Ce")
+            (?\ "Ca")
+            (?\ "Cu")
+            (?\ "Ca")
+            (?\ "CE")
+            (?\ "C")
+            (?\ "Co")
+            (?\ "CWa")
+            (?\ "Pe")
+            (?\ "Pu")
+            (?\ "Pi")
+            (?\ "Pa")
+            (?\ "PE")
+            (?\ "P")
+            (?\ "Po")
+            (?\ "PWa")
+            (?\ "SWe")
+            (?\ "SWu")
+            (?\ "SWi")
+            (?\ "SWa")
+            (?\ "SWE")
+            (?\ "SW")
+            (?\ "SWo")
+            (?\ "SWa")
+            (?\ "`Sa")
+            (?\ "`Su")
+            (?\ "`Si")
+            (?\ "`Sa")
+            (?\ "`SE")
+            (?\ "`S")
+            (?\ "`So")
+            (?\ "fa")
+            (?\ "fu")
+            (?\ "fi")
+            (?\ "fa")
+            (?\ "fE")
+            (?\ "o")
+            (?\ "fo")
+            (?\ "fWa")
+            (?\ "pe")
+            (?\ "pu")
+            (?\ "pi")
+            (?\ "pa")
+            (?\ "pE")
+            (?\ "p")
+            (?\ "po")
+            (?\ "pWa")
+            (?\ "mYa")
+            (?\ "rYa")
+            (?\ "fYa")
+            (?\ " ")
+            (?\ ":")
+            (?\ "::")
+            (?\ ",")
+            (?\ ";")
+            (?\ "-:")
+            (?\ ":-")
+            (?\ "`?")
+            (?\ ":|:")
+            (?\ "`1")
+            (?\ "`2")
+            (?\ "`3")
+            (?\ "`4")
+            (?\ "`5")
+            (?\ "`6")
+            (?\ "`7")
+            (?\ "`8")
+            (?\ "`9")
+            (?\ "`10")
+            (?\ "`20")
+            (?\ "`30")
+            (?\ "`40")
+            (?\ "`50")
+            (?\ "`60")
+            (?\ "`70")
+            (?\ "`80")
+            (?\ "`90")
+            (?\ "`100")
+            (?\ "`10000")
+            (?\ "A-0")
+            (?\ "a-0")
+            (?\ "B.")
+            (?\ "b.")
+            (?\ "B-.")
+            (?\ "b-.")
+            (?\ "B_")
+            (?\ "b_")
+            (?\ "C,'")
+            (?\ "c,'")
+            (?\ "D.")
+            (?\ "d.")
+            (?\ "D-.")
+            (?\ "d-.")
+            (?\ "D_")
+            (?\ "d_")
+            (?\ "D,")
+            (?\ "d,")
+            (?\ "D->")
+            (?\ "d->")
+            (?\ "E-!")
+            (?\ "e-!")
+            (?\ "E-'")
+            (?\ "e-'")
+            (?\ "E->")
+            (?\ "e->")
+            (?\ "E-?")
+            (?\ "e-?")
+            (?\ "E,(")
+            (?\ "e,(")
+            (?\ "F.")
+            (?\ "f.")
+            (?\ "G-")
+            (?\ "g-")
+            (?\ "H.")
+            (?\ "h.")
+            (?\ "H-.")
+            (?\ "h-.")
+            (?\ "H:")
+            (?\ "h:")
+            (?\ "H,")
+            (?\ "h,")
+            (?\ "H-(")
+            (?\ "h-(")
+            (?\ "I-?")
+            (?\ "i-?")
+            (?\ "I:'")
+            (?\ "i:'")
+            (?\ "K'")
+            (?\ "k'")
+            (?\ "K-.")
+            (?\ "k-.")
+            (?\ "K_")
+            (?\ "k_")
+            (?\ "L-.")
+            (?\ "l-.")
+            (?\ "L--.")
+            (?\ "l--.")
+            (?\ "L_")
+            (?\ "l_")
+            (?\ "L->")
+            (?\ "l->")
+            (?\ "M'")
+            (?\ḿ "m'")
+            (?\ "M.")
+            (?\ "m.")
+            (?\ "M-.")
+            (?\ "m-.")
+            (?\ "N.")
+            (?\ "n.")
+            (?\ "N-.")
+            (?\ "n-.")
+            (?\ "N_")
+            (?\ "n_")
+            (?\ "N->")
+            (?\ "n->")
+            (?\ "O?'")
+            (?\ "o?'")
+            (?\ "O?:")
+            (?\ "o?:")
+            (?\ "O-!")
+            (?\ "o-!")
+            (?\ "O-'")
+            (?\ "o-'")
+            (?\ "P'")
+            (?\ "p'")
+            (?\ "P.")
+            (?\ "p.")
+            (?\ "R.")
+            (?\ "r.")
+            (?\ "R-.")
+            (?\ "r-.")
+            (?\ "R--.")
+            (?\ "r--.")
+            (?\ "R_")
+            (?\ "r_")
+            (?\ "S.")
+            (?\ "s.")
+            (?\ "S-.")
+            (?\ "s-.")
+            (?\ "S'.")
+            (?\ "s'.")
+            (?\ "S<.")
+            (?\ "s<.")
+            (?\ "S.-.")
+            (?\ "s.-.")
+            (?\ "T.")
+            (?\ "t.")
+            (?\ "T-.")
+            (?\ "t-.")
+            (?\ "T_")
+            (?\ "t_")
+            (?\ "T->")
+            (?\ "t->")
+            (?\ "U--:")
+            (?\ "u--:")
+            (?\ "U-?")
+            (?\ "u-?")
+            (?\ "U->")
+            (?\ "u->")
+            (?\ "U?'")
+            (?\ "u?'")
+            (?\ "U-:")
+            (?\ "u-:")
+            (?\ "V?")
+            (?\ "v?")
+            (?\ "V-.")
+            (?\ṿ "v-.")
+            (?\ "W!")
+            (?\ "w!")
+            (?\ "W'")
+            (?\ "w'")
+            (?\ "W:")
+            (?\ "w:")
+            (?\ "W.")
+            (?\ "w.")
+            (?\ "W-.")
+            (?\ "w-.")
+            (?\ "X.")
+            (?\ "x.")
+            (?\ "X:")
+            (?\ "x:")
+            (?\ "Y.")
+            (?\ "y.")
+            (?\ "Z>")
+            (?\ "z>")
+            (?\ "Z-.")
+            (?\ "z-.")
+            (?\ "Z_")
+            (?\ "z_")
+            (?\ "h_")
+            (?\ "t:")
+            (?\ "w0")
+            (?\ "y0")
+            (?\ "A-.")
+            (?\ "a-.")
+            (?\ "A2")
+            (?\ "a2")
+            (?\ "A>'")
+            (?\ "a>'")
+            (?\ "A>!")
+            (?\ "a>!")
+            (?\ "A>2")
+            (?\ "a>2")
+            (?\ "A>?")
+            (?\ "a>?")
+            (?\ "A>-.")
+            (?\ "a>-.")
+            (?\ "A('")
+            (?\ "a('")
+            (?\ "A(!")
+            (?\ "a(!")
+            (?\ "A(2")
+            (?\ "a(2")
+            (?\ "A(?")
+            (?\ "a(?")
+            (?\ "A(-.")
+            (?\ "a(-.")
+            (?\ "E-.")
+            (?\ "e-.")
+            (?\ "E2")
+            (?\ "e2")
+            (?\ "E?")
+            (?\ "e?")
+            (?\ "E>'")
+            (?\ế "e>'")
+            (?\ "E>!")
+            (?\ "e>!")
+            (?\ "E>2")
+            (?\ "e>2")
+            (?\ "E>?")
+            (?\ "e>?")
+            (?\ "E>-.")
+            (?\ "e>-.")
+            (?\ "I2")
+            (?\ "i2")
+            (?\ "I-.")
+            (?\ "i-.")
+            (?\ "O-.")
+            (?\ "o-.")
+            (?\ "O2")
+            (?\ "o2")
+            (?\ "O>'")
+            (?\ "o>'")
+            (?\ "O>!")
+            (?\ "o>!")
+            (?\ "O>2")
+            (?\ "o>2")
+            (?\ "O>?")
+            (?\ "o>?")
+            (?\ "O>-.")
+            (?\ "o>-.")
+            (?\ "O9'")
+            (?\ "o9'")
+            (?\ "O9!")
+            (?\ "o9!")
+            (?\ "O92")
+            (?\ "o92")
+            (?\ "O9?")
+            (?\ "o9?")
+            (?\ "O9-.")
+            (?\ "o9-.")
+            (?\ "U-.")
+            (?\ "u-.")
+            (?\ "U2")
+            (?\ "u2")
+            (?\ "U9'")
+            (?\ "u9'")
+            (?\ "U9!")
+            (?\ "u9!")
+            (?\ "U92")
+            (?\ "u92")
+            (?\ "U9?")
+            (?\ "u9?")
+            (?\ "U9-.")
+            (?\ "u9-.")
+            (?\ "Y!")
+            (?\ "y!")
+            (?\ "Y-.")
+            (?\ "y-.")
+            (?\ "Y2")
+            (?\ "y2")
+            (?\ "Y?")
+            (?\ "y?")
+            (?\ "a")
+            (?\ "ha")
+            (?\ "`a")
+            (?\ "h`a")
+            (?\ "a'")
+            (?\ "ha'")
+            (?\ "a~")
+            (?\ "ha~")
+            (?\ "A")
+            (?\ "hA")
+            (?\ "`A")
+            (?\ "h`A")
+            (?\ "A'")
+            (?\ "hA'")
+            (?\ "A~")
+            (?\ "hA~")
+            (?\ "he")
+            (?\ "hE")
+            (?\ "hi")
+            (?\ "hI")
+            (?\ "ho")
+            (?\ "hO")
+            (?\ "hu")
+            (?\ "hU")
+            (?\᾿ ",,")
+            (?\ "?*")
+            (?\ "?:")
+            (?\ ",!")
+            (?\ ",'")
+            (?\ "?,")
+            (?\ ";!")
+            (?\ ";'")
+            (?\ "?;")
+            (?\ "rh")
+            (?\ "Rh")
+            (?\ "!:")
+            (?\ "!*")
+            (?\ ";;")
+            (?\  " ")
+            (?\ "  ")
+            (?\ " ")
+            (?\ "  ")
+            (?\ " ")
+            (?\ " ")
+            (?\ " ")
+            (?\  " ")
+            (?\ " ")
+            (?\ " ")
+            (?\ "-")
+            (?\ "-")
+            (?\ "-")
+            (?\ "--")
+            (?\ "-")
+            (?\ "||")
+            (?\ "=2")
+            (?\ "`")
+            (?\ "'")
+            (?\ "'")
+            (?\ "'")
+            (?\ "\"")
+            (?\ "\"")
+            (?\ "\"")
+            (?\ "\"")
+            (?\ "/-")
+            (?\ "/=")
+            (?\ " o ")
+            (?\ ".")
+            (?\ "..")
+            (?\ "...")
+            (?\‧ "·")
+            (?\ " 0/00")
+            (?\ "'")
+            (?\ "''")
+            (?\ "'''")
+            (?\ "`")
+            (?\ "``")
+            (?\ "```")
+            (?\ "Ca")
+            (?\ "<")
+            (?\ ">")
+            (?\ ":X")
+            (?\ "!!")
+            (?\ "'-")
+            (?\ "-")
+            (?\ "/")
+            (?\ "?!")
+            (?\ "!?")
+            (?\ "^0")
+            (?\ "^4")
+            (?\ "^5")
+            (?\ "^6")
+            (?\ "^7")
+            (?\ "^8")
+            (?\ "^9")
+            (?\ "^+")
+            (?\ "^-")
+            (?\ "^=")
+            (?\ "^(")
+            (?\ "^)")
+            (?\ "^n")
+            (?\ "_0")
+            (?\ "_1")
+            (?\ "_2")
+            (?\ "_3")
+            (?\ "_4")
+            (?\ "_5")
+            (?\ "_6")
+            (?\ "_7")
+            (?\ "_8")
+            (?\ "_9")
+            (?\ "_+")
+            (?\ "_-")
+            (?\ "_=")
+            (?\ "(")
+            (?\ ")")
+            (?\ "Ff")
+            (?\ "Li")
+            (?\ "Pt")
+            (?\ "W=")
+            (?\ "EUR")
+            (?\ "a/c")
+            (?\ "a/s")
+            (?\ "oC")
+            (?\ "c/o")
+            (?\ "c/u")
+            (?\ "oF")
+            (?\ "g")
+            (?\ "h")
+            (?\ "\\hbar")
+            (?\ "Im")
+            (?\ "l")
+            (?\ "No.")
+            (?\ "PO")
+            (?\ "P")
+            (?\ "Re")
+            (?\ "Rx")
+            (?\ "(SM)")
+            (?\ "TEL")
+            (?\ "(TM)")
+            (?\ "Ohm")
+            (?\ "K")
+            (?\ "Ang.")
+            (?\ "est.")
+            (?\ "o")
+            (?\ "Aleph ")
+            (?\ "Bet ")
+            (?\ "Gimel ")
+            (?\ "Dalet ")
+            (?\ " 1/3")
+            (?\ " 2/3")
+            (?\ " 1/5")
+            (?\ " 2/5")
+            (?\ " 3/5")
+            (?\ " 4/5")
+            (?\ " 1/6")
+            (?\ " 5/6")
+            (?\ " 1/8")
+            (?\ " 3/8")
+            (?\ " 5/8")
+            (?\ " 7/8")
+            (?\ " 1/")
+            (?\ "I")
+            (?\ "II")
+            (?\ "III")
+            (?\ "IV")
+            (?\ "V")
+            (?\ "VI")
+            (?\ "VII")
+            (?\ "VIII")
+            (?\ "IX")
+            (?\ "X")
+            (?\ "XI")
+            (?\ "XII")
+            (?\ "L")
+            (?\ "C")
+            (?\ "D")
+            (?\ "M")
+            (?\ "i")
+            (?\ "ii")
+            (?\ "iii")
+            (?\ "iv")
+            (?\ "v")
+            (?\ "vi")
+            (?\ "vii")
+            (?\ "viii")
+            (?\ "ix")
+            (?\ "x")
+            (?\ "xi")
+            (?\ "xii")
+            (?\ "l")
+            (?\ "c")
+            (?\ "d")
+            (?\ "m")
+            (?\ "1000RCD")
+            (?\ "5000R")
+            (?\ "10000R")
+            (?\ "<-")
+            (?\ "-^")
+            (?\ "->")
+            (?\ "-v")
+            (?\ "<->")
+            (?\ "UD")
+            (?\ "<!!")
+            (?\ "//>")
+            (?\ "!!>")
+            (?\ "<//")
+            (?\ "UD-")
+            (?\ "RET")
+            (?\ ">V")
+            (?\ "<=")
+            (?\ "^^")
+            (?\ "=>")
+            (?\ "vv")
+            (?\ "<=>")
+            (?\ "FA")
+            (?\ "\\partial")
+            (?\ "TE")
+            (?\ "{}")
+            (?\ "Delta")
+            (?\ "Nabla")
+            (?\ "(-")
+            (?\ "!(-")
+            (?\ "(-")
+            (?\ "-)")
+            (?\ "!-)")
+            (?\ "-)")
+            (?\ " qed")
+            (?\ "\\prod")
+            (?\ "\\sum")
+            (?\ " -")
+            (?\ "-/+")
+            (?\ ".+")
+            (?\ "/")
+            (?\ " - ")
+            (?\ "*")
+            (?\∘ " ° ")
+            (?\ "sb")
+            (?\ " SQRT ")
+            (?\∛ " ROOT³ ")
+            (?\ " ROOT4 ")
+            (?\ "0(")
+            (?\ "infty")
+            (?\ "-L")
+            (?\ "-V")
+            (?\ "PP")
+            (?\ " !PP ")
+            (?\ "AND")
+            (?\ "OR")
+            (?\ "(U")
+            (?\ ")U")
+            (?\ "\int ")
+            (?\ "DI")
+            (?\ "Io")
+            (?\ ".:")
+            (?\ ":.")
+            (?\ ":R")
+            (?\ "::")
+            (?\ "?1")
+            (?\ "CG")
+            (?\ "?-")
+            (?\ "?=")
+            (?\ "~=")
+            (?\ " !~= ")
+            (?\ "=?")
+            (?\ "HI")
+            (?\ ":=")
+            (?\ "=:")
+            (?\ "!=")
+            (?\ "=3")
+            (?\ " !=3 ")
+            (?\ "=<")
+            (?\ ">=")
+            (?\ ".LE.")
+            (?\ ".GE.")
+            (?\ ".LT.NOT.EQ.")
+            (?\ ".GT.NOT.EQ.")
+            (?\ "<<")
+            (?\ ">>")
+            (?\ "!<")
+            (?\ "!>")
+            (?\ " <> ")
+            (?\ " >< ")
+            (?\ "(C")
+            (?\ ")C")
+            (?\ " !(C ")
+            (?\ " !)C ")
+            (?\ "(_")
+            (?\ ")_")
+            (?\ "(+)")
+            (?\ "(-)")
+            (?\⊗ "(×)")
+            (?\ "(/)")
+            (?\⊙ "(·)")
+            (?\⊚ "(°)")
+            (?\ "(*)")
+            (?\ "(=)")
+            (?\ "(-)")
+            (?\ "[+]")
+            (?\ "[-]")
+            (?\⊠ "[×]")
+            (?\⊡ "[·]")
+            (?\ "-T")
+            (?\ " MODELS ")
+            (?\ " TRUE ")
+            (?\ " FORCES ")
+            (?\ " !PROVES ")
+            (?\ " NOT TRUE ")
+            (?\ " !FORCES ")
+            (?\ " NORMAL SUBGROUP OF ")
+            (?\ " CONTAINS AS NORMAL SUBGROUP ")
+            (?\ " NORMAL SUBGROUP OF OR EQUAL TO ")
+            (?\ " CONTAINS AS NORMAL SUBGROUP OR EQUAL TO ")
+            (?\ " MULTIMAP ")
+            (?\ " INTERCALATE ")
+            (?\ " XOR ")
+            (?\ " NAND ")
+            (?\⋅ " · ")
+            (?\ "<.")
+            (?\ ">.")
+            (?\ "<<<")
+            (?\ ">>>")
+            (?\ ":3")
+            (?\ ".3")
+            (?\ "Eh")
+            (?\ "~~")
+            (?\ "<7")
+            (?\ ">7")
+            (?\ "7<")
+            (?\ "7>")
+            (?\ "NI")
+            (?\ "(A")
+            (?\ "TR")
+            (?\ "88")
+            (?\ "Iu")
+            (?\ "Il")
+            (?\ ":(")
+            (?\ ":)")
+            (?\ "|^|")
+            (?\ "[X]")
+            (?\ "</")
+            (?\ "/>")
+            (?\ "Vs")
+            (?\ "1h")
+            (?\ "3h")
+            (?\ "2h")
+            (?\ "4h")
+            (?\ "1j")
+            (?\ "2j")
+            (?\ "3j")
+            (?\ "4j")
+            (?\ "1-o")
+            (?\ "2-o")
+            (?\ "3-o")
+            (?\ "4-o")
+            (?\ "5-o")
+            (?\ "6-o")
+            (?\ "7-o")
+            (?\ "8-o")
+            (?\ "9-o")
+            (?\ "10-o")
+            (?\ "11-o")
+            (?\ "12-o")
+            (?\ "13-o")
+            (?\ "14-o")
+            (?\ "15-o")
+            (?\ "16-o")
+            (?\ "17-o")
+            (?\ "18-o")
+            (?\ "19-o")
+            (?\ "20-o")
+            (?\ "(1)")
+            (?\ "(2)")
+            (?\ "(3)")
+            (?\ "(4)")
+            (?\ "(5)")
+            (?\ "(6)")
+            (?\ "(7)")
+            (?\ "(8)")
+            (?\ "(9)")
+            (?\ "(10)")
+            (?\ "(11)")
+            (?\ "(12)")
+            (?\ "(13)")
+            (?\ "(14)")
+            (?\ "(15)")
+            (?\ "(16)")
+            (?\ "(17)")
+            (?\ "(18)")
+            (?\ "(19)")
+            (?\ "(20)")
+            (?\ "1.")
+            (?\ "2.")
+            (?\ "3.")
+            (?\ "4.")
+            (?\ "5.")
+            (?\ "6.")
+            (?\ "7.")
+            (?\ "8.")
+            (?\ "9.")
+            (?\ "10.")
+            (?\ "11.")
+            (?\ "12.")
+            (?\ "13.")
+            (?\ "14.")
+            (?\ "15.")
+            (?\ "16.")
+            (?\ "17.")
+            (?\ "18.")
+            (?\ "19.")
+            (?\ "20.")
+            (?\ "(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)")
+            (?\ "A-o")
+            (?\ "B-o")
+            (?\ "C-o")
+            (?\ "D-o")
+            (?\ "E-o")
+            (?\ "F-o")
+            (?\ "G-o")
+            (?\ "H-o")
+            (?\ "I-o")
+            (?\ "J-o")
+            (?\ "K-o")
+            (?\ "L-o")
+            (?\ "M-o")
+            (?\ "N-o")
+            (?\ "O-o")
+            (?\ "P-o")
+            (?\ "Q-o")
+            (?\ "R-o")
+            (?\ "S-o")
+            (?\ "T-o")
+            (?\ "U-o")
+            (?\ "V-o")
+            (?\ "W-o")
+            (?\ "X-o")
+            (?\ "Y-o")
+            (?\ "Z-o")
+            (?\ "a-o")
+            (?\ "b-o")
+            (?\ "c-o")
+            (?\ "d-o")
+            (?\ "e-o")
+            (?\ "f-o")
+            (?\ "g-o")
+            (?\ "h-o")
+            (?\ "i-o")
+            (?\ "j-o")
+            (?\ "k-o")
+            (?\ "l-o")
+            (?\ "m-o")
+            (?\ "n-o")
+            (?\ "o-o")
+            (?\ "p-o")
+            (?\ "q-o")
+            (?\ "r-o")
+            (?\ "s-o")
+            (?\ "t-o")
+            (?\ "u-o")
+            (?\ "v-o")
+            (?\ "w-o")
+            (?\ "x-o")
+            (?\ "y-o")
+            (?\ "z-o")
+            (?\ "0-o")
+            (?\ "-")
+            (?\ "=")
+            (?\ "|")
+            (?\ "|")
+            (?\ "-")
+            (?\ "=")
+            (?\ "|")
+            (?\ "|")
+            (?\ "-")
+            (?\ "=")
+            (?\ "|")
+            (?\ "|")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "+")
+            (?\ "/")
+            (?\ "\\")
+            (?\ "TB")
+            (?\ "LB")
+            (?\ "FB")
+            (?\ "lB")
+            (?\ "RB")
+            (?\ ".S")
+            (?\ ":S")
+            (?\ "?S")
+            (?\ "fS")
+            (?\ "OS")
+            (?\ "RO")
+            (?\ "Rr")
+            (?\ "RF")
+            (?\ "RY")
+            (?\ "RH")
+            (?\ "RZ")
+            (?\ "RK")
+            (?\ "RX")
+            (?\ "sB")
+            (?\ "SR")
+            (?\ "Or")
+            (?\ "^")
+            (?\ "uT")
+            (?\ "|>")
+            (?\ "Tr")
+            (?\ "|>")
+            (?\ "v")
+            (?\ "dT")
+            (?\ "<|")
+            (?\ "Tl")
+            (?\ "<|")
+            (?\ "Db")
+            (?\ "Dw")
+            (?\ "LZ")
+            (?\ "0m")
+            (?\ "0o")
+            (?\ "0M")
+            (?\ "0L")
+            (?\ "0R")
+            (?\ "Sn")
+            (?\ "Ic")
+            (?\ "Fd")
+            (?\ "Bd")
+            (?\ "Ci")
+            (?\ "*2")
+            (?\ "*1")
+            (?\ "TEL")
+            (?\ "tel")
+            (?\ "<--")
+            (?\ "-->")
+            (?\ "CAUTION ")
+            (?\ "XP")
+            (?\ ":-(")
+            (?\ ":-)")
+            (?\ "(-:")
+            (?\ "SU")
+            (?\ "f.")
+            (?\ "m.")
+            (?\ "cS")
+            (?\ "cH")
+            (?\ "cD")
+            (?\ "cC")
+            (?\ "cS-")
+            (?\ "cH-")
+            (?\ "cD-")
+            (?\ "cC-")
+            (?\ "Md")
+            (?\ "M8")
+            (?\ "M2")
+            (?\ "M16")
+            (?\ "b")
+            (?\ "Mx")
+            (?\ "#")
+            (?\ "X")
+            (?\ "X")
+            (?\ "-X")
+            (?\  " ")
+            (?\ ",_")
+            (?\ "._")
+            (?\ "+\"")
+            (?\ "JIS")
+            (?\ "*_")
+            (?\ ";_")
+            (?\ "0_")
+            (?\ "<+")
+            (?\ ">+")
+            (?\ "<'")
+            (?\ ">'")
+            (?\ "<\"")
+            (?\ ">\"")
+            (?\ "(\"")
+            (?\ ")\"")
+            (?\ "=T")
+            (?\ "=_")
+            (?\ "('")
+            (?\ ")'")
+            (?\ "(I")
+            (?\ ")I")
+            (?\ "[[")
+            (?\ "]]")
+            (?\ "-?")
+            (?\ "=T:)")
+            (?\ " ")
+            (?\ "A5")
+            (?\ "a5")
+            (?\ "I5")
+            (?\ "i5")
+            (?\ "U5")
+            (?\ "u5")
+            (?\ "E5")
+            (?\ "e5")
+            (?\ "O5")
+            (?\ "o5")
+            (?\ "ka")
+            (?\ "ga")
+            (?\ "ki")
+            (?\ "gi")
+            (?\ "ku")
+            (?\ "gu")
+            (?\ "ke")
+            (?\ "ge")
+            (?\ "ko")
+            (?\ "go")
+            (?\ "sa")
+            (?\ "za")
+            (?\ "si")
+            (?\ "zi")
+            (?\ "su")
+            (?\ "zu")
+            (?\ "se")
+            (?\ "ze")
+            (?\ "so")
+            (?\ "zo")
+            (?\ "ta")
+            (?\ "da")
+            (?\ "ti")
+            (?\ "di")
+            (?\ "tU")
+            (?\ "tu")
+            (?\ "du")
+            (?\ "te")
+            (?\ "de")
+            (?\ "to")
+            (?\ "do")
+            (?\ "na")
+            (?\ "ni")
+            (?\ "nu")
+            (?\ "ne")
+            (?\ "no")
+            (?\ "ha")
+            (?\ "ba")
+            (?\ "pa")
+            (?\ "hi")
+            (?\ "bi")
+            (?\ "pi")
+            (?\ "hu")
+            (?\ "bu")
+            (?\ "pu")
+            (?\ "he")
+            (?\ "be")
+            (?\ "pe")
+            (?\ "ho")
+            (?\ "bo")
+            (?\ "po")
+            (?\ "ma")
+            (?\ "mi")
+            (?\ "mu")
+            (?\ "me")
+            (?\ "mo")
+            (?\ "yA")
+            (?\ "ya")
+            (?\ "yU")
+            (?\ "yu")
+            (?\ "yO")
+            (?\ "yo")
+            (?\ "ra")
+            (?\ "ri")
+            (?\ "ru")
+            (?\ "re")
+            (?\ "ro")
+            (?\ "wA")
+            (?\ "wa")
+            (?\ "wi")
+            (?\ "we")
+            (?\ "wo")
+            (?\ "n5")
+            (?\ "vu")
+            (?\ "\"5")
+            (?\ "05")
+            (?\ "*5")
+            (?\ "+5")
+            (?\ "a6")
+            (?\ "A6")
+            (?\ "i6")
+            (?\ "I6")
+            (?\ "u6")
+            (?\ "U6")
+            (?\ "e6")
+            (?\ "E6")
+            (?\ "o6")
+            (?\ "O6")
+            (?\ "Ka")
+            (?\ "Ga")
+            (?\ "Ki")
+            (?\ "Gi")
+            (?\ "Ku")
+            (?\ "Gu")
+            (?\ "Ke")
+            (?\ "Ge")
+            (?\ "Ko")
+            (?\ "Go")
+            (?\ "Sa")
+            (?\ "Za")
+            (?\ "Si")
+            (?\ "Zi")
+            (?\ "Su")
+            (?\ "Zu")
+            (?\ "Se")
+            (?\ "Ze")
+            (?\ "So")
+            (?\ "Zo")
+            (?\ "Ta")
+            (?\ "Da")
+            (?\ "Ti")
+            (?\ "Di")
+            (?\ "TU")
+            (?\ "Tu")
+            (?\ "Du")
+            (?\ "Te")
+            (?\ "De")
+            (?\ "To")
+            (?\ "Do")
+            (?\ "Na")
+            (?\ "Ni")
+            (?\ "Nu")
+            (?\ "Ne")
+            (?\ "No")
+            (?\ "Ha")
+            (?\ "Ba")
+            (?\ "Pa")
+            (?\ "Hi")
+            (?\ "Bi")
+            (?\ "Pi")
+            (?\ "Hu")
+            (?\ "Bu")
+            (?\ "Pu")
+            (?\ "He")
+            (?\ "Be")
+            (?\ "Pe")
+            (?\ "Ho")
+            (?\ "Bo")
+            (?\ "Po")
+            (?\ "Ma")
+            (?\ "Mi")
+            (?\ "Mu")
+            (?\ "Me")
+            (?\ "Mo")
+            (?\ "YA")
+            (?\ "Ya")
+            (?\ "YU")
+            (?\ "Yu")
+            (?\ "YO")
+            (?\ "Yo")
+            (?\ "Ra")
+            (?\ "Ri")
+            (?\ "Ru")
+            (?\ "Re")
+            (?\ "Ro")
+            (?\ "WA")
+            (?\ "Wa")
+            (?\ "Wi")
+            (?\ "We")
+            (?\ "Wo")
+            (?\ "N6")
+            (?\ "Vu")
+            (?\ "KA")
+            (?\ "KE")
+            (?\ "Va")
+            (?\ "Vi")
+            (?\ "Ve")
+            (?\ "Vo")
+            (?\ ".6")
+            (?\ "-6")
+            (?\ "*6")
+            (?\ "+6")
+            (?\ "b4")
+            (?\ "p4")
+            (?\ "m4")
+            (?\ "f4")
+            (?\ "d4")
+            (?\ "t4")
+            (?\ "n4")
+            (?\ "l4")
+            (?\ "g4")
+            (?\ "k4")
+            (?\ "h4")
+            (?\ "j4")
+            (?\ "q4")
+            (?\ "x4")
+            (?\ "zh")
+            (?\ "ch")
+            (?\ "sh")
+            (?\ "r4")
+            (?\ "z4")
+            (?\ "c4")
+            (?\ "s4")
+            (?\ "a4")
+            (?\ "o4")
+            (?\ "e4")
+            (?\ "eh4")
+            (?\ "ai")
+            (?\ "ei")
+            (?\ "au")
+            (?\ "ou")
+            (?\ "an")
+            (?\ "en")
+            (?\ "aN")
+            (?\ "eN")
+            (?\ "er")
+            (?\ "i4")
+            (?\ "u4")
+            (?\ "iu")
+            (?\ "v4")
+            (?\ "nG")
+            (?\ "gn")
+            (?\ "(JU)")
+            (?\ "1c")
+            (?\ "2c")
+            (?\ "3c")
+            (?\ "4c")
+            (?\ "5c")
+            (?\ "6c")
+            (?\ "7c")
+            (?\ "8c")
+            (?\ "9c")
+            (?\ "10c")
+            (?\ "KSC")
+            (?\ "am")
+            (?\ "pm")
+            (?\ "ff")
+            (?\ "fi")
+            (?\ "fl")
+            (?\ "ffi")
+            (?\ "ffl")
+            (?\ "St")
+            (?\ "st")
+            (?\ "3+;")
+            (?\ "aM.")
+            (?\ "aH.")
+            (?\ "ah.")
+            (?\ "a+-")
+            (?\ "a+.")
+            (?\ "b+-")
+            (?\ "b+.")
+            (?\ "b+,")
+            (?\ "b+;")
+            (?\ "tm-")
+            (?\ "tm.")
+            (?\ "t+-")
+            (?\ "t+.")
+            (?\ "t+,")
+            (?\ "t+;")
+            (?\ "tk-")
+            (?\ "tk.")
+            (?\ "tk,")
+            (?\ "tk;")
+            (?\ "g+-")
+            (?\ "g+.")
+            (?\ "g+,")
+            (?\ "g+;")
+            (?\ "hk-")
+            (?\ "hk.")
+            (?\ "hk,")
+            (?\ "hk;")
+            (?\ "x+-")
+            (?\ "x+.")
+            (?\ "x+,")
+            (?\ "x+;")
+            (?\ "d+-")
+            (?\ "d+.")
+            (?\ "dk-")
+            (?\ "dk.")
+            (?\ "r+-")
+            (?\ "r+.")
+            (?\ "z+-")
+            (?\ "z+.")
+            (?\ "s+-")
+            (?\ "s+.")
+            (?\ "s+,")
+            (?\ "s+;")
+            (?\ "sn-")
+            (?\ "sn.")
+            (?\ "sn,")
+            (?\ "sn;")
+            (?\ "c+-")
+            (?\ "c+.")
+            (?\ "c+,")
+            (?\ "c+;")
+            (?\ "dd-")
+            (?\ "dd.")
+            (?\ﺿ "dd,")
+            (?\ "dd;")
+            (?\ "tj-")
+            (?\ "tj.")
+            (?\ "tj,")
+            (?\ "tj;")
+            (?\ "zH-")
+            (?\ "zH.")
+            (?\ "zH,")
+            (?\ "zH;")
+            (?\ "e+-")
+            (?\ "e+.")
+            (?\ "e+,")
+            (?\ "e+;")
+            (?\ "i+-")
+            (?\ "i+.")
+            (?\ "i+,")
+            (?\ "i+;")
+            (?\ "f+-")
+            (?\ "f+.")
+            (?\ "f+,")
+            (?\ "f+;")
+            (?\ "q+-")
+            (?\ "q+.")
+            (?\ "q+,")
+            (?\ "q+;")
+            (?\ "k+-")
+            (?\ "k+.")
+            (?\ "k+,")
+            (?\ "k+;")
+            (?\ "l+-")
+            (?\ "l+.")
+            (?\ "l+,")
+            (?\ "l+;")
+            (?\ "m+-")
+            (?\ "m+.")
+            (?\ "m+,")
+            (?\ "m+;")
+            (?\ "n+-")
+            (?\ "n+.")
+            (?\ "n+,")
+            (?\ "n+;")
+            (?\ "h+-")
+            (?\ "h+.")
+            (?\ "h+,")
+            (?\ "h+;")
+            (?\ "w+-")
+            (?\ "w+.")
+            (?\ "j+-")
+            (?\ "j+.")
+            (?\ "y+-")
+            (?\ "y+.")
+            (?\ "y+,")
+            (?\ "y+;")
+            (?\ "lM-")
+            (?\ "lM.")
+            (?\ "lH-")
+            (?\ "lH.")
+            (?\ "lh-")
+            (?\ "lh.")
+            (?\ "la-")
+            (?\ "la.")
+            (?\ "!")
+            (?\ "\"")
+            (?\ "#")
+            (?\ "$")
+            (?\ "%")
+            (?\ "&")
+            (?\ "'")
+            (?\ "(")
+            (?\ ")")
+            (?\ "*")
+            (?\ "+")
+            (?\ ",")
+            (?\ "-")
+            (?\ ".")
+            (?\ "/")
+            (?\ "0")
+            (?\ "1")
+            (?\ "2")
+            (?\ "3")
+            (?\ "4")
+            (?\ "5")
+            (?\ "6")
+            (?\ "7")
+            (?\ "8")
+            (?\ "9")
+            (?\ ":")
+            (?\ ";")
+            (?\ "<")
+            (?\ "=")
+            (?\ ">")
+            (?\ "?")
+            (?\ "@")
+            (?\ "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")
+            (?\ "[")
+            (?\ "\\")
+            (?\ "]")
+            (?\ "^")
+            (?\_ "_")
+            (?\ "`")
+            (?\ "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")
+            (?\ "{")
+            (?\ "|")
+            (?\ "}")
+            (?\ "~")
+            (?\ ".")
+            (?\ "\"")
+            (?\ "\"")
+            (?\ ",")
             ;; Not from Lynx
-            (?\e$,3r_\e(B "")
-            (?\e$,3u=\e(B "?")))))
+            (? "")
+            (? "?")))))
     (aset standard-display-table
          (make-char 'mule-unicode-0100-24ff) nil)
     (aset standard-display-table
index 5cfc4be4316f9fb17f7f666bb3643b2ab09649d3..15a7dc10f65516770f19392802f19de7ceb195a1 100644 (file)
@@ -132,38 +132,38 @@ defaults to \"...\"."
 ;;             (("xy" 2 1) . "y")
 ;;             (("xy" 0) . "")
 ;;             (("xy" 3) . "xy")
-;;             (("\e$AVP\e(B" 0) . "")
-;;             (("\e$AVP\e(B" 1) . "")
-;;             (("\e$AVP\e(B" 2) . "\e$AVP\e(B")
-;;             (("\e$AVP\e(B" 1 nil ? ) . " ")
-;;             (("\e$AVPND\e(B" 3 1 ? ) . "  ")
-;;             (("x\e$AVP\e(Bx" 2) . "x")
-;;             (("x\e$AVP\e(Bx" 3) . "x\e$AVP\e(B")
-;;             (("x\e$AVP\e(Bx" 3) . "x\e$AVP\e(B")
-;;             (("x\e$AVP\e(Bx" 4 1) . "\e$AVP\e(Bx")
-;;             (("kor\e$(CGQ\e(Be\e$(C1[\e(Ban" 8 1 ? ) . "or\e$(CGQ\e(Be\e$(C1[\e(B")
-;;             (("kor\e$(CGQ\e(Be\e$(C1[\e(Ban" 7 2 ? ) . "r\e$(CGQ\e(Be ")
+;;             (("" 0) . "")
+;;             (("" 1) . "")
+;;             (("中" 2) . "中")
+;;             (("" 1 nil ? ) . " ")
+;;             (("中文" 3 1 ? ) . "  ")
+;;             (("xx" 2) . "x")
+;;             (("x中x" 3) . "x中")
+;;             (("x中x" 3) . "x中")
+;;             (("x中x" 4 1) . "中x")
+;;             (("kor한e글an" 8 1 ? ) . "or한e글")
+;;             (("kor한e글an" 7 2 ? ) . "r한e ")
 ;;             (("" 0 nil nil "...") . "")
 ;;             (("x" 3 nil nil "...") . "x")
-;;             (("\e$AVP\e(B" 3 nil nil "...") . "\e$AVP\e(B")
+;;             (("中" 3 nil nil "...") . "中")
 ;;             (("foo" 3 nil nil "...") . "foo")
 ;;             (("foo" 2 nil nil "...") . "fo") ;; XEmacs failure?
 ;;             (("foobar" 6 0 nil "...") . "foobar")
 ;;             (("foobarbaz" 6 nil nil "...") . "foo...")
 ;;             (("foobarbaz" 7 2 nil "...") . "ob...")
 ;;             (("foobarbaz" 9 3 nil "...") . "barbaz")
-;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 15 1 ?  t) . " h\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo")
-;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 14 1 ?  t) . " h\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(B...")
-;;             (("x" 3 nil nil "\e$(Gemk#\e(B") . "x")
-;;             (("\e$AVP\e(B" 2 nil nil "\e$(Gemk#\e(B") . "\e$AVP\e(B")
-;;             (("\e$AVP\e(B" 1 nil ?x "\e$(Gemk#\e(B") . "x") ;; XEmacs error
-;;             (("\e$AVPND\e(B" 3 nil ?  "\e$(Gemk#\e(B") . "\e$AVP\e(B ") ;; XEmacs error
-;;             (("foobarbaz" 4 nil nil  "\e$(Gemk#\e(B") . "\e$(Gemk#\e(B")
-;;             (("foobarbaz" 5 nil nil  "\e$(Gemk#\e(B") . "f\e$(Gemk#\e(B")
-;;             (("foobarbaz" 6 nil nil  "\e$(Gemk#\e(B") . "fo\e$(Gemk#\e(B")
-;;             (("foobarbaz" 8 3 nil "\e$(Gemk#\e(B") . "b\e$(Gemk#\e(B")
-;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 14 4 ?x "\e$AHU1>\e$(Gk#\e(B") . "xe\e$A$KHU1>\e$(Gk#\e(B")
-;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 13 4 ?x "\e$AHU1>\e$(Gk#\e(B") . "xex\e$AHU1>\e$(Gk#\e(B")
+;;             (("こhんeにlちlはo" 15 1 ?  t) . " hんeにlちlはo")
+;;             (("こhんeにlちlはo" 14 1 ?  t) . " hんeにlち...")
+;;             (("x" 3 nil nil "粵語") . "x")
+;;             (("中" 2 nil nil "粵語") . "中")
+;;             (("中" 1 nil ?x "粵語") . "x") ;; XEmacs error
+;;             (("中文" 3 nil ?  "粵語") . "中 ") ;; XEmacs error
+;;             (("foobarbaz" 4 nil nil  "粵語") . "粵語")
+;;             (("foobarbaz" 5 nil nil  "粵語") . "f粵語")
+;;             (("foobarbaz" 6 nil nil  "粵語") . "fo粵語")
+;;             (("foobarbaz" 8 3 nil "粵語") . "b粵語")
+;;             (("こhんeにlちlはo" 14 4 ?x "日本語") . "xeに日本語")
+;;             (("こhんeにlちlはo" 13 4 ?x "日本語") . "xex日本語")
 ;;             ))
 ;;   (let (ret)
 ;;     (condition-case e
@@ -367,7 +367,7 @@ per-character basis, this may not be accurate."
 (provide 'mule-util)
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
 
 ;;; mule-util.el ends here
index 68749f1b012d12edc614e4930ed68ff9b32471f1..07873db38e10358aa1c64d7dacba479279674a83 100644 (file)
@@ -597,7 +597,7 @@ the selection process begins.  Used by isearchb.el."
   ;; The map is generated every time so that it can inherit new
   ;; functions.
   (let ((map (copy-keymap minibuffer-local-map))
-       buf-sel iswitchb-final-text map
+       buf-sel iswitchb-final-text
        icomplete-mode)  ; prevent icomplete starting up
     (define-key map "?" 'iswitchb-completion-help)
     (define-key map "\C-s" 'iswitchb-next-match)
index d573bd0239783ebaa401aa68cb43ef5f2eefead3..d6de2feb3fcfacb448ba8528df0c447033fd1b38 100644 (file)
@@ -202,6 +202,7 @@ macro to be executed before appending to it."
     ;; naming and binding
     (define-key map "b"    'kmacro-bind-to-key)
     (define-key map "n"    'kmacro-name-last-macro)
+    (define-key map "x"    'kmacro-to-register)
     map)
   "Keymap for keyboard macro commands.")
 (defalias 'kmacro-keymap kmacro-keymap)
@@ -613,9 +614,10 @@ An argument of zero means repeat until error."
 
 
 ;;;###autoload
-(defun kmacro-call-macro (arg &optional no-repeat end-macro)
-  "Call the last keyboard macro that you defined with \\[kmacro-start-macro].
+(defun kmacro-call-macro (arg &optional no-repeat end-macro macro)
+  "Call the keyboard MACRO that you defined with \\[kmacro-start-macro].
 A prefix argument serves as a repeat count.  Zero means repeat until error.
+MACRO defaults to `last-kbd-macro'.
 
 When you call the macro, you can call the macro again by repeating
 just the last key in the key sequence that you used to call this
@@ -631,8 +633,9 @@ others, use \\[kmacro-name-last-macro]."
                              (eq no-repeat 'repeating))
                         last-input-event)))
     (if end-macro
-       (kmacro-end-macro arg)
-      (call-last-kbd-macro arg #'kmacro-loop-setup-function))
+       (kmacro-end-macro arg)          ; modifies last-kbd-macro
+      (let ((last-kbd-macro (or macro last-kbd-macro)))
+       (call-last-kbd-macro arg #'kmacro-loop-setup-function)))
     (when (consp arg)
       (setq arg (car arg)))
     (when (and (or (null arg) (> arg 0))
@@ -655,7 +658,9 @@ others, use \\[kmacro-name-last-macro]."
          (define-key map (vector repeat-key)
            `(lambda () (interactive)
               (kmacro-call-macro ,(and kmacro-call-repeat-with-arg arg)
-                                 'repeating)))
+                                 'repeating nil ,(if end-macro
+                                                    last-kbd-macro
+                                                  (or macro last-kbd-macro)))))
          map)))))
 
 
@@ -836,6 +841,25 @@ Such a \"function\" cannot be called from Lisp, but it is a valid editor command
   (put symbol 'kmacro t))
 
 
+(defun kmacro-execute-from-register (k)
+  (kmacro-call-macro current-prefix-arg nil nil k))
+
+(defun kmacro-to-register (r)
+  "Store the last keyboard macro in register R."
+  (interactive
+   (progn
+     (or last-kbd-macro (error "No keyboard macro defined"))
+     (list (read-char "Save to register: "))))
+  (set-register r (registerv-make
+                  last-kbd-macro
+                  :jump-func 'kmacro-execute-from-register
+                  :print-func (lambda (k)
+                                (princ (format "a keyboard macro:\n   %s"
+                                               (format-kbd-macro k))))
+                  :insert-func (lambda (k)
+                                 (insert (format-kbd-macro k))))))
+
+
 (defun kmacro-view-macro (&optional _arg)
   "Display the last keyboard macro.
 If repeated, it shows previous elements in the macro ring."
index 441519d54267aa8bac1841498c3a0476363d9b9a..7af8b9932881f8e83197c743b9d90bf030889de7 100644 (file)
@@ -71,124 +71,124 @@ If the argument is nil, we return the display table to its standard state."
 
   (if (null cyrillic-language)
       (setq standard-display-table (make-display-table))
-    (aset standard-display-table ?\e,LP\e(B  [?a])
-    (aset standard-display-table ?\e,LQ\e(B  [?b])
-    (aset standard-display-table ?\e,LR\e(B  [?v])
-    (aset standard-display-table ?\e,LS\e(B  [?g])
-    (aset standard-display-table ?\e,LT\e(B  [?d])
-    (aset standard-display-table ?\e,LU\e(B  [?e])
-    (aset standard-display-table ?\e,Lq\e(B  [?y ?o])
-    (aset standard-display-table ?\e,LV\e(B  [?z ?h])
-    (aset standard-display-table ?\e,LW\e(B  [?z])
-    (aset standard-display-table ?\e,LX\e(B  [?i])
-    (aset standard-display-table ?\e,LY\e(B  [?j])
-    (aset standard-display-table ?\e,LZ\e(B  [?k])
-    (aset standard-display-table ?\e,L[\e(B  [?l])
-    (aset standard-display-table ?\e,L\\e(B  [?m])
-    (aset standard-display-table ?\e,L]\e(B  [?n])
-    (aset standard-display-table ?\e,L^\e(B  [?o])
-    (aset standard-display-table ?\e,L_\e(B  [?p])
-    (aset standard-display-table ?\e,L`\e(B  [?r])
-    (aset standard-display-table ?\e,La\e(B  [?s])
-    (aset standard-display-table ?\e,Lb\e(B  [?t])
-    (aset standard-display-table ?\e,Lc\e(B  [?u])
-    (aset standard-display-table ?\e,Ld\e(B  [?f])
-    (aset standard-display-table ?\e,Le\e(B  [?k ?h])
-    (aset standard-display-table ?\e,Lf\e(B  [?t ?s])
-    (aset standard-display-table ?\e,Lg\e(B  [?c ?h])
-    (aset standard-display-table ?\e,Lh\e(B  [?s ?h])
-    (aset standard-display-table ?\e,Li\e(B  [?s ?c ?h])
-    (aset standard-display-table ?\e,Lj\e(B  [?~])
-    (aset standard-display-table ?\e,Lk\e(B  [?y])
-    (aset standard-display-table ?\e,Ll\e(B  [?'])
-    (aset standard-display-table ?\e,Lm\e(B  [?e ?'])
-    (aset standard-display-table ?\e,Ln\e(B  [?y ?u])
-    (aset standard-display-table ?\e,Lo\e(B  [?y ?a])
-
-    (aset standard-display-table ?\e,L0\e(B  [?A])
-    (aset standard-display-table ?\e,L1\e(B  [?B])
-    (aset standard-display-table ?\e,L2\e(B  [?V])
-    (aset standard-display-table ?\e,L3\e(B  [?G])
-    (aset standard-display-table ?\e,L4\e(B  [?D])
-    (aset standard-display-table ?\e,L5\e(B  [?E])
-    (aset standard-display-table ?\e,L!\e(B  [?Y ?o])
-    (aset standard-display-table ?\e,L6\e(B  [?Z ?h])
-    (aset standard-display-table ?\e,L7\e(B  [?Z])
-    (aset standard-display-table ?\e,L8\e(B  [?I])
-    (aset standard-display-table ?\e,L9\e(B  [?J])
-    (aset standard-display-table ?\e,L:\e(B  [?K])
-    (aset standard-display-table ?\e,L;\e(B  [?L])
-    (aset standard-display-table ?\e,L<\e(B  [?M])
-    (aset standard-display-table ?\e,L=\e(B  [?N])
-    (aset standard-display-table ?\e,L>\e(B  [?O])
-    (aset standard-display-table ?\e,L?\e(B  [?P])
-    (aset standard-display-table ?\e,L@\e(B  [?R])
-    (aset standard-display-table ?\e,LA\e(B  [?S])
-    (aset standard-display-table ?\e,LB\e(B  [?T])
-    (aset standard-display-table ?\e,LC\e(B  [?U])
-    (aset standard-display-table ?\e,LD\e(B  [?F])
-    (aset standard-display-table ?\e,LE\e(B  [?K ?h])
-    (aset standard-display-table ?\e,LF\e(B  [?T ?s])
-    (aset standard-display-table ?\e,LG\e(B  [?C ?h])
-    (aset standard-display-table ?\e,LH\e(B  [?S ?h])
-    (aset standard-display-table ?\e,LI\e(B  [?S ?c ?h])
-    (aset standard-display-table ?\e,LJ\e(B  [?~])
-    (aset standard-display-table ?\e,LK\e(B  [?Y])
-    (aset standard-display-table ?\e,LL\e(B  [?'])
-    (aset standard-display-table ?\e,LM\e(B  [?E ?'])
-    (aset standard-display-table ?\e,LN\e(B  [?Y ?u])
-    (aset standard-display-table ?\e,LO\e(B  [?Y ?a])
-
-    (aset standard-display-table ?\e,Lt\e(B  [?i ?e])
-    (aset standard-display-table ?\e,Lw\e(B  [?i])
-    (aset standard-display-table ?\e,L~\e(B  [?u])
-    (aset standard-display-table ?\e,Lr\e(B  [?d ?j])
-    (aset standard-display-table ?\e,L{\e(B  [?c ?h ?j])
-    (aset standard-display-table ?\e,Ls\e(B  [?g ?j])
-    (aset standard-display-table ?\e,Lu\e(B  [?s])
-    (aset standard-display-table ?\e,L|\e(B  [?k])
-    (aset standard-display-table ?\e,Lv\e(B  [?i])
-    (aset standard-display-table ?\e,Lx\e(B  [?j])
-    (aset standard-display-table ?\e,Ly\e(B  [?l ?j])
-    (aset standard-display-table ?\e,Lz\e(B  [?n ?j])
-    (aset standard-display-table ?\e,L\7f\e(B  [?d ?z])
-
-    (aset standard-display-table ?\e,L$\e(B  [?Y ?e])
-    (aset standard-display-table ?\e,L'\e(B  [?Y ?i])
-    (aset standard-display-table ?\e,L.\e(B  [?U])
-    (aset standard-display-table ?\e,L"\e(B  [?D ?j])
-    (aset standard-display-table ?\e,L+\e(B  [?C ?h ?j])
-    (aset standard-display-table ?\e,L#\e(B  [?G ?j])
-    (aset standard-display-table ?\e,L%\e(B  [?S])
-    (aset standard-display-table ?\e,L,\e(B  [?K])
-    (aset standard-display-table ?\e,L&\e(B  [?I])
-    (aset standard-display-table ?\e,L(\e(B  [?J])
-    (aset standard-display-table ?\e,L)\e(B  [?L ?j])
-    (aset standard-display-table ?\e,L*\e(B  [?N ?j])
-    (aset standard-display-table ?\e,L/\e(B  [?D ?j])
+    (aset standard-display-table ?а  [?a])
+    (aset standard-display-table ?б  [?b])
+    (aset standard-display-table ?в  [?v])
+    (aset standard-display-table ?г  [?g])
+    (aset standard-display-table ?д  [?d])
+    (aset standard-display-table ?е  [?e])
+    (aset standard-display-table ?ё  [?y ?o])
+    (aset standard-display-table ?ж  [?z ?h])
+    (aset standard-display-table ?з  [?z])
+    (aset standard-display-table ?и  [?i])
+    (aset standard-display-table ?й  [?j])
+    (aset standard-display-table ?к  [?k])
+    (aset standard-display-table ?л  [?l])
+    (aset standard-display-table ?м  [?m])
+    (aset standard-display-table ?н  [?n])
+    (aset standard-display-table ?о  [?o])
+    (aset standard-display-table ?п  [?p])
+    (aset standard-display-table ?р  [?r])
+    (aset standard-display-table ?с  [?s])
+    (aset standard-display-table ?т  [?t])
+    (aset standard-display-table ?у  [?u])
+    (aset standard-display-table ?ф  [?f])
+    (aset standard-display-table ?х  [?k ?h])
+    (aset standard-display-table ?ц  [?t ?s])
+    (aset standard-display-table ?ч  [?c ?h])
+    (aset standard-display-table ?ш  [?s ?h])
+    (aset standard-display-table ?щ  [?s ?c ?h])
+    (aset standard-display-table ?ъ  [?~])
+    (aset standard-display-table ?ы  [?y])
+    (aset standard-display-table ?ь  [?'])
+    (aset standard-display-table ?э  [?e ?'])
+    (aset standard-display-table ?ю  [?y ?u])
+    (aset standard-display-table ?я  [?y ?a])
+
+    (aset standard-display-table ?А  [?A])
+    (aset standard-display-table ?Б  [?B])
+    (aset standard-display-table ?В  [?V])
+    (aset standard-display-table ?Г  [?G])
+    (aset standard-display-table ?Д  [?D])
+    (aset standard-display-table ?Е  [?E])
+    (aset standard-display-table ?Ё  [?Y ?o])
+    (aset standard-display-table ?Ж  [?Z ?h])
+    (aset standard-display-table ?З  [?Z])
+    (aset standard-display-table ?И  [?I])
+    (aset standard-display-table ?Й  [?J])
+    (aset standard-display-table ?К  [?K])
+    (aset standard-display-table ?Л  [?L])
+    (aset standard-display-table ?М  [?M])
+    (aset standard-display-table ?Н  [?N])
+    (aset standard-display-table ?О  [?O])
+    (aset standard-display-table ?П  [?P])
+    (aset standard-display-table ?Р  [?R])
+    (aset standard-display-table ?С  [?S])
+    (aset standard-display-table ?Т  [?T])
+    (aset standard-display-table ?У  [?U])
+    (aset standard-display-table ?Ф  [?F])
+    (aset standard-display-table ?Х  [?K ?h])
+    (aset standard-display-table ?Ц  [?T ?s])
+    (aset standard-display-table ?Ч  [?C ?h])
+    (aset standard-display-table ?Ш  [?S ?h])
+    (aset standard-display-table ?Щ  [?S ?c ?h])
+    (aset standard-display-table ?Ъ  [?~])
+    (aset standard-display-table ?Ы  [?Y])
+    (aset standard-display-table ?Ь  [?'])
+    (aset standard-display-table ?Э  [?E ?'])
+    (aset standard-display-table ?Ю  [?Y ?u])
+    (aset standard-display-table ?Я  [?Y ?a])
+
+    (aset standard-display-table ?є  [?i ?e])
+    (aset standard-display-table ?ї  [?i])
+    (aset standard-display-table ?ў  [?u])
+    (aset standard-display-table ?ђ  [?d ?j])
+    (aset standard-display-table ?ћ  [?c ?h ?j])
+    (aset standard-display-table ?ѓ  [?g ?j])
+    (aset standard-display-table ?ѕ  [?s])
+    (aset standard-display-table ?ќ  [?k])
+    (aset standard-display-table ?і  [?i])
+    (aset standard-display-table ?ј  [?j])
+    (aset standard-display-table ?љ  [?l ?j])
+    (aset standard-display-table ?њ  [?n ?j])
+    (aset standard-display-table ?џ  [?d ?z])
+
+    (aset standard-display-table ?Є  [?Y ?e])
+    (aset standard-display-table ?Ї  [?Y ?i])
+    (aset standard-display-table ?Ў  [?U])
+    (aset standard-display-table ?Ђ  [?D ?j])
+    (aset standard-display-table ?Ћ  [?C ?h ?j])
+    (aset standard-display-table ?Ѓ  [?G ?j])
+    (aset standard-display-table ?Ѕ  [?S])
+    (aset standard-display-table ?Ќ  [?K])
+    (aset standard-display-table ?І  [?I])
+    (aset standard-display-table ?Ј  [?J])
+    (aset standard-display-table ?Љ  [?L ?j])
+    (aset standard-display-table ?Њ  [?N ?j])
+    (aset standard-display-table ?Џ  [?D ?j])
 
     (when (equal cyrillic-language "Bulgarian")
-      (aset standard-display-table ?\e,Li\e(B [?s ?h ?t])
-      (aset standard-display-table ?\e,LI\e(B [?S ?h ?t])
-      (aset standard-display-table ?\e,Ln\e(B [?i ?u])
-      (aset standard-display-table ?\e,LN\e(B [?I ?u])
-      (aset standard-display-table ?\e,Lo\e(B [?i ?a])
-      (aset standard-display-table ?\e,LO\e(B [?I ?a]))
+      (aset standard-display-table ?щ [?s ?h ?t])
+      (aset standard-display-table ?Щ [?S ?h ?t])
+      (aset standard-display-table ?ю [?i ?u])
+      (aset standard-display-table ?Ю [?I ?u])
+      (aset standard-display-table ?я [?i ?a])
+      (aset standard-display-table ?Я [?I ?a]))
 
     (when (equal cyrillic-language "Ukrainian")        ; based on the official
                                        ; transliteration table
-      (aset standard-display-table ?\e,LX\e(B [?y])
-      (aset standard-display-table ?\e,L8\e(B [?Y])
-      (aset standard-display-table ?\e,LY\e(B [?i])
-      (aset standard-display-table ?\e,L9\e(B [?Y])
-      (aset standard-display-table ?\e,Ln\e(B [?i ?u])
-      (aset standard-display-table ?\e,Lo\e(B [?i ?a]))))
+      (aset standard-display-table ?и [?y])
+      (aset standard-display-table ?И [?Y])
+      (aset standard-display-table ?й [?i])
+      (aset standard-display-table ?Й [?Y])
+      (aset standard-display-table ?ю [?i ?u])
+      (aset standard-display-table ?я [?i ?a]))))
 
 ;;
 (provide 'cyril-util)
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
 
 ;;; cyril-util.el ends here
index e3156fa855e7f7554f2e44d1f75502198d500677..efcdf9db2c834ffcff5298a7849d7991a281e121 100644 (file)
@@ -1,4 +1,4 @@
-;;; european.el --- support for European languages -*- coding: iso-2022-7bit; -*-
+;;; european.el --- support for European languages -*- coding: utf-8; -*-
 
 ;; Copyright (C) 1997-1998, 2000-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -43,7 +43,7 @@
             (unibyte-display . iso-latin-1)
             (input-method . "latin-1-prefix")
             (sample-text
-             . "Hello, Hej, Tere, Hei, Bonjour, Gr\e$(D+d)N\e(B Gott, Ciao, \e$(D"B\e(BHola!")
+             . "Hello, Hej, Tere, Hei, Bonjour, Grüß Gott, Ciao, ¡Hola!")
             (documentation . "\
 This language environment is a generic one for the Latin-1 (ISO-8859-1)
 character set which supports the following European languages:
@@ -241,7 +241,7 @@ See also the Turkish environment."))
             (unibyte-display . iso-latin-8)
             (input-method . "latin-8-prefix")
             ;; Fixme: Welsh/Ga{e}lic greetings
-            (sample-text . "\e,_"\e(B \e$(D+q\e(B \e$(D*t\e(B")
+            (sample-text . "ḃ ŵ Ŷ")
             (documentation . "\
 This language environment is a generic one for the Latin-8 (ISO-8859-14)
 character set which supports the Celtic languages, including those not
@@ -271,7 +271,7 @@ covered by other ISO-8859 character sets:
             (unibyte-display . iso-latin-9)
             (input-method . "latin-9-prefix")
             (sample-text
-             . "AVE. \e$(D*^+^*v+v)-)M*s\e(B \e$(Q)!\e(B")
+             . "AVE. ŠšŽžŒœŸ €")
             (documentation . "\
 This language environment is a generic one for the Latin-9 (ISO-8859-15)
 character set which supports the same languages as Latin-1 with the
@@ -427,7 +427,7 @@ but it selects the Dutch tutorial and input method."))
            (unibyte-display . iso-latin-1)
            (sample-text . "\
 German (Deutsch Nord)  Guten Tag
-German (Deutsch S\e$(D+d\e(Bd)   Gr\e$(D+d)N\e(B Gott")
+German (Deutsch Süd)  Grüß Gott")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but sets the default input method to \"german-postfix\".
@@ -442,7 +442,7 @@ Additionally, it selects the German tutorial."))
            (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
            (input-method . "latin-1-prefix")
-           (sample-text . "French (Fran\e$(D+.\e(Bais)   Bonjour, Salut")
+           (sample-text . "French (Français)  Bonjour, Salut")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but it selects the French tutorial and input method."))
@@ -471,7 +471,7 @@ Additionally, it selects the Italian tutorial."))
              (input-method . "slovenian")
              (unibyte-display . iso-8859-2)
              (tutorial . "TUTORIAL.sl")
-             (sample-text . "\e$(D*v\e(Belimo vam uspe\e$(D+^\e(Ben dan!")
+             (sample-text . "Želimo vam uspešen dan!")
              (documentation . "\
 This language environment is almost the same as Latin-2,
 but it selects the Slovenian tutorial and input method."))
@@ -485,7 +485,7 @@ but it selects the Slovenian tutorial and input method."))
            (input-method . "spanish-postfix")
            (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
-           (sample-text . "Spanish (Espa\e$(D+P\e(Bol)   \e$(D"B\e(BHola!")
+           (sample-text . "Spanish (Español)  ¡Hola!")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but it sets the default input method to \"spanish-postfix\",
@@ -504,25 +504,25 @@ and it selects the Spanish tutorial."))
             (nonascii-translation . iso-8859-9)
             (unibyte-display . iso-latin-5)
             (input-method . "turkish-postfix")
-            (sample-text . "Turkish (T\e$(D+d\e(Brk\e$(D+.\e(Be)   Merhaba")
+            (sample-text . "Turkish (Türkçe) Merhaba")
             (setup-function . turkish-case-conversion-enable)
             (setup-function . turkish-case-conversion-disable)
             (documentation . "Support for Turkish.
 Differs from the Latin-5 environment in using the `turkish-postfix' input
-method and applying Turkish case rules for the characters i, I, \e$(D)E\e(B, \e$(D*D\e(B.")))
+method and applying Turkish case rules for the characters i, I, ı, İ.")))
 
 (defun turkish-case-conversion-enable ()
-  "Set up Turkish case conversion of `i' and `I' into `\e$(D*D\e(B' and `\e$(D)E\e(B'."
+  "Set up Turkish case conversion of `i' and `I' into `İ' and `ı'."
   (let ((table (standard-case-table)))
-    (set-case-syntax-pair ?\e$(D*D\e(B ?i table)
-    (set-case-syntax-pair ?I ?\e$(D)E\e(B table)))
+    (set-case-syntax-pair ?İ ?i table)
+    (set-case-syntax-pair ?I ?ı table)))
 
 (defun turkish-case-conversion-disable ()
   "Set up normal (non-Turkish) case conversion of `i' into `I'."
   (let ((table (standard-case-table)))
     (set-case-syntax-pair ?I ?i table)
-    (set-case-syntax ?\e$(D*D\e(B "w" table)
-    (set-case-syntax ?\e$(D)E\e(B "w" table)))
+    (set-case-syntax ?İ "w" table)
+    (set-case-syntax ?ı "w" table)))
 
 ;; Polish ISO 8859-2 environment.
 ;; Maintainer: Wlodek Bzyl <matwb@univ.gda.pl>
@@ -536,7 +536,7 @@ method and applying Turkish case rules for the characters i, I, \e$(D)E\e(B, \e$(D*
           (nonascii-translation . iso-8859-2)
           (unibyte-display . iso-8859-2)
           (tutorial . "TUTORIAL.pl")
-          (sample-text . "P\e$(D+Q\e(Bjd\e$(D+u\e(B, ki\e$(D+M\e(B-\e$(D+w\e(Be t\e$(D+8\e(B chmurno\e$(D+\++\e(B w g\e$(D)H+(\e(Bb flaszy")
+          (sample-text . "Pójdź, kiń-że tę chmurność w głąb flaszy")
           (documentation . t))
  '("European"))
 
index 8964da1ea13015857a0f8ab213067c145553d648..c8df282e6e91be5c09793e79e8db0c6961996cf4 100644 (file)
@@ -1,4 +1,4 @@
-;;; ind-util.el --- Transliteration and Misc. Tools for Indian Languages -*- coding: iso-2022-7bit; -*-
+;;; ind-util.el --- Transliteration and Misc. Tools for Indian Languages -*- coding: utf-8-emacs; -*-
 
 ;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
 
 (defvar indian-dev-base-table
   '(
     (;; VOWELS  (18)
-     (?\e$,15E\e(B nil) (?\e$,15F\e(B ?\e$,15~\e(B) (?\e$,15G\e(B ?\e$,15\7f\e(B) (?\e$,15H\e(B ?\e$,16 \e(B) (?\e$,15I\e(B ?\e$,16!\e(B) (?\e$,15J\e(B ?\e$,16"\e(B)
-     (?\e$,15K\e(B ?\e$,16#\e(B) (?\e$,15L\e(B ?\e$,16B\e(B) (?\e$,15M\e(B ?\e$,16%\e(B) (?\e$,15N\e(B ?\e$,16&\e(B) (?\e$,15O\e(B ?\e$,16'\e(B) (?\e$,15P\e(B ?\e$,16(\e(B)
-     (?\e$,15Q\e(B ?\e$,16)\e(B) (?\e$,15R\e(B ?\e$,16*\e(B) (?\e$,15S\e(B ?\e$,16+\e(B) (?\e$,15T\e(B ?\e$,16,\e(B) (?\e$,16@\e(B ?\e$,16$\e(B) (?\e$,16A\e(B ?\e$,16C\e(B))
+     (?अ nil) (?आ ?ा) (?इ ?ि) (?ई ?ी) (?उ ?ु) (?ऊ ?ू)
+     (?ऋ ?ृ) (?ऌ ?ॢ) (?ऍ ?ॅ) (?ऎ ?ॆ) (?ए ?े) (?ऐ ?ै)
+     (?ऑ ?ॉ) (?ऒ ?ॊ) (?ओ ?ो) (?औ ?ौ) (?ॠ ?ॄ) (?ॡ ?ॣ))
     (;; CONSONANTS (currently 42, including special cases)
-     ?\e$,15U\e(B ?\e$,15V\e(B ?\e$,15W\e(B ?\e$,15X\e(B ?\e$,15Y\e(B                  ;; GUTTRULS
-     ?\e$,15Z\e(B ?\e$,15[\e(B ?\e$,15\\e(B ?\e$,15]\e(B ?\e$,15^\e(B                  ;; PALATALS
-     ?\e$,15_\e(B ?\e$,15`\e(B ?\e$,15a\e(B ?\e$,15b\e(B ?\e$,15c\e(B                  ;; CEREBRALS
-     ?\e$,15d\e(B ?\e$,15e\e(B ?\e$,15f\e(B ?\e$,15g\e(B ?\e$,15h\e(B ?\e$,15i\e(B              ;; DENTALS
-     ?\e$,15j\e(B ?\e$,15k\e(B ?\e$,15l\e(B ?\e$,15m\e(B ?\e$,15n\e(B                  ;; LABIALS
-     ?\e$,15o\e(B ?\e$,15p\e(B ?\e$,15q\e(B ?\e$,15r\e(B ?\e$,15s\e(B ?\e$,15t\e(B ?\e$,15u\e(B          ;; SEMIVOWELS
-     ?\e$,15v\e(B ?\e$,15w\e(B ?\e$,15x\e(B ?\e$,15y\e(B                    ;; SIBILANTS
-     ?\e$,168\e(B ?\e$,169\e(B ?\e$,16:\e(B ?\e$,16;\e(B ?\e$,16<\e(B ?\e$,16=\e(B ?\e$,16>\e(B ?\e$,16?\e(B      ;; NUKTAS
-     "\e$,15\6-5^\e(B" "\e$,15U6-5w\e(B")
+     ?क ?ख ?ग ?घ ?ङ                  ;; GUTTRULS
+     ?च ?छ ?ज ?झ ?ञ                  ;; PALATALS
+     ?ट ?ठ ?ड ?ढ ?ण                  ;; CEREBRALS
+     ?त ?थ ?द ?ध ?न ?ऩ              ;; DENTALS
+     ?प ?फ ?ब ?भ ?म                  ;; LABIALS
+     ?य ?र ?ऱ ?ल ?ळ ?ऴ ?व          ;; SEMIVOWELS
+     ?श ?ष ?स ?ह                    ;; SIBILANTS
+     ?क़ ?ख़ ?ग़ ?ज़ ?ड़ ?ढ़ ?फ़ ?य़      ;; NUKTAS
+     "ज्ञ" "क्ष")
     (;; Misc Symbols (7)
-     ?\e$,15A\e(B ?\e$,15B\e(B ?\e$,15C\e(B ?\e$,15}\e(B ?\e$,16-\e(B ?\e$,160\e(B ?\e$,16D\e(B)
+     ?ँ ?ं ?ः ?ऽ ?् ?ॐ ?।)
     (;; Digits (10)
-     ?\e$,16F\e(B ?\e$,16G\e(B ?\e$,16H\e(B ?\e$,16I\e(B ?\e$,16J\e(B ?\e$,16K\e(B ?\e$,16L\e(B ?\e$,16M\e(B ?\e$,16N\e(B ?\e$,16O\e(B)
+     ?० ?१ ?२ ?३ ?४ ?५ ?६ ?७ ?८ ?९)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,16-5p\e(B" "\e$,15p6-\e(B" "\e$,15d6-5p\e(B" "\e$,15v6-5p\e(B" "\e$,15|\e(B")))
+     "्र" "र्" "त्र" "श्र" "़")))
 
 ;; Punjabi is also known as Gurmukhi.
 (defvar indian-pnj-base-table
   '(
     (;; VOWELS
-     (?\e$,18%\e(B nil) (?\e$,18&\e(B ?\e$,18^\e(B) (?\e$,18'\e(B ?\e$,18_\e(B) (?\e$,18(\e(B ?\e$,18`\e(B) (?\e$,18)\e(B ?\e$,18a\e(B) (?\e$,18*\e(B ?\e$,18b\e(B)
-     nil nil nil nil (?\e$,18/\e(B ?\e$,18g\e(B) (?\e$,180\e(B ?\e$,18h\e(B)
-     nil nil (?\e$,183\e(B ?\e$,18k\e(B) (?\e$,184\e(B ?\e$,18l\e(B) nil nil)
+     (?ਅ nil) (?ਆ ?ਾ) (?ਇ ?ਿ) (?ਈ ?ੀ) (?ਉ ?ੁ) (?ਊ ?ੂ)
+     nil nil nil nil (?ਏ ?ੇ) (?ਐ ?ੈ)
+     nil nil (?ਓ ?ੋ) (?ਔ ?ੌ) nil nil)
     (;; CONSONANTS
-     ?\e$,185\e(B ?\e$,186\e(B ?\e$,187\e(B ?\e$,188\e(B ?\e$,189\e(B                  ;; GUTTRULS
-     ?\e$,18:\e(B ?\e$,18;\e(B ?\e$,18<\e(B ?\e$,18=\e(B ?\e$,18>\e(B                  ;; PALATALS
-     ?\e$,18?\e(B ?\e$,18@\e(B ?\e$,18A\e(B ?\e$,18B\e(B ?\e$,18C\e(B                  ;; CEREBRALS
-     ?\e$,18D\e(B ?\e$,18E\e(B ?\e$,18F\e(B ?\e$,18G\e(B ?\e$,18H\e(B nil              ;; DENTALS
-     ?\e$,18J\e(B ?\e$,18K\e(B ?\e$,18L\e(B ?\e$,18M\e(B ?\e$,18N\e(B                  ;; LABIALS
-     ?\e$,18O\e(B ?\e$,18P\e(B nil ?\e$,18R\e(B ?\e$,18S\e(B nil ?\e$,18U\e(B          ;; SEMIVOWELS
-     ?\e$,18V\e(B nil ?\e$,18X\e(B ?\e$,18Y\e(B                    ;; SIBILANTS
-     nil ?\e$,18y\e(B ?\e$,18z\e(B ?\e$,18{\e(B ?\e$,18|\e(B nil ?\e$,18~\e(B nil      ;; NUKTAS
-     "\e$,18<8m8>\e(B" nil)
+     ?ਕ ?ਖ ?ਗ ?ਘ ?ਙ                  ;; GUTTRULS
+     ?ਚ ?ਛ ?ਜ ?ਝ ?ਞ                  ;; PALATALS
+     ?ਟ ?ਠ ?ਡ ?ਢ ?ਣ                  ;; CEREBRALS
+     ?ਤ ?ਥ ?ਦ ?ਧ ?ਨ nil              ;; DENTALS
+     ?ਪ ?ਫ ?ਬ ?ਭ ?ਮ                  ;; LABIALS
+     ?ਯ ?ਰ nil ?ਲ ?ਲ਼ nil ?ਵ          ;; SEMIVOWELS
+     ?ਸ਼ nil ?ਸ ?ਹ                    ;; SIBILANTS
+     nil ?ਖ਼ ?ਗ਼ ?ਜ਼ ?ੜ nil ?ਫ਼ nil      ;; NUKTAS
+     "ਜ੍ਞ" nil)
     (;; Misc Symbols (7)
-     nil ?\e$,18"\e(B nil nil ?\e$,18m\e(B nil nil) ;; ek onkar, etc.
+     nil ?ਂ nil nil ?੍ nil nil) ;; ek onkar, etc.
     (;; Digits
-     ?\e$,19&\e(B ?\e$,19'\e(B ?\e$,19(\e(B ?\e$,19)\e(B ?\e$,19*\e(B ?\e$,19+\e(B ?\e$,19,\e(B ?\e$,19-\e(B ?\e$,19.\e(B ?\e$,19/\e(B)
+     ?੦ ?੧ ?੨ ?੩ ?੪ ?੫ ?੬ ?੭ ?੮ ?੯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,18m8P\e(B" "\e$,18P8m\e(B" "\e$,18D8m8P\e(B" "\e$,18V8m8P\e(B" "\e$,18\\e(B")))
+     "੍ਰ" "ਰ੍" "ਤ੍ਰ" "ਸ਼੍ਰ" "਼")))
 
 (defvar indian-gjr-base-table
   '(
     (;; VOWELS
-     (?\e$,19E\e(B nil) (?\e$,19F\e(B ?\e$,19~\e(B) (?\e$,19G\e(B ?\e$,19\7f\e(B) (?\e$,19H\e(B ?\e$,1: \e(B) (?\e$,19I\e(B ?\e$,1:!\e(B) (?\e$,19J\e(B ?\e$,1:"\e(B)
-     (?\e$,19K\e(B ?\e$,1:#\e(B) nil (?\e$,19M\e(B ?\e$,1:%\e(B) nil (?\e$,19O\e(B ?\e$,1:'\e(B) (?\e$,19P\e(B ?\e$,1:(\e(B)
-     (?\e$,19Q\e(B ?\e$,1:)\e(B) nil (?\e$,19S\e(B ?\e$,1:+\e(B) (?\e$,19T\e(B ?\e$,1:,\e(B) (?\e$,1:@\e(B ?\e$,1:$\e(B) nil)
+     (?અ nil) (?આ ?ા) (?ઇ ?િ) (?ઈ ?ી) (?ઉ ?ુ) (?ઊ ?ૂ)
+     (?ઋ ?ૃ) nil (?ઍ ?ૅ) nil (?એ ?ે) (?ઐ ?ૈ)
+     (?ઑ ?ૉ) nil (?ઓ ?ો) (?ઔ ?ૌ) (?ૠ ?ૄ) nil)
     (;; CONSONANTS
-     ?\e$,19U\e(B ?\e$,19V\e(B ?\e$,19W\e(B ?\e$,19X\e(B ?\e$,19Y\e(B                  ;; GUTTRULS
-     ?\e$,19Z\e(B ?\e$,19[\e(B ?\e$,19\\e(B ?\e$,19]\e(B ?\e$,19^\e(B                  ;; PALATALS
-     ?\e$,19_\e(B ?\e$,19`\e(B ?\e$,19a\e(B ?\e$,19b\e(B ?\e$,19c\e(B                  ;; CEREBRALS
-     ?\e$,19d\e(B ?\e$,19e\e(B ?\e$,19f\e(B ?\e$,19g\e(B ?\e$,19h\e(B nil              ;; DENTALS
-     ?\e$,19j\e(B ?\e$,19k\e(B ?\e$,19l\e(B ?\e$,19m\e(B ?\e$,19n\e(B                  ;; LABIALS
-     ?\e$,19o\e(B ?\e$,19p\e(B nil ?\e$,19r\e(B ?\e$,19s\e(B nil ?\e$,19u\e(B          ;; SEMIVOWELS
-     ?\e$,19v\e(B ?\e$,19w\e(B ?\e$,19x\e(B ?\e$,19y\e(B                    ;; SIBILANTS
+     ?ક ?ખ ?ગ ?ઘ ?ઙ                  ;; GUTTRULS
+     ?ચ ?છ ?જ ?ઝ ?ઞ                  ;; PALATALS
+     ?ટ ?ઠ ?ડ ?ઢ ?ણ                  ;; CEREBRALS
+     ?ત ?થ ?દ ?ધ ?ન nil              ;; DENTALS
+     ?પ ?ફ ?બ ?ભ ?મ                  ;; LABIALS
+     ?ય ?ર nil ?લ ?ળ nil ?વ          ;; SEMIVOWELS
+     ?શ ?ષ ?સ ?હ                    ;; SIBILANTS
      nil nil nil nil nil nil nil nil      ;; NUKTAS
-     "\e$,19\:-9^\e(B" "\e$,19U:-9w\e(B")
+     "જ્ઞ" "ક્ષ")
     (;; Misc Symbols (7)
-     ?\e$,19A\e(B ?\e$,19B\e(B ?\e$,19C\e(B ?\e$,19}\e(B ?\e$,1:-\e(B ?\e$,1:0\e(B nil)
+     ?ઁ ?ં ?ઃ ?ઽ ?્ ?ૐ nil)
     (;; Digits
-     ?\e$,1:F\e(B ?\e$,1:G\e(B ?\e$,1:H\e(B ?\e$,1:I\e(B ?\e$,1:J\e(B ?\e$,1:K\e(B ?\e$,1:L\e(B ?\e$,1:M\e(B ?\e$,1:N\e(B ?\e$,1:O\e(B)
+     ?૦ ?૧ ?૨ ?૩ ?૪ ?૫ ?૬ ?૭ ?૮ ?૯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1:-9p\e(B" "\e$,19p:-\e(B" "\e$,19d:-9p\e(B" "\e$,19v:-9p\e(B" "\e$,19|\e(B")))
+     "્ર" "ર્" "ત્ર" "શ્ર" "઼")))
 
 (defvar indian-ori-base-table
   '(
     (;; VOWELS
-     (?\e$,1:e\e(B nil) (?\e$,1:f\e(B ?\e$,1;>\e(B) (?\e$,1:g\e(B ?\e$,1;?\e(B) (?\e$,1:h\e(B ?\e$,1;@\e(B) (?\e$,1:i\e(B ?\e$,1;A\e(B) (?\e$,1:j\e(B ?\e$,1;B\e(B)
-     (?\e$,1:k\e(B ?\e$,1;C\e(B) (?\e$,1:l\e(B nil) nil nil (?\e$,1:o\e(B ?\e$,1;G\e(B) (?\e$,1:p\e(B ?\e$,1;H\e(B)
-     nil nil (?\e$,1:s\e(B ?\e$,1;K\e(B) (?\e$,1:t\e(B ?\e$,1;L\e(B) (?\e$,1;`\e(B nil) (?\e$,1;a\e(B nil))
+     (?ଅ nil) (?ଆ ?ା) (?ଇ ?ି) (?ଈ ?ୀ) (?ଉ ?ୁ) (?ଊ ?ୂ)
+     (?ଋ ?ୃ) (?ଌ nil) nil nil (?ଏ ?େ) (?ଐ ?ୈ)
+     nil nil (?ଓ ?ୋ) (?ଔ ?ୌ) (?ୠ nil) (?ୡ nil))
     (;; CONSONANTS
-     ?\e$,1:u\e(B ?\e$,1:v\e(B ?\e$,1:w\e(B ?\e$,1:x\e(B ?\e$,1:y\e(B                  ;; GUTTRULS
-     ?\e$,1:z\e(B ?\e$,1:{\e(B ?\e$,1:|\e(B ?\e$,1:}\e(B ?\e$,1:~\e(B                  ;; PALATALS
-     ?\e$,1:\7f\e(B ?\e$,1; \e(B ?\e$,1;!\e(B ?\e$,1;"\e(B ?\e$,1;#\e(B                  ;; CEREBRALS
-     ?\e$,1;$\e(B ?\e$,1;%\e(B ?\e$,1;&\e(B ?\e$,1;'\e(B ?\e$,1;(\e(B nil              ;; DENTALS
-     ?\e$,1;*\e(B ?\e$,1;+\e(B ?\e$,1;,\e(B ?\e$,1;-\e(B ?\e$,1;.\e(B                  ;; LABIALS
-     ?\e$,1;/\e(B ?\e$,1;0\e(B nil ?\e$,1;2\e(B ?\e$,1;3\e(B nil nil          ;; SEMIVOWELS
-     ?\e$,1;6\e(B ?\e$,1;7\e(B ?\e$,1;8\e(B ?\e$,1;9\e(B                    ;; SIBILANTS
-     nil nil nil nil ?\e$,1;\\e(B ?\e$,1;]\e(B nil ?\e$,1;_\e(B      ;; NUKTAS
-     "\e$,1:|;M:~\e(B" "\e$,1:u;M;7\e(B")
+     ?କ ?ଖ ?ଗ ?ଘ ?ଙ                  ;; GUTTRULS
+     ?ଚ ?ଛ ?ଜ ?ଝ ?ଞ                  ;; PALATALS
+     ?ଟ ?ଠ ?ଡ ?ଢ ?ଣ                  ;; CEREBRALS
+     ?ତ ?ଥ ?ଦ ?ଧ ?ନ nil              ;; DENTALS
+     ?ପ ?ଫ ?ବ ?ଭ ?ମ                  ;; LABIALS
+     ?ଯ ?ର nil ?ଲ ?ଳ nil nil          ;; SEMIVOWELS
+     ?ଶ ?ଷ ?ସ ?ହ                    ;; SIBILANTS
+     nil nil nil nil ?ଡ଼ ?ଢ଼ nil ?ୟ      ;; NUKTAS
+     "ଜ୍ଞ" "କ୍ଷ")
     (;; Misc Symbols
-     ?\e$,1:a\e(B ?\e$,1:b\e(B ?\e$,1:c\e(B ?\e$,1;=\e(B ?\e$,1;M\e(B nil nil)
+     ?ଁ ?ଂ ?ଃ ?ଽ ?୍ nil nil)
     (;; Digits
-     ?\e$,1;f\e(B ?\e$,1;g\e(B ?\e$,1;h\e(B ?\e$,1;i\e(B ?\e$,1;j\e(B ?\e$,1;k\e(B ?\e$,1;l\e(B ?\e$,1;m\e(B ?\e$,1;n\e(B ?\e$,1;o\e(B)
+     ?୦ ?୧ ?୨ ?୩ ?୪ ?୫ ?୬ ?୭ ?୮ ?୯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1;M;0\e(B" "\e$,1;0;M\e(B" "\e$,1;$;M;0\e(B" "\e$,1;6;M;0\e(B" "\e$,1;<\e(B")))
+     "୍ର" "ର୍" "ତ୍ର" "ଶ୍ର" "଼")))
 
 (defvar indian-bng-base-table
   '(
     (;; VOWELS
-     (?\e$,16e\e(B nil) (?\e$,16f\e(B ?\e$,17>\e(B) (?\e$,16g\e(B ?\e$,17?\e(B) (?\e$,16h\e(B ?\e$,17@\e(B) (?\e$,16i\e(B ?\e$,17A\e(B) (?\e$,16j\e(B ?\e$,17B\e(B)
-     (?\e$,16k\e(B ?\e$,17C\e(B) (?\e$,16l\e(B ?\e$,17b\e(B) nil nil (?\e$,16o\e(B ?\e$,17G\e(B) (?\e$,16p\e(B ?\e$,17H\e(B)
-     nil nil (?\e$,16s\e(B ?\e$,17K\e(B) (?\e$,16t\e(B ?\e$,17L\e(B) (?\e$,17`\e(B ?\e$,17D\e(B) (?\e$,17a\e(B ?\e$,17c\e(B))
+     (?অ nil) (?আ ?া) (?ই ?ি) (?ঈ ?ী) (?উ ?ু) (?ঊ ?ূ)
+     (?ঋ ?ৃ) (?ঌ ?ৢ) nil nil (?এ ?ে) (?ঐ ?ৈ)
+     nil nil (?ও ?ো) (?ঔ ?ৌ) (?ৠ ?ৄ) (?ৡ ?ৣ))
     (;; CONSONANTS
-     ?\e$,16u\e(B ?\e$,16v\e(B ?\e$,16w\e(B ?\e$,16x\e(B ?\e$,16y\e(B                  ;; GUTTRULS
-     ?\e$,16z\e(B ?\e$,16{\e(B ?\e$,16|\e(B ?\e$,16}\e(B ?\e$,16~\e(B                  ;; PALATALS
-     ?\e$,16\7f\e(B ?\e$,17 \e(B ?\e$,17!\e(B ?\e$,17"\e(B ?\e$,17#\e(B                  ;; CEREBRALS
-     ?\e$,17$\e(B ?\e$,17%\e(B ?\e$,17&\e(B ?\e$,17'\e(B ?\e$,17(\e(B nil              ;; DENTALS
-     ?\e$,17*\e(B ?\e$,17+\e(B ?\e$,17,\e(B ?\e$,17-\e(B ?\e$,17.\e(B                  ;; LABIALS
-     ?\e$,17/\e(B ?\e$,170\e(B nil ?\e$,172\e(B nil nil nil          ;; SEMIVOWELS
-     ?\e$,176\e(B ?\e$,177\e(B ?\e$,178\e(B ?\e$,179\e(B                    ;; SIBILANTS
-     nil nil nil nil ?\e$,17\\e(B ?\e$,17]\e(B nil ?\e$,17_\e(B      ;; NUKTAS
-     "\e$,16|7M6~\e(B" "\e$,16u7M77\e(B")
+     ?ক ?খ ?গ ?ঘ ?ঙ                  ;; GUTTRULS
+     ?চ ?ছ ?জ ?ঝ ?ঞ                  ;; PALATALS
+     ?ট ?ঠ ?ড ?ঢ ?ণ                  ;; CEREBRALS
+     ?ত ?থ ?দ ?ধ ?ন nil              ;; DENTALS
+     ?প ?ফ ?ব ?ভ ?ম                  ;; LABIALS
+     ?য ?র nil ?ল nil nil nil          ;; SEMIVOWELS
+     ?শ ?ষ ?স ?হ                    ;; SIBILANTS
+     nil nil nil nil ?ড় ?ঢ় nil ?য়      ;; NUKTAS
+     "জ্ঞ" "ক্ষ")
     (;; Misc Symbols
-     ?\e$,16a\e(B ?\e$,16b\e(B ?\e$,16c\e(B nil ?\e$,17M\e(B nil nil)
+     ?ঁ ?ং ?ঃ nil ?্ nil nil)
     (;; Digits
-     ?\e$,17f\e(B ?\e$,17g\e(B ?\e$,17h\e(B ?\e$,17i\e(B ?\e$,17j\e(B ?\e$,17k\e(B ?\e$,17l\e(B ?\e$,17m\e(B ?\e$,17n\e(B ?\e$,17o\e(B)
+     ?০ ?১ ?২ ?৩ ?৪ ?৫ ?৬ ?৭ ?৮ ?৯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,17M70\e(B" "\e$,1707M\e(B" "\e$,17$7M70\e(B" "\e$,1767M70\e(B" "\e$,17<\e(B")))
+     "্র" "র্" "ত্র" "শ্র" "়")))
 
 (defvar indian-asm-base-table
   '(
     (;; VOWELS
-     (?\e$,16e\e(B nil) (?\e$,16f\e(B ?\e$,17>\e(B) (?\e$,16g\e(B ?\e$,17?\e(B) (?\e$,16h\e(B ?\e$,17@\e(B) (?\e$,16i\e(B ?\e$,17A\e(B) (?\e$,16j\e(B ?\e$,17B\e(B)
-     (?\e$,16k\e(B ?\e$,17C\e(B) (?\e$,16l\e(B ?\e$,17b\e(B) nil nil (?\e$,16o\e(B ?\e$,17G\e(B) (?\e$,16p\e(B ?\e$,17H\e(B)
-     nil nil (?\e$,16s\e(B ?\e$,17K\e(B) (?\e$,16t\e(B ?\e$,17L\e(B) (?\e$,17`\e(B ?\e$,17D\e(B) (?\e$,17a\e(B ?\e$,17c\e(B))
+     (?অ nil) (?আ ?া) (?ই ?ি) (?ঈ ?ী) (?উ ?ু) (?ঊ ?ূ)
+     (?ঋ ?ৃ) (?ঌ ?ৢ) nil nil (?এ ?ে) (?ঐ ?ৈ)
+     nil nil (?ও ?ো) (?ঔ ?ৌ) (?ৠ ?ৄ) (?ৡ ?ৣ))
     (;; CONSONANTS
-     ?\e$,16u\e(B ?\e$,16v\e(B ?\e$,16w\e(B ?\e$,16x\e(B ?\e$,16y\e(B                  ;; GUTTRULS
-     ?\e$,16z\e(B ?\e$,16{\e(B ?\e$,16|\e(B ?\e$,16}\e(B ?\e$,16~\e(B                  ;; PALATALS
-     ?\e$,16\7f\e(B ?\e$,17 \e(B ?\e$,17!\e(B ?\e$,17"\e(B ?\e$,17#\e(B                  ;; CEREBRALS
-     ?\e$,17$\e(B ?\e$,17%\e(B ?\e$,17&\e(B ?\e$,17'\e(B ?\e$,17(\e(B nil              ;; DENTALS
-     ?\e$,17*\e(B ?\e$,17+\e(B ?\e$,17,\e(B ?\e$,17-\e(B ?\e$,17.\e(B                  ;; LABIALS
-     ?\e$,17/\e(B ?\e$,17p\e(B nil ?\e$,172\e(B nil nil ?\e$,17q\e(B          ;; SEMIVOWELS
-     ?\e$,176\e(B ?\e$,177\e(B ?\e$,178\e(B ?\e$,179\e(B                    ;; SIBILANTS
-     nil nil nil nil ?\e$,17\\e(B ?\e$,17]\e(B nil ?\e$,17_\e(B      ;; NUKTAS
-     "\e$,16|7M6~\e(B" "\e$,16u7M77\e(B")
+     ?ক ?খ ?গ ?ঘ ?ঙ                  ;; GUTTRULS
+     ?চ ?ছ ?জ ?ঝ ?ঞ                  ;; PALATALS
+     ?ট ?ঠ ?ড ?ঢ ?ণ                  ;; CEREBRALS
+     ?ত ?থ ?দ ?ধ ?ন nil              ;; DENTALS
+     ?প ?ফ ?ব ?ভ ?ম                  ;; LABIALS
+     ?য ?ৰ nil ?ল nil nil ?ৱ          ;; SEMIVOWELS
+     ?শ ?ষ ?স ?হ                    ;; SIBILANTS
+     nil nil nil nil ?ড় ?ঢ় nil ?য়      ;; NUKTAS
+     "জ্ঞ" "ক্ষ")
     (;; Misc Symbols
-     ?\e$,16a\e(B ?\e$,16b\e(B ?\e$,16c\e(B nil ?\e$,17M\e(B nil nil)
+     ?ঁ ?ং ?ঃ nil ?্ nil nil)
     (;; Digits
-     ?\e$,17f\e(B ?\e$,17g\e(B ?\e$,17h\e(B ?\e$,17i\e(B ?\e$,17j\e(B ?\e$,17k\e(B ?\e$,17l\e(B ?\e$,17m\e(B ?\e$,17n\e(B ?\e$,17o\e(B)
+     ?০ ?১ ?২ ?৩ ?৪ ?৫ ?৬ ?৭ ?৮ ?৯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,17M7p\e(B" "\e$,17p7M\e(B" "\e$,17$7M7p\e(B" "\e$,1767M7p\e(B" "\e$,17<\e(B")))
+     "্ৰ" "ৰ্" "ত্ৰ" "শ্ৰ" "়")))
 
 (defvar indian-tlg-base-table
   '(
     (;; VOWELS
-     (?\e$,1=E\e(B nil) (?\e$,1=F\e(B ?\e$,1=~\e(B) (?\e$,1=G\e(B ?\e$,1=\7f\e(B) (?\e$,1=H\e(B ?\e$,1> \e(B) (?\e$,1=I\e(B ?\e$,1>!\e(B) (?\e$,1=J\e(B ?\e$,1>"\e(B)
-     (?\e$,1=K\e(B ?\e$,1>#\e(B) (?\e$,1=L\e(B nil) nil (?\e$,1=O\e(B ?\e$,1>'\e(B) (?\e$,1=N\e(B ?\e$,1>&\e(B) (?\e$,1=P\e(B ?\e$,1>(\e(B)
-     nil (?\e$,1=S\e(B ?\e$,1>+\e(B) (?\e$,1=R\e(B ?\e$,1>*\e(B) (?\e$,1=T\e(B ?\e$,1>,\e(B) (?\e$,1>@\e(B ?\e$,1>$\e(B) (?\e$,1>A\e(B nil))
+     (?అ nil) (?ఆ ?ా) (?ఇ ?ి) (?ఈ ?ీ) (?ఉ ?ు) (?ఊ ?ూ)
+     (?ఋ ?ృ) (?ఌ nil) nil (?ఏ ?ే) (?ఎ ?ె) (?ఐ ?ై)
+     nil (?ఓ ?ో) (?ఒ ?ొ) (?ఔ ?ౌ) (?ౠ ?ౄ) (?ౡ nil))
     (;; CONSONANTS
-     ?\e$,1=U\e(B ?\e$,1=V\e(B ?\e$,1=W\e(B ?\e$,1=X\e(B ?\e$,1=Y\e(B                  ;; GUTTRULS
-     ?\e$,1=Z\e(B ?\e$,1=[\e(B ?\e$,1=\\e(B ?\e$,1=]\e(B ?\e$,1=^\e(B                  ;; PALATALS
-     ?\e$,1=_\e(B ?\e$,1=`\e(B ?\e$,1=a\e(B ?\e$,1=b\e(B ?\e$,1=c\e(B                  ;; CEREBRALS
-     ?\e$,1=d\e(B ?\e$,1=e\e(B ?\e$,1=f\e(B ?\e$,1=g\e(B ?\e$,1=h\e(B nil              ;; DENTALS
-     ?\e$,1=j\e(B ?\e$,1=k\e(B ?\e$,1=l\e(B ?\e$,1=m\e(B ?\e$,1=n\e(B                  ;; LABIALS
-     ?\e$,1=o\e(B ?\e$,1=p\e(B ?\e$,1=q\e(B ?\e$,1=r\e(B ?\e$,1=s\e(B nil ?\e$,1=u\e(B          ;; SEMIVOWELS
-     ?\e$,1=v\e(B ?\e$,1=w\e(B ?\e$,1=x\e(B ?\e$,1=y\e(B                    ;; SIBILANTS
+     ?క ?ఖ ?గ ?ఘ ?ఙ                  ;; GUTTRULS
+     ?చ ?ఛ ?జ ?ఝ ?ఞ                  ;; PALATALS
+     ?ట ?ఠ ?డ ?ఢ ?ణ                  ;; CEREBRALS
+     ?త ?థ ?ద ?ధ ?న nil              ;; DENTALS
+     ?ప ?ఫ ?బ ?భ ?మ                  ;; LABIALS
+     ?య ?ర ?ఱ ?ల ?ళ nil ?వ          ;; SEMIVOWELS
+     ?శ ?ష ?స ?హ                    ;; SIBILANTS
      nil nil nil nil nil nil nil nil      ;; NUKTAS
-     "\e$,1=\>-=^\e(B" "\e$,1=U>-=w\e(B")
+     "జ్ఞ" "క్ష")
     (;; Misc Symbols
-     ?\e$,1=A\e(B ?\e$,1=B\e(B ?\e$,1=C\e(B nil ?\e$,1>-\e(B nil nil)
+     ?ఁ ?ం ?ః nil ?్ nil nil)
     (;; Digits
-     ?\e$,1>F\e(B ?\e$,1>G\e(B ?\e$,1>H\e(B ?\e$,1>I\e(B ?\e$,1>J\e(B ?\e$,1>K\e(B ?\e$,1>L\e(B ?\e$,1>M\e(B ?\e$,1>N\e(B ?\e$,1>O\e(B)
+     ?౦ ?౧ ?౨ ?౩ ?౪ ?౫ ?౬ ?౭ ?౮ ?౯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1>-=p\e(B" "\e$,1=p>-\e(B" "\e$,1=d>-=p\e(B" "\e$,1=v>-=p\e(B" nil)))
+     "్ర" "ర్" "త్ర" "శ్ర" nil)))
 
 (defvar indian-knd-base-table
   '(
     (;; VOWELS
-     (?\e$,1>e\e(B nil) (?\e$,1>f\e(B ?\e$,1?>\e(B) (?\e$,1>g\e(B ?\e$,1??\e(B) (?\e$,1>h\e(B ?\e$,1?@\e(B) (?\e$,1>i\e(B ?\e$,1?A\e(B) (?\e$,1>j\e(B ?\e$,1?B\e(B)
-     (?\e$,1>k\e(B ?\e$,1?C\e(B) (?\e$,1>l\e(B nil) nil (?\e$,1>o\e(B ?\e$,1?G\e(B) (?\e$,1>n\e(B ?\e$,1?F\e(B) (?\e$,1>p\e(B ?\e$,1?H\e(B)
-     nil (?\e$,1>s\e(B ?\e$,1?K\e(B) (?\e$,1>r\e(B ?\e$,1?J\e(B) (?\e$,1>t\e(B ?\e$,1?L\e(B) (?\e$,1?`\e(B ?\e$,1?D\e(B) (?\e$,1?a\e(B nil))
+     (?ಅ nil) (?ಆ ?ಾ) (?ಇ ?ಿ) (?ಈ ?ೀ) (?ಉ ?ು) (?ಊ ?ೂ)
+     (?ಋ ?ೃ) (?ಌ nil) nil (?ಏ ?ೇ) (?ಎ ?ೆ) (?ಐ ?ೈ)
+     nil (?ಓ ?ೋ) (?ಒ ?ೊ) (?ಔ ?ೌ) (?ೠ ?ೄ) (?ೡ nil))
     (;; CONSONANTS
-     ?\e$,1>u\e(B ?\e$,1>v\e(B ?\e$,1>w\e(B ?\e$,1>x\e(B ?\e$,1>y\e(B                  ;; GUTTRULS
-     ?\e$,1>z\e(B ?\e$,1>{\e(B ?\e$,1>|\e(B ?\e$,1>}\e(B ?\e$,1>~\e(B                  ;; PALATALS
-     ?\e$,1>\7f\e(B ?\e$,1? \e(B ?\e$,1?!\e(B ?\e$,1?"\e(B ?\e$,1?#\e(B                  ;; CEREBRALS
-     ?\e$,1?$\e(B ?\e$,1?%\e(B ?\e$,1?&\e(B ?\e$,1?'\e(B ?\e$,1?(\e(B nil              ;; DENTALS
-     ?\e$,1?*\e(B ?\e$,1?+\e(B ?\e$,1?,\e(B ?\e$,1?-\e(B ?\e$,1?.\e(B                  ;; LABIALS
-     ?\e$,1?/\e(B ?\e$,1?0\e(B ?\e$,1?1\e(B ?\e$,1?2\e(B ?\e$,1?3\e(B nil ?\e$,1?5\e(B          ;; SEMIVOWELS
-     ?\e$,1?6\e(B ?\e$,1?7\e(B ?\e$,1?8\e(B ?\e$,1?9\e(B                    ;; SIBILANTS
-     nil nil nil nil nil nil ?\e$,1?^\e(B nil      ;; NUKTAS
-     "\e$,1>|?M>~\e(B" "\e$,1>u?M?7\e(B")
+     ?ಕ ?ಖ ?ಗ ?ಘ ?ಙ                  ;; GUTTRULS
+     ?ಚ ?ಛ ?ಜ ?ಝ ?ಞ                  ;; PALATALS
+     ?ಟ ?ಠ ?ಡ ?ಢ ?ಣ                  ;; CEREBRALS
+     ?ತ ?ಥ ?ದ ?ಧ ?ನ nil              ;; DENTALS
+     ?ಪ ?ಫ ?ಬ ?ಭ ?ಮ                  ;; LABIALS
+     ?ಯ ?ರ ?ಱ ?ಲ ?ಳ nil ?ವ          ;; SEMIVOWELS
+     ?ಶ ?ಷ ?ಸ ?ಹ                    ;; SIBILANTS
+     nil nil nil nil nil nil ? nil      ;; NUKTAS
+     "ಜ್ಞ" "ಕ್ಷ")
     (;; Misc Symbols
-     nil ?\e$,1>b\e(B ?\e$,1>c\e(B nil ?\e$,1?M\e(B nil nil)
+     nil ?ಂ ?ಃ nil ?್ nil nil)
     (;; Digits
-     ?\e$,1?f\e(B ?\e$,1?g\e(B ?\e$,1?h\e(B ?\e$,1?i\e(B ?\e$,1?j\e(B ?\e$,1?k\e(B ?\e$,1?l\e(B ?\e$,1?m\e(B ?\e$,1?n\e(B ?\e$,1?o\e(B)
+     ?೦ ?೧ ?೨ ?೩ ?೪ ?೫ ?೬ ?೭ ?೮ ?೯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1?M?0\e(B" "\e$,1?0?M\e(B" "\e$,1?$?M?0\e(B" "\e$,1?6?M?0\e(B" nil)))
+     "್ರ" "ರ್" "ತ್ರ" "ಶ್ರ" nil)))
 
 (defvar indian-mlm-base-table
   '(
     (;; VOWELS
-     (?\e$,1@%\e(B nil) (?\e$,1@&\e(B ?\e$,1@^\e(B) (?\e$,1@'\e(B ?\e$,1@_\e(B) (?\e$,1@(\e(B ?\e$,1@`\e(B) (?\e$,1@)\e(B ?\e$,1@a\e(B) (?\e$,1@*\e(B ?\e$,1@b\e(B)
-     (?\e$,1@+\e(B ?\e$,1@c\e(B) (?\e$,1@,\e(B nil) nil (?\e$,1@/\e(B ?\e$,1@g\e(B) (?\e$,1@.\e(B ?\e$,1@f\e(B) (?\e$,1@0\e(B ?\e$,1@h\e(B)
-     nil (?\e$,1@3\e(B ?\e$,1@k\e(B) (?\e$,1@2\e(B ?\e$,1@j\e(B) (?\e$,1@4\e(B ?\e$,1@l\e(B) nil nil)
+     (?അ nil) (?ആ ?ാ) (?ഇ ?ി) (?ഈ ?ീ) (?ഉ ?ു) (?ഊ ?ൂ)
+     (?ഋ ?ൃ) (?ഌ nil) nil (?ഏ ?േ) (?എ ?െ) (?ഐ ?ൈ)
+     nil (?ഓ ?ോ) (?ഒ ?ൊ) (?ഔ ?ൌ) nil nil)
     (;; CONSONANTS
-     ?\e$,1@5\e(B ?\e$,1@6\e(B ?\e$,1@7\e(B ?\e$,1@8\e(B ?\e$,1@9\e(B                  ;; GUTTRULS
-     ?\e$,1@:\e(B ?\e$,1@;\e(B ?\e$,1@<\e(B ?\e$,1@=\e(B ?\e$,1@>\e(B                  ;; PALATALS
-     ?\e$,1@?\e(B ?\e$,1@@\e(B ?\e$,1@A\e(B ?\e$,1@B\e(B ?\e$,1@C\e(B                  ;; CEREBRALS
-     ?\e$,1@D\e(B ?\e$,1@E\e(B ?\e$,1@F\e(B ?\e$,1@G\e(B ?\e$,1@H\e(B nil              ;; DENTALS
-     ?\e$,1@J\e(B ?\e$,1@K\e(B ?\e$,1@L\e(B ?\e$,1@M\e(B ?\e$,1@N\e(B                  ;; LABIALS
-     ?\e$,1@O\e(B ?\e$,1@P\e(B ?\e$,1@Q\e(B ?\e$,1@R\e(B ?\e$,1@S\e(B ?\e$,1@T\e(B ?\e$,1@U\e(B          ;; SEMIVOWELS
-     ?\e$,1@V\e(B ?\e$,1@W\e(B ?\e$,1@X\e(B ?\e$,1@Y\e(B                    ;; SIBILANTS
+     ?ക ?ഖ ?ഗ ?ഘ ?ങ                  ;; GUTTRULS
+     ?ച ?ഛ ?ജ ?ഝ ?ഞ                  ;; PALATALS
+     ?ട ?ഠ ?ഡ ?ഢ ?ണ                  ;; CEREBRALS
+     ?ത ?ഥ ?ദ ?ധ ?ന nil              ;; DENTALS
+     ?പ ?ഫ ?ബ ?ഭ ?മ                  ;; LABIALS
+     ?യ ?ര ?റ ?ല ?ള ?ഴ ?വ          ;; SEMIVOWELS
+     ?ശ ?ഷ ?സ ?ഹ                    ;; SIBILANTS
      nil nil nil nil nil nil nil nil      ;; NUKTAS
-     "\e$,1@<@m@>\e(B" "\e$,1@5@m@W\e(B")
+     "ജ്ഞ" "ക്ഷ")
     (;; Misc Symbols
-     nil ?\e$,1@"\e(B ?\e$,1@#\e(B nil ?\e$,1@m\e(B nil nil)
+     nil ?ം ?ഃ nil ?് nil nil)
     (;; Digits
-     ?\e$,1A&\e(B ?\e$,1A'\e(B ?\e$,1A(\e(B ?\e$,1A)\e(B ?\e$,1A*\e(B ?\e$,1A+\e(B ?\e$,1A,\e(B ?\e$,1A-\e(B ?\e$,1A.\e(B ?\e$,1A/\e(B)
+     ?൦ ?൧ ?൨ ?൩ ?൪ ?൫ ?൬ ?൭ ?൮ ?൯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1@m@P\e(B" "\e$,1@P@m\e(B" "\e$,1@D@m@P\e(B" "\e$,1@V@m@P\e(B" nil)))
+     "്ര" "ര്" "ത്ര" "ശ്ര" nil)))
 
 (defvar indian-tml-base-table
   '(
     (;; VOWELS
-     (?\e$,1<%\e(B nil) (?\e$,1<&\e(B ?\e$,1<^\e(B) (?\e$,1<'\e(B ?\e$,1<_\e(B) (?\e$,1<(\e(B ?\e$,1<`\e(B) (?\e$,1<)\e(B ?\e$,1<a\e(B) (?\e$,1<*\e(B ?\e$,1<b\e(B)
-     nil nil nil (?\e$,1</\e(B ?\e$,1<g\e(B) (?\e$,1<.\e(B ?\e$,1<f\e(B) (?\e$,1<0\e(B ?\e$,1<h\e(B)
-     nil (?\e$,1<3\e(B ?\e$,1<k\e(B) (?\e$,1<2\e(B ?\e$,1<j\e(B) (?\e$,1<4\e(B ?\e$,1<l\e(B) nil nil)
+     (?அ nil) (?ஆ ?ா) (?இ ?ி) (?ஈ ?ீ) (?உ ?ு) (?ஊ ?ூ)
+     nil nil nil (?ஏ ?ே) (?எ ?ெ) (?ஐ ?ை)
+     nil (?ஓ ?ோ) (?ஒ ?ொ) (?ஔ ?ௌ) nil nil)
     (;; CONSONANTS
-     ?\e$,1<5\e(B nil nil nil ?\e$,1<9\e(B                  ;; GUTTRULS
-     ?\e$,1<:\e(B nil ?\e$,1<<\e(B nil ?\e$,1<>\e(B                  ;; PALATALS
-     ?\e$,1<?\e(B nil nil nil ?\e$,1<C\e(B                  ;; CEREBRALS
-     ?\e$,1<D\e(B nil nil nil ?\e$,1<H\e(B ?\e$,1<I\e(B              ;; DENTALS
-     ?\e$,1<J\e(B nil nil nil ?\e$,1<N\e(B                  ;; LABIALS
-     ?\e$,1<O\e(B ?\e$,1<P\e(B ?\e$,1<Q\e(B ?\e$,1<R\e(B ?\e$,1<S\e(B ?\e$,1<T\e(B ?\e$,1<U\e(B          ;; SEMIVOWELS
-     nil ?\e$,1<W\e(B ?\e$,1<X\e(B ?\e$,1<Y\e(B                    ;; SIBILANTS
+     ?க nil nil nil ?ங                  ;; GUTTRULS
+     ?ச nil ?ஜ nil ?ஞ                  ;; PALATALS
+     ?ட nil nil nil ?ண                  ;; CEREBRALS
+     ?த nil nil nil ?ந ?ன              ;; DENTALS
+     ?ப nil nil nil ?ம                  ;; LABIALS
+     ?ய ?ர ?ற ?ல ?ள ?ழ ?வ          ;; SEMIVOWELS
+     nil ?ஷ ?ஸ ?ஹ                    ;; SIBILANTS
      nil nil nil nil nil nil nil nil      ;; NUKTAS
-     "\e$,1<<<m<>\e(B" "\e$,1<5<m<W\e(B")
+     "ஜ்ஞ" "க்ஷ")
     (;; Misc Symbols
-     nil ?\e$,1<"\e(B ?\e$,1<#\e(B nil ?\e$,1<m\e(B nil nil)
+     nil ?ஂ ?ஃ nil ?் nil nil)
     (;; Digits
-     ?\e$,1=&\e(B ?\e$,1='\e(B ?\e$,1=(\e(B ?\e$,1=)\e(B ?\e$,1=*\e(B ?\e$,1=+\e(B ?\e$,1=,\e(B ?\e$,1=-\e(B ?\e$,1=.\e(B ?\e$,1=/\e(B)
+     ?௦ ?௧ ?௨ ?௩ ?௪ ?௫ ?௬ ?௭ ?௮ ?௯)
     (;; Inscript-extra (4)  (#, $, ^, *, ])
-     "\e$,1<m<P\e(B" "\e$,1<P<m\e(B" "\e$,1<D<m<P\e(B" nil nil)))
+     "்ர" "ர்" "த்ர" nil nil)))
 
 (defvar indian-base-table-to-language-alist
   '((indian-dev-base-table . "Devanagari")
     ;;Unicode vs IS13194  ;; only Devanagari is supported now.
     ((ucs-devanagari-to-is13194-alist
       '((?\x0900 . "[U+0900]")
-       (?\x0901 . "\e(5!\e(B")
-       (?\x0902 . "\e(5"\e(B")
-       (?\x0903 . "\e(5#\e(B")
+       (?\x0901 . "")
+       (?\x0902 . "")
+       (?\x0903 . "")
        (?\x0904 . "[U+0904]")
-       (?\x0905 . "\e(5$\e(B")
-       (?\x0906 . "\e(5%\e(B")
-       (?\x0907 . "\e(5&\e(B")
-       (?\x0908 . "\e(5'\e(B")
-       (?\x0909 . "\e(5(\e(B")
-       (?\x090a . "\e(5)\e(B")
-       (?\x090b . "\e(5*\e(B")
-       (?\x090c . "\e(5&i\e(B")
-       (?\x090d . "\e(5.\e(B")
-       (?\x090e . "\e(5+\e(B")
-       (?\x090f . "\e(5,\e(B")
-       (?\x0910 . "\e(5-\e(B")
-       (?\x0911 . "\e(52\e(B")
-       (?\x0912 . "\e(5/\e(B")
-       (?\x0913 . "\e(50\e(B")
-       (?\x0914 . "\e(51\e(B")
-       (?\x0915 . "\e(53\e(B")
-       (?\x0916 . "\e(54\e(B")
-       (?\x0917 . "\e(55\e(B")
-       (?\x0918 . "\e(56\e(B")
-       (?\x0919 . "\e(57\e(B")
-       (?\x091a . "\e(58\e(B")
-       (?\x091b . "\e(59\e(B")
-       (?\x091c . "\e(5:\e(B")
-       (?\x091d . "\e(5;\e(B")
-       (?\x091e . "\e(5<\e(B")
-       (?\x091f . "\e(5=\e(B")
-       (?\x0920 . "\e(5>\e(B")
-       (?\x0921 . "\e(5?\e(B")
-       (?\x0922 . "\e(5@\e(B")
-       (?\x0923 . "\e(5A\e(B")
-       (?\x0924 . "\e(5B\e(B")
-       (?\x0925 . "\e(5C\e(B")
-       (?\x0926 . "\e(5D\e(B")
-       (?\x0927 . "\e(5E\e(B")
-       (?\x0928 . "\e(5F\e(B")
-       (?\x0929 . "\e(5G\e(B")
-       (?\x092a . "\e(5H\e(B")
-       (?\x092b . "\e(5I\e(B")
-       (?\x092c . "\e(5J\e(B")
-       (?\x092d . "\e(5K\e(B")
-       (?\x092e . "\e(5L\e(B")
-       (?\x092f . "\e(5M\e(B")
-       (?\x0930 . "\e(5O\e(B")
-       (?\x0931 . "\e(5P\e(B")
-       (?\x0932 . "\e(5Q\e(B")
-       (?\x0933 . "\e(5R\e(B")
-       (?\x0934 . "\e(5S\e(B")
-       (?\x0935 . "\e(5T\e(B")
-       (?\x0936 . "\e(5U\e(B")
-       (?\x0937 . "\e(5V\e(B")
-       (?\x0938 . "\e(5W\e(B")
-       (?\x0939 . "\e(5X\e(B")
+       (?\x0905 . "")
+       (?\x0906 . "")
+       (?\x0907 . "")
+       (?\x0908 . "")
+       (?\x0909 . "")
+       (?\x090a . "")
+       (?\x090b . "")
+       (?\x090c . "")
+       (?\x090d . "")
+       (?\x090e . "")
+       (?\x090f . "")
+       (?\x0910 . "")
+       (?\x0911 . "")
+       (?\x0912 . "")
+       (?\x0913 . "")
+       (?\x0914 . "")
+       (?\x0915 . "")
+       (?\x0916 . "")
+       (?\x0917 . "")
+       (?\x0918 . "")
+       (?\x0919 . "")
+       (?\x091a . "")
+       (?\x091b . "")
+       (?\x091c . "")
+       (?\x091d . "")
+       (?\x091e . "")
+       (?\x091f . "")
+       (?\x0920 . "")
+       (?\x0921 . "")
+       (?\x0922 . "")
+       (?\x0923 . "")
+       (?\x0924 . "")
+       (?\x0925 . "")
+       (?\x0926 . "")
+       (?\x0927 . "")
+       (?\x0928 . "")
+       (?\x0929 . "")
+       (?\x092a . "")
+       (?\x092b . "")
+       (?\x092c . "")
+       (?\x092d . "")
+       (?\x092e . "")
+       (?\x092f . "")
+       (?\x0930 . "")
+       (?\x0931 . "")
+       (?\x0932 . "")
+       (?\x0933 . "")
+       (?\x0934 . "")
+       (?\x0935 . "")
+       (?\x0936 . "")
+       (?\x0937 . "")
+       (?\x0938 . "")
+       (?\x0939 . "")
        (?\x093a . "[U+093a]")
        (?\x093b . "[U+093b]")
-       (?\x093c . "\e(5i\e(B")
-       (?\x093d . "\e(5ji\e(B")
-       (?\x093e . "\e(5Z\e(B")
-       (?\x093f . "\e(5[\e(B")
-       (?\x0940 . "\e(5\\e(B")
-       (?\x0941 . "\e(5]\e(B")
-       (?\x0942 . "\e(5^\e(B")
-       (?\x0943 . "\e(5_\e(B")
-       (?\x0944 . "\e(5_i\e(B")
-       (?\x0945 . "\e(5c\e(B")
-       (?\x0946 . "\e(5`\e(B")
-       (?\x0947 . "\e(5a\e(B")
-       (?\x0948 . "\e(5b\e(B")
-       (?\x0949 . "\e(5g\e(B")
-       (?\x094a . "\e(5d\e(B")
-       (?\x094b . "\e(5e\e(B")
-       (?\x094c . "\e(5f\e(B")
-       (?\x094d . "\e(5h\e(B")
+       (?\x093c . "")
+       (?\x093d . "")
+       (?\x093e . "")
+       (?\x093f . "")
+       (?\x0940 . "")
+       (?\x0941 . "")
+       (?\x0942 . "")
+       (?\x0943 . "")
+       (?\x0944 . "")
+       (?\x0945 . "")
+       (?\x0946 . "")
+       (?\x0947 . "")
+       (?\x0948 . "")
+       (?\x0949 . "")
+       (?\x094a . "")
+       (?\x094b . "")
+       (?\x094c . "")
+       (?\x094d . "")
        (?\x094e . "[U+094e]")
        (?\x094f . "[U+094f]")
-       (?\x0950 . "\e(5!i\e(B")
-       (?\x0951 . "\e(5p5\e(B")
-       (?\x0952 . "\e(5p8\e(B")
+       (?\x0950 . "")
+       (?\x0951 . "")
+       (?\x0952 . "")
        (?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
        (?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
        (?\x0955 . "[U+0955]")
        (?\x0956 . "[U+0956]")
        (?\x0957 . "[U+0957]")
-       (?\x0958 . "\e(53i\e(B")
-       (?\x0959 . "\e(54i\e(B")
-       (?\x095a . "\e(55i\e(B")
-       (?\x095b . "\e(5:i\e(B")
-       (?\x095c . "\e(5?i\e(B")
-       (?\x095d . "\e(5@i\e(B")
-       (?\x095e . "\e(5Ii\e(B")
-       (?\x095f . "\e(5N\e(B")
-       (?\x0960 . "\e(5*i\e(B")
-       (?\x0961 . "\e(5'i\e(B")
-       (?\x0962 . "\e(5[i\e(B")
-       (?\x0963 . "\e(5ei\e(B")
-       (?\x0964 . "\e(5j\e(B")
-       (?\x0965 . "\e(5jj\e(B")
-       (?\x0966 . "\e(5q\e(B")
-       (?\x0967 . "\e(5r\e(B")
-       (?\x0968 . "\e(5s\e(B")
-       (?\x0969 . "\e(5t\e(B")
-       (?\x096a . "\e(5u\e(B")
-       (?\x096b . "\e(5v\e(B")
-       (?\x096c . "\e(5w\e(B")
-       (?\x096d . "\e(5x\e(B")
-       (?\x096e . "\e(5y\e(B")
-       (?\x096f . "\e(5z\e(B")
+       (?\x0958 . "")
+       (?\x0959 . "")
+       (?\x095a . "")
+       (?\x095b . "")
+       (?\x095c . "")
+       (?\x095d . "")
+       (?\x095e . "")
+       (?\x095f . "")
+       (?\x0960 . "")
+       (?\x0961 . "")
+       (?\x0962 . "")
+       (?\x0963 . "")
+       (?\x0964 . "")
+       (?\x0965 . "")
+       (?\x0966 . "")
+       (?\x0967 . "")
+       (?\x0968 . "")
+       (?\x0969 . "")
+       (?\x096a . "")
+       (?\x096b . "")
+       (?\x096c . "")
+       (?\x096d . "")
+       (?\x096e . "")
+       (?\x096f . "")
        (?\x0970 . "[U+0970]")
        (?\x0971 . "[U+0971]")
        (?\x0972 . "[U+0972]")
@@ -870,332 +870,332 @@ Returns new end position."
 (defconst indian-2-colum-to-ucs
   '(
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2120   \e$(6!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/\e(B
-  ("\e$(6!!\e(B" . "\e$,15A\e(B")
-  ("\e$(6!"\e(B" . "\e$,15B\e(B")
-  ("\e$(6!#\e(B" . "\e$,15C\e(B")
-  ("\e$(6!$\e(B" . "\e$,15E\e(B")
-  ("\e$(6!%\e(B" . "\e$,15F\e(B")
-  ("\e$(6!&\e(B" . "\e$,15G\e(B")
-  ("\e$(6!'\e(B" . "\e$,15H\e(B")
-  ("\e$(6!(\e(B" . "\e$,15I\e(B")
-  ("\e$(6!)\e(B" . "\e$,15J\e(B")
-  ("\e$(6!*\e(B" . "\e$,15K\e(B")
-  ("\e$(6!*"p\e(B" . "\e$,15p6#\e(B")
-  ("\e$(6!+\e(B" . "\e$,15N\e(B")
-  ("\e$(6!,\e(B" . "\e$,15O\e(B")
-  ("\e$(6!-\e(B" . "\e$,15P\e(B")
-  ("\e$(6!.\e(B" . "\e$,15M\e(B")
-  ("\e$(6!/\e(B" . "\e$,15R\e(B")
+  ;;2120   
+  ("" . "ँ")
+  ("" . "ं")
+  ("" . "ः")
+  ("" . "अ")
+  ("" . "आ")
+  ("" . "इ")
+  ("" . "ई")
+  ("" . "उ")
+  ("" . "ऊ")
+  ("" . "ऋ")
+  ("" . "रृ")
+  ("" . "ऎ")
+  ("" . "ए")
+  ("" . "ऐ")
+  ("" . "ऍ")
+  ("" . "ऒ")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2130 \e$(6!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?\e(B
-  ("\e$(6!0\e(B" . "\e$,15S\e(B")
-  ("\e$(6!1\e(B" . "\e$,15T\e(B")
-  ("\e$(6!2\e(B" . "\e$,15Q\e(B")
-  ("\e$(6!3\e(B" . "\e$,15U\e(B")
-  ("\e$(6!4\e(B" . "\e$,15V\e(B")
-  ("\e$(6!5\e(B" . "\e$,15W\e(B")
-  ("\e$(6!6\e(B" . "\e$,15X\e(B")
-  ("\e$(6!7\e(B" . "\e$,15Y\e(B")
-  ("\e$(6!8\e(B" . "\e$,15Z\e(B")
-  ("\e$(6!9\e(B" . "\e$,15[\e(B")
-  ("\e$(6!:\e(B" . "\e$,15\\e(B")
-  ("\e$(6!;\e(B" . "\e$,15]\e(B")
-  ("\e$(6!<\e(B" . "\e$,15^\e(B")
-  ("\e$(6!=\e(B" . "\e$,15_\e(B")
-  ("\e$(6!>\e(B" . "\e$,15`\e(B")
-  ("\e$(6!?\e(B" . "\e$,15a\e(B")
+  ;;2130 
+  ("" . "ओ")
+  ("" . "औ")
+  ("" . "ऑ")
+  ("" . "क")
+  ("" . "ख")
+  ("" . "ग")
+  ("" . "घ")
+  ("" . "ङ")
+  ("" . "च")
+  ("" . "छ")
+  ("" . "ज")
+  ("" . "झ")
+  ("" . "ञ")
+  ("" . "ट")
+  ("" . "ठ")
+  ("" . "ड")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2140 \e$(6!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O\e(B
-  ("\e$(6!@\e(B" . "\e$,15b\e(B")
-  ("\e$(6!A\e(B" . "\e$,15c\e(B")
-  ("\e$(6!B\e(B" . "\e$,15d\e(B")
-  ("\e$(6!C\e(B" . "\e$,15e\e(B")
-  ("\e$(6!D\e(B" . "\e$,15f\e(B")
-  ("\e$(6!E\e(B" . "\e$,15g\e(B")
-  ("\e$(6!F\e(B" . "\e$,15h\e(B")
-  ("\e$(6!G\e(B" . "\e$,15i\e(B")
-  ("\e$(6!H\e(B" . "\e$,15j\e(B")
-  ("\e$(6!I\e(B" . "\e$,15k\e(B")
-  ("\e$(6!J\e(B" . "\e$,15l\e(B")
-  ("\e$(6!K\e(B" . "\e$,15m\e(B")
-  ("\e$(6!L\e(B" . "\e$,15n\e(B")
-  ("\e$(6!M\e(B" . "\e$,15o\e(B")
-  ("\e$(6!N\e(B" . "\e$,16?\e(B")
-  ("\e$(6!O\e(B" . "\e$,15p\e(B")
+  ;;2140 
+  ("" . "ढ")
+  ("" . "ण")
+  ("" . "त")
+  ("" . "थ")
+  ("" . "द")
+  ("" . "ध")
+  ("" . "न")
+  ("" . "ऩ")
+  ("" . "प")
+  ("" . "फ")
+  ("" . "ब")
+  ("" . "भ")
+  ("" . "म")
+  ("" . "य")
+  ("" . "य़")
+  ("" . "र")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2150 \e$(6!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_\e(B
-  ("\e$(6!P\e(B" . "\e$,15q\e(B")
-  ("\e$(6!Q\e(B" . "\e$,15r\e(B")
-  ("\e$(6!R\e(B" . "\e$,15s\e(B")
-  ("\e$(6!S\e(B" . "\e$,15t\e(B")
-  ("\e$(6!T\e(B" . "\e$,15u\e(B")
-  ("\e$(6!U\e(B" . "\e$,15v\e(B")
-  ("\e$(6!V\e(B" . "\e$,15w\e(B")
-  ("\e$(6!W\e(B" . "\e$,15x\e(B")
-  ("\e$(6!X\e(B" . "\e$,15y\e(B")
-  ("\e$(6!Z\e(B" . "\e$,15~\e(B")
-  ("\e$(6![\e(B" . "\e$,15\7f\e(B")
-  ("\e$(6!\\e(B" . "\e$,16 \e(B")
-  ("\e$(6!]\e(B" . "\e$,16!\e(B")
-  ("\e$(6!^\e(B" . "\e$,16"\e(B")
-  ("\e$(6!_\e(B" . "\e$,16#\e(B")
+  ;;2150 
+  ("" . "ऱ")
+  ("" . "ल")
+  ("" . "ळ")
+  ("" . "ऴ")
+  ("" . "व")
+  ("" . "श")
+  ("" . "ष")
+  ("" . "स")
+  ("" . "ह")
+  ("" . "ा")
+  ("" . "ि")
+  ("" . "ी")
+  ("" . "ु")
+  ("" . "ू")
+  ("" . "ृ")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2160 \e$(6!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o\e(B
-  ("\e$(6!`\e(B" . "\e$,16&\e(B")
-  ("\e$(6!a\e(B" . "\e$,16'\e(B")
-  ("\e$(6!b\e(B" . "\e$,16(\e(B")
-  ("\e$(6!c\e(B" . "\e$,16%\e(B")
-  ("\e$(6!d\e(B" . "\e$,16*\e(B")
-  ("\e$(6!e\e(B" . "\e$,16+\e(B")
-  ("\e$(6!f\e(B" . "\e$,16,\e(B")
-  ("\e$(6!g\e(B" . "\e$,16)\e(B")
-  ("\e$(6!h\e(B" . "\e$,16-\e(B")
-  ("\e$(6!i\e(B" . "\e$,15|\e(B")
-  ("\e$(6!j\e(B" . "\e$,16D\e(B")
-  ("\e$(6!j!j\e(B" . "\e$,16E\e(B")
+  ;;2160 
+  ("" . "ॆ")
+  ("" . "े")
+  ("" . "ै")
+  ("" . "ॅ")
+  ("" . "ॊ")
+  ("" . "ो")
+  ("" . "ौ")
+  ("" . "ॉ")
+  ("" . "्")
+  ("" . "़")
+  ("" . "।")
+  ("" . "॥")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2170 \e$(6!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~\e(B
-  ("\e$(6!q\e(B" . "\e$,16F\e(B")
-  ("\e$(6!r\e(B" . "\e$,16G\e(B")
-  ("\e$(6!s\e(B" . "\e$,16H\e(B")
-  ("\e$(6!t\e(B" . "\e$,16I\e(B")
-  ("\e$(6!u\e(B" . "\e$,16J\e(B")
-  ("\e$(6!v\e(B" . "\e$,16K\e(B")
-  ("\e$(6!w\e(B" . "\e$,16L\e(B")
-  ("\e$(6!x\e(B" . "\e$,16M\e(B")
-  ("\e$(6!y\e(B" . "\e$,16N\e(B")
-  ("\e$(6!z\e(B" . "\e$,16O\e(B")
+  ;;2170 
+  ("" . "०")
+  ("" . "१")
+  ("" . "२")
+  ("" . "३")
+  ("" . "४")
+  ("" . "५")
+  ("" . "६")
+  ("" . "७")
+  ("" . "८")
+  ("" . "९")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2220   \e$(6"!"""#"$"%"&"'"(")"*"+","-"."/\e(B
-  ("\e$(6"!\e(B" . "\e$,16;6-5p\e(B")
-  ("\e$(6""\e(B" . "\e$,16>6-5p\e(B")
-  ("\e$(6"#\e(B" . "\e$,15U6-5p\e(B")
-  ("\e$(6"$\e(B" . "\e$,15W6-5p\e(B")
-  ("\e$(6"%\e(B" . "\e$,15d6-5p\e(B")
-  ("\e$(6"&\e(B" . "\e$,15j6-5p\e(B")
-  ("\e$(6"'\e(B" . "\e$,15k6-5p\e(B")
-  ("\e$(6")\e(B" . "\e$,15v6-5p\e(B")
-  ("\e$(6",\e(B" . "\e$,15p6!\e(B")
-  ("\e$(6"-\e(B" . "\e$,15p6"\e(B")
-  ("\e$(6".\e(B" . "\e$,15q6!\e(B")
-  ("\e$(6"/\e(B" . "\e$,15q6"\e(B")
+  ;;2220   
+  ("" . "ज़्र")
+  ("" . "फ़्र")
+  ("" . "क्र")
+  ("" . "ग्र")
+  ("" . "त्र")
+  ("" . "प्र")
+  ("" . "फ्र")
+  ("" . "श्र")
+  ("" . "रु")
+  ("" . "रू")
+  ("" . "ऱु")
+  ("" . "ऱू")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2230 \e$(6"0"1"2"3"4"5"6"7"8"9":";"<"=">"?\e(B
-  ("\e$(6"3\e(B" . "\e$,15U6-\e(B")
-  ("\e$(6"4\e(B" . "\e$,15V6-\e(B")
-  ("\e$(6"5\e(B" . "\e$,15W6-\e(B")
-  ("\e$(6"6\e(B" . "\e$,15X6-\e(B")
-  ("\e$(6"8\e(B" . "\e$,15Z6-\e(B")
-  ("\e$(6"8"q\e(B" . "\e$,15Z6-5p6-\e(B")
-  ("\e$(6":\e(B" . "\e$,15\6-\e(B")
-  ("\e$(6";\e(B" . "\e$,15]6-\e(B")
-  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
-  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
+  ;;2230 
+  ("" . "क्")
+  ("" . "ख्")
+  ("" . "ग्")
+  ("" . "घ्")
+  ("" . "च्")
+  ("" . "च्र्")
+  ("" . "ज्")
+  ("" . "झ्")
+  ("" . "ञ्")
+  ("" . "ञ्")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2240 \e$(6"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O\e(B
-  ("\e$(6"A\e(B" . "\e$,15c6-\e(B")
-  ("\e$(6"B\e(B" . "\e$,15d6-\e(B")
-  ("\e$(6"C\e(B" . "\e$,15e6-\e(B")
-  ("\e$(6"E\e(B" . "\e$,15g6-\e(B")
-  ("\e$(6"F\e(B" . "\e$,15h6-\e(B")
-  ("\e$(6"G\e(B" . "\e$,15i6-\e(B")
-  ("\e$(6"H\e(B" . "\e$,15j6-\e(B")
-  ("\e$(6"I\e(B" . "\e$,15k6-\e(B")
-  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(6"K\e(B" . "\e$,15m6-\e(B")
-  ("\e$(6"L\e(B" . "\e$,15n6-\e(B")
-  ("\e$(6"M\e(B" . "\e$,15o6-\e(B")
-  ("\e$(6"N\e(B" . "\e$,16?6-\e(B")
+  ;;2240 
+  ("" . "ण्")
+  ("" . "त्")
+  ("" . "थ्")
+  ("" . "ध्")
+  ("" . "न्")
+  ("" . "ऩ्")
+  ("" . "प्")
+  ("" . "फ्")
+  ("" . "ब्")
+  ("" . "ब्")
+  ("" . "भ्")
+  ("" . "म्")
+  ("" . "य्")
+  ("" . "य़्")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2250 \e$(6"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_\e(B
-  ("\e$(6"Q\e(B" . "\e$,15r6-\e(B")
-  ("\e$(6"R\e(B" . "\e$,15s6-\e(B")
-  ("\e$(6"S\e(B" . "\e$,15t6-\e(B")
-  ("\e$(6"T\e(B" . "\e$,15u6-\e(B")
-  ("\e$(6"U\e(B" . "\e$,15v6-\e(B")
-  ("\e$(6"V\e(B" . "\e$,15w6-\e(B")
-  ("\e$(6"W\e(B" . "\e$,15x6-\e(B")
-  ("\e$(6"]\e(B" . "\e$,16-5o\e(B")
+  ;;2250 
+  ("" . "ल्")
+  ("" . "ळ्")
+  ("" . "ऴ्")
+  ("" . "व्")
+  ("" . "श्")
+  ("" . "ष्")
+  ("" . "स्")
+  ("" . "्य")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2260 \e$(6"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o\e(B
-  ("\e$(6"`\e(B" . "\e$,15W6-5p6-\e(B")
-  ("\e$(6"a\e(B" . "\e$,15X6-5h6-\e(B")
-  ("\e$(6"c\e(B" . "\e$,15d6-5d6-\e(B")
-  ("\e$(6"d\e(B" . "\e$,15d6-5p6-\e(B")
-  ("\e$(6"e\e(B" . "\e$,15g6-5h6-\e(B")
-  ("\e$(6"f\e(B" . "\e$,15g6-5p6-\e(B")
-  ("\e$(6"g\e(B" . "\e$,15j6-5d6-\e(B")
-  ("\e$(6"h\e(B" . "\e$,15v6-5Z6-\e(B")
-  ("\e$(6"i\e(B" . "\e$,15v6-5p6-\e(B")
-  ("\e$(6"j\e(B" . "\e$,15v6-5u6-\e(B")
-  ("\e$(6"k\e(B" . "\e$,15h6-5h6-\e(B")
-  ("\e$(6"l\e(B" . "\e$,15U6-5w6-\e(B")
-  ("\e$(6"m\e(B" . "\e$,15\6-5^6-\e(B")
+  ;;2260 
+  ("" . "ग्र्")
+  ("" . "घ्न्")
+  ("" . "त्त्")
+  ("" . "त्र्")
+  ("" . "ध्न्")
+  ("" . "ध्र्")
+  ("" . "प्त्")
+  ("" . "श्च्")
+  ("" . "श्र्")
+  ("" . "श्व्")
+  ("" . "न्न्")
+  ("" . "क्ष्")
+  ("" . "ज्ञ्")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2270 \e$(6"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~\e(B
-  ("\e$(6"p\e(B" . "\e$,15p6-\e(B")
-  ("\e$(6"q\e(B" . "\e$,16-5p\e(B")
-  ("\e$(6"r\e(B" . "\e$,16-5p\e(B")
-  ("\e$(6"s\e(B" . "\e$,1686-\e(B")
-  ("\e$(6"t\e(B" . "\e$,1696-\e(B")
-  ("\e$(6"u\e(B" . "\e$,16:6-\e(B")
-  ("\e$(6"y\e(B" . "\e$,16>6-\e(B")
-  ("\e$(6"z\e(B" . "\e$,16;6-\e(B")
+  ;;2270 
+  ("" . "र्")
+  ("" . "्र")
+  ("" . "्र")
+  ("" . "क़्")
+  ("" . "ख़्")
+  ("" . "ग़्")
+  ("" . "फ़्")
+  ("" . "ज़्")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2320   \e$(6#!#"###$#%#&#'#(#)#*#+#,#-#.#/\e(B
-  ("\e$(6#!\e(B" . "\e$,160\e(B")
-  ("\e$(6#&\e(B" . "\e$,15L\e(B")
-  ("\e$(6#&"p\e(B" . "\e$,15p6$\e(B")
-  ("\e$(6#'\e(B" . "\e$,16A\e(B")
-  ("\e$(6#'"p\e(B" . "\e$,15p6C\e(B")
-  ("\e$(6#*\e(B" . "\e$,16@\e(B")
-  ("\e$(6#*"p\e(B" . "\e$,15p6B\e(B")
+  ;;2320   
+  ("" . "ॐ")
+  ("" . "ऌ")
+  ("" . "रॄ")
+  ("" . "ॡ")
+  ("" . "रॣ")
+  ("" . "ॠ")
+  ("" . "रॢ")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2330 \e$(6#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?\e(B
-  ("\e$(6#3\e(B" . "\e$,168\e(B")
-  ("\e$(6#4\e(B" . "\e$,169\e(B")
-  ("\e$(6#5\e(B" . "\e$,16:\e(B")
-  ("\e$(6#:\e(B" . "\e$,16;\e(B")
-  ("\e$(6#?\e(B" . "\e$,16<\e(B")
+  ;;2330 
+  ("" . "क़")
+  ("" . "ख़")
+  ("" . "ग़")
+  ("" . "ज़")
+  ("" . "ड़")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2340 \e$(6#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O\e(B
-  ("\e$(6#@\e(B" . "\e$,16=\e(B")
-  ("\e$(6#I\e(B" . "\e$,16>\e(B")
-  ("\e$(6#J\e(B" . "\e$,15}\e(B")
-  ("\e$(6#K\e(B" . "\e$,16$\e(B")
-  ("\e$(6#L\e(B" . "\e$,16B\e(B")
-  ("\e$(6#M\e(B" . "\e$,16C\e(B")
+  ;;2340 
+  ("" . "ढ़")
+  ("" . "फ़")
+  ("" . "ऽ")
+  ("" . "ॄ")
+  ("" . "ॢ")
+  ("" . "ॣ")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2350 \e$(6#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_\e(B
-  ("\e$(6#P\e(B" . "\e$,15n6-5h\e(B")
-  ("\e$(6#Q\e(B" . "\e$,15n6-5r\e(B")
-  ("\e$(6#R\e(B" . "\e$,15y6#\e(B")
+  ;;2350 
+  ("" . "म्न")
+  ("" . "म्ल")
+  ("" . "हृ")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2360 \e$(6#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o\e(B
-  ("\e$(6#`\e(B" . "\e$,15r6-5r\e(B")
-  ("\e$(6#a\e(B" . "\e$,15u6-5h\e(B")
-  ("\e$(6#b\e(B" . "\e$,15u6-5u\e(B")
-  ("\e$(6#c\e(B" . "\e$,15v6-5Z\e(B")
-  ("\e$(6#d\e(B" . "\e$,15v6-5h\e(B")
-  ("\e$(6#e\e(B" . "\e$,15v6-5l\e(B")
-  ("\e$(6#f\e(B" . "\e$,15v6-5r\e(B")
-  ("\e$(6#g\e(B" . "\e$,15v6-5u\e(B")
-  ("\e$(6#h\e(B" . "\e$,15w6-5_6-5p6-5o\e(B")
-  ("\e$(6#i\e(B" . "\e$,15w6-5_6-5o\e(B")
-  ("\e$(6#j\e(B" . "\e$,15w6-5_6-5u\e(B")
-  ("\e$(6#k\e(B" . "\e$,15w6-5_\e(B")
-  ("\e$(6#l\e(B" . "\e$,15w6-5`\e(B")
-  ("\e$(6#m\e(B" . "\e$,15x6-5h\e(B")
-  ("\e$(6#n\e(B" . "\e$,15x6-5p\e(B")
+  ;;2360 
+  ("" . "ल्ल")
+  ("" . "व्न")
+  ("" . "व्व")
+  ("" . "श्च")
+  ("" . "श्न")
+  ("" . "श्ब")
+  ("" . "श्ल")
+  ("" . "श्व")
+  ("" . "ष्ट्र्य")
+  ("" . "ष्ट्य")
+  ("" . "ष्ट्व")
+  ("" . "ष्ट")
+  ("" . "ष्ठ")
+  ("" . "स्न")
+  ("" . "स्र")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2370 \e$(6#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~\e(B
-  ("\e$(6#p\e(B" . "\e$,15y6-5c\e(B")
-  ("\e$(6#q\e(B" . "\e$,15y6-5h\e(B")
-  ("\e$(6#r\e(B" . "\e$,15y6-5n\e(B")
-  ("\e$(6#s\e(B" . "\e$,15y6-5o\e(B")
-  ("\e$(6#t\e(B" . "\e$,15y6-5p\e(B")
-  ("\e$(6#u\e(B" . "\e$,15y6-5r\e(B")
-  ("\e$(6#v\e(B" . "\e$,15y6-5u\e(B")
+  ;;2370 
+  ("" . "ह्ण")
+  ("" . "ह्न")
+  ("" . "ह्म")
+  ("" . "ह्य")
+  ("" . "ह्र")
+  ("" . "ह्ल")
+  ("" . "ह्व")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2420   \e$(6$!$"$#$$$%$&$'$($)$*$+$,$-$.$/\e(B
-  ("\e$(6$!\e(B" . "\e$,15U6-5d6-5p6-5o\e(B")
-  ("\e$(6$"\e(B" . "\e$,15U6-5d6-5u\e(B")
-  ("\e$(6$#\e(B" . "\e$,15U6-5d6-5o\e(B")
-  ("\e$(6$$\e(B" . "\e$,15U6-5h6-5o\e(B")
-  ("\e$(6$%\e(B" . "\e$,15U6-5p6-5o\e(B")
-  ("\e$(6$&\e(B" . "\e$,15U6-5u6-5o\e(B")
-  ("\e$(6$'\e(B" . "\e$,15U6-5U\e(B")
-  ("\e$(6$(\e(B" . "\e$,15U6-5d\e(B")
-  ("\e$(6$)\e(B" . "\e$,15U6-5h\e(B")
-  ("\e$(6$*\e(B" . "\e$,15U6-5n\e(B")
-  ("\e$(6$+\e(B" . "\e$,15U6-5o\e(B")
-  ("\e$(6$,\e(B" . "\e$,15U6-5r\e(B")
-  ("\e$(6$-\e(B" . "\e$,15U6-5u\e(B")
-  ("\e$(6$.\e(B" . "\e$,15U6-5w\e(B")
-  ("\e$(6$/\e(B" . "\e$,15X6-5h\e(B")
+  ;;2420   
+  ("" . "क्त्र्य")
+  ("" . "क्त्व")
+  ("" . "क्त्य")
+  ("" . "क्न्य")
+  ("" . "क्र्य")
+  ("" . "क्व्य")
+  ("" . "क्क")
+  ("" . "क्त")
+  ("" . "क्न")
+  ("" . "क्म")
+  ("" . "क्य")
+  ("" . "क्ल")
+  ("" . "क्व")
+  ("" . "क्ष")
+  ("" . "घ्न")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2430 \e$(6$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?\e(B
-  ("\e$(6$0\e(B" . "\e$,15Y6-5U6-5d6-5o\e(B")
-  ("\e$(6$1\e(B" . "\e$,15Y6-5U6-5w6-5u\e(B")
-  ("\e$(6$2\e(B" . "\e$,15Y6-5U6-5d\e(B")
-  ("\e$(6$3\e(B" . "\e$,15Y6-5U6-5w\e(B")
-  ("\e$(6$4\e(B" . "\e$,15Y6-5X6-5p\e(B")
-  ("\e$(6$5\e(B" . "\e$,15Y6-5U6-5o\e(B")
-  ("\e$(6$6\e(B" . "\e$,15Y6-5V6-5o\e(B")
-  ("\e$(6$7\e(B" . "\e$,15Y6-5W6-5o\e(B")
-  ("\e$(6$8\e(B" . "\e$,15Y6-5X6-5o\e(B")
-  ("\e$(6$9\e(B" . "\e$,15Y6-5U\e(B")
-  ("\e$(6$:\e(B" . "\e$,15Y6-5V\e(B")
-  ("\e$(6$;\e(B" . "\e$,15Y6-5W\e(B")
-  ("\e$(6$<\e(B" . "\e$,15Y6-5X\e(B")
-  ("\e$(6$=\e(B" . "\e$,15Y6-5Y\e(B")
-  ("\e$(6$>\e(B" . "\e$,15Y6-5h\e(B")
-  ("\e$(6$?\e(B" . "\e$,15Y6-5n\e(B")
+  ;;2430 
+  ("" . "ङ्क्त्य")
+  ("" . "ङ्क्ष्व")
+  ("" . "ङ्क्त")
+  ("" . "ङ्क्ष")
+  ("" . "ङ्घ्र")
+  ("" . "ङ्क्य")
+  ("" . "ङ्ख्य")
+  ("" . "ङ्ग्य")
+  ("" . "ङ्घ्य")
+  ("" . "ङ्क")
+  ("" . "ङ्ख")
+  ("" . "ङ्ग")
+  ("" . "ङ्घ")
+  ("" . "ङ्ङ")
+  ("" . "ङ्न")
+  ("" . "ङ्म")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2440 \e$(6$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O\e(B
-  ("\e$(6$@\e(B" . "\e$,15Y6-5o\e(B")
-  ("\e$(6$A\e(B" . "\e$,15Z6-5Z\e(B")
-  ("\e$(6$B\e(B" . "\e$,15Z6-5^\e(B")
-  ("\e$(6$C\e(B" . "\e$,15[6-5o\e(B")
-  ("\e$(6$D\e(B" . "\e$,15\6-5p\e(B")
-  ("\e$(6$E\e(B" . "\e$,15\6-5^\e(B")
-  ("\e$(6$F\e(B" . "\e$,15^6-5Z\e(B")
-  ("\e$(6$G\e(B" . "\e$,15^6-5\\e(B")
-  ("\e$(6$H\e(B" . "\e$,15_6-5U\e(B")
-  ("\e$(6$I\e(B" . "\e$,15_6-5_\e(B")
-  ("\e$(6$J\e(B" . "\e$,15_6-5`\e(B")
-  ("\e$(6$K\e(B" . "\e$,15_6-5o\e(B")
-  ("\e$(6$L\e(B" . "\e$,15`6-5o\e(B")
-  ("\e$(6$M\e(B" . "\e$,15a6-5W6-5o\e(B")
-  ("\e$(6$N\e(B" . "\e$,15a6-5X6-5p\e(B")
-  ("\e$(6$O\e(B" . "\e$,15a6-5p6-5o\e(B")
+  ;;2440 
+  ("" . "ङ्य")
+  ("" . "च्च")
+  ("" . "च्ञ")
+  ("" . "छ्य")
+  ("" . "ज्र")
+  ("" . "ज्ञ")
+  ("" . "ञ्च")
+  ("" . "ञ्ज")
+  ("" . "ट्क")
+  ("" . "ट्ट")
+  ("" . "ट्ठ")
+  ("" . "ट्य")
+  ("" . "ठ्य")
+  ("" . "ड्ग्य")
+  ("" . "ड्घ्र")
+  ("" . "ड्र्य")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2450 \e$(6$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_\e(B
-  ("\e$(6$P\e(B" . "\e$,15a6-5W\e(B")
-  ("\e$(6$Q\e(B" . "\e$,15a6-5X\e(B")
-  ("\e$(6$R\e(B" . "\e$,15a6-5a\e(B")
-  ("\e$(6$S\e(B" . "\e$,15a6-5n\e(B")
-  ("\e$(6$T\e(B" . "\e$,15a6-5o\e(B")
+  ;;2450 
+  ("" . "ड्ग")
+  ("" . "ड्घ")
+  ("" . "ड्ड")
+  ("" . "ड्म")
+  ("" . "ड्य")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2460 \e$(6$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o\e(B
-  ("\e$(6$`\e(B" . "\e$,15b6-5o\e(B")
-  ("\e$(6$a\e(B" . "\e$,15d6-5d\e(B")
-  ("\e$(6$b\e(B" . "\e$,15d6-5h\e(B")
-  ("\e$(6$c\e(B" . "\e$,15f6-5f6-5o\e(B")
-  ("\e$(6$d\e(B" . "\e$,15f6-5g6-5o\e(B")
-  ("\e$(6$e\e(B" . "\e$,15f6-5m6-5o\e(B")
-  ("\e$(6$f\e(B" . "\e$,15f6-5p6-5o\e(B")
-  ("\e$(6$g\e(B" . "\e$,15f6-5u6-5o\e(B")
-  ("\e$(6$h\e(B" . "\e$,15f6-5W6-5p\e(B")
-  ("\e$(6$i\e(B" . "\e$,15f6-5X6-5p\e(B")
-  ("\e$(6$j\e(B" . "\e$,15f6-5f6-5u\e(B")
-  ("\e$(6$k\e(B" . "\e$,15f6-5g6-5u\e(B")
-  ("\e$(6$l\e(B" . "\e$,15f6-5W\e(B")
-  ("\e$(6$m\e(B" . "\e$,15f6-5X\e(B")
-  ("\e$(6$n\e(B" . "\e$,15f6-5f\e(B")
-  ("\e$(6$o\e(B" . "\e$,15f6-5g\e(B")
+  ;;2460 
+  ("" . "ढ्य")
+  ("" . "त्त")
+  ("" . "त्न")
+  ("" . "द्द्य")
+  ("" . "द्ध्य")
+  ("" . "द्भ्य")
+  ("" . "द्र्य")
+  ("" . "द्व्य")
+  ("" . "द्ग्र")
+  ("" . "द्घ्र")
+  ("" . "द्द्व")
+  ("" . "द्ध्व")
+  ("" . "द्ग")
+  ("" . "द्घ")
+  ("" . "द्द")
+  ("" . "द्ध")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2470 \e$(6$p$q$r$s$t$u$v$w$x$y$z${$|$}$~\e(B
-  ("\e$(6$p\e(B" . "\e$,15f6-5h\e(B")
-  ("\e$(6$q\e(B" . "\e$,15f6-5l\e(B")
-  ("\e$(6$r\e(B" . "\e$,15f6-5m\e(B")
-  ("\e$(6$s\e(B" . "\e$,15f6-5n\e(B")
-  ("\e$(6$t\e(B" . "\e$,15f6-5o\e(B")
-  ("\e$(6$u\e(B" . "\e$,15f6-5u\e(B")
-  ("\e$(6$v\e(B" . "\e$,15g6-5h\e(B")
-  ("\e$(6$w\e(B" . "\e$,15h6-5h\e(B")
-  ("\e$(6$x\e(B" . "\e$,15j6-5d\e(B")
-  ("\e$(6$y\e(B" . "\e$,15j6-5h\e(B")
-  ("\e$(6$z\e(B" . "\e$,15j6-5r\e(B")
-  ("\e$(6${\e(B" . "\e$,15l6-5h\e(B")
-  ("\e$(6$|\e(B" . "\e$,15l6-5l\e(B")
-  ("\e$(6$}\e(B" . "\e$,15l6-5u\e(B")
-  ("\e$(6$~\e(B" . "\e$,15m6-5h\e(B")))
+  ;;2470 
+  ("" . "द्न")
+  ("" . "द्ब")
+  ("" . "द्भ")
+  ("" . "द्म")
+  ("" . "द्य")
+  ("" . "द्व")
+  ("" . "ध्न")
+  ("" . "न्न")
+  ("" . "प्त")
+  ("" . "प्न")
+  ("" . "प्ल")
+  ("" . "ब्न")
+  ("" . "ब्ब")
+  ("" . "ब्व")
+  ("" . "भ्न")))
 
 (defconst indian-2-column-to-ucs-regexp
-  "\e$(6!j!j\e(B\\|\e$(6"8"q\e(B\\|[\e$(6#&#'!*#*\e(B]\e$(6"p\e(B\\|[\e$(6!!\e(B-\e$(6$~\e(B]")
+  "\\|\\|[]\\|[-]")
 
 (put 'indian-2-column-to-ucs-chartable 'char-table-extra-slots 1)
 (defconst indian-2-column-to-ucs-chartable
index d1bee8aec01312baa13341e60dd124862ac1e86b..8a30ff492647a2527f26d1bbed938b2120f7e0c5 100644 (file)
@@ -1,4 +1,4 @@
-;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*-
+;;; lao-util.el --- utilities for Lao -*- coding: utf-8; -*-
 
 ;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 (define-category ?v "Lao upper/lower vowel" lao-category-table)
 (define-category ?t "Lao tone" lao-category-table)
 
-(let ((l '((?\e(1!\e(B consonant "LETTER KOR  KAI'" "CHICKEN")
-          (?\e(1"\e(B consonant "LETTER KHOR KHAI'" "EGG")
-          (?\e(1#\e(B invalid nil)
-          (?\e(1$\e(B consonant "LETTER QHOR QHWARGN" "BUFFALO")
-          (?\e(1%\e(B invalid nil)
+(let ((l '((? consonant "LETTER KOR  KAI'" "CHICKEN")
+          (? consonant "LETTER KHOR KHAI'" "EGG")
+          (? invalid nil)
+          (? consonant "LETTER QHOR QHWARGN" "BUFFALO")
+          (? invalid nil)
           (?  invalid nil)
-          (?\e(1'\e(B consonant "LETTER NGOR NGUU" "SNAKE")
-          (?\e(1(\e(B consonant "LETTER JOR JUA" "BUDDHIST NOVICE")
-          (?\e(1)\e(B invalid nil)
-          (?\e(1*\e(B consonant "LETTER XOR X\"ARNG" "ELEPHANT")
-          (?\e(1+\e(B invalid nil)
-          (?\e(1,\e(B invalid nil)
-          (?\e(1-\e(B consonant "LETTER YOR YUNG" "MOSQUITO")
-          (?\e(1.\e(B invalid nil)
-          (?\e(1.\e(B invalid nil)
-          (?\e(1.\e(B invalid nil)
-          (?\e(1.\e(B invalid nil)
-          (?\e(1.\e(B invalid nil)
-          (?\e(1.\e(B invalid nil)
-          (?\e(14\e(B consonant "LETTER DOR DANG" "NOSE")
-          (?\e(15\e(B consonant "LETTER TOR TAR" "EYE")
-          (?\e(16\e(B consonant "LETTER THOR THUNG" "TO ASK,QUESTION")
-          (?\e(17\e(B consonant "LETTER DHOR DHARM" "FLAG")
-          (?\e(18\e(B invalid nil)
-          (?\e(19\e(B consonant "LETTER NOR NOK" "BIRD")
-          (?\e(1:\e(B consonant "LETTER BOR BED" "FISHHOOK")
-          (?\e(1;\e(B consonant "LETTER POR PAR" "FISH")
-          (?\e(1<\e(B consonant "LETTER HPOR HPER\"" "BEE")
-          (?\e(1=\e(B consonant "LETTER FHOR FHAR" "WALL")
-          (?\e(1>\e(B consonant "LETTER PHOR PHUU" "MOUNTAIN")
-          (?\e(1?\e(B consonant "LETTER FOR FAI" "FIRE")
-          (?\e(1@\e(B invalid nil)
-          (?\e(1A\e(B consonant "LETTER MOR MAR\"" "HORSE")
-          (?\e(1B\e(B consonant "LETTER GNOR GNAR" "MEDICINE")
-          (?\e(1C\e(B consonant "LETTER ROR ROD" "CAR")
-          (?\e(1D\e(B invalid nil)
-          (?\e(1E\e(B consonant "LETTER LOR LIING" "MONKEY")
-          (?\e(1F\e(B invalid nil)
-          (?\e(1G\e(B consonant "LETTER WOR WII" "HAND FAN")
-          (?\e(1H\e(B invalid nil)
-          (?\e(1I\e(B invalid nil)
-          (?\e(1J\e(B consonant "LETTER SOR SEA" "TIGER")
-          (?\e(1K\e(B consonant "LETTER HHOR HHAI" "JAR")
-          (?\e(1L\e(B invalid nil)
-          (?\e(1M\e(B consonant "LETTER OR OOW" "TAKE")
-          (?\e(1N\e(B consonant "LETTER HOR HEA" "BOAT")
-          (?\e(1O\e(B special "ELLIPSIS")
-          (?\e(1P\e(B vowel-base "VOWEL SIGN SARA A")
-          (?\e(1Q\e(B vowel-upper "VOWEL SIGN MAI KAN")
-          (?\e(1R\e(B vowel-base "VOWEL SIGN SARA AR")
-          (?\e(1S\e(B vowel-base "VOWEL SIGN SARA AM")
-          (?\e(1T\e(B vowel-upper "VOWEL SIGN SARA I")
-          (?\e(1U\e(B vowel-upper "VOWEL SIGN SARA II")
-          (?\e(1V\e(B vowel-upper "VOWEL SIGN SARA EU")
-          (?\e(1W\e(B vowel-upper "VOWEL SIGN SARA UR")
-          (?\e(1X\e(B vowel-lower "VOWEL SIGN SARA U")
-          (?\e(1Y\e(B vowel-lower "VOWEL SIGN SARA UU")
-          (?\e(1Z\e(B invalid nil)
-          (?\e(1[\e(B vowel-upper "VOWEL SIGN MAI KONG")
-          (?\e(1\\e(B semivowel-lower "SEMIVOWEL SIGN LO")
-          (?\e(1]\e(B vowel-base "SEMIVOWEL SIGN SARA IA")
-          (?\e(1^\e(B invalid nil)
-          (?\e(1_\e(B invalid nil)
-          (?\e(1`\e(B vowel-base "VOWEL SIGN SARA EE")
-          (?\e(1a\e(B vowel-base "VOWEL SIGN SARA AA")
-          (?\e(1b\e(B vowel-base "VOWEL SIGN SARA OO")
-          (?\e(1c\e(B vowel-base "VOWEL SIGN SARA EI MAI MUAN\"")
-          (?\e(1d\e(B vowel-base "VOWEL SIGN SARA AI MAI MAY")
-          (?\e(1e\e(B invalid nil)
-          (?\e(1f\e(B special "KO LA (REPETITION)")
-          (?\e(1g\e(B invalid nil)
-          (?\e(1h\e(B tone "TONE MAI EK")
-          (?\e(1i\e(B tone "TONE MAI THO")
-          (?\e(1j\e(B tone "TONE MAI TI")
-          (?\e(1k\e(B tone "TONE MAI JADTAWAR")
-          (?\e(1l\e(B tone "CANCELLATION MARK")
-          (?\e(1m\e(B vowel-upper "VOWEL SIGN SARA OR")
-          (?\e(1n\e(B invalid nil)
-          (?\e(1o\e(B invalid nil)
-          (?\e(1p\e(B special "DIGIT ZERO")
-          (?\e(1q\e(B special "DIGIT ONE")
-          (?\e(1r\e(B special "DIGIT TWO")
-          (?\e(1s\e(B special "DIGIT THREE")
-          (?\e(1t\e(B special "DIGIT FOUR")
-          (?\e(1u\e(B special "DIGIT FIVE")
-          (?\e(1v\e(B special "DIGIT SIX")
-          (?\e(1w\e(B special "DIGIT SEVEN")
-          (?\e(1x\e(B special "DIGIT EIGHT")
-          (?\e(1y\e(B special "DIGIT NINE")
-          (?\e(1z\e(B invalid nil)
-          (?\e(1{\e(B invalid nil)
-          (?\e(1|\e(B consonant "LETTER NHOR NHUU" "MOUSE")
-          (?\e(1}\e(B consonant "LETTER MHOR MHAR" "DOG")
-          (?\e(1~\e(B invalid nil)))
+          (? consonant "LETTER NGOR NGUU" "SNAKE")
+          (? consonant "LETTER JOR JUA" "BUDDHIST NOVICE")
+          (? invalid nil)
+          (? consonant "LETTER XOR X\"ARNG" "ELEPHANT")
+          (? invalid nil)
+          (? invalid nil)
+          (? consonant "LETTER YOR YUNG" "MOSQUITO")
+          (? invalid nil)
+          (? invalid nil)
+          (? invalid nil)
+          (? invalid nil)
+          (? invalid nil)
+          (? invalid nil)
+          (? consonant "LETTER DOR DANG" "NOSE")
+          (? consonant "LETTER TOR TAR" "EYE")
+          (? consonant "LETTER THOR THUNG" "TO ASK,QUESTION")
+          (? consonant "LETTER DHOR DHARM" "FLAG")
+          (? invalid nil)
+          (? consonant "LETTER NOR NOK" "BIRD")
+          (? consonant "LETTER BOR BED" "FISHHOOK")
+          (? consonant "LETTER POR PAR" "FISH")
+          (? consonant "LETTER HPOR HPER\"" "BEE")
+          (? consonant "LETTER FHOR FHAR" "WALL")
+          (? consonant "LETTER PHOR PHUU" "MOUNTAIN")
+          (? consonant "LETTER FOR FAI" "FIRE")
+          (? invalid nil)
+          (? consonant "LETTER MOR MAR\"" "HORSE")
+          (? consonant "LETTER GNOR GNAR" "MEDICINE")
+          (? consonant "LETTER ROR ROD" "CAR")
+          (? invalid nil)
+          (? consonant "LETTER LOR LIING" "MONKEY")
+          (? invalid nil)
+          (? consonant "LETTER WOR WII" "HAND FAN")
+          (? invalid nil)
+          (? invalid nil)
+          (? consonant "LETTER SOR SEA" "TIGER")
+          (? consonant "LETTER HHOR HHAI" "JAR")
+          (? invalid nil)
+          (? consonant "LETTER OR OOW" "TAKE")
+          (? consonant "LETTER HOR HEA" "BOAT")
+          (? special "ELLIPSIS")
+          (? vowel-base "VOWEL SIGN SARA A")
+          (? vowel-upper "VOWEL SIGN MAI KAN")
+          (? vowel-base "VOWEL SIGN SARA AR")
+          (? vowel-base "VOWEL SIGN SARA AM")
+          (? vowel-upper "VOWEL SIGN SARA I")
+          (? vowel-upper "VOWEL SIGN SARA II")
+          (? vowel-upper "VOWEL SIGN SARA EU")
+          (? vowel-upper "VOWEL SIGN SARA UR")
+          (? vowel-lower "VOWEL SIGN SARA U")
+          (? vowel-lower "VOWEL SIGN SARA UU")
+          (? invalid nil)
+          (? vowel-upper "VOWEL SIGN MAI KONG")
+          (? semivowel-lower "SEMIVOWEL SIGN LO")
+          (? vowel-base "SEMIVOWEL SIGN SARA IA")
+          (? invalid nil)
+          (?຿ invalid nil)
+          (? vowel-base "VOWEL SIGN SARA EE")
+          (? vowel-base "VOWEL SIGN SARA AA")
+          (? vowel-base "VOWEL SIGN SARA OO")
+          (? vowel-base "VOWEL SIGN SARA EI MAI MUAN\"")
+          (? vowel-base "VOWEL SIGN SARA AI MAI MAY")
+          (? invalid nil)
+          (? special "KO LA (REPETITION)")
+          (? invalid nil)
+          (? tone "TONE MAI EK")
+          (? tone "TONE MAI THO")
+          (? tone "TONE MAI TI")
+          (? tone "TONE MAI JADTAWAR")
+          (? tone "CANCELLATION MARK")
+          (? vowel-upper "VOWEL SIGN SARA OR")
+          (? invalid nil)
+          (? invalid nil)
+          (? special "DIGIT ZERO")
+          (? special "DIGIT ONE")
+          (? special "DIGIT TWO")
+          (? special "DIGIT THREE")
+          (? special "DIGIT FOUR")
+          (? special "DIGIT FIVE")
+          (? special "DIGIT SIX")
+          (? special "DIGIT SEVEN")
+          (? special "DIGIT EIGHT")
+          (? special "DIGIT NINE")
+          (? invalid nil)
+          (? invalid nil)
+          (? consonant "LETTER NHOR NHUU" "MOUSE")
+          (? consonant "LETTER MHOR MHAR" "DOG")
+          (? invalid nil)))
       elm)
   (while l
     (setq elm (car l) l (cdr l))
 
 (defconst lao-transcription-consonant-alist
   (sort '(;; single consonants
-         ("k" . "\e(1!\e(B")
-         ("kh" . "\e(1"\e(B")
-         ("qh" . "\e(1$\e(B")
-         ("ng" . "\e(1'\e(B")
-         ("j" . "\e(1(\e(B")
-         ("s" . "\e(1J\e(B")
-         ("x" . "\e(1*\e(B")
-         ("y" . "\e(1-\e(B")
-         ("d" . "\e(14\e(B")
-         ("t" . "\e(15\e(B")
-         ("th" . "\e(16\e(B")
-         ("dh" . "\e(17\e(B")
-         ("n" . "\e(19\e(B")
-         ("b" . "\e(1:\e(B")
-         ("p" . "\e(1;\e(B")
-         ("hp" . "\e(1<\e(B")
-         ("fh" . "\e(1=\e(B")
-         ("ph" . "\e(1>\e(B")
-         ("f" . "\e(1?\e(B")
-         ("m" . "\e(1A\e(B")
-         ("gn" . "\e(1B\e(B")
-         ("l" . "\e(1E\e(B")
-         ("r" . "\e(1C\e(B")
-         ("v" . "\e(1G\e(B")
-         ("w" . "\e(1G\e(B")
-         ("hh" . "\e(1K\e(B")
-         ("O" . "\e(1M\e(B")
-         ("h" . "\e(1N\e(B")
-         ("nh" . "\e(1|\e(B")
-         ("mh" . "\e(1}\e(B")
-         ("lh" . ["\e(1K\\e(B"])
+         ("k" . "")
+         ("kh" . "")
+         ("qh" . "")
+         ("ng" . "")
+         ("j" . "")
+         ("s" . "")
+         ("x" . "")
+         ("y" . "")
+         ("d" . "")
+         ("t" . "")
+         ("th" . "")
+         ("dh" . "")
+         ("n" . "")
+         ("b" . "")
+         ("p" . "")
+         ("hp" . "")
+         ("fh" . "")
+         ("ph" . "")
+         ("f" . "")
+         ("m" . "")
+         ("gn" . "")
+         ("l" . "")
+         ("r" . "")
+         ("v" . "")
+         ("w" . "")
+         ("hh" . "")
+         ("O" . "")
+         ("h" . "")
+         ("nh" . "")
+         ("mh" . "")
+         ("lh" . ["ຫຼ"])
          ;; double consonants
-         ("ngh" . ["\e(1K'\e(B"])
-         ("yh" . ["\e(1K]\e(B"])
-         ("wh" . ["\e(1KG\e(B"])
-         ("hl" . ["\e(1KE\e(B"])
-         ("hy" . ["\e(1K-\e(B"])
-         ("hn" . ["\e(1K9\e(B"])
-         ("hm" . ["\e(1KA\e(B"])
+         ("ngh" . ["ຫງ"])
+         ("yh" . ["ຫຽ"])
+         ("wh" . ["ຫວ"])
+         ("hl" . ["ຫລ"])
+         ("hy" . ["ຫຍ"])
+         ("hn" . ["ຫນ"])
+         ("hm" . ["ຫມ"])
          )
        (function (lambda (x y) (> (length (car x)) (length (car y)))))))
 
 (defconst lao-transcription-semi-vowel-alist
-  '(("r" . "\e(1\\e(B")))
+  '(("r" . "")))
 
 (defconst lao-transcription-vowel-alist
-  (sort '(("a" . "\e(1P\e(B")
-         ("ar" . "\e(1R\e(B")
-         ("i" . "\e(1T\e(B")
-         ("ii" . "\e(1U\e(B")
-         ("eu" . "\e(1V\e(B")
-         ("ur" . "\e(1W\e(B")
-         ("u" . "\e(1X\e(B")
-         ("uu" . "\e(1Y\e(B")
-         ("e" . ["\e(1`P\e(B"])
-         ("ee" . "\e(1`\e(B")
-         ("ae" . ["\e(1aP\e(B"])
-         ("aa" . "\e(1a\e(B")
-         ("o" . ["\e(1bP\e(B"])
-         ("oo" . "\e(1b\e(B")
-         ("oe" . ["\e(1`RP\e(B"])
-         ("or" . "\e(1m\e(B")
-         ("er" . ["\e(1`T\e(B"])
-         ("ir" . ["\e(1`U\e(B"])
-         ("ua" . ["\e(1[GP\e(B"])
-         ("uaa" . ["\e(1[G\e(B"])
-         ("ie" . ["\e(1`Q]P\e(B"])
-         ("ia" . ["\e(1`Q]\e(B"])
-         ("ea" . ["\e(1`VM\e(B"])
-         ("eaa" . ["\e(1`WM\e(B"])
-         ("ai" . "\e(1d\e(B")
-         ("ei" . "\e(1c\e(B")
-         ("ao" . ["\e(1`[R\e(B"])
-         ("aM" . "\e(1S\e(B"))
+  (sort '(("a" . "")
+         ("ar" . "")
+         ("i" . "")
+         ("ii" . "")
+         ("eu" . "")
+         ("ur" . "")
+         ("u" . "")
+         ("uu" . "")
+         ("e" . ["ເະ"])
+         ("ee" . "")
+         ("ae" . ["ແະ"])
+         ("aa" . "")
+         ("o" . ["ໂະ"])
+         ("oo" . "")
+         ("oe" . ["ເາະ"])
+         ("or" . "")
+         ("er" . ["ເິ"])
+         ("ir" . ["ເີ"])
+         ("ua" . ["ົວະ"])
+         ("uaa" . ["ົວ"])
+         ("ie" . ["ເັຽະ"])
+         ("ia" . ["ເັຽ"])
+         ("ea" . ["ເຶອ"])
+         ("eaa" . ["ເືອ"])
+         ("ai" . "")
+         ("ei" . "")
+         ("ao" . ["ເົາ"])
+         ("aM" . ""))
        (function (lambda (x y) (> (length (car x)) (length (car y)))))))
 
 ;; Maa-sakod is put at the tail.
 (defconst lao-transcription-maa-sakod-alist
-  '(("k" . "\e(1!\e(B")
-    ("g" . "\e(1'\e(B")
-    ("y" . "\e(1-\e(B")
-    ("d" . "\e(14\e(B")
-    ("n" . "\e(19\e(B")
-    ("b" . "\e(1:\e(B")
-    ("m" . "\e(1A\e(B")
-    ("v" . "\e(1G\e(B")
-    ("w" . "\e(1G\e(B")
+  '(("k" . "")
+    ("g" . "")
+    ("y" . "")
+    ("d" . "")
+    ("n" . "")
+    ("b" . "")
+    ("m" . "")
+    ("v" . "")
+    ("w" . "")
     ))
 
 (defconst lao-transcription-tone-alist
-  '(("'" . "\e(1h\e(B")
-    ("\"" . "\e(1i\e(B")
-    ("^" . "\e(1j\e(B")
-    ("+" . "\e(1k\e(B")
-    ("~" . "\e(1l\e(B")))
+  '(("'" . "")
+    ("\"" . "")
+    ("^" . "")
+    ("+" . "")
+    ("~" . "")))
 
 (defconst lao-transcription-punctuation-alist
-  '(("\\0" . "\e(1p\e(B")
-    ("\\1" . "\e(1q\e(B")
-    ("\\2" . "\e(1r\e(B")
-    ("\\3" . "\e(1s\e(B")
-    ("\\4" . "\e(1t\e(B")
-    ("\\5" . "\e(1u\e(B")
-    ("\\6" . "\e(1v\e(B")
-    ("\\7" . "\e(1w\e(B")
-    ("\\8" . "\e(1x\e(B")
-    ("\\9" . "\e(1y\e(B")
-    ("\\\\" . "\e(1f\e(B")
-    ("\\$" . "\e(1O\e(B")))
+  '(("\\0" . "")
+    ("\\1" . "")
+    ("\\2" . "")
+    ("\\3" . "")
+    ("\\4" . "")
+    ("\\5" . "")
+    ("\\6" . "")
+    ("\\7" . "")
+    ("\\8" . "")
+    ("\\9" . "")
+    ("\\\\" . "")
+    ("\\$" . "")))
 
 (defconst lao-transcription-pattern
   (concat
   "Regexp of Roman transcription pattern for one Lao syllable.")
 
 (defconst lao-vowel-reordering-rule
-  '(("\e(1P\e(B" (0 ?\e(1P\e(B) (0 ?\e(1Q\e(B))
-    ("\e(1R\e(B" (0 ?\e(1R\e(B))
-    ("\e(1T\e(B" (0 ?\e(1U\e(B))
-    ("\e(1U\e(B" (0 ?\e(1U\e(B))
-    ("\e(1V\e(B" (0 ?\e(1V\e(B))
-    ("\e(1W\e(B" (0 ?\e(1W\e(B))
-    ("\e(1X\e(B" (0 ?\e(1X\e(B))
-    ("\e(1Y\e(B" (0 ?\e(1Y\e(B))
-    ("\e(1`P\e(B" (?\e(1`\e(B 0 ?\e(1P\e(B) (?\e(1`\e(B 0 ?\e(1Q\e(B))
-    ("\e(1`\e(B" (?\e(1`\e(B 0))
-    ("\e(1aP\e(B" (?\e(1a\e(B 0 ?\e(1P\e(B) (?\e(1a\e(B 0 ?\e(1Q\e(B))
-    ("\e(1a\e(B" (?\e(1a\e(B 0))
-    ("\e(1bP\e(B" (?\e(1b\e(B 0 ?\e(1P\e(B) (0 ?\e(1[\e(B) (?\e(1-\e(B ?\e(1b\e(B 0 ?\e(1Q\e(B) (?\e(1G\e(B ?\e(1b\e(B 0 ?\e(1Q\e(B))
-    ("\e(1b\e(B" (?\e(1b\e(B 0))
-    ("\e(1`RP\e(B" (?\e(1`\e(B 0 ?\e(1R\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1M\e(B))
-    ("\e(1m\e(B" (0 ?\e(1m\e(B) (0 ?\e(1M\e(B))
-    ("\e(1`T\e(B" (?\e(1`\e(B 0 ?\e(1T\e(B))
-    ("\e(1`U\e(B" (?\e(1`\e(B 0 ?\e(1U\e(B))
-    ("\e(1[GP\e(B" (0 ?\e(1[\e(B ?\e(1G\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1G\e(B))
-    ("\e(1[G\e(B" (0 ?\e(1[\e(B ?\e(1G\e(B) (0 ?\e(1G\e(B))
-    ("\e(1`Q]P\e(B" (?\e(1`\e(B 0 ?\e(1Q\e(B ?\e(1]\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1]\e(B))
-    ("\e(1`Q]\e(B" (?\e(1`\e(B 0 ?\e(1Q\e(B ?\e(1]\e(B) (0 ?\e(1]\e(B))
-    ("\e(1`VM\e(B" (?\e(1`\e(B 0 ?\e(1V\e(B ?\e(1M\e(B))
-    ("\e(1`WM\e(B" (?\e(1`\e(B 0 ?\e(1W\e(B ?\e(1M\e(B))
-    ("\e(1d\e(B" (?\e(1d\e(B 0))
-    ("\e(1c\e(B" (?\e(1c\e(B 0))
-    ("\e(1`[R\e(B" (?\e(1`\e(B 0 ?\e(1[\e(B ?\e(1R\e(B))
-    ("\e(1S\e(B" (0 ?\e(1S\e(B)))
+  '(("ະ" (0 ?ະ) (0 ?ັ))
+    ("າ" (0 ?າ))
+    ("ິ" (0 ?ີ))
+    ("ີ" (0 ?ີ))
+    ("ຶ" (0 ?ຶ))
+    ("ື" (0 ?ື))
+    ("ຸ" (0 ?ຸ))
+    ("ູ" (0 ?ູ))
+    ("ເະ" (?ເ 0 ?ະ) (?ເ 0 ?ັ))
+    ("ເ" (?ເ 0))
+    ("ແະ" (?ແ 0 ?ະ) (?ແ 0 ?ັ))
+    ("ແ" (?ແ 0))
+    ("ໂະ" (?ໂ 0 ?ະ) (0 ?ົ) (?ຍ ?ໂ 0 ?ັ) (?ວ ?ໂ 0 ?ັ))
+    ("ໂ" (?ໂ 0))
+    ("ເາະ" (?ເ 0 ?າ ?ະ) (0 ?ັ ?ອ))
+    ("ໍ" (0 ?ໍ) (0 ?ອ))
+    ("ເິ" (?ເ 0 ?ິ))
+    ("ເີ" (?ເ 0 ?ີ))
+    ("ົວະ" (0 ?ົ ?ວ ?ະ) (0 ?ັ ?ວ))
+    ("ົວ" (0 ?ົ ?ວ) (0 ?ວ))
+    ("ເັຽະ" (?ເ 0 ?ັ ?ຽ ?ະ) (0 ?ັ ?ຽ))
+    ("ເັຽ" (?ເ 0 ?ັ ?ຽ) (0 ?ຽ))
+    ("ເຶອ" (?ເ 0 ?ຶ ?ອ))
+    ("ເືອ" (?ເ 0 ?ື ?ອ))
+    ("ໄ" (?ໄ 0))
+    ("ໃ" (?ໃ 0))
+    ("ເົາ" (?ເ 0 ?ົ ?າ))
+    ("ຳ" (0 ?ຳ)))
   "Alist of Lao vowel string vs the corresponding re-ordering rule.
 Each element has this form:
        (VOWEL NO-MAA-SAKOD-RULE WITH-MAA-SAKOD-RULE (MAA-SAKOD-0 RULE-0) ...)
 
-VOWEL is a vowel string (e.g. \"\e(1`Q]P\e(B\").
+VOWEL is a vowel string (e.g. \"ເັຽະ\").
 
 NO-MAA-SAKOD-RULE is a rule to re-order and modify VOWEL following a
 consonant.  It is a list vowel characters or 0.  The element 0
@@ -375,8 +375,8 @@ following a consonant and preceding a maa-sakod character.  If it is
 nil, NO-MAA-SAKOD-RULE is used.  The maa-sakod character is always
 appended at the tail.
 
-For instance, rule `(\"\e(1`WM\e(B\" (?\e(1`\e(B t ?\e(1W\e(B ?\e(1M\e(B))' tells that this vowel
-string following a consonant `\e(1!\e(B' should be re-ordered as \"\e(1`!WM\e(B\".
+For instance, rule `(\"ເືອ\" (?ເ t ?ື ?ອ))' tells that this vowel
+string following a consonant `ກ' should be re-ordered as \"ເກືອ\".
 
 Optional (MAA-SAKOD-n RULE-n) are rules specially applied to maa-sakod
 character MAA-SAKOD-n.")
index abed8f1036eb9cc1951570375795eb4e16c9b205..803e9977d47c96f72d19e19643e0096333d20e9c 100644 (file)
@@ -1,4 +1,4 @@
-;;; thai.el --- support for Thai -*- coding: iso-2022-7bit -*-
+;;; thai.el --- support for Thai -*- coding: utf-8 -*-
 
 ;; Copyright (C) 1997-1998, 2000-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -55,7 +55,7 @@
          (exit-function . exit-thai-language-environment-internal)
          (sample-text
           . (thai-compose-string
-             (copy-sequence "Thai (\e,T@RIRd7B\e(B)              \e,TJGQJ4U$CQ:\e(B, \e,TJGQJ4U$hP\e(B")))
+             (copy-sequence "Thai (ภาษาไทย)              สวัสดีครับ, สวัสดีค่ะ")))
          (documentation . t)))
 
 (define-coding-system 'cp874
@@ -75,12 +75,12 @@ This is the same as `thai-tis620' with the addition of no-break-space."
   :charset-list '(iso-8859-11))
 
 ;; For automatic composition.
-(let ((chars "\e,TQTUVWXYZghijklmn\e(B")
-      (elt '(["[\e,T!\e(B-\e,TO\e(B].[\e,Thijkl\e(B]?\e,TS\e(B?" 1 thai-composition-function]
+(let ((chars "ัิีึืฺุู็่้๊๋์ํ๎")
+      (elt '(["[ก-ฯ].[่้๊๋์]?ำ?" 1 thai-composition-function]
             [nil 0 thai-composition-function])))
   (dotimes (i (length chars))
     (aset composition-function-table (aref chars i) elt)))
-(aset composition-function-table ?\e,TS\e(B '(["[\e,T!\e(B-\e,TO\e(B]." 1 thai-composition-function]))
+(aset composition-function-table ?ำ '(["[ก-ฯ]." 1 thai-composition-function]))
 
 (provide 'thai)
 
index 1617c2f3eba630360af98d1493c44ac29b39b5df..422fc697df8220cdc6ffd99ea982362777b78ee8 100644 (file)
@@ -1,4 +1,4 @@
-;;; tibet-util.el --- utilities for Tibetan   -*- coding: iso-2022-7bit; -*-
+;;; tibet-util.el --- utilities for Tibetan   -*- coding: utf-8-emacs; -*-
 
 ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;; Code:
 
 (defconst tibetan-obsolete-glyphs
-  `(("\e$(7!=\e(B" . "\e$(7!=\e(B")                        ; 2 col <-> 1 col
-    ("\e$(7!?\e(B" . "\e$(7!?\e(B")
-    ("\e$(7!@\e(B" . "\e$(7!@\e(B")
-    ("\e$(7!A\e(B" . "\e$(7!A\e(B")
-    ("\e$(7"`\e(B" . "\e$(7"`\e(B")
-    ("\e$(7!;\e(B" . "\e$(7!;\e(B")
-    ("\e$(7!D\e(B" . "\e$(7!D\e(B")
+  `(("།" . "།")                    ; 2 col <-> 1 col
+    ("༏" . "༏")
+    ("༐" . "༐")
+    ("༑" . "༑")
+    ("ཿ" . "ཿ")
+    ("་" . "་")
+    ("༔" . "༔")
     ;; Yes these are dirty. But ...
-    ("\e$(7!>\e(B \e$(7!>\e(B" . ,(compose-string "\e$(7!>\e(B \e$(7!>\e(B" 0 3 [?\e$(7!>\e(B (Br . Bl) ?  (Br . Bl) ?\e$(7!>\e(B]))
-    ("\e$(7!4!5!5\e(B" . ,(compose-string
-                 "\e$(7#R#S#S#S\e(B" 0 4
-                 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B]))
-    ("\e$(7!4!5\e(B" . ,(compose-string "\e$(7#R#S#S\e(B" 0 3 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B]))
-    ("\e$(7!6\e(B" . ,(compose-string "\e$(7#R#S!I\e(B" 0 3 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (br . tr) ?\e$(7!I\e(B]))
-    ("\e$(7!4\e(B"   . ,(compose-string "\e$(7#R#S\e(B" 0 2 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B]))))
+    ("༎ ༎" . ,(compose-string "༎ ༎" 0 3 [?༎ (Br . Bl) ?  (Br . Bl) ?༎]))
+    ("༄༅༅" . ,(compose-string
+                 "࿁࿂࿂࿂" 0 4
+                 [?࿁ (Br . Bl) ?࿂ (Br . Bl) ?࿂ (Br . Bl) ?࿂]))
+    ("༄༅" . ,(compose-string "࿁࿂࿂" 0 3 [?࿁ (Br . Bl) ?࿂ (Br . Bl) ?࿂]))
+    ("༆" . ,(compose-string "࿁࿂༙" 0 3 [?࿁ (Br . Bl) ?࿂ (br . tr) ?༙]))
+    ("༄"   . ,(compose-string "࿁࿂" 0 2 [?࿁ (Br . Bl) ?࿂]))))
 
 ;;;###autoload
 (defun tibetan-char-p (ch)
@@ -136,7 +136,7 @@ The returned string has no composition information."
 ;;;
 ;;; Here are examples of the words "bsgrubs" and "hfauM"
 ;;;
-;;;            \e$(7"7"G###C"U"7"G\e(B            \e$(7"H"R"U"_\e(B
+;;;            བསྒྲུབས            ཧཱུཾ
 ;;;
 ;;;                             M
 ;;;             b s b s         h
@@ -144,7 +144,7 @@ The returned string has no composition information."
 ;;;               r             u
 ;;;               u
 ;;;
-;;; Consonants `'' (\e$(7"A\e(B), `w' (\e$(7">\e(B), `y' (\e$(7"B\e(B), `r' (\e$(7"C\e(B) take special
+;;; Consonants `'' (འ), `w' (ཝ), `y' (ཡ), `r' (ར) take special
 ;;; forms when they are used as subjoined consonant.  Consonant `r'
 ;;; takes another special form when used as superjoined in such a case
 ;;; as "rka", while it does not change its form when conjoined with
@@ -161,15 +161,15 @@ The returned string has no composition information."
     ;; Special treatment for 'a chung.
     ;; If 'a follows a consonant, turn it into the subjoined form.
     ;; * Disabled by Tomabechi 2000/06/09 *
-    ;; Because in Unicode, \e$(7"A\e(B may follow directly a consonant without
-    ;; any intervening vowel, as in \e$(7"9"""Q"A!;\e(B=\e$(7"9\e(B \e$(7""\e(B \e$(7"A\e(B not \e$(7"9\e(B \e$(7""\e(B \e$(7"Q\e(B \e$(7"A\e(B
-    ;;(if (and (= char ?\e$(7"A\e(B)
+    ;; Because in Unicode,  may follow directly a consonant without
+    ;; any intervening vowel, as in མཁའ་=མ ཁ འ not མ ཁ  འ
+    ;;(if (and (= char ?)
     ;;      (aref (char-category-set (car last)) ?0))
-    ;; (setq char ?\e$(7"R\e(B)) ;; modified for new font by Tomabechi 1999/12/10
+    ;; (setq char ?)) ;; modified for new font by Tomabechi 1999/12/10
 
     ;; Composite vowel signs are decomposed before being added
     ;; Added by Tomabechi 2000/06/08
-    (if (memq char '(?\e$(7"T\e(B ?\e$(7"V\e(B ?\e$(7"W\e(B ?\e$(7"X\e(B ?\e$(7"Y\e(B ?\e$(7"Z\e(B ?\e$(7"b\e(B))
+    (if (memq char '(?ཱི ?ཱུ ?ྲྀ ?ཷ ?ླྀ ?ཹ ?ཱྀ))
        (setq comp-vowel
              (copy-sequence
               (cddr (assoc (char-to-string char)
@@ -184,22 +184,22 @@ The returned string has no composition information."
 
      ;; Compose lower vowel sign vertically under.
      ((aref (char-category-set char) ?3)
-      (if (or (eq char ?\e$(7"Q\e(B) ;; `\e$(7"Q\e(B' and `\e$,1FP\e(B' should not visible when composed.
+      (if (or (eq char ?) ;; `' and `཰' should not visible when composed.
              (eq char #xF70))
          (setq rule nil)
        (setq rule stack-under)))
      ;; Transform ra-mgo (superscribed r) if followed by a subjoined
      ;; consonant other than w, ', y, r.
-     ((and (= (car last) ?\e$(7"C\e(B)
-          (not (memq char '(?\e$(7#>\e(B ?\e$(7"R\e(B ?\e$(7#B\e(B ?\e$(7#C\e(B))))
-      (setcar last ?\e$(7!"\e(B) ;; modified for newfont by Tomabechi 1999/12/10
+     ((and (= (car last) ?)
+          (not (memq char '(?ྭ ?ཱ ?ྱ ?ྲ))))
+      (setcar last ?) ;; modified for newfont by Tomabechi 1999/12/10
       (setq rule stack-under))
      ;; Transform initial base consonant if followed by a subjoined
      ;; consonant but 'a.
      (t
       (let ((laststr (char-to-string (car last))))
-       (if (and (/= char ?\e$(7"R\e(B) ;; modified for new font by Tomabechi
-                (string-match "[\e$(7"!\e(B-\e$(7"="?"@"D\e(B-\e$(7"J"K\e(B]" laststr))
+       (if (and (/= char ?) ;; modified for new font by Tomabechi
+                (string-match "[ཀ-ཛྷཞཟལ-ཀྵཪ]" laststr))
            (setcar last (string-to-char
                          (cdr (assoc (char-to-string (car last))
                                      tibetan-base-to-subjoined-alist)))))
@@ -216,7 +216,7 @@ The returned string has no composition information."
 (defun tibetan-compose-string (str)
   "Compose Tibetan string STR."
   (let ((idx 0))
-    ;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants
+    ;; `' is included in the pattern for subjoined consonants
     ;; because we treat it specially in tibetan-add-components.
     ;; (This feature is removed by Tomabechi 2000/06/08)
     (while (setq idx (string-match tibetan-composable-pattern str idx))
@@ -247,7 +247,7 @@ The returned string has no composition information."
       (save-restriction
        (narrow-to-region beg end)
        (goto-char (point-min))
-       ;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants
+       ;; `' is included in the pattern for subjoined consonants
        ;; because we treat it specially in tibetan-add-components.
        ;; (This feature is removed by Tomabechi 2000/06/08)
        (while (re-search-forward tibetan-composable-pattern nil t)
@@ -366,18 +366,18 @@ See also docstring of the function tibetan-compose-region."
 ;;;
 
 (defvar tibetan-canonicalize-for-unicode-alist
-  '(("\e$(7"Q\e(B" . "") ;; remove vowel a
-    ("\e$(7"T\e(B" . "\e$(7"R"S\e(B") ;; decompose vowels whose use is ``discouraged'' in Unicode 3.0
-    ("\e$(7"V\e(B" . "\e$(7"R"U\e(B")
-    ("\e$(7"W\e(B" . "\e$(7#C"a\e(B")
-    ("\e$(7"X\e(B" . "\e$(7#C"R"a\e(B")
-    ("\e$(7"Y\e(B" . "\e$(7#D"a\e(B")
-    ("\e$(7"Z\e(B" . "\e$(7#D"R"a\e(B")
-    ("\e$(7"b\e(B" . "\e$(7"R"a\e(B"))
+  '(("" . "")      ;; remove vowel a
+    ("ཱི" . "ཱི") ;; decompose vowels whose use is ``discouraged'' in Unicode 3.0
+    ("ཱུ" . "ཱུ")
+    ("ྲྀ" . "ྲྀ")
+    ("ཷ" . "ྲཱྀ")
+    ("ླྀ" . "ླྀ")
+    ("ཹ" . "ླཱྀ")
+    ("ཱྀ" . "ཱྀ"))
   "Rules for canonicalizing Tibetan vowels for Unicode.")
 
 (defvar tibetan-canonicalize-for-unicode-regexp
-  "[\e$(7"Q"T"V"W"X"Y"Z"b\e(B]"
+  "[ཱཱིུྲྀཷླྀཹཱྀ]"
   "Regexp for Tibetan vowels to be canonicalized in Unicode.")
 
 (defun tibetan-canonicalize-for-unicode-region (from to)
index e80ded9c98e09b6d3f8a3a0284a1363b429f772b..f85284702a28f324c971391188de5ef3f1f90844 100644 (file)
@@ -1,4 +1,4 @@
-;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*-
+;;; tibetan.el --- support for Tibetan language -*- coding: utf-8-emacs; -*-
 
 ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;; I hope I can add missing characters later.
 ;;;
 ;;;     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-;;;2120 // \e$(7!!\e(B \e$(7!"\e(B \e$(7!#\e(B \e$(7!$\e(B \e$(7!%\e(B \e$(7!&\e(B \e$(7!'\e(B \e$(7!(\e(B \e$(7!)\e(B \e$(7!*\e(B \e$(7!+\e(B \e$(7!,\e(B \e$(7!-\e(B \e$(7!.\e(B \e$(7!/\e(B ; obsolete glyphs (2123-5)
-;;;2130 \e$(7!0\e(B \e$(7!1\e(B \e$(7!2\e(B \e$(7!3\e(B \e$(7!4\e(B \e$(7!5\e(B \e$(7!6\e(B \e$(7!7\e(B \e$(7!8\e(B \e$(7!9\e(B \e$(7!:\e(B \e$(7!;\e(B \e$(7!<\e(B \e$(7!=\e(B \e$(7!>\e(B \e$(7!?\e(B ; Punctuation,
-;;;2140 \e$(7!@\e(B \e$(7!A\e(B \e$(7!B\e(B \e$(7!C\e(B \e$(7!D\e(B \e$(7!E\e(B \e$(7!F\e(B \e$(7!G\e(B \e$(7!H\e(B \e$(7!I\e(B \e$(7!J\e(B \e$(7!K\e(B \e$(7!L\e(B \e$(7!M\e(B \e$(7!N\e(B \e$(7!O\e(B ; Digits and
-;;;2150 \e$(7!P\e(B \e$(7!Q\e(B \e$(7!R\e(B \e$(7!S\e(B \e$(7!T\e(B \e$(7!U\e(B \e$(7!V\e(B \e$(7!W\e(B \e$(7!X\e(B \e$(7!Y\e(B \e$(7!Z\e(B \e$(7![\e(B \e$(7!\\e(B \e$(7!]\e(B \e$(7!^\e(B \e$(7!_\e(B ; Special signs.
-;;;2160 \e$(7!`\e(B \e$(7!a\e(B \e$(7!b\e(B \e$(7!c\e(B \e$(7!d\e(B \e$(7!e\e(B \e$(7!f\e(B \e$(7!g\e(B \e$(7!h\e(B \e$(7!i\e(B \e$(7!j\e(B \e$(7!k\e(B \e$(7!l\e(B \e$(7!m\e(B \e$(7!n\e(B \e$(7!o\e(B ;
-;;;2170 \e$(7!p\e(B \e$(7!q\e(B \e$(7!r\e(B \e$(7!s\e(B \e$(7!t\e(B \e$(7!u\e(B \e$(7!v\e(B \e$(7!w\e(B \e$(7!x\e(B \e$(7!y\e(B \e$(7!z\e(B \e$(7!{\e(B \e$(7!|\e(B \e$(7!}\e(B \e$(7!~\e(B // ;
+;;;2120 //                ; obsolete glyphs (2123-5)
+;;;2130 ༀ ༁ ༂ ༃ ༄ ༅ ༆ ༇ ༈ ༉ ༊ ་ ༌ ། ༎ ༏ ; Punctuation,
+;;;2140 ༐ ༑ ༒ ༓ ༔ ༕ ༖ ༗ ༘ ༙ ༚ ༛ ༜ ༝ ༞ ༟ ; Digits and
+;;;2150 ༠ ༡ ༢ ༣ ༤ ༥ ༦ ༧ ༨ ༩ ༪ ༫ ༬ ༭ ༮ ༯ ; Special signs.
+;;;2160 ༰ ༱ ༲ ༳ ༴ ༵ ༶ ༷ ༸ ༹ ༺ ༻ ༼ ༽ ༾ ༿ ;
+;;;2170                // ;
 ;;;
 ;;;     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-;;;2220 // \e$(7"!\e(B \e$(7""\e(B \e$(7"#\e(B \e$(7"$\e(B \e$(7"%\e(B \e$(7"&\e(B \e$(7"'\e(B \e$(7"(\e(B \e$(7")\e(B \e$(7"*\e(B \e$(7"+\e(B \e$(7",\e(B \e$(7"-\e(B \e$(7".\e(B \e$(7"/\e(B ; Base consonants
-;;;2230 \e$(7"0\e(B \e$(7"1\e(B \e$(7"2\e(B \e$(7"3\e(B \e$(7"4\e(B \e$(7"5\e(B \e$(7"6\e(B \e$(7"7\e(B \e$(7"8\e(B \e$(7"9\e(B \e$(7":\e(B \e$(7";\e(B \e$(7"<\e(B \e$(7"=\e(B \e$(7">\e(B \e$(7"?\e(B ; and
-;;;2240 \e$(7"@\e(B \e$(7"A\e(B \e$(7"B\e(B \e$(7"C\e(B \e$(7"D\e(B \e$(7"E\e(B \e$(7"F\e(B \e$(7"G\e(B \e$(7"H\e(B \e$(7"I\e(B \e$(7"J\e(B \e$(7"K\e(B \e$(7"L\e(B \e$(7"M\e(B \e$(7"N\e(B \e$(7"O\e(B ; Vowel signs.
-;;;2250 \e$(7"P\e(B \e$(7"Q\e(B \e$(7"R\e(B \e$(7"S\e(B \e$(7"T\e(B \e$(7"U\e(B \e$(7"V\e(B \e$(7"W\e(B \e$(7"X\e(B \e$(7"Y\e(B \e$(7"Z\e(B \e$(7"[\e(B \e$(7"\\e(B \e$(7"]\e(B \e$(7"^\e(B \e$(7"_\e(B ; (\x2251 = vowel a)
-;;;2260 \e$(7"`\e(B \e$(7"a\e(B \e$(7"b\e(B \e$(7"c\e(B \e$(7"d\e(B \e$(7"e\e(B \e$(7"f\e(B \e$(7"g\e(B \e$(7"h\e(B \e$(7"i\e(B \e$(7"j\e(B \e$(7"k\e(B \e$(7"l\e(B \e$(7"m\e(B \e$(7"n\e(B \e$(7"o\e(B ; Long vowels and
-;;;2270 \e$(7"p\e(B \e$(7"q\e(B \e$(7"r\e(B \e$(7"s\e(B \e$(7"t\e(B \e$(7"u\e(B \e$(7"v\e(B \e$(7"w\e(B \e$(7"x\e(B \e$(7"y\e(B \e$(7"z\e(B \e$(7"{\e(B \e$(7"|\e(B \e$(7"}\e(B \e$(7"~\e(B // ; vocalic r, l ARE
+;;;2220 // ཀ ཁ ག གྷ ང ཅ ཆ ཇ  ཉ ཊ ཋ ཌ ཌྷ ཎ ; Base consonants
+;;;2230 ཏ ཐ ད དྷ ན པ ཕ བ བྷ མ ཙ ཚ ཛ ཛྷ ཝ ཞ ; and
+;;;2240 ཟ འ ཡ ར ལ ཤ ཥ ས ཧ ཨ ཀྵ ཪ     ; Vowel signs.
+;;;2250   ཱ ི ཱི ུ ཱུ ྲྀ ཷ ླྀ ཹ ེ ཻ ོ ཽ ཾ ; (\x2251 = vowel a)
+;;;2260 ཿ ྀ ཱྀ ྂ ྃ ྄ ྅ ྆ ྇ ྈ ྉ ྊ ྋ    ; Long vowels and
+;;;2270                // ; vocalic r, l ARE
 ;;;                                                     ; atomically
 ;;;                                                     ; encoded.
 ;;;     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-;;;2320 // \e$(7#!\e(B \e$(7#"\e(B \e$(7##\e(B \e$(7#$\e(B \e$(7#%\e(B \e$(7#&\e(B \e$(7#'\e(B \e$(7#(\e(B \e$(7#)\e(B \e$(7#*\e(B \e$(7#+\e(B \e$(7#,\e(B \e$(7#-\e(B \e$(7#.\e(B \e$(7#/\e(B ; Subjoined consonants
-;;;2330 \e$(7#0\e(B \e$(7#1\e(B \e$(7#2\e(B \e$(7#3\e(B \e$(7#4\e(B \e$(7#5\e(B \e$(7#6\e(B \e$(7#7\e(B \e$(7#8\e(B \e$(7#9\e(B \e$(7#:\e(B \e$(7#;\e(B \e$(7#<\e(B \e$(7#=\e(B \e$(7#>\e(B \e$(7#?\e(B ;
-;;;2340 \e$(7#@\e(B \e$(7#A\e(B \e$(7#B\e(B \e$(7#C\e(B \e$(7#D\e(B \e$(7#E\e(B \e$(7#F\e(B \e$(7#G\e(B \e$(7#H\e(B \e$(7#I\e(B \e$(7#J\e(B \e$(7#K\e(B \e$(7#L\e(B \e$(7#M\e(B \e$(7#N\e(B \e$(7#O\e(B ;
-;;;2350 \e$(7#P\e(B \e$(7#Q\e(B \e$(7#R\e(B \e$(7#S\e(B \e$(7#T\e(B \e$(7#U\e(B \e$(7#V\e(B \e$(7#W\e(B \e$(7#X\e(B \e$(7#Y\e(B \e$(7#Z\e(B \e$(7#[\e(B \e$(7#\\e(B \e$(7#]\e(B \e$(7#^\e(B \e$(7#_\e(B ; Hereafter, the chars
-;;;2360 \e$(7#`\e(B \e$(7#a\e(B \e$(7#b\e(B \e$(7#c\e(B \e$(7#d\e(B \e$(7#e\e(B \e$(7#f\e(B \e$(7#g\e(B \e$(7#h\e(B \e$(7#i\e(B \e$(7#j\e(B \e$(7#k\e(B \e$(7#l\e(B \e$(7#m\e(B \e$(7#n\e(B \e$(7#o\e(B ; are not specified
-;;;2370 \e$(7#p\e(B \e$(7#q\e(B \e$(7#r\e(B \e$(7#s\e(B \e$(7#t\e(B \e$(7#u\e(B \e$(7#v\e(B \e$(7#w\e(B \e$(7#x\e(B \e$(7#y\e(B \e$(7#z\e(B \e$(7#{\e(B \e$(7#|\e(B \e$(7#}\e(B \e$(7#~\e(B // ; in Unicode.
+;;;2320 // ྐ ྑ ྒ ྒྷ ྔ ྕ ྖ ྗ  ྙ ྚ ྛ ྜ ྜྷ ྞ ; Subjoined consonants
+;;;2330 ྟ ྠ ྡ ྡྷ ྣ ྤ ྥ ྦ ྦྷ ྨ ྩ ྪ ྫ ྫྷ ྭ ྮ ;
+;;;2340 ྯ ྰ ྱ ྲ ླ ྴ ྵ ྶ ྷ ྸ ྐྵ ྺ ྻ ྼ  ྾ ;
+;;;2350 ྿ ࿀ ࿁ ࿂ ࿃ ࿄ ࿅ ࿆ ࿇ ࿈ ࿉ ࿊ ࿋ ࿌   ; Hereafter, the chars
+;;;2360 ࿏                ; are not specified
+;;;2370                // ; in Unicode.
 ;;;
 ;;;     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-;;;2420 // \e$(7$!\e(B \e$(7$"\e(B \e$(7$#\e(B \e$(7$$\e(B \e$(7$%\e(B \e$(7$&\e(B \e$(7$'\e(B \e$(7$(\e(B \e$(7$)\e(B \e$(7$*\e(B \e$(7$+\e(B \e$(7$,\e(B \e$(7$-\e(B \e$(7$.\e(B \e$(7$/\e(B ; Precomposed
-;;;2430 \e$(7$0\e(B \e$(7$1\e(B \e$(7$2\e(B \e$(7$3\e(B \e$(7$4\e(B \e$(7$5\e(B \e$(7$6\e(B \e$(7$7\e(B \e$(7$8\e(B \e$(7$9\e(B \e$(7$:\e(B \e$(7$;\e(B \e$(7$<\e(B \e$(7$=\e(B \e$(7$>\e(B \e$(7$?\e(B ; consonants for
-;;;2440 \e$(7$@\e(B \e$(7$A\e(B \e$(7$B\e(B \e$(7$C\e(B \e$(7$D\e(B \e$(7$E\e(B \e$(7$F\e(B \e$(7$G\e(B \e$(7$H\e(B \e$(7$I\e(B \e$(7$J\e(B \e$(7$K\e(B \e$(7$L\e(B \e$(7$M\e(B \e$(7$N\e(B \e$(7$O\e(B ; ordinary Tibetan.
-;;;2450 \e$(7$P\e(B \e$(7$Q\e(B \e$(7$R\e(B \e$(7$S\e(B \e$(7$T\e(B \e$(7$U\e(B \e$(7$V\e(B \e$(7$W\e(B \e$(7$X\e(B \e$(7$Y\e(B \e$(7$Z\e(B \e$(7$[\e(B \e$(7$\\e(B \e$(7$]\e(B \e$(7$^\e(B \e$(7$_\e(B ; They are decomposed
-;;;2460 \e$(7$`\e(B \e$(7$a\e(B \e$(7$b\e(B \e$(7$c\e(B \e$(7$d\e(B \e$(7$e\e(B \e$(7$f\e(B \e$(7$g\e(B \e$(7$h\e(B \e$(7$i\e(B \e$(7$j\e(B \e$(7$k\e(B \e$(7$l\e(B \e$(7$m\e(B \e$(7$n\e(B \e$(7$o\e(B ; into base and
-;;;2470 \e$(7$p\e(B \e$(7$q\e(B \e$(7$r\e(B \e$(7$s\e(B \e$(7$t\e(B \e$(7$u\e(B \e$(7$v\e(B \e$(7$w\e(B \e$(7$x\e(B \e$(7$y\e(B \e$(7$z\e(B \e$(7${\e(B \e$(7$|\e(B \e$(7$}\e(B \e$(7$~\e(B // ; subjoined consonants
+;;;2420 //                ; Precomposed
+;;;2430                 ; consonants for
+;;;2440                 ; ordinary Tibetan.
+;;;2450                 ; They are decomposed
+;;;2460                 ; into base and
+;;;2470                // ; subjoined consonants
 ;;;                                                     ; when written on a
 ;;;     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ; file in Tibetan
-;;;2520 // \e$(7%!\e(B \e$(7%"\e(B \e$(7%#\e(B \e$(7%$\e(B \e$(7%%\e(B \e$(7%&\e(B \e$(7%'\e(B \e$(7%(\e(B \e$(7%)\e(B \e$(7%*\e(B \e$(7%+\e(B \e$(7%,\e(B \e$(7%-\e(B \e$(7%.\e(B \e$(7%/\e(B ; coding system.
-;;;2530 \e$(7%0\e(B \e$(7%1\e(B \e$(7%2\e(B \e$(7%3\e(B \e$(7%4\e(B \e$(7%5\e(B \e$(7%6\e(B \e$(7%7\e(B \e$(7%8\e(B \e$(7%9\e(B \e$(7%:\e(B \e$(7%;\e(B \e$(7%<\e(B \e$(7%=\e(B \e$(7%>\e(B \e$(7%?\e(B ;
-;;;2540 \e$(7%@\e(B \e$(7%A\e(B \e$(7%B\e(B \e$(7%C\e(B \e$(7%D\e(B \e$(7%E\e(B \e$(7%F\e(B \e$(7%G\e(B \e$(7%H\e(B \e$(7%I\e(B \e$(7%J\e(B \e$(7%K\e(B \e$(7%L\e(B \e$(7%M\e(B \e$(7%N\e(B \e$(7%O\e(B ;
-;;;2550 \e$(7%P\e(B \e$(7%Q\e(B \e$(7%R\e(B \e$(7%S\e(B \e$(7%T\e(B \e$(7%U\e(B \e$(7%V\e(B \e$(7%W\e(B \e$(7%X\e(B \e$(7%Y\e(B \e$(7%Z\e(B \e$(7%[\e(B \e$(7%\\e(B \e$(7%]\e(B \e$(7%^\e(B \e$(7%_\e(B ;
-;;;2560 \e$(7%`\e(B \e$(7%a\e(B \e$(7%b\e(B \e$(7%c\e(B \e$(7%d\e(B \e$(7%e\e(B \e$(7%f\e(B \e$(7%g\e(B \e$(7%h\e(B \e$(7%i\e(B \e$(7%j\e(B \e$(7%k\e(B \e$(7%l\e(B \e$(7%m\e(B \e$(7%n\e(B \e$(7%o\e(B ;
-;;;2570 \e$(7%p\e(B \e$(7%q\e(B \e$(7%r\e(B \e$(7%s\e(B \e$(7%t\e(B \e$(7%u\e(B \e$(7%v\e(B \e$(7%w\e(B \e$(7%x\e(B \e$(7%y\e(B \e$(7%z\e(B \e$(7%{\e(B \e$(7%|\e(B \e$(7%}\e(B \e$(7%~\e(B // ;
+;;;2520 //                ; coding system.
+;;;2530                 ;
+;;;2540                 ;
+;;;2550                 ;
+;;;2560                 ;
+;;;2570                // ;
 ;;;
 
 
             (input-method . "tibetan-wylie")
             (features tibet-util)
             (documentation . t)
-            (sample-text . "Tibetan (\e$(7"7"]"2!;"G#!"Q"2!;\e(B) \e$(7!4!5!5!>"7"!#C"Q!;"E"S"G!;"7"2"[!;"D"["#"G!>"I"]"_!;"9"Q!;"/"S!;"5"Q"2#9"[!;"H"A"U"c!>\e(B")))
+            (sample-text . "Tibetan (བོད་སྐད་) ༄༅༅༎བཀྲ་ཤིས་བདེ་ལེགས༎ཨོཾ་མ་ཎི་པདྨེ་ཧའུྂ༎")))
 
-;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants because we
+;; `' is included in the pattern for subjoined consonants because we
 ;; treat it specially in tibetan-add-components.
 ;; modified by Tomabechi 1999/12/10
 ;; modified by Tomabechi 2000/06/08
 ;;          To allow infinite addition of vowels/modifiers
 ;;          as specified in Unicode v.3
-;; \e$(7"A\e(B is removed from the class of subjoined. Tomabechi 2000/06/08
+;;  is removed from the class of subjoined. Tomabechi 2000/06/08
 ;; (for Unicode support)
 (defconst tibetan-composable-pattern
-  "[\e$(7"!\e(B-\e$(7"J"K\e(B][\e$(7#!\e(B-\e$(7#J#K#L#M\e(B]*[\e$,1FP\e$(7"Q"R"S\e(B-\e$(7"^"a"b"e\e(B]*[\e$(7"_"c"d"g\e(B-\e$(7"l!I!e!g\e(B]*"
+  "[ཀ-ཀྵཪ][ྐ-ྐྵྺྻྼ]*[཰ཱི-྄ཱཽྀྀ]*[ཾྂྃ྆-ྋ༙༵༷]*"
   "Regexp matching a composable sequence of Tibetan characters.")
 
 ;;;
 ;;; alists for tibetan char <-> transcription conversion
 ;;; longer transcription should come first
 (defconst tibetan-consonant-transcription-alist
-  '(("tsh" . "\e$(7";\e(B")
-    ("dzh" . "\e$(7"=\e(B")
-    ("kSH" . "\e$(7"J\e(B")
-    ("kh" . "\e$(7""\e(B")
-    ("gh" . "\e$(7"$\e(B")
-    ("ng" . "\e$(7"%\e(B")
-    ("ch" . "\e$(7"'\e(B")
-    ("ny" . "\e$(7"*\e(B")
-    ("TH" . "\e$(7",\e(B")
-    ("DH" . "\e$(7".\e(B")
-    ("th" . "\e$(7"1\e(B")
-    ("dh" . "\e$(7"3\e(B")
-    ("ph" . "\e$(7"6\e(B")
-    ("bh" . "\e$(7"8\e(B")
-    ("ts" . "\e$(7":\e(B")
-    ("dz" . "\e$(7"<\e(B")
-    ("zh" . "\e$(7"?\e(B")
-    ("sh" . "\e$(7"E\e(B")
-    ("SH" . "\e$(7"F\e(B")
-    ("k" . "\e$(7"!\e(B")
-    ("g" . "\e$(7"#\e(B")
-    ("c" . "\e$(7"&\e(B")
-    ("j" . "\e$(7"(\e(B")
-    ("T" . "\e$(7"+\e(B")
-    ("D" . "\e$(7"-\e(B")
-    ("N" . "\e$(7"/\e(B")
-    ("t" . "\e$(7"0\e(B")
-    ("d" . "\e$(7"2\e(B")
-    ("n" . "\e$(7"4\e(B")
-    ("p" . "\e$(7"5\e(B")
-    ("b" . "\e$(7"7\e(B")
-    ("m" . "\e$(7"9\e(B")
-    ("w" . "\e$(7">\e(B")
-    ("z" . "\e$(7"@\e(B")
-    ("'" . "\e$(7"A\e(B")
-    ("y" . "\e$(7"B\e(B")
-    ("r" . "\e$(7"C\e(B")
-    ("l" . "\e$(7"D\e(B")
-    ("s" . "\e$(7"G\e(B")
-    ("h" . "\e$(7"H\e(B")
-    ("H" . "\e$(7"H\e(B")
-    ("A" . "\e$(7"I\e(B")
+  '(("tsh" . "")
+    ("dzh" . "")
+    ("kSH" . "")
+    ("kh" . "")
+    ("gh" . "")
+    ("ng" . "")
+    ("ch" . "")
+    ("ny" . "")
+    ("TH" . "")
+    ("DH" . "")
+    ("th" . "")
+    ("dh" . "")
+    ("ph" . "")
+    ("bh" . "")
+    ("ts" . "")
+    ("dz" . "")
+    ("zh" . "")
+    ("sh" . "")
+    ("SH" . "")
+    ("k" . "")
+    ("g" . "")
+    ("c" . "")
+    ("j" . "")
+    ("T" . "")
+    ("D" . "")
+    ("N" . "")
+    ("t" . "")
+    ("d" . "")
+    ("n" . "")
+    ("p" . "")
+    ("b" . "")
+    ("m" . "")
+    ("w" . "")
+    ("z" . "")
+    ("'" . "")
+    ("y" . "")
+    ("r" . "")
+    ("l" . "")
+    ("s" . "")
+    ("h" . "")
+    ("H" . "")
+    ("A" . "")
     ;; Added by Tomabechi 1999/12/10
-    ("R" . "\e$(7"K\e(B") ;; fixed form RA
+    ("R" . "") ;; fixed form RA
     ))
 
 
   '(
     ;; Composite Vowels
     ;; Added by Tomabechi 2000/06/08
-    ("frr" . "\e$(7"X\e(B")
-    ("fll" . "\e$(7"Z\e(B")
-    ("fa" . "\e$(7"R\e(B")
-    ("fi" . "\e$(7"T\e(B")
-    ("fu" . "\e$(7"V\e(B")
-    ("fr" . "\e$(7"W\e(B")
-    ("fl" . "\e$(7"Y\e(B")
-    ("fI" . "\e$(7"b\e(B")
+    ("frr" . "")
+    ("fll" . "")
+    ("fa" . "")
+    ("fi" . "")
+    ("fu" . "")
+    ("fr" . "")
+    ("fl" . "")
+    ("fI" . "")
     ;; Normal Vowels
-    ("ai" . "\e$(7"\\e(B")
-    ("au" . "\e$(7"^\e(B")
-    ("ee" . "\e$(7"\\e(B")
-    ("oo" . "\e$(7"^\e(B")
-    ("a" . "\e$(7"Q\e(B")                        ; invisible vowel sign (\x2251)
-    ("i" . "\e$(7"S\e(B")
-    ("u" . "\e$(7"U\e(B")
-    ("e" . "\e$(7"[\e(B")
-    ("o" . "\e$(7"]\e(B")
-    ("E" . "\e$(7"\\e(B")
-    ("O" . "\e$(7"^\e(B")
-    ("I" . "\e$(7"a\e(B")
-    ("," . "\e$(7"e\e(B")                        ; idem.
+    ("ai" . "")
+    ("au" . "")
+    ("ee" . "")
+    ("oo" . "")
+    ("a" . "")                     ; invisible vowel sign (\x2251)
+    ("i" . "")
+    ("u" . "")
+    ("e" . "")
+    ("o" . "")
+    ("E" . "")
+    ("O" . "")
+    ("I" . "")
+    ("," . "྄")                      ; idem.
     ))
 
 (defconst tibetan-modifier-transcription-alist
-  '(("M" . "\e$(7"_\e(B")
-    ("~" . "\e$(7"c\e(B")
-    ("`" . "\e$(7"d\e(B")
-    ("x" . "\e$(7"i\e(B")
-    ("X" . "\e$(7"j\e(B")
-    ("v" . "\e$(7"g\e(B")
-    ("V" . "\e$(7"h\e(B")
-    ("q" . "\e$(7"k\e(B")
-    ("Q" . "\e$(7"l\e(B")
-    ("_/" . "\e$(7!I\e(B")
-    ("_o" . "\e$(7!g\e(B")
-    ("_O" . "\e$(7!e\e(B")))
+  '(("M" . "")
+    ("~" . "")
+    ("`" . "")
+    ("x" . "")
+    ("X" . "")
+    ("v" . "")
+    ("V" . "")
+    ("q" . "")
+    ("Q" . "")
+    ("_/" . "")
+    ("_o" . "")
+    ("_O" . "")))
 
 (defconst tibetan-precomposed-transcription-alist
-  '(("phyw" . "\e$(7$G\e(B")
-    ("tshw" . "\e$(7$)\e(B")
-    ("rtsw" . "\e$(7%.\e(B")
-    ("khw" . "\e$(7$"\e(B")
-    ("nyw" . "\e$(7$%\e(B")
-    ("tsw" . "\e$(7$(\e(B")
-    ("zhw" . "\e$(7$*\e(B")
-    ("shw" . "\e$(7$.\e(B")
-    ("khy" . "\e$(7$A\e(B")
-    ("phy" . "\e$(7$D\e(B")
-    ("khr" . "\e$(7$Q\e(B")
-    ("thr" . "\e$(7$T\e(B")
-    ("phr" . "\e$(7$W\e(B")
-    ("shr" . "\e$(7$Z\e(B")
-    ("dzr" . "\e$(7$^\e(B")
-    ("grw" . "\e$(7$_\e(B")
-    ("rng" . "\e$(7%#\e(B")
-    ("rny" . "\e$(7%%\e(B")
-    ("rts" . "\e$(7%+\e(B")
-    ("rdz" . "\e$(7%,\e(B")
-    ("rgw" . "\e$(7%-\e(B")
-    ("rky" . "\e$(7%0\e(B")
-    ("rgy" . "\e$(7%1\e(B")
-    ("rmy" . "\e$(7%2\e(B")
-    ("lng" . "\e$(7%B\e(B")
-    ("sng" . "\e$(7%R\e(B")
-    ("sny" . "\e$(7%S\e(B")
-    ("sts" . "\e$(7%Z\e(B")
-    ("sky" . "\e$(7%`\e(B")
-    ("sgy" . "\e$(7%a\e(B")
-    ("spy" . "\e$(7%b\e(B")
-    ("sby" . "\e$(7%c\e(B")
-    ("smy" . "\e$(7%d\e(B")
-    ("skr" . "\e$(7%p\e(B")
-    ("sgr" . "\e$(7%q\e(B")
-    ("snr" . "\e$(7%r\e(B")
-    ("spr" . "\e$(7%s\e(B")
-    ("sbr" . "\e$(7%t\e(B")
-    ("smr" . "\e$(7%u\e(B")
-    ("kw" . "\e$(7$!\e(B")
-    ("gw" . "\e$(7$#\e(B")
-    ("cw" . "\e$(7$$\e(B")
-    ("tw" . "\e$(7$&\e(B")
-    ("dw" . "\e$(7$'\e(B")
-    ("zw" . "\e$(7$+\e(B")
-    ("rw" . "\e$(7$,\e(B")
-    ("lw" . "\e$(7$-\e(B")
-    ("sw" . "\e$(7$/\e(B")
-    ("hw" . "\e$(7$0\e(B")
-    ("ky" . "\e$(7$@\e(B")
-    ("gy" . "\e$(7$B\e(B")
-    ("py" . "\e$(7$C\e(B")
-    ("by" . "\e$(7$E\e(B")
-    ("my" . "\e$(7$F\e(B")
-    ("kr" . "\e$(7$P\e(B")
-    ("gr" . "\e$(7$R\e(B")
-    ("tr" . "\e$(7$S\e(B")
-    ("dr" . "\e$(7$U\e(B")
-    ("pr" . "\e$(7$V\e(B")
-    ("brk" . "\e$(7"7%!\e(B")
-    ("brg" . "\e$(7"7%"\e(B")
-    ("brng" . "\e$(7"7%#\e(B")
-    ("brj" . "\e$(7"7%$\e(B")
-    ("brny" . "\e$(7"7%%\e(B")
-    ("brt" .  "\e$(7"7%&\e(B")
-    ("brd" . "\e$(7"7%'\e(B")
-    ("brn" . "\e$(7"7%(\e(B")
-    ("brts" . "\e$(7"7%+\e(B")
-    ("brdz" . "\e$(7"7%,\e(B")
-    ("brl" . "\e$(7"7$d\e(B")
-    ("br" . "\e$(7$X\e(B")
-    ("mr" . "\e$(7$Y\e(B")
-    ("sr" . "\e$(7$[\e(B")
-    ("hr" . "\e$(7$\\e(B")
-    ("jr" . "\e$(7$]\e(B")
-    ("kl" . "\e$(7$`\e(B")
-    ("gl" . "\e$(7$a\e(B")
-    ("blt" . "\e$(7"7%E\e(B")
-    ("bld" . "\e$(7"7%F\e(B")
-    ("bl" . "\e$(7$b\e(B")
-    ("zl" . "\e$(7$c\e(B")
-    ("rl" . "\e$(7$d\e(B")
-    ("sl" . "\e$(7$e\e(B")
-    ("rk" . "\e$(7%!\e(B")
-    ("rg" . "\e$(7%"\e(B")
-    ("rj" . "\e$(7%$\e(B")
-    ("rt" . "\e$(7%&\e(B")
-    ("rd" . "\e$(7%'\e(B")
-    ("rn" . "\e$(7%(\e(B")
-    ("rb" . "\e$(7%)\e(B")
-    ("rm" . "\e$(7%*\e(B")
-    ("lk" . "\e$(7%@\e(B")
-    ("lg" . "\e$(7%A\e(B")
-    ("lc" . "\e$(7%C\e(B")
-    ("lj" . "\e$(7%D\e(B")
-    ("lt" . "\e$(7%E\e(B")
-    ("ld" . "\e$(7%F\e(B")
-    ("ln" . "\e$(7!!\e(B")                       ; dummy \x2121
-    ("lp" . "\e$(7%G\e(B")
-    ("lb" . "\e$(7%H\e(B")
-    ("lh" . "\e$(7%I\e(B")
-    ("sk" . "\e$(7%P\e(B")
-    ("sg" . "\e$(7%Q\e(B")
-    ("st" . "\e$(7%T\e(B")
-    ("sd" . "\e$(7%U\e(B")
-    ("sn" . "\e$(7%V\e(B")
-    ("sp" . "\e$(7%W\e(B")
-    ("sb" . "\e$(7%X\e(B")
-    ("sm" . "\e$(7%Y\e(B"))
+  '(("phyw" . "")
+    ("tshw" . "")
+    ("rtsw" . "")
+    ("khw" . "")
+    ("nyw" . "")
+    ("tsw" . "")
+    ("zhw" . "")
+    ("shw" . "")
+    ("khy" . "")
+    ("phy" . "")
+    ("khr" . "")
+    ("thr" . "")
+    ("phr" . "")
+    ("shr" . "")
+    ("dzr" . "")
+    ("grw" . "")
+    ("rng" . "")
+    ("rny" . "")
+    ("rts" . "")
+    ("rdz" . "")
+    ("rgw" . "")
+    ("rky" . "")
+    ("rgy" . "")
+    ("rmy" . "")
+    ("lng" . "")
+    ("sng" . "")
+    ("sny" . "")
+    ("sts" . "")
+    ("sky" . "")
+    ("sgy" . "")
+    ("spy" . "")
+    ("sby" . "")
+    ("smy" . "")
+    ("skr" . "")
+    ("sgr" . "")
+    ("snr" . "")
+    ("spr" . "")
+    ("sbr" . "")
+    ("smr" . "")
+    ("kw" . "")
+    ("gw" . "")
+    ("cw" . "")
+    ("tw" . "")
+    ("dw" . "")
+    ("zw" . "")
+    ("rw" . "")
+    ("lw" . "")
+    ("sw" . "")
+    ("hw" . "")
+    ("ky" . "")
+    ("gy" . "")
+    ("py" . "")
+    ("by" . "")
+    ("my" . "")
+    ("kr" . "")
+    ("gr" . "")
+    ("tr" . "")
+    ("dr" . "")
+    ("pr" . "")
+    ("brk" . "")
+    ("brg" . "")
+    ("brng" . "")
+    ("brj" . "")
+    ("brny" . "")
+    ("brt" .  "")
+    ("brd" . "")
+    ("brn" . "")
+    ("brts" . "")
+    ("brdz" . "")
+    ("brl" . "")
+    ("br" . "")
+    ("mr" . "")
+    ("sr" . "")
+    ("hr" . "")
+    ("jr" . "")
+    ("kl" . "")
+    ("gl" . "")
+    ("blt" . "")
+    ("bld" . "")
+    ("bl" . "")
+    ("zl" . "")
+    ("rl" . "")
+    ("sl" . "")
+    ("rk" . "")
+    ("rg" . "")
+    ("rj" . "")
+    ("rt" . "")
+    ("rd" . "")
+    ("rn" . "")
+    ("rb" . "")
+    ("rm" . "")
+    ("lk" . "")
+    ("lg" . "")
+    ("lc" . "")
+    ("lj" . "")
+    ("lt" . "")
+    ("ld" . "")
+    ("ln" . "")                    ; dummy \x2121
+    ("lp" . "")
+    ("lb" . "")
+    ("lh" . "")
+    ("sk" . "")
+    ("sg" . "")
+    ("st" . "")
+    ("sd" . "")
+    ("sn" . "")
+    ("sp" . "")
+    ("sb" . "")
+    ("sm" . ""))
   )
 
 
 (defconst tibetan-subjoined-transcription-alist
-  (sort '(("+k"  . "\e$(7#!\e(B")
-         ("+kh" . "\e$(7#"\e(B")
-         ("+g"  . "\e$(7##\e(B")
-         ("+gh" . "\e$(7#$\e(B")
-         ("+ng" . "\e$(7#%\e(B")
-         ("+c"  . "\e$(7#&\e(B")
-         ("+ch" . "\e$(7#'\e(B")
-         ("+j"  . "\e$(7#(\e(B")
-         ("+ny"  . "\e$(7#*\e(B")
-         ("+T"  . "\e$(7#+\e(B")
-         ("+TH" . "\e$(7#,\e(B")
-         ("+D"  . "\e$(7#-\e(B")
-         ("+DH" . "\e$(7#.\e(B")
-         ("+N"  . "\e$(7#/\e(B")
-         ("+t"  . "\e$(7#0\e(B")
-         ("+th" . "\e$(7#1\e(B")
-         ("+d"  . "\e$(7#2\e(B")
-         ("+dh" . "\e$(7#3\e(B")
-         ("+n"  . "\e$(7#4\e(B")
-         ("+p"  . "\e$(7#5\e(B")
-         ("+ph" . "\e$(7#6\e(B")
-         ("+b"  . "\e$(7#7\e(B")
-         ("+bh" . "\e$(7#8\e(B")
-         ("+m"  . "\e$(7#9\e(B")
-         ("+ts" . "\e$(7#:\e(B")
-         ("+tsh" . "\e$(7#;\e(B")
-         ("+dz" . "\e$(7#<\e(B")
-         ("+dzh" . "\e$(7#=\e(B")
-         ("+w"  . "\e$(7#>\e(B")
-         ("+zh" . "\e$(7#?\e(B")
-         ("+z"  . "\e$(7#@\e(B")
-         ("+'"  . "\e$(7#A\e(B")
-         ("+y"  . "\e$(7#B\e(B")
-         ("+r"  . "\e$(7#C\e(B")
-         ("+l"  . "\e$(7#D\e(B")
-         ("+sh" . "\e$(7#E\e(B")
-         ("+SH" . "\e$(7#F\e(B")
-         ("+s"  . "\e$(7#G\e(B")
-         ("+h"  . "\e$(7#H\e(B")
-         ("+A"  . "\e$(7#I\e(B")
-         ("+kSH" . "\e$(7#J\e(B")
+  (sort '(("+k"  . "")
+         ("+kh" . "")
+         ("+g"  . "")
+         ("+gh" . "")
+         ("+ng" . "")
+         ("+c"  . "")
+         ("+ch" . "")
+         ("+j"  . "")
+         ("+ny"  . "")
+         ("+T"  . "")
+         ("+TH" . "")
+         ("+D"  . "")
+         ("+DH" . "")
+         ("+N"  . "")
+         ("+t"  . "")
+         ("+th" . "")
+         ("+d"  . "")
+         ("+dh" . "")
+         ("+n"  . "")
+         ("+p"  . "")
+         ("+ph" . "")
+         ("+b"  . "")
+         ("+bh" . "")
+         ("+m"  . "")
+         ("+ts" . "")
+         ("+tsh" . "")
+         ("+dz" . "")
+         ("+dzh" . "")
+         ("+w"  . "")
+         ("+zh" . "")
+         ("+z"  . "")
+         ("+'"  . "")
+         ("+y"  . "")
+         ("+r"  . "")
+         ("+l"  . "")
+         ("+sh" . "")
+         ("+SH" . "")
+         ("+s"  . "")
+         ("+h"  . "")
+         ("+A"  . "")
+         ("+kSH" . "")
          ;; Added by Tomabechi 1999/12/10
-         ("+W" . "\e$(7#K\e(B") ;; fixed form subscribed WA
-         ("+Y" . "\e$(7#L\e(B") ;; fixed form subscribed YA
-         ("+R" . "\e$(7#M\e(B") ;; fixed form subscribed RA
+         ("+W" . "") ;; fixed form subscribed WA
+         ("+Y" . "") ;; fixed form subscribed YA
+         ("+R" . "") ;; fixed form subscribed RA
          )
        (lambda (x y) (> (length (car x)) (length (car y))))))
 
 ;;; alist for Tibetan base consonant <-> subjoined consonant conversion.
 ;;;
 (defconst tibetan-base-to-subjoined-alist
-  '(("\e$(7"!\e(B" . "\e$(7#!\e(B")
-    ("\e$(7""\e(B" . "\e$(7#"\e(B")
-    ("\e$(7"#\e(B" . "\e$(7##\e(B")
-    ("\e$(7"$\e(B" . "\e$(7#$\e(B")
-    ("\e$(7"%\e(B" . "\e$(7#%\e(B")
-    ("\e$(7"&\e(B" . "\e$(7#&\e(B")
-    ("\e$(7"'\e(B" . "\e$(7#'\e(B")
-    ("\e$(7"(\e(B" . "\e$(7#(\e(B")
-    ("\e$(7"*\e(B" . "\e$(7#*\e(B")
-    ("\e$(7"+\e(B" . "\e$(7#+\e(B")
-    ("\e$(7",\e(B" . "\e$(7#,\e(B")
-    ("\e$(7"-\e(B" . "\e$(7#-\e(B")
-    ("\e$(7".\e(B" . "\e$(7#.\e(B")
-    ("\e$(7"/\e(B" . "\e$(7#/\e(B")
-    ("\e$(7"0\e(B" . "\e$(7#0\e(B")
-    ("\e$(7"1\e(B" . "\e$(7#1\e(B")
-    ("\e$(7"2\e(B" . "\e$(7#2\e(B")
-    ("\e$(7"3\e(B" . "\e$(7#3\e(B")
-    ("\e$(7"4\e(B" . "\e$(7#4\e(B")
-    ("\e$(7"5\e(B" . "\e$(7#5\e(B")
-    ("\e$(7"6\e(B" . "\e$(7#6\e(B")
-    ("\e$(7"7\e(B" . "\e$(7#7\e(B")
-    ("\e$(7"8\e(B" . "\e$(7#8\e(B")
-    ("\e$(7"9\e(B" . "\e$(7#9\e(B")
-    ("\e$(7":\e(B" . "\e$(7#:\e(B")
-    ("\e$(7";\e(B" . "\e$(7#;\e(B")
-    ("\e$(7"<\e(B" . "\e$(7#<\e(B")
-    ("\e$(7"=\e(B" . "\e$(7#=\e(B")
-    ("\e$(7">\e(B" . "\e$(7#>\e(B")
-    ("\e$(7"?\e(B" . "\e$(7#?\e(B")
-    ("\e$(7"@\e(B" . "\e$(7#@\e(B")
-    ("\e$(7"A\e(B" . "\e$(7#A\e(B")
-    ("\e$(7"B\e(B" . "\e$(7#B\e(B")
-    ("\e$(7"C\e(B" . "\e$(7#C\e(B")
-    ("\e$(7"D\e(B" . "\e$(7#D\e(B")
-    ("\e$(7"E\e(B" . "\e$(7#E\e(B")
-    ("\e$(7"F\e(B" . "\e$(7#F\e(B")
-    ("\e$(7"G\e(B" . "\e$(7#G\e(B")
-    ("\e$(7"H\e(B" . "\e$(7#H\e(B")
-    ("\e$(7"I\e(B" . "\e$(7#I\e(B")
-    ("\e$(7"J\e(B" . "\e$(7#J\e(B")
+  '(("ཀ" . "ྐ")
+    ("ཁ" . "ྑ")
+    ("ག" . "ྒ")
+    ("གྷ" . "ྒྷ")
+    ("ང" . "ྔ")
+    ("ཅ" . "ྕ")
+    ("ཆ" . "ྖ")
+    ("ཇ" . "ྗ")
+    ("ཉ" . "ྙ")
+    ("ཊ" . "ྚ")
+    ("ཋ" . "ྛ")
+    ("ཌ" . "ྜ")
+    ("ཌྷ" . "ྜྷ")
+    ("ཎ" . "ྞ")
+    ("ཏ" . "ྟ")
+    ("ཐ" . "ྠ")
+    ("ད" . "ྡ")
+    ("དྷ" . "ྡྷ")
+    ("ན" . "ྣ")
+    ("པ" . "ྤ")
+    ("ཕ" . "ྥ")
+    ("བ" . "ྦ")
+    ("བྷ" . "ྦྷ")
+    ("མ" . "ྨ")
+    ("ཙ" . "ྩ")
+    ("ཚ" . "ྪ")
+    ("ཛ" . "ྫ")
+    ("ཛྷ" . "ྫྷ")
+    ("ཝ" . "ྭ")
+    ("ཞ" . "ྮ")
+    ("ཟ" . "ྯ")
+    ("འ" . "ྰ")
+    ("ཡ" . "ྱ")
+    ("ར" . "ྲ")
+    ("ལ" . "ླ")
+    ("ཤ" . "ྴ")
+    ("ཥ" . "ྵ")
+    ("ས" . "ྶ")
+    ("ཧ" . "ྷ")
+    ("ཨ" . "ྸ")
+    ("ཀྵ" . "ྐྵ")
     ;; Added by Tomabechi 1999/12/10
-    ("\e$(7"K\e(B" . "\e$(7#M\e(B") ;; Fixed form RA (224B->234D)
+    ("ཪ" . "ྼ") ;; Fixed form RA (224B->234D)
     ))
 
 ;;; alist for Tibetan composite vowels (long i, vocalic r, etc.)
 ;;; New variable. created by Tomabechi 2000/06/08
 (defconst tibetan-composite-vowel-alist
   '(;; LONG A
-    ;; ("\e$(7"R\e(B" . ((bc . tc) ?\e$(7"R\e(B))
+    ;; ("ཱ" . ((bc . tc) ?ཱ))
     ;; LONG I
-    ("\e$(7"T\e(B" . (?\e$(7"R\e(B (tc . bc) ?\e$(7"S\e(B))
+    ("ཱི" . (?ཱ (tc . bc) ?ི))
     ;; LONG U
-    ("\e$(7"V\e(B" . (?\e$(7"R\e(B (bc . tc) ?\e$(7"U\e(B))
+    ("ཱུ" . (?ཱ (bc . tc) ?ུ))
     ;; VOCALIC R
-    ("\e$(7"W\e(B" . (?\e$(7#C\e(B (tc . bc) ?\e$(7"a\e(B))
+    ("ྲྀ" . (?ྲ (tc . bc) ?ྀ))
     ;; LONG VOCALIC R
-    ("\e$(7"X\e(B" . (?\e$(7#C\e(B (bc . tc) ?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
+    ("ཷ" . (?ྲ (bc . tc) ?ཱ (tc . bc) ?ྀ))
     ;; VOCALIC L
-    ("\e$(7"Y\e(B" . (?\e$(7#D\e(B (tc . bc) ?\e$(7"a\e(B))
-    ;;\e$(7!;\e(BLONG VOCALIC L
-    ("\e$(7"Z\e(B" . (?\e$(7#D\e(B (bc . tc) ?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
+    ("ླྀ" . (?ླ (tc . bc) ?ྀ))
+    ;;LONG VOCALIC L
+    ("ཹ" . (?ླ (bc . tc) ?ཱ (tc . bc) ?ྀ))
     ;; LONG REVERSE I
-    ("\e$(7"b\e(B" . (?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
+    ("ཱྀ" . (?ཱ (tc . bc) ?ྀ))
     ))
 
 
 ;;; (includes some punctuation conversion rules)
 ;;;
 (defconst tibetan-precomposition-rule-alist
-  `(("\e$(7"6#B#>\e(B" . "\e$(7$G\e(B")
-    ("\e$(7"##C#>\e(B" . "\e$(7$_\e(B")
-    ("\e$(7";#>\e(B" . "\e$(7$)\e(B")
-    ("\e$(7"C#:#>\e(B" . "\e$(7%.\e(B")
-    ("\e$(7"C###>\e(B" . "\e$(7%-\e(B")
-    ("\e$(7"C#!#B\e(B" . "\e$(7%0\e(B")
-    ("\e$(7"C###B\e(B" . "\e$(7%1\e(B")
-    ("\e$(7"C#9#B\e(B" . "\e$(7%2\e(B")
-    ("\e$(7"G#!#B\e(B" . "\e$(7%`\e(B")
-    ("\e$(7"G###B\e(B" . "\e$(7%a\e(B")
-    ("\e$(7"G#5#B\e(B" . "\e$(7%b\e(B")
-    ("\e$(7"G#7#B\e(B" . "\e$(7%c\e(B")
-    ("\e$(7"G#9#B\e(B" . "\e$(7%d\e(B")
-    ("\e$(7"G#!#C\e(B" . "\e$(7%p\e(B")
-    ("\e$(7"G###C\e(B" . "\e$(7%q\e(B")
-    ("\e$(7"G#4#C\e(B" . "\e$(7%r\e(B")
-    ("\e$(7"G#5#C\e(B" . "\e$(7%s\e(B")
-    ("\e$(7"G#7#C\e(B" . "\e$(7%t\e(B")
-    ("\e$(7"G#9#C\e(B" . "\e$(7%u\e(B")
-    ("\e$(7""#>\e(B" . "\e$(7$"\e(B")
-    ("\e$(7"*#>\e(B" . "\e$(7$%\e(B")
-    ("\e$(7":#>\e(B" . "\e$(7$(\e(B")
-    ("\e$(7"?#>\e(B" . "\e$(7$*\e(B")
-    ("\e$(7"E#>\e(B" . "\e$(7$.\e(B")
-    ("\e$(7""#B\e(B" . "\e$(7$A\e(B")
-    ("\e$(7"6#B\e(B" . "\e$(7$D\e(B")
-    ("\e$(7""#C\e(B" . "\e$(7$Q\e(B")
-    ("\e$(7"1#C\e(B" . "\e$(7$T\e(B")
-    ("\e$(7"6#C\e(B" . "\e$(7$W\e(B")
-    ("\e$(7"E#C\e(B" . "\e$(7$Z\e(B")
-    ("\e$(7"<#C\e(B" . "\e$(7$^\e(B")
-    ("\e$(7"C#%\e(B" . "\e$(7%#\e(B")
-    ("\e$(7"C#*\e(B" . "\e$(7%%\e(B")
-    ("\e$(7"C#:\e(B" . "\e$(7%+\e(B")
-    ("\e$(7"C#<\e(B" . "\e$(7%,\e(B")
-    ("\e$(7"D#%\e(B" . "\e$(7%B\e(B")
-    ("\e$(7"G#%\e(B" . "\e$(7%R\e(B")
-    ("\e$(7"G#*\e(B" . "\e$(7%S\e(B")
-    ("\e$(7"G#:\e(B" . "\e$(7%Z\e(B")
-    ("\e$(7"!#>\e(B" . "\e$(7$!\e(B")
-    ("\e$(7"##>\e(B" . "\e$(7$#\e(B")
-    ("\e$(7"&#>\e(B" . "\e$(7$$\e(B")
-    ("\e$(7"0#>\e(B" . "\e$(7$&\e(B")
-    ("\e$(7"2#>\e(B" . "\e$(7$'\e(B")
-    ("\e$(7"@#>\e(B" . "\e$(7$+\e(B")
-    ("\e$(7"C#>\e(B" . "\e$(7$,\e(B")
-    ("\e$(7"D#>\e(B" . "\e$(7$-\e(B")
-    ("\e$(7"G#>\e(B" . "\e$(7$/\e(B")
-    ("\e$(7"H#>\e(B" . "\e$(7$0\e(B")
-    ("\e$(7"!#B\e(B" . "\e$(7$@\e(B")
-    ("\e$(7"##B\e(B" . "\e$(7$B\e(B")
-    ("\e$(7"5#B\e(B" . "\e$(7$C\e(B")
-    ("\e$(7"7#B\e(B" . "\e$(7$E\e(B")
-    ("\e$(7"9#B\e(B" . "\e$(7$F\e(B")
-    ("\e$(7"!#C\e(B" . "\e$(7$P\e(B")
-    ("\e$(7"##C\e(B" . "\e$(7$R\e(B")
-    ("\e$(7"0#C\e(B" . "\e$(7$S\e(B")
-    ("\e$(7"2#C\e(B" . "\e$(7$U\e(B")
-    ("\e$(7"5#C\e(B" . "\e$(7$V\e(B")
-    ("\e$(7"7#C\e(B" . "\e$(7$X\e(B")
-    ("\e$(7"9#C\e(B" . "\e$(7$Y\e(B")
-    ("\e$(7"G#C\e(B" . "\e$(7$[\e(B")
-    ("\e$(7"H#C\e(B" . "\e$(7$\\e(B")
-    ("\e$(7"(#C\e(B" . "\e$(7$]\e(B")
-    ("\e$(7"!#D\e(B" . "\e$(7$`\e(B")
-    ("\e$(7"##D\e(B" . "\e$(7$a\e(B")
-    ("\e$(7"7#D\e(B" . "\e$(7$b\e(B")
-    ("\e$(7"@#D\e(B" . "\e$(7$c\e(B")
-    ("\e$(7"C#D\e(B" . "\e$(7$d\e(B")
-    ("\e$(7"G#D\e(B" . "\e$(7$e\e(B")
-    ("\e$(7"C#!\e(B" . "\e$(7%!\e(B")
-    ("\e$(7"C##\e(B" . "\e$(7%"\e(B")
-    ("\e$(7"C#(\e(B" . "\e$(7%$\e(B")
-    ("\e$(7"C#0\e(B" . "\e$(7%&\e(B")
-    ("\e$(7"C#2\e(B" . "\e$(7%'\e(B")
-    ("\e$(7"C#4\e(B" . "\e$(7%(\e(B")
-    ("\e$(7"C#7\e(B" . "\e$(7%)\e(B")
-    ("\e$(7"C#9\e(B" . "\e$(7%*\e(B")
-    ("\e$(7"D#!\e(B" . "\e$(7%@\e(B")
-    ("\e$(7"D##\e(B" . "\e$(7%A\e(B")
-    ("\e$(7"D#4\e(B" . "\e$(7!!\e(B") ; dummy 0x2121 added 2000/06/08 for transition l -> lng
-    ("\e$(7"D#&\e(B" . "\e$(7%C\e(B")
-    ("\e$(7"D#(\e(B" . "\e$(7%D\e(B")
-    ("\e$(7"D#0\e(B" . "\e$(7%E\e(B")
-    ("\e$(7"D#2\e(B" . "\e$(7%F\e(B")
-    ("\e$(7"D#5\e(B" . "\e$(7%G\e(B")
-    ("\e$(7"D#7\e(B" . "\e$(7%H\e(B")
-    ("\e$(7"D#H\e(B" . "\e$(7%I\e(B")
-    ("\e$(7"G#!\e(B" . "\e$(7%P\e(B")
-    ("\e$(7"G##\e(B" . "\e$(7%Q\e(B")
-    ("\e$(7"G#0\e(B" . "\e$(7%T\e(B")
-    ("\e$(7"G#2\e(B" . "\e$(7%U\e(B")
-    ("\e$(7"G#4\e(B" . "\e$(7%V\e(B")
-    ("\e$(7"G#5\e(B" . "\e$(7%W\e(B")
-    ("\e$(7"G#7\e(B" . "\e$(7%X\e(B")
-    ("\e$(7"G#9\e(B" . "\e$(7%Y\e(B")))
+  `(("ཕྱྭ" . "")
+    ("གྲྭ" . "")
+    ("ཚྭ" . "")
+    ("རྩྭ" . "")
+    ("རྒྭ" . "")
+    ("རྐྱ" . "")
+    ("རྒྱ" . "")
+    ("རྨྱ" . "")
+    ("སྐྱ" . "")
+    ("སྒྱ" . "")
+    ("སྤྱ" . "")
+    ("སྦྱ" . "")
+    ("སྨྱ" . "")
+    ("སྐྲ" . "")
+    ("སྒྲ" . "")
+    ("སྣྲ" . "")
+    ("སྤྲ" . "")
+    ("སྦྲ" . "")
+    ("སྨྲ" . "")
+    ("ཁྭ" . "")
+    ("ཉྭ" . "")
+    ("ཙྭ" . "")
+    ("ཞྭ" . "")
+    ("ཤྭ" . "")
+    ("ཁྱ" . "")
+    ("ཕྱ" . "")
+    ("ཁྲ" . "")
+    ("ཐྲ" . "")
+    ("ཕྲ" . "")
+    ("ཤྲ" . "")
+    ("ཛྲ" . "")
+    ("རྔ" . "")
+    ("རྙ" . "")
+    ("རྩ" . "")
+    ("རྫ" . "")
+    ("ལྔ" . "")
+    ("སྔ" . "")
+    ("སྙ" . "")
+    ("སྩ" . "")
+    ("ཀྭ" . "")
+    ("གྭ" . "")
+    ("ཅྭ" . "")
+    ("ཏྭ" . "")
+    ("དྭ" . "")
+    ("ཟྭ" . "")
+    ("རྭ" . "")
+    ("ལྭ" . "")
+    ("སྭ" . "")
+    ("ཧྭ" . "")
+    ("ཀྱ" . "")
+    ("གྱ" . "")
+    ("པྱ" . "")
+    ("བྱ" . "")
+    ("མྱ" . "")
+    ("ཀྲ" . "")
+    ("གྲ" . "")
+    ("ཏྲ" . "")
+    ("དྲ" . "")
+    ("པྲ" . "")
+    ("བྲ" . "")
+    ("མྲ" . "")
+    ("སྲ" . "")
+    ("ཧྲ" . "")
+    ("ཇྲ" . "")
+    ("ཀླ" . "")
+    ("གླ" . "")
+    ("བླ" . "")
+    ("ཟླ" . "")
+    ("རླ" . "")
+    ("སླ" . "")
+    ("རྐ" . "")
+    ("རྒ" . "")
+    ("རྗ" . "")
+    ("རྟ" . "")
+    ("རྡ" . "")
+    ("རྣ" . "")
+    ("རྦ" . "")
+    ("རྨ" . "")
+    ("ལྐ" . "")
+    ("ལྒ" . "")
+    ("ལྣ" . "") ; dummy 0x2121 added 2000/06/08 for transition l -> lng
+    ("ལྕ" . "")
+    ("ལྗ" . "")
+    ("ལྟ" . "")
+    ("ལྡ" . "")
+    ("ལྤ" . "")
+    ("ལྦ" . "")
+    ("ལྷ" . "")
+    ("སྐ" . "")
+    ("སྒ" . "")
+    ("སྟ" . "")
+    ("སྡ" . "")
+    ("སྣ" . "")
+    ("སྤ" . "")
+    ("སྦ" . "")
+    ("སྨ" . "")))
 
 (defconst tibetan-regexp
   (let ((l (list tibetan-precomposed-transcription-alist
index a0487df9ea828bf298371845ead7b60963763dc7..a4e7ff564e0536fc8d4bb7c6695669af9e263075 100644 (file)
@@ -1,4 +1,4 @@
-;;; viet-util.el --- utilities for Vietnamese  -*- coding: iso-2022-7bit; -*-
+;;; viet-util.el --- utilities for Vietnamese  -*- coding: utf-8; -*-
 
 ;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;; ------------+----------+--------
 ;;     mark    | mnemonic | example
 ;; ------------+----------+---------
-;;    breve    |    (     | a( -> \e,1e\e(B
-;;  circumflex |    ^     | a^ -> \e,1b\e(B
-;;    horn     |    +     | o+ -> \e,1=\e(B
+;;    breve    |    (     | a( -> ă
+;;  circumflex |    ^     | a^ -> â
+;;    horn     |    +     | o+ -> ơ
 ;; ------------+----------+---------
-;;    acute    |    '     | a' -> \e,1a\e(B
-;;    grave    |    `     | a` -> \e,1`\e(B
-;;  hook above |    ?     | a? -> \e,1d\e(B
-;;    tilde    |    ~     | a~ -> \e,1c\e(B
-;;   dot below |    .     | a. -> \e,1U\e(B
+;;    acute    |    '     | a' -> á
+;;    grave    |    `     | a` -> à
+;;  hook above |    ?     | a? -> 
+;;    tilde    |    ~     | a~ -> ã
+;;   dot below |    .     | a. -> 
 ;; ------------+----------+---------
-;;    d bar    |   dd     | dd -> \e,1p\e(B
+;;    d bar    |   dd     | dd -> đ
 ;; ------------+----------+---------
 
 (defvar viet-viqr-alist
   '(;; lowercase
-    (?\e,1!\e(B . "a('")                 ; 161
-    (?\e,1"\e(B . "a(`")                 ; 162
-    (?\e,1#\e(B . "a(.")                 ; 163
-    (?\e,1$\e(B . "a^'")                 ; 164
-    (?\e,1%\e(B . "a^`")                 ; 165
-    (?\e,1&\e(B . "a^?")                 ; 166
-    (?\e,1'\e(B . "a^.")                 ; 167
-    (?\e,1(\e(B . "e~")                          ; 168
-    (?\e,1)\e(B . "e.")                          ; 169
-    (?\e,1*\e(B . "e^'")                 ; 170
-    (?\e,1+\e(B . "e^`")                 ; 171
-    (?\e,1,\e(B . "e^?")                 ; 172
-    (?\e,1-\e(B . "e^~")                 ; 173
-    (?\e,1.\e(B . "e^.")                 ; 174
-    (?\e,1/\e(B . "o^'")                 ; 175
-    (?\e,10\e(B . "o^`")                 ; 176
-    (?\e,11\e(B . "o^?")                 ; 177
-    (?\e,12\e(B . "o^~")                 ; 178
-    (?\e,15\e(B . "o^.")                 ; 181
-    (?\e,16\e(B . "o+`")                 ; 182
-    (?\e,17\e(B . "o+?")                 ; 183
-    (?\e,18\e(B . "i.")                          ; 184
-    (?\e,1=\e(B . "o+")                          ; 189
-    (?\e,1>\e(B . "o+'")                 ; 190
-    (?\e,1F\e(B . "a(?")                 ; 198
-    (?\e,1G\e(B . "a(~")                 ; 199
-    (?\e,1O\e(B . "y`")                          ; 207
-    (?\e,1Q\e(B . "u+'")                 ; 209
-    (?\e,1U\e(B . "a.")                          ; 213
-    (?\e,1V\e(B . "y?")                          ; 214
-    (?\e,1W\e(B . "u+`")                 ; 215
-    (?\e,1X\e(B . "u+?")                 ; 216
-    (?\e,1[\e(B . "y~")                          ; 219
-    (?\e,1\\e(B . "y.")                          ; 220
-    (?\e,1^\e(B . "o+~")                 ; 222
-    (?\e,1_\e(B . "u+")                          ; 223
-    (?\e,1`\e(B . "a`")                          ; 224
-    (?\e,1a\e(B . "a'")                          ; 225
-    (?\e,1b\e(B . "a^")                          ; 226
-    (?\e,1c\e(B . "a~")                          ; 227
-    (?\e,1d\e(B . "a?")                          ; 228
-    (?\e,1e\e(B . "a(")                          ; 229
-    (?\e,1f\e(B . "u+~")                 ; 230
-    (?\e,1g\e(B . "a^~")                 ; 231
-    (?\e,1h\e(B . "e`")                          ; 232
-    (?\e,1i\e(B . "e'")                          ; 233
-    (?\e,1j\e(B . "e^")                          ; 234
-    (?\e,1k\e(B . "e?")                          ; 235
-    (?\e,1l\e(B . "i`")                          ; 236
-    (?\e,1m\e(B . "i'")                          ; 237
-    (?\e,1n\e(B . "i~")                          ; 238
-    (?\e,1o\e(B . "i?")                          ; 239
-    (?\e,1p\e(B . "dd")                          ; 240
-    (?\e,1q\e(B . "u+.")                 ; 241
-    (?\e,1r\e(B . "o`")                          ; 242
-    (?\e,1s\e(B . "o'")                          ; 243
-    (?\e,1t\e(B . "o^")                          ; 244
-    (?\e,1u\e(B . "o~")                          ; 245
-    (?\e,1v\e(B . "o?")                          ; 246
-    (?\e,1w\e(B . "o.")                          ; 247
-    (?\e,1x\e(B . "u.")                          ; 248
-    (?\e,1y\e(B . "u`")                          ; 249
-    (?\e,1z\e(B . "u'")                          ; 250
-    (?\e,1{\e(B . "u~")                          ; 251
-    (?\e,1|\e(B . "u?")                          ; 252
-    (?\e,1}\e(B . "y'")                          ; 253
-    (?\e,1~\e(B . "o+.")                 ; 254
+    (?ắ . "a('")                     ; 161
+    (?ằ . "a(`")                     ; 162
+    (?ặ . "a(.")                     ; 163
+    (?ấ . "a^'")                     ; 164
+    (?ầ . "a^`")                     ; 165
+    (?ẩ . "a^?")                     ; 166
+    (?ậ . "a^.")                     ; 167
+    (?ẽ . "e~")                              ; 168
+    (?ẹ . "e.")                              ; 169
+    (?ế . "e^'")                     ; 170
+    (?ề . "e^`")                     ; 171
+    (?ể . "e^?")                     ; 172
+    (?ễ . "e^~")                     ; 173
+    (?ệ . "e^.")                     ; 174
+    (?ố . "o^'")                     ; 175
+    (?ồ . "o^`")                     ; 176
+    (?ổ . "o^?")                     ; 177
+    (?ỗ . "o^~")                     ; 178
+    (?ộ . "o^.")                     ; 181
+    (?ờ . "o+`")                     ; 182
+    (?ở . "o+?")                     ; 183
+    (?ị . "i.")                              ; 184
+    (?ơ . "o+")                               ; 189
+    (?ớ . "o+'")                     ; 190
+    (?ẳ . "a(?")                     ; 198
+    (?ẵ . "a(~")                     ; 199
+    (?ỳ . "y`")                              ; 207
+    (?ứ . "u+'")                     ; 209
+    (?ạ . "a.")                              ; 213
+    (?ỷ . "y?")                              ; 214
+    (?ừ . "u+`")                     ; 215
+    (?ử . "u+?")                     ; 216
+    (?ỹ . "y~")                              ; 219
+    (?ỵ . "y.")                              ; 220
+    (?ỡ . "o+~")                     ; 222
+    (?ư . "u+")                               ; 223
+    (?à . "a`")                               ; 224
+    (?á . "a'")                               ; 225
+    (?â . "a^")                               ; 226
+    (?ã . "a~")                               ; 227
+    (?ả . "a?")                              ; 228
+    (?ă . "a(")                               ; 229
+    (?ữ . "u+~")                     ; 230
+    (?ẫ . "a^~")                     ; 231
+    (?è . "e`")                               ; 232
+    (?é . "e'")                               ; 233
+    (?ê . "e^")                               ; 234
+    (?ẻ . "e?")                              ; 235
+    (?ì . "i`")                               ; 236
+    (?í . "i'")                               ; 237
+    (?ĩ . "i~")                               ; 238
+    (?ỉ . "i?")                              ; 239
+    (?đ . "dd")                               ; 240
+    (?ự . "u+.")                     ; 241
+    (?ò . "o`")                               ; 242
+    (?ó . "o'")                               ; 243
+    (?ô . "o^")                               ; 244
+    (?õ . "o~")                               ; 245
+    (?ỏ . "o?")                              ; 246
+    (?ọ . "o.")                              ; 247
+    (?ụ . "u.")                              ; 248
+    (?ù . "u`")                               ; 249
+    (?ú . "u'")                               ; 250
+    (?ũ . "u~")                               ; 251
+    (?ủ . "u?")                              ; 252
+    (?ý . "y'")                               ; 253
+    (?ợ . "o+.")                     ; 254
 
     ;; upper case
-    (?\e,2!\e(B . "A('")                 ; 161
-    (?\e,2"\e(B . "A(`")                 ; 162
-    (?\e,2#\e(B . "A(.")                 ; 163
-    (?\e,2$\e(B . "A^'")                 ; 164
-    (?\e,2%\e(B . "A^`")                 ; 165
-    (?\e,2&\e(B . "A^?")                 ; 166
-    (?\e,2'\e(B . "A^.")                 ; 167
-    (?\e,2(\e(B . "E~")                          ; 168
-    (?\e,2)\e(B . "E.")                          ; 169
-    (?\e,2*\e(B . "E^'")                 ; 170
-    (?\e,2+\e(B . "E^`")                 ; 171
-    (?\e,2,\e(B . "E^?")                 ; 172
-    (?\e,2-\e(B . "E^~")                 ; 173
-    (?\e,2.\e(B . "E^.")                 ; 174
-    (?\e,2/\e(B . "O^'")                 ; 175
-    (?\e,20\e(B . "O^`")                 ; 176
-    (?\e,21\e(B . "O^?")                 ; 177
-    (?\e,22\e(B . "O^~")                 ; 178
-    (?\e,25\e(B . "O^.")                 ; 181
-    (?\e,26\e(B . "O+`")                 ; 182
-    (?\e,27\e(B . "O+?")                 ; 183
-    (?\e,28\e(B . "I.")                          ; 184
-    (?\e,2=\e(B . "O+")                          ; 189
-    (?\e,2>\e(B . "O+'")                 ; 190
-    (?\e,2F\e(B . "A(?")                 ; 198
-    (?\e,2G\e(B . "A(~")                 ; 199
-    (?\e,2O\e(B . "Y`")                          ; 207
-    (?\e,2Q\e(B . "U+'")                 ; 209
-    (?\e,2U\e(B . "A.")                          ; 213
-    (?\e,2V\e(B . "Y?")                          ; 214
-    (?\e,2W\e(B . "U+`")                 ; 215
-    (?\e,2X\e(B . "U+?")                 ; 216
-    (?\e,2[\e(B . "Y~")                          ; 219
-    (?\e,2\\e(B . "Y.")                          ; 220
-    (?\e,2^\e(B . "O+~")                 ; 222
-    (?\e,2_\e(B . "U+")                          ; 223
-    (?\e,2`\e(B . "A`")                          ; 224
-    (?\e,2a\e(B . "A'")                          ; 225
-    (?\e,2b\e(B . "A^")                          ; 226
-    (?\e,2c\e(B . "A~")                          ; 227
-    (?\e,2d\e(B . "A?")                          ; 228
-    (?\e,2e\e(B . "A(")                          ; 229
-    (?\e,2f\e(B . "U+~")                 ; 230
-    (?\e,2g\e(B . "A^~")                 ; 231
-    (?\e,2h\e(B . "E`")                          ; 232
-    (?\e,2i\e(B . "E'")                          ; 233
-    (?\e,2j\e(B . "E^")                          ; 234
-    (?\e,2k\e(B . "E?")                          ; 235
-    (?\e,2l\e(B . "I`")                          ; 236
-    (?\e,2m\e(B . "I'")                          ; 237
-    (?\e,2n\e(B . "I~")                          ; 238
-    (?\e,2o\e(B . "I?")                          ; 239
-    (?\e,2p\e(B . "DD")                          ; 240
-    (?\e,2p\e(B . "dD")                          ; 240
-    (?\e,2p\e(B . "Dd")                          ; 240
-    (?\e,2q\e(B . "U+.")                 ; 241
-    (?\e,2r\e(B . "O`")                          ; 242
-    (?\e,2s\e(B . "O'")                          ; 243
-    (?\e,2t\e(B . "O^")                          ; 244
-    (?\e,2u\e(B . "O~")                          ; 245
-    (?\e,2v\e(B . "O?")                          ; 246
-    (?\e,2w\e(B . "O.")                          ; 247
-    (?\e,2x\e(B . "U.")                          ; 248
-    (?\e,2y\e(B . "U`")                          ; 249
-    (?\e,2z\e(B . "U'")                          ; 250
-    (?\e,2{\e(B . "U~")                          ; 251
-    (?\e,2|\e(B . "U?")                          ; 252
-    (?\e,2}\e(B . "Y'")                          ; 253
-    (?\e,2~\e(B . "O+.")                 ; 254
+    (?Ắ . "A('")                     ; 161
+    (?Ằ . "A(`")                     ; 162
+    (?Ặ . "A(.")                     ; 163
+    (?Ấ . "A^'")                     ; 164
+    (?Ầ . "A^`")                     ; 165
+    (?Ẩ . "A^?")                     ; 166
+    (?Ậ . "A^.")                     ; 167
+    (?Ẽ . "E~")                              ; 168
+    (?Ẹ . "E.")                              ; 169
+    (?Ế . "E^'")                     ; 170
+    (?Ề . "E^`")                     ; 171
+    (?Ể . "E^?")                     ; 172
+    (?Ễ . "E^~")                     ; 173
+    (?Ệ . "E^.")                     ; 174
+    (?Ố . "O^'")                     ; 175
+    (?Ồ . "O^`")                     ; 176
+    (?Ổ . "O^?")                     ; 177
+    (?Ỗ . "O^~")                     ; 178
+    (?Ộ . "O^.")                     ; 181
+    (?Ờ . "O+`")                     ; 182
+    (?Ở . "O+?")                     ; 183
+    (?Ị . "I.")                              ; 184
+    (?Ơ . "O+")                               ; 189
+    (?Ớ . "O+'")                     ; 190
+    (?Ẳ . "A(?")                     ; 198
+    (?Ẵ . "A(~")                     ; 199
+    (?Ỳ . "Y`")                              ; 207
+    (?Ứ . "U+'")                     ; 209
+    (?Ạ . "A.")                              ; 213
+    (?Ỷ . "Y?")                              ; 214
+    (?Ừ . "U+`")                     ; 215
+    (?Ử . "U+?")                     ; 216
+    (?Ỹ . "Y~")                              ; 219
+    (?Ỵ . "Y.")                              ; 220
+    (?Ỡ . "O+~")                     ; 222
+    (?Ư . "U+")                               ; 223
+    (?À . "A`")                               ; 224
+    (?Á . "A'")                               ; 225
+    (? . "A^")                               ; 226
+    (?à. "A~")                               ; 227
+    (?Ả . "A?")                              ; 228
+    (?Ă . "A(")                               ; 229
+    (?Ữ . "U+~")                     ; 230
+    (?Ẫ . "A^~")                     ; 231
+    (?È . "E`")                               ; 232
+    (?É . "E'")                               ; 233
+    (?Ê . "E^")                               ; 234
+    (?Ẻ . "E?")                              ; 235
+    (?Ì . "I`")                               ; 236
+    (?Í . "I'")                               ; 237
+    (?Ĩ . "I~")                               ; 238
+    (?Ỉ . "I?")                              ; 239
+    (?Đ . "DD")                               ; 240
+    (?Đ . "dD")                               ; 240
+    (?Đ . "Dd")                               ; 240
+    (?Ự . "U+.")                     ; 241
+    (?Ò . "O`")                               ; 242
+    (?Ó . "O'")                               ; 243
+    (?Ô . "O^")                               ; 244
+    (?Õ . "O~")                               ; 245
+    (?Ỏ . "O?")                              ; 246
+    (?Ọ . "O.")                              ; 247
+    (?Ụ . "U.")                              ; 248
+    (?Ù . "U`")                               ; 249
+    (?Ú . "U'")                               ; 250
+    (?Ũ . "U~")                               ; 251
+    (?Ủ . "U?")                              ; 252
+    (?Ý . "Y'")                               ; 253
+    (?Ợ . "O+.")                     ; 254
 
     ;; escape from composition
     (?\( . "\\(")                      ; breve (left parenthesis)
index e58967d5a80caab0865c289a3139d940b468c569..2e05d6b02fb38f458d7c8b45258e729a793fa679 100644 (file)
@@ -1786,7 +1786,7 @@ definition of \"random distance\".)
 ;;;***
 \f
 ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from battery.el
  (put 'battery-mode-line-string 'risky-local-variable t)
 
@@ -2109,7 +2109,7 @@ a reflection.
 ;;;;;;  bookmark-save bookmark-write bookmark-delete bookmark-insert
 ;;;;;;  bookmark-rename bookmark-insert-location bookmark-relocate
 ;;;;;;  bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark"
-;;;;;;  "bookmark.el" (20709 26818 907104 0))
+;;;;;;  "bookmark.el" (20793 51383 764318 0))
 ;;; Generated autoloads from bookmark.el
  (define-key ctl-x-r-map "b" 'bookmark-jump)
  (define-key ctl-x-r-map "m" 'bookmark-set)
@@ -2666,8 +2666,8 @@ name of buffer configuration.
 
 ;;;***
 \f
-;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20709 26818
-;;;;;;  907104 0))
+;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20791 9657
+;;;;;;  561026 0))
 ;;; Generated autoloads from play/bubbles.el
 
 (autoload 'bubbles "bubbles" "\
@@ -3090,7 +3090,7 @@ Obsoletes `c-forward-into-nomenclature'.
 ;;;***
 \f
 ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;;  (20755 36154 171386 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3718,7 +3718,7 @@ Returns a form where all lambdas don't have any free variables.
 ;;;***
 \f
 ;;;### (autoloads (cfengine-auto-mode cfengine2-mode cfengine3-mode)
-;;;;;;  "cfengine" "progmodes/cfengine.el" (20709 26818 907104 0))
+;;;;;;  "cfengine" "progmodes/cfengine.el" (20813 33065 721081 0))
 ;;; Generated autoloads from progmodes/cfengine.el
 
 (autoload 'cfengine3-mode "cfengine" "\
@@ -3969,7 +3969,7 @@ checking of documentation strings.
 \f
 ;;;### (autoloads (pre-write-encode-hz post-read-decode-hz encode-hz-buffer
 ;;;;;;  encode-hz-region decode-hz-buffer decode-hz-region) "china-util"
-;;;;;;  "language/china-util.el" (20709 26818 907104 0))
+;;;;;;  "language/china-util.el" (20799 169 640767 0))
 ;;; Generated autoloads from language/china-util.el
 
 (autoload 'decode-hz-region "china-util" "\
@@ -4218,7 +4218,7 @@ If FRAME cannot display COLOR, return nil.
 ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
 ;;;;;;  comint-redirect-send-command-to-process comint-redirect-send-command
 ;;;;;;  comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;;  (20721 17977 14204 0))
+;;;;;;  (20797 44848 327754 0))
 ;;; Generated autoloads from comint.el
 
 (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
@@ -4355,8 +4355,8 @@ on third call it again advances points to the next difference and so on.
 ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
 ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
 ;;;;;;  compilation-ask-about-save compilation-window-height compilation-start-hook
-;;;;;;  compilation-mode-hook) "compile" "progmodes/compile.el" (20763
-;;;;;;  30266 231060 0))
+;;;;;;  compilation-mode-hook) "compile" "progmodes/compile.el" (20808
+;;;;;;  15152 87827 0))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4561,7 +4561,7 @@ if ARG is omitted or nil.
 ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
 ;;;;;;  conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
 ;;;;;;  conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from textmodes/conf-mode.el
 
 (autoload 'conf-mode "conf-mode" "\
@@ -5034,7 +5034,7 @@ if ARG is omitted or nil.
 ;;;***
 \f
 ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;;  (20718 41783 713368 0))
+;;;;;;  (20825 24233 991089 0))
 ;;; Generated autoloads from emacs-lisp/crm.el
 
 (autoload 'completing-read-multiple "crm" "\
@@ -5059,7 +5059,8 @@ Completion is available on a per-element basis.  For example, if the
 contents of the minibuffer are 'alice,bob,eve' and point is between
 'l' and 'i', pressing TAB operates on the element 'alice'.
 
-The return value of this function is a list of the read strings.
+The return value of this function is a list of the read strings
+with empty strings removed.
 
 See the documentation for `completing-read' for details on the arguments:
 PROMPT, TABLE, PREDICATE, REQUIRE-MATCH, INITIAL-INPUT, HIST, DEF, and
@@ -6005,7 +6006,7 @@ relevant to POS.
 ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
 ;;;;;;  desktop-load-default desktop-read desktop-remove desktop-save
 ;;;;;;  desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
-;;;;;;  "desktop.el" (20709 26818 907104 0))
+;;;;;;  "desktop.el" (20817 30120 173418 0))
 ;;; Generated autoloads from desktop.el
 
 (defvar desktop-save-mode nil "\
@@ -6170,7 +6171,7 @@ Also inhibit further loading of it.
 
 \(fn)" nil nil)
 
-(make-obsolete 'desktop-load-default 'desktop-save-mode "22.1")
+(make-obsolete 'desktop-load-default 'desktop-save-mode '"22.1")
 
 (autoload 'desktop-change-dir "desktop" "\
 Change to desktop saved in DIRNAME.
@@ -6194,7 +6195,7 @@ Revert to the last loaded desktop.
 \f
 ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
 ;;;;;;  gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
-;;;;;;  "deuglify" "gnus/deuglify.el" (20709 26818 907104 0))
+;;;;;;  "deuglify" "gnus/deuglify.el" (20791 9657 561026 0))
 ;;; Generated autoloads from gnus/deuglify.el
 
 (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\
@@ -6320,7 +6321,7 @@ This requires the external program `diff' to be in your `exec-path'.
 ;;;***
 \f
 ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "vc/diff-mode.el"
-;;;;;;  (20784 36406 653593 0))
+;;;;;;  (20814 53928 50501 0))
 ;;; Generated autoloads from vc/diff-mode.el
 
 (autoload 'diff-mode "diff-mode" "\
@@ -6725,8 +6726,8 @@ Locate SOA record and increment the serial field.
 ;;;***
 \f
 ;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe
-;;;;;;  doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20783
-;;;;;;  15545 430927 0))
+;;;;;;  doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20806
+;;;;;;  59818 347907 0))
 ;;; Generated autoloads from doc-view.el
 
 (autoload 'doc-view-mode-p "doc-view" "\
@@ -7578,8 +7579,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
 
 ;;;***
 \f
-;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20748 62911
-;;;;;;  684442 0))
+;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20813 33065
+;;;;;;  721081 0))
 ;;; Generated autoloads from cedet/ede.el
 
 (defvar global-ede-mode nil "\
@@ -7606,7 +7607,7 @@ an EDE controlled project.
 \f
 ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
 ;;;;;;  edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
-;;;;;;  "emacs-lisp/edebug.el" (20721 17977 14204 0))
+;;;;;;  "emacs-lisp/edebug.el" (20825 24233 991089 0))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -8107,8 +8108,9 @@ Also extracts information about all methods specific to this generic.
 
 ;;;***
 \f
-;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (20770 3512 176098 0))
+;;;### (autoloads (turn-on-eldoc-mode eldoc-post-insert-mode eldoc-mode
+;;;;;;  eldoc-minor-mode-string) "eldoc" "emacs-lisp/eldoc.el" (20806
+;;;;;;  59818 347907 0))
 ;;; Generated autoloads from emacs-lisp/eldoc.el
 
 (defvar eldoc-minor-mode-string (purecopy " ElDoc") "\
@@ -8131,6 +8133,15 @@ expression point is on.
 
 \(fn &optional ARG)" t nil)
 
+(autoload 'eldoc-post-insert-mode "eldoc" "\
+Toggle Eldoc-Post-Insert mode on or off.
+With a prefix argument ARG, enable Eldoc-Post-Insert mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
+\\{eldoc-post-insert-mode-map}
+
+\(fn &optional ARG)" t nil)
+
 (autoload 'turn-on-eldoc-mode "eldoc" "\
 Unequivocally turn on ElDoc mode (see command `eldoc-mode').
 
@@ -9923,7 +9934,7 @@ With ARG, insert that many delimiters.
 \f
 ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
 ;;;;;;  eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from net/eudc.el
 
 (autoload 'eudc-set-server "eudc" "\
@@ -9979,7 +9990,7 @@ This does nothing except loading eudc by autoload side-effect.
 \f
 ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
 ;;;;;;  eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;;  "eudc-bob" "net/eudc-bob.el" (20709 26818 907104 0))
+;;;;;;  "eudc-bob" "net/eudc-bob.el" (20791 9657 561026 0))
 ;;; Generated autoloads from net/eudc-bob.el
 
 (autoload 'eudc-display-generic-binary "eudc-bob" "\
@@ -10015,7 +10026,7 @@ Display a button for the JPEG DATA.
 ;;;***
 \f
 ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;;  "eudc-export" "net/eudc-export.el" (20709 26818 907104 0))
+;;;;;;  "eudc-export" "net/eudc-export.el" (20791 9657 561026 0))
 ;;; Generated autoloads from net/eudc-export.el
 
 (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\
@@ -10032,7 +10043,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record.
 ;;;***
 \f
 ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from net/eudc-hotlist.el
 
 (autoload 'eudc-edit-hotlist "eudc-hotlist" "\
@@ -10648,8 +10659,8 @@ Copy directory-local variables to the -*- line.
 
 ;;;***
 \f
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20791
+;;;;;;  9657 561026 0))
 ;;; Generated autoloads from filesets.el
 
 (autoload 'filesets-init "filesets" "\
@@ -11414,7 +11425,7 @@ and choose the directory as the fortune-file.
 ;;;***
 \f
 ;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el"
-;;;;;;  (20721 17977 14204 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from progmodes/gdb-mi.el
 
 (defvar gdb-enable-debug nil "\
@@ -11440,7 +11451,7 @@ and source-file directory for your debugger.
 
 COMMAND-LINE is the shell command for starting the gdb session.
 It should be a string consisting of the name of the gdb
-executable followed by command-line options.  The command-line
+executable followed by command line options.  The command line
 options should include \"-i=mi\" to use gdb's MI text interface.
 Note that the old \"--annotate\" option is no longer supported.
 
@@ -11869,7 +11880,7 @@ supported.
 ;;;***
 \f
 ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (20709 26818 907104 0))
+;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (20791 9657 561026 0))
 ;;; Generated autoloads from gnus/gnus-delay.el
 
 (autoload 'gnus-delay-article "gnus-delay" "\
@@ -12184,7 +12195,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 ;;;***
 \f
 ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (20709 26818 907104 0))
+;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (20820 6311 856169 0))
 ;;; Generated autoloads from gnus/gnus-msg.el
 
 (autoload 'gnus-msg-mail "gnus-msg" "\
@@ -12370,7 +12381,7 @@ See the documentation for these variables and functions for details.
 ;;;***
 \f
 ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from gnus/gnus-spec.el
 
 (autoload 'gnus-update-format "gnus-spec" "\
@@ -12392,7 +12403,7 @@ Declare back end NAME with ABILITIES as a Gnus back end.
 ;;;***
 \f
 ;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el"
-;;;;;;  (20763 30266 231060 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from gnus/gnus-sum.el
 
 (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@ -12905,8 +12916,8 @@ This is like the `&' operator of the C language.
 
 ;;;***
 \f
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20791
+;;;;;;  9657 561026 0))
 ;;; Generated autoloads from play/handwrite.el
 
 (autoload 'handwrite "handwrite" "\
@@ -13439,7 +13450,7 @@ This discards the buffer's undo information.
 ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
 ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
 ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;;  (20743 44982 104196 0))
+;;;;;;  (20825 24233 991089 0))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload 'hi-lock-mode "hi-lock" "\
@@ -13528,13 +13539,13 @@ See `hi-lock-mode' for more information on Hi-Lock mode.
 
 (autoload 'hi-lock-line-face-buffer "hi-lock" "\
 Set face of all lines containing a match of REGEXP to FACE.
-Interactively, prompt for REGEXP then FACE, using a buffer-local
-history list for REGEXP and a global history list for FACE.
+Interactively, prompt for REGEXP then FACE.  Use
+`hi-lock-read-regexp-defaults-function' to retrieve default
+value(s) of REGEXP.  Use the global history list for FACE.
 
-If Font Lock mode is enabled in the buffer, it is used to
-highlight REGEXP.  If Font Lock mode is disabled, overlays are
-used for highlighting; in this case, the highlighting will not be
-updated as you type.
+Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
+use overlays for highlighting.  If overlays are used, the
+highlighting will not update as you type.
 
 \(fn REGEXP &optional FACE)" t nil)
 
@@ -13542,13 +13553,13 @@ updated as you type.
 
 (autoload 'hi-lock-face-buffer "hi-lock" "\
 Set face of each match of REGEXP to FACE.
-Interactively, prompt for REGEXP then FACE, using a buffer-local
-history list for REGEXP and a global history list for FACE.
+Interactively, prompt for REGEXP then FACE.  Use
+`hi-lock-read-regexp-defaults-function' to retrieve default
+value(s) REGEXP.  Use the global history list for FACE.
 
-If Font Lock mode is enabled in the buffer, it is used to
-highlight REGEXP.  If Font Lock mode is disabled, overlays are
-used for highlighting; in this case, the highlighting will not be
-updated as you type.
+Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
+use overlays for highlighting.  If overlays are used, the
+highlighting will not update as you type.
 
 \(fn REGEXP &optional FACE)" t nil)
 
@@ -13556,13 +13567,16 @@ updated as you type.
 
 (autoload 'hi-lock-face-phrase-buffer "hi-lock" "\
 Set face of each match of phrase REGEXP to FACE.
-If called interactively, replaces whitespace in REGEXP with
-arbitrary whitespace and makes initial lower-case letters case-insensitive.
+Interactively, prompt for REGEXP then FACE.  Use
+`hi-lock-read-regexp-defaults-function' to retrieve default
+value(s) of REGEXP.  Use the global history list for FACE.  When
+called interactively, replace whitespace in user provided regexp
+with arbitrary whitespace and make initial lower-case letters
+case-insensitive before highlighting with `hi-lock-set-pattern'.
 
-If Font Lock mode is enabled in the buffer, it is used to
-highlight REGEXP.  If Font Lock mode is disabled, overlays are
-used for highlighting; in this case, the highlighting will not be
-updated as you type.
+Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
+use overlays for highlighting.  If overlays are used, the
+highlighting will not update as you type.
 
 \(fn REGEXP &optional FACE)" t nil)
 
@@ -13633,7 +13647,7 @@ Several variables affect how the hiding is done:
 ;;;***
 \f
 ;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from progmodes/hideshow.el
 
 (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\
@@ -14065,8 +14079,8 @@ The optional LABEL is used to label the buffer created.
 
 ;;;***
 \f
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20791
+;;;;;;  9657 561026 0))
 ;;; Generated autoloads from gnus/html2text.el
 
 (autoload 'html2text "html2text" "\
@@ -14200,7 +14214,7 @@ bound to the current value of the filter.
 ;;;***
 \f
 ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;;  "ibuffer" "ibuffer.el" (20709 26818 907104 0))
+;;;;;;  "ibuffer" "ibuffer.el" (20792 30519 8548 0))
 ;;; Generated autoloads from ibuffer.el
 
 (autoload 'ibuffer-list-buffers "ibuffer" "\
@@ -14384,7 +14398,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
 ;;;***
 \f
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload 'idlwave-mode "idlwave" "\
@@ -14518,8 +14532,8 @@ The main features of this mode are
 ;;;;;;  ido-find-alternate-file ido-find-file-other-window ido-find-file
 ;;;;;;  ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
 ;;;;;;  ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20766
-;;;;;;  59066 666084 0))
+;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20809
+;;;;;;  36008 682209 0))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -15452,7 +15466,7 @@ of `inferior-lisp-program').  Runs the hooks from
 ;;;;;;  Info-goto-emacs-key-command-node Info-goto-emacs-command-node
 ;;;;;;  Info-mode info-finder info-apropos Info-index Info-directory
 ;;;;;;  Info-on-current-buffer info-standalone info-emacs-bug info-emacs-manual
-;;;;;;  info info-other-window) "info" "info.el" (20774 566 676067
+;;;;;;  info info-other-window) "info" "info.el" (20813 33065 721081
 ;;;;;;  0))
 ;;; Generated autoloads from info.el
 
@@ -15894,7 +15908,7 @@ accessed via isearchb.
 ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
 ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
 ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;;  "international/iso-cvt.el" (20709 26818 907104 0))
+;;;;;;  "international/iso-cvt.el" (20791 9657 561026 0))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload 'iso-spanish "iso-cvt" "\
@@ -15985,7 +15999,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;***
 \f
 ;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from international/iso-transl.el
  (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
  (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap)
@@ -15997,7 +16011,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;;;;  ispell-buffer ispell-comments-and-strings ispell-region ispell-change-dictionary
 ;;;;;;  ispell-kill-ispell ispell-help ispell-pdict-save ispell-word
 ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;;  (20784 36406 653593 0))
+;;;;;;  (20787 12616 976036 0))
 ;;; Generated autoloads from textmodes/ispell.el
 
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
@@ -16230,8 +16244,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to
 
 ;;;***
 \f
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (20766
-;;;;;;  59066 666084 0))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (20824
+;;;;;;  3367 300658 0))
 ;;; Generated autoloads from iswitchb.el
 
 (defvar iswitchb-mode nil "\
@@ -16361,7 +16375,7 @@ by `jka-compr-installed'.
 
 ;;;***
 \f
-;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20763 30266 231060
+;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20793 51383 764318
 ;;;;;;  0))
 ;;; Generated autoloads from progmodes/js.el
 
@@ -16452,8 +16466,8 @@ the context of text formatting.
 
 ;;;***
 \f
-;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from international/kkc.el
 
 (defvar kkc-after-update-conversion-functions nil "\
@@ -16478,7 +16492,7 @@ and the return value is the length of the conversion.
 ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
 ;;;;;;  kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
 ;;;;;;  kmacro-call-macro kmacro-end-macro kmacro-start-macro kmacro-exec-ring-item)
-;;;;;;  "kmacro" "kmacro.el" (20709 26818 907104 0))
+;;;;;;  "kmacro" "kmacro.el" (20824 3367 300658 0))
 ;;; Generated autoloads from kmacro.el
  (global-set-key "\C-x(" 'kmacro-start-macro)
  (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16531,8 +16545,9 @@ An argument of zero means repeat until error.
 \(fn ARG)" t nil)
 
 (autoload 'kmacro-call-macro "kmacro" "\
-Call the last keyboard macro that you defined with \\[kmacro-start-macro].
+Call the keyboard MACRO that you defined with \\[kmacro-start-macro].
 A prefix argument serves as a repeat count.  Zero means repeat until error.
+MACRO defaults to `last-kbd-macro'.
 
 When you call the macro, you can call the macro again by repeating
 just the last key in the key sequence that you used to call this
@@ -16542,7 +16557,7 @@ for details on how to adjust or disable this behavior.
 To make a macro permanent so you can call it even after defining
 others, use \\[kmacro-name-last-macro].
 
-\(fn ARG &optional NO-REPEAT END-MACRO)" t nil)
+\(fn ARG &optional NO-REPEAT END-MACRO MACRO)" t nil)
 
 (autoload 'kmacro-start-macro-or-insert-counter "kmacro" "\
 Record subsequent keyboard input, defining a keyboard macro.
@@ -16675,7 +16690,7 @@ Transcribe Romanized Lao string STR to Lao character string.
 \f
 ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
 ;;;;;;  latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;;  "latexenc" "international/latexenc.el" (20709 26818 907104
+;;;;;;  "latexenc" "international/latexenc.el" (20799 169 640767
 ;;;;;;  0))
 ;;; Generated autoloads from international/latexenc.el
 
@@ -17406,7 +17421,7 @@ current header, calls `mail-complete-function' and passes prefix ARG if any.
 
 \(fn ARG)" t nil)
 
-(make-obsolete 'mail-complete 'mail-completion-at-point-function "24.1")
+(make-obsolete 'mail-complete 'mail-completion-at-point-function '"24.1")
 
 ;;;***
 \f
@@ -17667,7 +17682,7 @@ recursion depth in the minibuffer prompt.  This is only useful if
 ;;;;;;  message-forward-make-body message-forward message-recover
 ;;;;;;  message-supersede message-cancel-news message-followup message-wide-reply
 ;;;;;;  message-reply message-news message-mail message-mode) "message"
-;;;;;;  "gnus/message.el" (20723 59703 12265 0))
+;;;;;;  "gnus/message.el" (20808 15152 87827 0))
 ;;; Generated autoloads from gnus/message.el
 
 (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook)
@@ -17895,7 +17910,7 @@ redisplayed as output is inserted.
 \f
 ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
 ;;;;;;  mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
-;;;;;;  "mh-e/mh-comp.el" (20709 26818 907104 0))
+;;;;;;  "mh-e/mh-comp.el" (20787 12616 976036 0))
 ;;; Generated autoloads from mh-e/mh-comp.el
 
 (autoload 'mh-smail "mh-comp" "\
@@ -17985,8 +18000,8 @@ delete the draft message.
 
 ;;;***
 \f
-;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20709 26818
-;;;;;;  907104 0))
+;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20787 12616
+;;;;;;  976036 0))
 ;;; Generated autoloads from mh-e/mh-e.el
 
 (put 'mh-progs 'risky-local-variable t)
@@ -18003,7 +18018,7 @@ Display version information about MH-E and the MH mail handling system.
 ;;;***
 \f
 ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
-;;;;;;  "mh-e/mh-folder.el" (20709 26818 907104 0))
+;;;;;;  "mh-e/mh-folder.el" (20787 12616 976036 0))
 ;;; Generated autoloads from mh-e/mh-folder.el
 
 (autoload 'mh-rmail "mh-folder" "\
@@ -18372,7 +18387,7 @@ body) or \"attachment\" (separate from the body).
 ;;;***
 \f
 ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from gnus/mml1991.el
 
 (autoload 'mml1991-encrypt "mml1991" "\
@@ -18545,7 +18560,7 @@ To test this function, evaluate:
 
 ;;;***
 \f
-;;;### (autoloads (mpc) "mpc" "mpc.el" (20709 26818 907104 0))
+;;;### (autoloads (mpc) "mpc" "mpc.el" (20822 48073 524485 0))
 ;;; Generated autoloads from mpc.el
 
 (autoload 'mpc "mpc" "\
@@ -18844,7 +18859,7 @@ coding systems ordered by priority.
 
 \(fn FROM TO PRIORITY-LIST)" nil t)
 
-(make-obsolete 'detect-coding-with-priority 'with-coding-priority "23.1")
+(make-obsolete 'detect-coding-with-priority 'with-coding-priority '"23.1")
 
 (autoload 'detect-coding-with-language-environment "mule-util" "\
 Detect a coding system for the text between FROM and TO with LANG-ENV.
@@ -18866,7 +18881,7 @@ per-character basis, this may not be accurate.
 \f
 ;;;### (autoloads (advice-member-p advice-remove advice-add advice--add-function
 ;;;;;;  add-function advice--buffer-local advice--remove-function)
-;;;;;;  "nadvice" "emacs-lisp/nadvice.el" (20725 15032 264919 0))
+;;;;;;  "nadvice" "emacs-lisp/nadvice.el" (20785 57270 519804 0))
 ;;; Generated autoloads from emacs-lisp/nadvice.el
 
 (autoload 'advice--remove-function "nadvice" "\
@@ -18944,8 +18959,8 @@ of the piece of advice.
 ;;;### (autoloads (network-connection network-connection-to-service
 ;;;;;;  whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
 ;;;;;;  nslookup nslookup-host ping traceroute route arp netstat
-;;;;;;  iwconfig ifconfig) "net-utils" "net/net-utils.el" (20784
-;;;;;;  36406 653593 0))
+;;;;;;  iwconfig ifconfig) "net-utils" "net/net-utils.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from net/net-utils.el
 
 (autoload 'ifconfig "net-utils" "\
@@ -19330,8 +19345,8 @@ Return nil if the face cannot display a glyph for N.
 
 ;;;***
 \f
-;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20763
-;;;;;;  30266 231060 0))
+;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20813
+;;;;;;  33065 721081 0))
 ;;; Generated autoloads from nxml/nxml-mode.el
 
 (autoload 'nxml-mode "nxml-mode" "\
@@ -20937,7 +20952,7 @@ Major mode for editing PLSTORE files.
 ;;;***
 \f
 ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from textmodes/po.el
 
 (autoload 'po-find-file-coding-system "po" "\
@@ -21655,7 +21670,7 @@ Proced buffers.
 \f
 ;;;### (autoloads (profiler-find-profile-other-frame profiler-find-profile-other-window
 ;;;;;;  profiler-find-profile profiler-start) "profiler" "profiler.el"
-;;;;;;  (20752 27211 244736 501000))
+;;;;;;  (20824 3367 300658 0))
 ;;; Generated autoloads from profiler.el
 
 (autoload 'profiler-start "profiler" "\
@@ -21684,7 +21699,7 @@ Open profile FILENAME.
 ;;;***
 \f
 ;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog"
-;;;;;;  "progmodes/prolog.el" (20709 26818 907104 0))
+;;;;;;  "progmodes/prolog.el" (20791 9657 561026 0))
 ;;; Generated autoloads from progmodes/prolog.el
 
 (autoload 'prolog-mode "prolog" "\
@@ -21719,8 +21734,8 @@ With prefix argument ARG, restart the Prolog process if running before.
 
 ;;;***
 \f
-;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from ps-bdf.el
 
 (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\
@@ -21981,7 +21996,7 @@ If EXTENSION is any other symbol, it is ignored.
 ;;;***
 \f
 ;;;### (autoloads (python-mode run-python) "python" "progmodes/python.el"
-;;;;;;  (20774 51843 230245 0))
+;;;;;;  (20824 3367 300658 0))
 ;;; Generated autoloads from progmodes/python.el
 
 (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode))
@@ -22271,8 +22286,8 @@ of each directory.
 \f
 ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
 ;;;;;;  quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20764
-;;;;;;  51137 83502 0))
+;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from net/quickurl.el
 
 (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
@@ -22413,8 +22428,8 @@ matching parts of the target buffer will be highlighted.
 
 ;;;***
 \f
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20709 26818
-;;;;;;  907104 0))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20799 169
+;;;;;;  640767 0))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22785,7 +22800,7 @@ This means the number of non-shy regexp grouping constructs
 \f
 ;;;### (autoloads (remember-diary-extract-entries remember-clipboard
 ;;;;;;  remember-other-frame remember) "remember" "textmodes/remember.el"
-;;;;;;  (20748 62911 684442 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from textmodes/remember.el
 
 (autoload 'remember "remember" "\
@@ -23276,7 +23291,7 @@ Return a pattern.
 ;;;***
 \f
 ;;;### (autoloads (rng-nxml-mode-init) "rng-nxml" "nxml/rng-nxml.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20813 33065 721081 0))
 ;;; Generated autoloads from nxml/rng-nxml.el
 
 (autoload 'rng-nxml-mode-init "rng-nxml" "\
@@ -23289,7 +23304,7 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (rng-validate-mode) "rng-valid" "nxml/rng-valid.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20814 53928 50501 0))
 ;;; Generated autoloads from nxml/rng-valid.el
 
 (autoload 'rng-validate-mode "rng-valid" "\
@@ -23451,7 +23466,7 @@ for modes derived from Text mode, like Mail mode.
 ;;;***
 \f
 ;;;### (autoloads (ruby-mode) "ruby-mode" "progmodes/ruby-mode.el"
-;;;;;;  (20764 51137 83502 0))
+;;;;;;  (20792 30519 8548 0))
 ;;; Generated autoloads from progmodes/ruby-mode.el
 
 (autoload 'ruby-mode "ruby-mode" "\
@@ -23476,8 +23491,8 @@ The variable `ruby-indent-level' controls the amount of indentation.
 
 ;;;***
 \f
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20791
+;;;;;;  9657 561026 0))
 ;;; Generated autoloads from ruler-mode.el
 
 (defvar ruler-mode nil "\
@@ -23839,7 +23854,7 @@ histories, which is probably undesirable.
 ;;;***
 \f
 ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20805 38951 572072 0))
 ;;; Generated autoloads from progmodes/scheme.el
 
 (autoload 'scheme-mode "scheme" "\
@@ -23946,7 +23961,7 @@ vertically fixed relative to window boundaries during scrolling.
 ;;;***
 \f
 ;;;### (autoloads (semantic-mode semantic-default-submodes) "semantic"
-;;;;;;  "cedet/semantic.el" (20748 62911 684442 0))
+;;;;;;  "cedet/semantic.el" (20813 33065 721081 0))
 ;;; Generated autoloads from cedet/semantic.el
 
 (defvar semantic-default-submodes '(global-semantic-idle-scheduler-mode global-semanticdb-minor-mode) "\
@@ -24467,7 +24482,7 @@ To work around that, do:
 ;;;***
 \f
 ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from progmodes/sh-script.el
 (put 'sh-shell 'safe-local-variable 'symbolp)
 
@@ -24581,8 +24596,8 @@ function, `load-path-shadows-find'.
 ;;;***
 \f
 ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (20709
-;;;;;;  26818 907104 0))
+;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from shadowfile.el
 
 (autoload 'shadow-define-cluster "shadowfile" "\
@@ -24669,8 +24684,8 @@ Otherwise, one argument `-i' is passed to the shell.
 
 ;;;***
 \f
-;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20768
-;;;;;;  48184 78670 0))
+;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20791
+;;;;;;  9657 561026 0))
 ;;; Generated autoloads from gnus/shr.el
 
 (autoload 'shr-insert-document "shr" "\
@@ -25376,7 +25391,7 @@ Return a vector containing the lines from `spook-phrases-file'.
 ;;;;;;  sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
 ;;;;;;  sql-sybase sql-oracle sql-product-interactive sql-connect
 ;;;;;;  sql-mode sql-add-product-keywords) "sql" "progmodes/sql.el"
-;;;;;;  (20725 15032 264919 0))
+;;;;;;  (20797 44848 327754 0))
 ;;; Generated autoloads from progmodes/sql.el
 
 (autoload 'sql-add-product-keywords "sql" "\
@@ -25839,7 +25854,7 @@ buffer.
 ;;;***
 \f
 ;;;### (autoloads (srecode-template-mode) "srecode/srt-mode" "cedet/srecode/srt-mode.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20813 33065 721081 0))
 ;;; Generated autoloads from cedet/srecode/srt-mode.el
 
 (autoload 'srecode-template-mode "srecode/srt-mode" "\
@@ -25879,8 +25894,8 @@ GnuTLS requires a port number.
 ;;;;;;  strokes-mode strokes-list-strokes strokes-load-user-strokes
 ;;;;;;  strokes-help strokes-describe-stroke strokes-do-complex-stroke
 ;;;;;;  strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
-;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (20709
-;;;;;;  26818 907104 0))
+;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from strokes.el
 
 (autoload 'strokes-global-set-stroke "strokes" "\
@@ -26014,8 +26029,9 @@ Studlify-case the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads (global-subword-mode subword-mode) "subword" "progmodes/subword.el"
-;;;;;;  (20709 26818 907104 0))
+;;;### (autoloads (global-superword-mode superword-mode global-subword-mode
+;;;;;;  subword-mode) "subword" "progmodes/subword.el" (20822 48073
+;;;;;;  524485 0))
 ;;; Generated autoloads from progmodes/subword.el
 
 (autoload 'subword-mode "subword" "\
@@ -26068,6 +26084,45 @@ See `subword-mode' for more information on Subword mode.
 
 \(fn &optional ARG)" t nil)
 
+(autoload 'superword-mode "subword" "\
+Toggle superword movement and editing (Superword mode).
+With a prefix argument ARG, enable Superword mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil.
+
+Superword mode is a buffer-local minor mode.  Enabling it remaps
+word-based editing commands to superword-based commands that
+treat symbols as words, e.g. \"this_is_a_symbol\".
+
+The superword oriented commands activated in this minor mode
+recognize symbols as superwords to move between superwords and to
+edit them as words.
+
+\\{superword-mode-map}
+
+\(fn &optional ARG)" t nil)
+
+(defvar global-superword-mode nil "\
+Non-nil if Global-Superword mode is enabled.
+See the command `global-superword-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `global-superword-mode'.")
+
+(custom-autoload 'global-superword-mode "subword" nil)
+
+(autoload 'global-superword-mode "subword" "\
+Toggle Superword mode in all buffers.
+With prefix ARG, enable Global-Superword mode if ARG is positive;
+otherwise, disable it.  If called from Lisp, enable the mode if
+ARG is omitted or nil.
+
+Superword mode is enabled in all buffers where
+`(lambda nil (superword-mode 1))' would do it.
+See `superword-mode' for more information on Superword mode.
+
+\(fn &optional ARG)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
@@ -27418,7 +27473,7 @@ Compose Thai characters in the current buffer.
 \f
 ;;;### (autoloads (list-at-point number-at-point symbol-at-point
 ;;;;;;  sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;;  "thingatpt" "thingatpt.el" (20752 26669 524456 0))
+;;;;;;  "thingatpt" "thingatpt.el" (20822 48073 524485 0))
 ;;; Generated autoloads from thingatpt.el
 
 (autoload 'forward-thing "thingatpt" "\
@@ -27594,7 +27649,7 @@ See also docstring of the function tibetan-compose-region.
 ;;;***
 \f
 ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from textmodes/tildify.el
 
 (autoload 'tildify-region "tildify" "\
@@ -27841,7 +27896,7 @@ With ARG, turn time stamping on if and only if arg is positive.
 ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
 ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
 ;;;;;;  timeclock-mode-line-display) "timeclock" "calendar/timeclock.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from calendar/timeclock.el
 
 (autoload 'timeclock-mode-line-display "timeclock" "\
@@ -28004,7 +28059,7 @@ Its value should be an event that has a binding in MENU.
 \f
 ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
 ;;;;;;  todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;;  "todo-mode" "calendar/todo-mode.el" (20709 26818 907104 0))
+;;;;;;  "todo-mode" "calendar/todo-mode.el" (20799 169 640767 0))
 ;;; Generated autoloads from calendar/todo-mode.el
 
 (autoload 'todo-add-category "todo-mode" "\
@@ -28250,7 +28305,7 @@ changing the window configuration.
 ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
 ;;;;;;  tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
 ;;;;;;  tramp-file-name-handler tramp-syntax tramp-mode) "tramp"
-;;;;;;  "net/tramp.el" (20784 36406 653593 0))
+;;;;;;  "net/tramp.el" (20824 3367 300658 0))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-mode t "\
@@ -28479,7 +28534,7 @@ First column's text    sSs  Second column's text
 \f
 ;;;### (autoloads (type-break-guesstimate-keystroke-threshold type-break-statistics
 ;;;;;;  type-break type-break-mode) "type-break" "type-break.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from type-break.el
 
 (defvar type-break-mode nil "\
@@ -29453,8 +29508,8 @@ The buffer in question is current when this function is called.
 
 ;;;***
 \f
-;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20709 26818
-;;;;;;  907104 0))
+;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20791 9657
+;;;;;;  561026 0))
 ;;; Generated autoloads from gnus/utf7.el
 
 (autoload 'utf7-encode "utf7" "\
@@ -29827,7 +29882,7 @@ mode-specific menu.  `vc-annotate-color-map' and
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20748 62911 684442
+;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20820 6311 856169
 ;;;;;;  0))
 ;;; Generated autoloads from vc/vc-bzr.el
 
@@ -31117,7 +31172,7 @@ entry for the selected window, purge that entry from
 
 \(fn BUFFER &optional ITEM)" nil nil)
 
-(make-obsolete 'view-return-to-alist-update '"this function has no effect." "24.1")
+(make-obsolete 'view-return-to-alist-update '"this function has no effect." '"24.1")
 
 (autoload 'view-mode-enter "view" "\
 Enter View mode and set up exit from view mode depending on optional arguments.
@@ -31143,8 +31198,8 @@ Exit View mode and make the current buffer editable.
 
 ;;;***
 \f
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20762
-;;;;;;  9398 526093 0))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20799
+;;;;;;  169 640767 0))
 ;;; Generated autoloads from emulation/vip.el
 
 (autoload 'vip-setup "vip" "\
@@ -31160,7 +31215,7 @@ Turn on VIP emulation of VI.
 ;;;***
 \f
 ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20799 169 640767 0))
 ;;; Generated autoloads from emulation/viper.el
 
 (autoload 'toggle-viper-mode "viper" "\
@@ -31267,7 +31322,7 @@ this is equivalent to `display-warning', using
 ;;;***
 \f
 ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;;  (20709 26818 907104 0))
+;;;;;;  (20791 9657 561026 0))
 ;;; Generated autoloads from wdired.el
 
 (autoload 'wdired-change-to-wdired-mode "wdired" "\
@@ -31335,8 +31390,8 @@ in certain major modes.
 ;;;### (autoloads (whitespace-report-region whitespace-report whitespace-cleanup-region
 ;;;;;;  whitespace-cleanup global-whitespace-toggle-options whitespace-toggle-options
 ;;;;;;  global-whitespace-newline-mode global-whitespace-mode whitespace-newline-mode
-;;;;;;  whitespace-mode) "whitespace" "whitespace.el" (20721 17977
-;;;;;;  14204 0))
+;;;;;;  whitespace-mode) "whitespace" "whitespace.el" (20809 36008
+;;;;;;  682209 0))
 ;;; Generated autoloads from whitespace.el
 
 (autoload 'whitespace-mode "whitespace" "\
@@ -32145,8 +32200,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT.
 
 ;;;***
 \f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20709
-;;;;;;  26818 907104 0))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20797
+;;;;;;  44848 327754 0))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
@@ -32296,34 +32351,34 @@ Zone out, completely.
 ;;;;;;  "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el"
 ;;;;;;  "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
 ;;;;;;  "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
-;;;;;;  "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el"
-;;;;;;  "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-groups.el"
-;;;;;;  "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el"
-;;;;;;  "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el"
-;;;;;;  "ezimage.el" "foldout.el" "format-spec.el" "fringe.el" "generic-x.el"
-;;;;;;  "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el"
-;;;;;;  "gnus/gnus-cite.el" "gnus/gnus-cus.el" "gnus/gnus-demon.el"
-;;;;;;  "gnus/gnus-dup.el" "gnus/gnus-eform.el" "gnus/gnus-ems.el"
-;;;;;;  "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el"
-;;;;;;  "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-setup.el"
-;;;;;;  "gnus/gnus-srvr.el" "gnus/gnus-topic.el" "gnus/gnus-undo.el"
-;;;;;;  "gnus/gnus-util.el" "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el"
-;;;;;;  "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el"
-;;;;;;  "gnus/mail-prsvr.el" "gnus/mail-source.el" "gnus/mailcap.el"
-;;;;;;  "gnus/messcompat.el" "gnus/mm-archive.el" "gnus/mm-bodies.el"
-;;;;;;  "gnus/mm-decode.el" "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el"
-;;;;;;  "gnus/mml-smime.el" "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el"
-;;;;;;  "gnus/nndraft.el" "gnus/nneething.el" "gnus/nngateway.el"
-;;;;;;  "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el"
-;;;;;;  "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el"
-;;;;;;  "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el"
-;;;;;;  "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el"
-;;;;;;  "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el"
-;;;;;;  "gnus/rfc2104.el" "gnus/rfc2231.el" "gnus/rtree.el" "gnus/shr-color.el"
-;;;;;;  "gnus/sieve-manage.el" "gnus/smime.el" "gnus/spam-stat.el"
-;;;;;;  "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" "ibuf-ext.el"
-;;;;;;  "international/cp51932.el" "international/eucjp-ms.el" "international/fontset.el"
-;;;;;;  "international/iso-ascii.el" "international/ja-dic-cnv.el"
+;;;;;;  "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el"
+;;;;;;  "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el"
+;;;;;;  "eshell/esh-groups.el" "eshell/esh-io.el" "eshell/esh-module.el"
+;;;;;;  "eshell/esh-opt.el" "eshell/esh-proc.el" "eshell/esh-util.el"
+;;;;;;  "eshell/esh-var.el" "ezimage.el" "foldout.el" "format-spec.el"
+;;;;;;  "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el"
+;;;;;;  "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cus.el"
+;;;;;;  "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el"
+;;;;;;  "gnus/gnus-ems.el" "gnus/gnus-int.el" "gnus/gnus-logic.el"
+;;;;;;  "gnus/gnus-mh.el" "gnus/gnus-salt.el" "gnus/gnus-score.el"
+;;;;;;  "gnus/gnus-setup.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el"
+;;;;;;  "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el"
+;;;;;;  "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el"
+;;;;;;  "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el"
+;;;;;;  "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el"
+;;;;;;  "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el"
+;;;;;;  "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el"
+;;;;;;  "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el"
+;;;;;;  "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el"
+;;;;;;  "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el"
+;;;;;;  "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el"
+;;;;;;  "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el"
+;;;;;;  "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el"
+;;;;;;  "gnus/rfc2047.el" "gnus/rfc2104.el" "gnus/rfc2231.el" "gnus/rtree.el"
+;;;;;;  "gnus/shr-color.el" "gnus/sieve-manage.el" "gnus/smime.el"
+;;;;;;  "gnus/spam-stat.el" "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el"
+;;;;;;  "ibuf-ext.el" "international/cp51932.el" "international/eucjp-ms.el"
+;;;;;;  "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el"
 ;;;;;;  "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el"
 ;;;;;;  "international/uni-category.el" "international/uni-combining.el"
 ;;;;;;  "international/uni-comment.el" "international/uni-decimal.el"
@@ -32411,8 +32466,8 @@ Zone out, completely.
 ;;;;;;  "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el"
 ;;;;;;  "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el"
 ;;;;;;  "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el"
-;;;;;;  "w32-fns.el" "w32-vars.el" "x-dnd.el") (20784 36426 559404
-;;;;;;  170000))
+;;;;;;  "w32-fns.el" "w32-vars.el" "x-dnd.el") (20825 24458 310780
+;;;;;;  797000))
 
 ;;;***
 \f
index a6494575a431f1d42831f7f6e3ca942d6d1aacc4..9d9da27f6da7e177b2426ca35a3f896140856836 100644 (file)
@@ -192,7 +192,7 @@ numerically rather than lexicographically."
 ;; to the fact that MPD tends to disconnect fairly often, although our
 ;; constant polling often prevents disconnection.
 (defvar mpc--find-memoize (make-hash-table :test 'equal)) ;; :weakness t
-(defvar mpc-tag nil) (make-variable-buffer-local 'mpc-tag)
+(defvar-local mpc-tag nil)
 
 ;;; Support for the actual connection and MPD command execution ;;;;;;;;;;;;
 
@@ -279,7 +279,9 @@ defaults to 6600 and HOST defaults to localhost."
       (erase-buffer)
       (let* ((coding-system-for-read 'utf-8-unix)
              (coding-system-for-write 'utf-8-unix)
-             (proc (open-network-stream "MPC" (current-buffer) host port)))
+             (proc (condition-case err
+                       (open-network-stream "MPC" (current-buffer) host port)
+                     (error (user-error (error-message-string err))))))
         (when (processp mpc-proc)
           ;; Inherit the properties of the previous connection.
           (let ((plist (process-plist mpc-proc)))
@@ -1079,7 +1081,11 @@ If PLAYLIST is t or nil or missing, use the main playlist."
     (define-key map [C-mouse-2] 'mpc-select-toggle)
     (define-key map [drag-mouse-2] 'mpc-drag-n-drop)
     ;; We use `always' because a binding to t is like a binding to nil.
-    (define-key map [follow-link] 'always)
+    (define-key map [follow-link] :always)
+    ;; But follow-link doesn't apply blindly to header-line and
+    ;; mode-line clicks.
+    (define-key map [header-line follow-link] 'ignore)
+    (define-key map [mode-line follow-link] 'ignore)
     ;; Doesn't work because the first click changes the buffer, so the second
     ;; is applied elsewhere :-(
     ;; (define-key map [(double mouse-2)] 'mpc-play-at-point)
@@ -1136,17 +1142,18 @@ If PLAYLIST is t or nil or missing, use the main playlist."
   "Major mode for the features common to all buffers of MPC."
   (buffer-disable-undo)
   (setq buffer-read-only t)
-  (set (make-local-variable 'tool-bar-map) mpc-tool-bar-map)
-  (set (make-local-variable 'truncate-lines) t))
+  (setq-local tool-bar-map mpc-tool-bar-map)
+  (setq-local truncate-lines t))
 
 ;;; The mpc-status-mode buffer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-derived-mode mpc-status-mode mpc-mode "MPC-Status"
   "Major mode to display MPC status info."
-  (set (make-local-variable 'mode-line-format)
-       '("%e" mode-line-frame-identification mode-line-buffer-identification))
-  (set (make-local-variable 'window-area-factor) 3)
-  (set (make-local-variable 'header-line-format) '("MPC " mpc-volume)))
+  (setq-local mode-line-format
+              '("%e" mode-line-frame-identification
+                mode-line-buffer-identification))
+  (setq-local window-area-factor 3)
+  (setq-local header-line-format '("MPC " mpc-volume)))
 
 (defvar mpc-status-buffer-format
   '("%-5{Time} / %{Duration} %2{Disc--}%4{Track}" "%{Title}" "%{Album}" "%{Artist}" "%128{Cover}"))
@@ -1188,8 +1195,7 @@ If PLAYLIST is t or nil or missing, use the main playlist."
 
 (defvar mpc-separator-ol nil)
 
-(defvar mpc-select nil)
-(make-variable-buffer-local 'mpc-select)
+(defvar-local mpc-select nil)
 
 (defmacro mpc-select-save (&rest body)
   "Execute BODY and restore the selection afterwards."
@@ -1420,20 +1426,18 @@ when constructing the set of constraints."
 ;;; The TagBrowser mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defconst mpc-tagbrowser-all-name (propertize "*ALL*" 'face 'italic))
-(defvar mpc-tagbrowser-all-ol nil)
-(make-variable-buffer-local 'mpc-tagbrowser-all-ol)
-(defvar mpc-tag-name nil) (make-variable-buffer-local 'mpc-tag-name)
+(defvar-local mpc-tagbrowser-all-ol nil)
+(defvar-local mpc-tag-name nil)
 (defun mpc-tagbrowser-all-p ()
   (and (eq (point-min) (line-beginning-position))
        (equal mpc-tagbrowser-all-name
               (buffer-substring (point-min) (line-end-position)))))
 
 (define-derived-mode mpc-tagbrowser-mode mpc-mode '("MPC-" mpc-tag-name)
-  (set (make-local-variable 'mode-line-process) '("" mpc-tag-name))
-  (set (make-local-variable 'mode-line-format) nil)
-  (set (make-local-variable 'header-line-format) '("" mpc-tag-name ;; "s"
-                                                   ))
-  (set (make-local-variable 'buffer-undo-list) t)
+  (setq-local mode-line-process '("" mpc-tag-name))
+  (setq-local mode-line-format nil)
+  (setq-local header-line-format '("" mpc-tag-name)) ;; "s"
+  (setq-local buffer-undo-list t)
   )
 
 (defun mpc-tagbrowser-refresh ()
@@ -1539,14 +1543,14 @@ when constructing the set of constraints."
         (let ((ol (make-overlay (point) (line-beginning-position 2))))
           (overlay-put ol 'face 'region)
           (overlay-put ol 'evaporate t)
-          (set (make-local-variable 'mpc-tagbrowser-all-ol) ol))))))
+          (setq-local mpc-tagbrowser-all-ol ol))))))
 
 ;; (defvar mpc-constraints nil)
 (defun mpc-separator (active)
   ;; Place a separator mark.
   (unless mpc-separator-ol
-    (set (make-local-variable 'mpc-separator-ol)
-         (make-overlay (point) (point)))
+    (setq-local mpc-separator-ol
+                (make-overlay (point) (point)))
     (overlay-put mpc-separator-ol 'after-string
                  (propertize "\n"
                              'face '(:height 0.05 :inverse-video t))))
@@ -1605,7 +1609,7 @@ Return non-nil if a selection was deactivated."
     (let ((constraints (mpc-constraints-get-current (current-buffer)))
           (active 'all))
       ;; (unless (equal constraints mpc-constraints)
-      ;;   (set (make-local-variable 'mpc-constraints) constraints)
+      ;;   (setq-local mpc-constraints constraints)
       (dolist (cst constraints)
         (let ((vals (apply 'mpc-union
                            (mapcar (lambda (val)
@@ -1672,7 +1676,7 @@ Return non-nil if a selection was deactivated."
 ;;   '(mpc-tagbrowser-dir-hide-prefix))
 
 (define-derived-mode mpc-tagbrowser-dir-mode mpc-tagbrowser-mode '("MPC-" mpc-tag-name)
-  ;; (set (make-local-variable 'font-lock-defaults)
+  ;; (setq-local font-lock-defaults
   ;;      '(mpc-tagbrowser-dir-keywords t))
   )
 
@@ -1705,10 +1709,9 @@ Return non-nil if a selection was deactivated."
 
 ;;; Playlist management ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defvar mpc-songs-playlist nil
+(defvar-local mpc-songs-playlist nil
   "Name of the currently selected playlist, if any.
 A value of t means the main playlist.")
-(make-variable-buffer-local 'mpc-songs-playlist)
 
 (defun mpc-playlist-create (name)
   "Save current playlist under name NAME."
@@ -1775,12 +1778,14 @@ A value of t means the main playlist.")
 
 (defvar mpc-volume-map
   (let ((map (make-sparse-keymap)))
-    (define-key map [down-mouse-1] 'mpc-volume-mouse-set)
-    (define-key map [mouse-1] 'ignore)
-    (define-key map [header-line down-mouse-1] 'mpc-volume-mouse-set)
-    (define-key map [header-line mouse-1] 'ignore)
-    (define-key map [mode-line down-mouse-1] 'mpc-volume-mouse-set)
-    (define-key map [mode-line mouse-1] 'ignore)
+    ;; Bind the up-events rather than the down-event, so the
+    ;; `message' isn't canceled by the subsequent up-event binding.
+    (define-key map [down-mouse-1] 'ignore)
+    (define-key map [mouse-1] 'mpc-volume-mouse-set)
+    (define-key map [header-line mouse-1] 'mpc-volume-mouse-set)
+    (define-key map [header-line down-mouse-1] 'ignore)
+    (define-key map [mode-line mouse-1] 'mpc-volume-mouse-set)
+    (define-key map [mode-line down-mouse-1] 'ignore)
     map))
 
 (defvar mpc-volume nil) (put 'mpc-volume 'risky-local-variable t)
@@ -1945,9 +1950,9 @@ This is used so that they can be compared with `eq', which is needed for
                     (search-backward (cdr curline) nil t))
               (beginning-of-line)
             (goto-char (point-min)))
-          (set (make-local-variable 'mpc-songs-totaltime)
-               (unless (zerop totaltime)
-                 (list " " (mpc-secs-to-time totaltime))))
+          (setq-local mpc-songs-totaltime
+                      (unless (zerop totaltime)
+                        (list " " (mpc-secs-to-time totaltime))))
           ))))
   (let ((mpc-songpointer-set-visible t))
     (mpc-songpointer-refresh)))
@@ -2056,46 +2061,47 @@ This is used so that they can be compared with `eq', which is needed for
 (define-derived-mode mpc-songs-mode mpc-mode "MPC-song"
   (setq mpc-songs-format-description
         (with-temp-buffer (mpc-format mpc-songs-format 'self) (buffer-string)))
-  (set (make-local-variable 'header-line-format)
-       ;; '("MPC " mpc-volume " " mpc-current-song)
-       (list (propertize " " 'display '(space :align-to 0))
-             ;; 'mpc-songs-format-description
-             '(:eval
-               (let ((hscroll (window-hscroll)))
-                 (with-temp-buffer
-                   (mpc-format mpc-songs-format 'self hscroll)
-                   ;; That would be simpler than the hscroll handling in
-                   ;; mpc-format, but currently move-to-column does not
-                   ;; recognize :space display properties.
-                   ;; (move-to-column hscroll)
-                   ;; (delete-region (point-min) (point))
-                   (buffer-string))))))
-  (set (make-local-variable 'mode-line-format)
-       '("%e" mode-line-frame-identification mode-line-buffer-identification
-         #("   " 0 3
-           (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
-         mode-line-position
-         #("  " 0 2
-           (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
-         mpc-songs-totaltime
-         mpc-current-updating
-         #("   " 0 2
-           (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
-         (mpc--song-search
-          (:propertize
-           ("Search=\"" mpc--song-search "\"")
-           help-echo "mouse-2: kill this search"
-           follow-link t
-           mouse-face mode-line-highlight
-           keymap (keymap (mode-line keymap
-                                     (mouse-2 . mpc-songs-kill-search))))
-          (:propertize "NoSearch"
-           help-echo "mouse-2: set a search restriction"
-           follow-link t
-           mouse-face mode-line-highlight
-           keymap (keymap (mode-line keymap (mouse-2 . mpc-songs-search)))))))
-
-  ;; (set (make-local-variable 'mode-line-process)
+  (setq-local header-line-format
+              ;; '("MPC " mpc-volume " " mpc-current-song)
+              (list (propertize " " 'display '(space :align-to 0))
+                    ;; 'mpc-songs-format-description
+                    '(:eval
+                      (let ((hscroll (window-hscroll)))
+                        (with-temp-buffer
+                          (mpc-format mpc-songs-format 'self hscroll)
+                          ;; That would be simpler than the hscroll handling in
+                          ;; mpc-format, but currently move-to-column does not
+                          ;; recognize :space display properties.
+                          ;; (move-to-column hscroll)
+                          ;; (delete-region (point-min) (point))
+                          (buffer-string))))))
+  (setq-local
+   mode-line-format
+   '("%e" mode-line-frame-identification mode-line-buffer-identification
+     #("   " 0 3
+       (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
+     mode-line-position
+     #("  " 0 2
+       (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
+     mpc-songs-totaltime
+     mpc-current-updating
+     #("   " 0 2
+       (help-echo "mouse-1: Select (drag to resize)\nmouse-2: Make current window occupy the whole frame\nmouse-3: Remove current window from display"))
+     (mpc--song-search
+      (:propertize
+       ("Search=\"" mpc--song-search "\"")
+       help-echo "mouse-2: kill this search"
+       follow-link t
+       mouse-face mode-line-highlight
+       keymap (keymap (mode-line keymap
+                                 (mouse-2 . mpc-songs-kill-search))))
+      (:propertize "NoSearch"
+       help-echo "mouse-2: set a search restriction"
+       follow-link t
+       mouse-face mode-line-highlight
+       keymap (keymap (mode-line keymap (mouse-2 . mpc-songs-search)))))))
+
+  ;; (setq-local mode-line-process
   ;;      '("" ;; mpc-volume " "
   ;;        mpc-songs-totaltime
   ;;        mpc-current-updating))
@@ -2111,7 +2117,7 @@ This is used so that they can be compared with `eq', which is needed for
                              (<= (window-start win) overlay-arrow-position)
                              (< overlay-arrow-position (window-end win)))))))
     (unless (local-variable-p 'overlay-arrow-position)
-      (set (make-local-variable 'overlay-arrow-position) (make-marker)))
+      (setq-local overlay-arrow-position (make-marker)))
     (move-marker overlay-arrow-position pos)
     ;; If the arrow was visible, try to keep it that way.
     (if (and visible pos
@@ -2613,8 +2619,8 @@ This is used so that they can be compared with `eq', which is needed for
               (window-minibuffer-p))
           (ignore-errors (select-frame (make-frame mpc-frame-alist)))
         (with-current-buffer song-buf
-          (set (make-local-variable 'mpc-previous-window-config)
-               (current-window-configuration))))
+          (setq-local mpc-previous-window-config
+                      (current-window-configuration))))
       (let* ((win1 (selected-window))
              (win2 (split-window))
              (tags mpc-browser-tags))
index 86f7f338b274b82e46a8e5114b9ba0311dfc18b9..7795d9f808c7c78d031970a4e3f31564d714b366 100644 (file)
@@ -1660,23 +1660,16 @@ FILE must be a local file name on a connection identified via VEC."
 (tramp-compat-font-lock-add-keywords
  'emacs-lisp-mode '("\\<with-tramp-connection-property\\>"))
 
-(defalias 'tramp-drop-volume-letter
-  (if (memq system-type '(cygwin windows-nt))
-      (lambda (name)
-       "Cut off unnecessary drive letter from file NAME.
+(defun tramp-drop-volume-letter (name)
+  "Cut off unnecessary drive letter from file NAME.
 The functions `tramp-*-handle-expand-file-name' call `expand-file-name'
 locally on a remote file name.  When the local system is a W32 system
 but the remote system is Unix, this introduces a superfluous drive
 letter into the file name.  This function removes it."
-       (save-match-data
-         (if (string-match "\\`[a-zA-Z]:/" name)
-             (replace-match "/" nil t name)
-           name)))
-
-    'identity))
-
-(if (featurep 'xemacs)
-    (defalias 'tramp-drop-volume-letter 'identity))
+  (save-match-data
+    (if (string-match "\\`[a-zA-Z]:/" name)
+       (replace-match "/" nil t name)
+      name)))
 
 (defun tramp-cleanup (vec)
   "Cleanup connection VEC, but keep the debug buffer."
index 1bf6fe315c13fe06f36b1644582c1ac90b293b6d..895e009e619c21605fcb74018de866835b88238a 100644 (file)
 
 2012-04-01  Bernt Hansen  <bernt@norang.ca>
 
-       * org.el: Honour existing restrictions when regenerating the agenda.
+       * org.el: Honor existing restrictions when regenerating the agenda.
 
 2012-04-01  Bastien Guerry  <bzg@gnu.org>
 
diff --git a/lisp/pcmpl-x.el b/lisp/pcmpl-x.el
new file mode 100644 (file)
index 0000000..6ef592b
--- /dev/null
@@ -0,0 +1,249 @@
+;;; pcmpl-x.el --- completion for miscellaneous tools  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2013  Free Software Foundation, Inc.
+
+;; Author: Leo Liu <sdl.web@gmail.com>
+;; Keywords: processes, tools, convenience
+;; Package: pcomplete
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(eval-when-compile (require 'cl-lib))
+(require 'pcomplete)
+
+
+;;;; tlmgr - http://www.tug.org/texlive/tlmgr.html
+
+(defcustom pcmpl-x-tlmgr-program "tlmgr"
+  "Name of the tlmgr program."
+  :type 'file
+  :group 'pcomplete)
+
+(defvar pcmpl-x-tlmgr-common-options
+  '("--repository"
+    "--gui"
+    "--gui-lang"
+    "--machine-readable"
+    "--package-logfile"
+    "--pause"
+    "--persistent-downloads"
+    "--no-persistent-downloads"
+    "--no-execute-actions"
+    "--debug-translation"
+    "--help"
+    "--version"))
+
+(defvar pcmpl-x-tlmgr-actions
+  '(("help")
+    ("version")
+    ("gui")
+    ("install")
+    ("update")
+    ("backup")
+    ("restore")
+    ("remove")
+    ("repository" ("list" "add" "remove" "set"))
+    ("candidates")
+    ("option" ("show"
+               "showall"
+               "repository"
+               "formats"
+               "postcode"
+               "docfiles"
+               "srcfiles"
+               "backupdir"
+               "autobackup"
+               "sys_bin"
+               "sys_man"
+               "sys_info"
+               "desktop_integration"
+               "fileassocs"
+               "multiuser"))
+    ("conf" ("texmf" "tlmgr"))
+    ("paper"
+     ("a4" "letter" "xdvi" "pdftex" "dvips" "dvipdfmx" "dvipdfm" "context")
+     (lambda ()
+       (unless (member (pcomplete-arg 1) '("a4" "letter"))
+         (pcomplete-here* '("paper"))
+         (pcomplete-here* '("a4" "letter")))))
+    ("platform" ("list" "add" "remove"))
+    ("print-platform" ("collections" "schemes"))
+    ("arch" ("list" "add" "remove"))
+    ("print-arch" ("collections" "schemes"))
+    ("info" ("collections" "schemes"))
+    ("search")
+    ("dump-tlpdb")
+    ("check" ("files" "depends" "executes" "runfiles" "all"))
+    ("path" ("add" "remove"))
+    ("postaction" ("install" "remove") ("shortcut" "fileassoc" "script"))
+    ("uninstall")
+    ("generate" ("language"
+                 "language.dat"
+                 "language.def"
+                 "language.dat.lua"
+                 "fmtutil"))))
+
+(defvar pcmpl-x-tlmgr-options-cache (make-hash-table :size 31 :test 'equal))
+
+(defun pcmpl-x-tlmgr-action-options (action)
+  "Get the list of long options for ACTION."
+  (if (eq (gethash action pcmpl-x-tlmgr-options-cache 'missing) 'missing)
+      (with-temp-buffer
+        (when (zerop
+               (call-process pcmpl-x-tlmgr-program nil t nil action "-h"))
+          (goto-char (point-min))
+          (puthash action
+                   (cons "--help"
+                         (cl-loop while (re-search-forward
+                                         "^[ \t]+\\(--[[:alnum:]-]+=?\\)"
+                                         nil t)
+                                  collect (match-string 1)))
+                   pcmpl-x-tlmgr-options-cache)
+          (pcmpl-x-tlmgr-action-options action)))
+    (gethash action pcmpl-x-tlmgr-options-cache)))
+
+;;;###autoload
+(defun pcomplete/tlmgr ()
+  "Completion for the `tlmgr' command."
+  (while (pcomplete-match "^--" 0)
+    (pcomplete-here* pcmpl-x-tlmgr-common-options)
+    (unless (or (pcomplete-match "^--" 0)
+                (all-completions (pcomplete-arg 0) pcmpl-x-tlmgr-actions))
+      (pcomplete-here* (pcomplete-dirs-or-entries))))
+  (pcomplete-here* pcmpl-x-tlmgr-actions)
+  (let ((action (substring-no-properties (pcomplete-arg 1))))
+    (while t
+      (if (pcomplete-match "^--" 0)
+          (pcomplete-here* (pcmpl-x-tlmgr-action-options action))
+        (dolist (completions (cdr (assoc action pcmpl-x-tlmgr-actions)))
+          (cond ((functionp completions)
+                 (funcall completions))
+                ((all-completions (pcomplete-arg 0) completions)
+                 (pcomplete-here* completions))
+                (t (pcomplete-here* (pcomplete-dirs-or-entries)))))
+        (unless (pcomplete-match "^--" 0)
+          (pcomplete-here* (pcomplete-dirs-or-entries)))))))
+
+
+;;;; ack - http://betterthangrep.com
+
+;; Usage:
+;;   - To complete short options type '-' first
+;;   - To complete long options type '--' first
+;;   - Color name completion is supported following
+;;       --color-filename=, --color-match= and --color-lineno=
+;;   - Type completion is supported following --type=
+
+(defcustom pcmpl-x-ack-program
+  (file-name-nondirectory (or (executable-find "ack-grep")
+                              (executable-find "ack")
+                              "ack"))
+  "Name of the ack program."
+  :type 'file
+  :group 'pcomplete)
+
+(defvar pcmpl-x-ack-color-options
+  '("clear"
+    "reset"
+    "dark"
+    "bold"
+    "underline"
+    "underscore"
+    "blink"
+    "reverse"
+    "concealed"
+    "black"
+    "red"
+    "green"
+    "yellow"
+    "blue"
+    "magenta"
+    "on_black"
+    "on_red"
+    "on_green"
+    "on_yellow"
+    "on_blue"
+    "on_magenta"
+    "on_cyan"
+    "on_white")
+  "Color names for the `ack' command.")
+
+(defun pcmpl-x-ack-run (buffer &rest args)
+  "Run ack with ARGS and send the output to BUFFER."
+  (condition-case nil
+      (apply 'call-process (or pcmpl-x-ack-program "ack") nil buffer nil args)
+    (file-error -1)))
+
+(defun pcmpl-x-ack-short-options ()
+  "Short options for the `ack' command."
+  (with-temp-buffer
+    (let (options)
+      (when (zerop (pcmpl-x-ack-run t "--help"))
+        (goto-char (point-min))
+        (while (re-search-forward "^  -\\([^-]\\)" nil t)
+          (push (match-string 1) options))
+        (mapconcat 'identity (nreverse options) "")))))
+
+(defun pcmpl-x-ack-long-options (&optional arg)
+  "Long options for the `ack' command."
+  (with-temp-buffer
+    (let (options)
+      (when (zerop (pcmpl-x-ack-run t (or arg "--help")))
+        (goto-char (point-min))
+        (while (re-search-forward
+                "\\(?:   ?\\|, \\)\\(--\\(\\[no\\]\\)?\\([[:alnum:]-]+=?\\)\\)"
+                nil t)
+          (if (not (match-string 2))
+              (push (match-string 1) options)
+            (push (concat "--" (match-string 3)) options)
+            (push (concat "--no" (match-string 3)) options)))
+        (nreverse options)))))
+
+(defun pcmpl-x-ack-type-options ()
+  "A list of types for the `ack' command."
+  (pcmpl-x-ack-long-options "--help-types"))
+
+;;;###autoload
+(defun pcomplete/ack ()
+  "Completion for the `ack' command.
+Start an argument with '-' to complete short options and '--' for
+long options."
+  ;; No space after =
+  (while t
+    (if (pcomplete-match "^-" 0)
+        (cond
+         ((pcomplete-match "^--color-\\w+=\\(\\S-*\\)" 0)
+          (pcomplete-here* pcmpl-x-ack-color-options
+                           (pcomplete-match-string 1 0) t))
+         ((pcomplete-match "^--\\(?:no\\)?ignore-dir=\\(\\S-*\\)" 0)
+          (pcomplete-here* (pcomplete-dirs)
+                           (pcomplete-match-string 1 0) t))
+         ((pcomplete-match "^--type=\\(\\S-*\\)" 0)
+          (pcomplete-here* (mapcar (lambda (type-option)
+                                     (substring type-option 2))
+                                   (pcmpl-x-ack-type-options))
+                           (pcomplete-match-string 1 0) t))
+         ((pcomplete-match "^--" 0)
+          (pcomplete-here* (append (pcmpl-x-ack-long-options)
+                                   (pcmpl-x-ack-type-options))))
+         (t (pcomplete-opt (pcmpl-x-ack-short-options))))
+      (pcomplete-here* (pcomplete-dirs-or-entries)))))
+
+;;;###autoload
+(defalias 'pcomplete/ack-grep 'pcomplete/ack)
+
+(provide 'pcmpl-x)
+;;; pcmpl-x.el ends here
index 07192a39bef8df27bd60b482e4207267a55565ef..093a01a8602f29eb02b92588cae2f13c943caafe 100644 (file)
@@ -5,18 +5,20 @@
 ;; Author: Tomohiro Matsuyama <tomo@cx4a.org>
 ;; Keywords: lisp
 
-;; This program is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
index 368b1fc50dcec272ee603f77921165af8a40ec9c..4fc270792fc6367ac88ca9c80a2f7f75a9728afc 100644 (file)
@@ -2180,32 +2180,45 @@ comment at the start of cc-engine.el for more info."
 ;; reduced by buffer changes, and increased by invocations of
 ;; `c-state-literal-at'.  FIXME!!!
 
-(defsubst c-state-pp-to-literal (from to)
+(defsubst c-state-pp-to-literal (from to &optional not-in-delimiter)
   ;; Do a parse-partial-sexp from FROM to TO, returning either
   ;;     (STATE TYPE (BEG . END))     if TO is in a literal; or
   ;;     (STATE)                      otherwise,
   ;; where STATE is the parsing state at TO, TYPE is the type of the literal
   ;; (one of 'c, 'c++, 'string) and (BEG . END) is the boundaries of the literal.
   ;;
+  ;; Unless NOT-IN-DELIMITER is non-nil, when TO is inside a two-character
+  ;; comment opener, this is recognized as being in a comment literal.
+  ;;
   ;; Only elements 3 (in a string), 4 (in a comment), 5 (following a quote),
   ;; 7 (comment type) and 8 (start of comment/string) (and possibly 9) of
   ;; STATE are valid.
   (save-excursion
     (let ((s (parse-partial-sexp from to))
-         ty)
-      (when (or (nth 3 s) (nth 4 s))   ; in a string or comment
+         ty co-st)
+      (cond
+       ((or (nth 3 s) (nth 4 s))       ; in a string or comment
        (setq ty (cond
                  ((nth 3 s) 'string)
-                 ((eq (nth 7 s) t) 'c++)
+                 ((nth 7 s) 'c++)
                  (t 'c)))
        (parse-partial-sexp (point) (point-max)
-                           nil                  ; TARGETDEPTH
-                           nil                  ; STOPBEFORE
-                           s                    ; OLDSTATE
-                           'syntax-table))      ; stop at end of literal
-      (if ty
-         `(,s ,ty (,(nth 8 s) . ,(point)))
-       `(,s)))))
+                           nil            ; TARGETDEPTH
+                           nil            ; STOPBEFORE
+                           s              ; OLDSTATE
+                           'syntax-table) ; stop at end of literal
+       `(,s ,ty (,(nth 8 s) . ,(point))))
+
+       ((and (not not-in-delimiter)    ; inside a comment starter
+            (not (bobp))
+            (progn (backward-char)
+                   (looking-at c-comment-start-regexp)))
+       (setq ty (if (looking-at c-block-comment-start-regexp) 'c 'c++)
+             co-st (point))
+       (forward-comment 1)
+       `(,s ,ty (,co-st . ,(point))))
+
+       (t `(,s))))))
 
 (defun c-state-safe-place (here)
   ;; Return a buffer position before HERE which is "safe", i.e. outside any
@@ -3143,10 +3156,13 @@ comment at the start of cc-engine.el for more info."
   ;; This function is called from c-after-change.
 
   ;; The caches of non-literals:
-  (if (< here c-state-nonlit-pos-cache-limit)
-      (setq c-state-nonlit-pos-cache-limit here))
-  (if (< here c-state-semi-nonlit-pos-cache-limit)
-      (setq c-state-semi-nonlit-pos-cache-limit here))
+  ;; Note that we use "<=" for the possibility of the second char of a two-char
+  ;; comment opener being typed; this would invalidate any cache position at
+  ;; HERE.
+  (if (<= here c-state-nonlit-pos-cache-limit)
+      (setq c-state-nonlit-pos-cache-limit (1- here)))
+  (if (<= here c-state-semi-nonlit-pos-cache-limit)
+      (setq c-state-semi-nonlit-pos-cache-limit (1- here)))
 
   ;; `c-state-cache':
   ;; Case 1: if `here' is in a literal containing point-min, everything
@@ -4444,19 +4460,12 @@ comment at the start of cc-engine.el for more info."
           (lim (or lim (c-state-semi-safe-place pos)))
           (pp-to-lit (save-restriction
                        (widen)
-                       (c-state-pp-to-literal lim pos)))
+                       (c-state-pp-to-literal lim pos not-in-delimiter)))
           (state (car pp-to-lit))
           (lit-limits (car (cddr pp-to-lit))))
 
       (cond
        (lit-limits)
-       ((and (not not-in-delimiter)
-            (not (elt state 5))
-            (eq (char-before) ?/)
-            (looking-at "[/*]")) ; FIXME!!! use c-line/block-comment-starter.  2008-09-28.
-       ;; We're standing in a comment starter.
-       (backward-char 1)
-       (cons (point) (progn (c-forward-single-comment) (point))))
 
        (near
        (goto-char pos)
index f6c47f5bb4d3d1a28d3acab623c71e4e25b06bc7..83343b23014061a511eb5e3133f08e20b643718c 100644 (file)
@@ -2486,7 +2486,7 @@ need for `pike-font-lock-extra-types'.")
              (setq comment-beg nil))
            (setq region-beg comment-beg))
 
-      (if (eq (elt (parse-partial-sexp comment-beg (+ comment-beg 2)) 7) t)
+      (if (elt (parse-partial-sexp comment-beg (+ comment-beg 2)) 7)
          ;; Collect a sequence of doc style line comments.
          (progn
            (goto-char comment-beg)
index f0f67d01845fdca26fe69ed8ce410c1fb989b993..d1009534e49d2d86fb408bc7db90523259f94eea 100644 (file)
@@ -638,6 +638,12 @@ It makes underscores and dots word constituent chars.")
 These make `python-indent-calculate-indentation' subtract the value of
 `python-indent-offset'.")
 
+(defvar python-indent-block-enders '("return" "pass")
+  "List of words that mark the end of a block.
+These make `python-indent-calculate-indentation' subtract the
+value of `python-indent-offset' when `python-indent-context' is
+AFTER-LINE.")
+
 (defun python-indent-guess-indent-offset ()
   "Guess and set `python-indent-offset' for the current buffer."
   (interactive)
@@ -763,9 +769,13 @@ START is the buffer position where the sexp starts."
             (save-excursion
               (goto-char context-start)
               (current-indentation))
-            (if (progn
-                  (back-to-indentation)
-                  (looking-at (regexp-opt python-indent-dedenters)))
+            (if (or (save-excursion
+                      (back-to-indentation)
+                      (looking-at (regexp-opt python-indent-dedenters)))
+                    (save-excursion
+                      (python-util-forward-comment -1)
+                      (python-nav-beginning-of-statement)
+                      (member (current-word) python-indent-block-enders)))
                 python-indent-offset
               0)))
           ;; When inside of a string, do nothing. just use the current
index 24abfa8a0532b4f03187407702c9ae3c6a0106ce..6cb4713885ee90723c328026311525c380c7b192 100644 (file)
@@ -154,7 +154,7 @@ as words.
   "Do the same as `forward-word' but on subwords.
 See the command `subword-mode' for a description of subwords.
 Optional argument ARG is the same as for `forward-word'."
-  (interactive "p")
+  (interactive "^p")
   (unless arg (setq arg 1))
   (cond
    ((< 0 arg)
@@ -168,16 +168,26 @@ Optional argument ARG is the same as for `forward-word'."
 
 (put 'subword-forward 'CUA 'move)
 
-(defalias 'subword-right 'subword-forward)
-
 (defun subword-backward (&optional arg)
   "Do the same as `backward-word' but on subwords.
 See the command `subword-mode' for a description of subwords.
 Optional argument ARG is the same as for `backward-word'."
-  (interactive "p")
+  (interactive "^p")
   (subword-forward (- (or arg 1))))
 
-(defalias 'subword-left 'subword-backward)
+(defun subword-right (&optional arg)
+  "Do the same as `right-word' but on subwords."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (subword-forward arg)
+    (subword-backward arg)))
+
+(defun subword-left (&optional arg)
+  "Do the same as `left-word' but on subwords."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (subword-backward arg)
+    (subword-forward arg)))
 
 (defun subword-mark (arg)
   "Do the same as `mark-word' but on subwords.
index 4eb46ec2b017507f0c4935f1dafdc84bf7cbcde7..0fed34cfe1ee5b85467ec0e85ad4ddc01963077c 100644 (file)
@@ -3839,6 +3839,58 @@ node `(elisp)Syntax Table Internals' for a list of codes.
 If SYNTAX is nil, return nil."
   (and syntax (logand (car syntax) 65535)))
 \f
+;; Utility motion commands
+
+;;  Whitespace
+
+(defun forward-whitespace (arg)
+  "Move point to the end of the next sequence of whitespace chars.
+Each such sequence may be a single newline, or a sequence of
+consecutive space and/or tab characters.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+  (interactive "^p")
+  (if (natnump arg)
+      (re-search-forward "[ \t]+\\|\n" nil 'move arg)
+    (while (< arg 0)
+      (if (re-search-backward "[ \t]+\\|\n" nil 'move)
+         (or (eq (char-after (match-beginning 0)) ?\n)
+             (skip-chars-backward " \t")))
+      (setq arg (1+ arg)))))
+
+;;  Symbols
+
+(defun forward-symbol (arg)
+  "Move point to the next position that is the end of a symbol.
+A symbol is any sequence of characters that are in either the
+word constituent or symbol constituent syntax class.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+  (interactive "^p")
+  (if (natnump arg)
+      (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg)
+    (while (< arg 0)
+      (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move)
+         (skip-syntax-backward "w_"))
+      (setq arg (1+ arg)))))
+
+;;  Syntax blocks
+
+(defun forward-same-syntax (&optional arg)
+  "Move point past all characters with the same syntax class.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+  (interactive "^p")
+  (or arg (setq arg 1))
+  (while (< arg 0)
+    (skip-syntax-backward
+     (char-to-string (char-syntax (char-before))))
+    (setq arg (1+ arg)))
+  (while (> arg 0)
+    (skip-syntax-forward (char-to-string (char-syntax (char-after))))
+    (setq arg (1- arg))))
+
+\f
 ;;;; Text clones
 
 (defun text-clone-maintain (ol1 after beg end &optional _len)
index b8baaa077cec2dcca695aee9d3fc5cfce0586e4b..5617c31beffebce5d9868b4b00ece4452f475c01 100644 (file)
@@ -895,7 +895,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
 
 ;; Do the actual Nextstep Windows setup here; the above code just
 ;; defines functions and variables that we use now.
-(defun ns-initialize-window-system ()
+(defun ns-initialize-window-system (&optional display)
   "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing."
   (cl-assert (not ns-initialized))
 
index cf67aca83433caa7e9655945fe5089aa27b2fd08..ab776ea62574de463a87d68bbb46e6101448bac8 100644 (file)
@@ -403,7 +403,7 @@ Errors out because it is not supposed to be called, ever."
   (error "terminal-init-internal called for window-system `%s'"
         (window-system)))
 
-(defun msdos-initialize-window-system ()
+(defun msdos-initialize-window-system (&optional display)
   "Initialization function for the `pc' \"window system\"."
   (or (eq (window-system) 'pc)
       (error
index cbd08e68a392e730173d1fbf0279b438f84da7c0..b0f65812eab91944768052d75b119b72c78f03cc 100644 (file)
@@ -246,7 +246,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
 (declare-function x-parse-geometry "frame.c" (string))
 (defvar x-command-line-resources)
 
-(defun w32-initialize-window-system ()
+(defun w32-initialize-window-system (&optional display)
   "Initialize Emacs for W32 GUI frames."
   (cl-assert (not w32-initialized))
 
index 84d6ddbf46c1a4d62996d5e253830934c806a366..822df0e37e524a6e24dbe5a97ed0abfc7e656624 100644 (file)
@@ -1343,7 +1343,7 @@ Request data types in the order specified by `x-select-request-type'."
 (defvar x-display-name)
 (defvar x-command-line-resources)
 
-(defun x-initialize-window-system ()
+(defun x-initialize-window-system (&optional display)
   "Initialize Emacs for X frames and open the first connection to an X server."
   (cl-assert (not x-initialized))
 
@@ -1357,7 +1357,7 @@ Request data types in the order specified by `x-select-request-type'."
        (while (setq i (string-match "[.*]" x-resource-name))
          (aset x-resource-name i ?-))))
 
-  (x-open-connection (or x-display-name
+  (x-open-connection (or display
                         (setq x-display-name (or (getenv "DISPLAY" (selected-frame))
                                                  (getenv "DISPLAY"))))
                     x-command-line-resources
index 467ac004420ab61152ae8e62586153774e9746d5..a56554f5b666d0ab99b71092ebbbada76d02fd36 100644 (file)
@@ -1383,7 +1383,8 @@ aspell is used along with Emacs).")
                ;; Unless default dict, re-add "-d" option with the mapped value
                (if dict-name
                    (if dict-equiv
-                       (nconc ispell-args (list "-d" dict-equiv))
+                       (setq ispell-args
+                             (nconc ispell-args (list "-d" dict-equiv)))
                      (message
                       "ispell-set-spellchecker-params: Missing hunspell equiv for \"%s\". Skipping."
                       dict-name)
index 259cd772b12fbff06837737d7fe979f853b6fa07..f71a0d4647cd1006012fe29a5a2579c89fa2066c 100644 (file)
@@ -529,60 +529,11 @@ with angle brackets.")
              (buffer-substring-no-properties
               (car boundary-pair) (cdr boundary-pair))))))
 
-;;  Whitespace
-
-(defun forward-whitespace (arg)
-  "Move point to the end of the next sequence of whitespace chars.
-Each such sequence may be a single newline, or a sequence of
-consecutive space and/or tab characters.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
-  (interactive "p")
-  (if (natnump arg)
-      (re-search-forward "[ \t]+\\|\n" nil 'move arg)
-    (while (< arg 0)
-      (if (re-search-backward "[ \t]+\\|\n" nil 'move)
-         (or (eq (char-after (match-beginning 0)) ?\n)
-             (skip-chars-backward " \t")))
-      (setq arg (1+ arg)))))
-
 ;;  Buffer
 
 (put 'buffer 'end-op (lambda () (goto-char (point-max))))
 (put 'buffer 'beginning-op (lambda () (goto-char (point-min))))
 
-;;  Symbols
-
-(defun forward-symbol (arg)
-  "Move point to the next position that is the end of a symbol.
-A symbol is any sequence of characters that are in either the
-word constituent or symbol constituent syntax class.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
-  (interactive "p")
-  (if (natnump arg)
-      (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg)
-    (while (< arg 0)
-      (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move)
-         (skip-syntax-backward "w_"))
-      (setq arg (1+ arg)))))
-
-;;  Syntax blocks
-
-(defun forward-same-syntax (&optional arg)
-  "Move point past all characters with the same syntax class.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
-  (interactive "p")
-  (or arg (setq arg 1))
-  (while (< arg 0)
-    (skip-syntax-backward
-     (char-to-string (char-syntax (char-before))))
-    (setq arg (1+ arg)))
-  (while (> arg 0)
-    (skip-syntax-forward (char-to-string (char-syntax (char-after))))
-    (setq arg (1- arg))))
-
 ;;  Aliases
 
 (defun word-at-point ()
index d0912cb719cf69111455fa1a938e3a08b173f8cb..d72c1f7f8591b0c77937112d47df732adaf66f66 100644 (file)
@@ -653,7 +653,7 @@ REV non-nil gets an error."
 
 (defun vc-bzr-revert (file &optional contents-done)
   (unless contents-done
-    (with-temp-buffer (vc-bzr-command "revert" t 0 file))))
+    (with-temp-buffer (vc-bzr-command "revert" t 0 file "--no-backup"))))
 
 (defvar log-view-message-re)
 (defvar log-view-file-re)
index c32155f54302d3e0ac7aa848e217b4b9fbda9279..68625e06acbd3dff4208df16771f4ef2a9084528 100644 (file)
@@ -2243,7 +2243,8 @@ resultant list will be returned."
                  (whitespace-space-after-tab-regexp 'space)))
               1 whitespace-space-after-tab t)))))
     (font-lock-add-keywords nil whitespace-font-lock-keywords t)
-    (font-lock-fontify-buffer)))
+    (when font-lock-mode
+      (font-lock-fontify-buffer))))
 
 
 (defun whitespace-color-off ()
@@ -2253,7 +2254,8 @@ resultant list will be returned."
     (remove-hook 'post-command-hook #'whitespace-post-command-hook t)
     (remove-hook 'before-change-functions #'whitespace-buffer-changed t)
     (font-lock-remove-keywords nil whitespace-font-lock-keywords)
-    (font-lock-fontify-buffer)))
+    (when font-lock-mode
+      (font-lock-fontify-buffer))))
 
 
 (defun whitespace-trailing-regexp (limit)
index 3d7993dbec8bb5af429f497842b7ce0bf8bfde37..a866ff670b124c480a3c48ed924884ef77d41356 100644 (file)
@@ -33,8 +33,9 @@ AC_DEFUN([gl_STDALIGN_H],
             #if \
                 (__GNUC__ || __IBMC__ || __IBMCPP__ \
                  || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
-              int alignas (8) alignas_int = 1;
-              char test_alignas[_Alignof (alignas_int) == 8 ? 1 : -1];
+              struct alignas_test { char c; char alignas (8) alignas_8; };
+              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
+                                ? 1 : -1];
             #endif
           ]])],
        [gl_cv_header_working_stdalign_h=yes],
index 03bd86a3216769d39eaf88a9a5e4582c9137c9a7..3d2c0e172ffe724501a100e022a1824236245259 100644 (file)
@@ -1,3 +1,31 @@
+2013-04-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * README: A better documentation of ddeclient.exe.
+
+       * README.W32: A better documentation of ddeclient.exe.
+
+       * paths.h (PATH_EXEC): Add nt/oo-spd/i386 and nt/oo/i386
+       subdirectories.
+
+2013-03-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * inc/ms-w32.h (TERM_HEADER): Remove definition.
+
+       * config.nt (TERM_HEADER): Move the definition to "w32term.h" from
+       ms-w32.h.
+
+2013-03-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * inc/ms-w32.h (copysign) [_MSC_VER]: Redirect to _copysign.
+
+       * config.nt (HAVE_COPYSIGN): Define.
+
+2013-03-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * config.nt: Sync with autogen/config.in.
+       (HAVE_XKBGETKEYBOARD): Remove.
+       (HAVE_XKB): New macro.
+
 2013-03-27  Eli Zaretskii  <eliz@gnu.org>
 
        * makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
index c112c828fca0c6afd2dcca74eedf3dd892f32cf6..b62dc0b746bf7bf326d05a5b00e64fb0dcd6899f 100644 (file)
--- a/nt/README
+++ b/nt/README
   + ebrowse.exe - A tool for generating C++ browse information.  See the
     `Ebrowse' manual.
 
-  + ddeclient.exe - A tool for interacting with DDE servers.
+  + ddeclient.exe - A tool for interacting with DDE servers.  To be
+    invoked as "ddeclient SERVER [TOPIC]", where SERVER is the DDE
+    server name, and sends each line of its standard input to the DDE
+    server using the DdeClientTransaction API.  This program is
+    supposed to be invoked via the 'call-process-region' Emacs
+    primitive.
 
   + hexl.exe - A tool for converting files to hex dumps.  See the
     `Editing Binary Files' node of the Emacs manual.
index 3e51b30af50a19bbad97f193cc6e3d01766945bd..19c148bbf0b554afa2a5a958750f9ae9bfe61158 100644 (file)
@@ -114,7 +114,12 @@ See the end of the file for license conditions.
   + ebrowse.exe - A tool for generating C++ browse information.  See the
     `Ebrowse' manual.
 
-  + ddeclient.exe - A tool for interacting with DDE servers.
+  + ddeclient.exe - A tool for interacting with DDE servers.  To be
+    invoked as "ddeclient SERVER [TOPIC]", where SERVER is the DDE
+    server name, and sends each line of its standard input to the DDE
+    server using the DdeClientTransaction API.  This program is
+    supposed to be invoked via the 'call-process-region' Emacs
+    primitive.
 
   + hexl.exe - A tool for producing hex dumps of binary files.  See the
     `Editing Binary Files' node of the Emacs manual.
index 3d606258fc097cdcfc01f7b262a23c36cef49613..347a1b07dd419acc0c7fa503abfaae252a4c4c07 100644 (file)
@@ -251,7 +251,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #undef HAVE_COM_ERR_H
 
 /* Define to 1 if you have the `copysign' function. */
-#undef HAVE_COPYSIGN
+#define HAVE_COPYSIGN 1
 
 /* Define to 1 if data_start is the address of the start of the main data
    segment. */
@@ -1113,8 +1113,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define to 1 if XIM is available */
 #undef HAVE_XIM
 
-/* Define to 1 if you have the XkbGetKeyboard function. */
-#undef HAVE_XKBGETKEYBOARD
+/* Define to 1 if you have the Xkb extension. */
+#undef HAVE_XKB
 
 /* Define to 1 if you have the Xpm library (-lXpm). */
 #undef HAVE_XPM
@@ -1370,7 +1370,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #undef TERMINFO
 
 /* Define to the header for the built-in window system. */
-#undef TERM_HEADER
+#define TERM_HEADER "w32term.h"
 
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #define TIME_WITH_SYS_TIME 1
index cd183c917c459c74a57c64e9d1e80959910115ad..c67f07b99b3707092a006474631403d91646d3c1 100644 (file)
@@ -258,6 +258,7 @@ extern int sys_unlink (const char *);
 typedef int pid_t;
 #define snprintf  _snprintf
 #define strtoll   _strtoi64
+#define copysign  _copysign
 #endif
 #define isatty    _isatty
 #define _longjmp  longjmp
@@ -536,7 +537,6 @@ extern void _DebPrint (const char *fmt, ...);
 #pragma warning(disable:4308)
 #endif
 #endif
-#define TERM_HEADER "w32term.h"
 
 
 /* ============================================================ */
index e9601a7ce3284a5e8ed9ca8086447d57328c4fcb..e3fc3f1e8ab94fa8fe98ddac6298ba5d8c5908be 100644 (file)
@@ -43,7 +43,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    variable exec-directory.  exec-directory is used for finding
    executables and other architecture-dependent files.  */
 /* #define PATH_EXEC "/usr/local/lib/emacs/etc" */
-#define PATH_EXEC "%emacs_dir%/bin;%emacs_dir%/lib-src/oo-spd/i386;%emacs_dir%/lib-src/oo/i386"
+#define PATH_EXEC "%emacs_dir%/bin;%emacs_dir%/lib-src/oo-spd/i386;%emacs_dir%/lib-src/oo/i386;%emacs_dir%/nt/oo-spd/i386;%emacs_dir%/nt/oo/i386"
 
 /* Where Emacs should look for its architecture-independent data
    files, like the NEWS file.  The lisp variable data-directory
index 6698cfe0fcfc4ef82616b9b5905de13b05a38049..cb6930f9acc3c0d655c4106ce7b51129fd454bd0 100644 (file)
@@ -1,3 +1,268 @@
+2013-04-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
+
+2013-04-07  Romain Francoise  <romain@orebokech.com>
+
+       Ignore additional platform-specific ACL errors (Bug#13702).
+       * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
+       (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
+
+2013-03-31  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
+       f->output_data.ns.
+
+2013-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
+       This bug was introduced by my 2013-02-25 change that simplified
+       data_start configuration.  Without this change, on GNU/Linux
+       an Emacs configured with --enable-profiling fails immediately
+       due to a profiler signal.
+       * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
+       with these flags.  On platforms where special flags are needed
+       when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
+       (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
+       (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
+
+2013-04-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Get rid of some platform-specific functions examining window
+       system and its capabilities.  This is a partial rework of the
+       2013-04-05 change.
+       * lisp.h (have_menus_p): Remove prototype.  This function is
+       replaced with platform-independent window_system_available.
+       (check_window_system): Move to...
+       * frame.h (decode_window_system_frame, window_system_available):
+       ...here, add new prototypes.
+       * frame.c (window_system_available, decode_window_system_frame):
+       New functions.
+       (check_window_system): Platform-independent now.
+       * xterm.h (x_in_use): Remove declaration.
+       (check_x_frame):
+       * w32term.h (check_x_frame):
+       * nsterm.h (check_x_frame): Remove prototypes.  This function
+       is replaced with platform-independent decode_window_system_frame.
+       * msdos.c (have_menus_p): Remove.
+       * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
+       Remove platform-specific functions.  Use check_window_system,
+       decode_window_system_frame and check_ns_display_info where
+       appropriate.  Minor style and comment tweaks.
+       * w32fns.c (w32_in_use, check_window_system, have_menus_p)
+       (check_x_frame): Likewise.
+       * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
+       Likewise.
+       * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
+       * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
+       * xmenu.c, xselect.c: All related users changed.
+
+2013-04-03  Kenichi Handa  <handa@gnu.org>
+
+       The following changes is to optimize the code for reading UTF-8
+       files.
+
+       * coding.c (check_ascii): Renamed from detect_ascii.  Return value
+       changed.  Check EOL format.  Do not call adjust_coding_eol_type
+       here.
+       (check_utf_8): New function.
+       (adjust_coding_eol_type): Do nothing if already adjusted.
+       (detect_coding): Compare the return value of check_ascii with
+       coding->src_bytes.  Call adjust_coding_eol_type if necessary.
+       (decode_coding_gap): Optimize for valid UTF-8.
+
+2013-03-21  Kenichi Handa  <handa@gnu.org>
+
+       * coding.c (syms_of_coding): Cancel previous change.
+
+       * insdel.c (insert_from_gap): Fix previous change.
+
+2013-04-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Consistently use platform-specific function to detect window system.
+       * lisp.h (check_window_system): New prototype.  This function is
+       going to replace check_x, check_w32 and check_ns.
+       (have_menus_p): Mention msdos.c in comment.
+       * fontset.c (check_window_system_func): Remove.  Adjust all users.
+       * fontset.h (check_window_system_func): Remove prototype.
+       * nsterm.h (check_ns):
+       * xterm.h (check_x):
+       * w32term.h (check_w32): Likewise.
+       * menu.c (Fx_popup_menu): Use check_window_system.
+       * msdos.c (check_window_system): Define for MS-DOS.
+       * nsfns.m (check_window_system): Define for NS.  Adjust all users.
+       * w32fns.c (check_window_system): Likewise for MS-Windows.
+       * xfns.c (check_window_system): Likewise for X.
+       * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
+       * xfaces.c, xmenu.c: Use check_window_system where appropriate.
+
+2013-04-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer < to > in range checks such as 0 <= i && i < N.
+       This makes it easier to visualize quantities on a number line.
+       This patch doesn't apply to all such range checks,
+       only to the range checks affected by the 2013-03-24 change.
+       This patch reverts most of the 2013-03-24 change.
+       * alloc.c (xpalloc, Fgarbage_collect):
+       * ccl.c (ccl_driver, resolve_symbol_ccl_program):
+       * character.c (string_escape_byte8):
+       * charset.c (read_hex):
+       * data.c (cons_to_unsigned):
+       * dispnew.c (update_frame_1):
+       * doc.c (Fsubstitute_command_keys):
+       * doprnt.c (doprnt):
+       * editfns.c (hi_time, decode_time_components):
+       * fileio.c (file_offset):
+       * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
+       * font.c (font_intern_prop):
+       * frame.c (x_set_alpha):
+       * gtkutil.c (get_utf8_string):
+       * indent.c (check_display_width):
+       * keymap.c (Fkey_description):
+       * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
+       * lread.c (read1):
+       * minibuf.c (read_minibuf_noninteractive):
+       * process.c (wait_reading_process_output):
+       * search.c (Freplace_match):
+       * window.c (get_phys_cursor_glyph):
+       * xdisp.c (redisplay_internal):
+       * xsmfns.c (smc_save_yourself_CB):
+       Prefer < to > for range checks.
+       * dispnew.c (sit_for): Don't mishandle NaNs.
+       This fixes a bug introduced in the 2013-03-24 change.
+       * editfns.c (decode_time_components): Don't hoist comparison.
+       This fixes another bug introduced in the 2013-03-24 change.
+
+2013-03-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (struct frame): Drop scroll_bottom_vpos
+       member becaue all real users are dead long ago.
+       (FRAME_SCROLL_BOTTOM_VPOS): Remove.
+       * xdisp.c (redisplay_internal): Adjust user.
+
+2013-03-30  Darren Ho  <darren.hoo@gmail.com>  (tiny change)
+
+       * nsmenu.m (showAtX:Y:for:): setLevel to
+       NSPopUpMenuWindowLevel (Bug#13998).
+
+2013-03-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
+       (ns_check_pending_open_menu): Declare.
+
+       * nsmenu.m (ns_update_menubar): Correct NSTRACE.
+       (x_activate_menubar): Update the menu with title that matches
+       ns_get_pending_menu_title, and call
+       ns_check_pending_openmenu (Bug#12698).
+       (menuWillOpen:): New method.
+       (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
+
+       * nsterm.m (menu_will_open_state, menu_mouse_point)
+       (menu_pending_title): New varaibles.
+       (ns_get_pending_menu_title, ns_check_menu_open)
+       (ns_check_pending_open_menu): New functions.
+
+2013-03-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * indent.c (current_column_bol_cache): Remove leftover which is not
+       used in Fmove_to_column any more.
+       (current_column, scan_for_column): Adjust users.
+       * keyboard.c (last_point_position_buffer, last_point_position_window):
+       Remove leftovers which are not used for recording undo any more.
+       (command_loop_1, syms_of_keyboard): Adjust users.
+       * xdisp.c (last_max_ascent): Remove leftover which is not used in
+       redisplay_window any more.
+       (move_it_to): Adjust user.
+
+2013-03-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
+       Update dependencies.
+
+2013-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
+       (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
+       forward references.
+
+2013-03-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (struct window): Replace hchild, vchild and buffer slots
+       with the only contents slot.  This is possible because each valid
+       window may have either the child window (in vertical or horizontal
+       combination) or buffer to display (for the leaf window).  Using that,
+       a lof of operations to traverse and/or change window hierarchies may
+       be simplified.  New member horizontal is used to distinguish between
+       horizontal and vertical combinations of internal windows.
+       (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
+       (WINDOW_VERTICAL_COMBINATION_P): New macros.
+       (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
+       * window.c (wset_hchild, wset_vchild): Remove.  Adjust all users.
+       Use contents slot, not buffer, where appropriate.
+       (wset_combination): New function.
+       (wset_buffer): Add eassert.
+       (Fframe_first_window): Simplify the loop reaching first window.
+       (Fwindow_buffer): Use WINDOW_LEAF_P.
+       (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
+       (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
+       (unshow_buffer): Convert initial debugging check to eassert.
+       (replace_window, recombine_windows, Fdelete_other_windows_internal)
+       (make_parent_window, window_resize_check, window_resize_apply)
+       (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
+       (Fset_window_configuration, delete_all_child_windows, save_window_save):
+       Adjust to match struct window changes.
+       (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
+       (mark_window_cursors_off, count_windows, get_leaf_windows)
+       (foreach_window_1): Simplify the loop.
+       * alloc.c (mark_object): Do not check for the leaf window because
+       internal windows has no glyph matrices anyway.
+       * dispnew.c (clear_window_matrices, showing_window_margins_p)
+       (allocate_matrices_for_window_redisplay, fake_current_matrices)
+       (allocate_matrices_for_frame_redisplay, free_window_matrices)
+       (build_frame_matrix_from_window_tree, mirror_make_current)
+       (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
+       (update_window_tree, set_window_update_flags): Simplify the loop.
+       (sync_window_with_frame_matrix_rows): Enforce live window.
+       Use contents slot, not buffer, where appropriate.
+       * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
+       and WINDOW_HORIZONTAL_COMBINATION_P.
+       (make_frame_visible_1): Simplify the loop.
+       Use contents slot, not buffer, where appropriate.
+       * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
+       (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
+       (expose_window_tree): Likewise.
+       Use contents slot, not buffer, where appropriate.
+       * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
+       to avoid deleted windows.  Use contents slot instead of buffer.
+       * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
+       * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
+       * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
+       * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
+
+2013-03-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
+       identify the reasons for assertion violations in bug#14062 and
+       similar ones.
+       (Fx_show_tip): Fix compilation error under
+       "--enable-check-lisp-object-type".  (Bug#14073)
+
+       * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
+       Reported by <rzl24ozi@gmail.com>.
+
+2013-03-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (with_echo_area_buffer_unwind_data): Save window
+       start marker...
+       (unwind_with_echo_area_buffer): ...to restore it here.  This
+       is needed to ensure that...
+       (redisplay_window): ...both window markers are valid here,
+       which is verified by eassert.
+       * editfns.c (save_excursion_save): Do not assume that
+       selected_window always displays the buffer.
+       * buffer.c (Fbuffer_swap_text): Adjust window start markers.
+       Fix comment.
+
 2013-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
 
        * coding.c (decode_coding_gap): Fix typo caught by static checking.
 
-2013-03-15  handa  <handa@gnu.org>
+2013-03-15  Kenichi Handa  <handa@gnu.org>
 
        * insdel.c (insert_from_gap): New arg text_at_gap_tail.
        (adjust_after_replace): Make it back to static.  Delete the third
index 508a2a9dd4c19e3fae4840de5b40d32d77765608..57c1cbf1299ba3f1aa881222e7b492656e818414 100644 (file)
 
 2006-10-07  Ralf Angeli  <angeli@caeruleus.net>
 
-       * w32fns.c (w32_createwindow): Honour left and top positions if
+       * w32fns.c (w32_createwindow): Honor left and top positions if
        supplied explicitly.
 
 2006-10-06  Kim F. Storm  <storm@cua.dk>
index 93d65867fa782fb8d96e592b3d1ab12058b5b52b..ac09d41858d0bd25b2e99b2bdd9ad13b48c9b537 100644 (file)
@@ -327,7 +327,7 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \
   $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \
   $(WEBKIT_CFLAGS) $(CLUTTER_CFLAGS) $(GIR_CFLAGS) \
   $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \
-  $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) $(PROFILING_CFLAGS) \
+  $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \
   $(LIBGNUTLS_CFLAGS) \
   $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS)
 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
@@ -335,10 +335,10 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
 .SUFFIXES: .m
 .c.o:
        @$(MKDEPDIR)
-       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(PROFILING_CFLAGS) $<
 .m.o:
        @$(MKDEPDIR)
-       $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
+       $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $(PROFILING_CFLAGS) $<
 
 ## lastfile must follow all files whose initialized data areas should
 ## be dumped as pure by dump-emacs.
index ea833c62b9408a1e71b2a74cfa486188df9eda41..7a56c78e2ba4b933acfdc03c915cda80edae28bb 100644 (file)
@@ -779,7 +779,7 @@ xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min,
   ptrdiff_t nitems_incr_max = n_max - n;
   ptrdiff_t incr = max (nitems_incr_min, min (incr_estimate, nitems_incr_max));
 
-  eassert (item_size > 0 && nitems_incr_min > 0 && n >= 0 && nitems_max >= -1);
+  eassert (0 < item_size && 0 < nitems_incr_min && 0 <= n && -1 <= nitems_max);
   if (! pa)
     *nitems = 0;
   if (nitems_incr_max < incr)
@@ -5376,7 +5376,7 @@ See Info node `(elisp)Garbage Collection'.  */)
       double tot = total_bytes_of_live_objects ();
 
       tot *= XFLOAT_DATA (Vgc_cons_percentage);
-      if (tot > 0)
+      if (0 < tot)
        {
          if (tot < TYPE_MAXIMUM (EMACS_INT))
            gc_relative_threshold = tot;
@@ -5810,14 +5810,13 @@ mark_object (Lisp_Object arg)
          case PVEC_WINDOW:
            {
              struct window *w = (struct window *) ptr;
-             bool leaf = NILP (w->hchild) && NILP (w->vchild);
 
              mark_vectorlike (ptr);
 
-             /* Mark glyphs for leaf windows.  Marking window
+             /* Mark glyph matrices, if any.  Marking window
                 matrices is sufficient because frame matrices
                 use the same glyph memory.  */
-             if (leaf && w->current_matrix)
+             if (w->current_matrix)
                {
                  mark_glyph_matrix (w->current_matrix);
                  mark_glyph_matrix (w->desired_matrix);
index aa3fcf8c234026fe9d06331b183b672f1ded1a5a..8728b4188129746e00ec40cf0e93369ee7946172 100644 (file)
@@ -1769,7 +1769,7 @@ cleaning up all windows currently displaying the buffer to be killed. */)
      since anything can happen within do_yes_or_no_p.  */
 
   /* Don't kill the minibuffer now current.  */
-  if (EQ (buffer, XWINDOW (minibuf_window)->buffer))
+  if (EQ (buffer, XWINDOW (minibuf_window)->contents))
     return Qnil;
 
   /* When we kill an ordinary buffer which shares it's buffer text
@@ -1820,7 +1820,7 @@ cleaning up all windows currently displaying the buffer to be killed. */)
   /* If the buffer now current is shown in the minibuffer and our buffer
      is the sole other buffer give up.  */
   XSETBUFFER (tem, current_buffer);
-  if (EQ (tem, XWINDOW (minibuf_window)->buffer)
+  if (EQ (tem, XWINDOW (minibuf_window)->contents)
       && EQ (buffer, Fother_buffer (buffer, Qnil, Qnil)))
     return Qnil;
 
@@ -2394,8 +2394,9 @@ DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
           BUF_MARKERS(buf) should either be for `buf' or dead.  */
        eassert (!m->buffer);
   }
-  { /* Some of the C code expects that w->buffer == w->pointm->buffer.
-       So since we just swapped the markers between the two buffers, we need
+  { /* Some of the C code expects that both window markers of a
+       live window points to that window's buffer.  So since we
+       just swapped the markers between the two buffers, we need
        to undo the effect of this swap for window markers.  */
     Lisp_Object w = Fselected_window (), ws = Qnil;
     Lisp_Object buf1, buf2;
@@ -2405,12 +2406,19 @@ DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
       {
        ws = Fcons (w, ws);
        if (MARKERP (XWINDOW (w)->pointm)
-           && (EQ (XWINDOW (w)->buffer, buf1)
-               || EQ (XWINDOW (w)->buffer, buf2)))
+           && (EQ (XWINDOW (w)->contents, buf1)
+               || EQ (XWINDOW (w)->contents, buf2)))
          Fset_marker (XWINDOW (w)->pointm,
                       make_number
-                      (BUF_BEGV (XBUFFER (XWINDOW (w)->buffer))),
-                      XWINDOW (w)->buffer);
+                      (BUF_BEGV (XBUFFER (XWINDOW (w)->contents))),
+                      XWINDOW (w)->contents);
+       if (MARKERP (XWINDOW (w)->start)
+           && (EQ (XWINDOW (w)->contents, buf1)
+               || EQ (XWINDOW (w)->contents, buf2)))
+         Fset_marker (XWINDOW (w)->start,
+                      make_number
+                      (XBUFFER (XWINDOW (w)->contents)->last_window_start),
+                      XWINDOW (w)->contents);
        w = Fnext_window (w, Qt, Qt);
       }
   }
@@ -3893,7 +3901,7 @@ modify_overlay (struct buffer *buf, ptrdiff_t start, ptrdiff_t end)
   if (buffer_window_count (buf) > 0)
     {
       /* ... it's visible in other window than selected,  */
-      if (buf != XBUFFER (XWINDOW (selected_window)->buffer))
+      if (buf != XBUFFER (XWINDOW (selected_window)->contents))
        windows_or_buffers_changed = 1;
       /* ... or if we modify an overlay at the end of the buffer
         and so we cannot be sure that window end is still valid.  */
index c3b3f5486c422c2b9e2f1a5bee405fdc8da0543e..8fec18296a66f27c68bf43c8c280755ef029da9b 100644 (file)
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -1668,7 +1668,7 @@ ccl_driver (struct ccl_program *ccl, int *source, int *destination, int src_size
                  }
                map = XCDR (map);
                if (! (VECTORP (map)
-                      && ASIZE (map) > 0
+                      && 0 < ASIZE (map)
                       && INTEGERP (AREF (map, 0))
                       && XINT (AREF (map, 0)) <= op
                       && op - XINT (AREF (map, 0)) + 1 < ASIZE (map)))
@@ -1867,7 +1867,7 @@ resolve_symbol_ccl_program (Lisp_Object ccl)
       return Qnil;
     }
 
-  if (! (XINT (AREF (result, CCL_HEADER_BUF_MAG)) >= 0
+  if (! (0 <= XINT (AREF (result, CCL_HEADER_BUF_MAG))
         && ASCENDING_ORDER (0, XINT (AREF (result, CCL_HEADER_EOF)),
                             ASIZE (ccl))))
     return Qnil;
index 5a06c7f4d6cfe0082c947022190f4bb1ded65b71..b2caaa290af1d5d1eacaded40af19d710c26c09c 100644 (file)
@@ -833,8 +833,8 @@ string_escape_byte8 (Lisp_Object string)
 
   if (multibyte)
     {
-      if (byte8_count > (MOST_POSITIVE_FIXNUM - nchars) / 3
-         || byte8_count > (STRING_BYTES_BOUND - nbytes) / 2)
+      if ((MOST_POSITIVE_FIXNUM - nchars) / 3 < byte8_count
+         || (STRING_BYTES_BOUND - nbytes) / 2 < byte8_count)
        string_overflow ();
 
       /* Convert 2-byte sequence of byte8 chars to 4-byte octal.  */
@@ -843,7 +843,7 @@ string_escape_byte8 (Lisp_Object string)
     }
   else
     {
-      if (byte8_count > (STRING_BYTES_BOUND - nbytes) / 3)
+      if ((STRING_BYTES_BOUND - nbytes) / 3 < byte8_count)
        string_overflow ();
 
       /* Convert 1-byte sequence of byte8 chars to 4-byte octal.  */
index 3d43d81877fb967810fe21ca5591c44e8ecfb1be..fdb8eebde8b1d3cd712ea70a7490f20035e493d9 100644 (file)
@@ -447,7 +447,7 @@ read_hex (FILE *fp, bool *eof, bool *overflow)
   n = 0;
   while (c_isxdigit (c = getc (fp)))
     {
-      if (n > UINT_MAX >> 4)
+      if (UINT_MAX >> 4 < n)
        *overflow = 1;
       n = ((n << 4)
           | (c - ('0' <= c && c <= '9' ? '0'
index cb81375a043ee31f470a38877695f0a5e69249da..f9799035b3c293b9c02b4106f81373fe25bc4509 100644 (file)
@@ -6072,17 +6072,18 @@ complement_process_encoding_system (Lisp_Object coding_system)
 #define EOL_SEEN_CRLF  4
 
 
-static Lisp_Object adjust_coding_eol_type (struct coding_system *coding, int eol_seen);
+static Lisp_Object adjust_coding_eol_type (struct coding_system *coding,
+                                          int eol_seen);
 
 
-/* Return true iff all the source bytes are ASCII.
+/* Return the number of ASCII characters at the head of the source.
    By side effects, set coding->head_ascii and coding->eol_seen.  The
    value of coding->eol_seen is "logical or" of EOL_SEEN_LF,
    EOL_SEEN_CR, and EOL_SEEN_CRLF, but the value is reliable only when
    all the source bytes are ASCII.  */
 
-static bool
-detect_ascii (struct coding_system *coding)
+static int
+check_ascii (struct coding_system *coding)
 {
   const unsigned char *src, *end;
   Lisp_Object eol_type = CODING_ID_EOL_TYPE (coding->id);
@@ -6096,21 +6097,20 @@ detect_ascii (struct coding_system *coding)
   src = coding->source;
   end = src + coding->src_bytes;
 
-  if (inhibit_eol_conversion)
+  if (inhibit_eol_conversion
+      || eol_seen != EOL_SEEN_NONE)
     {
       /* We don't have to check EOL format.  */
       while (src < end && !( *src & 0x80)) src++;
-      eol_seen = EOL_SEEN_LF;
-      adjust_coding_eol_type (coding, eol_seen);
-    }
-  else if (eol_seen != EOL_SEEN_NONE)
-    {
-      /* We don't have to check EOL format either.  */
-      while (src < end && !(*src & 0x80)) src++;
+      if (inhibit_eol_conversion)
+       {
+         eol_seen = EOL_SEEN_LF;
+         adjust_coding_eol_type (coding, eol_seen);
+       }
     }
   else
     {
-      end--;                   /* We look ahead one byte.  */
+      end--;               /* We look ahead one byte for "CR LF".  */
       while (src < end)
        {
          int c = *src;
@@ -6118,6 +6118,69 @@ detect_ascii (struct coding_system *coding)
          if (c & 0x80)
            break;
          src++;
+         if (c == '\r')
+           {
+             if (*src == '\n')
+               {
+                 eol_seen |= EOL_SEEN_CRLF;
+                 src++;
+               }
+             else
+               eol_seen |= EOL_SEEN_CR;
+           }
+         else if (c == '\n')
+           eol_seen |= EOL_SEEN_LF;
+       }
+      if (src == end)
+       {
+         int c = *src;
+
+         /* All bytes but the last one C are ASCII.  */
+         if (! (c & 0x80))
+           {
+             if (c == '\r')
+               eol_seen |= EOL_SEEN_CR;
+             else if (c  == '\n')
+               eol_seen |= EOL_SEEN_LF;
+             src++;
+           }
+       }
+    }
+  coding->head_ascii = src - coding->source;
+  coding->eol_seen = eol_seen;
+  return (coding->head_ascii);
+}
+
+
+/* Return the number of characters at the source if all the bytes are
+   valid UTF-8 (of Unicode range).  Otherwise, return -1.  By side
+   effects, update coding->eol_seen.  The value of coding->eol_seen is
+   "logical or" of EOL_SEEN_LF, EOL_SEEN_CR, and EOL_SEEN_CRLF, but
+   the value is reliable only when all the source bytes are valid
+   UTF-8.  */
+
+static int
+check_utf_8 (struct coding_system *coding)
+{
+  const unsigned char *src, *end;
+  int eol_seen = coding->eol_seen;
+  int nchars = coding->head_ascii;
+
+  if (coding->head_ascii < 0)
+    check_ascii (coding);
+  else
+    coding_set_source (coding);
+  src = coding->source + coding->head_ascii;
+  /* We look ahead one byte for CR LF.  */
+  end = coding->source + coding->src_bytes - 1;
+
+  while (src < end)
+    {
+      int c = *src;
+
+      if (UTF_8_1_OCTET_P (*src))
+       {
+         src++;
          if (c < 0x20)
            {
              if (c == '\r')
@@ -6126,6 +6189,7 @@ detect_ascii (struct coding_system *coding)
                    {
                      eol_seen |= EOL_SEEN_CRLF;
                      src++;
+                     nchars++;
                    }
                  else
                    eol_seen |= EOL_SEEN_CR;
@@ -6134,27 +6198,58 @@ detect_ascii (struct coding_system *coding)
                eol_seen |= EOL_SEEN_LF;
            }
        }
-      if (src > end)
-       /* The last two bytes are CR LF, which means that we have
-          scanned all bytes. */
-       end++;
-      else if (src == end)
+      else if (UTF_8_2_OCTET_LEADING_P (c))
        {
-         end++;
-         if (! (*src & 0x80))
-           {
-             if (*src == '\r')
-               eol_seen |= EOL_SEEN_CR;
-             else if (*src  == '\n')
-               eol_seen |= EOL_SEEN_LF;
-             src++;
-           }
+         if (c < 0xC2          /* overlong sequence */
+             || src + 1 >= end
+             || ! UTF_8_EXTRA_OCTET_P (src[1]))
+           return -1;
+         src += 2;
        }
-      adjust_coding_eol_type (coding, eol_seen);
+      else if (UTF_8_3_OCTET_LEADING_P (c))
+       {
+         if (src + 2 >= end
+             || ! (UTF_8_EXTRA_OCTET_P (src[1])
+                   && UTF_8_EXTRA_OCTET_P (src[2])))
+           return -1;
+         c = (((c & 0xF) << 12)
+              | ((src[1] & 0x3F) << 6) | (src[2] & 0x3F));
+         if (c < 0x800                       /* overlong sequence */
+             || (c >= 0xd800 && c < 0xe000)) /* surrogates (invalid) */
+           return -1;
+         src += 3;
+       }
+      else if (UTF_8_4_OCTET_LEADING_P (c))
+       {
+         if (src + 3 >= end
+             || ! (UTF_8_EXTRA_OCTET_P (src[1])
+                   && UTF_8_EXTRA_OCTET_P (src[2])
+                   && UTF_8_EXTRA_OCTET_P (src[3])))
+           return -1;
+         c = (((c & 0x7) << 18) | ((src[1] & 0x3F) << 12)
+              | ((src[2] & 0x3F) << 6) | (src[3] & 0x3F));
+         if (c < 0x10000       /* overlong sequence */
+             || c >= 0x110000) /* non-Unicode character  */
+           return -1;
+         src += 4;
+       }
+      else
+       return -1;
+      nchars++;
+    }
+
+  if (src == end)
+    {
+      if (! UTF_8_1_OCTET_P (*src))
+       return -1;
+      nchars++;
+      if (*src == '\r')
+       eol_seen |= EOL_SEEN_CR;
+      else if (*src  == '\n')
+       eol_seen |= EOL_SEEN_LF;
     }
-  coding->head_ascii = src - coding->source;
   coding->eol_seen = eol_seen;
-  return (src == end);
+  return nchars;
 }
 
 
@@ -6269,6 +6364,9 @@ adjust_coding_eol_type (struct coding_system *coding, int eol_seen)
   Lisp_Object eol_type;
 
   eol_type = CODING_ID_EOL_TYPE (coding->id);
+  if (! VECTORP (eol_type))
+    /* Already adjusted.  */
+    return eol_type;
   if (eol_seen & EOL_SEEN_LF)
     {
       coding->id = CODING_SYSTEM_ID (AREF (eol_type, 0));
@@ -6360,7 +6458,8 @@ detect_coding (struct coding_system *coding)
                        {
                          coding->eol_seen |= EOL_SEEN_CRLF;
                          src++;
-                         coding->head_ascii++;
+                         if (! eight_bit_found)
+                           coding->head_ascii++;
                        }
                      else
                        coding->eol_seen |= EOL_SEEN_CR;
@@ -6461,9 +6560,14 @@ detect_coding (struct coding_system *coding)
       coding_systems
        = AREF (CODING_ID_ATTRS (coding->id), coding_attr_utf_bom);
       detect_info.found = detect_info.rejected = 0;
-      if (detect_ascii (coding))
+      if (check_ascii (coding) == coding->src_bytes)
        {
+         int head_ascii = coding->head_ascii;
+
+         if (coding->eol_seen != EOL_SEEN_NONE)
+           adjust_coding_eol_type (coding, coding->eol_seen);
          setup_coding_system (XCDR (coding_systems), coding);
+         coding->head_ascii = head_ascii;
        }
       else
        {
@@ -7620,15 +7724,27 @@ decode_coding_gap (struct coding_system *coding,
   if (CODING_REQUIRE_DETECTION (coding))
     detect_coding (coding);
   attrs = CODING_ID_ATTRS (coding->id);
-  if (! disable_ascii_optimization)
-    {
-      if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs))
-         && NILP (CODING_ATTR_POST_READ (attrs))
-         && NILP (get_translation_table (attrs, 0, NULL))
-         && (coding->head_ascii >= 0 /* We've already called detect_coding */
-             ? coding->head_ascii == bytes
-             : detect_ascii (coding)))
+  if (! disable_ascii_optimization
+      && ! coding->src_multibyte
+      && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs))
+      && NILP (CODING_ATTR_POST_READ (attrs))
+      && NILP (get_translation_table (attrs, 0, NULL)))
+    {
+      chars = coding->head_ascii;
+      if (chars < 0)
+       chars = check_ascii (coding);
+      if (chars != bytes)
+       {
+         if (EQ (CODING_ATTR_TYPE (attrs), Qutf_8))
+           chars = check_utf_8 (coding);
+         else
+           chars = -1;
+       }
+      if (chars >= 0)
        {
+         if (coding->eol_seen != EOL_SEEN_NONE)
+           adjust_coding_eol_type (coding, coding->eol_seen);
+
          if (coding->eol_seen == EOL_SEEN_CR)
            {
              unsigned char *src_end = GAP_END_ADDR;
@@ -7645,6 +7761,7 @@ decode_coding_gap (struct coding_system *coding,
              unsigned char *src = GAP_END_ADDR;
              unsigned char *src_beg = src - coding->src_bytes;
              unsigned char *dst = src;
+             ptrdiff_t diff;
 
              while (src_beg < src)
                {
@@ -7652,10 +7769,13 @@ decode_coding_gap (struct coding_system *coding,
                  if (*src == '\n')
                    src--;
                }
-             bytes -= dst - src;
+             diff = dst - src;
+             bytes -= diff;
+             chars -= diff;
            }
-         coding->produced_char = coding->produced = bytes;
-         insert_from_gap (bytes, bytes, 1);
+         coding->produced = bytes;
+         coding->produced_char = chars;
+         insert_from_gap (chars, bytes, 1);
          return;
        }
     }
@@ -10877,7 +10997,7 @@ decode text as usual.  */);
   DEFVAR_BOOL ("disable-ascii-optimization", disable_ascii_optimization,
               doc: /* If non-nil, Emacs does not optimize code decoder for ASCII files.
 Internal use only.  Removed after the experimental optimizer gets stable. */);
-  disable_ascii_optimization = 1;
+  disable_ascii_optimization = 0;
 
   DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input,
               doc: /* Char table for translating self-inserting characters.
index b20d1b4c8afd53567e97e79d8fa6f2238f6cbffd..6622088b648f09b50da8e64a0ee3d0a3fb3a721e 100644 (file)
@@ -2337,13 +2337,13 @@ cons_to_unsigned (Lisp_Object c, uintmax_t max)
   uintmax_t val IF_LINT (= 0);
   if (INTEGERP (c))
     {
-      valid = XINT (c) >= 0;
+      valid = 0 <= XINT (c);
       val = XINT (c);
     }
   else if (FLOATP (c))
     {
       double d = XFLOAT_DATA (c);
-      if (d >= 0
+      if (0 <= d
          && d < (max == UINTMAX_MAX ? (double) UINTMAX_MAX + 1 : max + 1))
        {
          val = d;
index ab48488966b7cecfc57d728489ade8cd4879034f..7bbfee7e5b0723fba209dbabd1e23037c2a4a478 100644 (file)
@@ -517,8 +517,9 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, bool all_flag,
 
       QUIT;
       if (len < SCHARS (encoded_file)
-         || scmp (dp->d_name, SSDATA (encoded_file),
-                  SCHARS (encoded_file)) >= 0)
+         || (scmp (dp->d_name, SSDATA (encoded_file),
+                   SCHARS (encoded_file))
+             >= 0))
        continue;
 
       if (file_name_completion_stat (fd, dp, &st) < 0)
index 9a03abf6766b6a8d603b77bad182f76dd4ca6ec7..0c35aff82851ea56ac53b7137116af233397433e 100644 (file)
@@ -1422,25 +1422,24 @@ struct glyph_string
 
 /* Value is non-zero if window W wants a mode line.  */
 
-#define WINDOW_WANTS_MODELINE_P(W)                                     \
-     (!MINI_WINDOW_P ((W))                                             \
-      && !(W)->pseudo_window_p                                         \
-      && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))          \
-      && BUFFERP (W->buffer)                                   \
-      && !NILP (BVAR (XBUFFER (W->buffer), mode_line_format))  \
-      && WINDOW_TOTAL_LINES (W) > 1)
+#define WINDOW_WANTS_MODELINE_P(W)                             \
+  (!MINI_WINDOW_P ((W))                                                \
+   && !(W)->pseudo_window_p                                    \
+   && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))     \
+   && BUFFERP (W->contents)                                    \
+   && !NILP (BVAR (XBUFFER (W->contents), mode_line_format))   \
+   && WINDOW_TOTAL_LINES (W) > 1)
 
 /* Value is true if window W wants a header line.  */
 
-#define WINDOW_WANTS_HEADER_LINE_P(W)                                  \
-     (!MINI_WINDOW_P ((W))                                             \
-      && !(W)->pseudo_window_p                                         \
-      && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))          \
-      && BUFFERP (W->buffer)                                   \
-      && !NILP (BVAR (XBUFFER (W->buffer), header_line_format))        \
-      && WINDOW_TOTAL_LINES (W) > 1                                    \
-      + !NILP (BVAR (XBUFFER (W->buffer), mode_line_format)))
-
+#define WINDOW_WANTS_HEADER_LINE_P(W)                          \
+  (!MINI_WINDOW_P ((W))                                                \
+   && !(W)->pseudo_window_p                                    \
+   && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))     \
+   && BUFFERP (W->contents)                                    \
+   && !NILP (BVAR (XBUFFER (W->contents), header_line_format)) \
+   && WINDOW_TOTAL_LINES (W) > 1                               \
+   + !NILP (BVAR (XBUFFER (W->contents), mode_line_format)))
 
 /* Return proper value to be used as baseline offset of font that has
    ASCENT and DESCENT to draw characters by the font at the vertical
index de1ca47ef60ac31f4e70f01d8f75aa3c20912550..ab73b6403ee3129f6075f3d295183d0adf12acfb 100644 (file)
@@ -226,9 +226,9 @@ add_window_display_history (struct window *w, const char *msg, bool paused_p)
            "%"pMu": window %p (`%s')%s\n%s",
            history_tick++,
            w,
-           ((BUFFERP (w->buffer)
-             && STRINGP (BVAR (XBUFFER (w->buffer), name)))
-            ? SSDATA (BVAR (XBUFFER (w->buffer), name))
+           ((BUFFERP (w->contents)
+             && STRINGP (BVAR (XBUFFER (w->contents), name)))
+            ? SSDATA (BVAR (XBUFFER (w->contents), name))
             : "???"),
            paused_p ? " ***paused***" : "",
            msg);
@@ -844,16 +844,8 @@ clear_window_matrices (struct window *w, bool desired_p)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       {
-         eassert (WINDOWP (w->hchild));
-         clear_window_matrices (XWINDOW (w->hchild), desired_p);
-       }
-      else if (!NILP (w->vchild))
-       {
-         eassert (WINDOWP (w->vchild));
-         clear_window_matrices (XWINDOW (w->vchild), desired_p);
-       }
+      if (WINDOWP (w->contents))
+       clear_window_matrices (XWINDOW (w->contents), desired_p);
       else
        {
          if (desired_p)
@@ -1474,7 +1466,7 @@ check_matrix_invariants (struct window *w)
   struct glyph_row *row = matrix->rows;
   struct glyph_row *last_text_row = NULL;
   struct buffer *saved = current_buffer;
-  struct buffer *buffer = XBUFFER (w->buffer);
+  struct buffer *buffer = XBUFFER (w->contents);
   int c;
 
   /* This can sometimes happen for a fresh window.  */
@@ -1638,7 +1630,7 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
      vertically below other windows.  */
   in_horz_combination_p
     = (!NILP (XWINDOW (window)->parent)
-       && !NILP (XWINDOW (XWINDOW (window)->parent)->hchild));
+       && WINDOW_HORIZONTAL_COMBINATION_P (XWINDOW (XWINDOW (window)->parent)));
 
   /* For WINDOW and all windows on the same level.  */
   do
@@ -1647,12 +1639,8 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
 
       /* Get the dimension of the window sub-matrix for W, depending
         on whether this is a combination or a leaf window.  */
-      if (!NILP (w->hchild))
-       dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y,
-                                                    dim_only_p,
-                                                    window_change_flags);
-      else if (!NILP (w->vchild))
-       dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y,
+      if (WINDOWP (w->contents))
+       dim = allocate_matrices_for_frame_redisplay (w->contents, x, y,
                                                     dim_only_p,
                                                     window_change_flags);
       else
@@ -1794,10 +1782,8 @@ allocate_matrices_for_window_redisplay (struct window *w)
 {
   while (w)
     {
-      if (!NILP (w->vchild))
-       allocate_matrices_for_window_redisplay (XWINDOW (w->vchild));
-      else if (!NILP (w->hchild))
-       allocate_matrices_for_window_redisplay (XWINDOW (w->hchild));
+      if (WINDOWP (w->contents))
+       allocate_matrices_for_window_redisplay (XWINDOW (w->contents));
       else
        {
          /* W is a leaf window.  */
@@ -1869,18 +1855,12 @@ showing_window_margins_p (struct window *w)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
+      if (WINDOWP (w->contents))
        {
-         if (showing_window_margins_p (XWINDOW (w->hchild)))
+         if (showing_window_margins_p (XWINDOW (w->contents)))
            return 1;
        }
-      else if (!NILP (w->vchild))
-       {
-         if (showing_window_margins_p (XWINDOW (w->vchild)))
-           return 1;
-       }
-      else if (!NILP (w->left_margin_cols)
-              || !NILP (w->right_margin_cols))
+      else if (!NILP (w->left_margin_cols) || !NILP (w->right_margin_cols))
        return 1;
 
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
@@ -1901,10 +1881,8 @@ fake_current_matrices (Lisp_Object window)
     {
       w = XWINDOW (window);
 
-      if (!NILP (w->hchild))
-       fake_current_matrices (w->hchild);
-      else if (!NILP (w->vchild))
-       fake_current_matrices (w->vchild);
+      if (WINDOWP (w->contents))
+       fake_current_matrices (w->contents);
       else
        {
          int i;
@@ -2244,10 +2222,8 @@ free_window_matrices (struct window *w)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       free_window_matrices (XWINDOW (w->hchild));
-      else if (!NILP (w->vchild))
-       free_window_matrices (XWINDOW (w->vchild));
+      if (WINDOWP (w->contents))
+       free_window_matrices (XWINDOW (w->contents));
       else
        {
          /* This is a leaf window.  Free its memory and reset fields
@@ -2380,10 +2356,8 @@ build_frame_matrix_from_window_tree (struct glyph_matrix *matrix, struct window
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       build_frame_matrix_from_window_tree (matrix, XWINDOW (w->hchild));
-      else if (!NILP (w->vchild))
-       build_frame_matrix_from_window_tree (matrix, XWINDOW (w->vchild));
+      if (WINDOWP (w->contents))
+       build_frame_matrix_from_window_tree (matrix, XWINDOW (w->contents));
       else
        build_frame_matrix_from_leaf_window (matrix, w);
 
@@ -2647,10 +2621,8 @@ mirror_make_current (struct window *w, int frame_row)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       mirror_make_current (XWINDOW (w->hchild), frame_row);
-      else if (!NILP (w->vchild))
-       mirror_make_current (XWINDOW (w->vchild), frame_row);
+      if (WINDOWP (w->contents))
+       mirror_make_current (XWINDOW (w->contents), frame_row);
       else
        {
          /* Row relative to window W.  Don't use FRAME_TO_WINDOW_VPOS
@@ -2746,8 +2718,8 @@ sync_window_with_frame_matrix_rows (struct window *w)
   struct glyph_row *window_row, *window_row_end, *frame_row;
   int left, right, x, width;
 
-  /* Preconditions: W must be a leaf window on a tty frame.  */
-  eassert (NILP (w->hchild) && NILP (w->vchild));
+  /* Preconditions: W must be a live window on a tty frame.  */
+  eassert (BUFFERP (w->contents));
   eassert (!FRAME_WINDOW_P (f));
 
   left = margin_glyphs_to_reserve (w, 1, w->left_margin_cols);
@@ -2783,10 +2755,8 @@ frame_row_to_window (struct window *w, int row)
 
   while (w && !found)
     {
-      if (!NILP (w->hchild))
-       found = frame_row_to_window (XWINDOW (w->hchild), row);
-      else if (!NILP (w->vchild))
-       found = frame_row_to_window (XWINDOW (w->vchild), row);
+      if (WINDOWP (w->contents))
+       found = frame_row_to_window (XWINDOW (w->contents), row);
       else if (row >= WINDOW_TOP_EDGE_LINE (w)
               && row < WINDOW_BOTTOM_EDGE_LINE (w))
        found = w;
@@ -2814,11 +2784,8 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       mirror_line_dance (XWINDOW (w->hchild), unchanged_at_top,
-                          nlines, copy_from, retained_p);
-      else if (!NILP (w->vchild))
-       mirror_line_dance (XWINDOW (w->vchild), unchanged_at_top,
+      if (WINDOWP (w->contents))
+       mirror_line_dance (XWINDOW (w->contents), unchanged_at_top,
                           nlines, copy_from, retained_p);
       else
        {
@@ -2927,10 +2894,8 @@ check_window_matrix_pointers (struct window *w)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       check_window_matrix_pointers (XWINDOW (w->hchild));
-      else if (!NILP (w->vchild))
-       check_window_matrix_pointers (XWINDOW (w->vchild));
+      if (WINDOWP (w->contents))
+       check_window_matrix_pointers (XWINDOW (w->contents));
       else
        {
          struct frame *f = XFRAME (w->frame);
@@ -3196,10 +3161,8 @@ update_window_tree (struct window *w, bool force_p)
 
   while (w && !paused_p)
     {
-      if (!NILP (w->hchild))
-       paused_p |= update_window_tree (XWINDOW (w->hchild), force_p);
-      else if (!NILP (w->vchild))
-       paused_p |= update_window_tree (XWINDOW (w->vchild), force_p);
+      if (WINDOWP (w->contents))
+       paused_p |= update_window_tree (XWINDOW (w->contents), force_p);
       else if (w->must_be_updated_p)
        paused_p |= update_window (w, force_p);
 
@@ -3980,10 +3943,8 @@ set_window_update_flags (struct window *w, bool on_p)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       set_window_update_flags (XWINDOW (w->hchild), on_p);
-      else if (!NILP (w->vchild))
-       set_window_update_flags (XWINDOW (w->vchild), on_p);
+      if (WINDOWP (w->contents))
+       set_window_update_flags (XWINDOW (w->contents), on_p);
       else
        w->must_be_updated_p = on_p;
 
@@ -4556,7 +4517,7 @@ update_frame_1 (struct frame *f, bool force_p, bool inhibit_id_p)
        }
     }
 
-  lint_assume (FRAME_LINES (f) >= 0);
+  lint_assume (0 <= FRAME_LINES (f));
   pause_p = 0 < i && i < FRAME_LINES (f) - 1;
 
   /* Now just clean up termcap drivers and set cursor, etc.  */
@@ -5136,7 +5097,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
 
   /* We used to set current_buffer directly here, but that does the
      wrong thing with `face-remapping-alist' (bug#2044).  */
-  Fset_buffer (w->buffer);
+  Fset_buffer (w->contents);
   itdata = bidi_shelve_cache ();
   SET_TEXT_POS_FROM_MARKER (startp, w->start);
   CHARPOS (startp) = min (ZV, max (BEGV, CHARPOS (startp)));
@@ -5182,7 +5143,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
   *dx = x0 + it.first_visible_x - it.current_x;
   *dy = *y - it.current_y;
 
-  string =  w->buffer;
+  string = w->contents;
   if (STRINGP (it.string))
     string = it.string;
   *pos = it.current;
@@ -5200,7 +5161,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
       if (STRINGP (it.string))
        BYTEPOS (pos->pos) = string_char_to_byte (string, CHARPOS (pos->pos));
       else
-       BYTEPOS (pos->pos) = buf_charpos_to_bytepos (XBUFFER (w->buffer),
+       BYTEPOS (pos->pos) = buf_charpos_to_bytepos (XBUFFER (w->contents),
                                                     CHARPOS (pos->pos));
     }
 
@@ -5822,7 +5783,7 @@ sit_for (Lisp_Object timeout, bool reading, int display_option)
   else if (FLOATP (timeout))
     {
       double seconds = XFLOAT_DATA (timeout);
-      if (seconds <= 0)
+      if (! (0 < seconds))
        return Qt;
       else
        {
index 1ddaa117bba8002d54be395e0990a7105abc4811..7234fb38bf906bb5bcbd0e9a0013429c8aaea684 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -826,7 +826,7 @@ Otherwise, return a new string, without any text properties.  */)
          if (NILP (tem))       /* but not on any keys */
            {
              ptrdiff_t offset = bufp - buf;
-             if (bsize > STRING_BYTES_BOUND - 4)
+             if (STRING_BYTES_BOUND - 4 < bsize)
                string_overflow ();
              buf = xrealloc (buf, bsize += 4);
              bufp = buf + offset;
index 087256ced2a1a595b7960bcd78b43401e5ab82b0..471e35c7b43c7c69ff75ffa3008f4a7d95a02125 100644 (file)
@@ -361,7 +361,7 @@ doprnt (char *buffer, ptrdiff_t bufsize, const char *format,
 
              /* Copy string into final output, truncating if no room.  */
            doit:
-             eassert (tem >= 0);
+             eassert (0 <= tem);
              /* Coming here means STRING contains ASCII only.  */
              if (STRING_BYTES_BOUND < tem)
                error ("Format width or precision too large");
index 2d87b8e0064af6e47ec8d8f332d3a951ef1d75ee..e0b0347fe69ac53a8a53c99972ad4a24e78befb6 100644 (file)
@@ -373,7 +373,7 @@ get_pos_property (Lisp_Object position, register Lisp_Object prop, Lisp_Object o
   if (NILP (object))
     XSETBUFFER (object, current_buffer);
   else if (WINDOWP (object))
-    object = XWINDOW (object)->buffer;
+    object = XWINDOW (object)->contents;
 
   if (!BUFFERP (object))
     /* pos-property only makes sense in buffers right now, since strings
@@ -846,7 +846,7 @@ save_excursion_save (void)
       ? Fcopy_marker (BVAR (current_buffer, mark), Qnil)
       : Qnil),
      /* Selected window if current buffer is shown in it, nil otherwise.  */
-     ((XBUFFER (XWINDOW (selected_window)->buffer) == current_buffer)
+     (EQ (XWINDOW (selected_window)->contents, Fcurrent_buffer ())
       ? selected_window : Qnil),
      BVAR (current_buffer, mark_active));
 }
@@ -915,7 +915,7 @@ save_excursion_restore (Lisp_Object info)
   tem = XSAVE_OBJECT (info, 2);
   if (WINDOWP (tem)
       && !EQ (tem, selected_window)
-      && (tem1 = XWINDOW (tem)->buffer,
+      && (tem1 = XWINDOW (tem)->contents,
          (/* Window is live...  */
           BUFFERP (tem1)
           /* ...and it shows the current buffer.  */
@@ -1398,8 +1398,8 @@ hi_time (time_t t)
      no runtime check is needed, and taking care not to convert
      negative numbers to unsigned before comparing them.  */
   if (! ((! TYPE_SIGNED (time_t)
-         || TIME_T_MIN >> 16 >= MOST_NEGATIVE_FIXNUM
-         || hi >= MOST_NEGATIVE_FIXNUM)
+         || MOST_NEGATIVE_FIXNUM <= TIME_T_MIN >> 16
+         || MOST_NEGATIVE_FIXNUM <= hi)
         && (TIME_T_MAX >> 16 <= MOST_POSITIVE_FIXNUM
             || hi <= MOST_POSITIVE_FIXNUM)))
     time_overflow ();
@@ -1561,7 +1561,7 @@ decode_time_components (Lisp_Object high, Lisp_Object low, Lisp_Object usec,
 
   if (result)
     {
-      if (hi >= (TYPE_SIGNED (time_t) ? TIME_T_MIN >> 16 : 0)
+      if ((TYPE_SIGNED (time_t) ? TIME_T_MIN >> 16 <= hi : 0 <= hi)
          && hi <= TIME_T_MAX >> 16)
        {
          /* Return the greatest representable time that is not greater
index 1919768d98a6c599544b4bcd142246a13aa29cc7..1049522e5a973cfdf97a363f2968bf7c9ae1eb80 100644 (file)
@@ -81,6 +81,25 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define DRIVE_LETTER(x) c_tolower (x)
 #endif
 
+#ifdef HAVE_POSIX_ACL
+/* FIXME: this macro was copied from gnulib's private acl-internal.h
+   header file.  */
+/* Recognize some common errors such as from an NFS mount that does
+   not support ACLs, even when local drives do.  */
+#if defined __APPLE__ && defined __MACH__ /* Mac OS X */
+#define ACL_NOT_WELL_SUPPORTED(Err)                                    \
+  ((Err) == ENOTSUP || (Err) == ENOSYS || (Err) == EINVAL || (Err) == EBUSY || (Err) == ENOENT)
+#elif defined EOPNOTSUPP /* Tru64 NFS */
+#define ACL_NOT_WELL_SUPPORTED(Err)                                    \
+  ((Err) == ENOTSUP || (Err) == ENOSYS || (Err) == EINVAL || (Err) == EBUSY || (Err) == EOPNOTSUPP)
+#elif defined WINDOWSNT
+#define ACL_NOT_WELL_SUPPORTED(Err)  ((Err) == ENOTSUP)
+#else
+#define ACL_NOT_WELL_SUPPORTED(Err)                                    \
+  ((Err) == ENOTSUP || (Err) == ENOSYS || (Err) == EINVAL || (Err) == EBUSY)
+#endif
+#endif /* HAVE_POSIX_ACL */
+
 #include "systime.h"
 #include <allocator.h>
 #include <careadlinkat.h>
@@ -2011,7 +2030,7 @@ entries (depending on how Emacs was built).  */)
     {
 #ifdef HAVE_POSIX_ACL
       acl = acl_get_file (SDATA (encoded_file), ACL_TYPE_ACCESS);
-      if (acl == NULL && errno != ENOTSUP)
+      if (acl == NULL && !ACL_NOT_WELL_SUPPORTED (errno))
        report_file_error ("Getting ACL", Fcons (file, Qnil));
 #endif
     }
@@ -2055,7 +2074,7 @@ entries (depending on how Emacs was built).  */)
     {
       bool fail =
        acl_set_file (SDATA (encoded_newname), ACL_TYPE_ACCESS, acl) != 0;
-      if (fail && errno != ENOTSUP)
+      if (fail && !ACL_NOT_WELL_SUPPORTED (errno))
        report_file_error ("Setting ACL", Fcons (newname, Qnil));
 
       acl_free (acl);
@@ -2087,7 +2106,7 @@ entries (depending on how Emacs was built).  */)
 
 #ifdef HAVE_POSIX_ACL
       acl = acl_get_fd (ifd);
-      if (acl == NULL && errno != ENOTSUP)
+      if (acl == NULL && !ACL_NOT_WELL_SUPPORTED (errno))
        report_file_error ("Getting ACL", Fcons (file, Qnil));
 #endif
     }
@@ -2176,7 +2195,7 @@ entries (depending on how Emacs was built).  */)
   if (acl != NULL)
     {
       bool fail = acl_set_fd (ofd, acl) != 0;
-      if (fail && errno != ENOTSUP)
+      if (fail && !ACL_NOT_WELL_SUPPORTED (errno))
        report_file_error ("Setting ACL", Fcons (newname, Qnil));
 
       acl_free (acl);
@@ -3174,7 +3193,7 @@ support.  */)
       fail = (acl_set_file (SSDATA (encoded_absname), ACL_TYPE_ACCESS,
                            acl)
              != 0);
-      if (fail && errno != ENOTSUP)
+      if (fail && !ACL_NOT_WELL_SUPPORTED (errno))
        report_file_error ("Setting ACL", Fcons (absname, Qnil));
 
       acl_free (acl);
@@ -3449,7 +3468,7 @@ file_offset (Lisp_Object val)
   if (FLOATP (val))
     {
       double v = XFLOAT_DATA (val);
-      if (v >= 0
+      if (0 <= v
          && (sizeof (off_t) < sizeof v
              ? v <= TYPE_MAXIMUM (off_t)
              : v < TYPE_MAXIMUM (off_t)))
@@ -3958,7 +3977,7 @@ by calling `format-decode', which see.  */)
 
          /* If display currently starts at beginning of line,
             keep it that way.  */
-         if (XBUFFER (XWINDOW (selected_window)->buffer) == current_buffer)
+         if (XBUFFER (XWINDOW (selected_window)->contents) == current_buffer)
            XWINDOW (selected_window)->start_at_line_beg = !NILP (Fbolp ());
 
          replace_handled = 1;
@@ -4108,7 +4127,7 @@ by calling `format-decode', which see.  */)
 
       /* If display currently starts at beginning of line,
         keep it that way.  */
-      if (XBUFFER (XWINDOW (selected_window)->buffer) == current_buffer)
+      if (XBUFFER (XWINDOW (selected_window)->contents) == current_buffer)
        XWINDOW (selected_window)->start_at_line_beg = !NILP (Fbolp ());
 
       /* Replace the chars that we need to replace,
@@ -5816,7 +5835,7 @@ before any other event (mouse or keypress) is handled.  */)
   if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
       && use_dialog_box
       && use_file_dialog
-      && have_menus_p ())
+      && window_system_available (SELECTED_FRAME ()))
     return Qt;
 #endif
   return Qnil;
index 82ce933b25de10abfea2e516e13504f7fac61b50..86bdc0250dcca98a95d6f72e114b8ae10aa82bd8 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -2443,10 +2443,9 @@ is nil, and `use-dialog-box' is non-nil.  */)
   CHECK_STRING (prompt);
 
 #ifdef HAVE_MENUS
-  if (FRAME_WINDOW_P (SELECTED_FRAME ())
-      && (NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
+  if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
       && use_dialog_box
-      && have_menus_p ())
+      && window_system_available (SELECTED_FRAME ()))
     {
       Lisp_Object pane, menu, obj;
       redisplay_preserve_echo_area (4);
@@ -3409,7 +3408,7 @@ larger_vector (Lisp_Object vec, ptrdiff_t incr_min, ptrdiff_t nitems_max)
   ptrdiff_t n_max = (0 <= nitems_max && nitems_max < C_language_max
                     ? nitems_max : C_language_max);
   eassert (VECTORP (vec));
-  eassert (incr_min > 0 && nitems_max >= -1);
+  eassert (0 < incr_min && -1 <= nitems_max);
   old_size = ASIZE (vec);
   incr_max = n_max - old_size;
   incr = max (incr_min, min (old_size >> 1, incr_max));
@@ -3574,9 +3573,9 @@ make_hash_table (struct hash_table_test test,
   eassert (SYMBOLP (test.name));
   eassert (INTEGERP (size) && XINT (size) >= 0);
   eassert ((INTEGERP (rehash_size) && XINT (rehash_size) > 0)
-          || (FLOATP (rehash_size) && XFLOAT_DATA (rehash_size) > 1));
+          || (FLOATP (rehash_size) && 1 < XFLOAT_DATA (rehash_size)));
   eassert (FLOATP (rehash_threshold)
-          && XFLOAT_DATA (rehash_threshold) > 0
+          && 0 < XFLOAT_DATA (rehash_threshold)
           && XFLOAT_DATA (rehash_threshold) <= 1.0);
 
   if (XFASTINT (size) == 0)
@@ -4312,15 +4311,15 @@ usage: (make-hash-table &rest KEYWORD-ARGS)  */)
   /* Look for `:rehash-size SIZE'.  */
   i = get_key_arg (QCrehash_size, nargs, args, used);
   rehash_size = i ? args[i] : make_float (DEFAULT_REHASH_SIZE);
-  if (! ((INTEGERP (rehash_size) && XINT (rehash_size) > 0)
-        || (FLOATP (rehash_size) && XFLOAT_DATA (rehash_size) > 1)))
+  if (! ((INTEGERP (rehash_size) && 0 < XINT (rehash_size))
+        || (FLOATP (rehash_size) && 1 < XFLOAT_DATA (rehash_size))))
     signal_error ("Invalid hash table rehash size", rehash_size);
 
   /* Look for `:rehash-threshold THRESHOLD'.  */
   i = get_key_arg (QCrehash_threshold, nargs, args, used);
   rehash_threshold = i ? args[i] : make_float (DEFAULT_REHASH_THRESHOLD);
   if (! (FLOATP (rehash_threshold)
-        && XFLOAT_DATA (rehash_threshold) > 0
+        && 0 < XFLOAT_DATA (rehash_threshold)
         && XFLOAT_DATA (rehash_threshold) <= 1))
     signal_error ("Invalid hash table rehash threshold", rehash_threshold);
 
index 357f8483b142214b864b3e0100954fea37969cdf..6247eeca9485f81e70bbfcb5331ac2e5ca22266b 100644 (file)
@@ -229,7 +229,7 @@ font_intern_prop (const char *str, ptrdiff_t len, bool force_symbol)
 
   if (len == 1 && *str == '*')
     return Qnil;
-  if (!force_symbol && len > 0 && '0' <= *str && *str <= '9')
+  if (!force_symbol && 0 < len && '0' <= *str && *str <= '9')
     {
       for (i = 1; i < len; i++)
        if (! ('0' <= str[i] && str[i] <= '9'))
@@ -243,7 +243,7 @@ font_intern_prop (const char *str, ptrdiff_t len, bool force_symbol)
            {
              if (i == len)
                return make_number (n);
-             if (n > MOST_POSITIVE_FIXNUM / 10)
+             if (MOST_POSITIVE_FIXNUM / 10 < n)
                break;
            }
 
@@ -4761,7 +4761,7 @@ character at index specified by POSITION.  */)
 
   if (NILP (string))
     {
-      if (XBUFFER (w->buffer) != current_buffer)
+      if (XBUFFER (w->contents) != current_buffer)
        error ("Specified window is not displaying the current buffer.");
       CHECK_NUMBER_COERCE_MARKER (position);
       if (! (BEGV <= XINT (position) && XINT (position) < ZV))
@@ -4844,11 +4844,9 @@ If the named font is not yet loaded, return nil.  */)
   Lisp_Object info;
   Lisp_Object font_object;
 
-  (*check_window_system_func) ();
-
   if (! FONTP (name))
     CHECK_STRING (name);
-  f = decode_live_frame (frame);
+  f = decode_window_system_frame (frame);
 
   if (STRINGP (name))
     {
index 3578bc9403dd24a860c1a740635308ed6f0f5b4a..2f6313c421469f87e4e7f3c800d12bfb56f63fae 100644 (file)
@@ -179,10 +179,6 @@ static int next_fontset_id;
    font for each character.  */
 static Lisp_Object Vdefault_fontset;
 
-/* Check if any window system is used now.  */
-void (*check_window_system_func) (void);
-
-
 /* Prototype declarations for static functions.  */
 static Lisp_Object make_fontset (Lisp_Object, Lisp_Object, Lisp_Object);
 
@@ -1213,7 +1209,7 @@ If REGEXPP is non-nil, PATTERN is a regular expression.  */)
   Lisp_Object fontset;
   int id;
 
-  (*check_window_system_func) ();
+  check_window_system (NULL);
 
   CHECK_STRING (pattern);
 
@@ -1919,8 +1915,7 @@ format is the same as above.  */)
   Lisp_Object val, elt;
   int c, i, j, k;
 
-  (*check_window_system_func) ();
-
+  check_window_system (NULL);
   fontset = check_fontset_name (fontset, &frame);
 
   /* Recode fontsets realized on FRAME from the base fontset FONTSET
index 07ee5d65c251cda546a2a2ce76856a0fb00676c4..926520c80011d39d348d3662f28403754bfb8415 100644 (file)
@@ -26,9 +26,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef EMACS_FONTSET_H
 #define EMACS_FONTSET_H
 
-/* Check if any window system is used now.  */
-extern void (*check_window_system_func) (void);
-
 struct face;
 
 extern void free_face_fontset (FRAME_PTR, struct face *);
index cea39144cefae4b6b0838b4672c3613c4f8874f7..2fe398296ed9453ea090af433ccbff00868048a4 100644 (file)
@@ -149,6 +149,37 @@ decode_any_frame (register Lisp_Object frame)
   return XFRAME (frame);
 }
 
+bool
+window_system_available (struct frame *f)
+{
+  if (f)
+    return FRAME_WINDOW_P (f) || FRAME_MSDOS_P (f);
+  else
+#ifdef HAVE_WINDOW_SYSTEM
+    return x_display_list != NULL;
+#else
+    return 0;
+#endif
+}
+
+struct frame *
+decode_window_system_frame (Lisp_Object frame)
+{
+  struct frame *f = decode_live_frame (frame);
+  
+  if (!window_system_available (f))
+    error ("Window system frame should be used");
+  return f;
+}
+
+void
+check_window_system (struct frame *f)
+{
+  if (!window_system_available (f))
+    error (f ? "Window system frame should be used"
+          : "Window system is not in use or not initialized");
+}
+
 static void
 set_menu_bar_lines_1 (Lisp_Object window, int n)
 {
@@ -159,15 +190,15 @@ set_menu_bar_lines_1 (Lisp_Object window, int n)
   w->total_lines -= n;
 
   /* Handle just the top child in a vertical split.  */
-  if (!NILP (w->vchild))
-    set_menu_bar_lines_1 (w->vchild, n);
-
-  /* Adjust all children in a horizontal split.  */
-  for (window = w->hchild; !NILP (window); window = w->next)
-    {
-      w = XWINDOW (window);
-      set_menu_bar_lines_1 (window, n);
-    }
+  if (WINDOW_VERTICAL_COMBINATION_P (w))
+    set_menu_bar_lines_1 (w->contents, n);
+  else if (WINDOW_HORIZONTAL_COMBINATION_P (w))
+    /* Adjust all children in a horizontal split.  */
+    for (window = w->contents; !NILP (window); window = w->next)
+      {
+       w = XWINDOW (window);
+       set_menu_bar_lines_1 (window, n);
+      }
 }
 
 void
@@ -421,7 +452,7 @@ make_frame_without_minibuffer (register Lisp_Object mini_window, KBOARD *kb, Lis
 
   /* Make the chosen minibuffer window display the proper minibuffer,
      unless it is already showing a minibuffer.  */
-  if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list)))
+  if (NILP (Fmemq (XWINDOW (mini_window)->contents, Vminibuffer_list)))
     /* Use set_window_buffer instead of Fset_window_buffer (see
        discussion of bug#11984, bug#12025, bug#12026).  */
     set_window_buffer (mini_window,
@@ -889,7 +920,7 @@ DEFUN ("frame-list", Fframe_list, Sframe_list,
 /* Return CANDIDATE if it can be used as 'other-than-FRAME' frame on the
    same tty (for tty frames) or among frames which uses FRAME's keyboard.
    If MINIBUF is nil, do not consider minibuffer-only candidate.
-   If MINIBUF is `visible', do not consider an invisible candidate. 
+   If MINIBUF is `visible', do not consider an invisible candidate.
    If MINIBUF is a window, consider only its own frame and candidate now
    using that window as the minibuffer.
    If MINIBUF is 0, consider candidate if it is visible or iconified.
@@ -1189,7 +1220,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
       /* Use set_window_buffer instead of Fset_window_buffer (see
         discussion of bug#11984, bug#12025, bug#12026).  */
       set_window_buffer (sf->minibuffer_window,
-                        XWINDOW (minibuf_window)->buffer, 0, 0);
+                        XWINDOW (minibuf_window)->contents, 0, 0);
       minibuf_window = sf->minibuffer_window;
 
       /* If the dying minibuffer window was selected,
@@ -1593,17 +1624,13 @@ make_frame_visible_1 (Lisp_Object window)
 {
   struct window *w;
 
-  for (;!NILP (window); window = w->next)
+  for (; !NILP (window); window = w->next)
     {
       w = XWINDOW (window);
-
-      if (!NILP (w->buffer))
-       bset_display_time (XBUFFER (w->buffer), Fcurrent_time ());
-
-      if (!NILP (w->vchild))
-       make_frame_visible_1 (w->vchild);
-      if (!NILP (w->hchild))
-       make_frame_visible_1 (w->hchild);
+      if (WINDOWP (w->contents))
+       make_frame_visible_1 (w->contents);
+      else
+       bset_display_time (XBUFFER (w->contents), Fcurrent_time ());
     }
 }
 
@@ -1634,7 +1661,7 @@ displayed in the terminal.  */)
       /* Use set_window_buffer instead of Fset_window_buffer (see
         discussion of bug#11984, bug#12025, bug#12026).  */
       set_window_buffer (sf->minibuffer_window,
-                        XWINDOW (minibuf_window)->buffer, 0, 0);
+                        XWINDOW (minibuf_window)->contents, 0, 0);
       minibuf_window = sf->minibuffer_window;
     }
 
@@ -1665,7 +1692,7 @@ If omitted, FRAME defaults to the currently selected frame.  */)
       /* Use set_window_buffer instead of Fset_window_buffer (see
         discussion of bug#11984, bug#12025, bug#12026).  */
       set_window_buffer (sf->minibuffer_window,
-                        XWINDOW (minibuf_window)->buffer, 0, 0);
+                        XWINDOW (minibuf_window)->contents, 0, 0);
       minibuf_window = sf->minibuffer_window;
     }
 
@@ -3315,16 +3342,15 @@ x_set_alpha (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
       else if (FLOATP (item))
        {
          alpha = XFLOAT_DATA (item);
-         if (alpha < 0.0 || alpha > 1.0)
+         if (! (0 <= alpha && alpha <= 1.0))
            args_out_of_range (make_float (0.0), make_float (1.0));
        }
       else if (INTEGERP (item))
        {
          EMACS_INT ialpha = XINT (item);
-         if (ialpha < 0 || ialpha > 100)
+         if (! (0 <= ialpha && alpha <= 100))
            args_out_of_range (make_number (0), make_number (100));
-         else
-           alpha = ialpha / 100.0;
+         alpha = ialpha / 100.0;
        }
       else
        wrong_type_argument (Qnumberp, item);
@@ -3498,9 +3524,7 @@ and the class is `Emacs.CLASS.SUBCLASS'.  */)
   (Lisp_Object attribute, Lisp_Object class, Lisp_Object component,
    Lisp_Object subclass)
 {
-#ifdef HAVE_X_WINDOWS
-  check_x ();
-#endif
+  check_window_system (NULL);
 
   return xrdb_get_resource (check_x_display_info (Qnil)->xrdb,
                            attribute, class, component, subclass);
index 32a6954024ee7ba81aec95d6cc29c0e5bc55b909..b69f19b7ef8e9f61abfedaf60fc2393a976dcbb7 100644 (file)
@@ -427,10 +427,6 @@ struct frame
   /* Width of bar cursor (if we are using that) for blink-off state.  */
   int blink_off_cursor_width;
 
-  /* Nonnegative if current redisplay should not do scroll computation
-     for lines beyond a certain vpos.  This is the vpos.  */
-  int scroll_bottom_vpos;
-
   /* Configured width of the scroll bar, in pixels and in characters.
      config_scroll_bar_cols tracks config_scroll_bar_width if the
      latter is positive; a zero value in config_scroll_bar_width means
@@ -785,7 +781,6 @@ typedef struct frame *FRAME_PTR;
 #define FRAME_DELETE_COST(f) (f)->delete_line_cost
 #define FRAME_INSERTN_COST(f) (f)->insert_n_lines_cost
 #define FRAME_DELETEN_COST(f) (f)->delete_n_lines_cost
-#define FRAME_SCROLL_BOTTOM_VPOS(f) (f)->scroll_bottom_vpos
 #define FRAME_FOCUS_FRAME(f) f->focus_frame
 
 /* This frame slot says whether scroll bars are currently enabled for frame F,
@@ -963,6 +958,7 @@ extern Lisp_Object Qnoelisp;
 extern struct frame *last_nonminibuf_frame;
 
 extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
+extern struct frame *decode_window_system_frame (Lisp_Object);
 extern struct frame *decode_live_frame (Lisp_Object);
 extern struct frame *decode_any_frame (Lisp_Object);
 extern struct frame *make_initial_frame (void);
@@ -973,6 +969,8 @@ extern struct frame *make_frame_without_minibuffer (Lisp_Object,
                                                     struct kboard *,
                                                     Lisp_Object);
 #endif /* HAVE_WINDOW_SYSTEM */
+extern bool window_system_available (struct frame *);
+extern void check_window_system (struct frame *);
 extern void frame_make_pointer_invisible (void);
 extern void frame_make_pointer_visible (void);
 extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object);
index fa6f889ba69a3c8a73ceca842c8ee4f9a5a92864..f728cd6d5ffcddb46f33191e53752e1ddb2ea809 100644 (file)
@@ -699,7 +699,7 @@ get_logical_cursor_bitmap (struct window *w, Lisp_Object cursor)
 {
   Lisp_Object cmap, bm = Qnil;
 
-  if ((cmap = BVAR (XBUFFER (w->buffer), fringe_cursor_alist)), !NILP (cmap))
+  if ((cmap = BVAR (XBUFFER (w->contents), fringe_cursor_alist)), !NILP (cmap))
     {
       bm = Fassq (cursor, cmap);
       if (CONSP (bm))
@@ -736,7 +736,7 @@ get_logical_fringe_bitmap (struct window *w, Lisp_Object bitmap, int right_p, in
      If partial, lookup partial bitmap in default value if not found here.
      If not partial, or no partial spec is present, use non-partial bitmap.  */
 
-  if ((cmap = BVAR (XBUFFER (w->buffer), fringe_indicator_alist)), !NILP (cmap))
+  if ((cmap = BVAR (XBUFFER (w->contents), fringe_indicator_alist)), !NILP (cmap))
     {
       bm1 = Fassq (bitmap, cmap);
       if (CONSP (bm1))
@@ -963,7 +963,7 @@ update_window_fringes (struct window *w, int keep_current_p)
     return 0;
 
   if (!MINI_WINDOW_P (w)
-      && (ind = BVAR (XBUFFER (w->buffer), indicate_buffer_boundaries), !NILP (ind)))
+      && (ind = BVAR (XBUFFER (w->contents), indicate_buffer_boundaries), !NILP (ind)))
     {
       if (EQ (ind, Qleft) || EQ (ind, Qright))
        boundary_top = boundary_bot = arrow_top = arrow_bot = ind;
@@ -1004,7 +1004,7 @@ update_window_fringes (struct window *w, int keep_current_p)
            {
              if (top_ind_rn < 0 && row->visible_height > 0)
                {
-                 if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer))
+                 if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->contents))
                      && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row))
                    row->indicate_bob_p = !NILP (boundary_top);
                  else
@@ -1014,7 +1014,7 @@ update_window_fringes (struct window *w, int keep_current_p)
 
              if (bot_ind_rn < 0)
                {
-                 if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer))
+                 if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->contents))
                      && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row))
                    row->indicate_eob_p = !NILP (boundary_bot), bot_ind_rn = rn;
                  else if (y + row->height >= yb)
@@ -1024,7 +1024,7 @@ update_window_fringes (struct window *w, int keep_current_p)
        }
     }
 
-  empty_pos = BVAR (XBUFFER (w->buffer), indicate_empty_lines);
+  empty_pos = BVAR (XBUFFER (w->contents), indicate_empty_lines);
   if (!NILP (empty_pos) && !EQ (empty_pos, Qright))
     empty_pos = WINDOW_LEFT_FRINGE_WIDTH (w) == 0 ? Qright : Qleft;
 
index 595a7427c21d3f5e7bba550e0d55578d2d40bff3..f83d8660fccf58fbe433f1d4567273a5ccdf9659 100644 (file)
@@ -543,7 +543,7 @@ get_utf8_string (const char *str)
       if (cp) g_free (cp);
 
       len = strlen (str);
-      if (nr_bad > (min (PTRDIFF_MAX, SIZE_MAX) - len - 1) / 4)
+      if ((min (PTRDIFF_MAX, SIZE_MAX) - len - 1) / 4 < nr_bad)
        memory_full (SIZE_MAX);
       up = utf8_str = xmalloc (len + nr_bad * 4 + 1);
       p = (unsigned char *)str;
index 6da430bee73bb0e6c370cc11a0dcc78d1aa2f8a2..2dae63a294f0f92a1a6beec47787563b973b4f8f 100644 (file)
@@ -889,7 +889,7 @@ or omitted means use the selected frame.  */)
   size = Qnil;
   if (valid_image_p (spec))
     {
-      struct frame *f = check_x_frame (frame);
+      struct frame *f = decode_window_system_frame (frame);
       ptrdiff_t id = lookup_image (f, spec);
       struct image *img = IMAGE_FROM_ID (f, id);
       int width = img->width + 2 * img->hmargin;
@@ -919,7 +919,7 @@ or omitted means use the selected frame.  */)
   mask = Qnil;
   if (valid_image_p (spec))
     {
-      struct frame *f = check_x_frame (frame);
+      struct frame *f = decode_window_system_frame (frame);
       ptrdiff_t id = lookup_image (f, spec);
       struct image *img = IMAGE_FROM_ID (f, id);
       if (img->mask)
@@ -942,7 +942,7 @@ or omitted means use the selected frame.  */)
   ext = Qnil;
   if (valid_image_p (spec))
     {
-      struct frame *f = check_x_frame (frame);
+      struct frame *f = decode_window_system_frame (frame);
       ptrdiff_t id = lookup_image (f, spec);
       struct image *img = IMAGE_FROM_ID (f, id);
       ext = img->lisp_data;
@@ -1550,7 +1550,7 @@ which is then usually a filename.  */)
   if (!(EQ (filter, Qnil) || FRAMEP (filter)))
     clear_image_caches (filter);
   else
-    clear_image_cache (check_x_frame (filter), Qt);
+    clear_image_cache (decode_window_system_frame (filter), Qt);
 
   return Qnil;
 }
@@ -1581,7 +1581,7 @@ FRAME t means refresh the image on all frames.  */)
        }
     }
   else
-    uncache_image (check_x_frame (frame), spec);
+    uncache_image (decode_window_system_frame (frame), spec);
 
   return Qnil;
 }
@@ -8138,6 +8138,7 @@ DEF_IMGLIB_FN (int, gdk_pixbuf_get_bits_per_sample, (const GdkPixbuf *));
 
 DEF_IMGLIB_FN (void, g_type_init, (void));
 DEF_IMGLIB_FN (void, g_object_unref, (gpointer));
+DEF_IMGLIB_FN (void, g_error_free, (GError *));
 
 Lisp_Object Qgdk_pixbuf, Qglib, Qgobject;
 
index ac448532dd49133a97658fa349aad747bc58470b..67796ab8a8fc1ee800342ad6bc69fd49b82fe76d 100644 (file)
@@ -56,11 +56,6 @@ static EMACS_INT last_known_column_modified;
 static ptrdiff_t current_column_1 (void);
 static ptrdiff_t position_indentation (ptrdiff_t);
 
-/* Cache of beginning of line found by the last call of
-   current_column. */
-
-static ptrdiff_t current_column_bol_cache;
-
 /* Get the display table to use for the current buffer.  */
 
 struct Lisp_Char_Table *
@@ -254,7 +249,7 @@ skip_invisible (ptrdiff_t pos, ptrdiff_t *next_boundary_p, ptrdiff_t to, Lisp_Ob
      the next property change */
   prop = Fget_char_property (position, Qinvisible,
                             (!NILP (window)
-                             && EQ (XWINDOW (window)->buffer, buffer))
+                             && EQ (XWINDOW (window)->contents, buffer))
                             ? window : buffer);
   inv_p = TEXT_PROP_MEANS_INVISIBLE (prop);
   /* When counting columns (window == nil), don't skip over ellipsis text.  */
@@ -439,11 +434,6 @@ current_column (void)
       col += post_tab;
     }
 
-  if (ptr == BEGV_ADDR)
-    current_column_bol_cache = BEGV;
-  else
-    current_column_bol_cache = BYTE_TO_CHAR (PTR_BYTE_POS (ptr));
-
   last_known_column = col;
   last_known_column_point = PT;
   last_known_column_modified = MODIFF;
@@ -476,7 +466,7 @@ check_display_width (ptrdiff_t pos, ptrdiff_t col, ptrdiff_t *endpos)
       if ((prop = Fplist_get (plist, QCwidth),
           RANGED_INTEGERP (0, prop, INT_MAX)))
        width = XINT (prop);
-      else if (FLOATP (prop) && XFLOAT_DATA (prop) >= 0
+      else if (FLOATP (prop) && 0 <= XFLOAT_DATA (prop)
               && XFLOAT_DATA (prop) <= INT_MAX)
        width = (int)(XFLOAT_DATA (prop) + 0.5);
       else if ((prop = Fplist_get (plist, QCalign_to),
@@ -525,7 +515,6 @@ scan_for_column (ptrdiff_t *endpos, EMACS_INT *goalcol, ptrdiff_t *prevcol)
   {
   ptrdiff_t opoint = PT, opoint_byte = PT_BYTE;
   scan_newline (PT, PT_BYTE, BEGV, BEGV_BYTE, -1, 1);
-  current_column_bol_cache = PT;
   scan = PT, scan_byte = PT_BYTE;
   SET_PT_BOTH (opoint, opoint_byte);
   next_boundary = scan;
@@ -1088,8 +1077,8 @@ static struct position val_compute_motion;
            : (window_width + window_left != frame_cols))
 
        where
-         window_width is XFASTINT (w->total_cols),
-         window_left is XFASTINT (w->left_col),
+         window_width is w->total_cols,
+         window_left is w->left_col,
          has_vertical_scroll_bars is
            WINDOW_HAS_VERTICAL_SCROLL_BAR (window)
          and frame_cols = FRAME_COLS (XFRAME (window->frame))
@@ -1826,7 +1815,7 @@ vmotion (register ptrdiff_t from, register ptrdiff_t from_byte,
 
   /* If the window contains this buffer, use it for getting text properties.
      Otherwise use the current buffer as arg for doing that.  */
-  if (EQ (w->buffer, Fcurrent_buffer ()))
+  if (EQ (w->contents, Fcurrent_buffer ()))
     text_prop_object = window;
   else
     text_prop_object = Fcurrent_buffer ();
@@ -1979,14 +1968,14 @@ whether or not it is currently displayed in some window.  */)
 
   old_buffer = Qnil;
   GCPRO1 (old_buffer);
-  if (XBUFFER (w->buffer) != current_buffer)
+  if (XBUFFER (w->contents) != current_buffer)
     {
       /* Set the window's buffer temporarily to the current buffer.  */
-      old_buffer = w->buffer;
+      old_buffer = w->contents;
       old_charpos = marker_position (w->pointm);
       old_bytepos = marker_byte_position (w->pointm);
       wset_buffer (w, Fcurrent_buffer ());
-      set_marker_both (w->pointm, w->buffer,
+      set_marker_both (w->pointm, w->contents,
                       BUF_PT (current_buffer), BUF_PT_BYTE (current_buffer));
     }
 
@@ -2139,7 +2128,7 @@ whether or not it is currently displayed in some window.  */)
   if (BUFFERP (old_buffer))
     {
       wset_buffer (w, old_buffer);
-      set_marker_both (w->pointm, w->buffer,
+      set_marker_both (w->pointm, w->contents,
                       old_charpos, old_bytepos);
     }
 
index a60fed0c32ef21160a1122556fdfd52e90d12066..8029291cd6807b2e087af75b0005fed5ed0443e5 100644 (file)
@@ -983,6 +983,9 @@ insert_from_string_1 (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte,
 void
 insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail)
 {
+  int ins_charpos = GPT;
+  int ins_bytepos = GPT_BYTE;
+
   if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
     nchars = nbytes;
 
@@ -1003,18 +1006,18 @@ insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail)
 
   eassert (GPT <= GPT_BYTE);
 
-  adjust_overlays_for_insert (GPT - nchars, nchars);
-  adjust_markers_for_insert (GPT - nchars, GPT_BYTE - nbytes,
-                            GPT, GPT_BYTE, 0);
+  adjust_overlays_for_insert (ins_charpos, nchars);
+  adjust_markers_for_insert (ins_charpos, ins_bytepos,
+                            ins_charpos + nchars, ins_bytepos + nbytes, 0);
 
   if (buffer_intervals (current_buffer))
     {
-      offset_intervals (current_buffer, GPT - nchars, nchars);
-      graft_intervals_into_buffer (NULL, GPT - nchars, nchars,
+      offset_intervals (current_buffer, ins_charpos, nchars);
+      graft_intervals_into_buffer (NULL, ins_charpos, nchars,
                                   current_buffer, 0);
     }
 
-  if (! text_at_gap_tail && GPT - nchars < PT)
+  if (ins_charpos < PT)
     adjust_point (nchars, nbytes);
 
   check_markers ();
@@ -1798,7 +1801,7 @@ prepare_to_modify_buffer (ptrdiff_t start, ptrdiff_t end,
 
   /* If we're modifying the buffer other than shown in a selected window,
      let redisplay consider other windows if this buffer is visible.  */
-  if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer
+  if (XBUFFER (XWINDOW (selected_window)->contents) != current_buffer
       && buffer_window_count (current_buffer))
     ++windows_or_buffers_changed;
 
index d373935f3e41697a54f81ee594fb6188bf91d87c..eb9f93a4c7d5aad28d9857f268155978d1032d5c 100644 (file)
@@ -210,12 +210,6 @@ static EMACS_INT last_auto_save;
 /* The value of point when the last command was started.  */
 static ptrdiff_t last_point_position;
 
-/* The buffer that was current when the last command was started.  */
-static Lisp_Object last_point_position_buffer;
-
-/* The window that was selected when the last command was started.  */
-static Lisp_Object last_point_position_window;
-
 /* The frame in which the last input event occurred, or Qmacro if the
    last event came from a macro.  We use this to determine when to
    generate switch-frame events.  This may be cleared by functions
@@ -836,7 +830,7 @@ This function is called by the editor initialization to begin editing.  */)
   update_mode_lines = 1;
 
   if (command_loop_level
-      && current_buffer != XBUFFER (XWINDOW (selected_window)->buffer))
+      && current_buffer != XBUFFER (XWINDOW (selected_window)->contents))
     buffer = Fcurrent_buffer ();
   else
     buffer = Qnil;
@@ -1398,7 +1392,7 @@ command_loop_1 (void)
        Fkill_emacs (Qnil);
 
       /* Make sure the current window's buffer is selected.  */
-      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->buffer));
+      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents));
 
       /* Display any malloc warning that just came out.  Use while because
         displaying one warning can cause another.  */
@@ -1464,7 +1458,7 @@ command_loop_1 (void)
       /* A filter may have run while we were reading the input.  */
       if (! FRAME_LIVE_P (XFRAME (selected_frame)))
        Fkill_emacs (Qnil);
-      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->buffer));
+      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents));
 
       ++num_input_keys;
 
@@ -1495,7 +1489,7 @@ command_loop_1 (void)
        {
          struct buffer *b;
          XWINDOW (selected_window)->force_start = 0;
-         b = XBUFFER (XWINDOW (selected_window)->buffer);
+         b = XBUFFER (XWINDOW (selected_window)->contents);
          BUF_BEG_UNCHANGED (b) = BUF_END_UNCHANGED (b) = 0;
        }
 
@@ -1515,8 +1509,6 @@ command_loop_1 (void)
       prev_buffer = current_buffer;
       prev_modiff = MODIFF;
       last_point_position = PT;
-      last_point_position_window = selected_window;
-      XSETBUFFER (last_point_position_buffer, prev_buffer);
 
       /* By default, we adjust point to a boundary of a region that
          has such a property that should be treated intangible
@@ -5152,7 +5144,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
          if (STRINGP (string))
            string_info = Fcons (string, make_number (charpos));
          textpos = (w == XWINDOW (selected_window)
-                    && current_buffer == XBUFFER (w->buffer))
+                    && current_buffer == XBUFFER (w->contents))
            ? PT : marker_position (w->pointm);
 
          xret = wx;
@@ -9164,9 +9156,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
                {
                  if (! FRAME_LIVE_P (XFRAME (selected_frame)))
                    Fkill_emacs (Qnil);
-                 if (XBUFFER (XWINDOW (selected_window)->buffer)
+                 if (XBUFFER (XWINDOW (selected_window)->contents)
                      != current_buffer)
-                   Fset_buffer (XWINDOW (selected_window)->buffer);
+                   Fset_buffer (XWINDOW (selected_window)->contents);
                }
 
              goto replay_sequence;
@@ -9214,9 +9206,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
                 special-event-map, ...) might have switched the current buffer
                 or the selected window from under us in the mean time.  */
              if (fix_current_buffer
-                 && (XBUFFER (XWINDOW (selected_window)->buffer)
+                 && (XBUFFER (XWINDOW (selected_window)->contents)
                      != current_buffer))
-               Fset_buffer (XWINDOW (selected_window)->buffer);
+               Fset_buffer (XWINDOW (selected_window)->contents);
              current_binding = active_maps (first_event);
            }
 
@@ -9265,8 +9257,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
                     not the current buffer.  If we're at the
                     beginning of a key sequence, switch buffers.  */
                  if (WINDOWP (window)
-                     && BUFFERP (XWINDOW (window)->buffer)
-                     && XBUFFER (XWINDOW (window)->buffer) != current_buffer)
+                     && BUFFERP (XWINDOW (window)->contents)
+                     && XBUFFER (XWINDOW (window)->contents) != current_buffer)
                    {
                      ASET (raw_keybuf, raw_keybuf_count, key);
                      raw_keybuf_count++;
@@ -9287,7 +9279,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
 
                      if (! FRAME_LIVE_P (XFRAME (selected_frame)))
                        Fkill_emacs (Qnil);
-                     set_buffer_internal (XBUFFER (XWINDOW (window)->buffer));
+                     set_buffer_internal (XBUFFER (XWINDOW (window)->contents));
                      goto replay_sequence;
                    }
                }
@@ -11070,9 +11062,6 @@ syms_of_keyboard (void)
   Fset (Qinput_method_exit_on_first_char, Qnil);
   Fset (Qinput_method_use_echo_area, Qnil);
 
-  last_point_position_buffer = Qnil;
-  last_point_position_window = Qnil;
-
   {
     int i;
     int len = sizeof (head_table) / sizeof (head_table[0]);
index 110c8f43729e76ab86fb070802cc52643ef7e9e4..c43d528b25b4bb354f4a29ea4056a8f123add4b2 100644 (file)
@@ -1556,8 +1556,8 @@ like in the respective argument of `key-binding'.  */)
       window = POSN_WINDOW (position);
 
       if (WINDOWP (window)
-         && BUFFERP (XWINDOW (window)->buffer)
-         && XBUFFER (XWINDOW (window)->buffer) != current_buffer)
+         && BUFFERP (XWINDOW (window)->contents)
+         && XBUFFER (XWINDOW (window)->contents) != current_buffer)
        {
          /* Arrange to go back to the original buffer once we're done
             processing the key sequence.  We don't use
@@ -1567,7 +1567,7 @@ like in the respective argument of `key-binding'.  */)
             things the same.
          */
          record_unwind_current_buffer ();
-         set_buffer_internal (XBUFFER (XWINDOW (window)->buffer));
+         set_buffer_internal (XBUFFER (XWINDOW (window)->contents));
        }
     }
 
@@ -2063,7 +2063,7 @@ For an approximate inverse of this, see `kbd'.  */)
     size += XINT (Flength (prefix));
 
   /* This has one extra element at the end that we don't pass to Fconcat.  */
-  if (size > min (PTRDIFF_MAX, SIZE_MAX) / word_size / 4)
+  if (min (PTRDIFF_MAX, SIZE_MAX) / word_size / 4 < size)
     memory_full (SIZE_MAX);
   SAFE_ALLOCA_LISP (args, size * 4);
 
index 8187f7da99328718d7cf3e009b741d45137e081d..175ec828c974bd8ce5300ab4d6b3b3e4f528fa7d 100644 (file)
@@ -548,7 +548,7 @@ static EMACS_INT const VALMASK
    type or if I is a NaN.  */
 
 #define FIXNUM_OVERFLOW_P(i) \
-  (! (((i) >= 0 || (i) >= MOST_NEGATIVE_FIXNUM) && (i) <= MOST_POSITIVE_FIXNUM))
+  (! ((0 <= (i) || MOST_NEGATIVE_FIXNUM <= (i)) && (i) <= MOST_POSITIVE_FIXNUM))
 
 LISP_INLINE ptrdiff_t
 clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper)
@@ -557,11 +557,6 @@ clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper)
 }
 
 \f
-/* Forward declarations.  */
-
-LISP_INLINE bool SAVE_VALUEP (Lisp_Object);
-LISP_INLINE struct Lisp_Save_Value *XSAVE_VALUE (Lisp_Object);
-
 /* Extract a value or address from a Lisp_Object.  */
 
 #define XCONS(a)   (eassert (CONSP (a)), \
@@ -1492,53 +1487,6 @@ struct Lisp_Save_Value
     } data[SAVE_VALUE_SLOTS];
   };
 
-/* Return the type of V's Nth saved value.  */
-LISP_INLINE int
-save_type (struct Lisp_Save_Value *v, int n)
-{
-  eassert (0 <= n && n < SAVE_VALUE_SLOTS);
-  return (v->save_type >> (SAVE_SLOT_BITS * n) & ((1 << SAVE_SLOT_BITS) - 1));
-}
-
-/* Get and set the Nth saved pointer.  */
-
-LISP_INLINE void *
-XSAVE_POINTER (Lisp_Object obj, int n)
-{
-  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
-  return XSAVE_VALUE (obj)->data[n].pointer;;
-}
-LISP_INLINE void
-set_save_pointer (Lisp_Object obj, int n, void *val)
-{
-  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
-  XSAVE_VALUE (obj)->data[n].pointer = val;
-}
-
-/* Likewise for the saved integer.  */
-
-LISP_INLINE ptrdiff_t
-XSAVE_INTEGER (Lisp_Object obj, int n)
-{
-  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
-  return XSAVE_VALUE (obj)->data[n].integer;
-}
-LISP_INLINE void
-set_save_integer (Lisp_Object obj, int n, ptrdiff_t val)
-{
-  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
-  XSAVE_VALUE (obj)->data[n].integer = val;
-}
-
-/* Extract Nth saved object.  */
-
-LISP_INLINE Lisp_Object
-XSAVE_OBJECT (Lisp_Object obj, int n)
-{
-  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_OBJECT);
-  return XSAVE_VALUE (obj)->data[n].object;
-}
-
 /* A miscellaneous object, when it's on the free list.  */
 struct Lisp_Free
   {
@@ -1560,13 +1508,6 @@ union Lisp_Misc
     struct Lisp_Save_Value u_save_value;
   };
 
-LISP_INLINE struct Lisp_Save_Value *
-XSAVE_VALUE (Lisp_Object a)
-{
-  eassert (SAVE_VALUEP (a));
-  return & XMISC (a)->u_save_value;
-}
-
 /* Forwarding pointer to an int variable.
    This is allowed only in the value cell of a symbol,
    and it means that the symbol's value really lives in the
@@ -1859,6 +1800,60 @@ SAVE_VALUEP (Lisp_Object x)
   return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value;
 }
 
+LISP_INLINE struct Lisp_Save_Value *
+XSAVE_VALUE (Lisp_Object a)
+{
+  eassert (SAVE_VALUEP (a));
+  return & XMISC (a)->u_save_value;
+}
+
+/* Return the type of V's Nth saved value.  */
+LISP_INLINE int
+save_type (struct Lisp_Save_Value *v, int n)
+{
+  eassert (0 <= n && n < SAVE_VALUE_SLOTS);
+  return (v->save_type >> (SAVE_SLOT_BITS * n) & ((1 << SAVE_SLOT_BITS) - 1));
+}
+
+/* Get and set the Nth saved pointer.  */
+
+LISP_INLINE void *
+XSAVE_POINTER (Lisp_Object obj, int n)
+{
+  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
+  return XSAVE_VALUE (obj)->data[n].pointer;;
+}
+LISP_INLINE void
+set_save_pointer (Lisp_Object obj, int n, void *val)
+{
+  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
+  XSAVE_VALUE (obj)->data[n].pointer = val;
+}
+
+/* Likewise for the saved integer.  */
+
+LISP_INLINE ptrdiff_t
+XSAVE_INTEGER (Lisp_Object obj, int n)
+{
+  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
+  return XSAVE_VALUE (obj)->data[n].integer;
+}
+LISP_INLINE void
+set_save_integer (Lisp_Object obj, int n, ptrdiff_t val)
+{
+  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
+  XSAVE_VALUE (obj)->data[n].integer = val;
+}
+
+/* Extract Nth saved object.  */
+
+LISP_INLINE Lisp_Object
+XSAVE_OBJECT (Lisp_Object obj, int n)
+{
+  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_OBJECT);
+  return XSAVE_VALUE (obj)->data[n].object;
+}
+
 #define AUTOLOADP(x) (CONSP (x) && EQ (Qautoload, XCAR (x)))
 
 #define INTFWDP(x) (XFWDTYPE (x) == Lisp_Fwd_Int)
@@ -2570,7 +2565,7 @@ gc_aset (Lisp_Object array, ptrdiff_t idx, Lisp_Object val)
 LISP_INLINE void
 vcopy (Lisp_Object v, ptrdiff_t offset, Lisp_Object *args, ptrdiff_t count)
 {
-  eassert (offset >= 0 && count >= 0 && offset + count <= ASIZE (v));
+  eassert (0 <= offset && 0 <= count && offset + count <= ASIZE (v));
   memcpy (XVECTOR (v)->contents + offset, args, count * sizeof *args);
 }
 
@@ -3781,11 +3776,6 @@ extern void syms_of_xml (void);
 extern void xml_cleanup_parser (void);
 #endif
 
-#ifdef HAVE_MENUS
-/* Defined in (x|w32)fns.c, nsfns.m...  */
-extern int have_menus_p (void);
-#endif
-
 #ifdef HAVE_DBUS
 /* Defined in dbusbind.c.  */
 void syms_of_dbusbind (void);
index d7a16f813c8f80717d7596a8b65394b9ba07594a..8e623e838c79f8602b0fa84f8fe0bb9c7afda5cf 100644 (file)
@@ -2636,7 +2636,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
            nskip--;
          else
            UNREAD (c);
-           
+
          if (load_force_doc_strings
              && (FROM_FILE_P (readcharfun)))
            {
@@ -2731,8 +2731,8 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
          /* Read a non-negative integer.  */
          while (c >= '0' && c <= '9')
            {
-             if (n > MOST_POSITIVE_FIXNUM / 10
-                 || n * 10 + c - '0' > MOST_POSITIVE_FIXNUM)
+             if (MOST_POSITIVE_FIXNUM / 10 < n
+                 || MOST_POSITIVE_FIXNUM < n * 10 + c - '0')
                n = MOST_POSITIVE_FIXNUM + 1;
              else
                n = n * 10 + c - '0';
@@ -2930,7 +2930,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
            if (end - p < MAX_MULTIBYTE_LENGTH)
              {
                ptrdiff_t offset = p - read_buffer;
-               if (read_buffer_size > min (PTRDIFF_MAX, SIZE_MAX) / 2)
+               if (min (PTRDIFF_MAX, SIZE_MAX) / 2 < read_buffer_size)
                  memory_full (SIZE_MAX);
                read_buffer = xrealloc (read_buffer, read_buffer_size * 2);
                read_buffer_size *= 2;
@@ -3064,7 +3064,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
              if (end - p < MAX_MULTIBYTE_LENGTH)
                {
                  ptrdiff_t offset = p - read_buffer;
-                 if (read_buffer_size > min (PTRDIFF_MAX, SIZE_MAX) / 2)
+                 if (min (PTRDIFF_MAX, SIZE_MAX) / 2 < read_buffer_size)
                    memory_full (SIZE_MAX);
                  read_buffer = xrealloc (read_buffer, read_buffer_size * 2);
                  read_buffer_size *= 2;
@@ -3094,7 +3094,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
          if (p == end)
            {
              ptrdiff_t offset = p - read_buffer;
-             if (read_buffer_size > min (PTRDIFF_MAX, SIZE_MAX) / 2)
+             if (min (PTRDIFF_MAX, SIZE_MAX) / 2 < read_buffer_size)
                memory_full (SIZE_MAX);
              read_buffer = xrealloc (read_buffer, read_buffer_size * 2);
              read_buffer_size *= 2;
index 93f12900dded956825492c73a90dcc4642ca67a8..aacc258cd11a9ce5db22e0092fe53b24eea9a1a3 100644 (file)
@@ -873,6 +873,7 @@ $(BLD)/filelock.$(O) : \
        $(CHARACTER_H) \
        $(CODING_H) \
        $(CONFIG_H) \
+       $(C_CTYPE_H) \
        $(LISP_H) \
        $(SYSTIME_H)
 
@@ -1398,6 +1399,7 @@ $(BLD)/sysdep.$(O) : \
        $(NT_INC)/netdb.h \
        $(NT_INC)/pwd.h \
        $(NT_INC)/sys/file.h \
+       $(NT_INC)/sys/param.h \
        $(NT_INC)/sys/stat.h \
        $(NT_INC)/unistd.h \
        $(GNU_LIB)/execinfo.h \
index ffb5c3bc9367168d3de89828aeddfdc03c909f77..58558d5aedd7c8b80a7f5a534ab48d90f10c796e 100644 (file)
@@ -1085,7 +1085,8 @@ no quit occurs and `x-popup-menu' returns nil.  */)
 #ifdef HAVE_MENUS
   {
     bool get_current_pos_p = 0;
-    /* FIXME!!  check_w32 (); or check_x (); or check_ns (); */
+
+    check_window_system (SELECTED_FRAME ());
 
     /* Decode the first argument: find the window and the coordinates.  */
     if (EQ (position, Qt)
index 564593537149f19f47ca3c9f01d6cabd2456215a..68c39310f01f7a7bbce3f2ed82f99af5d8d06cdc 100644 (file)
@@ -114,7 +114,7 @@ choose_minibuf_frame (void)
       /* Under X, we come here with minibuf_window being the
         minibuffer window of the unused termcap window created in
         init_window_once.  That window doesn't have a buffer.  */
-      buffer = XWINDOW (minibuf_window)->buffer;
+      buffer = XWINDOW (minibuf_window)->contents;
       if (BUFFERP (buffer))
        /* Use set_window_buffer instead of Fset_window_buffer (see
           discussion of bug#11984, bug#12025, bug#12026).  */
@@ -251,7 +251,7 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
        {
          if (len == size)
            {
-             if (size > STRING_BYTES_BOUND / 2)
+             if (STRING_BYTES_BOUND / 2 < size)
                memory_full (SIZE_MAX);
              size *= 2;
              line = xrealloc (line, size);
@@ -844,7 +844,7 @@ read_minibuf_unwind (Lisp_Object data)
   window = minibuf_window;
   /* To keep things predictable, in case it matters, let's be in the
      minibuffer when we reset the relevant variables.  */
-  Fset_buffer (XWINDOW (window)->buffer);
+  Fset_buffer (XWINDOW (window)->contents);
 
   /* Restore prompt, etc, from outer minibuffer level.  */
   minibuf_prompt = Fcar (minibuf_save_list);
index ee47109d5f28a53fa2b31768177ca411f2a2df29..a2bcc06ac1702ece852b5944fa2f60ae9a23c5f5 100644 (file)
@@ -1261,7 +1261,7 @@ IT_update_begin (struct frame *f)
          /* If the mouse highlight is in the window that was deleted
             (e.g., if it was popped by completion), clear highlight
             unconditionally.  */
-         if (NILP (w->buffer))
+         if (NILP (w->contents))
            hlinfo->mouse_face_window = Qnil;
          else
            {
@@ -1271,7 +1271,7 @@ IT_update_begin (struct frame *f)
                  break;
            }
 
-         if (NILP (w->buffer) || i < w->desired_matrix->nrows)
+         if (NILP (w->contents) || i < w->desired_matrix->nrows)
            clear_mouse_face (hlinfo);
        }
     }
@@ -1321,7 +1321,7 @@ IT_frame_up_to_date (struct frame *f)
     new_cursor = frame_desired_cursor;
   else
     {
-      struct buffer *b = XBUFFER (sw->buffer);
+      struct buffer *b = XBUFFER (sw->contents);
 
       if (EQ (BVAR (b,cursor_type), Qt))
        new_cursor = frame_desired_cursor;
@@ -1920,7 +1920,7 @@ dos_get_saved_screen (char **screen, int *rows, int *cols)
 
 /* We are not X, but we can emulate it well enough for our needs... */
 void
-check_x (void)
+check_window_system (void)
 {
   if (! FRAME_MSDOS_P (SELECTED_FRAME ()))
     error ("Not running under a window system");
@@ -2983,11 +2983,6 @@ IT_menu_display (XMenu *menu, int y, int x, int pn, int *faces, int disp_help)
 \f
 /* --------------------------- X Menu emulation ---------------------- */
 
-/* Report availability of menus.  */
-
-int
-have_menus_p (void) {  return 1; }
-
 /* Create a brand new menu structure.  */
 
 XMenu *
index 9c3051a8c6a1230e7fe4f7684219d0505bb80e5b..a483f847decd915bd7178d022b5f705364fc8dc8 100644 (file)
@@ -107,43 +107,6 @@ static ptrdiff_t image_cache_refcount;
 
    ========================================================================== */
 
-
-void
-check_ns (void)
-{
- if (NSApp == nil)
-   error ("OpenStep is not in use or not initialized");
-}
-
-
-/* Nonzero if we can use mouse menus. */
-int
-have_menus_p (void)
-{
-  return NSApp != nil;
-}
-
-
-/* Extract a frame as a FRAME_PTR, defaulting to the selected frame
-   and checking validity for NS.  */
-static FRAME_PTR
-check_ns_frame (Lisp_Object frame)
-{
-  FRAME_PTR f;
-
-  if (NILP (frame))
-      f = SELECTED_FRAME ();
-  else
-    {
-      CHECK_LIVE_FRAME (frame);
-      f = XFRAME (frame);
-    }
-  if (! FRAME_NS_P (f))
-    error ("non-Nextstep frame used");
-  return f;
-}
-
-
 /* Let the user specify an Nextstep display with a frame.
    nil stands for the selected frame--or, if that is not an Nextstep frame,
    the first Nextstep display on the list.  */
@@ -619,7 +582,7 @@ ns_set_name_as_filename (struct frame *f)
 {
   NSView *view;
   Lisp_Object name, filename;
-  Lisp_Object buf = XWINDOW (f->selected_window)->buffer;
+  Lisp_Object buf = XWINDOW (f->selected_window)->contents;
   const char *title;
   NSAutoreleasePool *pool;
   struct gcpro gcpro1;
@@ -1145,8 +1108,6 @@ This function is an internal primitive--use `make-frame' instead.  */)
   Lisp_Object tfont, tfontsize;
   static int desc_ctr = 1;
 
-  check_ns ();
-
   /* x_get_arg modifies parms.  */
   parms = Fcopy_alist (parms);
 
@@ -1418,7 +1379,7 @@ DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0,
 FRAME nil means use the selected frame.  */)
      (Lisp_Object frame)
 {
-  struct frame *f = check_ns_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f);
 
   if (dpyinfo->x_focus_frame != f)
@@ -1439,18 +1400,8 @@ DEFUN ("ns-popup-font-panel", Fns_popup_font_panel, Sns_popup_font_panel,
        doc: /* Pop up the font panel. */)
      (Lisp_Object frame)
 {
-  id fm;
-  struct frame *f;
-
-  check_ns ();
-  fm = [NSFontManager sharedFontManager];
-  if (NILP (frame))
-    f = SELECTED_FRAME ();
-  else
-    {
-      CHECK_FRAME (frame);
-      f = XFRAME (frame);
-    }
+  struct frame *f = decode_window_system_frame (frame);
+  id fm = [NSFontManager sharedFontManager];
 
   [fm setSelectedFont: ((struct nsfont_info *)f->output_data.ns->font)->nsfont
            isMultiple: NO];
@@ -1464,17 +1415,7 @@ DEFUN ("ns-popup-color-panel", Fns_popup_color_panel, Sns_popup_color_panel,
        doc: /* Pop up the color panel.  */)
      (Lisp_Object frame)
 {
-  struct frame *f;
-
-  check_ns ();
-  if (NILP (frame))
-    f = SELECTED_FRAME ();
-  else
-    {
-      CHECK_FRAME (frame);
-      f = XFRAME (frame);
-    }
-
+  check_window_system (NULL);
   [NSApp orderFrontColorPanel: NSApp];
   return Qnil;
 }
@@ -1503,7 +1444,7 @@ Optional arg DIR_ONLY_P, if non-nil, means choose only directories.  */)
   NSString *initS = NILP (init) || !STRINGP (init) ? nil :
     [NSString stringWithUTF8String: SSDATA (init)];
 
-  check_ns ();
+  check_window_system (NULL);
 
   if (fileDelegate == nil)
     fileDelegate = [EmacsFileDelegate new];
@@ -1594,11 +1535,10 @@ If OWNER is nil, Emacs is assumed.  */)
 {
   const char *value;
 
-  check_ns ();
+  check_window_system (NULL);
   if (NILP (owner))
     owner = build_string([ns_app_name UTF8String]);
   CHECK_STRING (name);
-/*fprintf (stderr, "ns-get-resource checking resource '%s'\n", SSDATA (name)); */
 
   value = ns_get_defaults_value (SSDATA (name));
 
@@ -1614,7 +1554,7 @@ If OWNER is nil, Emacs is assumed.
 If VALUE is nil, the default is removed.  */)
      (Lisp_Object owner, Lisp_Object name, Lisp_Object value)
 {
-  check_ns ();
+  check_window_system (NULL);
   if (NILP (owner))
     owner = build_string ([ns_app_name UTF8String]);
   CHECK_STRING (name);
@@ -1642,7 +1582,7 @@ DEFUN ("x-server-max-request-size", Fx_server_max_request_size,
        doc: /* This function is a no-op.  It is only present for completeness.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   /* This function has no real equivalent under NeXTstep.  Return nil to
      indicate this. */
   return Qnil;
@@ -1692,7 +1632,7 @@ If omitted or nil, the selected frame's display is used.  */)
 {
   int num;
 
-  check_ns ();
+  check_ns_display_info (display);
   num = [[NSScreen screens] count];
 
   return (num != 0) ? make_number (num) : Qnil;
@@ -1706,7 +1646,7 @@ DISPLAY should be a frame, the display name as a string, or a terminal ID.
 If omitted or nil, the selected frame's display is used.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   return make_number ((int)
                      ([ns_get_screen (display) frame].size.height/(92.0/25.4)));
 }
@@ -1719,7 +1659,7 @@ DISPLAY should be a frame, the display name as a string, or a terminal ID.
 If omitted or nil, the selected frame's display is used.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   return make_number ((int)
                      ([ns_get_screen (display) frame].size.width/(92.0/25.4)));
 }
@@ -1733,7 +1673,7 @@ DISPLAY should be a frame, the display name as a string, or a terminal ID.
 If omitted or nil, the selected frame's display is used.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   switch ([ns_get_window (display) backingType])
     {
     case NSBackingStoreBuffered:
@@ -1759,7 +1699,8 @@ If omitted or nil, the selected frame's display is used.  */)
      (Lisp_Object display)
 {
   NSWindowDepth depth;
-  check_ns ();
+  
+  check_ns_display_info (display);
   depth = [ns_get_screen (display) depth];
 
   if ( depth == NSBestDepth (NSCalibratedWhiteColorSpace, 2, 2, YES, NULL))
@@ -1786,7 +1727,7 @@ DISPLAY should be a frame, the display name as a string, or a terminal ID.
 If omitted or nil, the selected frame's display is used.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   switch ([ns_get_window (display) backingType])
     {
     case NSBackingStoreBuffered:
@@ -1836,11 +1777,10 @@ terminate Emacs if we can't open the connection.
 DEFUN ("x-close-connection", Fx_close_connection, Sx_close_connection,
        1, 1, 0,
        doc: /* Close the connection to the current Nextstep display server.
-The argument DISPLAY is currently ignored.  */)
+DISPLAY should be a frame, the display name as a string, or a terminal ID.  */)
      (Lisp_Object display)
 {
-  check_ns ();
-  /*ns_delete_terminal (dpyinfo->terminal); */
+  check_ns_display_info (display);
   [NSApp terminate: NSApp];
   return Qnil;
 }
@@ -1865,7 +1805,7 @@ DEFUN ("ns-hide-others", Fns_hide_others, Sns_hide_others,
        doc: /* Hides all applications other than Emacs.  */)
      (void)
 {
-  check_ns ();
+  check_window_system (NULL);
   [NSApp hideOtherApplications: NSApp];
   return Qnil;
 }
@@ -1878,7 +1818,7 @@ If ON is equal to `activate', Emacs is unhidden and becomes
 the active application.  */)
      (Lisp_Object on)
 {
-  check_ns ();
+  check_window_system (NULL);
   if (EQ (on, intern ("activate")))
     {
       [NSApp unhide: NSApp];
@@ -1897,7 +1837,7 @@ DEFUN ("ns-emacs-info-panel", Fns_emacs_info_panel, Sns_emacs_info_panel,
        doc: /* Shows the 'Info' or 'About' panel for Emacs.  */)
      (void)
 {
-  check_ns ();
+  check_window_system (NULL);
   [NSApp orderFrontStandardAboutPanel: nil];
   return Qnil;
 }
@@ -1975,7 +1915,7 @@ DEFUN ("ns-list-services", Fns_list_services, Sns_list_services, 0, 0, 0,
   NSMenu *svcs;
   id delegate;
 
-  check_ns ();
+  check_window_system (NULL);
   svcs = [[NSMenu alloc] initWithTitle: @"Services"];
   [NSApp setServicesMenu: svcs];
   [NSApp registerServicesMenuSendTypes: ns_send_types
@@ -2028,7 +1968,7 @@ there was no result.  */)
   char *utfStr;
 
   CHECK_STRING (service);
-  check_ns ();
+  check_window_system (NULL);
 
   utfStr = SSDATA (service);
   svcName = [NSString stringWithUTF8String: utfStr];
@@ -2152,7 +2092,7 @@ In case the execution fails, an error is signaled. */)
   NSEvent *nxev;
 
   CHECK_STRING (script);
-  check_ns ();
+  check_window_system (NULL);
 
   block_input ();
 
@@ -2201,15 +2141,6 @@ In case the execution fails, an error is signaled. */)
 
    ========================================================================== */
 
-
-/* called from image.c */
-FRAME_PTR
-check_x_frame (Lisp_Object frame)
-{
-  return check_ns_frame (frame);
-}
-
-
 /* called from frame.c */
 struct ns_display_info *
 check_x_display_info (Lisp_Object frame)
@@ -2235,7 +2166,7 @@ x_get_string_resource (XrmDatabase rdb, char *name, char *class)
   /* remove appname prefix; TODO: allow for !="Emacs" */
   char *toCheck = class + (!strncmp (class, "Emacs.", 6) ? 6 : 0);
   const char *res;
-  check_ns ();
+  check_window_system (NULL);
 
   if (inhibit_x_resources)
     /* --quick was passed, so this is a no-op.  */
@@ -2305,7 +2236,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
      (Lisp_Object color, Lisp_Object frame)
 {
   NSColor * col;
-  check_ns ();
+  check_window_system (NULL);
   return ns_lisp_to_color (color, &col) ? Qnil : Qt;
 }
 
@@ -2317,7 +2248,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
   NSColor * col;
   CGFloat red, green, blue, alpha;
 
-  check_ns ();
+  check_window_system (NULL);
   CHECK_STRING (color);
 
   if (ns_lisp_to_color (color, &col))
@@ -2336,7 +2267,8 @@ DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
 {
   NSWindowDepth depth;
   NSString *colorSpace;
-  check_ns ();
+  
+  check_ns_display_info (display);
   depth = [ns_get_screen (display) depth];
   colorSpace = NSColorSpaceFromDepth (depth);
 
@@ -2356,7 +2288,8 @@ If omitted or nil, that stands for the selected frame's display. */)
      (Lisp_Object display)
 {
   NSWindowDepth depth;
-  check_ns ();
+
+  check_ns_display_info (display);
   depth = [ns_get_screen (display) depth];
 
   return NSBitsPerPixelFromDepth (depth) > 1 ? Qt : Qnil;
@@ -2371,7 +2304,7 @@ DISPLAY should be either a frame, a display name (a string), or terminal ID.
 If omitted or nil, that stands for the selected frame's display.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   return make_number ((int) [ns_get_screen (display) frame].size.width);
 }
 
@@ -2384,7 +2317,7 @@ DISPLAY should be either a frame, a display name (a string), or terminal ID.
 If omitted or nil, that stands for the selected frame's display.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   return make_number ((int) [ns_get_screen (display) frame].size.height);
 }
 
@@ -2404,7 +2337,7 @@ that stands for the selected frame's display. */)
   NSScreen *screen;
   NSRect vScreen;
 
-  check_ns ();
+  check_ns_display_info (display);
   screen = ns_get_screen (display);
   if (!screen)
     return Qnil;
@@ -2428,7 +2361,7 @@ DISPLAY should be either a frame, a display name (a string), or terminal ID.
 If omitted or nil, that stands for the selected frame's display.  */)
      (Lisp_Object display)
 {
-  check_ns ();
+  check_ns_display_info (display);
   return make_number
     (NSBitsPerPixelFromDepth ([ns_get_screen (display) depth]));
 }
@@ -2442,10 +2375,7 @@ DISPLAY should be either a frame, a display name (a string), or terminal ID.
 If omitted or nil, that stands for the selected frame's display.  */)
      (Lisp_Object display)
 {
-  struct ns_display_info *dpyinfo;
-  check_ns ();
-
-  dpyinfo = check_ns_display_info (display);
+  struct ns_display_info *dpyinfo = check_ns_display_info (display);
   /* We force 24+ bit depths to 24-bit to prevent an overflow.  */
   return make_number (1 << min (dpyinfo->n_planes, 24));
 }
@@ -2558,7 +2488,7 @@ Text larger than the specified size is clipped.  */)
 
   CHECK_STRING (string);
   str = SSDATA (string);
-  f = check_x_frame (frame);
+  f = decode_window_system_frame (frame);
   if (NILP (timeout))
     timeout = make_number (5);
   else
@@ -2787,9 +2717,6 @@ be used as the image of the icon representing the frame.  */);
   defsubr (&Sx_show_tip);
   defsubr (&Sx_hide_tip);
 
-  /* used only in fontset.c */
-  check_window_system_func = check_ns;
-
   as_status = 0;
   as_script = Qnil;
   as_result = 0;
index 22ff4dd0b53bf40f68d1bb82780f117c8d49573d..648b568d180af8e7cfe26ec2f5f2ae9b8e968ae6 100644 (file)
@@ -88,14 +88,6 @@ static int trackingMenu;
    ========================================================================== */
 
 
-/* FIXME: not currently used, but should normalize with other terms. */
-void
-x_activate_menubar (struct frame *f)
-{
-    fprintf (stderr, "XXX: Received x_activate_menubar event.\n");
-}
-
-
 /* Supposed to discard menubar and free storage.  Since we share the
    menubar among frames and update its context for the focused window,
    there is nothing to do here. */
@@ -138,7 +130,7 @@ ns_update_menubar (struct frame *f, bool deep_p, EmacsMenu *submenu)
   long t;
 #endif
 
-  NSTRACE (set_frame_menubar);
+  NSTRACE (ns_update_menubar);
 
   if (f != SELECTED_FRAME ())
       return;
@@ -191,7 +183,7 @@ ns_update_menubar (struct frame *f, bool deep_p, EmacsMenu *submenu)
        = alloca (previous_menu_items_used * sizeof *previous_items);
 
       /* lisp preliminaries */
-      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->buffer;
+      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->contents;
       specbind (Qinhibit_quit, Qt);
       specbind (Qdebug_on_next_call, Qnil);
       record_unwind_save_match_data ();
@@ -512,6 +504,29 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p)
   ns_update_menubar (f, deep_p, nil);
 }
 
+void
+x_activate_menubar (struct frame *f)
+{
+  NSArray *a = [[NSApp mainMenu] itemArray];
+  /* Update each submenu separately so ns_update_menubar doesn't reset
+     the delegate.  */
+  int i = 0;
+  while (i < [a count])
+    {
+      EmacsMenu *menu = (EmacsMenu *)[[a objectAtIndex:i] submenu];
+      const char *title = [[menu title] UTF8String];
+      if (strcmp (title, ns_get_pending_menu_title ()) == 0)
+        {
+          ns_update_menubar (f, true, menu);
+          break;
+        }
+      ++i;
+    }
+  ns_check_pending_open_menu ();
+}
+
+
+
 
 /* ==========================================================================
 
@@ -564,6 +579,14 @@ extern NSString *NSMenuDidBeginTrackingNotification;
   trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification
                   ? 1 : 0);
 }
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+- (void)menuWillOpen:(NSMenu *)menu
+{
+  ns_check_menu_open (menu);
+}
+#endif
+
 #endif
 
 /* delegate method called when a submenu is being opened: run a 'deep' call
@@ -591,7 +614,12 @@ extern NSString *NSMenuDidBeginTrackingNotification;
   if (trackingMenu == 0)
     return;
 /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */
-  ns_update_menubar (frame, 1, self);
+#if ! defined(NS_IMPL_COCOA) || \
+  MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
+  /* Don't know how to do this for anything other than OSX >= 10.5
+     This is wrong, as it might run Lisp code in the event loop.  */
+  ns_update_menubar (frame, true, self);
+#endif
 }
 
 
@@ -1300,6 +1328,7 @@ update_frame_tool_bar (FRAME_PTR f)
   wr.size = [textField frame].size;
 
   [win setFrame: wr display: YES];
+  [win setLevel: NSPopUpMenuWindowLevel];
   [win orderFront: self];
   [win display];
   timer = [NSTimer scheduledTimerWithTimeInterval: (float)seconds target: self
@@ -1380,8 +1409,6 @@ ns_popup_dialog (Lisp_Object position, Lisp_Object contents, Lisp_Object header)
 
   NSTRACE (x-popup-dialog);
 
-  check_ns ();
-
   isQ = NILP (header);
 
   if (EQ (position, Qt)
@@ -1419,6 +1446,8 @@ ns_popup_dialog (Lisp_Object position, Lisp_Object contents, Lisp_Object header)
   else
     CHECK_WINDOW (window);
 
+  check_window_system (f);
+
   p.x = (int)f->left_pos + ((int)FRAME_COLUMN_WIDTH (f) * f->text_cols)/2;
   p.y = (int)f->top_pos + (FRAME_LINE_HEIGHT (f) * f->text_lines)/2;
 
index 49380f879456b8a2025eb128324d140f5d3fb598..bb9eacd23cd42e9f141514dd1e71824204560991 100644 (file)
@@ -354,8 +354,7 @@ On Nextstep, FRAME is unused.  */)
   Lisp_Object successful_p = Qnil, rest;
   Lisp_Object target_symbol, data;
 
-
-  check_ns ();
+  check_window_system (NULL);
   CHECK_SYMBOL (selection);
   if (NILP (value))
       error ("selection value may not be nil.");
@@ -409,7 +408,7 @@ On MS-DOS, all this does is return non-nil if we own the selection.  */)
   (Lisp_Object selection, Lisp_Object time_object, Lisp_Object terminal)
 {
   id pb;
-  check_ns ();
+  check_window_system (NULL);
   CHECK_SYMBOL (selection);
   if (NILP (assq_no_quit (selection, Vselection_alist))) return Qnil;
 
@@ -436,7 +435,7 @@ On Nextstep, TERMINAL is unused.  */)
   id pb;
   NSArray *types;
 
-  check_ns ();
+  check_window_system (NULL);
   CHECK_SYMBOL (selection);
   if (EQ (selection, Qnil)) selection = QPRIMARY;
   if (EQ (selection, Qt)) selection = QSECONDARY;
@@ -464,7 +463,7 @@ frame's display, or the first available X display.
 On Nextstep, TERMINAL is unused.  */)
      (Lisp_Object selection, Lisp_Object terminal)
 {
-  check_ns ();
+  check_window_system (NULL);
   CHECK_SYMBOL (selection);
   if (EQ (selection, Qnil)) selection = QPRIMARY;
   if (EQ (selection, Qt)) selection = QSECONDARY;
@@ -492,7 +491,7 @@ On Nextstep, TIME-STAMP and TERMINAL are unused.  */)
 {
   Lisp_Object val;
 
-  check_ns ();
+  check_window_system (NULL);
   CHECK_SYMBOL (selection_name);
   CHECK_SYMBOL (target_type);
   val = ns_get_local_selection (selection_name, target_type);
@@ -516,7 +515,7 @@ SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */)
      (Lisp_Object selection)
 {
   id pb;
-  check_ns ();
+  check_window_system (NULL);
   pb = ns_symbol_to_pb (selection);
   return pb != nil ? ns_string_from_pasteboard (pb) : Qnil;
 }
@@ -529,7 +528,7 @@ SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. */)
      (Lisp_Object selection, Lisp_Object string)
 {
   id pb;
-  check_ns ();
+  check_window_system (NULL);
   pb = ns_symbol_to_pb (selection);
   if (pb != nil) ns_string_to_pasteboard (pb, string);
   return Qnil;
index 6bd04b96684dff1a8a68ae8bfa100f3b895a35fa..07cfc2e022e09209541e063fd27c6b05fea415cd 100644 (file)
@@ -577,8 +577,6 @@ extern Lisp_Object ns_display_name_list;
 extern struct ns_display_info *ns_display_info_for_name (Lisp_Object name);
 
 struct ns_display_info *check_x_display_info (Lisp_Object frame);
-FRAME_PTR check_x_frame (Lisp_Object frame);
-
 
 struct ns_output
 {
@@ -764,7 +762,6 @@ extern void ns_clear_frame (struct frame *f);
 
 extern const char *ns_xlfd_to_fontname (const char *xlfd);
 
-extern void check_ns (void);
 extern Lisp_Object ns_map_event_to_object (void);
 #ifdef __OBJC__
 extern Lisp_Object ns_string_from_pasteboard (id pb);
@@ -792,6 +789,9 @@ extern int ns_lisp_to_color (Lisp_Object color, NSColor **col);
 extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f);
 extern unsigned long ns_index_color (NSColor *color, struct frame *f);
 extern void ns_free_indexed_color (unsigned long idx, struct frame *f);
+extern const char *ns_get_pending_menu_title ();
+extern void ns_check_menu_open (NSMenu *menu);
+extern void ns_check_pending_open_menu ();
 #endif
 
 /* C access to ObjC functionality */
index 40e506eab2787fe3d9596598d50a69782b455573..f5b48ee4b112d01411089d9f2e2af0aa8c23d369 100644 (file)
@@ -228,6 +228,25 @@ static struct {
   NULL, 0, 0
 };
 
+/*
+ * State for pending menu activation:
+ * MENU_NONE     Normal state
+ * MENU_PENDING  A menu has been clicked on, but has been canceled so we can
+ *               run lisp to update the menu.
+ * MENU_OPENING  Menu is up to date, and the click event is redone so the menu
+ *               will open.
+ */
+#define MENU_NONE 0
+#define MENU_PENDING 1
+#define MENU_OPENING 2
+static int menu_will_open_state = MENU_NONE;
+
+/* Saved position for menu click.  */
+static CGPoint menu_mouse_point;
+
+/* Title for the menu to open.  */
+static char *menu_pending_title = 0;
+
 /* Convert modifiers in a NeXTstep event to emacs style modifiers.  */
 #define NS_FUNCTION_KEY_MASK 0x800000
 #define NSLeftControlKeyMask    (0x000001 | NSControlKeyMask)
@@ -993,8 +1012,9 @@ ns_raise_frame (struct frame *f)
      Bring window to foreground and make it active
    -------------------------------------------------------------------------- */
 {
-  NSView *view = FRAME_NS_VIEW (f);
-  check_ns ();
+  NSView *view;
+  check_window_system (f);
+  view = FRAME_NS_VIEW (f);
   block_input ();
   if (FRAME_VISIBLE_P (f))
     [[view window] makeKeyAndOrderFront: NSApp];
@@ -1008,8 +1028,9 @@ ns_lower_frame (struct frame *f)
      Send window to back
    -------------------------------------------------------------------------- */
 {
-  NSView *view = FRAME_NS_VIEW (f);
-  check_ns ();
+  NSView *view;
+  check_window_system (f);
+  view = FRAME_NS_VIEW (f);
   block_input ();
   [[view window] orderBack: NSApp];
   unblock_input ();
@@ -1112,9 +1133,10 @@ x_make_frame_invisible (struct frame *f)
      External: Hide the window (X11 semantics)
    -------------------------------------------------------------------------- */
 {
-  NSView * view = FRAME_NS_VIEW (f);
+  NSView *view;
   NSTRACE (x_make_frame_invisible);
-  check_ns ();
+  check_window_system (f);
+  view = FRAME_NS_VIEW (f);
   [[view window] orderOut: NSApp];
   SET_FRAME_VISIBLE (f, 0);
   SET_FRAME_ICONIFIED (f, 0);
@@ -1127,10 +1149,13 @@ x_iconify_frame (struct frame *f)
      External: Iconify window
    -------------------------------------------------------------------------- */
 {
-  NSView * view = FRAME_NS_VIEW (f);
-  struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f);
+  NSView *view;
+  struct ns_display_info *dpyinfo;
+
   NSTRACE (x_iconify_frame);
-  check_ns ();
+  check_window_system (f);
+  view = FRAME_NS_VIEW (f);
+  dpyinfo = FRAME_NS_DISPLAY_INFO (f);
 
   if (dpyinfo->x_highlight_frame == f)
     dpyinfo->x_highlight_frame = 0;
@@ -1155,11 +1180,15 @@ x_iconify_frame (struct frame *f)
 void
 x_free_frame_resources (struct frame *f)
 {
-  NSView *view = FRAME_NS_VIEW (f);
-  struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f);
-  Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
+  NSView *view;
+  struct ns_display_info *dpyinfo;
+  Mouse_HLInfo *hlinfo;
+
   NSTRACE (x_free_frame_resources);
-  check_ns ();
+  check_window_system (f);
+  view = FRAME_NS_VIEW (f);
+  dpyinfo = FRAME_NS_DISPLAY_INFO (f);
+  hlinfo = MOUSE_HL_INFO (f);
 
   [(EmacsView *)view setWindowClosing: YES]; /* may not have been informed */
 
@@ -1200,7 +1229,7 @@ x_destroy_window (struct frame *f)
    -------------------------------------------------------------------------- */
 {
   NSTRACE (x_destroy_window);
-  check_ns ();
+  check_window_system (f);
   x_free_frame_resources (f);
   ns_window_num--;
 }
@@ -1854,7 +1883,7 @@ ns_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
         f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame
                                     : SELECTED_FRAME ();
 
-      if (f && f->output_data.ns)  /* TODO: 2nd check no longer needed? */
+      if (f && FRAME_NS_P (f))
         {
           view = FRAME_NS_VIEW (*fp);
 
@@ -3388,6 +3417,77 @@ check_native_fs ()
 }
 #endif
 
+const char *
+ns_get_pending_menu_title ()
+{
+  return menu_pending_title;
+}
+
+/* Check if menu open should be cancelled or continued as normal.  */
+void
+ns_check_menu_open (NSMenu *menu)
+{
+  /* GNUStep and OSX <= 10.4 does not have cancelTracking.  */
+#if defined(NS_IMPL_COCOA) && \
+  MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+
+  /* Click in menu bar? */
+  NSArray *a = [[NSApp mainMenu] itemArray];
+  int i;
+  BOOL found = NO;
+  for (i = 0; ! found && i < [a count]; i++)
+    found = menu == [[a objectAtIndex:i] submenu];
+  if (found)
+    {
+      if (menu_will_open_state == MENU_NONE && emacs_event)
+        {
+          NSEvent *theEvent = [NSApp currentEvent];
+          struct frame *emacsframe = SELECTED_FRAME ();
+
+          [menu cancelTracking];
+          menu_will_open_state = MENU_PENDING;
+          emacs_event->kind = MENU_BAR_ACTIVATE_EVENT;
+          EV_TRAILER (theEvent);
+
+          CGEventRef ourEvent = CGEventCreate (NULL);
+          menu_mouse_point = CGEventGetLocation (ourEvent);
+          CFRelease (ourEvent);
+          xfree (menu_pending_title);
+          menu_pending_title = xstrdup ([[menu title] UTF8String]);
+        }
+      else if (menu_will_open_state == MENU_OPENING)
+        {
+          menu_will_open_state = MENU_NONE;
+        }
+    }
+#endif
+}
+
+/* Redo saved menu click if state is MENU_PENDING.  */
+void
+ns_check_pending_open_menu ()
+{
+#ifdef NS_IMPL_COCOA
+  if (menu_will_open_state == MENU_PENDING)
+    {
+      CGEventSourceRef source
+        = CGEventSourceCreate (kCGEventSourceStateHIDSystemState);
+
+      CGEventRef event = CGEventCreateMouseEvent (source,
+                                                  kCGEventLeftMouseDown,
+                                                  menu_mouse_point,
+                                                  kCGMouseButtonLeft);
+      CGEventSetType (event, kCGEventLeftMouseDown);
+      CGEventPost (kCGHIDEventTap, event);
+      CFRelease (event);
+      CFRelease (source);
+
+      menu_will_open_state = MENU_OPENING;
+    }
+#endif
+}
+
+
 static int
 ns_read_socket (struct terminal *terminal, struct input_event *hold_quit)
 /* --------------------------------------------------------------------------
@@ -6532,7 +6632,7 @@ not_in_argv (NSString *arg)
 {
   Lisp_Object str = Qnil;
   struct frame *f = SELECTED_FRAME ();
-  struct buffer *curbuf = XBUFFER (XWINDOW (f->selected_window)->buffer);
+  struct buffer *curbuf = XBUFFER (XWINDOW (f->selected_window)->contents);
 
   if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
     return NSAccessibilityTextFieldRole;
index 8498a758a21a2e5594078a9c7ab6c96947336926..eb1f9cba82dc86e89e07ed318be8d0b9e456d992 100644 (file)
@@ -1778,10 +1778,10 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag)
          strout ("#<window ", -1, -1, printcharfun);
          len = sprintf (buf, "%p", XWINDOW (obj));
          strout (buf, len, len, printcharfun);
-         if (!NILP (XWINDOW (obj)->buffer))
+         if (BUFFERP (XWINDOW (obj)->contents))
            {
              strout (" on ", -1, -1, printcharfun);
-             print_string (BVAR (XBUFFER (XWINDOW (obj)->buffer), name),
+             print_string (BVAR (XBUFFER (XWINDOW (obj)->contents), name),
                            printcharfun);
            }
          PRINTCHAR ('>');
index 6a14a536707dc752d1d8e868f401640791faad6b..911a30bc808eaa6991c33d0d863977adda15bdd7 100644 (file)
@@ -4236,7 +4236,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
       time_limit = 0;
       nsecs = -1;
     }
-  else if (time_limit > TYPE_MAXIMUM (time_t))
+  else if (TYPE_MAXIMUM (time_t) < time_limit)
     time_limit = TYPE_MAXIMUM (time_t);
 
   /* Since we may need to wait several times,
index ece346ecd06ab886072add782540b0e7ba3ddb65..ea36133deb7e5ba65db97872ac2287442a54960e 100644 (file)
@@ -2533,9 +2533,9 @@ since only regular expressions have distinguished subexpressions.  */)
       bool str_multibyte = STRING_MULTIBYTE (newtext);
       bool really_changed = 0;
 
-      substed_alloc_size = (length > (STRING_BYTES_BOUND - 100) / 2
-                           ? STRING_BYTES_BOUND
-                           : length * 2 + 100);
+      substed_alloc_size = (length <= (STRING_BYTES_BOUND - 100) / 2
+                           ? length * 2 + 100
+                           : STRING_BYTES_BOUND);
       substed = xmalloc (substed_alloc_size);
       substed_len = 0;
 
index 2b45448537001df491bbcf1fbaa4847980beb101..cc364d5a38cfd6683fe0968f04a739a03a774cbf 100644 (file)
@@ -597,8 +597,9 @@ get_char_property_and_overlay (Lisp_Object position, register Lisp_Object prop,
 
   if (WINDOWP (object))
     {
+      CHECK_LIVE_WINDOW (object);
       w = XWINDOW (object);
-      object = w->buffer;
+      object = w->contents;
     }
   if (BUFFERP (object))
     {
index 881418934450f1f42ade874d64274448b454a3d8..5d3a78f8b9531d6b6c8416956eed2f41767bfba0 100644 (file)
@@ -95,10 +95,6 @@ static HWND hourglass_hwnd = NULL;
 #define IDC_HAND MAKEINTRESOURCE(32649)
 #endif
 
-/* Nonzero if using Windows.  */
-
-static int w32_in_use;
-
 Lisp_Object Qsuppress_icon;
 Lisp_Object Qundefined_color;
 Lisp_Object Qcancel_timer;
@@ -239,37 +235,6 @@ HINSTANCE hinst = NULL;
 static unsigned int sound_type = 0xFFFFFFFF;
 #define MB_EMACS_SILENT (0xFFFFFFFF - 1)
 
-\f
-/* Error if we are not connected to MS-Windows.  */
-void
-check_w32 (void)
-{
-  if (! w32_in_use)
-    error ("MS-Windows not in use or not initialized");
-}
-
-/* Nonzero if we can use mouse menus.
-   You should not call this unless HAVE_MENUS is defined.  */
-
-int
-have_menus_p (void)
-{
-  return w32_in_use;
-}
-
-/* Extract a frame as a FRAME_PTR, defaulting to the selected frame
-   and checking validity for W32.  */
-
-FRAME_PTR
-check_x_frame (Lisp_Object frame)
-{
-  struct frame *f = decode_live_frame (frame);
-
-  if (! FRAME_W32_P (f))
-    error ("Non-W32 frame used");
-  return f;
-}
-
 /* Let the user specify a display with a frame.
    nil stands for the selected frame--or, if that is not a w32 frame,
    the first display on the list.  */
@@ -3155,8 +3120,26 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
          form.ptCurrentPos.y = w32_system_caret_y;
 
          form.rcArea.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, 0);
+
+#ifdef ENABLE_CHECKING
+         /* Temporary code to catch crashes in computing form.rcArea.top.  */
+         {
+           int wmbp = WINDOW_MENU_BAR_P (w);
+           int wtbp = WINDOW_TOOL_BAR_P (w);
+           struct frame *wf = WINDOW_XFRAME (w);
+           int fibw = FRAME_INTERNAL_BORDER_WIDTH (wf);
+           int wtel = WINDOW_TOP_EDGE_LINE (w);
+           int wflh = FRAME_LINE_HEIGHT (wf);
+           int wwhlp= WINDOW_WANTS_HEADER_LINE_P (w);
+           int chlh = CURRENT_HEADER_LINE_HEIGHT (w);
+           int whlh = (wwhlp ? chlh : 0);
+
+           form.rcArea.top = ((wmbp || wtbp) ? 0 : fibw) + wtel * wflh + whlh;
+         }
+#else
          form.rcArea.top = (WINDOW_TOP_EDGE_Y (w)
                             + WINDOW_HEADER_LINE_HEIGHT (w));
+#endif
          form.rcArea.right = (WINDOW_BOX_RIGHT_EDGE_X (w)
                               - WINDOW_RIGHT_MARGIN_WIDTH (w)
                               - WINDOW_RIGHT_FRINGE_WIDTH (w));
@@ -4549,7 +4532,7 @@ DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0,
        doc: /* Give FRAME input focus, raising to foreground if necessary.  */)
   (Lisp_Object frame)
 {
-  x_focus_on_frame (check_x_frame (frame));
+  x_focus_on_frame (decode_window_system_frame (frame));
   return Qnil;
 }
 
@@ -4560,7 +4543,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
 
   CHECK_STRING (color);
 
@@ -4575,7 +4558,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
 
   CHECK_STRING (color);
 
@@ -4893,7 +4876,6 @@ x_display_info_for_name (Lisp_Object name)
   if (dpyinfo == 0)
     error ("Cannot connect to server %s", SDATA (name));
 
-  w32_in_use = 1;
   XSETFASTINT (Vwindow_system_version, w32_major_version);
 
   return dpyinfo;
@@ -4923,7 +4905,7 @@ terminate Emacs if we can't open the connection.
 
   /* If initialization has already been done, return now to avoid
      overwriting critical parts of one_w32_display_info.  */
-  if (w32_in_use)
+  if (window_system_available (NULL))
     return Qnil;
 
   if (! NILP (xrm_string))
@@ -4992,8 +4974,6 @@ terminate Emacs if we can't open the connection.
        error ("Cannot connect to server %s", SDATA (display));
     }
 
-  w32_in_use = 1;
-
   XSETFASTINT (Vwindow_system_version, w32_major_version);
   return Qnil;
 }
@@ -5077,7 +5057,7 @@ FRAME.  Default is to change on the edit X window.  */)
   (Lisp_Object prop, Lisp_Object value, Lisp_Object frame,
    Lisp_Object type, Lisp_Object format, Lisp_Object outer_p)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
 
   CHECK_STRING (prop);
@@ -5103,7 +5083,7 @@ DEFUN ("x-delete-window-property", Fx_delete_window_property,
 FRAME nil or omitted means use the selected frame.  Value is PROP.  */)
   (Lisp_Object prop, Lisp_Object frame)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
 
   CHECK_STRING (prop);
@@ -5139,7 +5119,7 @@ no value of TYPE (always string in the MS Windows case).  */)
   (Lisp_Object prop, Lisp_Object frame, Lisp_Object type,
    Lisp_Object source, Lisp_Object delete_p, Lisp_Object vector_ret_p)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
   int rc;
   Lisp_Object prop_value = Qnil;
@@ -5340,8 +5320,6 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
   Lisp_Object buffer;
   struct buffer *old_buffer;
 
-  check_w32 ();
-
   /* Use this general default value to start with until we know if
      this frame has a specified name.  */
   Vx_resource_name = Vinvocation_name;
@@ -5685,7 +5663,7 @@ Text larger than the specified size is clipped.  */)
   GCPRO4 (string, parms, frame, timeout);
 
   CHECK_STRING (string);
-  f = check_x_frame (frame);
+  f = decode_window_system_frame (frame);
   if (NILP (timeout))
     timeout = make_number (5);
   else
@@ -5792,13 +5770,13 @@ Text larger than the specified size is clipped.  */)
       w->total_lines = 40;
     }
 
-  FRAME_TOTAL_COLS (f) = XINT (w->total_cols);
+  FRAME_TOTAL_COLS (f) = WINDOW_TOTAL_COLS (w);
   adjust_glyphs (f);
   w->pseudo_window_p = 1;
 
   /* Display the tooltip text in a temporary buffer.  */
   old_buffer = current_buffer;
-  set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer));
+  set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->contents));
   bset_truncate_lines (current_buffer, Qnil);
   clear_glyph_matrix (w->desired_matrix);
   clear_glyph_matrix (w->current_matrix);
@@ -6336,7 +6314,7 @@ screen saver if defined.
 If optional parameter FRAME is not specified, use selected frame.  */)
   (Lisp_Object command, Lisp_Object frame)
 {
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
 
   CHECK_NUMBER (command);
 
@@ -7294,8 +7272,6 @@ void
 syms_of_w32fns (void)
 {
   globals_of_w32fns ();
-  /* This is zero if not using MS-Windows.  */
-  w32_in_use = 0;
   track_mouse_window = NULL;
 
   w32_visible_system_caret_hwnd = NULL;
@@ -7617,8 +7593,6 @@ only be necessary if the default setting causes problems.  */);
   defsubr (&Sdefault_printer_name);
   defsubr (&Sset_message_beep);
 
-  check_window_system_func = check_w32;
-
   hourglass_hwnd = NULL;
 
   defsubr (&Sx_show_tip);
index fb52376b9e1576c116b6ca77454d9113d7d4e13f..105daa063654269063f18e68209d939d44656f74 100644 (file)
@@ -2467,7 +2467,7 @@ If EXCLUDE-PROPORTIONAL is non-nil, exclude proportional fonts
 in the font selection dialog. */)
   (Lisp_Object frame, Lisp_Object exclude_proportional)
 {
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
   CHOOSEFONT cf;
   LOGFONT lf;
   TEXTMETRIC tm;
index 03904cf20b86236204a1a287b828998864ee155b..346402b7c6bbcb8d3d30a322dc78b1deba55a1e7 100644 (file)
@@ -140,8 +140,6 @@ otherwise it is "Question". */)
   FRAME_PTR f = NULL;
   Lisp_Object window;
 
-  check_w32 ();
-
   /* Decode the first argument: find the window or frame to use.  */
   if (EQ (position, Qt)
       || (CONSP (position) && (EQ (XCAR (position), Qmenu_bar)
@@ -194,6 +192,8 @@ otherwise it is "Question". */)
        but I don't want to make one now.  */
     CHECK_WINDOW (window);
 
+  check_window_system (f);
+
 #ifndef HAVE_DIALOGS
 
   {
@@ -396,7 +396,7 @@ set_frame_menubar (FRAME_PTR f, bool first_time, bool deep_p)
       if (! menubar_widget)
        previous_menu_items_used = 0;
 
-      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->buffer;
+      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->contents;
       specbind (Qinhibit_quit, Qt);
       /* Don't let the debugger step into this code
         because it is not reentrant.  */
index 5f7952c2ec28f641b8ce38be95be346670939f64..d249d6e3252542bafb812c9c4177a181d169c9d3 100644 (file)
@@ -5694,7 +5694,7 @@ w32fullscreen_hook (FRAME_PTR f)
       /* Need to send SC_RESTORE to the window, in case we are
         resizing from FULLSCREEN_MAXIMIZED.  Otherwise, the mouse
         resize hints will not be shown by the window manager when the
-        mouse pointer hovers over the window edges, becaise the WM
+        mouse pointer hovers over the window edges, because the WM
         will still think the window is maximized.  */
       if (f->want_fullscreen != FULLSCREEN_BOTH)
        SendMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, SC_RESTORE, 0);
index b319f0ca5924c1718943b5663294acacbb2dd1fb..9bb37b31ef578a80bff8bbcc0b705b5b7cc1de97 100644 (file)
@@ -203,7 +203,6 @@ extern void x_focus_on_frame (struct frame *f);
 
 extern struct w32_display_info *w32_term_init (Lisp_Object,
                                               char *, char *);
-extern void check_w32 (void);
 extern int w32_defined_color (FRAME_PTR f, const char *color,
                               XColor *color_def, int alloc);
 extern void x_set_window_size (struct frame *f, int change_grav,
@@ -740,7 +739,6 @@ struct image;
 struct face;
 
 XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *);
-struct frame * check_x_frame (Lisp_Object);
 
 typedef DWORD (WINAPI * ClipboardSequence_Proc) (void);
 typedef BOOL (WINAPI * AppendMenuW_Proc) (
index a2e6a5a0602a6af0053e18465d9ba5d8435e3e74..77604f4ee1960973fd52e1a659d9694ef59765ef 100644 (file)
@@ -148,11 +148,6 @@ wset_display_table (struct window *w, Lisp_Object val)
   w->display_table = val;
 }
 static void
-wset_hchild (struct window *w, Lisp_Object val)
-{
-  w->hchild = val;
-}
-static void
 wset_left_fringe_width (struct window *w, Lisp_Object val)
 {
   w->left_fringe_width = val;
@@ -218,11 +213,6 @@ wset_temslot (struct window *w, Lisp_Object val)
   w->temslot = val;
 }
 static void
-wset_vchild (struct window *w, Lisp_Object val)
-{
-  w->vchild = val;
-}
-static void
 wset_vertical_scroll_bar_type (struct window *w, Lisp_Object val)
 {
   w->vertical_scroll_bar_type = val;
@@ -232,6 +222,18 @@ wset_window_parameters (struct window *w, Lisp_Object val)
 {
   w->window_parameters = val;
 }
+static void
+wset_combination (struct window *w, bool horflag, Lisp_Object val)
+{
+  /* Since leaf windows never becomes non-leaf, there should
+     be no buffer and markers in start and pointm fields of W.  */
+  eassert (!BUFFERP (w->contents) && NILP (w->start) && NILP (w->pointm));
+  w->contents = val;
+  /* When an internal window is deleted and VAL is nil, HORFLAG
+     is meaningless.  */
+  if (!NILP (val))
+    w->horizontal = horflag;
+}
 
 struct window *
 decode_live_window (register Lisp_Object window)
@@ -276,9 +278,9 @@ static void
 adjust_window_count (struct window *w, int arg)
 {
   eassert (eabs (arg) == 1);
-  if (BUFFERP (w->buffer))
+  if (BUFFERP (w->contents))
     {
-      struct buffer *b = XBUFFER (w->buffer);
+      struct buffer *b = XBUFFER (w->contents);
 
       if (b->base_buffer)
        b = b->base_buffer;
@@ -297,7 +299,11 @@ void
 wset_buffer (struct window *w, Lisp_Object val)
 {
   adjust_window_count (w, -1);
-  w->buffer = val;
+  if (BUFFERP (val))
+    /* Make sure that we do not assign the buffer
+       to an internal window.  */
+    eassert (MARKERP (w->start) && MARKERP (w->pointm));
+  w->contents = val;
   adjust_window_count (w, 1);
 }
 
@@ -395,15 +401,8 @@ the first window of that frame.  */)
       window = XFRAME (frame_or_window)->root_window;
     }
 
-  while (NILP (XWINDOW (window)->buffer))
-    {
-      if (! NILP (XWINDOW (window)->hchild))
-       window = XWINDOW (window)->hchild;
-      else if (! NILP (XWINDOW (window)->vchild))
-       window = XWINDOW (window)->vchild;
-      else
-       emacs_abort ();
-    }
+  while (WINDOWP (XWINDOW (window)->contents))
+    window = XWINDOW (window)->contents;
 
   return window;
 }
@@ -490,11 +489,11 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
   if (NILP (norecord))
     {
       w->use_time = ++window_select_count;
-      record_buffer (w->buffer);
+      record_buffer (w->contents);
     }
 
   /* Make the selected window's buffer current.  */
-  Fset_buffer (w->buffer);
+  Fset_buffer (w->contents);
 
   if (EQ (window, selected_window) && !inhibit_point_swap)
     return window;
@@ -517,7 +516,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
 
   select_window_1 (window, inhibit_point_swap);
 
-  bset_last_selected_window (XBUFFER (w->buffer), window);
+  bset_last_selected_window (XBUFFER (w->contents), window);
   windows_or_buffers_changed++;
   return window;
 }
@@ -534,10 +533,10 @@ select_window_1 (Lisp_Object window, bool inhibit_point_swap)
   if (!inhibit_point_swap)
     {
       struct window *ow = XWINDOW (selected_window);
-      if (! NILP (ow->buffer))
-       set_marker_both (ow->pointm, ow->buffer,
-                        BUF_PT (XBUFFER (ow->buffer)),
-                        BUF_PT_BYTE (XBUFFER (ow->buffer)));
+      if (BUFFERP (ow->contents))
+       set_marker_both (ow->pointm, ow->contents,
+                        BUF_PT (XBUFFER (ow->contents)),
+                        BUF_PT_BYTE (XBUFFER (ow->contents)));
     }
 
   selected_window = window;
@@ -582,7 +581,8 @@ If WINDOW is omitted or nil, it defaults to the selected window.
 Return nil for an internal window or a deleted window.  */)
   (Lisp_Object window)
 {
-  return decode_any_window (window)->buffer;
+  struct window *w = decode_any_window (window);
+  return WINDOW_LEAF_P (w) ? w->contents : Qnil;
 }
 
 DEFUN ("window-parent", Fwindow_parent, Swindow_parent, 0, 1, 0,
@@ -602,7 +602,8 @@ Return nil if WINDOW is an internal window whose children form a
 horizontal combination.  */)
   (Lisp_Object window)
 {
-  return decode_valid_window (window)->vchild;
+  struct window *w = decode_valid_window (window);
+  return WINDOW_VERTICAL_COMBINATION_P (w) ? w->contents : Qnil;
 }
 
 DEFUN ("window-left-child", Fwindow_left_child, Swindow_left_child, 0, 1, 0,
@@ -613,7 +614,8 @@ Return nil if WINDOW is an internal window whose children form a
 vertical combination.  */)
   (Lisp_Object window)
 {
-  return decode_valid_window (window)->hchild;
+  struct window *w = decode_valid_window (window);
+  return WINDOW_HORIZONTAL_COMBINATION_P (w) ? w->contents : Qnil;
 }
 
 DEFUN ("window-next-sibling", Fwindow_next_sibling, Swindow_next_sibling, 0, 1, 0,
@@ -646,9 +648,9 @@ WINDOW are never \(re-)combined with WINDOW's siblings.  */)
 
   CHECK_VALID_WINDOW (window);
   w = XWINDOW (window);
-  if (!NILP (w->buffer))
+  if (WINDOW_LEAF_P (w))
     error ("Combination limit is meaningful for internal windows only");
-  return XWINDOW (window)->combination_limit;
+  return w->combination_limit;
 }
 
 DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0,
@@ -664,7 +666,7 @@ future use.  */)
 
   CHECK_VALID_WINDOW (window);
   w = XWINDOW (window);
-  if (!NILP (w->buffer))
+  if (WINDOW_LEAF_P (w))
     error ("Combination limit is meaningful for internal windows only");
   wset_combination_limit (w, limit);
   return limit;
@@ -861,7 +863,7 @@ set_window_hscroll (struct window *w, EMACS_INT hscroll)
 
   /* Prevent redisplay shortcuts when changing the hscroll.  */
   if (w->hscroll != new_hscroll)
-    XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
+    XBUFFER (w->contents)->prevent_redisplay_optimizations_p = 1;
 
   w->hscroll = new_hscroll;
   return make_number (new_hscroll);
@@ -1442,7 +1444,7 @@ correct to return the top-level value of `point', outside of any
   register struct window *w = decode_live_window (window);
 
   if (w == XWINDOW (selected_window))
-    return make_number (BUF_PT (XBUFFER (w->buffer)));
+    return make_number (BUF_PT (XBUFFER (w->contents)));
   else
     return Fmarker_position (w->pointm);
 }
@@ -1484,7 +1486,7 @@ if it isn't already recorded.  */)
   Lisp_Object buf;
   struct buffer *b;
 
-  buf = w->buffer;
+  buf = w->contents;
   CHECK_BUFFER (buf);
   b = XBUFFER (buf);
 
@@ -1547,7 +1549,7 @@ Return POS.  */)
 
   if (w == XWINDOW (selected_window))
     {
-      if (XBUFFER (w->buffer) == current_buffer)
+      if (XBUFFER (w->contents) == current_buffer)
        Fgoto_char (pos);
       else
        {
@@ -1555,14 +1557,14 @@ Return POS.  */)
 
          /* ... but here we want to catch type error before buffer change.  */
          CHECK_NUMBER_COERCE_MARKER (pos);
-         set_buffer_internal (XBUFFER (w->buffer));
+         set_buffer_internal (XBUFFER (w->contents));
          Fgoto_char (pos);
          set_buffer_internal (old_buffer);
        }
     }
   else
     {
-      set_marker_restricted (w->pointm, pos, w->buffer);
+      set_marker_restricted (w->pointm, pos, w->contents);
       /* We have to make sure that redisplay updates the window to show
         the new value of point.  */
       ++windows_or_buffers_changed;
@@ -1580,7 +1582,7 @@ overriding motion of point in order to display at this exact start.  */)
 {
   register struct window *w = decode_live_window (window);
 
-  set_marker_restricted (w->start, pos, w->buffer);
+  set_marker_restricted (w->start, pos, w->contents);
   /* This is not right, but much easier than doing what is right.  */
   w->start_at_line_beg = 0;
   if (NILP (noforce))
@@ -1624,7 +1626,7 @@ display row, and VPOS is the row number (0-based) containing POS.  */)
   int x, y;
 
   w = decode_live_window (window);
-  buf = XBUFFER (w->buffer);
+  buf = XBUFFER (w->contents);
   SET_TEXT_POS_FROM_MARKER (top, w->start);
 
   if (EQ (pos, Qt))
@@ -1693,8 +1695,8 @@ Return nil if window display is not up-to-date.  In that case, use
   if (noninteractive || w->pseudo_window_p)
     return Qnil;
 
-  CHECK_BUFFER (w->buffer);
-  b = XBUFFER (w->buffer);
+  CHECK_BUFFER (w->contents);
+  b = XBUFFER (w->contents);
 
   /* Fail if current matrix is not up-to-date.  */
   if (!w->window_end_valid
@@ -1920,9 +1922,9 @@ window_display_table (struct window *w)
 
   if (DISP_TABLE_P (w->display_table))
     dp = XCHAR_TABLE (w->display_table);
-  else if (BUFFERP (w->buffer))
+  else if (BUFFERP (w->contents))
     {
-      struct buffer *b = XBUFFER (w->buffer);
+      struct buffer *b = XBUFFER (w->contents);
 
       if (DISP_TABLE_P (BVAR (b, display_table)))
        dp = XCHAR_TABLE (BVAR (b, display_table));
@@ -1947,17 +1949,14 @@ WINDOW must be a live window and defaults to the selected one.  */)
 static void
 unshow_buffer (register struct window *w)
 {
-  Lisp_Object buf;
-  struct buffer *b;
+  Lisp_Object buf = w->contents;
+  struct buffer *b = XBUFFER (buf);
 
-  buf = w->buffer;
-  b = XBUFFER (buf);
-  if (b != XMARKER (w->pointm)->buffer)
-    emacs_abort ();
+  eassert (b == XMARKER (w->pointm)->buffer);
 
 #if 0
   if (w == XWINDOW (selected_window)
-      || ! EQ (buf, XWINDOW (selected_window)->buffer))
+      || ! EQ (buf, XWINDOW (selected_window)->contents))
     /* Do this except when the selected window's buffer
        is being removed from some other window.  */
 #endif
@@ -1973,14 +1972,14 @@ unshow_buffer (register struct window *w)
   /* Point in the selected window's buffer
      is actually stored in that buffer, and the window's pointm isn't used.
      So don't clobber point in that buffer.  */
-  if (! EQ (buf, XWINDOW (selected_window)->buffer)
+  if (! EQ (buf, XWINDOW (selected_window)->contents)
       /* Don't clobber point in current buffer either (this could be
         useful in connection with bug#12208).
       && XBUFFER (buf) != current_buffer  */
       /* This line helps to fix Horsley's testbug.el bug.  */
       && !(WINDOWP (BVAR (b, last_selected_window))
           && w != XWINDOW (BVAR (b, last_selected_window))
-          && EQ (buf, XWINDOW (BVAR (b, last_selected_window))->buffer)))
+          && EQ (buf, XWINDOW (BVAR (b, last_selected_window))->contents)))
     temp_set_point_both (b,
                         clip_to_bounds (BUF_BEGV (b),
                                         marker_position (w->pointm),
@@ -2045,13 +2044,8 @@ replace_window (Lisp_Object old, Lisp_Object new, int setflag)
 
   tem = o->parent;
   wset_parent (n, tem);
-  if (!NILP (tem))
-    {
-      if (EQ (XWINDOW (tem)->vchild, old))
-       wset_vchild (XWINDOW (tem), new);
-      if (EQ (XWINDOW (tem)->hchild, old))
-       wset_hchild (XWINDOW (tem), new);
-    }
+  if (!NILP (tem) && EQ (XWINDOW (tem)->contents, old))
+    wset_combination (XWINDOW (tem), XWINDOW (tem)->horizontal, new);
 }
 
 /* If window WINDOW and its parent window are iso-combined, merge
@@ -2070,22 +2064,19 @@ recombine_windows (Lisp_Object window)
   if (!NILP (parent) && NILP (w->combination_limit))
     {
       p = XWINDOW (parent);
-      if (((!NILP (p->vchild) && !NILP (w->vchild))
-          || (!NILP (p->hchild) && !NILP (w->hchild))))
+      if (WINDOWP (p->contents) && WINDOWP (w->contents)
+         && p->horizontal == w->horizontal)
        /* WINDOW and PARENT are both either a vertical or a horizontal
           combination.  */
        {
-         horflag = NILP (w->vchild);
-         child = horflag ? w->hchild : w->vchild;
+         horflag = WINDOW_HORIZONTAL_COMBINATION_P (w);
+         child = w->contents;
          c = XWINDOW (child);
 
          /* Splice WINDOW's children into its parent's children and
             assign new normal sizes.  */
          if (NILP (w->prev))
-           if (horflag)
-             wset_hchild (p, child);
-           else
-             wset_vchild (p, child);
+           wset_combination (p, horflag, child);
          else
            {
              wset_prev (c, w->prev);
@@ -2123,8 +2114,7 @@ recombine_windows (Lisp_Object window)
            }
 
          /* WINDOW can be deleted now.  */
-         wset_vchild (w, Qnil);
-         wset_hchild (w, Qnil);
+         wset_combination (w, 0, Qnil);
        }
     }
 }
@@ -2210,7 +2200,7 @@ candidate_window_p (Lisp_Object window, Lisp_Object owindow, Lisp_Object minibuf
   struct frame *f = XFRAME (w->frame);
   int candidate_p = 1;
 
-  if (!BUFFERP (w->buffer))
+  if (!BUFFERP (w->contents))
     candidate_p = 0;
   else if (MINI_WINDOW_P (w)
            && (EQ (minibuf, Qlambda)
@@ -2550,7 +2540,7 @@ enum window_loop
   GET_BUFFER_WINDOW,               /* Arg is buffer */
   REPLACE_BUFFER_IN_WINDOWS_SAFELY, /* Arg is buffer */
   REDISPLAY_BUFFER_WINDOWS,        /* Arg is buffer */
-  CHECK_ALL_WINDOWS
+  CHECK_ALL_WINDOWS                 /* Arg is ignored */
 };
 
 static Lisp_Object
@@ -2614,7 +2604,7 @@ window_loop (enum window_loop type, Lisp_Object obj, int mini, Lisp_Object frame
        switch (type)
          {
          case GET_BUFFER_WINDOW:
-           if (EQ (w->buffer, obj)
+           if (EQ (w->contents, obj)
                /* Don't find any minibuffer window except the one that
                   is currently in use.  */
                && (MINI_WINDOW_P (w) ? EQ (window, minibuf_window) : 1))
@@ -2638,25 +2628,25 @@ window_loop (enum window_loop type, Lisp_Object obj, int mini, Lisp_Object frame
          case REPLACE_BUFFER_IN_WINDOWS_SAFELY:
            /* We could simply check whether the buffer shown by window
               is live, and show another buffer in case it isn't.  */
-           if (EQ (w->buffer, obj))
+           if (EQ (w->contents, obj))
              {
                /* Undedicate WINDOW.  */
                wset_dedicated (w, Qnil);
                /* Make WINDOW show the buffer returned by
                   other_buffer_safely, don't run any hooks.  */
                set_window_buffer
-                 (window, other_buffer_safely (w->buffer), 0, 0);
+                 (window, other_buffer_safely (w->contents), 0, 0);
                /* If WINDOW is the selected window, make its buffer
                   current.  But do so only if the window shows the
                   current buffer (Bug#6454).  */
                if (EQ (window, selected_window)
-                   && XBUFFER (w->buffer) == current_buffer)
-                 Fset_buffer (w->buffer);
+                   && XBUFFER (w->contents) == current_buffer)
+                 Fset_buffer (w->contents);
              }
            break;
 
          case REDISPLAY_BUFFER_WINDOWS:
-           if (EQ (w->buffer, obj))
+           if (EQ (w->contents, obj))
              {
                mark_window_display_accurate (window, 0);
                w->update_mode_line = 1;
@@ -2666,11 +2656,20 @@ window_loop (enum window_loop type, Lisp_Object obj, int mini, Lisp_Object frame
              }
            break;
 
-           /* Check for a window that has a killed buffer.  */
+           /* Check for a leaf window that has a killed buffer
+              or broken markers.  */
          case CHECK_ALL_WINDOWS:
-           if (! NILP (w->buffer)
-               && !BUFFER_LIVE_P (XBUFFER (w->buffer)))
-             emacs_abort ();
+           if (BUFFERP (w->contents))
+             {
+               struct buffer *b = XBUFFER (w->contents);
+
+               if (!BUFFER_LIVE_P (b))
+                 emacs_abort ();
+               if (!MARKERP (w->start) || XMARKER (w->start)->buffer != b)
+                 emacs_abort ();
+               if (!MARKERP (w->pointm) || XMARKER (w->pointm)->buffer != b)
+                 emacs_abort ();
+             }
            break;
 
          case WINDOW_LOOP_UNUSED:
@@ -2787,7 +2786,7 @@ window-start value is reasonable when this function is called.  */)
   else if (MINI_WINDOW_P (w)) /* && top > 0) */
     error ("Can't expand minibuffer to full frame");
 
-  if (!NILP (w->buffer))
+  if (BUFFERP (w->contents))
     {
       startpos = marker_position (w->start);
       startbyte = marker_byte_position (w->start);
@@ -2859,7 +2858,7 @@ window-start value is reasonable when this function is called.  */)
   FRAME_WINDOW_SIZES_CHANGED (f) = 1;
   resize_failed = 0;
 
-  if (NILP (w->buffer))
+  if (!WINDOW_LEAF_P (w))
     {
       /* Resize child windows vertically.  */
       XSETINT (delta, r->total_lines - w->total_lines);
@@ -2918,28 +2917,21 @@ window-start value is reasonable when this function is called.  */)
       sibling = w->next;
       s = XWINDOW (sibling);
       wset_prev (s, Qnil);
-      if (!NILP (XWINDOW (w->parent)->vchild))
-       wset_vchild (XWINDOW (w->parent), sibling);
-      else
-       wset_hchild (XWINDOW (w->parent), sibling);
+      wset_combination (XWINDOW (w->parent),
+                       XWINDOW (w->parent)->horizontal, sibling);
     }
 
   /* Delete ROOT and all child windows of ROOT.  */
-  if (!NILP (r->vchild))
+  if (WINDOWP (r->contents))
     {
-      delete_all_child_windows (r->vchild);
-      wset_vchild (r, Qnil);
-    }
-  else if (!NILP (r->hchild))
-    {
-      delete_all_child_windows (r->hchild);
-      wset_hchild (r, Qnil);
+      delete_all_child_windows (r->contents);
+      wset_combination (r, 0, Qnil);
     }
 
   replace_window (root, window, 1);
 
   /* This must become SWINDOW anyway ....... */
-  if (!NILP (w->buffer) && !resize_failed)
+  if (BUFFERP (w->contents) && !resize_failed)
     {
       /* Try to minimize scrolling, by setting the window start to the
         point will cause the text at the old window start to be at the
@@ -2948,18 +2940,18 @@ window-start value is reasonable when this function is called.  */)
         when the display is not current, due to typeahead).  */
       new_top = WINDOW_TOP_EDGE_LINE (w) - FRAME_TOP_MARGIN (XFRAME (WINDOW_FRAME (w)));
       if (new_top != top
-         && startpos >= BUF_BEGV (XBUFFER (w->buffer))
-         && startpos <= BUF_ZV (XBUFFER (w->buffer)))
+         && startpos >= BUF_BEGV (XBUFFER (w->contents))
+         && startpos <= BUF_ZV (XBUFFER (w->contents)))
        {
          struct position pos;
          struct buffer *obuf = current_buffer;
 
-         Fset_buffer (w->buffer);
+         Fset_buffer (w->contents);
          /* This computation used to temporarily move point, but that
             can have unwanted side effects due to text properties.  */
          pos = *vmotion (startpos, startbyte, -top, w);
 
-         set_marker_both (w->start, w->buffer, pos.bufpos, pos.bytepos);
+         set_marker_both (w->start, w->contents, pos.bufpos, pos.bytepos);
          w->window_end_valid = 0;
          w->start_at_line_beg = (pos.bytepos == BEGV_BYTE
                                    || FETCH_BYTE (pos.bytepos - 1) == '\n');
@@ -3159,7 +3151,7 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer,
   struct window *w = XWINDOW (window);
   struct buffer *b = XBUFFER (buffer);
   ptrdiff_t count = SPECPDL_INDEX ();
-  int samebuf = EQ (buffer, w->buffer);
+  int samebuf = EQ (buffer, w->contents);
 
   wset_buffer (w, buffer);
 
@@ -3278,7 +3270,7 @@ This function runs `window-scroll-functions' before running
   if (!BUFFER_LIVE_P (XBUFFER (buffer)))
     error ("Attempt to display deleted buffer");
 
-  tem = w->buffer;
+  tem = w->contents;
   if (NILP (tem))
     error ("Window is deleted");
   else
@@ -3331,8 +3323,8 @@ displaying that buffer.  */)
       struct window *w = XWINDOW (object);
       mark_window_display_accurate (object, 0);
       w->update_mode_line = 1;
-      if (BUFFERP (w->buffer))
-       XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
+      if (BUFFERP (w->contents))
+       XBUFFER (w->contents)->prevent_redisplay_optimizations_p = 1;
       ++update_mode_lines;
       return Qt;
     }
@@ -3401,7 +3393,7 @@ temp_output_buffer_show (register Lisp_Object buf)
         record_unwind_protect (Fset_buffer, prev_buffer);
         record_unwind_protect (select_window_norecord, prev_window);
         Fselect_window (window, Qt);
-        Fset_buffer (w->buffer);
+        Fset_buffer (w->contents);
         Frun_hooks (1, &Qtemp_buffer_show_hook);
         unbind_to (count, Qnil);
       }
@@ -3422,7 +3414,7 @@ make_parent_window (Lisp_Object window, bool horflag)
   memcpy ((char *) p + sizeof (struct vectorlike_header),
          (char *) o + sizeof (struct vectorlike_header),
          word_size * VECSIZE (struct window));
-  /* P's buffer slot may change from nil to a buffer.  */
+  /* P's buffer slot may change from nil to a buffer...  */
   adjust_window_count (p, 1);
   XSETWINDOW (parent, p);
 
@@ -3431,12 +3423,11 @@ make_parent_window (Lisp_Object window, bool horflag)
   wset_next (o, Qnil);
   wset_prev (o, Qnil);
   wset_parent (o, parent);
-
-  wset_hchild (p, horflag ? window : Qnil);
-  wset_vchild (p, horflag ? Qnil : window);
+  /* ...but now P becomes an internal window.  */
   wset_start (p, Qnil);
   wset_pointm (p, Qnil);
   wset_buffer (p, Qnil);
+  wset_combination (p, horflag, window);
   wset_combination_limit (p, Qnil);
   wset_window_parameters (p, Qnil);
 }
@@ -3525,10 +3516,10 @@ window_resize_check (struct window *w, bool horflag)
 {
   struct window *c;
 
-  if (!NILP (w->vchild))
+  if (WINDOW_VERTICAL_COMBINATION_P (w))
     /* W is a vertical combination.  */
     {
-      c = XWINDOW (w->vchild);
+      c = XWINDOW (w->contents);
       if (horflag)
        /* All child windows of W must have the same width as W.  */
        {
@@ -3556,10 +3547,10 @@ window_resize_check (struct window *w, bool horflag)
          return (sum_of_sizes == XINT (w->new_total));
        }
     }
-  else if (!NILP (w->hchild))
+  else if (WINDOW_HORIZONTAL_COMBINATION_P (w))
     /* W is a horizontal combination.  */
     {
-      c = XWINDOW (w->hchild);
+      c = XWINDOW (w->contents);
       if (horflag)
        /* The sum of the widths of the child windows of W must equal W's
           width.  */
@@ -3626,10 +3617,10 @@ window_resize_apply (struct window *w, bool horflag)
       pos = w->top_line;
     }
 
-  if (!NILP (w->vchild))
+  if (WINDOW_VERTICAL_COMBINATION_P (w))
     /* W is a vertical combination.  */
     {
-      c = XWINDOW (w->vchild);
+      c = XWINDOW (w->contents);
       while (c)
        {
          if (horflag)
@@ -3642,10 +3633,10 @@ window_resize_apply (struct window *w, bool horflag)
          c = NILP (c->next) ? 0 : XWINDOW (c->next);
        }
     }
-  else if (!NILP (w->hchild))
+  else if (WINDOW_HORIZONTAL_COMBINATION_P (w))
     /* W is a horizontal combination.  */
     {
-      c = XWINDOW (w->hchild);
+      c = XWINDOW (w->contents);
       while (c)
        {
          if (horflag)
@@ -3728,7 +3719,7 @@ resize_frame_windows (struct frame *f, int size, bool horflag)
                        ? 1 : 0)));
 
   r->top_line = FRAME_TOP_MARGIN (f);
-  if (NILP (r->vchild) && NILP (r->hchild))
+  if (WINDOW_LEAF_P (r))
     /* For a leaf root window just set the size.  */
     if (horflag)
       r->total_cols = new_size;
@@ -3843,9 +3834,9 @@ set correctly.  See the code of `split-window' for how this is done.  */)
   combination_limit =
     EQ (Vwindow_combination_limit, Qt)
     || NILP (o->parent)
-    || NILP (horflag
-            ? (XWINDOW (o->parent)->hchild)
-            : (XWINDOW (o->parent)->vchild));
+    || (horflag
+       ? WINDOW_VERTICAL_COMBINATION_P (XWINDOW (o->parent))
+       : WINDOW_HORIZONTAL_COMBINATION_P (XWINDOW (o->parent)));
 
   /* We need a live reference window to initialize some parameters.  */
   if (WINDOW_LIVE_P (old))
@@ -3915,17 +3906,12 @@ set correctly.  See the code of `split-window' for how this is done.  */)
   n = XWINDOW (new);
   wset_frame (n, frame);
   wset_parent (n, o->parent);
-  wset_vchild (n, Qnil);
-  wset_hchild (n, Qnil);
 
   if (EQ (side, Qabove) || EQ (side, Qleft))
     {
       wset_prev (n, o->prev);
       if (NILP (n->prev))
-       if (horflag)
-         wset_hchild (p, new);
-       else
-         wset_vchild (p, new);
+       wset_combination (p, horflag, new);
       else
        wset_next (XWINDOW (n->prev), new);
       wset_next (n, old);
@@ -3974,7 +3960,7 @@ set correctly.  See the code of `split-window' for how this is done.  */)
   adjust_glyphs (f);
   /* Set buffer of NEW to buffer of reference window.  Don't run
      any hooks.  */
-  set_window_buffer (new, r->buffer, 0, 1);
+  set_window_buffer (new, r->contents, 0, 1);
   unblock_input ();
 
   /* Maybe we should run the scroll functions in Elisp (which already
@@ -3996,13 +3982,11 @@ Signal an error when WINDOW is the only window on its frame.  */)
   register Lisp_Object parent, sibling, frame, root;
   struct window *w, *p, *s, *r;
   struct frame *f;
-  bool horflag;
-  int before_sibling = 0;
+  bool horflag, before_sibling = 0;
 
   w = decode_any_window (window);
   XSETWINDOW (window, w);
-  if (NILP (w->buffer)
-      && NILP (w->hchild) && NILP (w->vchild))
+  if (NILP (w->contents))
     /* It's a no-op to delete an already deleted window.  */
     return Qnil;
 
@@ -4016,7 +4000,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
     error ("Attempt to delete sole window of parent");
 
   p = XWINDOW (parent);
-  horflag = NILP (p->vchild);
+  horflag = WINDOW_HORIZONTAL_COMBINATION_P (p);
 
   frame = WINDOW_FRAME (w);
   f = XFRAME (frame);
@@ -4034,10 +4018,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
       sibling = w->next;
       s = XWINDOW (sibling);
       wset_prev (s, Qnil);
-      if (horflag)
-       wset_hchild (p, sibling);
-      else
-       wset_vchild (p, sibling);
+      wset_combination (p, horflag, sibling);
     }
   else
     /* Get SIBLING above (on the left of) WINDOW.  */
@@ -4079,17 +4060,12 @@ Signal an error when WINDOW is the only window on its frame.  */)
       wset_next (w, Qnil);  /* Don't delete w->next too.  */
       free_window_matrices (w);
 
-      if (!NILP (w->vchild))
+      if (WINDOWP (w->contents))
        {
-         delete_all_child_windows (w->vchild);
-         wset_vchild (w, Qnil);
+         delete_all_child_windows (w->contents);
+         wset_combination (w, 0, Qnil);
        }
-      else if (!NILP (w->hchild))
-       {
-         delete_all_child_windows (w->hchild);
-         wset_hchild (w, Qnil);
-       }
-      else if (!NILP (w->buffer))
+      else
        {
          unshow_buffer (w);
          unchain_marker (XMARKER (w->pointm));
@@ -4108,8 +4084,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
          wset_normal_cols (s, p->normal_cols);
          wset_normal_lines (s, p->normal_lines);
          /* Mark PARENT as deleted.  */
-         wset_vchild (p, Qnil);
-         wset_hchild (p, Qnil);
+         wset_combination (p, 0, Qnil);
          /* Try to merge SIBLING into its new parent.  */
          recombine_windows (sibling);
        }
@@ -4157,10 +4132,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
       if (before_sibling)
        {
          wset_prev (s, window);
-         if (horflag)
-           wset_hchild (p, window);
-         else
-           wset_vchild (p, window);
+         wset_combination (p, horflag, window);
        }
       else
        {
@@ -4303,10 +4275,8 @@ mark_window_cursors_off (struct window *w)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       mark_window_cursors_off (XWINDOW (w->hchild));
-      else if (!NILP (w->vchild))
-       mark_window_cursors_off (XWINDOW (w->vchild));
+      if (WINDOWP (w->contents))
+       mark_window_cursors_off (XWINDOW (w->contents));
       else
        w->phys_cursor_on_p = 0;
 
@@ -4325,8 +4295,7 @@ window_internal_height (struct window *w)
   if (!MINI_WINDOW_P (w))
     {
       if (!NILP (w->parent)
-         || !NILP (w->vchild)
-         || !NILP (w->hchild)
+         || WINDOWP (w->contents)
          || !NILP (w->next)
          || !NILP (w->prev)
          || WINDOW_WANTS_MODELINE_P (w))
@@ -4465,7 +4434,7 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror)
                  else
                    spos = min (XINT (Fline_end_position (Qnil)) + 1, ZV);
                  set_marker_restricted (w->start, make_number (spos),
-                                        w->buffer);
+                                        w->contents);
                  w->start_at_line_beg = 1;
                  w->update_mode_line = 1;
                  w->last_modified = 0;
@@ -4589,7 +4558,7 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror)
 
       /* If control gets here, then we vscrolled.  */
 
-      XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
+      XBUFFER (w->contents)->prevent_redisplay_optimizations_p = 1;
 
       /* Don't try to change the window start below.  */
       vscrolled = 1;
@@ -4609,7 +4578,7 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror)
        }
 
       /* Set the window start, and set up the window for redisplay.  */
-      set_marker_restricted_both (w->start, w->buffer, IT_CHARPOS (it),
+      set_marker_restricted_both (w->start, w->contents, IT_CHARPOS (it),
                                  IT_BYTEPOS (it));
       bytepos = marker_byte_position (w->start);
       w->start_at_line_beg = (pos == BEGV || FETCH_BYTE (bytepos - 1) == '\n');
@@ -4809,7 +4778,7 @@ window_scroll_line_based (Lisp_Object window, int n, int whole, int noerror)
       int this_scroll_margin =
        max (0, min (scroll_margin, w->total_lines / 4));
 
-      set_marker_restricted_both (w->start, w->buffer, pos, pos_byte);
+      set_marker_restricted_both (w->start, w->contents, pos, pos_byte);
       w->start_at_line_beg = !NILP (bolp);
       w->update_mode_line = 1;
       w->last_modified = 0;
@@ -4903,10 +4872,10 @@ scroll_command (Lisp_Object n, int direction)
 
   /* If selected window's buffer isn't current, make it current for
      the moment.  But don't screw up if window_scroll gets an error.  */
-  if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer)
+  if (XBUFFER (XWINDOW (selected_window)->contents) != current_buffer)
     {
       record_unwind_protect (save_excursion_restore, save_excursion_save ());
-      Fset_buffer (XWINDOW (selected_window)->buffer);
+      Fset_buffer (XWINDOW (selected_window)->contents);
 
       /* Make redisplay consider other windows than just selected_window.  */
       ++windows_or_buffers_changed;
@@ -5021,7 +4990,7 @@ specifies the window to scroll.  This takes precedence over
   record_unwind_protect (save_excursion_restore, save_excursion_save ());
   ++windows_or_buffers_changed;
 
-  Fset_buffer (w->buffer);
+  Fset_buffer (w->contents);
   SET_PT_BOTH (marker_position (w->pointm), marker_byte_position (w->pointm));
 
   if (NILP (arg))
@@ -5115,10 +5084,10 @@ displayed_window_lines (struct window *w)
   int bottom_y;
   void *itdata = NULL;
 
-  if (XBUFFER (w->buffer) != current_buffer)
+  if (XBUFFER (w->contents) != current_buffer)
     {
       old_buffer = current_buffer;
-      set_buffer_internal (XBUFFER (w->buffer));
+      set_buffer_internal (XBUFFER (w->contents));
     }
   else
     old_buffer = NULL;
@@ -5180,7 +5149,7 @@ and redisplay normally--don't erase and redraw the frame.  */)
   (register Lisp_Object arg)
 {
   struct window *w = XWINDOW (selected_window);
-  struct buffer *buf = XBUFFER (w->buffer);
+  struct buffer *buf = XBUFFER (w->contents);
   struct buffer *obuf = current_buffer;
   int center_p = 0;
   ptrdiff_t charpos, bytepos;
@@ -5346,7 +5315,7 @@ and redisplay normally--don't erase and redraw the frame.  */)
     }
 
   /* Set the new window start.  */
-  set_marker_both (w->start, w->buffer, charpos, bytepos);
+  set_marker_both (w->start, w->contents, charpos, bytepos);
   w->window_end_valid = 0;
 
   w->optional_new_start = 1;
@@ -5390,9 +5359,8 @@ zero means top of window, negative means relative to bottom of window.  */)
   int this_scroll_margin;
 #endif
 
-  if (!(BUFFERP (w->buffer)
-       && XBUFFER (w->buffer) == current_buffer))
-    /* This test is needed to make sure PT/PT_BYTE make sense in w->buffer
+  if (!(BUFFERP (w->contents) && XBUFFER (w->contents) == current_buffer))
+    /* This test is needed to make sure PT/PT_BYTE make sense in w->contents
        when passed below to set_marker_both.  */
     error ("move-to-window-line called from unrelated buffer");
 
@@ -5402,7 +5370,7 @@ zero means top of window, negative means relative to bottom of window.  */)
     {
       int height = window_internal_height (w);
       Fvertical_motion (make_number (- (height / 2)), window);
-      set_marker_both (w->start, w->buffer, PT, PT_BYTE);
+      set_marker_both (w->start, w->contents, PT, PT_BYTE);
       w->start_at_line_beg = !NILP (Fbolp ());
       w->force_start = 1;
     }
@@ -5552,9 +5520,9 @@ the return value is nil.  Otherwise the value is t.  */)
           window-point of the final-selected-window to the window-point of
           the current-selected-window.  So we have to be careful which
           point of the current-buffer we copy into old_point.  */
-       if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)
+       if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer)
            && WINDOWP (selected_window)
-           && EQ (XWINDOW (selected_window)->buffer, new_current_buffer)
+           && EQ (XWINDOW (selected_window)->contents, new_current_buffer)
            && !EQ (selected_window, data->current_window))
          old_point = marker_position (XWINDOW (data->current_window)->pointm);
        else
@@ -5568,7 +5536,7 @@ the return value is nil.  Otherwise the value is t.  */)
           So if possible we want this arbitrary choice of "which point" to
           be the one from the to-be-selected-window so as to prevent this
           window's cursor from being copied from another window.  */
-       if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)
+       if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer)
            /* If current_window = selected_window, its point is in BUF_PT.  */
            && !EQ (selected_window, data->current_window))
          old_point = marker_position (XWINDOW (data->current_window)->pointm);
@@ -5610,8 +5578,8 @@ the return value is nil.  Otherwise the value is t.  */)
          p = SAVED_WINDOW_N (saved_windows, k);
          window = p->window;
          w = XWINDOW (window);
-         if (!NILP (w->buffer)
-             && !EQ (w->buffer, p->buffer)
+         if (BUFFERP (w->contents)
+             && !EQ (w->contents, p->buffer)
              && BUFFER_LIVE_P (XBUFFER (p->buffer)))
            /* If a window we restore gets another buffer, record the
               window's old buffer.  */
@@ -5644,13 +5612,13 @@ the return value is nil.  Otherwise the value is t.  */)
         window holds garbage.)  We do this now, before
         restoring the window contents, and prevent it from
         being done later on when we select a new window.  */
-      if (! NILP (XWINDOW (selected_window)->buffer))
+      if (! NILP (XWINDOW (selected_window)->contents))
        {
          w = XWINDOW (selected_window);
          set_marker_both (w->pointm,
-                          w->buffer,
-                          BUF_PT (XBUFFER (w->buffer)),
-                          BUF_PT_BYTE (XBUFFER (w->buffer)));
+                          w->contents,
+                          BUF_PT (XBUFFER (w->contents)),
+                          BUF_PT_BYTE (XBUFFER (w->contents)));
        }
 
       windows_or_buffers_changed++;
@@ -5697,18 +5665,10 @@ the return value is nil.  Otherwise the value is t.  */)
            {
              wset_prev (w, Qnil);
              if (!NILP (w->parent))
-               {
-                 if (XINT (p->total_cols) == XWINDOW (w->parent)->total_cols)
-                   {
-                     wset_vchild (XWINDOW (w->parent), p->window);
-                     wset_hchild (XWINDOW (w->parent), Qnil);
-                   }
-                 else
-                   {
-                     wset_hchild (XWINDOW (w->parent), p->window);
-                     wset_vchild (XWINDOW (w->parent), Qnil);
-                   }
-               }
+               wset_combination (XWINDOW (w->parent),
+                                 (XINT (p->total_cols)
+                                  != XWINDOW (w->parent)->total_cols),
+                                 p->window);
            }
 
          /* If we squirreled away the buffer, restore it now.  */
@@ -5757,20 +5717,16 @@ the return value is nil.  Otherwise the value is t.  */)
          w->last_modified = 0;
          w->last_overlay_modified = 0;
 
-         /* Reinstall the saved buffer and pointers into it.  */
-         if (NILP (p->buffer))
-           /* An internal window.  */
-           wset_buffer (w, p->buffer);
-         else if (BUFFER_LIVE_P (XBUFFER (p->buffer)))
+         if (BUFFERP (p->buffer) && BUFFER_LIVE_P (XBUFFER (p->buffer)))
            /* If saved buffer is alive, install it.  */
            {
              wset_buffer (w, p->buffer);
              w->start_at_line_beg = !NILP (p->start_at_line_beg);
-             set_marker_restricted (w->start, p->start, w->buffer);
+             set_marker_restricted (w->start, p->start, w->contents);
              set_marker_restricted (w->pointm, p->pointm,
-                                    w->buffer);
-             Fset_marker (BVAR (XBUFFER (w->buffer), mark),
-                          p->mark, w->buffer);
+                                    w->contents);
+             Fset_marker (BVAR (XBUFFER (w->contents), mark),
+                          p->mark, w->contents);
 
              /* As documented in Fcurrent_window_configuration, don't
                 restore the location of point in the buffer which was
@@ -5779,23 +5735,21 @@ the return value is nil.  Otherwise the value is t.  */)
                  && XBUFFER (p->buffer) == current_buffer)
                Fgoto_char (w->pointm);
             }
-          else if (!NILP (w->buffer)
-                   && BUFFER_LIVE_P (XBUFFER (w->buffer)))
-            /* Keep window's old buffer; make sure the markers are
-               real.  */
-            {
-              /* Set window markers at start of visible range.  */
-              if (XMARKER (w->start)->buffer == 0)
-                set_marker_restricted_both (w->start, w->buffer, 0, 0);
-              if (XMARKER (w->pointm)->buffer == 0)
-                set_marker_restricted_both
-                  (w->pointm, w->buffer,
-                   BUF_PT (XBUFFER (w->buffer)),
-                   BUF_PT_BYTE (XBUFFER (w->buffer)));
-              w->start_at_line_beg = 1;
-            }
-         else
-           /* Window has no live buffer, get one.  */
+         else if (BUFFERP (w->contents) && BUFFER_LIVE_P (XBUFFER (w->contents)))
+           /* Keep window's old buffer; make sure the markers are real.  */
+           {
+             /* Set window markers at start of visible range.  */
+             if (XMARKER (w->start)->buffer == 0)
+               set_marker_restricted_both (w->start, w->contents, 0, 0);
+             if (XMARKER (w->pointm)->buffer == 0)
+               set_marker_restricted_both
+                 (w->pointm, w->contents,
+                  BUF_PT (XBUFFER (w->contents)),
+                  BUF_PT_BYTE (XBUFFER (w->contents)));
+             w->start_at_line_beg = 1;
+           }
+         else if (!NILP (w->start))
+           /* Leaf window has no live buffer, get one.  */
            {
              /* Get the buffer via other_buffer_safely in order to
              avoid showing an unimportant buffer and, if necessary, to
@@ -5804,8 +5758,8 @@ the return value is nil.  Otherwise the value is t.  */)
              wset_buffer (w, other_buffer_safely (Fcurrent_buffer ()));
              /* This will set the markers to beginning of visible
                 range.  */
-             set_marker_restricted_both (w->start, w->buffer, 0, 0);
-             set_marker_restricted_both (w->pointm, w->buffer, 0, 0);
+             set_marker_restricted_both (w->start, w->contents, 0, 0);
+             set_marker_restricted_both (w->pointm, w->contents, 0, 0);
              w->start_at_line_beg = 1;
              if (!NILP (w->dedicated))
                /* Record this window as dead.  */
@@ -5818,17 +5772,17 @@ the return value is nil.  Otherwise the value is t.  */)
       fset_root_window (f, data->root_window);
       /* Arrange *not* to restore point in the buffer that was
         current when the window configuration was saved.  */
-      if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer))
+      if (EQ (XWINDOW (data->current_window)->contents, new_current_buffer))
        set_marker_restricted (XWINDOW (data->current_window)->pointm,
                               make_number (old_point),
-                              XWINDOW (data->current_window)->buffer);
+                              XWINDOW (data->current_window)->contents);
 
       /* In the following call to `select-window', prevent "swapping out
         point" in the old selected window using the buffer that has
         been restored into it.  We already swapped out that point from
         that window's old buffer.  */
       select_window (data->current_window, Qnil, 1);
-      BVAR (XBUFFER (XWINDOW (selected_window)->buffer), last_selected_window)
+      BVAR (XBUFFER (XWINDOW (selected_window)->contents), last_selected_window)
        = selected_window;
 
       if (NILP (data->focus_frame)
@@ -5855,14 +5809,9 @@ the return value is nil.  Otherwise the value is t.  */)
       /* Now, free glyph matrices in windows that were not reused.  */
       for (i = n = 0; i < n_leaf_windows; ++i)
        {
-         if (NILP (leaf_windows[i]->buffer))
-           {
-             /* Assert it's not reused as a combination.  */
-             eassert (NILP (leaf_windows[i]->hchild)
-                      && NILP (leaf_windows[i]->vchild));
-             free_window_matrices (leaf_windows[i]);
-           }
-         else if (EQ (leaf_windows[i]->buffer, new_current_buffer))
+         if (NILP (leaf_windows[i]->contents))
+           free_window_matrices (leaf_windows[i]);
+         else if (EQ (leaf_windows[i]->contents, new_current_buffer))
            ++n;
        }
 
@@ -5893,7 +5842,7 @@ the return value is nil.  Otherwise the value is t.  */)
       Fset_buffer (new_current_buffer);
       /* If the new current buffer doesn't appear in the selected
         window, go to its old point (see bug#12208).  */
-      if (!EQ (XWINDOW (data->current_window)->buffer, new_current_buffer))
+      if (!EQ (XWINDOW (data->current_window)->contents, new_current_buffer))
        Fgoto_char (make_number (old_point));
     }
 
@@ -5904,8 +5853,10 @@ the return value is nil.  Otherwise the value is t.  */)
 }
 
 
-/* Recursively delete all child windows reachable via the next, vchild,
-   and hchild slots of WINDOW.  */
+/* If WINDOW is an internal window, recursively delete all child windows
+   reachable via the next and contents slots of WINDOW.  Otherwise setup
+   WINDOW to not show any buffer.  */
+
 void
 delete_all_child_windows (Lisp_Object window)
 {
@@ -5917,17 +5868,12 @@ delete_all_child_windows (Lisp_Object window)
     /* Delete WINDOW's siblings (we traverse postorderly).  */
     delete_all_child_windows (w->next);
 
-  if (!NILP (w->vchild))
-    {
-      delete_all_child_windows (w->vchild);
-      wset_vchild (w, Qnil);
-    }
-  else if (!NILP (w->hchild))
+  if (WINDOWP (w->contents))
     {
-      delete_all_child_windows (w->hchild);
-      wset_hchild (w, Qnil);
+      delete_all_child_windows (w->contents);
+      wset_combination (w, 0, Qnil);
     }
-  else if (!NILP (w->buffer))
+  else if (BUFFERP (w->contents))
     {
       unshow_buffer (w);
       unchain_marker (XMARKER (w->pointm));
@@ -5935,7 +5881,7 @@ delete_all_child_windows (Lisp_Object window)
       /* Since combination limit makes sense for an internal windows
         only, we use this slot to save the buffer for the sake of
         possible resurrection in Fset_window_configuration.  */
-      wset_combination_limit (w, w->buffer);
+      wset_combination_limit (w, w->contents);
       wset_buffer (w, Qnil);
     }
 
@@ -5948,10 +5894,8 @@ count_windows (register struct window *window)
   register int count = 1;
   if (!NILP (window->next))
     count += count_windows (XWINDOW (window->next));
-  if (!NILP (window->vchild))
-    count += count_windows (XWINDOW (window->vchild));
-  if (!NILP (window->hchild))
-    count += count_windows (XWINDOW (window->hchild));
+  if (WINDOWP (window->contents))
+    count += count_windows (XWINDOW (window->contents));
   return count;
 }
 
@@ -5963,10 +5907,8 @@ get_leaf_windows (struct window *w, struct window **flat, int i)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       i = get_leaf_windows (XWINDOW (w->hchild), flat, i);
-      else if (!NILP (w->vchild))
-       i = get_leaf_windows (XWINDOW (w->vchild), flat, i);
+      if (WINDOWP (w->contents))
+       i = get_leaf_windows (XWINDOW (w->contents), flat, i);
       else
        flat[i++] = w;
 
@@ -6006,7 +5948,7 @@ get_phys_cursor_glyph (struct window *w)
        hpos = row->used[TEXT_AREA] - 1;
     }
 
-  if (hpos >= 0 && hpos < row->used[TEXT_AREA])
+  if (0 <= hpos && hpos < row->used[TEXT_AREA])
     glyph = row->glyphs[TEXT_AREA] + hpos;
   else
     glyph = NULL;
@@ -6022,14 +5964,14 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
   register struct window *w;
   register Lisp_Object tem, pers, par;
 
-  for (;!NILP (window); window = w->next)
+  for (; !NILP (window); window = w->next)
     {
       p = SAVED_WINDOW_N (vector, i);
       w = XWINDOW (window);
 
       wset_temslot (w, make_number (i)); i++;
       p->window = window;
-      p->buffer = w->buffer;
+      p->buffer = (WINDOW_LEAF_P (w) ? w->contents : Qnil);
       p->left_col = make_number (w->left_col);
       p->top_line = make_number (w->top_line);
       p->total_cols = make_number (w->total_cols);
@@ -6096,15 +6038,15 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
            }
        }
 
-      if (!NILP (w->buffer))
+      if (BUFFERP (w->contents))
        {
          /* Save w's value of point in the window configuration.  If w
             is the selected window, then get the value of point from
             the buffer; pointm is garbage in the selected window.  */
          if (EQ (window, selected_window))
-           p->pointm = build_marker (XBUFFER (w->buffer),
-                                     BUF_PT (XBUFFER (w->buffer)),
-                                     BUF_PT_BYTE (XBUFFER (w->buffer)));
+           p->pointm = build_marker (XBUFFER (w->contents),
+                                     BUF_PT (XBUFFER (w->contents)),
+                                     BUF_PT_BYTE (XBUFFER (w->contents)));
          else
            p->pointm = Fcopy_marker (w->pointm, Qnil);
          XMARKER (p->pointm)->insertion_type
@@ -6113,7 +6055,7 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
          p->start = Fcopy_marker (w->start, Qnil);
          p->start_at_line_beg = w->start_at_line_beg ? Qt : Qnil;
 
-         tem = BVAR (XBUFFER (w->buffer), mark);
+         tem = BVAR (XBUFFER (w->contents), mark);
          p->mark = Fcopy_marker (tem, Qnil);
        }
       else
@@ -6134,10 +6076,8 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
       else
        p->prev = XWINDOW (w->prev)->temslot;
 
-      if (!NILP (w->vchild))
-       i = save_window_save (w->vchild, vector, i);
-      if (!NILP (w->hchild))
-       i = save_window_save (w->hchild, vector, i);
+      if (WINDOWP (w->contents))
+       i = save_window_save (w->contents, vector, i);
     }
 
   return i;
@@ -6454,7 +6394,7 @@ If PIXELS-P is non-nil, the return value is VSCROLL.  */)
            adjust_glyphs (f);
 
          /* Prevent redisplay shortcuts.  */
-         XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
+         XBUFFER (w->contents)->prevent_redisplay_optimizations_p = 1;
        }
     }
 
@@ -6488,10 +6428,8 @@ foreach_window_1 (struct window *w, int (*fn) (struct window *, void *), void *u
 
   for (cont = 1; w && cont;)
     {
-      if (!NILP (w->hchild))
-       cont = foreach_window_1 (XWINDOW (w->hchild), fn, user_data);
-      else if (!NILP (w->vchild))
-       cont = foreach_window_1 (XWINDOW (w->vchild), fn, user_data);
+      if (WINDOWP (w->contents))
+       cont = foreach_window_1 (XWINDOW (w->contents), fn, user_data);
       else
        cont = fn (w, user_data);
 
index 71c438ff7f2f63eb7defac95b0b3ed5a5d7d8d36..411756f045e622cf51d0ccdaab608ac53f20ce52 100644 (file)
@@ -41,14 +41,13 @@ They are deleted only by calling delete-window on them (but
 this can be done implicitly).  Combination windows can be created
 and deleted at any time.
 
-A leaf window has a non-nil buffer field, and also
- has markers in its start and pointm fields.  Non-leaf windows
- have nil in these fields.
+A leaf window has a buffer stored in contents field and markers in its start
+and pointm fields.  Non-leaf windows have nil in the latter two fields.
 
 Non-leaf windows are either vertical or horizontal combinations.
 
 A vertical combination window has children that are arranged on the frame
-one above the next.  Its vchild field points to the uppermost child.
+one above the next.  Its contents field points to the uppermost child.
 The parent field of each of the children points to the vertical
 combination window.  The next field of each child points to the
 child below it, or is nil for the lowest child.  The prev field
@@ -56,7 +55,7 @@ of each child points to the child above it, or is nil for the
 highest child.
 
 A horizontal combination window has children that are side by side.
-Its hchild field points to the leftmost child.  In each child
+Its contents field points to the leftmost child.  In each child
 the next field points to the child to the right and the prev field
 points to the child to the left.
 
@@ -78,7 +77,7 @@ the root window is the minibuf window.  On minibufferless screens or
 minibuffer-only screens, the root window and the minibuffer window are
 one and the same, so its prev and next members are nil.
 
-A dead window has its buffer, hchild, and vchild windows all nil.  */
+A dead window has its contents field set to nil.  */
 
 struct cursor_pos
 {
@@ -102,13 +101,6 @@ struct window
     Lisp_Object next;
     Lisp_Object prev;
 
-    /* First child of this window: vchild is used if this is a vertical
-       combination, hchild if this is a horizontal combination.  Of the
-       fields vchild, hchild and buffer, one and only one is non-nil
-       unless the window is dead.  */
-    Lisp_Object hchild;
-    Lisp_Object vchild;
-
     /* The window this one is a child of.  */
     Lisp_Object parent;
 
@@ -123,10 +115,8 @@ struct window
     Lisp_Object new_total;
     Lisp_Object new_normal;
 
-    /* The buffer displayed in this window.  Of the fields vchild,
-       hchild and buffer, one and only one is non-nil unless the window
-       is dead.  */
-    Lisp_Object buffer;
+    /* May be buffer, window, or nil.  */
+    Lisp_Object contents;
 
     /* A marker pointing to where in the text to start displaying.
        BIDI Note: This is the _logical-order_ start, i.e. the smallest
@@ -282,6 +272,10 @@ struct window
     /* Non-zero if this window is a minibuffer window.  */
     unsigned mini : 1;
 
+    /* Meaningful only if contents is a window, non-zero if this
+       internal window is used in horizontal combination.  */
+    unsigned horizontal : 1;
+
     /* Non-zero means must regenerate mode line of this window.  */
     unsigned update_mode_line : 1;
 
@@ -428,6 +422,21 @@ wset_next_buffers (struct window *w, Lisp_Object val)
 
 /* A handy macro.  */
 
+/* Non-zero if W is leaf (carry the buffer).  */
+
+#define WINDOW_LEAF_P(W) \
+  (BUFFERP ((W)->contents))
+
+/* Non-zero if W is a member of horizontal combination.  */
+
+#define WINDOW_HORIZONTAL_COMBINATION_P(W) \
+  (WINDOWP ((W)->contents) && (W)->horizontal)
+
+/* Non-zero if W is a member of vertical combination.  */
+
+#define WINDOW_VERTICAL_COMBINATION_P(W) \
+  (WINDOWP ((W)->contents) && !(W)->horizontal)
+
 #define WINDOW_XFRAME(W) \
   (XFRAME (WINDOW_FRAME ((W))))
 
@@ -931,20 +940,17 @@ extern void check_frame_size (struct frame *frame, int *rows, int *cols);
 struct glyph *get_phys_cursor_glyph (struct window *w);
 
 /* Value is non-zero if WINDOW is a valid window.  */
-#define WINDOW_VALID_P(WINDOW)                         \
-  (WINDOWP (WINDOW)                                    \
-   && (!NILP (XWINDOW (WINDOW)->buffer)                        \
-       || !NILP (XWINDOW (WINDOW)->vchild)             \
-       || !NILP (XWINDOW (WINDOW)->hchild)))
-
-/* A window of any sort, leaf or interior, is "valid" if one
-   of its buffer, vchild, or hchild members is non-nil.  */
+#define WINDOW_VALID_P(WINDOW)                                 \
+  (WINDOWP (WINDOW) && !NILP (XWINDOW (WINDOW)->contents))     \
+
+/* A window of any sort, leaf or interior, is "valid" if its
+   contents slot is non-nil.  */
 #define CHECK_VALID_WINDOW(WINDOW)                             \
   CHECK_TYPE (WINDOW_VALID_P (WINDOW), Qwindow_valid_p, WINDOW)
 
 /* Value is non-zero if WINDOW is a live window.  */
 #define WINDOW_LIVE_P(WINDOW)                                  \
-  (WINDOWP (WINDOW) && !NILP (XWINDOW (WINDOW)->buffer))
+  (WINDOWP (WINDOW) && BUFFERP (XWINDOW (WINDOW)->contents))
 
 /* A window is "live" if and only if it shows a buffer.  */
 #define CHECK_LIVE_WINDOW(WINDOW)                              \
index bd68b286f4e8d37913965f900e52d7fd880cb7a5..f8a9fd57dc1f698c699bff7b4b0e117cb953179e 100644 (file)
@@ -582,7 +582,7 @@ static struct glyph scratch_glyphs[MAX_SCRATCH_GLYPHS];
 
 /* Ascent and height of the last line processed by move_it_to.  */
 
-static int last_max_ascent, last_height;
+static int last_height;
 
 /* Non-zero if there's a help-echo in the echo area.  */
 
@@ -1288,10 +1288,10 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y,
   if (FRAME_INITIAL_P (XFRAME (WINDOW_FRAME (w))))
     return visible_p;
 
-  if (XBUFFER (w->buffer) != current_buffer)
+  if (XBUFFER (w->contents) != current_buffer)
     {
       old_buffer = current_buffer;
-      set_buffer_internal_1 (XBUFFER (w->buffer));
+      set_buffer_internal_1 (XBUFFER (w->contents));
     }
 
   SET_TEXT_POS_FROM_MARKER (top, w->start);
@@ -4463,7 +4463,7 @@ handle_display_prop (struct it *it)
      if it was a text property.  */
 
   if (!STRINGP (it->string))
-    object = it->w->buffer;
+    object = it->w->contents;
 
   display_replaced_p = handle_display_spec (it, propval, object, overlay,
                                            position, bufpos,
@@ -4874,7 +4874,7 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
          it->what = IT_IMAGE;
          it->image_id = -1; /* no image */
          it->position = start_pos;
-         it->object = NILP (object) ? it->w->buffer : object;
+         it->object = NILP (object) ? it->w->contents : object;
          it->method = GET_FROM_IMAGE;
          it->from_overlay = Qnil;
          it->face_id = face_id;
@@ -5025,7 +5025,7 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
           it->what = IT_XWIDGET;
           it->method = GET_FROM_XWIDGET;
           it->position = start_pos;
-         it->object = NILP (object) ? it->w->buffer : object;
+         it->object = NILP (object) ? it->w->contents : object;
          *position = start_pos;
 
           it->xwidget = lookup_xwidget(value);
@@ -5037,7 +5037,7 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
          it->what = IT_IMAGE;
          it->image_id = lookup_image (it->f, value);
          it->position = start_pos;
-         it->object = NILP (object) ? it->w->buffer : object;
+         it->object = NILP (object) ? it->w->contents : object;
          it->method = GET_FROM_IMAGE;
 
          /* Say that we haven't consumed the characters with
@@ -5871,7 +5871,7 @@ pop_it (struct it *it)
       it->object = p->u.stretch.object;
       break;
     case GET_FROM_BUFFER:
-      it->object = it->w->buffer;
+      it->object = it->w->contents;
       break;
     case GET_FROM_STRING:
       it->object = it->string;
@@ -5884,7 +5884,7 @@ pop_it (struct it *it)
       else
        {
          it->method = GET_FROM_BUFFER;
-         it->object = it->w->buffer;
+         it->object = it->w->contents;
        }
     }
   it->end_charpos = p->end_charpos;
@@ -6325,7 +6325,7 @@ reseat_1 (struct it *it, struct text_pos pos, int set_stop_p)
   IT_STRING_BYTEPOS (*it) = -1;
   it->string = Qnil;
   it->method = GET_FROM_BUFFER;
-  it->object = it->w->buffer;
+  it->object = it->w->contents;
   it->area = TEXT_AREA;
   it->multibyte_p = !NILP (BVAR (current_buffer, enable_multibyte_characters));
   it->sp = 0;
@@ -7179,7 +7179,7 @@ set_iterator_to_next (struct it *it, int reseat_p)
          else
            {
              it->method = GET_FROM_BUFFER;
-             it->object = it->w->buffer;
+             it->object = it->w->contents;
            }
 
          it->dpvec = NULL;
@@ -7755,7 +7755,7 @@ next_element_from_ellipsis (struct it *it)
         setting face_before_selective_p.  */
       it->saved_face_id = it->face_id;
       it->method = GET_FROM_BUFFER;
-      it->object = it->w->buffer;
+      it->object = it->w->contents;
       reseat_at_next_visible_line_start (it, 1);
       it->face_before_selective_p = 1;
     }
@@ -8032,7 +8032,7 @@ next_element_from_buffer (struct it *it)
 
       /* Record what we have and where it came from.  */
       it->what = IT_CHARACTER;
-      it->object = it->w->buffer;
+      it->object = it->w->contents;
       it->position = it->current.pos;
 
       /* Normally we return the character found above, except when we
@@ -8138,7 +8138,7 @@ next_element_from_composition (struct it *it)
          return 0;
        }
       it->position = it->current.pos;
-      it->object = it->w->buffer;
+      it->object = it->w->contents;
       it->c = composition_update_it (&it->cmp_it, IT_CHARPOS (*it),
                                     IT_BYTEPOS (*it), Qnil);
     }
@@ -8979,7 +8979,6 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int to_x, int to_y, int to_vpos
       it->current_y += it->max_ascent + it->max_descent;
       ++it->vpos;
       last_height = it->max_ascent + it->max_descent;
-      last_max_ascent = it->max_ascent;
       it->max_ascent = it->max_descent = 0;
     }
 
@@ -9006,7 +9005,6 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int to_x, int to_y, int to_vpos
       it->current_y += it->max_ascent + it->max_descent;
       ++it->vpos;
       last_height = it->max_ascent + it->max_descent;
-      last_max_ascent = it->max_ascent;
     }
 
   if (backup_data)
@@ -10048,7 +10046,7 @@ with_echo_area_buffer_unwind_data (struct window *w)
   Vwith_echo_area_save_vector = Qnil;
 
   if (NILP (vector))
-    vector = Fmake_vector (make_number (7), Qnil);
+    vector = Fmake_vector (make_number (9), Qnil);
 
   XSETBUFFER (tmp, current_buffer); ASET (vector, i, tmp); ++i;
   ASET (vector, i, Vdeactivate_mark); ++i;
@@ -10057,13 +10055,15 @@ with_echo_area_buffer_unwind_data (struct window *w)
   if (w)
     {
       XSETWINDOW (tmp, w); ASET (vector, i, tmp); ++i;
-      ASET (vector, i, w->buffer); ++i;
+      ASET (vector, i, w->contents); ++i;
       ASET (vector, i, make_number (marker_position (w->pointm))); ++i;
       ASET (vector, i, make_number (marker_byte_position (w->pointm))); ++i;
+      ASET (vector, i, make_number (marker_position (w->start))); ++i;
+      ASET (vector, i, make_number (marker_byte_position (w->start))); ++i;
     }
   else
     {
-      int end = i + 4;
+      int end = i + 6;
       for (; i < end; ++i)
        ASET (vector, i, Qnil);
     }
@@ -10086,16 +10086,18 @@ unwind_with_echo_area_buffer (Lisp_Object vector)
   if (WINDOWP (AREF (vector, 3)))
     {
       struct window *w;
-      Lisp_Object buffer, charpos, bytepos;
+      Lisp_Object buffer;
 
       w = XWINDOW (AREF (vector, 3));
       buffer = AREF (vector, 4);
-      charpos = AREF (vector, 5);
-      bytepos = AREF (vector, 6);
 
       wset_buffer (w, buffer);
       set_marker_both (w->pointm, buffer,
-                      XFASTINT (charpos), XFASTINT (bytepos));
+                      XFASTINT (AREF (vector, 5)),
+                      XFASTINT (AREF (vector, 6)));
+      set_marker_both (w->start, buffer,
+                      XFASTINT (AREF (vector, 7)),
+                      XFASTINT (AREF (vector, 8)));
     }
 
   Vwith_echo_area_save_vector = vector;
@@ -10309,9 +10311,9 @@ resize_mini_window (struct window *w, int exact_p)
   eassert (MINI_WINDOW_P (w));
 
   /* By default, start display at the beginning.  */
-  set_marker_both (w->start, w->buffer,
-                  BUF_BEGV (XBUFFER (w->buffer)),
-                  BUF_BEGV_BYTE (XBUFFER (w->buffer)));
+  set_marker_both (w->start, w->contents,
+                  BUF_BEGV (XBUFFER (w->contents)),
+                  BUF_BEGV_BYTE (XBUFFER (w->contents)));
 
   /* Don't resize windows while redisplaying a window; it would
      confuse redisplay functions when the size of the window they are
@@ -10338,10 +10340,10 @@ resize_mini_window (struct window *w, int exact_p)
       struct text_pos start;
       struct buffer *old_current_buffer = NULL;
 
-      if (current_buffer != XBUFFER (w->buffer))
+      if (current_buffer != XBUFFER (w->contents))
        {
          old_current_buffer = current_buffer;
-         set_buffer_internal (XBUFFER (w->buffer));
+         set_buffer_internal (XBUFFER (w->contents));
        }
 
       init_iterator (&it, w, BEGV, BEGV_BYTE, NULL, DEFAULT_FACE_ID);
@@ -10790,7 +10792,7 @@ buffer_shared_and_changed (void)
 
 /* Nonzero if W doesn't reflect the actual state of current buffer due
    to its text or overlays change.  FIXME: this may be called when
-   XBUFFER (w->buffer) != current_buffer, which looks suspicious.  */
+   XBUFFER (w->contents) != current_buffer, which looks suspicious.  */
 
 static int
 window_outdated (struct window *w)
@@ -10805,7 +10807,7 @@ window_outdated (struct window *w)
 static int
 window_buffer_changed (struct window *w)
 {
-  struct buffer *b = XBUFFER (w->buffer);
+  struct buffer *b = XBUFFER (w->contents);
 
   eassert (BUFFER_LIVE_P (b));
 
@@ -11059,7 +11061,7 @@ x_consider_frame_title (Lisp_Object frame)
 
       Fselect_window (f->selected_window, Qt);
       set_buffer_internal_1
-       (XBUFFER (XWINDOW (f->selected_window)->buffer));
+       (XBUFFER (XWINDOW (f->selected_window)->contents));
       fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format;
 
       mode_line_target = MODE_LINE_TITLE;
@@ -11178,7 +11180,7 @@ prepare_menu_bars (void)
           if (windows_or_buffers_changed
              && FRAME_NS_P (f))
             ns_set_doc_edited
-             (f, Fbuffer_modified_p (XWINDOW (f->selected_window)->buffer));
+             (f, Fbuffer_modified_p (XWINDOW (f->selected_window)->contents));
 #endif
          UNGCPRO;
        }
@@ -11250,7 +11252,7 @@ update_menu_bar (struct frame *f, int save_match_data, int hooks_run)
 
          specbind (Qinhibit_menubar_update, Qt);
 
-         set_buffer_internal_1 (XBUFFER (w->buffer));
+         set_buffer_internal_1 (XBUFFER (w->contents));
          if (save_match_data)
            record_unwind_save_match_data ();
          if (NILP (Voverriding_local_map_menu_flag))
@@ -11454,7 +11456,7 @@ update_tool_bar (struct frame *f, int save_match_data)
          /* Set current_buffer to the buffer of the selected
             window of the frame, so that we get the right local
             keymaps.  */
-         set_buffer_internal_1 (XBUFFER (w->buffer));
+         set_buffer_internal_1 (XBUFFER (w->contents));
 
          /* Save match data, if we must.  */
          if (save_match_data)
@@ -12321,10 +12323,8 @@ hscroll_window_tree (Lisp_Object window)
     {
       struct window *w = XWINDOW (window);
 
-      if (WINDOWP (w->hchild))
-       hscrolled_p |= hscroll_window_tree (w->hchild);
-      else if (WINDOWP (w->vchild))
-       hscrolled_p |= hscroll_window_tree (w->vchild);
+      if (WINDOWP (w->contents))
+       hscrolled_p |= hscroll_window_tree (w->contents);
       else if (w->cursor.vpos >= 0)
        {
          int h_margin;
@@ -12344,7 +12344,7 @@ hscroll_window_tree (Lisp_Object window)
          /* Scroll when cursor is inside this scroll margin.  */
          h_margin = hscroll_margin * WINDOW_FRAME_COLUMN_WIDTH (w);
 
-         if (!NILP (Fbuffer_local_value (Qauto_hscroll_mode, w->buffer))
+         if (!NILP (Fbuffer_local_value (Qauto_hscroll_mode, w->contents))
              /* For left-to-right rows, hscroll when cursor is either
                 (i) inside the right hscroll margin, or (ii) if it is
                 inside the left margin and the window is already
@@ -12379,7 +12379,7 @@ hscroll_window_tree (Lisp_Object window)
 
              /* Find point in a display of infinite width.  */
              saved_current_buffer = current_buffer;
-             current_buffer = XBUFFER (w->buffer);
+             current_buffer = XBUFFER (w->contents);
 
              if (w == XWINDOW (selected_window))
                pt = PT;
@@ -12432,7 +12432,7 @@ hscroll_window_tree (Lisp_Object window)
                 redisplay.  */
              if (w->hscroll != hscroll)
                {
-                 XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
+                 XBUFFER (w->contents)->prevent_redisplay_optimizations_p = 1;
                  w->hscroll = hscroll;
                  hscrolled_p = 1;
                }
@@ -12521,9 +12521,9 @@ debug_method_add (struct window *w, char const *fmt, ...)
   if (trace_redisplay_p)
     fprintf (stderr, "%p (%s): %s\n",
             w,
-            ((BUFFERP (w->buffer)
-              && STRINGP (BVAR (XBUFFER (w->buffer), name)))
-             ? SSDATA (BVAR (XBUFFER (w->buffer), name))
+            ((BUFFERP (w->contents)
+              && STRINGP (BVAR (XBUFFER (w->contents), name)))
+             ? SSDATA (BVAR (XBUFFER (w->contents), name))
              : "no buffer"),
             method + len);
 }
@@ -12587,8 +12587,8 @@ text_outside_line_unchanged_p (struct window *w,
         require to redisplay the whole paragraph.  It might be worthwhile
         to find the paragraph limits and widen the range of redisplayed
         lines to that, but for now just give up this optimization.  */
-      if (!NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering))
-         && NILP (BVAR (XBUFFER (w->buffer), bidi_paragraph_direction)))
+      if (!NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering))
+         && NILP (BVAR (XBUFFER (w->contents), bidi_paragraph_direction)))
        unchanged_p = 0;
     }
 
@@ -12811,7 +12811,7 @@ reconsider_clip_changes (struct window *w, struct buffer *b)
      we set b->clip_changed to 1 to force updating the screen.  If
      b->clip_changed has already been set to 1, we can skip this
      check.  */
-  if (!b->clip_changed && BUFFERP (w->buffer) && w->window_end_valid)
+  if (!b->clip_changed && BUFFERP (w->contents) && w->window_end_valid)
     {
       ptrdiff_t pt;
 
@@ -12820,11 +12820,11 @@ reconsider_clip_changes (struct window *w, struct buffer *b)
       else
        pt = marker_position (w->pointm);
 
-      if ((w->current_matrix->buffer != XBUFFER (w->buffer)
+      if ((w->current_matrix->buffer != XBUFFER (w->contents)
           || pt != w->last_point)
          && check_point_in_composition (w->current_matrix->buffer,
                                         w->last_point,
-                                        XBUFFER (w->buffer), pt))
+                                        XBUFFER (w->contents), pt))
        b->clip_changed = 1;
     }
 }
@@ -13002,8 +13002,6 @@ redisplay_internal (void)
 
   unbind_to (count1, Qnil);
 
-  FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1;
-
   consider_all_windows_p = (update_mode_lines
                            || buffer_shared_and_changed ()
                            || cursor_type_changed);
@@ -13079,11 +13077,11 @@ redisplay_internal (void)
      the whole window.  The assignment to this_line_start_pos prevents
      the optimization directly below this if-statement.  */
   if (((!NILP (Vtransient_mark_mode)
-       && !NILP (BVAR (XBUFFER (w->buffer), mark_active)))
+       && !NILP (BVAR (XBUFFER (w->contents), mark_active)))
        != (w->region_showing > 0))
       || (w->region_showing
          && w->region_showing
-         != XINT (Fmarker_position (BVAR (XBUFFER (w->buffer), mark)))))
+         != XINT (Fmarker_position (BVAR (XBUFFER (w->contents), mark)))))
     CHARPOS (this_line_start_pos) = 0;
 
   /* Optimize the case that only the line containing the cursor in the
@@ -13101,7 +13099,7 @@ redisplay_internal (void)
       && !FRAME_OBSCURED_P (XFRAME (w->frame))
       /* Make sure recorded data applies to current buffer, etc.  */
       && this_line_buffer == current_buffer
-      && current_buffer == XBUFFER (w->buffer)
+      && current_buffer == XBUFFER (w->contents)
       && !w->force_start
       && !w->optional_new_start
       /* Point must be on the line that we have info recorded about.  */
@@ -13231,7 +13229,7 @@ redisplay_internal (void)
               PT == w->last_point
               /* Make sure the cursor was last displayed
                  in this window.  Otherwise we have to reposition it.  */
-              && w->cursor.vpos >= 0
+              && 0 <= w->cursor.vpos
               && w->cursor.vpos < WINDOW_TOTAL_LINES (w))
        {
          if (!must_finish)
@@ -13399,7 +13397,7 @@ redisplay_internal (void)
       Lisp_Object mini_window = FRAME_MINIBUF_WINDOW (sf);
       struct frame *mini_frame;
 
-      displayed_buffer = XBUFFER (XWINDOW (selected_window)->buffer);
+      displayed_buffer = XBUFFER (XWINDOW (selected_window)->contents);
       /* Use list_of_error, not Qerror, so that
         we catch only errors and don't run the debugger.  */
       internal_condition_case_1 (redisplay_window_1, selected_window,
@@ -13609,7 +13607,7 @@ unwind_redisplay (Lisp_Object old_frame)
 static void
 mark_window_display_accurate_1 (struct window *w, int accurate_p)
 {
-  struct buffer *b = XBUFFER (w->buffer);
+  struct buffer *b = XBUFFER (w->contents);
 
   w->last_modified = accurate_p ? BUF_MODIFF (b) : 0;
   w->last_overlay_modified = accurate_p ? BUF_OVERLAY_MODIFF (b) : 0;
@@ -13656,11 +13654,9 @@ mark_window_display_accurate (Lisp_Object window, int accurate_p)
   for (; !NILP (window); window = w->next)
     {
       w = XWINDOW (window);
-      if (!NILP (w->vchild))
-       mark_window_display_accurate (w->vchild, accurate_p);
-      else if (!NILP (w->hchild))
-       mark_window_display_accurate (w->hchild, accurate_p);
-      else if (BUFFERP (w->buffer))
+      if (WINDOWP (w->contents))
+       mark_window_display_accurate (w->contents, accurate_p);
+      else
        mark_window_display_accurate_1 (w, accurate_p);
     }
 
@@ -13717,13 +13713,11 @@ redisplay_windows (Lisp_Object window)
     {
       struct window *w = XWINDOW (window);
 
-      if (!NILP (w->hchild))
-       redisplay_windows (w->hchild);
-      else if (!NILP (w->vchild))
-       redisplay_windows (w->vchild);
-      else if (!NILP (w->buffer))
+      if (WINDOWP (w->contents))
+       redisplay_windows (w->contents);
+      else if (BUFFERP (w->contents))
        {
-         displayed_buffer = XBUFFER (w->buffer);
+         displayed_buffer = XBUFFER (w->contents);
          /* Use list_of_error, not Qerror, so that
             we catch only errors and don't run the debugger.  */
          internal_condition_case_1 (redisplay_window_0, window,
@@ -14370,7 +14364,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
          && !MATRIX_ROW_CONTINUATION_LINE_P (row)
          && row->x == 0)
        {
-         this_line_buffer = XBUFFER (w->buffer);
+         this_line_buffer = XBUFFER (w->contents);
 
          CHARPOS (this_line_start_pos)
            = MATRIX_ROW_START_CHARPOS (row) + delta;
@@ -14406,7 +14400,7 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp)
   struct window *w = XWINDOW (window);
   SET_MARKER_FROM_TEXT_POS (w->start, startp);
 
-  if (current_buffer != XBUFFER (w->buffer))
+  if (current_buffer != XBUFFER (w->contents))
     emacs_abort ();
 
   if (!NILP (Vwindow_scroll_functions))
@@ -14415,7 +14409,7 @@ run_window_scroll_functions (Lisp_Object window, struct text_pos startp)
                            make_number (CHARPOS (startp)));
       SET_TEXT_POS_FROM_MARKER (startp, w->start);
       /* In case the hook functions switch buffers.  */
-      set_buffer_internal (XBUFFER (w->buffer));
+      set_buffer_internal (XBUFFER (w->contents));
     }
 
   return startp;
@@ -15066,7 +15060,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
              must_scroll = 1;
            }
          else if (rc != CURSOR_MOVEMENT_SUCCESS
-                  && !NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering)))
+                  && !NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering)))
            {
              struct glyph_row *row1;
 
@@ -15129,7 +15123,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
          else if (scroll_p)
            rc = CURSOR_MOVEMENT_MUST_SCROLL;
          else if (rc != CURSOR_MOVEMENT_SUCCESS
-                  && !NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering)))
+                  && !NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering)))
            {
              /* With bidi-reordered rows, there could be more than
                 one candidate row whose start and end positions
@@ -15236,7 +15230,7 @@ set_vertical_scroll_bar (struct window *w)
       || (w == XWINDOW (minibuf_window)
          && NILP (echo_area_buffer[0])))
     {
-      struct buffer *buf = XBUFFER (w->buffer);
+      struct buffer *buf = XBUFFER (w->contents);
       whole = BUF_ZV (buf) - BUF_BEGV (buf);
       start = marker_position (w->start) - BUF_BEGV (buf);
       /* I don't think this is guaranteed to be right.  For the
@@ -15270,7 +15264,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
 {
   struct window *w = XWINDOW (window);
   struct frame *f = XFRAME (w->frame);
-  struct buffer *buffer = XBUFFER (w->buffer);
+  struct buffer *buffer = XBUFFER (w->contents);
   struct buffer *old = current_buffer;
   struct text_pos lpoint, opoint, startp;
   int update_mode_line;
@@ -15292,12 +15286,14 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
   SET_TEXT_POS (lpoint, PT, PT_BYTE);
   opoint = lpoint;
 
-  /* W must be a leaf window here.  */
-  eassert (!NILP (w->buffer));
 #ifdef GLYPH_DEBUG
   *w->desired_matrix->method = 0;
 #endif
 
+  /* Make sure that both W's markers are valid.  */
+  eassert (XMARKER (w->start)->buffer == buffer);
+  eassert (XMARKER (w->pointm)->buffer == buffer);
+
  restart:
   reconsider_clip_changes (w, buffer);
 
@@ -15323,10 +15319,10 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
       else if ((w != XWINDOW (minibuf_window)
                || minibuf_level == 0)
               /* When buffer is nonempty, redisplay window normally. */
-              && BUF_Z (XBUFFER (w->buffer)) == BUF_BEG (XBUFFER (w->buffer))
+              && BUF_Z (XBUFFER (w->contents)) == BUF_BEG (XBUFFER (w->contents))
               /* Quail displays non-mini buffers in minibuffer window.
                  In that case, redisplay the window normally.  */
-              && !NILP (Fmemq (w->buffer, Vminibuffer_list)))
+              && !NILP (Fmemq (w->contents, Vminibuffer_list)))
        {
          /* W is a mini-buffer window, but it's not active, so clear
             it.  */
@@ -15348,7 +15344,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
      value.  */
   /* Really select the buffer, for the sake of buffer-local
      variables.  */
-  set_buffer_internal_1 (XBUFFER (w->buffer));
+  set_buffer_internal_1 (XBUFFER (w->contents));
 
   current_matrix_up_to_date_p
     = (w->window_end_valid
@@ -16653,7 +16649,7 @@ try_window_reusing_current_matrix (struct window *w)
                 bidi-reordered glyph rows.  Let set_cursor_from_row
                 figure out where to put the cursor, and if it fails,
                 give up.  */
-             if (!NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering)))
+             if (!NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering)))
                {
                  if (!set_cursor_from_row (w, row, w->current_matrix,
                                            0, 0, 0, 0))
@@ -16904,7 +16900,7 @@ sync_frame_with_window_matrix_rows (struct window *w)
 
   /* Preconditions: W must be a leaf window and full-width.  Its frame
      must have a frame matrix.  */
-  eassert (NILP (w->hchild) && NILP (w->vchild));
+  eassert (BUFFERP (w->contents));
   eassert (WINDOW_FULL_WIDTH_P (w));
   eassert (!FRAME_WINDOW_P (f));
 
@@ -16946,7 +16942,7 @@ row_containing_pos (struct window *w, ptrdiff_t charpos,
 {
   struct glyph_row *row = start;
   struct glyph_row *best_row = NULL;
-  ptrdiff_t mindif = BUF_ZV (XBUFFER (w->buffer)) + 1;
+  ptrdiff_t mindif = BUF_ZV (XBUFFER (w->contents)) + 1;
   int last_y;
 
   /* If we happen to start on a header-line, skip that.  */
@@ -16982,7 +16978,7 @@ row_containing_pos (struct window *w, ptrdiff_t charpos,
        {
          struct glyph *g;
 
-         if (NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering))
+         if (NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering))
              || (!best_row && !row->continued_p))
            return row;
          /* In bidi-reordered rows, there could be several rows
@@ -17155,7 +17151,7 @@ try_window_id (struct window *w)
      wrapped line can change the wrap position, altering the line
      above it.  It might be worthwhile to handle this more
      intelligently, but for now just redisplay from scratch.  */
-  if (!NILP (BVAR (XBUFFER (w->buffer), word_wrap)))
+  if (!NILP (BVAR (XBUFFER (w->contents), word_wrap)))
     GIVE_UP (21);
 
   /* Under bidi reordering, adding or deleting a character in the
@@ -17166,8 +17162,8 @@ try_window_id (struct window *w)
      to find the paragraph limits and widen the range of redisplayed
      lines to that, but for now just give up this optimization and
      redisplay from scratch.  */
-  if (!NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering))
-      && NILP (BVAR (XBUFFER (w->buffer), bidi_paragraph_direction)))
+  if (!NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering))
+      && NILP (BVAR (XBUFFER (w->contents), bidi_paragraph_direction)))
     GIVE_UP (22);
 
   /* Make sure beg_unchanged and end_unchanged are up to date.  Do it
@@ -18055,7 +18051,7 @@ glyphs in short form, otherwise show glyphs in long form.  */)
   (Lisp_Object glyphs)
 {
   struct window *w = XWINDOW (selected_window);
-  struct buffer *buffer = XBUFFER (w->buffer);
+  struct buffer *buffer = XBUFFER (w->contents);
 
   fprintf (stderr, "PT = %"pI"d, BEGV = %"pI"d. ZV = %"pI"d\n",
           BUF_PT (buffer), BUF_BEGV (buffer), BUF_ZV (buffer));
@@ -18161,7 +18157,7 @@ static struct glyph_row *
 get_overlay_arrow_glyph_row (struct window *w, Lisp_Object overlay_arrow_string)
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
-  struct buffer *buffer = XBUFFER (w->buffer);
+  struct buffer *buffer = XBUFFER (w->contents);
   struct buffer *old = current_buffer;
   const unsigned char *arrow_string = SDATA (overlay_arrow_string);
   int arrow_len = SCHARS (overlay_arrow_string);
@@ -19368,7 +19364,7 @@ display_line (struct it *it)
              row->glyphs[TEXT_AREA]->charpos = -1;
              row->displays_text_p = 0;
 
-             if (!NILP (BVAR (XBUFFER (it->w->buffer), indicate_empty_lines))
+             if (!NILP (BVAR (XBUFFER (it->w->contents), indicate_empty_lines))
                  && (!MINI_WINDOW_P (it->w)
                      || (minibuf_level && EQ (it->window, minibuf_window))))
                row->indicate_empty_line_p = 1;
@@ -20183,10 +20179,8 @@ redisplay_mode_lines (Lisp_Object window, int force)
     {
       struct window *w = XWINDOW (window);
 
-      if (WINDOWP (w->hchild))
-       nwindows += redisplay_mode_lines (w->hchild, force);
-      else if (WINDOWP (w->vchild))
-       nwindows += redisplay_mode_lines (w->vchild, force);
+      if (WINDOWP (w->contents))
+       nwindows += redisplay_mode_lines (w->contents, force);
       else if (force
               || FRAME_GARBAGED_P (XFRAME (w->frame))
               || !MATRIX_MODE_LINE_ROW (w->current_matrix)->enabled_p)
@@ -20196,7 +20190,7 @@ redisplay_mode_lines (Lisp_Object window, int force)
 
          /* Set the window's buffer for the mode line display.  */
          SET_TEXT_POS (lpoint, PT, PT_BYTE);
-         set_buffer_internal_1 (XBUFFER (w->buffer));
+         set_buffer_internal_1 (XBUFFER (w->contents));
 
          /* Point refers normally to the selected window.  For any
             other window, set up appropriate value.  */
@@ -20978,7 +20972,7 @@ are the selected window and the WINDOW's buffer).  */)
   XSETWINDOW (window, w);
 
   if (NILP (buffer))
-    buffer = w->buffer;
+    buffer = w->contents;
   CHECK_BUFFER (buffer);
 
   /* Make formatting the modeline a non-op when noninteractive, otherwise
@@ -22284,7 +22278,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
            return OK_PIXELS (WINDOW_SCROLL_BAR_AREA_WIDTH (it->w));
        }
 
-      prop = buffer_local_value_1 (prop, it->w->buffer);
+      prop = buffer_local_value_1 (prop, it->w->contents);
       if (EQ (prop, Qunbound))
        prop = Qnil;
     }
@@ -22343,7 +22337,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
              return OK_PIXELS (pixels);
            }
 
-         car = buffer_local_value_1 (car, it->w->buffer);
+         car = buffer_local_value_1 (car, it->w->contents);
          if (EQ (car, Qunbound))
            car = Qnil;
        }
@@ -24325,7 +24319,7 @@ produce_stretch_glyph (struct it *it)
       int n = width;
 
       if (!STRINGP (object))
-       object = it->w->buffer;
+       object = it->w->contents;
 #ifdef HAVE_WINDOW_SYSTEM
       if (FRAME_WINDOW_P (it->f))
        append_stretch_glyph (it, object, width, height, ascent);
@@ -25724,7 +25718,7 @@ get_window_cursor_type (struct window *w, struct glyph *glyph, int *width,
                        int *active_cursor)
 {
   struct frame *f = XFRAME (w->frame);
-  struct buffer *b = XBUFFER (w->buffer);
+  struct buffer *b = XBUFFER (w->contents);
   int cursor_type = DEFAULT_CURSOR;
   Lisp_Object alt_cursor;
   int non_selected = 0;
@@ -26282,10 +26276,8 @@ update_cursor_in_window_tree (struct window *w, int on_p)
 {
   while (w)
     {
-      if (!NILP (w->hchild))
-       update_cursor_in_window_tree (XWINDOW (w->hchild), on_p);
-      else if (!NILP (w->vchild))
-       update_cursor_in_window_tree (XWINDOW (w->vchild), on_p);
+      if (WINDOWP (w->contents))
+       update_cursor_in_window_tree (XWINDOW (w->contents), on_p);
       else
        update_window_cursor (w, on_p);
 
@@ -27531,7 +27523,7 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
                {
                  help_echo_string = help;
                  XSETWINDOW (help_echo_window, w);
-                 help_echo_object = w->buffer;
+                 help_echo_object = w->contents;
                  help_echo_pos = charpos;
                }
            }
@@ -27567,7 +27559,7 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
            {
              Lisp_Object default_help
                = buffer_local_value_1 (Qmode_line_default_help_echo,
-                                       w->buffer);
+                                       w->contents);
 
              if (STRINGP (default_help))
                {
@@ -27842,7 +27834,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
 
   /* Are we in a window whose display is up to date?
      And verify the buffer's text has not changed.  */
-  b = XBUFFER (w->buffer);
+  b = XBUFFER (w->contents);
   if (part == ON_TEXT
       && w->window_end_valid
       && w->last_modified == BUF_MODIFF (b)
@@ -28051,8 +28043,8 @@ note_mouse_highlight (struct frame *f, int x, int y)
                  if (pos > 0)
                    {
                      mouse_face = get_char_property_and_overlay
-                       (make_number (pos), Qmouse_face, w->buffer, &overlay);
-                     buffer = w->buffer;
+                       (make_number (pos), Qmouse_face, w->contents, &overlay);
+                     buffer = w->contents;
                      disp_string = object;
                    }
                }
@@ -28165,11 +28157,11 @@ note_mouse_highlight (struct frame *f, int x, int y)
                    if (p > 0)
                      {
                        help = Fget_char_property (make_number (p),
-                                                  Qhelp_echo, w->buffer);
+                                                  Qhelp_echo, w->contents);
                        if (!NILP (help))
                          {
                            charpos = p;
-                           obj = w->buffer;
+                           obj = w->contents;
                          }
                      }
                  }
@@ -28220,7 +28212,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
                      ptrdiff_t p = string_buffer_position (obj, start);
                      if (p > 0)
                        pointer = Fget_char_property (make_number (p),
-                                                     Qpointer, w->buffer);
+                                                     Qpointer, w->contents);
                    }
                }
              else if (BUFFERP (obj)
@@ -28663,12 +28655,9 @@ expose_window_tree (struct window *w, XRectangle *r)
 
   while (w && !FRAME_GARBAGED_P (f))
     {
-      if (!NILP (w->hchild))
-       mouse_face_overwritten_p
-         |= expose_window_tree (XWINDOW (w->hchild), r);
-      else if (!NILP (w->vchild))
+      if (WINDOWP (w->contents))
        mouse_face_overwritten_p
-         |= expose_window_tree (XWINDOW (w->vchild), r);
+         |= expose_window_tree (XWINDOW (w->contents), r);
       else
        mouse_face_overwritten_p |= expose_window (w, r);
 
index 6db6ac7683f8348898e366a5163c55ad79832336..b2ace1be14ee4e54840a7ce2a7541bd51c99354d 100644 (file)
@@ -231,7 +231,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #undef FRAME_X_DISPLAY_INFO
 #define FRAME_X_DISPLAY_INFO FRAME_W32_DISPLAY_INFO
 #define x_display_info w32_display_info
-#define check_x check_w32
 #define GCGraphicsExposures 0
 #endif /* HAVE_NTGUI */
 
@@ -239,7 +238,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #undef FRAME_X_DISPLAY_INFO
 #define FRAME_X_DISPLAY_INFO FRAME_NS_DISPLAY_INFO
 #define x_display_info ns_display_info
-#define check_x check_ns
 #define GCGraphicsExposures 0
 #endif /* HAVE_NS */
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -1636,7 +1634,7 @@ the WIDTH times as wide as FACE on FRAME.  */)
   struct frame *f;
   int size, avgwidth IF_LINT (= 0);
 
-  check_x ();
+  check_window_system (NULL);
   CHECK_STRING (pattern);
 
   if (! NILP (maximum))
@@ -1645,8 +1643,8 @@ the WIDTH times as wide as FACE on FRAME.  */)
   if (!NILP (width))
     CHECK_NUMBER (width);
 
-  /* We can't simply call check_x_frame because this function may be
-     called before any frame is created.  */
+  /* We can't simply call decode_window_system_frame because
+     this function may be called before any frame is created.  */
   f = decode_live_frame (frame);
   if (! FRAME_WINDOW_P (f))
     {
@@ -3925,8 +3923,8 @@ If FRAME is omitted or nil, use the selected frame.  */)
   struct frame *f;
   Lisp_Object lface1, lface2;
 
-  /* Don't use check_x_frame here because this function is called
-     before X frames exist.  At that time, if FRAME is nil,
+  /* Don't use decode_window_system_frame here because this function
+     is called before X frames exist.  At that time, if FRAME is nil,
      selected_frame will be used which is the frame dumped with
      Emacs.  That frame is not an X frame.  */
   f = EQ (frame, Qt) ? NULL : decode_live_frame (frame);
@@ -5964,7 +5962,7 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
 
   /* W must display the current buffer.  We could write this function
      to use the frame and buffer of W, but right now it doesn't.  */
-  /* eassert (XBUFFER (w->buffer) == current_buffer); */
+  /* eassert (XBUFFER (w->contents) == current_buffer); */
 
   XSETFASTINT (position, pos);
 
@@ -5974,9 +5972,9 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
 
   /* Get the `face' or `mouse_face' text property at POS, and
      determine the next position at which the property changes.  */
-  prop = Fget_text_property (position, propname, w->buffer);
+  prop = Fget_text_property (position, propname, w->contents);
   XSETFASTINT (limit1, (limit < endpos ? limit : endpos));
-  end = Fnext_single_property_change (position, propname, w->buffer, limit1);
+  end = Fnext_single_property_change (position, propname, w->contents, limit1);
   if (INTEGERP (end))
     endpos = XINT (end);
 
@@ -6072,7 +6070,7 @@ face_for_overlay_string (struct window *w, ptrdiff_t pos,
 
   /* W must display the current buffer.  We could write this function
      to use the frame and buffer of W, but right now it doesn't.  */
-  /* eassert (XBUFFER (w->buffer) == current_buffer); */
+  /* eassert (XBUFFER (w->contents) == current_buffer); */
 
   XSETFASTINT (position, pos);
 
@@ -6082,9 +6080,9 @@ face_for_overlay_string (struct window *w, ptrdiff_t pos,
 
   /* Get the `face' or `mouse_face' text property at POS, and
      determine the next position at which the property changes.  */
-  prop = Fget_text_property (position, propname, w->buffer);
+  prop = Fget_text_property (position, propname, w->contents);
   XSETFASTINT (limit1, (limit < endpos ? limit : endpos));
-  end = Fnext_single_property_change (position, propname, w->buffer, limit1);
+  end = Fnext_single_property_change (position, propname, w->contents, limit1);
   if (INTEGERP (end))
     endpos = XINT (end);
 
index e24d3981a09068a38753bed911a5d1f2a16f3d2a..f4c24cb09a02ccebef5a2bad53c4939b2eb56f89 100644 (file)
@@ -123,10 +123,6 @@ extern LWLIB_ID widget_id_tick;
 
 #define MAXREQUEST(dpy) (XMaxRequestSize (dpy))
 
-/* Nonzero if using X.  */
-
-int x_in_use;
-
 static Lisp_Object Qsuppress_icon;
 static Lisp_Object Qundefined_color;
 static Lisp_Object Qcompound_text, Qcancel_timer;
@@ -139,38 +135,6 @@ static int dpyinfo_refcount;
 
 static struct x_display_info *x_display_info_for_name (Lisp_Object);
 
-\f
-/* Error if we are not connected to X.  */
-
-void
-check_x (void)
-{
-  if (! x_in_use)
-    error ("X windows are not in use or not initialized");
-}
-
-/* Nonzero if we can use mouse menus.
-   You should not call this unless HAVE_MENUS is defined.  */
-
-int
-have_menus_p (void)
-{
-  return x_in_use;
-}
-
-/* Extract a frame as a FRAME_PTR, defaulting to the selected frame
-   and checking validity for X.  */
-
-FRAME_PTR
-check_x_frame (Lisp_Object frame)
-{
-  struct frame *f = decode_live_frame (frame);
-
-  if (! FRAME_X_P (f))
-    error ("Non-X frame used");
-  return f;
-}
-
 /* Let the user specify an X display with a Lisp object.
    OBJECT may be nil, a frame or a terminal object.
    nil stands for the selected frame--or, if that is not an X frame,
@@ -205,7 +169,7 @@ check_x_display_info (Lisp_Object object)
     dpyinfo = x_display_info_for_name (object);
   else
     {
-      FRAME_PTR f = check_x_frame (object);
+      FRAME_PTR f = decode_window_system_frame (object);
       dpyinfo = FRAME_X_DISPLAY_INFO (f);
     }
 
@@ -2992,7 +2956,7 @@ If FRAME is omitted or nil, use the selected frame.
 Signal error if FRAME is not an X frame.  */)
   (Lisp_Object frame)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
 
   block_input ();
   x_wm_set_size_hint (f, 0, 0);
@@ -3483,7 +3447,7 @@ DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0,
 FRAME nil means use the selected frame.  */)
   (Lisp_Object frame)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Display *dpy = FRAME_X_DISPLAY (f);
 
   block_input ();
@@ -3516,7 +3480,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
 
   CHECK_STRING (color);
 
@@ -3531,7 +3495,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
 
   CHECK_STRING (color);
 
@@ -3996,7 +3960,6 @@ x_display_info_for_name (Lisp_Object name)
   if (dpyinfo == 0)
     error ("Cannot connect to X server %s", SDATA (name));
 
-  x_in_use = 1;
   XSETFASTINT (Vwindow_system_version, 11);
 
   return dpyinfo;
@@ -4050,8 +4013,6 @@ An insecure way to solve the problem may be to use `xhost'.\n",
        error ("Cannot connect to X server %s", SDATA (display));
     }
 
-  x_in_use = 1;
-
   XSETFASTINT (Vwindow_system_version, 11);
   return Qnil;
 }
@@ -4143,7 +4104,7 @@ FRAME.  Default is to change on the edit X window.  */)
   (Lisp_Object prop, Lisp_Object value, Lisp_Object frame,
    Lisp_Object type, Lisp_Object format, Lisp_Object outer_p)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
   Atom target_type = XA_STRING;
   int element_format = 8;
@@ -4221,7 +4182,7 @@ DEFUN ("x-delete-window-property", Fx_delete_window_property,
 FRAME nil or omitted means use the selected frame.  Value is PROP.  */)
   (Lisp_Object prop, Lisp_Object frame)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
 
   CHECK_STRING (prop);
@@ -4257,7 +4218,7 @@ no value of TYPE (always string in the MS Windows case).  */)
   (Lisp_Object prop, Lisp_Object frame, Lisp_Object type,
    Lisp_Object source, Lisp_Object delete_p, Lisp_Object vector_ret_p)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Atom prop_atom;
   int rc;
   Lisp_Object prop_value = Qnil;
@@ -4525,8 +4486,6 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
   Lisp_Object buffer;
   struct buffer *old_buffer;
 
-  check_x ();
-
   if (!dpyinfo->terminal->name)
     error ("Terminal is not live, can't create new frames on it");
 
@@ -4923,7 +4882,7 @@ Text larger than the specified size is clipped.  */)
   if (SCHARS (string) == 0)
     string = make_unibyte_string (" ", 1);
 
-  f = check_x_frame (frame);
+  f = decode_window_system_frame (frame);
   if (NILP (timeout))
     timeout = make_number (5);
   else
@@ -5043,7 +5002,7 @@ Text larger than the specified size is clipped.  */)
 
   /* Display the tooltip text in a temporary buffer.  */
   old_buffer = current_buffer;
-  set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer));
+  set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->contents));
   bset_truncate_lines (current_buffer, Qnil);
   clear_glyph_matrix (w->desired_matrix);
   clear_glyph_matrix (w->current_matrix);
@@ -5246,7 +5205,7 @@ DEFUN ("x-uses-old-gtk-dialog", Fx_uses_old_gtk_dialog,
 #ifdef USE_GTK
   if (use_dialog_box
       && use_file_dialog
-      && have_menus_p ()
+      && window_system_available (SELECTED_FRAME ())
       && xg_uses_old_file_dialog ())
     return Qt;
 #endif
@@ -5316,7 +5275,7 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories.  */)
   ptrdiff_t count = SPECPDL_INDEX ();
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6;
 
-  check_x ();
+  check_window_system (f);
 
   GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file);
 
@@ -5486,7 +5445,7 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories.  */)
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6;
   char *cdef_file;
 
-  check_x ();
+  check_window_system (f);
 
   GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file);
 
@@ -5541,15 +5500,13 @@ FRAME is the frame on which to pop up the font chooser.  If omitted or
 nil, it defaults to the selected frame. */)
   (Lisp_Object frame, Lisp_Object ignored)
 {
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
   Lisp_Object font;
   Lisp_Object font_param;
   char *default_name = NULL;
   struct gcpro gcpro1, gcpro2;
   ptrdiff_t count = SPECPDL_INDEX ();
 
-  check_x ();
-
   if (popup_activated ())
     error ("Trying to use a menu from within a menu-entry");
 
@@ -5609,7 +5566,7 @@ present and mapped to the usual X keysyms.  */)
   return Qlambda;
 #else
   XkbDescPtr kb;
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   Display *dpy = FRAME_X_DISPLAY (f);
   Lisp_Object have_keys;
   int major, minor, op, event, error_code;
@@ -5737,9 +5694,6 @@ frame_parm_handler x_frame_parm_handlers[] =
 void
 syms_of_xfns (void)
 {
-  /* This is zero if not using X windows.  */
-  x_in_use = 0;
-
   /* The section below is built by the lisp expression at the top of the file,
      just above where these variables are declared.  */
   /*&&& init symbols here &&&*/
@@ -5919,9 +5873,6 @@ When using Gtk+ tooltips, the tooltip face is not used.  */);
   defsubr (&Sx_focus_frame);
   defsubr (&Sx_backspace_delete_keys_p);
 
-  /* Setting callback functions for fontset handler.  */
-  check_window_system_func = check_x;
-
   defsubr (&Sx_show_tip);
   defsubr (&Sx_hide_tip);
   tip_timer = Qnil;
index 2c8e9671abb758a32f59bedd06e721c4995e9e32..0b5ad6ae70d466b17a2b5cb2fb7d3c14f990f3ac 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <glib.h>
 #include <errno.h>
 #include "xterm.h"
+#include "frame.h"
 
 int
 xg_select (int fds_lim, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
@@ -43,7 +44,7 @@ xg_select (int fds_lim, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
   int i, nfds, tmo_in_millisec;
   USE_SAFE_ALLOCA;
 
-  if (! (x_in_use
+  if (! (window_system_available (NULL)
         && g_main_context_pending (context = g_main_context_default ())))
     return pselect (fds_lim, rfds, wfds, efds, timeout, sigmask);
 
index af08eeb657c783fc7bc3cad43f98219a1c3d473a..9993bd87d5b26c16f234e79865178f5e50cc73e4 100644 (file)
@@ -223,8 +223,6 @@ for instance using the window manager, then this produces a quit and
   FRAME_PTR f = NULL;
   Lisp_Object window;
 
-  check_x ();
-
   /* Decode the first argument: find the window or frame to use.  */
   if (EQ (position, Qt)
       || (CONSP (position) && (EQ (XCAR (position), Qmenu_bar)
@@ -277,8 +275,7 @@ for instance using the window manager, then this produces a quit and
        but I don't want to make one now.  */
     CHECK_WINDOW (window);
 
-  if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f))
-    error ("Can not put X dialog on this terminal");
+  check_window_system (f);
 
   /* Force a redisplay before showing the dialog.  If a frame is created
      just before showing the dialog, its contents may not have been fully
@@ -485,7 +482,7 @@ If FRAME is nil or not given, use the selected frame.  */)
   (Lisp_Object frame)
 {
   XEvent ev;
-  FRAME_PTR f = check_x_frame (frame);
+  FRAME_PTR f = decode_window_system_frame (frame);
   Widget menubar;
   block_input ();
 
@@ -569,7 +566,7 @@ If FRAME is nil or not given, use the selected frame.  */)
      block_input ().  */
 
   block_input ();
-  f = check_x_frame (frame);
+  f = decode_window_system_frame (frame);
 
   if (FRAME_EXTERNAL_MENU_BAR (f))
     set_frame_menubar (f, 0, 1);
@@ -976,7 +973,7 @@ set_frame_menubar (FRAME_PTR f, bool first_time, bool deep_p)
       if (! menubar_widget)
        previous_menu_items_used = 0;
 
-      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->buffer;
+      buffer = XWINDOW (FRAME_SELECTED_WINDOW (f))->contents;
       specbind (Qinhibit_quit, Qt);
       /* Don't let the debugger step into this code
         because it is not reentrant.  */
index cca1a47212b9fa8e4f16917fbfa26f1cf47ce59c..b422a22d68b96c48d30b36f6156da939af08073a 100644 (file)
@@ -2450,7 +2450,7 @@ Use the display for FRAME or the current frame if FRAME is not given or nil.
 If the value is 0 or the atom is not known, return the empty string.  */)
   (Lisp_Object value, Lisp_Object frame)
 {
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   char *name = 0;
   char empty[] = "";
   Lisp_Object ret = Qnil;
@@ -2485,7 +2485,7 @@ FRAME is on.  If FRAME is nil, the selected frame is used.  */)
   (Lisp_Object atom, Lisp_Object frame)
 {
   Atom x_atom;
-  struct frame *f = check_x_frame (frame);
+  struct frame *f = decode_window_system_frame (frame);
   ptrdiff_t i;
   struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
 
@@ -2618,7 +2618,7 @@ x_send_client_event (Lisp_Object display, Lisp_Object dest, Lisp_Object from,
   struct x_display_info *dpyinfo = check_x_display_info (display);
   Window wdest;
   XEvent event;
-  struct frame *f = check_x_frame (from);
+  struct frame *f = decode_window_system_frame (from);
   int to_root;
 
   CHECK_NUMBER (format);
@@ -2635,7 +2635,7 @@ x_send_client_event (Lisp_Object display, Lisp_Object dest, Lisp_Object from,
 
   if (FRAMEP (dest) || NILP (dest))
     {
-      struct frame *fdest = check_x_frame (dest);
+      struct frame *fdest = decode_window_system_frame (dest);
       wdest = FRAME_OUTER_WINDOW (fdest);
     }
   else if (STRINGP (dest))
index 0af196d21606d4f973c10eddfe2007c3aa50e68c..cb7122202df7f71a56e2f6130ffb9bb719209999 100644 (file)
@@ -221,7 +221,7 @@ smc_save_yourself_CB (SmcConn smcConn,
   props[props_idx]->name = xstrdup (SmRestartCommand);
   props[props_idx]->type = xstrdup (SmLISTofARRAY8);
   /* /path/to/emacs, --smid=xxx --no-splash --chdir=dir ... */
-  if (initial_argc > INT_MAX - 3)
+  if (INT_MAX - 3 < initial_argc)
     memory_full (SIZE_MAX);
   i = 3 + initial_argc;
   props[props_idx]->num_vals = i;
index b241ff23559fe685a54f00e0eca1358ffb318167..16effc5c9eac4e89d0756750292d0443ff1afe5f 100644 (file)
@@ -366,10 +366,6 @@ struct x_display_info
 extern int use_xim;
 #endif
 
-/* This checks to make sure we have a display.  */
-
-extern void check_x (void);
-
 extern struct frame *x_window_to_frame (struct x_display_info *, int);
 extern struct frame *x_any_window_to_frame (struct x_display_info *, int);
 extern struct frame *x_menubar_window_to_frame (struct x_display_info *,
@@ -927,7 +923,6 @@ void x_handle_property_notify (XPropertyEvent *);
 
 /* From xfns.c.  */
 
-struct frame *check_x_frame (Lisp_Object);
 extern void x_free_gcs (struct frame *);
 
 /* From xrdb.c.  */
@@ -1012,7 +1007,6 @@ extern void x_clipboard_manager_save_all (void);
 
 extern struct x_display_info * check_x_display_info (Lisp_Object);
 extern Lisp_Object x_get_focus_frame (struct frame *);
-extern int x_in_use;
 
 #ifdef USE_GTK
 extern int xg_set_icon (struct frame *, Lisp_Object);
index 43648ad1bb193abb8a22ef66df917d0ed7a9e12e..cd4414cd079a4bd872a09a46b10423ba754d4630 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-30  Fabián Ezequiel Gallina  <fabian@anue.biz>
+
+       * automated/python-tests.el (python-indent-block-enders): New test.
+       (python-info-current-defun-2): Fix test.
+
 2013-03-05  Paul Eggert  <eggert@cs.ucla.edu>
 
        * indent/octave.m: Fix encoding error in comment.  Add coding tag.
index ab8eb4816d392bd61ebd193238b8057b3a0729d8..1a741b45d81a94e6ce2eafb81f43a9ceb44dad3b 100644 (file)
@@ -444,6 +444,28 @@ objects = Thing.objects.all() \\\\
    (should (eq (car (python-indent-context)) 'after-line))
    (should (= (python-indent-calculate-indentation) 0))))
 
+(ert-deftest python-indent-block-enders ()
+  "Test `python-indent-block-enders' value honoring."
+  (python-tests-with-temp-buffer
+   "
+Class foo(object):
+
+    def bar(self):
+        if self.baz:
+            return (1,
+                    2,
+                    3)
+
+        else:
+            pass
+"
+   (python-tests-look-at "3)")
+   (forward-line 1)
+   (= (python-indent-calculate-indentation) 12)
+   (python-tests-look-at "pass")
+   (forward-line 1)
+   (= (python-indent-calculate-indentation) 8)))
+
 \f
 ;;; Navigation
 
@@ -1546,13 +1568,13 @@ class C(object):
             return []
 
         def b():
-            pass
+            do_b()
 
         def a():
-            pass
+            do_a()
 
     def c(self):
-        pass
+        do_c()
 "
    (forward-line 1)
    (should (string= "C" (python-info-current-defun)))
@@ -1582,7 +1604,7 @@ class C(object):
    (python-tests-look-at "def c(self):")
    (should (string= "C.c" (python-info-current-defun)))
    (should (string= "def C.c" (python-info-current-defun t)))
-   (python-tests-look-at "pass")
+   (python-tests-look-at "do_c()")
    (should (string= "C.c" (python-info-current-defun)))
    (should (string= "def C.c" (python-info-current-defun t)))))