Sync up to APEL 10.3. apel-shubit-10_3
authorshuhei <shuhei>
Thu, 8 Mar 2001 14:17:43 +0000 (14:17 +0000)
committershuhei <shuhei>
Thu, 8 Mar 2001 14:17:43 +0000 (14:17 +0000)
25 files changed:
APEL-MK
ChangeLog
EMU-ELS
Makefile
README.en
README.ja
alist.el
apel-ver.el
install.el
mcharset.el
mcs-20.el
mcs-e20.el
mcs-ltn1.el
mcs-nemacs.el
mcs-xm.el
path-util.el
pccl-20.el
pces-raw.el
poe-18.el
poe.el
poem-e20_3.el
product.el
pym.el
static.el
timezone.el

diff --git a/APEL-MK b/APEL-MK
index 58e5ddb..394586e 100644 (file)
--- a/APEL-MK
+++ b/APEL-MK
 (defvar EMU_DIR nil)                   ; VERSION_SPECIFIC_LISPDIR/EMU_PREFIX
 
 
-;;; Utilities. (XXX: should be moved to install.el ?)
-
-(defun install-just-print-p ()
-  (let ((flag (getenv "MAKEFLAGS"))
-       (case-fold-search nil))
-    (princ (format "%s\n" flag))
-    (if flag
-       (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
-
-(defun install-update-package-files (package dir &optional just-print)
-  (cond
-   (just-print
-    (princ (format "Updating autoloads in directory %s..\n\n" dir))
-
-    (princ (format "Processing %s\n" dir))
-    (princ "Generating custom-load.el...\n\n")
-
-    (princ (format "Compiling %s...\n"
-                  (expand-file-name "auto-autoloads.el" dir)))
-    (princ (format "Wrote %s\n"
-                  (expand-file-name "auto-autoloads.elc" dir)))
-
-    (princ (format "Compiling %s...\n"
-                  (expand-file-name "custom-load.el" dir)))
-    (princ (format "Wrote %s\n"
-                  (expand-file-name "custom-load.elc" dir))))
-   (t
-    (setq autoload-package-name package)
-
-    (let ((command-line-args-left (list dir)))
-      (batch-update-directory))
-
-    (let ((command-line-args-left (list dir)))
-      (Custom-make-dependencies))
-
-    (byte-compile-file (expand-file-name "auto-autoloads.el" dir))
-    (byte-compile-file (expand-file-name "custom-load.el" dir)))))
-
-
 ;;; Configure, Compile, and Install.
 
 (defun config-apel ()
   (compile-elisp-modules emu-modules-to-compile        ".")
   (compile-elisp-modules apel-modules          "."))
 
-(defun install-apel ()
+(defun install-apel (&optional just-print)
   (config-apel)
-  (let ((just-print (install-just-print-p)))
-    (install-elisp-modules emu-modules "." EMU_DIR  just-print)
-    (install-elisp-modules apel-modules        "." APEL_DIR just-print)))
+  (or just-print
+      (setq just-print (install-just-print-p)))
+  (install-elisp-modules emu-modules   "." EMU_DIR  just-print)
+  (install-elisp-modules apel-modules  "." APEL_DIR just-print))
 
 ;; For XEmacs package system.
 (defun config-apel-package ()
     (install-update-package-files "apel" dir just-print)))
 
 (defun what-where-apel ()
-  (config-apel)
-  (princ (format "
-The files that belong to the EMU modules:
-  %s
-  -> %s
-
-The files that belong to the APEL modules:
-  %s
-  -> %s
-
-Do `make elc', `make install', `make package', or `make install-package'.
-"
-                (mapconcat (function symbol-name) emu-modules ", ")
-                EMU_DIR
-                (mapconcat (function symbol-name) apel-modules ", ")
-                APEL_DIR)))
+  (install-apel 'just-print)
+  ;; (config-apel)
+;;;   (princ (format "
+;;; The files that belong to the EMU modules:
+;;;   %s
+;;;   -> %s
+
+;;; The files that belong to the APEL modules:
+;;;   %s
+;;;   -> %s
+
+;;; Do `make elc', `make install', `make package', or `make install-package'.
+;;; "
+;;;             (mapconcat (function symbol-name) emu-modules ", ")
+;;;             EMU_DIR
+;;;             (mapconcat (function symbol-name) apel-modules ", ")
+;;;             APEL_DIR))
+  )
 
 ;;; APEL-MK ends here
index 66b879b..a9c9bb4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,248 @@
+2000-12-30  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       *  APEL: Version 10.3 released.
+       * apel-ver.el (apel-ver): Change APEL version to 10.3.
+       
+       * Makefile : Apply patch from TAKAHASHI Kaoru <kaoru@se.uec.ac.jp>
+       of Message-Id: <86vgs2s3cp.wl@tomoko.nantnaq.kaisei.org>.
+2000-12-28  Tanaka Akira      <akr@m17n.org>
+
+       * pccl-20.el (ccl-compat): new advice for `make-coding-system' of
+       XEmacs to handle Emacs style CCL coding system definition.
+
+2000-12-28  Kenichi Handa     <handa@etl.go.jp>
+
+       * static.el: Doc-string fixed.
+
+2000-12-28  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * mcharset.el (default-mime-charset-for-write): Use
+       `mime-charset-p' instead of `find-coding-system'; don't require
+       `pces'.
+
+       * mcs-nemacs.el, mcs-ltn1.el, mcs-20.el (mime-charset-p): New
+       alias.
+
+2000-12-26  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * README.en: Change major mode to outline-mode.
+       (What's APEL?): Add description about pym.el, pces, time-stamp.el,
+       timezone.el, and product.el.
+       (run in expanded place): Add a reference to `make.bat (for MS-DOS
+       family)'.
+
+       * README.ja: Change major mode to outline-mode.
+       (What's APEL?): Add description about pym.el, pces, time-stamp.el,
+       timezone.el, and product.el.
+
+2000-12-24  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * poe.el (minor-mode-overriding-map-alist): Remove the filename
+       poe.el from doc string.
+
+       * poe-18.el (current-time-world-timezones): Remove the filename
+       poe-18.el from doc string.
+       (current-time-local-timezone): Ditto.
+       (buffer-undo-list): Ditto.
+       (auto-fill-function): Ditto.
+       (unread-command-event): Ditto.
+       (unread-command-events): Ditto.
+       (minor-mode-map-alist): Ditto.
+
+       * README.en ((d) make.bat (for MS-DOS family)): New section.
+       * README.ja ((d) make.bat \e$B$rMxMQ$9$k\e(B (MS-DOS \e$B7O\e(B OS \e$B$N>l9g\e(B)):
+       Ditto.
+
+2000-12-22  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * mcs-e20.el: Require `pces'.
+
+2000-12-22  Yuuichi Teranishi <teranisi@gohome.org>
+
+       * timezone.el (timezone-time-from-absolute): Use `%' instead of
+       `mod'.
+
+2000-12-21  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * poe-18.el (numberp, mod): Removed.
+
+2000-12-21  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * mcharset.el (default-mime-charset-for-write): Require `pces' for
+       `find-coding-system'.
+
+2000-12-21  NAKAJIMA Mikio    <minakaji@osaka.email.ne.jp>
+
+       * poe-18.el (minor-mode-alist): Removed.
+       (minor-mode-overriding-map-alist): Move to poe.el.
+
+2000-12-20  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * APEL-MK (install-apel): Add new optional argument `just-print'.
+       (what-where-apel): New implementation [use `install-apel' with
+       `just-print' mode].
+
+2000-12-20  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * APEL-MK (install-just-print-p): Moved to install.el.
+       (install-update-package-files): Moved to install.el.
+
+       * install.el (install-update-package-files): New function [moved
+       from APEL-MK].
+       (install-just-print-p): Likewise.
+
+2000-12-15  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * mcs-xm.el: Don't require `poem' instead of `mcs-20'.
+
+       * mcs-e20.el: Don't require mcs-20.
+
+       * mcs-20.el: - Don't require `poem'.
+       - Require `custom' instead of `pcustom'.
+       - Require mcs-xm for XEmacs-Mule.
+       - Require mcs-e20 for GNU Emacs 20.1 or later.
+       (default-mime-charset): Change initial value to `x-unknown'.
+
+       * mcharset.el: Require mcs-20 if running with XEmacs-Mule and GNU
+       Emacs 20.1 or later.
+
+2000-12-19  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * poe.el (current-fill-column): New emulating function.
+       (current-left-margin): New emulating function.
+
+       * poe-18.el (numberp): Use `defalias-maybe' instead of `defalias'.
+       (mod): Ditto.
+
+2000-12-20  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * poe-18.el (set-frame-height): Typo fixed.
+       (read-from-minibuffer): Do not run `minibuffer-setup-hook' and
+       `minibuffer-exit-hook'.
+       (minibuffer-setup-hook): Comment out.
+       (minibuffer-exit-hook): Ditto.
+
+2000-12-19  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * make.bat: Do not echo.
+
+       * poe-18.el (set-frame-heigth): Bug fixed.
+
+2000-12-16  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * poe-18.el (frame-width): New function.
+       (frame-height): Ditto.
+       (set-frame-width): Ditto.
+       (set-frame-heigth): Ditto.
+       (read-from-minibuffer): Run `minibuffer-setup-hook' and
+       `minibuffer-exit-hook'.
+       (buffer-undo-list): Declared with `defvar-maybe' and add doc
+       string.
+       (auto-fill-function): Add doc string.
+       (unread-command-event): Ditto.
+       (unread-command-events): Ditto.
+       (minibuffer-setup-hook): New variable.
+       (minibuffer-exit-hook): Ditto.
+       (minor-mode-map-alist): Ditto.
+       (minor-mode-alist): Ditto.
+       (minor-mode-overriding-map-alist): Ditto.
+
+2000-12-15  NAKAJIMA Mikio  <minakaji@osaka.email.ne.jp>
+
+       * make.bat (listing): Bug fixed.
+
+       * README.en: Add URL that can be used to getting SKK 10.62a with
+       the new byte compiler for Emacs 18.
+       * README.ja: Ditto.
+
+2000-12-15  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * Makefile (tar): Remove .cvsignore.  Use `cvs tag -R' instead of
+       `cvs tag -RF'.
+
+2000-12-15  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * poe-18.el (buffer-disable-undo): Define it as a function to make
+       an argument optional instead of the use of `defalias' to
+       `buffer-flush-undo'.
+
+2000-12-14   Daiki Ueno  <ueno@unixuser.org>
+
+       * alist.el (del-alist): Simplified.
+
+2000-12-14  Mikio Nakajima  <minakaji@osaka.email.ne.jp>
+
+       * pym.el (static-if): Put t on edebug spec instead of if.
+
+2000-12-13  Kenichi Handa  <handa@etl.go.jp>
+
+       * alist.el: Fix and add DOCs and comments; fix coding style.
+
+2000-04-26  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * mcs-xm.el (charsets-mime-charset-alist): Add coded-charset
+       `japanese-jisx0208-1990' to MIME-charset `iso-2022-jp' and
+       `iso-2022-jp-2' in UTF-2000; add new MIME-charset `iso-2022-jp-3'.
+
+2000-11-26  Mikio Nakajima  <minakaji@osaka.email.ne.jp>
+
+       * make.bat: New file.
+       * .cvsignore: Ditto.
+
+2000-11-09  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * path-util.el (add-path): Check for both "path" and "path/".
+
+2000-10-06  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
+
+       * poe.el (require): Update `current-load-list'.
+
+2000-10-10  Keiichi Suzuki  <keiichi@mdcnet.co.jp>
+
+       * product.el (product-version-as-string): New function.
+       (product-string-1): Use `product-version-as-string'.
+
+2000-08-10  MORIOKA Tomohiko  <tomo@m17n.org>
+
+       * poem-e20_3.el: Require `pym'.
+
+2000-07-12  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * alist.el (vassoc): New function [to be compatible with XEmacs
+       21.2.32 or later].
+
+2000-05-25  Tanaka Akira      <akr@m17n.org>
+
+       * README.en, README.ja: Update for CVS via SSH.
+
+2000-05-24  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * pces-raw.el (encode-coding-string, decode-coding-string): Return
+       a copy of string.
+
+2000-04-25  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * EMU-ELS (emu-modules): Don't include `pccl-20' for XEmacs 20 and
+       earlier.
+
+2000-03-25  Mikio Nakajima  <minakaji@osaka.email.ne.jp>
+
+       * pym.el: Define edebug specs for `static-if', `static-when',
+       `static-unless', `static-condition-case', `static-defconst' and
+       `static-cond'.
+
+2000-03-08  Akihiro Arisawa  <ari@atesoft.advantest.co.jp>
+
+       * poe.el (format-time-string): Fix problem when `format' contains
+       "%d" or "%D".
+
+2000-03-04   Daiki Ueno  <ueno@ueda.info.waseda.ac.jp>
+
+       * poe.el (remassq,remassoc,remrassoc): Rewrite.
+       (remrassq): New function.
+
+\f
 2000-03-01  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * APEL: Version 10.2 released.
diff --git a/EMU-ELS b/EMU-ELS
index 677ebfc..43ddc3b 100644 (file)
--- a/EMU-ELS
+++ b/EMU-ELS
 
    ;; pccl modules; pccl modules depend on broken.
    (cond
-    ((featurep 'mule)
+    ((featurep 'xemacs)
      (cond
       ;; XEmacs 21 w/ mule.
-      ((and (featurep 'xemacs)
+      ((and (featurep 'mule)
            (>= emacs-major-version 21))
        '(pccl-20 pccl))
+      (t
+       '(pccl))))
+    ((featurep 'mule)
+     (cond
       ;; Emacs 20.
       ((>= emacs-major-version 20)
        '(pccl-20 pccl))
+      ;; Mule 1.* and 2.*.
       (t
-       ;; Mule 1.* and 2.*.
        '(pccl-om pccl))))
-     (t
-      '(pccl)))
+    (t
+     '(pccl)))
 
    ;; pces modules; pces modules depend on poe.
    (cond
index 571470f..c3a628f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
 # Makefile for APEL.
 #
 
-VERSION = 10.2
+VERSION = 10.3
 
 TAR    = tar
 RM     = /bin/rm -f
@@ -48,13 +48,13 @@ clean:
 
 tar:
        cvs commit
-       sh -c 'cvs tag -RF apel-`echo $(VERSION) \
+       sh -c 'cvs tag -R apel-`echo $(VERSION) \
                                | sed s/\\\\./_/ | sed s/\\\\./_/`; \
        cd /tmp; \
-       cvs -d :pserver:morioka@cvs.m17n.org:/cvs/root \
+       cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root \
                export -d apel-$(VERSION) \
                -r apel-`echo $(VERSION) | tr . _` apel'
-       cd /tmp; $(RM) apel-$(VERSION)/ftp.in ; \
+       cd /tmp; $(RM) apel-$(VERSION)/ftp.in apel-$(VERSION)/.cvsignore ; \
                $(TAR) cvzf apel-$(VERSION).tar.gz apel-$(VERSION)
        cd /tmp; $(RM) -r apel-$(VERSION)
        sed "s/VERSION/$(VERSION)/" < ftp.in > ftp
index 3fe9f77..c19b3e4 100644 (file)
--- a/README.en
+++ b/README.en
+-*- outline -*-
+
 [README for APEL (English Version)]
 
-What's APEL?
-============
+* What's APEL?
+
+APEL stands for "A Portable Emacs Library".  It consists of following
+modules:
+
+**  poe.el
+
+This is an emulation module mainly for basic functions and special
+forms/macros of latest emacsen.
+
+  poe-xemacs.el  --- for XEmacs
+  poe-18.el     --- for Emacs 18/Nemacs
+  env.el         --- env.el for Emacs 18
+  localhook.el   --- hook functions for Emacs 19.28 and earlier.
+  pym.el         --- macros for poe.
+
+** poem.el
+
+This module provides basic functions to write portable MULE programs.
+
+  poem-nemacs.el --- for Nemacs
+  poem-ltn1.el   --- for Emacs 19/XEmacs without MULE
+  poem-om.el     --- for MULE 1.*, 2.*
+  poem-20.el     --- shared module between Emacs 20 and XEmacs-MULE
+  poem-e20_2.el  --- for Emacs 20.1/20.2
+  poem-e20_3.el  --- for Emacs 20.3
+  poem-xm.el     --- for XEmacs-MULE
+
+** pces.el
+
+This module provides portable character encoding scheme
+(coding-system) features.
+
+  pces-20.el     --- for Emacs 20 and XEmacs with coding-system.
+  pces-e20.el    --- for Emacs 20.
+  pces-e20_2.el  --- for Emacs 20.1 and 20.2.
+  pces-nemacs.el --- for Nemacs.
+  pces-om.el     --- for Mule 1.* and Mule 2.*.
+  pces-raw.el    --- for emacsen without coding-system features.
+  pces-xfc.el    --- for XEmacs with file coding.
+  pces-xm.el     --- for XEmacs-mule.
+
+** invisible.el
+
+This modules provides features about invisible region.
+
+  inv-18.el     --- for Emacs 18
+  inv-19.el     --- for Emacs 19
+  inv-xemacs.el --- for XEmacs
+
+** mcharset.el
+
+This modules provides MIME charset related features.
+
+  mcs-nemacs.el --- for Nemacs
+  mcs-ltn1.el   --- for Emacs 19/XEmacs without MULE
+  mcs-om.el     --- for MULE 1.*, 2.*
+  mcs-20.el     --- shared module between Emacs 20 and XEmacs-MULE
+  mcs-e20.el    --- for Emacs 20
+  mcs-xm.el     --- for XEmacs-MULE
+  mcs-xmu.el    --- for XEmacs-MULE to unify ISO646 characters
+
+** static.el --- utility for static evaluation
+
+** broken.el --- provide information of broken facilities of Emacs
 
-  APEL stands for "A Portable Emacs Library".  It consists of
-  following modules:
+** pccl.el --- utility to write portable CCL program
 
-    poe.el --- emulation module mainly for basic functions and special
-              forms/macros of latest emacsen
-      poe-xemacs.el  --- for XEmacs
-      poe-18.el             --- for Emacs 18/Nemacs
-         env.el      --- env.el for Emacs 18
-      localhook.el   --- hook functions for Emacs 19.28 and earlier.
+  pccl-om.el --- for MULE 2.*
+  pccl-20.el --- for Emacs 20/XEmacs-21-MULE
 
-    poem.el --- provide basic functions to write portable MULE
-               programs
-      poem-nemacs.el --- for Nemacs
-      poem-ltn1.el   --- for Emacs 19/XEmacs without MULE
-      poem-om.el     --- for MULE 1.*, 2.*
-      poem-20.el     --- shared module between Emacs 20 and XEmacs-MULE
-      poem-e20_2.el  --- for Emacs 20.1/20.2
-      poem-e20_3.el  --- for Emacs 20.3
-      poem-xm.el     --- for XEmacs-MULE
+** alist.el: utility for Association-list
 
-    invisible.el --- provide features about invisible region
-      inv-18.el     --- for Emacs 18
-      inv-19.el     --- for Emacs 19
-      inv-xemacs.el --- for XEmacs
+** calist.el: utility for condition tree and condition/situation-alist
 
-    mcharset.el --- provide MIME charset related features
-      mcs-nemacs.el --- for Nemacs
-      mcs-ltn1.el   --- for Emacs 19/XEmacs without MULE
-      mcs-om.el     --- for MULE 1.*, 2.*
-      mcs-20.el     --- shared module between Emacs 20 and XEmacs-MULE
-      mcs-e20.el    --- for Emacs 20
-      mcs-xm.el     --- for XEmacs-MULE
-      mcs-xmu.el    --- for XEmacs-MULE to unify ISO646 characters
+** path-util.el: utility for path management or file detection
 
-    static.el --- utility for static evaluation
+** filename.el: utility to make file-name
 
-    broken.el --- provide information of broken facilities of Emacs
+** install.el: utility to install emacs-lisp package
 
-    pccl.el --- utility to write portable CCL program
-      pccl-om.el --- for MULE 2.*
-      pccl-20.el --- for Emacs 20/XEmacs-21-MULE
+** mule-caesar.el: ROT 13-47-48 Caesar rotation utility
 
-    alist.el: utility for Association-list
+** emu.el
 
-    calist.el: utility for condition tree and
-              condition/situation-alist
+This module provides emu bundled in tm-7.106 compatibility.  It
+required poe, poem and mcharset.
 
-    path-util.el: utility for path management or file detection
+  emu-mule:    --- for MULE 1.*, 2.*.
+  richtext.el   --- text/richtext module for Emacs 19.29 or later,
+                    XEmacs 19.14 or later
+  tinyrich.el   --- text/richtext module for old emacsen
 
-    filename.el: utility to make file-name
+** pcustom.el --- provide portable custom environment
 
-    install.el: utility to install emacs-lisp package
+  tinycustom.el --- emulation module of custom.el
 
-    mule-caesar.el: ROT 13-47-48 Caesar rotation utility
+** time-stamp.el
 
-    emu.el --- (emu bundled in tm-7.106 compatibility module; it
-               required poe, poem and mcharset)
-      emu-mule:        for MULE 1.*, 2.*
-      richtext.el   --- text/richtext module
-                       for Emacs 19.29 or later,
-                           XEmacs 19.14 or later
-      tinyrich.el   --- text/richtext module for old emacsen
+This is a utility to maintain last change time stamps in files edited
+by Emacs.
 
-    pcustom.el --- provide portable custom environment
+** timezone.el
 
-      tinycustom.el --- emulation module of custom.el
+This is a utility of time zone.  This is a Y2K fixed version.   This
+works with old GNUS 3.14.4 under version 18 of Emacs, too.
 
+** product.el --- Functions for product version information.
 
-Installation
-============
+* Installation
 
-(a) run in expanded place
+** run in expanded place
 
-  If you don't want to install other directories, please do only
-  following:
+If you don't want to install other directories, please do only
+following (You can use make.bat for MS-DOS OS family.  If you want to
+use it, see `make.bat (for MS-DOS family)'):
 
-       % make
+  % make
 
-  You can specify the emacs command name, for example
+You can specify the emacs command name, for example
 
-       % make EMACS=xemacs
+  % make EMACS=xemacs
 
-  If `EMACS=...' is omitted, EMACS=emacs is used.
+If `EMACS=...' is omitted, EMACS=emacs is used.
 
-(b) make install
+** make install
 
-  If you want to install other directories, please do following:
+If you want to install other directories, please do following:
 
-       % make install
+  % make install
 
-  You can specify the emacs command name, for example
+You can specify the emacs command name, for example
 
-       % make install EMACS=xemacs
+  % make install EMACS=xemacs
 
-  If `EMACS=...' is omitted, EMACS=emacs is used.
+If `EMACS=...' is omitted, EMACS=emacs is used.
 
-  You can specify the prefix of the directory tree for Emacs Lisp
-  programs and shell scripts, for example:
+You can specify the prefix of the directory tree for Emacs Lisp
+programs and shell scripts, for example:
 
-       % make install PREFIX=~/
+  % make install PREFIX=~/
 
-  If `PREFIX=...' is omitted, the prefix of the directory tree of the
-  specified emacs command is used (perhaps /usr/local).
+If `PREFIX=...' is omitted, the prefix of the directory tree of the
+specified emacs command is used (perhaps /usr/local).
 
-  For example, if PREFIX=/usr/local and Emacs 20.2 is specified, it
-  will create the following directory tree:
+For example, if PREFIX=/usr/local and Emacs 20.2 is specified, it
+will create the following directory tree:
 
-       /usr/local/share/emacs/20.2/site-lisp/  --- emu
-       /usr/local/share/emacs/site-lisp/apel/  --- APEL
+  /usr/local/share/emacs/20.2/site-lisp/       --- emu
+  /usr/local/share/emacs/site-lisp/apel/       --- APEL
 
-  You can specify the lisp directory for Emacs Lisp programs,
-  for example:
+You can specify the lisp directory for Emacs Lisp programs,
+for example:
 
-       % make install LISPDIR=~/elisp
+  % make install LISPDIR=~/elisp
 
-  You can also specify the version specific lisp directory where the
-  emu modules will be installed in, for example:
+You can also specify the version specific lisp directory where the
+emu modules will be installed in, for example:
 
-       % make install VERSION_SPECIFIC_LISPDIR=~/elisp
+  % make install VERSION_SPECIFIC_LISPDIR=~/elisp
 
-  If you would like to know what files belong to the emu modules or
-  the apel modules, or where they will be installed in, for example,
-  please type the following command.
+If you would like to know what files belong to the emu modules or
+the apel modules, or where they will be installed in, for example,
+please type the following command.
 
-       % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp
+  % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp
 
-  You can specify other optional settings by editing the file
-  APEL-CFG.  Please read comments in it.
+You can specify other optional settings by editing the file
+APEL-CFG.  Please read comments in it.
 
-(c) install as a XEmacs package
+** install as a XEmacs package
 
-  If you want to install to XEmacs package directory, please do
-  following:
+If you want to install to XEmacs package directory, please do
+following:
 
-       % make install-package
+  % make install-package
 
-  You can specify the emacs command name, for example
+You can specify the emacs command name, for example
 
-       % make install-package XEMACS=xemacs-21
+  % make install-package XEMACS=xemacs-21
 
-  If `XEMACS=...' is omitted, XEMACS=xemacs is used.
+If `XEMACS=...' is omitted, XEMACS=xemacs is used.
 
-  You can specify the package directory, for example:
+You can specify the package directory, for example:
 
-       % make install PACKAGEDIR=~/.xemacs
+  % make install PACKAGEDIR=~/.xemacs
 
-  If `PACKAGEDIR=...' is omitted, the first existing package
-  directory is used.
+If `PACKAGEDIR=...' is omitted, the first existing package
+directory is used.
 
-  Notice that XEmacs package system requires XEmacs 21.0 or later.
+Notice that XEmacs package system requires XEmacs 21.0 or later.
 
 
-load-path (for Emacs or MULE)
-=============================
+** make.bat (for MS-DOS family)
 
-  If you are using Emacs or Mule, please add directory of apel to
-  load-path.  If you install by default setting with Emacs 19.29 or
-  later or Emacs 20.1/20.2, you can write subdirs.el for example:
+make.bat is available for MS-DOS family.  You have to edit
+make.bat if you want to use it.  If you use cygwin environment,
+you can use make.exe and Makefile instead of make.bat.
 
-  --------------------------------------------------------------------
-  (normal-top-level-add-to-load-path '("apel"))
-  --------------------------------------------------------------------
+In make.bat, a line which contain `rem' in its beginning is a
+comment.  You have to insert or delete `rem', if necessary.
 
-  If you are using Emacs 20.3 or later or XEmacs, there are no need to
-  set up load-path with normal installation.
+Default setups of make.bat is;
 
+  set MEADOWVER=1.10
+  set PREFIX=c:\usr\meadow
+  set EMACS=%PREFIX%\%MEADOWVER%\bin\meadow95.exe
+  set LISPDIR=%PREFIX%\site-lisp
+  set VLISPDIR=%PREFIX%\%MEADOWVER%\site-lisp
 
-Version specific information
-============================
+It assumes that meadow executable binary exists in
+c:\usr\meadow\1.10\bin\meadow95.exe.  On such basis make.bat will
+try to install meadow version independent modules of APEL to;
 
-For Emacs 18 users: "old byte-compiler" vs "new byte-compiler"
+  c:\usr\meadow\site-lisp
 
-  In this package, we use compile-time evaluation heavily.
-  Unfortunately, the byte-compiler bundled with Emacs 18 (the "old
-  byte-compiler") does not have features such as `eval-when-compile'
-  and `eval-and-compile', and our emulation version of these macros
-  evaluate "compile-time evaluation" at load-time or at run-time!
-  In addition, the "old byte-compiler" cannot compile top-level use of
-  macros and leaves most of our code uncompiled.
+and meadow version dependent modules to;
 
-  Therefore, we recommend you to use the "new" optimizing byte-compiler.
-  It is the origin of byte-compiler bundled with Emacs 19 and later.
+  c:\usr\meadow\1.10\site-lisp
 
-  Optimizing byte-compiler for Emacs 18 is available from the Emacs
-  Lisp Archive and its mirrors.
+Please edit make.bat for your own environment and run make.bat
 
-  In Mule 1.* days, "contrib" package for Mule 1.* was distributed and
-  it contained the "new byte-compiler" for Mule.  But, I think it is
-  difficult to obtain this package now.
+Emacs 19.3x or earlier does not have (e.x. Mule for Windows based on
+19.28) an Emacs version dependent site-lisp directory
+(e.x. c:\usr\meadow\1.10\site-lisp), and its load-path does not refer
+to such directory by default.  If you want install APEL to such an Emacs
+you may install all APEL modules to an Emacs version independent
+site-lisp directory such as c:\usr\mule\site-lisp.
 
-  AFAIK, the "new byte-compiler" for Emacs 18 is also bundled with SKK
-  9.6.  It includes patch for Mule 1.*.
+We cannot provide you with a Demacs example for make.bat.  If you install
+APEL to Demacs, please send us such an example to apel-en@m17n.org (you
+can post a message to the ML, even if you are not a member).
 
+If you checkout APEL by using Windows native cvs.exe (not cygwin
+version), cvs.exe will regularize end of line codes, LF to CRLF.  And
+it also will try to convert CRLF to CRCRLF.  make.bat of which eol
+code is CRCRLF does not work, so if you get such a make.bat, edit it
+to really regularize eol codes to CRLF.  If you need further
+information, see the following URL (n.b. Japanese only)
 
-For Emacs 19.34 and XEmacs 19.14 users: "old custom" vs "new custom"
+  http://openlab.ring.gr.jp/skk/cvswin-ja.html 
 
-  "custom" library bundled with Emacs 19.32 - 19.34, XEmacs 19.14, and
-  Gnus 5.2/5.3 is "old", its API is incompatible with "new custom"
-  bundled with Emacs 20.1, XEmacs 19.15, or newer, and Gnus 5.4/5.5.
+* load-path (for Emacs or MULE)
 
-  "new custom" for Emacs 19.34 and XEmacs 19.15 - 20.2 is available
-  from the following URL.
+If you are using Emacs or Mule, please add directory of apel to
+load-path.  If you install by default setting with Emacs 19.29 or
+later or Emacs 20.1/20.2, you can write subdirs.el for example:
 
-  ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
+--------------------------------------------------------------------
+(normal-top-level-add-to-load-path '("apel"))
+--------------------------------------------------------------------
 
-  (Note that "new custom" bundled with XEmacs 19.15 - 20.2, and Gnus
-  5.4/5.5 is older than this version.)
+If you are using Emacs 20.3 or later or XEmacs, there are no need to
+set up load-path with normal installation.
 
-  Before installing "new custom", you should check the following points.
 
-    1) If you stick to Gnus 5.2/5.3 (or any other applications which
-       use "old custom"), you should not install "new custom".
+* Version specific information
 
-    2) If you use Mule (based on Emacs 19), you must apply this patch
-       to "new custom".
+** For Emacs 18 users: "old byte-compiler" vs "new byte-compiler"
+
+In this package, we use compile-time evaluation heavily.
+Unfortunately, the byte-compiler bundled with Emacs 18 (the "old
+byte-compiler") does not have features such as `eval-when-compile'
+and `eval-and-compile', and our emulation version of these macros
+evaluate "compile-time evaluation" at load-time or at run-time!
+In addition, the "old byte-compiler" cannot compile top-level use of
+macros and leaves most of our code uncompiled.
+
+Therefore, we recommend you to use the "new" optimizing byte-compiler.
+It is the origin of byte-compiler bundled with Emacs 19 and later.
+
+Optimizing byte-compiler for Emacs 18 is available from the Emacs
+Lisp Archive and its mirrors.
+
+In Mule 1.* days, "contrib" package for Mule 1.* was distributed and
+it contained the "new byte-compiler" for Mule.  But, I think it is
+difficult to obtain this package now.
+
+AFAIK, the "new byte-compiler" for Emacs 18 is also bundled with SKK
+9.6 or SKK 10.62a.  You can get SKK 10.62a from the following URL;
+
+  http://openlab.ring.gr.jp/skk/maintrunk
+
+They include patch for Mule 1.*.
+
+
+** For Emacs 19.34 and XEmacs 19.14 users: "old custom" vs "new custom"
+
+"custom" library bundled with Emacs 19.32 - 19.34, XEmacs 19.14, and
+Gnus 5.2/5.3 is "old", its API is incompatible with "new custom"
+bundled with Emacs 20.1, XEmacs 19.15, or newer, and Gnus 5.4/5.5.
+
+"new custom" for Emacs 19.34 and XEmacs 19.15 - 20.2 is available
+from the following URL.
+
+ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
+
+(Note that "new custom" bundled with XEmacs 19.15 - 20.2, and Gnus
+5.4/5.5 is older than this version.)
+
+Before installing "new custom", you should check the following points.
+
+  1) If you stick to Gnus 5.2/5.3 (or any other applications which
+     use "old custom"), you should not install "new custom".
+
+  2) If you use Mule (based on Emacs 19), you must apply this patch
+     to "new custom".
 
 ----8<------8<------8<------8<------8<------8<------8<------8<----
 --- custom-1.9962/cus-face.el~ Wed Mar  4 19:52:39 1998
@@ -233,183 +324,178 @@ For Emacs 19.34 and XEmacs 19.14 users: "old custom" vs "new custom"
            (let* ((frames (frame-list))
 ----8<------8<------8<------8<------8<------8<------8<------8<----
 
-    3) Applications compiled with "custom" require the same version of
-       "custom" at load-time (and run-time).  Therefore, if you use
-       "new custom", you must always include "new custom" in your
-       load-path.  The easiest way to achieve this is "subdirs.el";
-       if you installed "new custom" in "/usr/local/share/emacs/19.34/
-       site-lisp/custom/", put the following line to "/usr/local/share/
-       emacs/19.34/site-lisp/subdirs.el".
+  3) Applications compiled with "custom" require the same version of
+     "custom" at load-time (and run-time).  Therefore, if you use "new
+     custom", you must always include "new custom" in your load-path.
+     The easiest way to achieve this is "subdirs.el"; if you installed
+     "new custom" in "/usr/local/share/emacs/19.34/site-lisp/custom/",
+     put the following line to "/usr/local/share/emacs/19.34/site-lisp/subdirs.el".
 
        (normal-top-level-add-to-load-path '("custom"))
 
 
-How to use
-==========
+* How to use
 
-alist
------
+** alist
 
-Function put-alist (ITEM VALUE ALIST)
+*** Function put-alist (ITEM VALUE ALIST)
 
-  Modify ALIST to set VALUE to ITEM.  If there is a pair whose car is
-  ITEM, replace its cdr by VALUE.  If there is not such pair, create
-  new pair (ITEM . VALUE) and return new alist whose car is the new
-  pair and cdr is ALIST.
+Modify ALIST to set VALUE to ITEM.  If there is a pair whose car is
+ITEM, replace its cdr by VALUE.  If there is not such pair, create
+new pair (ITEM . VALUE) and return new alist whose car is the new
+pair and cdr is ALIST.
 
-Function del-alist (ITEM ALIST)
+*** Function del-alist (ITEM ALIST)
 
-  If there is a pair whose key is ITEM, delete it from ALIST.
+If there is a pair whose key is ITEM, delete it from ALIST.
 
-Function set-alist (SYMBOL ITEM VALUE)
+*** Function set-alist (SYMBOL ITEM VALUE)
 
-  Modify a alist indicated by SYMBOL to set VALUE to ITEM.
+Modify a alist indicated by SYMBOL to set VALUE to ITEM.
 
   Ex. (set-alist 'auto-mode-alist "\\.pln$" 'text-mode)
 
-Function modify-alist (MODIFIER DEFAULT)
+*** Function modify-alist (MODIFIER DEFAULT)
 
-  Modify alist DEFAULT into alist MODIFIER.
+Modify alist DEFAULT into alist MODIFIER.
 
-Function set-modified-alist (SYMBOL MODIFIER)
+*** Function set-modified-alist (SYMBOL MODIFIER)
 
-  Modify a value of a SYMBOL into alist MODIFIER.  The SYMBOL should
-  be alist. If it is not bound, its value regard as nil.
+Modify a value of a SYMBOL into alist MODIFIER.  The SYMBOL should be
+alist. If it is not bound, its value regard as nil.
 
-path-util
----------
+** path-util
 
-Function add-path (PATH &rest OPTIONS)
+*** Function add-path (PATH &rest OPTIONS)
 
-  Add PATH to `load-path' if it exists under `default-load-path'
-  directories and it does not exist in `load-path'.
+Add PATH to `load-path' if it exists under `default-load-path'
+directories and it does not exist in `load-path'.
 
-  You can use following PATH styles:
+You can use following PATH styles:
 
-    load-path relative: "PATH" (it is searched from
-                               `default-load-path')
+  load-path relative: "PATH" (it is searched from `default-load-path')
 
-    home directory relative: "~/PATH" "~USER/PATH"
+  home directory relative: "~/PATH" "~USER/PATH"
 
-    absolute path: "/FOO/BAR/BAZ"
+  absolute path: "/FOO/BAR/BAZ"
 
-  You can specify following OPTIONS:
+You can specify following OPTIONS:
 
-    'all-paths --- search from `load-path' instead of
-                  `default-load-path'
+  'all-paths --- search from `load-path' instead of
+                 `default-load-path'
 
-    'append --- add PATH to the last of `load-path'
+  'append --- add PATH to the last of `load-path'
 
-Function add-latest-path (PATTERN &optional ALL-PATHS)
+*** Function add-latest-path (PATTERN &optional ALL-PATHS)
 
-  Add latest path matched by regexp PATTERN to `load-path' if it
-  exists under `default-load-path' directories and it does not exist
-  in `load-path'.
+Add latest path matched by regexp PATTERN to `load-path' if it
+exists under `default-load-path' directories and it does not exist
+in `load-path'.
 
-  For example, if there is bbdb-1.50 and bbdb-1.51 under site-lisp,
-  and if bbdb-1.51 is newer than bbdb-1.50, and site-lisp is
-  /usr/local/share/emacs/site-lisp,
+For example, if there is bbdb-1.50 and bbdb-1.51 under site-lisp,
+and if bbdb-1.51 is newer than bbdb-1.50, and site-lisp is
+/usr/local/share/emacs/site-lisp,
 
-       (add-latest-path "bbdb")
+  (add-latest-path "bbdb")
 
-  it adds "/usr/local/share/emacs/site-lisp/bbdb-1.51" to top of
-  `load-path'.
+it adds "/usr/local/share/emacs/site-lisp/bbdb-1.51" to top of
+`load-path'.
 
-  If optional argument ALL-PATHS is specified, it is searched from all
-  of `load-path' instead of `default-load-path'.
+If optional argument ALL-PATHS is specified, it is searched from all
+of `load-path' instead of `default-load-path'.
 
-Function get-latest-path (PATTERN &optional ALL-PATHS)
+*** Function get-latest-path (PATTERN &optional ALL-PATHS)
 
-  Return latest directory in default-load-path which is matched to
-  regexp PATTERN.  If optional argument ALL-PATHS is specified, it is
-  searched from all of load-path instead of default-load-path.
+Return latest directory in default-load-path which is matched to
+regexp PATTERN.  If optional argument ALL-PATHS is specified, it is
+searched from all of load-path instead of default-load-path.
 
   Ex. (let ((gnus-path (get-latest-path "gnus")))
         (add-path (expand-file-name "lisp" gnus-path))
         (add-to-list 'Info-default-directory-list
-                    (expand-file-name "texi" gnus-path))
-        )
-
-Function file-installed-p (FILE &optional PATHS)
+                    (expand-file-name "texi" gnus-path)))
 
-  Return absolute-path of FILE if FILE exists in PATHS.  If PATHS is
-  omitted, `load-path' is used.
+*** Function file-installed-p (FILE &optional PATHS)
 
-Function exec-installed-p (FILE &optional PATHS SUFFIXES)
+Return absolute-path of FILE if FILE exists in PATHS.  If PATHS is
+omitted, `load-path' is used.
 
-  Return absolute-path of FILE if FILE exists in PATHS.  If PATHS is
-  omitted, `exec-path' is used.  If SUFFIXES is omitted,
-  `exec-suffix-list' is used.
+*** Function exec-installed-p (FILE &optional PATHS SUFFIXES)
 
-Function module-installed-p (MODULE &optional PATHS)
+Return absolute-path of FILE if FILE exists in PATHS.  If PATHS is
+omitted, `exec-path' is used.  If SUFFIXES is omitted,
+`exec-suffix-list' is used.
 
-  Return non-nil if MODULE is provided or exists in PATHS.  If PATHS
-  is omitted, `load-path' is used.
+*** Function module-installed-p (MODULE &optional PATHS)
 
-filename
---------
+Return non-nil if MODULE is provided or exists in PATHS.  If PATHS is
+omitted, `load-path' is used.
 
-Function replace-as-filename (string)
+** filename
 
-  Return safety file-name from STRING.
+*** Function replace-as-filename (string)
 
-  It refers variable `filename-filters'.  It is list of functions for
-  file-name filter.  Default filter refers following variables:
+Return safety file-name from STRING.
 
-       Variable filename-limit-length
+It refers variable `filename-filters'.  It is list of functions for
+file-name filter.  Default filter refers following variables:
 
-         Limit size of file-name.
+**** Variable filename-limit-length
 
-       Variable filename-replacement-alist
+Limit size of file-name.
 
-         Alist list of characters vs. string as replacement.  List of
-          characters represents characters not allowed as file-name.
+**** Variable filename-replacement-alist
 
+Alist list of characters vs. string as replacement.  List of
+characters represents characters not allowed as file-name.
 
-Bug reports
-===========
+* Bug reports
 
-  If you write bug-reports and/or suggestions for improvement, please
-  send them to the APEL Mailing List:
+If you write bug-reports and/or suggestions for improvement, please
+send them to the APEL Mailing List:
 
-       apel-en@m17n.org        (English)
-       apel-ja@m17n.org        (Japanese)
+  apel-en@m17n.org     (English)
+  apel-ja@m17n.org     (Japanese)
 
-  Via the APEL ML, you can report APEL bugs, obtain the latest release
-  of APEL, and discuss future enhancements to APEL.  To join the APEL
-  ML, send an empty e-mail to
+Via the APEL ML, you can report APEL bugs, obtain the latest release
+of APEL, and discuss future enhancements to APEL.  To join the APEL
+ML, send an empty e-mail to
 
-       apel-en-ctl@m17n.org    (English)
-       apel-ja-ctl@m17n.org    (Japanese)
+  apel-en-ctl@m17n.org (English)
+  apel-ja-ctl@m17n.org (Japanese)
 
 
-Anonymous FTP
-=============
+* Anonymous FTP
 
-  Latest release of APEL can be obtained from:
+Latest release of APEL can be obtained from:
 
-    ftp://ftp.m17n.org/pub/mule/apel/
+  ftp://ftp.m17n.org/pub/mule/apel/
 
 
-CVS
-===
+* CVS
 
-  Development of APEL uses CVS.  So latest developing version is
-  available at CVS.
+Development of APEL uses CVS.  So latest developing version is
+available at CVS.
 
-(0) cvs login (first time only)
+** cvs login (first time only)
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
+  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
 
-    CVS password: [CR] # NULL string
+  CVS password: [CR] # NULL string
 
-(1) checkout
+** checkout
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout apel
+  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout apel
 
   If you would like to join CVS based development, please send mail to
 
-       cvs@cvs.m17n.org
+  cvs@cvs.m17n.org
+
+with your account name and your public key for ssh.  cvsroot is
+:ext:cvs@cvs.m17n.org:/cvs/root.
+
+If you cannot use ssh, please send UNIX /etc/passwd style crypted
+password.  you can commit with the cvsroot
+:pserver:<accountname>@cvs.m17n.org:/cvs/root.
 
-  with your account name and UNIX /etc/passwd style crypted password.
-  We hope you will join the open development.
+We hope you will join the open development.
index a645277..bf05894 100644 (file)
--- a/README.ja
+++ b/README.ja
+-*- outline -*-
+
 [APEL \e$B$N\e(B README (\e$BF|K\8lHG\e(B)]
 
-APEL \e$B$H$O!)\e(B
-============
+* APEL \e$B$H$O!)\e(B
+
+APEL \e$B$O\e(B "A Portable Emacs Library." \e$B$NN,$G$9!#$3$l$O0J2<$N%b%8%e!<%k$G\e(B
+\e$B9=@.$5$l$F$$$^$9\e(B:
+
+** poe.el
+
+\e$B<g$K:G?7$N\e(B emacs \e$B4D6-$N$?$a$N4pACE*$J4X?t$HFC<l7A<0\e(B/\e$B%^%/%m$N\e(B emulation
+\e$B$N%b%8%e!<%k!#\e(B
+
+  poe-xemacs.el  --- XEmacs\e$BMQ\e(B
+  poe-18.el     --- Emacs 18/Nemacs \e$BMQ\e(B
+  env.el         --- Emacs 18 \e$BMQ$N\e(B env.el
+  localhook.el   --- Emacs 18 \e$B$H\e(B Emacs 19.28 \e$B0JA0MQ$N\e(B hook \e$B4X?t72\e(B
+  pym.el         --- poe \e$B$N$?$a$N\e(B macros
+
+** poem.el
+
+\e$B0\?"@-$N9b$$\e(B MULE \e$B%W%m%0%i%`$r=q$/$?$a$N4pACE*$J4X?t$rDs6!$9$k!#\e(B
+
+  poem-nemacs.el --- Nemacs \e$BMQ\e(B
+  poem-ltn1.el   --- MULE \e$B$J$7\e(B Emacs 19/XEmacs \e$BMQ\e(B
+  poem-om.el     --- MULE 1.*, 2.* \e$BMQ\e(B
+  poem-20.el     --- Emacs 20 \e$B$H\e(B XEmacs-MULE \e$B$N6&M-%b%8%e!<%k\e(B
+  poem-e20_2.el  --- Emacs 20.1/20.2 \e$BMQ\e(B
+  poem-e20_3.el  --- Emacs 20.3 \e$BMQ\e(B
+  poem-xm.el     --- XEmacs-MULE \e$BMQ\e(B
+
+** pces.el
+
+\e$B0\?"@-$N9b$$\e(B character encoding \e$B%9%-!<%`\e(B (coding-system) \e$B$rDs6!$9$k!#\e(B
 
-  APEL \e$B$O\e(B "A Portable Emacs Library." \e$B$NN,$G$9!#$3$l$O0J2<$N%b%8%e!<%k\e(B
-  \e$B$G9=@.$5$l$F$$$^$9\e(B:
+  pces-20.el     --- coding-system \e$B5!G=$r;}$D\e(B Emacs 20 and XEmacs \e$BMQ\e(B
+  pces-e20.el    --- Emacs 20 \e$BMQ\e(B
+  pces-e20_2.el  --- Emacs 20.1 and 20.2 \e$BMQ\e(B
+  pces-nemacs.el --- Nemacs \e$BMQ\e(B
+  pces-om.el     --- Mule 1.* and Mule 2.* \e$BMQ\e(B
+  pces-raw.el    --- coding-system \e$B5!G=$r;}$?$J$$\e(B emacsen \e$BMQ\e(B
+  pces-xfc.el    --- file coding \e$B5!G=$r;}$D\e(B XEmacs \e$BMQ\e(B
+  pces-xm.el     --- XEmacs-mule \e$BMQ\e(B
 
-    poe.el --- \e$B<g$K:G?7$N\e(B emacs \e$B4D6-$N$?$a$N4pACE*$J4X?t$HFC<l7A<0\e(B/\e$B%^\e(B
-               \e$B%/%m$N\e(B emulation \e$B$N%b%8%e!<%k\e(B
-      poe-xemacs.el  --- XEmacs\e$BMQ\e(B
-      poe-18.el             --- Emacs 18/Nemacs \e$BMQ\e(B
-         env.el      --- Emacs 18 \e$BMQ$N\e(B env.el
-      localhook.el   --- Emacs 18 \e$B$H\e(B Emacs 19.28 \e$B0JA0MQ$N\e(B hook \e$B4X?t72\e(B
+** invisible.el --- \e$BIT2D;k\e(B region \e$B$K4X$9$k5!G=$rDs6!$9$k\e(B
 
-    poem.el --- \e$B0\?"@-$N9b$$\e(B MULE \e$B%W%m%0%i%`$r=q$/$?$a$N4pACE*$J4X?t$r\e(B
-               \e$BDs6!$9$k\e(B
-      poem-nemacs.el --- Nemacs \e$BMQ\e(B
-      poem-ltn1.el   --- MULE \e$B$J$7\e(B Emacs 19/XEmacs \e$BMQ\e(B
-      poem-om.el     --- MULE 1.*, 2.* \e$BMQ\e(B
-      poem-20.el     --- Emacs 20 \e$B$H\e(B XEmacs-MULE \e$B$N6&M-%b%8%e!<%k\e(B
-      poem-e20_2.el  --- Emacs 20.1/20.2 \e$BMQ\e(B
-      poem-e20_3.el  --- Emacs 20.3 \e$BMQ\e(B
-      poem-xm.el     --- XEmacs-MULE \e$BMQ\e(B
+  inv-18.el     --- for Emacs 18
+  inv-19.el     --- for Emacs 19
+  inv-xemacs.el --- for XEmacs
 
-    invisible.el --- \e$BIT2D;k\e(B region \e$B$K4X$9$k5!G=$rDs6!$9$k\e(B
-      inv-18.el     --- for Emacs 18
-      inv-19.el     --- for Emacs 19
-      inv-xemacs.el --- for XEmacs
+** mcharset.el --- MIME charset \e$B4XO"$N5!G=$rDs6!$9$k\e(B
 
-    mcharset.el --- MIME charset \e$B4XO"$N5!G=$rDs6!$9$k\e(B
-      mcs-nemacs.el --- Nemacs \e$BMQ\e(B
-      mcs-ltn1.el   --- MULE Emacs 19/XEmacs \e$BMQ\e(B
-      mcs-om.el     --- MULE 1.*, 2.* \e$BMQ\e(B
-      mcs-20.el     --- Emacs 20 \e$B$H\e(B XEmacs-MULE \e$BMQ$N6&M-%b%8%e!<%k\e(B
-      mcs-e20.el    --- Emacs 20 \e$BMQ\e(B
-      mcs-xm.el     --- XEmacs-MULE \e$BMQ\e(B
-      mcs-xmu.el    --- XEmacs-MULE \e$BMQ\e(B (ISO646 \e$BJ8;z$NC10l2=\e(B)
+  mcs-nemacs.el --- Nemacs \e$BMQ\e(B
+  mcs-ltn1.el   --- MULE Emacs 19/XEmacs \e$BMQ\e(B
+  mcs-om.el     --- MULE 1.*, 2.* \e$BMQ\e(B
+  mcs-20.el     --- Emacs 20 \e$B$H\e(B XEmacs-MULE \e$BMQ$N6&M-%b%8%e!<%k\e(B
+  mcs-e20.el    --- Emacs 20 \e$BMQ\e(B
+  mcs-xm.el     --- XEmacs-MULE \e$BMQ\e(B
+  mcs-xmu.el    --- XEmacs-MULE \e$BMQ\e(B (ISO646 \e$BJ8;z$NC10l2=\e(B)
 
-    static.el --- \e$B@EE*I>2A$N$?$a$N%f!<%F%#%j%F%#!<\e(B
+** static.el --- \e$B@EE*I>2A$N$?$a$N%f!<%F%#%j%F%#!<\e(B
 
-    broken.el --- Emacs \e$B$N2u$l$F$$$k5!G=$N>pJs$rDs6!$9$k\e(B
+** broken.el --- Emacs \e$B$N2u$l$F$$$k5!G=$N>pJs$rDs6!$9$k\e(B
 
-    pccl.el --- \e$B0\?"2DG=$J\e(B CCL \e$B%W%m%0%i%`$r=q$/$?$a$N%f!<%F%#%j%F%#!<\e(B
-      pccl-om.el --- MULE 2.* \e$BMQ\e(B
-      pccl-20.el --- Emacs 20/XEmacs-21-MULE \e$BMQ\e(B
+** pccl.el --- \e$B0\?"2DG=$J\e(B CCL \e$B%W%m%0%i%`$r=q$/$?$a$N%f!<%F%#%j%F%#!<\e(B
 
-    alist.el: \e$BO"A[%j%9%H$N$?$a$N%f!<%F%#%j%F%#!<\e(B
+  pccl-om.el --- MULE 2.* \e$BMQ\e(B
+  pccl-20.el --- Emacs 20/XEmacs-21-MULE \e$BMQ\e(B
 
-    calist.el: \e$B>uBVLZ$H>uBV\e(B/\e$B>u67O"A[%j%9%HMQ$N%f!<%F%#%j%F%#!<\e(B
+** alist.el: \e$BO"A[%j%9%H$N$?$a$N%f!<%F%#%j%F%#!<\e(B
 
-    path-util.el: \e$B%Q%94IM}$H%U%!%$%kC5:w$N$?$a$N%f!<%F%#%j%F%#!<\e(B
+** calist.el: \e$B>uBVLZ$H>uBV\e(B/\e$B>u67O"A[%j%9%HMQ$N%f!<%F%#%j%F%#!<\e(B
 
-    filename.el:\e$B%U%!%$%kL>$r:n$k$?$a$N%f!<%F%#%j%F%#\e(B
+** path-util.el: \e$B%Q%94IM}$H%U%!%$%kC5:w$N$?$a$N%f!<%F%#%j%F%#!<\e(B
 
-    install.el: emacs-lisp \e$B%Q%C%1!<%8%$%s%9%H!<%k$9$k$?$a$N%f!<%F%#%j\e(B
-                \e$B%F%#!<\e(B
+** filename.el:\e$B%U%!%$%kL>$r:n$k$?$a$N%f!<%F%#%j%F%#\e(B
 
-    mule-caesar.el: ROT 13-47-48 Caesar \e$BJQ49$N%f!<%F%#%j%F%#!<\e(B
+** install.el: emacs-lisp \e$B%Q%C%1!<%8%$%s%9%H!<%k$9$k$?$a$N%f!<%F%#%j%F%#!<\e(B
 
-    emu.el --- (tm-7.106 \e$B$KF~$C$F$$$?\e(B emu \e$B$H$N8_49@-$rJ]$D$?$a$N%b%8%e!<\e(B
-               \e$B%k!#\e(Bpoe, poem, mcharset \e$B$r\e(B require \e$B$9$k\e(B)
+** mule-caesar.el: ROT 13-47-48 Caesar \e$BJQ49$N%f!<%F%#%j%F%#!<\e(B
 
-      emu-mule:        MULE 1.*, 2.* \e$BMQ\e(B
+** emu.el
 
-      richtext.el   --- Emacs 19.29 \e$B$+$=$l0J9_\e(B
-                           XEmacs 19.14 \e$B$+$=$l0J9_\e(B
-                       \e$B$N$?$a$N\e(B text/richtext \e$B%b%8%e!<%k\e(B
-      tinyrich.el   --- \e$B8E$$\e(B emacs \e$B4D6-$N$?$a$N\e(B text/richtext \e$B%b%8%e!<\e(B
-                       \e$B%k\e(B
+tm-7.106 \e$B$KF~$C$F$$$?\e(B emu \e$B$H$N8_49@-$rJ]$D$?$a$N%b%8%e!<%k!#\e(Bpoe, poem,
+mcharset \e$B$r\e(B require \e$B$9$k!#\e(B
 
-    pcustom.el --- \e$B0\?"@-$N9b$$\e(B custom \e$B4D6-$rDs6!$9$k\e(B
+  emu-mule:    MULE 1.*, 2.* \e$BMQ\e(B
 
-      tinycustom.el --- custom.el \e$B$N%(%_%e%l!<%7%g%s$r9T$J$&\e(B
+  richtext.el   --- Emacs 19.29 \e$B$+$=$l0J9_\e(B XEmacs 19.14 \e$B$+$=$l0J9_$N$?\e(B
+                    \e$B$a$N\e(B text/richtext \e$B%b%8%e!<%k\e(B
+  tinyrich.el   --- \e$B8E$$\e(B emacs \e$B4D6-$N$?$a$N\e(B text/richtext \e$B%b%8%e!<%k\e(B
 
+** pcustom.el --- \e$B0\?"@-$N9b$$\e(B custom \e$B4D6-$rDs6!$9$k\e(B
 
-\e$B%$%s%9%H!<%k\e(B
-============
+  tinycustom.el --- custom.el \e$B$N%(%_%e%l!<%7%g%s$r9T$J$&\e(B
 
-(a) \e$BE83+$7$?>l=j$G<B9T\e(B
+** time-stamp.el
 
-  \e$BB>$N%G%#%l%/%H%j!<$K%$%s%9%H!<%k$7$?$/$J$$$J$i!"0J2<$N$3$H$@$1$r$d$C\e(B
-  \e$B$F$/$@$5$$\e(B:
+Emacs \e$B$K$h$kJT=8$N:]!":G=*=$@5;~9o$rJ]B8$9$k$?$a$N%f!<%F%#%j%F%#!#\e(B
 
-       % make
+** timezone.el
 
-  emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
+\e$B%?%$%`%>!<%s%f!<%F%#%j%F%#!#\e(B2000 \e$BG/LdBjBP1~HG!#\e(BEmacs 18 \e$B$H\e(B GNUS 3.14.4
+\e$B$G$bF0:n2D!#\e(B
 
-       % make EMACS=xemacs
+** product.el --- \e$B%W%m%@%/%H$N%P!<%8%g%s>pJs$N$?$a$N5!G=$rDs6!$9$k%b%8%e!<%k!#\e(B
 
-  `EMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BEmacs=emacs \e$B$,;H$o$l$^$9!#\e(B
 
-(b) make install
+* \e$B%$%s%9%H!<%k\e(B
 
-  \e$BB>$N%G%#%l%/%H%j!<$K%$%s%9%H!<%k$7$?$$$J$i!"0J2<$N$3$H$r$7$F$/$@$5$$\e(B:
+** \e$BE83+$7$?>l=j$G<B9T\e(B
 
-       % make install
+\e$BB>$N%G%#%l%/%H%j!<$K%$%s%9%H!<%k$7$?$/$J$$$J$i!"0J2<$N$3$H$@$1$r$d$C$F\e(B
+\e$B$/$@$5$$\e(B (MS-DOS \e$B7O$N\e(B OS \e$B$N$?$a$K\e(B make.bat \e$B$,MQ0U$5$l$F$$$^$9!#\e(B
+make.bat \e$B$NMxMQ$K$D$$$F$O2<5-!V\e(Bmake.bat \e$B$rMxMQ$9$k\e(B (MS-DOS \e$B7O\e(B OS \e$B$N>l\e(B
+\e$B9g\e(B)\e$B!W$r;2>H$7$F2<$5$$\e(B)\e$B!#\e(B:
 
-  emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
+  % make
 
-       % make install EMACS=xemacs
+emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
 
-  `EMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BEmacs=emacs \e$B$,;H$o$l$^$9!#\e(B
+  % make EMACS=xemacs
 
-  Emacs Lisp \e$B%W%m%0%i%`$H%7%'%k%9%/%j%W%H$N$?$a$N%G%#%l%/%H%j!<LZ$N@\\e(B
-  \e$BF,<-\e(B (prefix) \e$B$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
+`EMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BEmacs=emacs \e$B$,;H$o$l$^$9!#\e(B
 
-       % make install PREFIX=~/
+** make install
 
-  `PREFIX=...' \e$B$,>JN,$5$l$k$H!";XDj$5$l$?\e(B emacs \e$B%3%^%s%I$N%G%#%l%/%H%j!<\e(B
-  \e$BLZ$N@\F,<-$,;HMQ$5$l$^$9\e(B (\e$B$*$=$i$/\e(B /usr/local \e$B$G$9\e(B)\e$B!#\e(B
+\e$BB>$N%G%#%l%/%H%j!<$K%$%s%9%H!<%k$7$?$$$J$i!"0J2<$N$3$H$r$7$F$/$@$5$$\e(B:
 
-  \e$BNc$($P!"\e(BPREFIX=/usr/local \e$B$H\e(B Emacs 20.2 \e$B$,;XDj$5$l$l$P!"0J2<$N%G%#%l\e(B
-  \e$B%/%H%j!<LZ$,:n@.$5$l$^$9!#\e(B
+  % make install
 
-       /usr/local/share/emacs/20.2/site-lisp/  --- emu
-       /usr/local/share/emacs/site-lisp/apel/  --- APEL
+emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
 
-  Emacs Lisp \e$B%W%m%0%i%`$N$?$a$N\e(B lisp \e$B%G%#%l%/%H%j!<$r;XDj$9$k$3$H$,$G\e(B
-  \e$B$-$^$9!#Nc$($P!"\e(B:
+  % make install EMACS=xemacs
 
-    % make install LISPDIR=~/elisp
+`EMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BEmacs=emacs \e$B$,;H$o$l$^$9!#\e(B
 
-  emu \e$B%b%8%e!<%k$,%$%s%9%H!<%k$5$l$k!"%P!<%8%g%sFCM-$N\e(B lisp \e$B%G%#%l%/%H\e(B
-  \e$B%j!<$r;XDj$9$k$3$H$b$G$-$^$9!#Nc$($P!"\e(B:
+Emacs Lisp \e$B%W%m%0%i%`$H%7%'%k%9%/%j%W%H$N$?$a$N%G%#%l%/%H%j!<LZ$N@\F,\e(B
+\e$B<-\e(B (prefix) \e$B$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
 
-    % make install VERSION_SPECIFIC_LISPDIR=~/elisp
+  % make install PREFIX=~/
 
-  \e$B$I$N%U%!%$%k$,\e(B emu \e$B%b%8%e!<%k$+\e(B apel \e$B%b%8%e!<%k$N0lIt$J$N$+!"$=$l$i\e(B
-  \e$B$,$I$3$K%$%s%9%H!<%k$5$l$k$+$rCN$j$?$$$H$-$O!"<!$N$h$&$J%3%^%s%I$rF~\e(B
-  \e$BNO$9$k$3$H$,$G$-$^$9!#\e(B
+`PREFIX=...' \e$B$,>JN,$5$l$k$H!";XDj$5$l$?\e(B emacs \e$B%3%^%s%I$N%G%#%l%/%H%j!<\e(B
+\e$BLZ$N@\F,<-$,;HMQ$5$l$^$9\e(B (\e$B$*$=$i$/\e(B /usr/local \e$B$G$9\e(B)\e$B!#\e(B
 
-    % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp
+\e$BNc$($P!"\e(BPREFIX=/usr/local \e$B$H\e(B Emacs 20.2 \e$B$,;XDj$5$l$l$P!"0J2<$N%G%#%l%/\e(B
+\e$B%H%j!<LZ$,:n@.$5$l$^$9!#\e(B
 
-  \e$B%U%!%$%k\e(B APEL-CFG \e$B$rJT=8$9$k$3$H$GB>$NA*Br<+M3$J@_Dj$r;XDj$9$k$3$H$,\e(B
-  \e$B$G$-$^$9!#$=$NCf$N%3%a%s%H$rFI$s$G$/$@$5$$!#\e(B
+  /usr/local/share/emacs/20.2/site-lisp/       --- emu
+  /usr/local/share/emacs/site-lisp/apel/       --- APEL
+
+Emacs Lisp \e$B%W%m%0%i%`$N$?$a$N\e(B lisp \e$B%G%#%l%/%H%j!<$r;XDj$9$k$3$H$,$G$-\e(B
+\e$B$^$9!#Nc$($P!"\e(B:
+
+  % make install LISPDIR=~/elisp
+
+emu \e$B%b%8%e!<%k$,%$%s%9%H!<%k$5$l$k!"%P!<%8%g%sFCM-$N\e(B lisp \e$B%G%#%l%/%H%j!<\e(B
+\e$B$r;XDj$9$k$3$H$b$G$-$^$9!#Nc$($P!"\e(B:
+
+  % make install VERSION_SPECIFIC_LISPDIR=~/elisp
+
+\e$B$I$N%U%!%$%k$,\e(B emu \e$B%b%8%e!<%k$+\e(B apel \e$B%b%8%e!<%k$N0lIt$J$N$+!"$=$l$i$,\e(B
+\e$B$I$3$K%$%s%9%H!<%k$5$l$k$+$rCN$j$?$$$H$-$O!"<!$N$h$&$J%3%^%s%I$rF~NO$9\e(B
+\e$B$k$3$H$,$G$-$^$9!#\e(B
+
+  % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp
+
+\e$B%U%!%$%k\e(B APEL-CFG \e$B$rJT=8$9$k$3$H$GB>$NA*Br<+M3$J@_Dj$r;XDj$9$k$3$H$,$G\e(B
+\e$B$-$^$9!#$=$NCf$N%3%a%s%H$rFI$s$G$/$@$5$$!#\e(B
 
 (c) XEmacs \e$B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$9$k\e(B
 
-  XEmacs \e$B$N%Q%C%1!<%8%G%#%l%/%H%j!<$K%$%s%9%H!<%k$9$k>l9g$O!"0J2<$N$3\e(B
-  \e$B$H$r$7$F$/$@$5$$\e(B:
+XEmacs \e$B$N%Q%C%1!<%8%G%#%l%/%H%j!<$K%$%s%9%H!<%k$9$k>l9g$O!"0J2<$N$3$H\e(B
+\e$B$r$7$F$/$@$5$$\e(B:
+
+  % make install-package
+
+emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
 
-       % make install-package
+  % make install-package XEMACS=xemacs-21
 
-  emacs \e$B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"\e(B
+`XEMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BXEMACS=xemacs \e$B$,;HMQ$5$l$^$9!#\e(B
 
-       % make install-package XEMACS=xemacs-21
+\e$B%Q%C%1!<%8$N%G%#%l%/%H%j!<$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P\e(B:
 
-  `XEMACS=...' \e$B$,>JN,$5$l$k$H!"\e(BXEMACS=xemacs \e$B$,;HMQ$5$l$^$9!#\e(B
+  % make install PACKAGEDIR=~/.xemacs
 
-  \e$B%Q%C%1!<%8$N%G%#%l%/%H%j!<$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P\e(B:
+`PACKAGEDIR=...' \e$B$,>JN,$5$l$k$H!"B8:_$9$k%Q%C%1!<%8%G%#%l%/%H%j!<$N:G\e(B
+\e$B=i$N$b$N$,;H$o$l$^$9!#\e(B
 
-       % make install PACKAGEDIR=~/.xemacs
+XEmacs \e$B$N%Q%C%1!<%8%7%9%F%`$O\e(B XEmacs 21.0 \e$B$+$=$l0J9_$rMW5a$9$k$3$H$KCm\e(B
+\e$B0U$7$F$/$@$5$$!#\e(B
 
-  `PACKAGEDIR=...' \e$B$,>JN,$5$l$k$H!"B8:_$9$k%Q%C%1!<%8%G%#%l%/%H%j!<$N\e(B
-  \e$B:G=i$N$b$N$,;H$o$l$^$9!#\e(B
+** make.bat \e$B$rMxMQ$9$k\e(B (MS-DOS \e$B7O\e(B OS \e$B$N>l9g\e(B)
 
-  XEmacs \e$B$N%Q%C%1!<%8%7%9%F%`$O\e(B XEmacs 21.0 \e$B$+$=$l0J9_$rMW5a$9$k$3$H$K\e(B
-  \e$BCm0U$7$F$/$@$5$$!#\e(B
+MS-DOS \e$B7O$N\e(B OS \e$B$N$?$a$K\e(B make.bat \e$B$,MQ0U$5$l$F$$$^$9!#\e(Bmake.bat \e$B$rMxMQ\e(B
+\e$B$9$k$K$OE:IU$N\e(B make.bat \e$B$rJT=8$9$k$3$H$,I,MW$G$9\e(B (cygwin \e$B4D6-$rMxMQ\e(B
+\e$B$7$F$$$kJ}$O\e(B make.exe \e$B$H\e(B Makefile \e$B$rMxMQ$9$k$3$H$,$G$-$^$9\e(B)\e$B!#\e(B
 
+make.bat \e$B$NCf$G$O\e(B `rem' \e$B$,9TF,$K$"$k9T$O%3%a%s%H$H$7$F07$o$l$^$9!#I,\e(B
+\e$BMW$K1~$8!"\e(B`rem' \e$B$rA^F~$7$?$j!"$^$?$O:o=|$7$?$j$7$F2<$5$$!#\e(B
 
-load-path\e$B!J\e(BEmacs \e$B$H\e(B MULE \e$B$N>l9g!K\e(B
-================================
+make.bat \e$B$G%G%#%U%)%k%H$GM-8z$K$J$C$F$$$k@_Dj$O!"\e(B
 
-  \e$B$b$7\e(B Emacs \e$B$b$7$/$O\e(B Mule \e$B$r$*;H$$$J$i!"\e(BAPEL \e$B$r\e(B install \e$B$7$?>l=j$r\e(B
-  load-path \e$B$KDI2C$7$F$/$@$5$$!#$b$7\e(B Emacs 19.29 \e$B0J9_$^$?$O\e(B Emacs 20.1,
-  20.2 \e$B$r;H$C$F=i4|@_Dj$G%$%s%9%H!<%k$7$?$N$J$i!"<!$N$h$&$K\e(B subdirs.el
-  \e$B$r=q$/$3$H$,$G$-$^$9!#\e(B
+  set MEADOWVER=1.10
+  set PREFIX=c:\usr\meadow
+  set EMACS=%PREFIX%\%MEADOWVER%\bin\meadow95.exe
+  set LISPDIR=%PREFIX%\site-lisp
+  set VLISPDIR=%PREFIX%\%MEADOWVER%\site-lisp
 
-  --------------------------------------------------------------------
-  (normal-top-level-add-to-load-path '("apel"))
-  --------------------------------------------------------------------
+\e$B$G!"\e(Bmeadow \e$B$N%P%$%J%j$,\e(B c:\usr\meadow\1.10\bin\meadow95.exe \e$B$K%$%s%9\e(B
+\e$B%H!<%k$5$l$F$$$k$3$H$rA0Ds$K$7$F$$$^$9!#$=$NA0Ds$K4p$E$-!"\e(BAPEL \e$B$N%b\e(B
+\e$B%8%e!<%k$N$&$A!"\e(Bmeadow \e$B$N%P!<%8%g%s$K0MB8$7$J$$%b%8%e!<%k$r\e(B 
 
-  \e$B$b$7\e(B Emacs 20.3 \e$B0J9_$b$7$/$O\e(B XEmacs \e$B$r;H$C$FIaDL$K%$%s%9%H!<%k$9$k$N\e(B
-  \e$B$J$i$P!"\e(Bload-path \e$B$r@_Dj$9$kI,MW$O$"$j$^$;$s!#\e(B
+  c:\usr\meadow\site-lisp
 
+\e$B$K!"%P!<%8%g%s$K0MB8$9$k%b%8%e!<%k$r\e(B
 
-Emacs \e$B$N%P!<%8%g%s$K4XO"$7$?>pJs\e(B
-================================
+  c:\usr\meadow\1.10\site-lisp
+
+\e$B$K%$%s%9%H!<%k$7$h$&$H$7$^$9!#>e5-$NNc$r;29M$K!"<+J,$N4D6-MQ$N@_Dj$r=q\e(B
+\e$B$-9~$s$G\e(B make.bat \e$B$rF0$+$7$F2<$5$$!#\e(B
+
+19.3x \e$B0JA0$N\e(B Emacs (\e$BNc$($P\e(B 19.28 \e$B%Y!<%9$N\e(B Mule for Windows) \e$B$K$O%P!<%8%g\e(B
+\e$B%s0MB8$N\e(B site-lisp \e$B%G%#%l%/%H%j\e(B (\e$B>e5-$NNc$G8@$($P\e(B
+c:\usr\meadow\1.10\site-lisp) \e$B$,B8:_$;$:!"%G%#%U%)%k%H$G$O\e(B load-path \e$B$b\e(B
+\e$BDL$C$F$$$^$;$s!#$3$N>l9g$O\e(B c:\usr\mule\site-lisp \e$B$J$I$N%P!<%8%g%sHs0MB8\e(B
+\e$B$N\e(B site-lisp \e$B%G%#%l%/%H%j$K\e(B APEL \e$B$NA4$F$N%b%8%e!<%k$rF~$l$l$PNI$$$G$7$g\e(B
+\e$B$&!#\e(B
+
+Demacs \e$B$N@_DjNc$r=`Hw$9$k$3$H$,$G$-$^$;$s$G$7$?!#\e(BDemacs \e$B$K\e(B APEL \e$B$r%$%s\e(B
+\e$B%9%H!<%k$7$?J}$O!"@_DjNc$r\e(B apel-ja@m17n.org \e$B$KAw$C$F2<$5$$\e(B (\e$BHs9XFI<T$G\e(B
+\e$B$bAw?.$O$G$-$^$9\e(B)\e$B!#\e(B
+
+\e$B$J$*!"\e(BWindows \e$B%M%$%F%#%V$N\e(B cvs.exe (not cygwin) \e$B$rMxMQ$7$F\e(B APEL \e$B$r\e(B
+checkout \e$B$7$?>l9g$O!"\e(Bcvs.exe \e$B$K$h$j9TKv%3!<%I$,@55,2=$5$l$F\e(B CRCRLF \e$B$K\e(B
+\e$B$J$C$F$$$k2DG=@-$,$"$j$^$9!#$3$N$h$&$J>l9g!"\e(Bmake.bat \e$B$OF0$-$^$;$s$N$G\e(B
+\e$B9TKv%3!<%I$r\e(B CRLF \e$B$K=$@5$7$F$*;H$$2<$5$$!#$3$NLdBj$K$D$$$F>\$7$/$O!"\e(B
+
+  http://openlab.ring.gr.jp/skk/cvswin-ja.html 
+
+\e$B$r$4;2>H2<$5$$!#\e(B
+
+* load-path\e$B!J\e(BEmacs \e$B$H\e(B MULE \e$B$N>l9g!K\e(B
+
+\e$B$b$7\e(B Emacs \e$B$b$7$/$O\e(B Mule \e$B$r$*;H$$$J$i!"\e(BAPEL \e$B$r\e(B install \e$B$7$?>l=j$r\e(B
+load-path \e$B$KDI2C$7$F$/$@$5$$!#$b$7\e(B Emacs 19.29 \e$B0J9_$^$?$O\e(B Emacs 20.1,
+20.2 \e$B$r;H$C$F=i4|@_Dj$G%$%s%9%H!<%k$7$?$N$J$i!"<!$N$h$&$K\e(B subdirs.el
+\e$B$r=q$/$3$H$,$G$-$^$9!#\e(B
+
+--------------------------------------------------------------------
+(normal-top-level-add-to-load-path '("apel"))
+--------------------------------------------------------------------
+
+\e$B$b$7\e(B Emacs 20.3 \e$B0J9_$b$7$/$O\e(B XEmacs \e$B$r;H$C$FIaDL$K%$%s%9%H!<%k$9$k$N\e(B
+\e$B$J$i$P!"\e(Bload-path \e$B$r@_Dj$9$kI,MW$O$"$j$^$;$s!#\e(B
+
+
+* Emacs \e$B$N%P!<%8%g%s$K4XO"$7$?>pJs\e(B
+
+** \e$B!V8E$$\e(B byte-compiler\e$B!W$H!V?7$7$$\e(B byte-compiler\e$B!W\e(B
 
-\e$B!V8E$$\e(B byte-compiler\e$B!W$H!V?7$7$$\e(B byte-compiler\e$B!W\e(B
 Emacs 18 \e$B$N%f!<%6$N$_$J$5$s$X\e(B:
 
-  \e$B$3$N%Q%C%1!<%8$G$O%3%s%Q%$%k;~$K$*$1$k>r7oH=CG$r$?$/$5$s9T$J$C$F$$$^\e(B
-  \e$B$9!#;DG0$J$,$i\e(B Emacs 18 \e$B$KIUB0$7$F$$$k\e(B byte-compiler \e$B$K$O!"Nc$($P\e(B
-  `eval-when-compile' \e$B$d\e(B `eval-and-compile' \e$B$N5!G=$,L5$$$N$GBeMQIJ$N%^\e(B
-  \e$B%/%m$rMQ0U$7$F$"$j$^$9$,!"$3$l$i$O%3%s%Q%$%k;~$@$1$G$J$/\e(B load \e$B;~$^$?\e(B
-  \e$B$O<B9T;~$K$bF/$$$F$7$^$$$^$9\e(B!   \e$B2C$($F!V8E$$\e(B byte-compiler\e$B!W$O%H%C%W\e(B
-  \e$B%l%Y%k$N%^%/%m$r%3%s%Q%$%k$7$F$/$l$J$$$N$G!"\e(BAPEL \e$B$NB?$/$N%3!<%I$,%3\e(B
-  \e$B%s%Q%$%k$5$l$J$$$^$^$K$J$C$F$7$^$$$^$9!#\e(B
+\e$B$3$N%Q%C%1!<%8$G$O%3%s%Q%$%k;~$K$*$1$k>r7oH=CG$r$?$/$5$s9T$J$C$F$$$^\e(B
+\e$B$9!#;DG0$J$,$i\e(B Emacs 18 \e$B$KIUB0$7$F$$$k\e(B byte-compiler \e$B$K$O!"Nc$($P\e(B
+`eval-when-compile' \e$B$d\e(B `eval-and-compile' \e$B$N5!G=$,L5$$$N$GBeMQIJ$N%^\e(B
+\e$B%/%m$rMQ0U$7$F$"$j$^$9$,!"$3$l$i$O%3%s%Q%$%k;~$@$1$G$J$/\e(B load \e$B;~$^$?\e(B
+\e$B$O<B9T;~$K$bF/$$$F$7$^$$$^$9\e(B!   \e$B2C$($F!V8E$$\e(B byte-compiler\e$B!W$O%H%C%W\e(B
+\e$B%l%Y%k$N%^%/%m$r%3%s%Q%$%k$7$F$/$l$J$$$N$G!"\e(BAPEL \e$B$NB?$/$N%3!<%I$,%3\e(B
+\e$B%s%Q%$%k$5$l$J$$$^$^$K$J$C$F$7$^$$$^$9!#\e(B
+
+\e$B$=$3$G!":GE,2=$r9T$J$&!V?7$7$$\e(B byte-compiler\e$B!W$r;H$&$3$H$r$*4+$a$7$^\e(B
+\e$B$9!#$=$l$O\e(B Emacs 19 \e$B0J9_$KIUB0$7$F$$$k\e(B byte-compiler \e$B$N85$K$J$C$F$$\e(B
+\e$B$k$b$N$G$9!#\e(B
 
-  \e$B$=$3$G!":GE,2=$r9T$J$&!V?7$7$$\e(B byte-compiler\e$B!W$r;H$&$3$H$r$*4+$a$7$^\e(B
-  \e$B$9!#$=$l$O\e(B Emacs 19 \e$B0J9_$KIUB0$7$F$$$k\e(B byte-compiler \e$B$N85$K$J$C$F$$\e(B
-  \e$B$k$b$N$G$9!#\e(B
+\e$B:GE,2=$r9T$J$&\e(B byte-compiler \e$B$O\e(B Emacs Lisp Archive \e$B$*$h$S$=$l$i$N%_\e(B
+\e$B%i!<$+$iF~<j$9$k$3$H$,$G$-$^$9!#\e(B
 
-  \e$B:GE,2=$r9T$J$&\e(B byte-compiler \e$B$O\e(B Emacs Lisp Archive \e$B$*$h$S$=$l$i$N%_\e(B
-  \e$B%i!<$+$iF~<j$9$k$3$H$,$G$-$^$9!#\e(B
+Mule 1.* \e$B$N;~Be$K$O\e(B Mule \e$BMQ$N!V?7$7$$\e(B byte-compiler\e$B!W$r4^$`\e(B Mule 1.*
+\e$BMQ$N\e(B "contrib" \e$B%Q%C%1!<%8$,G[I[$5$l$F$$$^$7$?!#$7$+$78=:_$G$O$3$N%Q%C\e(B
+\e$B%1!<%8$r<j$KF~$l$k$3$H$OFq$7$$$G$7$g$&!#\e(B
 
-  Mule 1.* \e$B$N;~Be$K$O\e(B Mule \e$BMQ$N!V?7$7$$\e(B byte-compiler\e$B!W$r4^$`\e(B Mule 1.*
-  \e$BMQ$N\e(B "contrib" \e$B%Q%C%1!<%8$,G[I[$5$l$F$$$^$7$?!#$7$+$78=:_$G$O$3$N%Q%C\e(B
-  \e$B%1!<%8$r<j$KF~$l$k$3$H$OFq$7$$$G$7$g$&!#\e(B
+\e$B2f!9$NCN$k8B$j$G$O\e(B Emacs 18 \e$BMQ$N!V?7$7$$\e(B byte-compiler\e$B!W$O\e(B SKK 9.6,
+\e$B$^$?$O\e(B SKK 10.62a \e$B$KIUB0$7$F$$$^$9!#\e(BSKK 10.62a \e$B$O\e(B
 
-  \e$B2f!9$NCN$k8B$j$G$O\e(B Emacs 18 \e$BMQ$N!V?7$7$$\e(B byte-compiler\e$B!W$O\e(B SKK 9.6
-  \e$B$KIUB0$7$F$$$^$9!#$3$l$O\e(B Mule 1.* \e$BMQ$N%Q%C%A$b4^$s$G$$$^$9!#\e(B
+  http://openlab.ring.gr.jp/skk/maintrunk
 
+\e$B$+$iF~<j$9$k$3$H$,$G$-$^$9!#$3$l$i$O\e(B Mule 1.* \e$BMQ$N%Q%C%A$b4^$s$G$$$^$9!#\e(B
+
+
+** \e$B!V8E$$\e(B custom\e$B!W$H!V?7$7$$\e(B custom\e$B!W\e(B
 
-\e$B!V8E$$\e(B custom\e$B!W$H!V?7$7$$\e(B custom\e$B!W\e(B
 Emacs 19.34 \e$B$H\e(B XEmacs 19.14 \e$B$N%f!<%6$N$_$J$5$s$X\e(B:
 
-  Emacs 19.32\e$B!A\e(B19.34\e$B!"\e(BXEmacs 19.14 \e$B$*$h$S\e(B Gnus 5.2/5.3 \e$B$K4^$^$l$F$$$k\e(B
-  custom \e$B%i%$%V%i%j$O!V8E$$!W$b$N$G!"$3$l$N\e(B API \e$B$O\e(B Emacs 20.1 \e$B$^$?$O\e(B
-  XEmacs 19.15 \e$B$h$j?7$7$$\e(B Emacsen \e$B$H\e(B Gnus 5.4/5.5 \e$B$K4^$^$l$F$$$k\e(B
-  \e$B!V?7$7$$\e(B custom\e$B!W$H$O0c$C$F$$$^$9!#\e(B
+Emacs 19.32\e$B!A\e(B19.34\e$B!"\e(BXEmacs 19.14 \e$B$*$h$S\e(B Gnus 5.2/5.3 \e$B$K4^$^$l$F$$$k\e(B
+custom \e$B%i%$%V%i%j$O!V8E$$!W$b$N$G!"$3$l$N\e(B API \e$B$O\e(B Emacs 20.1 \e$B$^$?$O\e(B
+XEmacs 19.15 \e$B$h$j?7$7$$\e(B Emacsen \e$B$H\e(B Gnus 5.4/5.5 \e$B$K4^$^$l$F$$$k\e(B
+\e$B!V?7$7$$\e(B custom\e$B!W$H$O0c$C$F$$$^$9!#\e(B
 
-  Emacs 19.34 \e$B$H\e(B XEmacs 19.15\e$B!A\e(B20.2 \e$BMQ$N!V?7$7$$\e(B custom\e$B!W$O!"0J2<$N\e(B
-  URL \e$B$+$i<j$KF~$l$k$3$H$,$G$-$^$9!#\e(B
+Emacs 19.34 \e$B$H\e(B XEmacs 19.15\e$B!A\e(B20.2 \e$BMQ$N!V?7$7$$\e(B custom\e$B!W$O!"0J2<$N\e(B
+URL \e$B$+$i<j$KF~$l$k$3$H$,$G$-$^$9!#\e(B
 
-  ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
+ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
 
-  (\e$BCm\e(B: XEmacs 19.15\e$B!A\e(B20.2 \e$B$H\e(B Gnus 5.4/5.5 \e$B$K4^$^$l$F$$$k!V?7$7$$\e(B
-       custom\e$B!W$O$3$NHG$h$j8E$$$b$N$G$9!#\e(B)
+(\e$BCm\e(B: XEmacs 19.15\e$B!A\e(B20.2 \e$B$H\e(B Gnus 5.4/5.5 \e$B$K4^$^$l$F$$$k!V?7$7$$\e(B custom\e$B!W\e(B
+\e$B$O$3$NHG$h$j8E$$$b$N$G$9!#\e(B)
 
-  \e$B!V?7$7$$\e(B custom\e$B!W$r%$%s%9%H!<%k$9$kA0$K!"<!$N3F9`L\$r%A%'%C%/$7$F2<\e(B
-  \e$B$5$$!#\e(B
+\e$B!V?7$7$$\e(B custom\e$B!W$r%$%s%9%H!<%k$9$kA0$K!"<!$N3F9`L\$r%A%'%C%/$7$F2<\e(B
+\e$B$5$$!#\e(B
 
-    1) \e$B$b$7$"$J$?$,\e(B Gnus 5.2/5.3 (\e$B$^$?$OB>$N!V8E$$\e(B custom\e$B!W$r;H$&%"%W\e(B
-       \e$B%j%1!<%7%g%s\e(B) \e$B$r;H$&$3$H$K8G<9$7$F$$$k$N$J$i$P!V?7$7$$\e(B custom\e$B!W\e(B
-       \e$B$r%$%s%9%H!<%k$7$F$O$$$1$^$;$s!#\e(B
+  1) \e$B$b$7$"$J$?$,\e(B Gnus 5.2/5.3 (\e$B$^$?$OB>$N!V8E$$\e(B custom\e$B!W$r;H$&%"%W\e(B
+     \e$B%j%1!<%7%g%s\e(B) \e$B$r;H$&$3$H$K8G<9$7$F$$$k$N$J$i$P!V?7$7$$\e(B custom\e$B!W\e(B
+     \e$B$r%$%s%9%H!<%k$7$F$O$$$1$^$;$s!#\e(B
 
-    2) Emacs 19 \e$B$r85$K$7$?\e(B Mule \e$B$r;H$&$N$J$i$P!"$3$N%Q%C%A$r!V?7$7$$\e(B
-       custom\e$B!W$KEv$F$kI,MW$,$"$j$^$9!#\e(B
+  2) Emacs 19 \e$B$r85$K$7$?\e(B Mule \e$B$r;H$&$N$J$i$P!"$3$N%Q%C%A$r!V?7$7$$\e(B
+     custom\e$B!W$KEv$F$kI,MW$,$"$j$^$9!#\e(B
 
 ----8<------8<------8<------8<------8<------8<------8<------8<----
 --- custom-1.9962/cus-face.el~ Wed Mar  4 19:52:39 1998
@@ -244,192 +331,191 @@ Emacs 19.34 \e$B$H\e(B XEmacs 19.14 \e$B$N%f!<%6$N$_$J$5$s$X\e(B:
            (let* ((frames (frame-list))
 ----8<------8<------8<------8<------8<------8<------8<------8<----
 
-    3) custom \e$B$r;H$&%3%s%Q%$%k$5$l$?%"%W%j%1!<%7%g%s$O!"$=$l$r\e(B load \e$B$9\e(B
-       \e$B$k$H$-$d<B9T$9$k$H$-$KF1$8%P!<%8%g%s$N\e(B custom \e$B$rI,MW$H$7$^$9!#\e(B
-       \e$B$7$?$,$C$F!"$$$D$b\e(B load-path \e$B$K!V?7$7$$\e(B custom\e$B!W$r4^$a$F$*$+$J\e(B
-       \e$B$1$l$P$J$j$^$;$s!#\e(B
-       \e$B$3$l$r9T$J$&$?$a$N$b$C$H$b4JC1$JJ}K!$O\e(B subdirs.el \e$B$r;H$&$3$H$G\e(B
-       \e$B$9!#\e(B
-       \e$B!V?7$7$$\e(B custom\e$B!W$,\e(B /usr/local/share/emacs/19.34/site-lisp/custom/
-       \e$B$K%$%s%9%H!<%k$5$l$F$$$k$N$J$i$P!"\e(B
-       /usr/local/share/emacs/19.34/site-lisp/subdirs.el \e$B$H$$$&%U%!%$\e(B
-       \e$B%k$K0J2<$N9T$r=q$-9~$s$G2<$5$$!#\e(B
+  3) custom \e$B$r;H$&%3%s%Q%$%k$5$l$?%"%W%j%1!<%7%g%s$O!"$=$l$r\e(B load \e$B$9\e(B
+     \e$B$k$H$-$d<B9T$9$k$H$-$KF1$8%P!<%8%g%s$N\e(B custom \e$B$rI,MW$H$7$^$9!#\e(B
+     \e$B$7$?$,$C$F!"$$$D$b\e(B load-path \e$B$K!V?7$7$$\e(B custom\e$B!W$r4^$a$F$*$+$J\e(B
+     \e$B$1$l$P$J$j$^$;$s!#\e(B
+     \e$B$3$l$r9T$J$&$?$a$N$b$C$H$b4JC1$JJ}K!$O\e(B subdirs.el \e$B$r;H$&$3$H$G\e(B
+     \e$B$9!#\e(B
+     \e$B!V?7$7$$\e(B custom\e$B!W$,\e(B /usr/local/share/emacs/19.34/site-lisp/custom/
+     \e$B$K%$%s%9%H!<%k$5$l$F$$$k$N$J$i$P!"\e(B
+     /usr/local/share/emacs/19.34/site-lisp/subdirs.el \e$B$H$$$&%U%!%$\e(B
+     \e$B%k$K0J2<$N9T$r=q$-9~$s$G2<$5$$!#\e(B
 
-       (normal-top-level-add-to-load-path '("custom"))
+     (normal-top-level-add-to-load-path '("custom"))
 
 
-\e$B;H$$J}\e(B
-======
+* \e$B;H$$J}\e(B
 
-alist
------
+** alist
 
-\e$B4X?t\e(B put-alist (ITEM VALUE ALIST)
+*** \e$B4X?t\e(B put-alist (ITEM VALUE ALIST)
 
-  ALIST \e$B$r\e(B ITEM \e$B$NCM$,\e(B VALUE \e$B$K$J$k$h$&$K=$@5$7$^$9!#\e(Bcar \e$B$,\e(B ITEM \e$B$G$"\e(B
-  \e$B$kBP$,B8:_$9$l$P!"$=$N\e(B cdr \e$B$r\e(B VALUE \e$B$GCV$-49$($^$9!#$=$N$h$&$JBP$,$J\e(B
-  \e$B$1$l$P!"?7$7$$BP\e(B (ITEM . VALUE) \e$B$r:n$j!"\e(Bcar \e$B$,?7$7$$BP$G!"\e(Bcdr \e$B$,\e(B
-  ALIST \e$B$G$"$k?7$7$$O"A[%j%9%H$rJV$7$^$9!#\e(B
+ALIST \e$B$r\e(B ITEM \e$B$NCM$,\e(B VALUE \e$B$K$J$k$h$&$K=$@5$7$^$9!#\e(Bcar \e$B$,\e(B ITEM \e$B$G$"\e(B
+\e$B$kBP$,B8:_$9$l$P!"$=$N\e(B cdr \e$B$r\e(B VALUE \e$B$GCV$-49$($^$9!#$=$N$h$&$JBP$,$J\e(B
+\e$B$1$l$P!"?7$7$$BP\e(B (ITEM . VALUE) \e$B$r:n$j!"\e(Bcar \e$B$,?7$7$$BP$G!"\e(Bcdr \e$B$,\e(B
+ALIST \e$B$G$"$k?7$7$$O"A[%j%9%H$rJV$7$^$9!#\e(B
 
-\e$B4X?t\e(B del-alist (ITEM ALIST)
+*** \e$B4X?t\e(B del-alist (ITEM ALIST)
 
\e$BO"A[%j%9%H\e(B ALIST \e$B$K\e(B key \e$B$,\e(B ITEM \e$B$G$"$kBP$,$"$l$P!"$=$l$r\e(B ALIST \e$B$+$i<h\e(B
-  \e$B$j=|$-$^$9!#\e(B
+\e$BO"A[%j%9%H\e(B ALIST \e$B$K\e(B key \e$B$,\e(B ITEM \e$B$G$"$kBP$,$"$l$P!"$=$l$r\e(B ALIST \e$B$+$i<h\e(B
+\e$B$j=|$-$^$9!#\e(B
 
-\e$B4X?t\e(B set-alist (SYMBOL ITEM VALUE)
+*** \e$B4X?t\e(B set-alist (SYMBOL ITEM VALUE)
 
-  SYMBOL \e$B$G;XDj$5$l$F$$$kO"A[%j%9%H$r!"\e(BITEM \e$B$NCM$,\e(B VALUE \e$B$G$"$k$h$&$K\e(B
-  \e$B=$@5$7$^$9!#\e(B
+SYMBOL \e$B$G;XDj$5$l$F$$$kO"A[%j%9%H$r!"\e(BITEM \e$B$NCM$,\e(B VALUE \e$B$G$"$k$h$&$K=$\e(B
+\e$B@5$7$^$9!#\e(B
 
   \e$BNc\e(B. (set-alist 'auto-mode-alist "\\.pln$" 'text-mode)
 
-\e$B4X?t\e(B modify-alist (MODIFIER DEFAULT)
+*** \e$B4X?t\e(B modify-alist (MODIFIER DEFAULT)
 
-  \e$BO"A[%j%9%H\e(B DEFAULT \e$B$rO"A[%j%9%H\e(B MODIFIER \e$B$K=$@5$7$^$9!#\e(B
+\e$BO"A[%j%9%H\e(B DEFAULT \e$B$rO"A[%j%9%H\e(B MODIFIER \e$B$K=$@5$7$^$9!#\e(B
 
-\e$B4X?t\e(B set-modified-alist (SYMBOL MODIFIER)
+*** \e$B4X?t\e(B set-modified-alist (SYMBOL MODIFIER)
 
-  SYMBOL \e$B$NCM$rO"A[%j%9%H\e(B MODIFIER \e$B$K=$@5$7$^$9!#\e(BSYMBOL \e$B$OO"A[%j%9%H$G\e(B
-  \e$B$"$kI,MW$,$"$j$^$9!#$=$l$,B+G{$5$l$F$$$J$1$l$P!"$=$NCM$r\e(B nil \e$B$H$_$J\e(B
-  \e$B$7$^$9!#\e(B
+SYMBOL \e$B$NCM$rO"A[%j%9%H\e(B MODIFIER \e$B$K=$@5$7$^$9!#\e(BSYMBOL \e$B$OO"A[%j%9%H$G$"\e(B
+\e$B$kI,MW$,$"$j$^$9!#$=$l$,B+G{$5$l$F$$$J$1$l$P!"$=$NCM$r\e(B nil \e$B$H$_$J$7$^\e(B
+\e$B$9!#\e(B
 
-path-util
----------
+** path-util
 
-\e$B4X?t\e(B add-path (PATH &rest OPTIONS)
+*** \e$B4X?t\e(B add-path (PATH &rest OPTIONS)
 
-  PATH \e$B$,\e(B `default-load-path' \e$B$N%G%#%l%/%H%j!<$N2<$KB8:_$7$F!"\e(B
-  `load-path'\e$B$KB8:_$7$J$$$H$-$K!"$=$l$r\e(B `load-path' \e$B$KDI2C$7$^$9!#\e(B
+PATH \e$B$,\e(B `default-load-path' \e$B$N%G%#%l%/%H%j!<$N2<$KB8:_$7$F!"\e(B
+`load-path'\e$B$KB8:_$7$J$$$H$-$K!"$=$l$r\e(B `load-path' \e$B$KDI2C$7$^$9!#\e(B
 
-  \e$B<!$N$h$&$J\e(B PATH \e$B$NMM<0$r;H$&$3$H$,$G$-$^$9\e(B:
+\e$B<!$N$h$&$J\e(B PATH \e$B$NMM<0$r;H$&$3$H$,$G$-$^$9\e(B:
 
-    load-path \e$B$+$i$NAjBP\e(B: "PATH" (\e$B$=$l$O\e(B `default-load-path \e$B$+$iC5\e(B
-                                \e$B$5$l$^$9!#\e(B)
+  load-path \e$B$+$i$NAjBP\e(B: "PATH" (\e$B$=$l$O\e(B `default-load-path \e$B$+$iC5$5$l$^\e(B
+                        \e$B$9!#\e(B)
 
-    \e$B%[!<%`%G%#%l%/%H%j!<$+$i$NAjBP\e(B: "~/PATH" "~USER/PATH"
+  \e$B%[!<%`%G%#%l%/%H%j!<$+$i$NAjBP\e(B: "~/PATH" "~USER/PATH"
 
-    \e$B@dBP%Q%9\e(B: "/FOO/BAR/BAZ"
+  \e$B@dBP%Q%9\e(B: "/FOO/BAR/BAZ"
 
-  \e$B<!$N$h$&$J\e(B OPTIONS \e$B$r;XDj$9$k$3$H$,$G$-$^$9\e(B:
+\e$B<!$N$h$&$J\e(B OPTIONS \e$B$r;XDj$9$k$3$H$,$G$-$^$9\e(B:
 
-    'all-paths --- `default-load-path \e$B$NBe$o$j\e(B `load-path' \e$B$+$iC5$7$^\e(B
+  'all-paths --- `default-load-path \e$B$NBe$o$j\e(B `load-path' \e$B$+$iC5$7$^\e(B
                   \e$B$9!#\e(B
 
-    'append --- PATH \e$B$r\e(B `load-path' \e$B$N:G8e$KDI2C$7$^$9!#\e(B
+  'append --- PATH \e$B$r\e(B `load-path' \e$B$N:G8e$KDI2C$7$^$9!#\e(B
 
-\e$B4X?t\e(B add-latest-path (PATTERN &optional ALL-PATHS)
+*** \e$B4X?t\e(B add-latest-path (PATTERN &optional ALL-PATHS)
 
-  \e$B@55,I=8=\e(B PATTERN \e$B$K9gCW$7$?:G?7$N%Q%9$,\e(B `default-load-path' \e$B$N2<$KB8\e(B
-  \e$B:_$7$F$$$F!"\e(B`load-path' \e$B$N2<$KB8:_$7$F$$$J$$$H$-$K$=$l$r\e(B `load-path'
-  \e$B$KDI2C$7$^$9!#\e(B
+\e$B@55,I=8=\e(B PATTERN \e$B$K9gCW$7$?:G?7$N%Q%9$,\e(B `default-load-path' \e$B$N2<$KB8:_\e(B
+\e$B$7$F$$$F!"\e(B`load-path' \e$B$N2<$KB8:_$7$F$$$J$$$H$-$K$=$l$r\e(B `load-path' \e$B$K\e(B
+\e$BDI2C$7$^$9!#\e(B
 
-  \e$BNc$($P!"\e(Bbbdb-1.50 \e$B$H\e(B bbdb-1.51 \e$B$,\e(B site-lisp \e$B$N2<$K$"$C$F!"\e(Bbbdb-1.51
-  \e$B$,\e(B bbdb-1.50 \e$B$h$j$b?7$7$/!"\e(Bsite-lisp \e$B$,\e(B
-  /usr/local/share/emacs/site-lisp \e$B$G$"$k$H$-$O!"\e(B
+\e$BNc$($P!"\e(Bbbdb-1.50 \e$B$H\e(B bbdb-1.51 \e$B$,\e(B site-lisp \e$B$N2<$K$"$C$F!"\e(Bbbdb-1.51 \e$B$,\e(B
+bbdb-1.50 \e$B$h$j$b?7$7$/!"\e(Bsite-lisp \e$B$,\e(B /usr/local/share/emacs/site-lisp
+\e$B$G$"$k$H$-$O!"\e(B
 
-       (add-latest-path "bbdb")
+  (add-latest-path "bbdb")
 
-  \e$B$O\e(B "/usr/local/share/emacs/site-lisp/bbdb-1.51" \e$B$r\e(B `load-path' \e$B$N@h\e(B
-  \e$BF,$KDI2C$7$^$9!#\e(B
+\e$B$O\e(B "/usr/local/share/emacs/site-lisp/bbdb-1.51" \e$B$r\e(B `load-path' \e$B$N@hF,\e(B
+\e$B$KDI2C$7$^$9!#\e(B
 
-  \e$B>JN,2DG=$J0z?t\e(B ALL-PATHS \e$B$,;XDj$5$l$k$H!"\e(B`default-load-path' \e$B$N$+$o\e(B
-  \e$B$j$K\e(B `load-path' \e$B$+$iC5$7$^$9!#\e(B
+\e$B>JN,2DG=$J0z?t\e(B ALL-PATHS \e$B$,;XDj$5$l$k$H!"\e(B`default-load-path' \e$B$N$+$o$j\e(B
+\e$B$K\e(B `load-path' \e$B$+$iC5$7$^$9!#\e(B
 
-\e$B4X?t\e(B get-latest-path (PATTERN &optional ALL-PATHS)
+*** \e$B4X?t\e(B get-latest-path (PATTERN &optional ALL-PATHS)
 
-  \e$B@55,I=8=\e(B PATTERN \e$B$K9gCW$9$k\e(B default-load-path \e$B$K$"$k:G?7$N%G%#%l%/%H\e(B
-  \e$B%j!<$rJV$7$^$9!#>JN,2DG=$J0z?t\e(B ALL-PATHS \e$B$,;XDj$5$l$k$H!"\e(B
-  default-load-path \e$B$NBe$o$j$K\e(B load-path \e$B$NA4$F$+$iC5$7$^$9!#\e(B
+\e$B@55,I=8=\e(B PATTERN \e$B$K9gCW$9$k\e(B default-load-path \e$B$K$"$k:G?7$N%G%#%l%/%H%j!<\e(B
+\e$B$rJV$7$^$9!#>JN,2DG=$J0z?t\e(B ALL-PATHS \e$B$,;XDj$5$l$k$H!"\e(Bdefault-load-path
+\e$B$NBe$o$j$K\e(B load-path \e$B$NA4$F$+$iC5$7$^$9!#\e(B
 
   \e$BNc\e(B. (let ((gnus-path (get-latest-path "gnus")))
         (add-path (expand-file-name "lisp" gnus-path))
         (add-to-list 'Info-default-directory-list
-                    (expand-file-name "texi" gnus-path))
-        )
+                    (expand-file-name "texi" gnus-path)))
 
-\e$B4X?t\e(B file-installed-p (FILE &optional PATHS)
+*** \e$B4X?t\e(B file-installed-p (FILE &optional PATHS)
 
-  FILE \e$B$,\e(B PATHS \e$B$KB8:_$7$?>l9g!"\e(BFILE \e$B$N@dBP%Q%9$rJV$7$^$9!#\e(BPATHS \e$B$,>J\e(B
-  \e$BN,$5$l$k$H!"\e(B`load-path' \e$B$,;H$o$l$^$9!#\e(B
+FILE \e$B$,\e(B PATHS \e$B$KB8:_$7$?>l9g!"\e(BFILE \e$B$N@dBP%Q%9$rJV$7$^$9!#\e(BPATHS \e$B$,>JN,\e(B
+\e$B$5$l$k$H!"\e(B`load-path' \e$B$,;H$o$l$^$9!#\e(B
 
-\e$B4X?t\e(B exec-installed-p (FILE &optional PATHS SUFFIXES)
+*** \e$B4X?t\e(B exec-installed-p (FILE &optional PATHS SUFFIXES)
 
-  FILE \e$B$,\e(B PATHS \e$B$KB8:_$7$?>l9g$K\e(B FILE \e$B$N@dBP%Q%9$rJV$7$^$9!#\e(BPATHS \e$B$,>J\e(B
-  \e$BN,$5$l$k$H!"\e(B`exec-path' \e$B$,;H$o$l$^$9!#\e(BSUFFIXES \e$B$,>JN,$5$l$k$H!"\e(B
-  `exec-suffix-list' \e$B$,;H$o$l$^$9!#\e(B
+FILE \e$B$,\e(B PATHS \e$B$KB8:_$7$?>l9g$K\e(B FILE \e$B$N@dBP%Q%9$rJV$7$^$9!#\e(BPATHS \e$B$,>JN,\e(B
+\e$B$5$l$k$H!"\e(B`exec-path' \e$B$,;H$o$l$^$9!#\e(BSUFFIXES \e$B$,>JN,$5$l$k$H!"\e(B
+`exec-suffix-list' \e$B$,;H$o$l$^$9!#\e(B
 
-\e$B4X?t\e(B module-installed-p (MODULE &optional PATHS)
+*** \e$B4X?t\e(B module-installed-p (MODULE &optional PATHS)
 
-  MODULE \e$B$,Ds6!$5$l$F$$$k\e(B (provided) \e$B$+!"\e(BPATHS \e$B$KB8:_$9$k>l9g$K\e(B nil \e$B$G\e(B
-  \e$B$J$$CM$rJV$7$^$9!#\e(BPATHS \e$B$,>JN,$5$l$k$H!"\e(B`load-path' \e$B$,;H$o$l$^$9!#\e(B
+MODULE \e$B$,Ds6!$5$l$F$$$k\e(B (provided) \e$B$+!"\e(BPATHS \e$B$KB8:_$9$k>l9g$K\e(B nil \e$B$G\e(B
+\e$B$J$$CM$rJV$7$^$9!#\e(BPATHS \e$B$,>JN,$5$l$k$H!"\e(B`load-path' \e$B$,;H$o$l$^$9!#\e(B
 
-filename
---------
+** filename
 
-\e$B4X?t\e(B replace-as-filename (string)
+*** \e$B4X?t\e(B replace-as-filename (string)
 
-  STRING \e$B$+$i0BA4$J%U%!%$%kL>$rJV$7$^$9!#\e(B
+STRING \e$B$+$i0BA4$J%U%!%$%kL>$rJV$7$^$9!#\e(B
 
-  \e$B$=$l$OJQ?t\e(B 'filename-fileters' \e$B$r;2>H$7$^$9!#$=$NJQ?t$O%U%!%$%kL>$N\e(B
-  \e$BA*JL4o$N$?$a$N4X?t$N%j%9%H$G$9!#=i4|@_Dj$NA*JL4o$O0J2<$NJQ?t$r;2>H$7\e(B
-  \e$B$F$$$^$9!#\e(B
+\e$B$=$l$OJQ?t\e(B 'filename-fileters' \e$B$r;2>H$7$^$9!#$=$NJQ?t$O%U%!%$%kL>$NA*\e(B
+\e$BJL4o$N$?$a$N4X?t$N%j%9%H$G$9!#=i4|@_Dj$NA*JL4o$O0J2<$NJQ?t$r;2>H$7$F$$\e(B
+\e$B$^$9!#\e(B
 
-       \e$BJQ?t\e(B filename-limit-length
+**** \e$BJQ?t\e(B filename-limit-length
 
-         \e$B%U%!%$%kL>$ND9$5$N@)8B!#\e(B
+\e$B%U%!%$%kL>$ND9$5$N@)8B!#\e(B
 
-       \e$BJQ?t\e(B filename-replacement-alist
+**** \e$BJQ?t\e(B filename-replacement-alist
 
-         \e$BJ8;z$HJ8;zNs$,BP$K$J$C$?%j%9%H$NO"A[%j%9%H$G$9!#J8;z$N%j%9%H\e(B
-         \e$B$O%U%!%$%kL>$H$7$F5v$5$l$J$$J8;z$r8=$o$7$^$9!#\e(B
+\e$BJ8;z$HJ8;zNs$,BP$K$J$C$?%j%9%H$NO"A[%j%9%H$G$9!#J8;z$N%j%9%H$O%U%!%$%k\e(B
+\e$BL>$H$7$F5v$5$l$J$$J8;z$r8=$o$7$^$9!#\e(B
 
 
-\e$B%P%0Js9p\e(B
-===========
+* \e$B%P%0Js9p\e(B
 
-  \e$B%P%0Js9p$d2~A1$NDs0F$r=q$$$?$H$-$O!"@'Hs\e(B APEL \e$B%a!<%j%s%0%j%9%H$KAw$C\e(B
-  \e$B$F$/$@$5$$\e(B:
+\e$B%P%0Js9p$d2~A1$NDs0F$r=q$$$?$H$-$O!"@'Hs\e(B APEL \e$B%a!<%j%s%0%j%9%H$KAw$C$F\e(B
+\e$B$/$@$5$$\e(B:
 
-       apel-en@m17n.org        (\e$B1Q8l\e(B)
-       apel-ja@m17n.org        (\e$BF|K\8l\e(B)
+  apel-en@m17n.org     (\e$B1Q8l\e(B)
+  apel-ja@m17n.org     (\e$BF|K\8l\e(B)
 
-  APEL ML \e$B$rDL$7$F!"\e(BAPEL \e$B$N%P%0$rJs9p$7$?$j!"\e(BAPEL \e$B$N:G?7$N%j%j!<%9$r<h\e(B
-  \e$BF@$7$?$j!"\e(BAPEL \e$B$N>-Mh$N3HD%$N5DO@$r$7$?$j$9$k$3$H$,$G$-$^$9!#\e(BAPEL ML
-  \e$B$K;22C$9$k$K$O!"6u$NEE;R%a!<%k$r\e(B
+APEL ML \e$B$rDL$7$F!"\e(BAPEL \e$B$N%P%0$rJs9p$7$?$j!"\e(BAPEL \e$B$N:G?7$N%j%j!<%9$r<hF@\e(B
+\e$B$7$?$j!"\e(BAPEL \e$B$N>-Mh$N3HD%$N5DO@$r$7$?$j$9$k$3$H$,$G$-$^$9!#\e(BAPEL ML \e$B$K\e(B
+\e$B;22C$9$k$K$O!"6u$NEE;R%a!<%k$r\e(B
 
-       apel-en-ctl@m17n.org    (\e$B1Q8l\e(B)
-       apel-ja-ctl@m17n.org    (\e$BF|K\8l\e(B)
+  apel-en-ctl@m17n.org (\e$B1Q8l\e(B)
+  apel-ja-ctl@m17n.org (\e$BF|K\8l\e(B)
 
-  \e$B$KAw$C$F$/$@$5$$!#\e(B
+\e$B$KAw$C$F$/$@$5$$!#\e(B
 
 
-Anonymous FTP
-=============
+* Anonymous FTP
 
-  \e$B:G?7$N\e(B APEL \e$B$N%j%j!<%9$O0J2<$N>l=j$+$i<hF@$G$-$^$9\e(B:
+\e$B:G?7$N\e(B APEL \e$B$N%j%j!<%9$O0J2<$N>l=j$+$i<hF@$G$-$^$9\e(B:
 
     ftp://ftp.m17n.org/pub/mule/apel/
 
 
-CVS
-===
+* CVS
+
+APEL \e$B$N3+H/$O\e(B CVS \e$B$r;H$C$F$$$^$9!#:G?7$N3+H/%P!<%8%g%s$r\e(B CVS \e$B$G<hF@$G\e(B
+\e$B$-$^$9!#\e(B
+
+** cvs login (\e$B0l2sL\$@$1\e(B)
 
-  APEL \e$B$N3+H/$O\e(B CVS \e$B$r;H$C$F$$$^$9!#:G?7$N3+H/%P!<%8%g%s$r\e(B CVS \e$B$G\e(B
-  \e$B<hF@$G$-$^$9!#\e(B
+  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
 
-(0) cvs login (\e$B0l2sL\$@$1\e(B)
+  CVS password: [CR] # \e$B6uJ8;zNs\e(B
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
+** checkout
 
-    CVS password: [CR] # \e$B6uJ8;zNs\e(B
+  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout apel
 
-(1) checkout
+CVS \e$B$K4p$E$$$?3+H/$K;22C$7$?$$$H$-$O!"\e(B
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout apel
+  cvs@cvs.m17n.org
 
-  CVS \e$B$K4p$E$$$?3+H/$K;22C$7$?$$$H$-$O!"\e(B
+\e$B$K%"%+%&%s%HL>$H!"\e(Bssh \e$B$N8x3+80$rAw$C$F$/$@$5$$!#\e(Bssh \e$B7PM3$G$O!"\e(Bcvsroot
+\e$B$O\e(B :ext:cvs@cvs.m17n.org:/cvs/root \e$B$H$J$j$^$9!#\e(B
 
-       cvs@cvs.m17n.org
+\e$B$I$&$7$F$b\e(B ssh \e$B$,;H$($J$$>l9g!"\e(Bpserver \e$B7PM3$G$b3+H/$K;22C$G$-$^$9!#$3\e(B
+\e$B$N>l9g!"\e(BUNIX \e$B$N\e(B /etc/passwd \e$BMM<0$G0E9f2=$5$l$?%Q%9%o!<%I$rAw$C$F2<$5$$!#\e(B
+\e$B$3$N>l9g\e(B cvsroot \e$B$O\e(B :pserver:<\e$B%"%+%&%s%HL>\e(B>@cvs.m17n.org:/cvs/root \e$B$H\e(B
+\e$B$J$j$^$9!#\e(B
 
-  \e$B$K%"%+%&%s%HL>$H!"\e(BUNIX \e$B$N\e(B /etc/passwd \e$BMM<0$G0E9f2=$5$l$?%Q%9%o!<%I$r\e(B
-  \e$BAw$C$F$/$@$5$$!#3+$+$l$?3+H/$K;22C$7$F$/$@$5$k$3$H$r4|BT$7$^$9!#\e(B
+\e$B3+$+$l$?3+H/$K;22C$7$F$/$@$5$k$3$H$r4|BT$7$^$9!#\e(B
index c016c92..37522a5 100644 (file)
--- a/alist.el
+++ b/alist.el
@@ -1,11 +1,11 @@
-;;; alist.el --- utility functions about association-list
+;;; alist.el --- utility functions for association list
 
-;; Copyright (C) 1993,1994,1995,1996,1998 Free Software Foundation, Inc.
+;; Copyright (C) 1993,1994,1995,1996,1998,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: alist
 
-;; This file is part of APEL (A Portable Emacs Library).
+;; This file is part of GNU Emacs.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
 ;;; Code:
 
 ;;;###autoload
-(defun put-alist (item value alist)
-  "Modify ALIST to set VALUE to ITEM.
-If there is a pair whose car is ITEM, replace its cdr by VALUE.
-If there is not such pair, create new pair (ITEM . VALUE) and
-return new alist whose car is the new pair and cdr is ALIST.
-\[tomo's ELIS like function]"
-  (let ((pair (assoc item alist)))
-    (if pair
+(defun put-alist (key value alist)
+  "Set cdr of an element (KEY . ...) in ALIST to VALUE and return ALIST.
+If there is no such element, create a new pair (KEY . VALUE) and
+return a new alist whose car is the new pair and cdr is ALIST."
+  (let ((elm (assoc key alist)))
+    (if elm
        (progn
-         (setcdr pair value)
+         (setcdr elm value)
          alist)
-      (cons (cons item value) alist)
-      )))
+      (cons (cons key value) alist))))
 
 ;;;###autoload
-(defun del-alist (item alist)
-  "If there is a pair whose key is ITEM, delete it from ALIST.
-\[tomo's ELIS emulating function]"
-  (if (equal item (car (car alist)))
-      (cdr alist)
-    (let ((pr alist)
-         (r (cdr alist))
-         )
-      (catch 'tag
-       (while (not (null r))
-         (if (equal item (car (car r)))
-             (progn
-               (rplacd pr (cdr r))
-               (throw 'tag alist)))
-         (setq pr r)
-         (setq r (cdr r))
-         )
-       alist))))
+(defun del-alist (key alist)
+  "Delete an element whose car equals KEY from ALIST.
+Return the modified ALIST."
+  (let ((pair (assoc key alist)))
+    (if pair
+       (delq pair alist)
+      alist)))
 
 ;;;###autoload
-(defun set-alist (symbol item value)
-  "Modify a alist indicated by SYMBOL to set VALUE to ITEM."
+(defun set-alist (symbol key value)
+  "Set cdr of an element (KEY . ...) in the alist bound to SYMBOL to VALUE."
   (or (boundp symbol)
-      (set symbol nil)
-      )
-  (set symbol (put-alist item value (symbol-value symbol)))
-  )
+      (set symbol nil))
+  (set symbol (put-alist key value (symbol-value symbol))))
 
 ;;;###autoload
-(defun remove-alist (symbol item)
-  "Remove ITEM from the alist indicated by SYMBOL."
+(defun remove-alist (symbol key)
+  "Delete an element whose car equals KEY from the alist bound to SYMBOL."
   (and (boundp symbol)
-       (set symbol (del-alist item (symbol-value symbol)))
-       ))
+       (set symbol (del-alist key (symbol-value symbol)))))
 
 ;;;###autoload
 (defun modify-alist (modifier default)
-  "Modify alist DEFAULT into alist MODIFIER."
+  "Store elements in the alist MODIFIER in the alist DEFAULT.
+Return the modified alist."
   (mapcar (function
           (lambda (as)
-            (setq default (put-alist (car as)(cdr as) default))
-            ))
+            (setq default (put-alist (car as)(cdr as) default))))
          modifier)
   default)
 
 ;;;###autoload
-(defun set-modified-alist (sym modifier)
-  "Modify a value of a symbol SYM into alist MODIFIER.
-The symbol SYM should be alist. If it is not bound,
-its value regard as nil."
-  (if (not (boundp sym))
-      (set sym nil)
-    )
-  (set sym (modify-alist modifier (eval sym)))
-  )
+(defun set-modified-alist (symbol modifier)
+  "Store elements in the alist MODIFIER in an alist bound to SYMBOL.
+If SYMBOL is not bound, set it to nil at first."
+  (if (not (boundp symbol))
+      (set symbol nil))
+  (set symbol (modify-alist modifier (eval symbol))))
+
+
+;;; @ association-vector-list
+;;;
+
+;;;###autoload
+(defun vassoc (key avlist)
+  "Search AVLIST for an element whose first element equals KEY.
+AVLIST is a list of vectors.
+See also `assoc'."
+  (while (and avlist
+             (not (equal key (aref (car avlist) 0))))
+    (setq avlist (cdr avlist)))
+  (and avlist
+       (car avlist)))
 
 
 ;;; @ end
index 93d09ca..c086ab4 100644 (file)
@@ -39,8 +39,8 @@
   ;; (product-define "APEL" nil '(9 23))       ; comment.
   ;; (product-define "APEL" nil '(10 0))       ; Released 24 December 1999
   ;; (product-define "APEL" nil '(10 1))       ; Released 20 January 2000
-  (product-define "APEL" nil '(10 2))  ; Released 01 March 2000
-  ;; (product-define "APEL" nil '(10 3))
+  ;; (product-define "APEL" nil '(10 2))       ; Released 01 March 2000
+  (product-define "APEL" nil '(10 3))           ; Released 30 December 2000
   )
 
 (defun apel-version ()
index 2d9dd41..04c026a 100644 (file)
   (install-detect-elisp-directory))
 
 
+;;; @ for XEmacs package system
+;;;
+
+(defun install-update-package-files (package dir &optional just-print)
+  (cond
+   (just-print
+    (princ (format "Updating autoloads in directory %s..\n\n" dir))
+
+    (princ (format "Processing %s\n" dir))
+    (princ "Generating custom-load.el...\n\n")
+
+    (princ (format "Compiling %s...\n"
+                  (expand-file-name "auto-autoloads.el" dir)))
+    (princ (format "Wrote %s\n"
+                  (expand-file-name "auto-autoloads.elc" dir)))
+
+    (princ (format "Compiling %s...\n"
+                  (expand-file-name "custom-load.el" dir)))
+    (princ (format "Wrote %s\n"
+                  (expand-file-name "custom-load.elc" dir))))
+   (t
+    (setq autoload-package-name package)
+
+    (let ((command-line-args-left (list dir)))
+      (batch-update-directory))
+
+    (let ((command-line-args-left (list dir)))
+      (Custom-make-dependencies))
+
+    (byte-compile-file (expand-file-name "auto-autoloads.el" dir))
+    (byte-compile-file (expand-file-name "custom-load.el" dir)))))
+
+
+;;; @ Other Utilities
+;;;
+
+(defun install-just-print-p ()
+  (let ((flag (getenv "MAKEFLAGS"))
+       (case-fold-search nil))
+    (princ (format "%s\n" flag))
+    (if flag
+       (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
+
+
 ;;; @ end
 ;;;
 
index 156c34e..3f19c39 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mcharset.el --- MIME charset API
 
-;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
+;; Copyright (C) 1997,1998,1999,2000 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 (require 'pcustom)
 
 (cond ((featurep 'mule)
-       (cond ((featurep 'xemacs)
-             (require 'mcs-xm)
-             )
-            ((>= emacs-major-version 20)
-             (require 'mcs-e20)
-             )
-            (t
-             ;; for MULE 1.* and 2.*
-             (require 'mcs-om)
-             ))
-       )
+       (if (>= emacs-major-version 20)
+          (require 'mcs-20)
+        ;; for MULE 1.* and 2.*
+        (require 'mcs-om)))
       ((boundp 'NEMACS)
        ;; for Nemacs and Nepoch
-       (require 'mcs-nemacs)
-       )
+       (require 'mcs-nemacs))
       (t
-       (require 'mcs-ltn1)
-       ))
+       (require 'mcs-ltn1)))
 
 (defcustom default-mime-charset-for-write
-  (if (and (fboundp 'find-coding-system)
-          (find-coding-system 'utf-8))
+  (if (mime-charset-p 'utf-8)
       'utf-8
     default-mime-charset)
   "Default value of MIME-charset for encoding.
index aa4743f..ca9f394 100644 (file)
--- a/mcs-20.el
+++ b/mcs-20.el
@@ -1,8 +1,8 @@
 ;;; mcs-20.el --- MIME charset implementation for Emacs 20 and XEmacs/mule
 
-;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
+;; Copyright (C) 1997,1998,1999,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 
 ;; This file is part of APEL (A Portable Emacs Library).
 
 ;;; Code:
 
-(require 'poem)
-(require 'pcustom)
+(require 'custom)
 (eval-when-compile (require 'wid-edit))
 
+(if (featurep 'xemacs)
+    (require 'mcs-xm)
+  (require 'mcs-e20))
+
 
 ;;; @ MIME charset
 ;;;
@@ -100,6 +103,8 @@ is specified, it is used as line break code type of coding-system."
                   charset lbt cs)
        ))))
 
+(defalias 'mime-charset-p 'mime-charset-to-coding-system)
+
 (defvar widget-mime-charset-prompt-value-history nil
   "History of input to `widget-mime-charset-prompt-value'.")
 
@@ -132,7 +137,7 @@ is specified, it is used as line break code type of coding-system."
     (widget-apply widget :notify widget event)
     (widget-setup)))
 
-(defcustom default-mime-charset 'x-ctext
+(defcustom default-mime-charset 'x-unknown
   "Default value of MIME-charset.
 It is used when MIME-charset is not specified.
 It must be symbol."
index 00b621e..84a4694 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mcs-e20.el --- MIME charset implementation for Emacs 20.1 and 20.2
 
-;; Copyright (C) 1996,1997,1998,1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996,1997,1998,1999,2000 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 
 ;;; Code:
 
-(eval-when-compile
-  (require 'static)
-  (require 'poem)
-  )
+(require 'pces)
+(eval-when-compile (require 'static))
 
 (defsubst encode-mime-charset-region (start end charset &optional lbt)
   "Encode the text between START and END as MIME CHARSET."
@@ -177,8 +175,6 @@ Return nil if corresponding MIME-charset is not found."
 ;;; @ end
 ;;;
 
-(require 'mcs-20)
-
 (require 'product)
 (product-provide (provide 'mcs-e20) (require 'apel-ver))
 
index 17a93bb..aa76ef9 100644 (file)
@@ -1,9 +1,9 @@
 ;;; mcs-ltn1.el --- MIME charset implementation for Emacs 19
 ;;;                 and XEmacs without MULE
 
-;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko
+;; Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 
 ;; This file is part of APEL (A Portable Emacs Library).
 
 (defun mime-charset-to-coding-system (charset)
   (if (stringp charset)
-      (setq charset (intern (downcase charset)))
-    )
+      (setq charset (intern (downcase charset))))
   (if (memq charset (list 'us-ascii default-mime-charset))
-      charset
-    ))
+      charset))
+
+(defalias 'mime-charset-p 'mime-charset-to-coding-system)
 
 (defun detect-mime-charset-region (start end)
   "Return MIME charset for region between START and END."
index 0251369..9784ac6 100644 (file)
@@ -1,8 +1,8 @@
 ;;; mcs-nemacs.el --- MIME charset implementation for Nemacs
 
-;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko
+;; Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 
 ;; This file is part of APEL (A Portable Emacs Library).
@@ -48,6 +48,8 @@
     )
   (cdr (assq charset mime-charset-coding-system-alist)))
 
+(fset 'mime-charset-p 'mime-charset-to-coding-system)
+
 (defun detect-mime-charset-region (start end)
   "Return MIME charset for region between START and END.
 \[emu-nemacs.el]"
index 0fd6d8d..cc484eb 100644 (file)
--- a/mcs-xm.el
+++ b/mcs-xm.el
@@ -1,9 +1,9 @@
 ;;; mcs-xm.el --- MIME charset implementation for XEmacs-mule
 
-;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
+;; Copyright (C) 1997,1998,1999,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Keywords: emulation, compatibility, Mule
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
+;; Keywords: MIME-charset, coding-system, emulation, compatibility, Mule
 
 ;; This file is part of APEL (A Portable Emacs Library).
 
@@ -29,7 +29,7 @@
 
 ;;; Code:
 
-(require 'mcs-20)
+(require 'poem)
 
 
 (defun encode-mime-charset-region (start end charset &optional lbt)
 
 
 (defvar charsets-mime-charset-alist
-  '(((ascii)                                           . us-ascii)
+  `(((ascii)                                           . us-ascii)
     ((ascii latin-iso8859-1)                           . iso-8859-1)
     ((ascii latin-iso8859-2)                           . iso-8859-2)
     ((ascii latin-iso8859-3)                           . iso-8859-3)
     ((ascii greek-iso8859-7)                           . iso-8859-7)
     ((ascii hebrew-iso8859-8)                          . iso-8859-8)
     ((ascii latin-iso8859-9)                           . iso-8859-9)
-    ((ascii latin-jisx0201
-           japanese-jisx0208-1978 japanese-jisx0208)   . iso-2022-jp)
-    ((ascii latin-jisx0201
-           katakana-jisx0201 japanese-jisx0208)        . shift_jis)
+    ,(if (featurep 'utf-2000)
+        '((ascii latin-jisx0201
+                 japanese-jisx0208-1978
+                 japanese-jisx0208
+                 japanese-jisx0208-1990)               . iso-2022-jp)
+       '((ascii latin-jisx0201
+               japanese-jisx0208-1978 japanese-jisx0208)
+        . iso-2022-jp))
+    ,(if (featurep 'utf-2000)
+        '((ascii latin-jisx0201
+                 japanese-jisx0208-1978
+                 japanese-jisx0208
+                 japanese-jisx0208-1990
+                 japanese-jisx0213-1
+                 japanese-jisx0213-2)                  . iso-2022-jp-3)
+       '((ascii latin-jisx0201
+               japanese-jisx0208-1978 japanese-jisx0208
+               japanese-jisx0213-1
+               japanese-jisx0213-2)                    . iso-2022-jp-3))
+    ,(if (featurep 'utf-2000)
+        '((ascii latin-jisx0201 katakana-jisx0201
+                 japanese-jisx0208-1990)               . shift_jis)
+       '((ascii latin-jisx0201
+               katakana-jisx0201 japanese-jisx0208)    . shift_jis))
     ((ascii korean-ksc5601)                            . euc-kr)
     ((ascii chinese-gb2312)                            . gb2312)
     ((ascii chinese-big5-1 chinese-big5-2)             . big5)
     ((ascii thai-xtis)                                 . tis-620)
-    ((ascii latin-iso8859-1 greek-iso8859-7
-           latin-jisx0201 japanese-jisx0208-1978
-           chinese-gb2312 japanese-jisx0208
-           korean-ksc5601 japanese-jisx0212)           . iso-2022-jp-2)
+    ,(if (featurep 'utf-2000)
+        '((ascii latin-jisx0201 latin-iso8859-1
+                 greek-iso8859-7
+                 japanese-jisx0208-1978 japanese-jisx0208
+                 japanese-jisx0208-1990
+                 japanese-jisx0212
+                 chinese-gb2312
+                 korean-ksc5601)               . iso-2022-jp-2)
+       '((ascii latin-jisx0201 latin-iso8859-1
+               greek-iso8859-7
+               japanese-jisx0208-1978 japanese-jisx0208
+               japanese-jisx0212
+               chinese-gb2312
+               korean-ksc5601)                 . iso-2022-jp-2))
     ;; ((ascii latin-iso8859-1 greek-iso8859-7
     ;;         latin-jisx0201 japanese-jisx0208-1978
     ;;         chinese-gb2312 japanese-jisx0208
index d774642..db87fc7 100644 (file)
@@ -54,18 +54,16 @@ You can specify following OPTIONS:
               (while rest
                 (setq p (expand-file-name path (car rest)))
                 (if (file-directory-p p)
-                    (throw 'tag p)
-                  )
-                (setq rest (cdr rest))
-                ))
-            (not (member p load-path))
-            )
+                    (throw 'tag p))
+                (setq rest (cdr rest))))
+            (not (or (member p load-path)
+                     (if (string-match "/$" p)
+                         (member (substring p 0 (1- (length p))) load-path)
+                       (member (file-name-as-directory p) load-path)))))
        (setq load-path
              (if (memq 'append options)
                  (append load-path (list p))
-               (cons p load-path)
-               ))
-      )))
+               (cons p load-path))))))
 
 ;;;###autoload
 (defun add-latest-path (pattern &optional all-paths)
index b95244a..0a67371 100644 (file)
 
 (eval-and-compile
 
+  (static-if (featurep 'xemacs)
+      (defadvice make-coding-system (before ccl-compat (name type &rest ad-subr-args) activate)
+       (when (and (integerp type)
+                  (eq type 4)
+                  (characterp (ad-get-arg 2))
+                  (stringp (ad-get-arg 3))
+                  (consp (ad-get-arg 4))
+                  (symbolp (car (ad-get-arg 4)))
+                  (symbolp (cdr (ad-get-arg 4))))
+         (setq type 'ccl)
+         (setq ad-subr-args
+               (list
+                (ad-get-arg 3)
+                (append
+                 (list
+                  'mnemonic (char-to-string (ad-get-arg 2))
+                  'decode (symbol-value (car (ad-get-arg 4)))
+                  'encode (symbol-value (cdr (ad-get-arg 4))))
+                 (ad-get-arg 5)))))))
+
   (if (featurep 'xemacs)
       (defun make-ccl-coding-system (name mnemonic docstring decoder encoder)
        "\
index 54c751d..ada032c 100644 (file)
 
 (defun decode-coding-string (string coding-system)
   "Decode the STRING which is encoded in CODING-SYSTEM."
-  string)
+  (copy-sequence string))
 
 (defun encode-coding-string (string coding-system)
   "Encode the STRING as CODING-SYSTEM."
-  string)
+  (copy-sequence string))
 
 (defun decode-coding-region (start end coding-system)
   "Decode the text between START and END which is encoded in CODING-SYSTEM."
index 1f5bc10..b84d0fe 100644 (file)
--- a/poe-18.el
+++ b/poe-18.el
@@ -453,8 +453,6 @@ resolution finer than a second."
 ;;; @@ Floating point numbers.
 ;;;
 
-(defalias 'numberp 'integerp)
-
 (defun abs (arg)
   "Return the absolute value of ARG."
   (if (< arg 0) (- arg) arg))
@@ -468,8 +466,6 @@ With optional DIVISOR, return the largest integer no greater than ARG/DIVISOR."
       (- (/ (- divisor 1 arg) divisor))
     (/ arg divisor)))
 
-(defalias 'mod '%)
-
 ;;; @ Basic lisp subroutines.
 ;;;
 
@@ -515,12 +511,29 @@ With optional non-nil ALL, force redisplay of all mode-lines."
 ;;;
 
 ;; 18.55 does not have these variables.
-(defvar buffer-undo-list nil)
-(defvar auto-fill-function nil)
-(defvar unread-command-event nil)
-(defvar unread-command-events nil)
+(defvar buffer-undo-list nil
+  "List of undo entries in current buffer.
+APEL provides this as dummy for a compatibility.")
+
+(defvar auto-fill-function nil
+  "Function called (if non-nil) to perform auto-fill.
+APEL provides this as dummy for a compatibility.")
+
+(defvar unread-command-event nil
+  "APEL provides this as dummy for a compatibility.")
+(defvar unread-command-events nil
+  "List of events to be read as the command input.
+APEL provides this as dummy for a compatibility.")
+
+;; (defvar minibuffer-setup-hook nil
+;;   "Normal hook run just after entry to minibuffer.")
+;; (defvar minibuffer-exit-hook nil
+;;   "Normal hook run just after exit from minibuffer.")
+
+(defvar minor-mode-map-alist nil
+  "Alist of keymaps to use for minor modes.
+APEL provides this as dummy for a compatibility.")
 
-(defalias 'buffer-disable-undo 'buffer-flush-undo)
 (defalias 'insert-and-inherit 'insert)
 (defalias 'insert-before-markers-and-inherit 'insert-before-markers)
 (defalias 'number-to-string 'int-to-string)
@@ -584,7 +597,7 @@ Fifth arg HIST is ignored in this implementatin."
 Optional argunemt FRAME is ignored in this implementation."
        (si:get-buffer-window buffer))))
 
-(defun-maybe walk-windows (proc &optional minibuf all-frames)
+(defun walk-windows (proc &optional minibuf all-frames)
   "Cycle through all visible windows, calling PROC for each one.
 PROC is called with a window as argument.
 
@@ -605,6 +618,39 @@ Optional third argunemt ALL-FRAMES is ignored in this implementation."
                 (not (eq walk-windows-current walk-windows-start))))
       (select-window walk-windows-start))))
 
+(defun buffer-disable-undo (&optional buffer)
+  "Make BUFFER stop keeping undo information.
+No argument or nil as argument means do this for the current buffer."
+   (buffer-flush-undo (or buffer (current-buffer))))
+
+
+;;; @@ Frame (Emacs 18 cannot make frame)
+;;;
+;; The following four are frequently used for manupulating the current frame.
+;; frame.el has `screen-width', `screen-height', `set-screen-width' and
+;; `set-screen-height' for backward compatibility and declare them as obsolete.
+(defun frame-width (&optional frame)
+  "Return number of columns available for display on FRAME.
+If FRAME is omitted, describe the currently selected frame."
+  (screen-width))
+
+(defun frame-height (&optional frame)
+  "Return number of lines available for display on FRAME.
+If FRAME is omitted, describe the currently selected frame."
+  (screen-height))
+
+(defun set-frame-width (frame cols &optional pretend)
+  "Specify that the frame FRAME has COLS columns.
+Optional third arg non-nil means that redisplay should use COLS columns
+but that the idea of the actual width of the frame should not be changed."
+  (set-screen-width cols pretend))
+
+(defun set-frame-height (frame lines &optional pretend)
+  "Specify that the frame FRAME has LINES lines.
+Optional third arg non-nil means that redisplay should use LINES lines
+but that the idea of the actual height of the frame should not be changed."
+  (set-screen-height lines pretend))
+
 ;;; @@ Environment variables.
 ;;;
 
diff --git a/poe.el b/poe.el
index 27f53ee..2b0e3d4 100644 (file)
--- a/poe.el
+++ b/poe.el
@@ -75,7 +75,6 @@
    (or (fboundp 'si:require)
        (progn
         (fset 'si:require (symbol-function 'require))
-        (put 'require 'defun-maybe t)
         (defun require (feature &optional filename noerror)
           "\
 If feature FEATURE is not loaded, load it from FILENAME.
@@ -90,7 +89,10 @@ Normally the return value is FEATURE."
               (condition-case nil
                   (si:require feature filename)
                 (file-error))
-            (si:require feature filename)))))))
+            (si:require feature filename)))
+        ;; for `load-history'.
+        (setq current-load-list (cons 'require current-load-list))
+        (put 'require 'defun-maybe t)))))
 
 ;; Emacs 19.29 and later: (plist-get PLIST PROP)
 ;; (defun-maybe plist-get (plist prop)
@@ -710,7 +712,7 @@ that is `eq' to KEY, there is no way to remove it by side effect;
 therefore, write `(setq foo (remassq key foo))' to be sure of changing
 the value of `foo'."
   (if (setq key (assq key list))
-      (delete key list)
+      (delq key list)
     list))
 
 ;; XEmacs 19.13 and later: (remassoc KEY LIST)
@@ -721,7 +723,18 @@ that is `equal' to KEY, there is no way to remove it by side effect;
 therefore, write `(setq foo (remassoc key foo))' to be sure of changing
 the value of `foo'."
   (if (setq key (assoc key list))
-      (delete key list)
+      (delq key list)
+    list))
+
+;; XEmacs 19.13 and later: (remrassq VALUE LIST)
+(defun-maybe remrassq (value list)
+  "Delete by side effect any elements of LIST whose cdr is `eq' to VALUE.
+The modified LIST is returned.  If the first member of LIST has a car
+that is `eq' to VALUE, there is no way to remove it by side effect;
+therefore, write `(setq foo (remrassq value foo))' to be sure of changing
+the value of `foo'."
+  (if (setq value (rassq value list))
+      (delq value list)
     list))
 
 ;; XEmacs 19.13 and later: (remrassoc VALUE LIST)
@@ -732,7 +745,7 @@ that is `equal' to VALUE, there is no way to remove it by side effect;
 therefore, write `(setq foo (remrassoc value foo))' to be sure of changing
 the value of `foo'."
   (if (setq value (rassoc value list))
-      (delete value list)
+      (delq value list)
     list))
 
 ;;; Define `functionp' here because "localhook" uses it.
@@ -836,6 +849,11 @@ This variable is meaningful on MS-DOG and Windows NT.
 On those systems, it is automatically local in every buffer.
 On other systems, this variable is normally always nil.")
 
+;; Emacs 20.3 or later.
+(defvar-maybe minor-mode-overriding-map-alist nil
+  "Alist of keymaps to use for minor modes, in current major mode.
+APEL provides this as dummy for a compatibility.")
+
 ;; Emacs 20.1/XEmacs 20.3(?) and later: (save-current-buffer &rest BODY)
 ;;
 ;; v20 defines `save-current-buffer' as a C primitive (in src/editfns.c)
@@ -1257,13 +1275,13 @@ Not fully compatible especially when invalid format is specified."
                  "")
                 ;; the day of month, zero-padded
                 ((eq cur-char ?d)      
-                 (substring time-string 8 10))
+                 (format "%02d" (string-to-int (substring time-string 8 10))))
                 ;; a synonym for `%m/%d/%y'
                 ((eq cur-char ?D)
-                 (format "%02d/%s/%s"
+                 (format "%02d/%02d/%s"
                          (cddr (assoc (substring time-string 4 7)
                                       format-time-month-list))
-                         (substring time-string 8 10)
+                         (string-to-int (substring time-string 8 10))
                          (substring time-string -2)))
                 ;; the day of month, blank-padded
                 ((eq cur-char ?e)
@@ -1544,6 +1562,19 @@ The extension, in a file name, is the part that follows the last `.'."
        filename))))
 \f
 
+;;; @ Miscellanea.
+
+;; Emacs 19.29 and later: (current-fill-column)
+(defun-maybe current-fill-column ()
+  "Return the fill-column to use for this line."
+  fill-column)
+
+;; Emacs 19.29 and later: (current-left-margin)
+(defun-maybe current-left-margin ()
+  "Return the left margin to use for this line."
+  left-margin)
+\f
+
 ;;; @ XEmacs emulation.
 ;;;
 
index 9beb320..5a72faa 100644 (file)
@@ -1,9 +1,9 @@
 ;;; -*-byte-compile-dynamic: t;-*-
 ;;; poem-e20_3.el --- poem submodule for Emacs 20.3
 
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,1999,2000 Free Software Foundation, Inc.
 
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: emulation, compatibility, Mule
 
 ;; This file is part of APEL (A Portable Emacs Library).
@@ -29,6 +29,8 @@
 
 ;;; Code:
 
+(require 'pym)
+
 ;;; @ character
 ;;;
 
index 6b7d389..70eae24 100644 (file)
@@ -1,6 +1,6 @@
 ;;; product.el --- Functions for product version information.
 
-;; Copyright (C) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999,2000 Free Software Foundation, Inc.
 
 ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
 ;;     Keiichi Suzuki <keiichi@nanap.org>
@@ -248,6 +248,19 @@ PRODUCT-DEF is a definition of the product."
                          nil nil nil (, product-version-string)))))
         (, feature-def)))))
 
+(defun product-version-as-string (product)
+  "Return version number of product as a string.
+PRODUCT is a product structure which returned by `product-define'.
+If optional argument UPDATE is non-nil, then regenerate
+`produce-version-string' from `product-version'."
+  (setq product (product-find product))
+  (or (product-version-string product)
+      (and (product-version product)
+          (product-set-version-string product
+                                      (mapconcat (function int-to-string)
+                                                 (product-version product)
+                                                 ".")))))
+
 (defun product-string-1 (product &optional verbose)
   "Return information of product as a string of \"NAME/VERSION\".
 PRODUCT is a product structure which returned by `product-define'.
@@ -255,20 +268,11 @@ If optional argument VERBOSE is non-nil, then return string of
 \"NAME/VERSION (CODE-NAME)\"."
   (setq product (product-find product))
   (concat (product-name product)
-         (cond
-          ((product-version-string product)
-           (concat "/" (product-version-string product)))
-          ((product-version product)
-           (concat "/"
-                   (product-set-version-string
-                    product
-                    (mapconcat (function int-to-string)
-                               (product-version product)
-                               "."))))
-          (""))
-         (if (and verbose (product-code-name product))
-             (concat " (" (product-code-name product) ")")
-           "")))
+         (let ((version-string (product-version-as-string product)))
+           (and version-string
+                (concat "/" version-string)))
+         (and verbose (product-code-name product)
+              (concat " (" (product-code-name product) ")"))))
 
 (defun product-for-each (product all function &rest args)
   "Apply a function to a product and the product's family with args.
diff --git a/pym.el b/pym.el
index 58348e7..faa9463 100644 (file)
--- a/pym.el
+++ b/pym.el
@@ -268,7 +268,7 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
           &rest (&rest sexp)))
 
 ;; edebug-spec for `static-*' macros are also defined here.
-(def-edebug-spec static-if if)
+(def-edebug-spec static-if t) 
 (def-edebug-spec static-when when)
 (def-edebug-spec static-unless unless)
 (def-edebug-spec static-condition-case condition-case)
index b64440d..a42d816 100644 (file)
--- a/static.el
+++ b/static.el
 
 (put 'static-if 'lisp-indent-function 2)
 (defmacro static-if (cond then &rest else)
-  "`if' expression but COND is evaluated at compile-time."
+  "Like `if', but evaluate COND at compile time."
   (if (eval cond)
       then
     (` (progn  (,@ else)))))
 
 (put 'static-when 'lisp-indent-function 1)
 (defmacro static-when (cond &rest body)
-  "`when' expression but COND is evaluated at compile-time."
+  "Like `when', but evaluate COND at compile time."
   (if (eval cond)
       (` (progn (,@ body)))))
 
 (put 'static-unless 'lisp-indent-function 1)
 (defmacro static-unless (cond &rest body)
-  "`unless' expression but COND is evaluated at compile-time."
+  "Like `unless', but evaluate COND at compile time."
   (if (eval cond)
       nil
     (` (progn (,@ body)))))
 
 (put 'static-condition-case 'lisp-indent-function 2)
 (defmacro static-condition-case (var bodyform &rest handlers)
-  "`condition-case' expression but BODYFORM is evaluated at compile-time."
+  "Like `condition-case', but evaluate BODYFORM at compile time."
   (eval (` (condition-case (, var)
               (list (quote quote) (, bodyform))
             (,@ (mapcar
 
 (put 'static-defconst 'lisp-indent-function 'defun)
 (defmacro static-defconst (symbol initvalue &optional docstring)
-  "`defconst' expression but INITVALUE is evaluated at compile-time.
+  "Like `defconst', but evaluate INITVALUE at compile time.
 
-The variable SYMBOL can be referenced at either compile-time or run-time."
+The variable SYMBOL can be referred at both compile time and run time."
   (let ((value (eval initvalue)))
     (eval (` (defconst (, symbol) (quote (, value)) (, docstring))))
     (` (defconst (, symbol) (quote (, value)) (, docstring)))))
 
 (defmacro static-cond (&rest clauses)
-  "`cond' expression but the car of each clause is evaluated at compile-time."
+  "Like `cond', but evaluate CONDITION part of each clause at compile time."
   (while (and clauses
              (not (eval (car (car clauses)))))
     (setq clauses (cdr clauses)))
index 333bd90..8db1d85 100644 (file)
@@ -288,8 +288,8 @@ Gregorian date Sunday, December 31, 1 BC."
            ;; (timezone-absolute-from-gregorian 1 1 1970)
         (days (- date current-time-origin))
          (days-1 (/ days 65536))
-         (days-2 (mod (/ days 256) 256))
-        (days-3 (mod days 256))
+         (days-2 (% (/ days 256) 256))
+        (days-3 (% days 256))
          ;; (seconds-per-day (float 86400))
         (seconds-per-day-1 1)
         (seconds-per-day-2 81)
@@ -300,25 +300,25 @@ Gregorian date Sunday, December 31, 1 BC."
          ;; (hibase (* hi current-time-arithmetic-base))
          ;; (lo (floor (- seconds hibase)))
         (seconds-1 (/ seconds 65536))
-        (seconds-2 (mod (/ seconds 256) 256))
-        (seconds-3 (mod seconds 256))
+        (seconds-2 (% (/ seconds 256) 256))
+        (seconds-3 (% seconds 256))
         hi lo
          r
         seconds-per-day*days-1
         seconds-per-day*days-2
         seconds-per-day*days-3)
     (setq r (* days-3 seconds-per-day-3)
-         seconds-per-day*days-3 (mod r 256))
+         seconds-per-day*days-3 (% r 256))
     (setq r (+ (/ r 256)
               (* days-2 seconds-per-day-3)
               (* days-3 seconds-per-day-2))
-         seconds-per-day*days-2 (mod r 256))
+         seconds-per-day*days-2 (% r 256))
     (setq seconds-per-day*days-1 (+ (/ r 256)
                                    (* days-1 seconds-per-day-3)
                                    (* (/ days 256) seconds-per-day-2)
                                    (* days seconds-per-day-1)))
     (setq r (+ seconds-2 seconds-per-day*days-2)
-         seconds-2 (mod r 256)
+         seconds-2 (% r 256)
          seconds-1 (+ seconds-1 (/ r 256)))
     (setq lo (+ (* seconds-2 256)
                seconds-3 seconds-per-day*days-3))