pax_global_header00006660000000000000000000000064142657770770014540gustar00rootroot0000000000000052 comment=82eb2325bd149dc57b43a9ce9402c6c6183e4052 wanderlust-apel-82eb232/000077500000000000000000000000001426577707700152005ustar00rootroot00000000000000wanderlust-apel-82eb232/APEL-CFG000066400000000000000000000061251426577707700162450ustar00rootroot00000000000000;;; APEL-CFG --- user customizations for APEL installation. -*-Emacs-Lisp-*- ;;; Commentary: ;; Use this file to override variables defined in APEL-MK. ;; ;; The following variables are used in APEL-MK. ;; Note that you cannot use them in this file. ;; ;; For Emacs, or XEmacs without package system: ;; ;; PREFIX: Normally, "/usr/local". ;; Installer will try to detect it automatically. ;; LISPDIR: "PREFIX/share/emacs/site-lisp" if Emacs 19.29 and later. ;; "PREFIX/lib/emacs/site-lisp" if Emacs 19.28 and earlier. ;; Installer will try to detect it from PREFIX. ;; VERSION_SPECIFIC_LISPDIR: "PREFIX/share/emacs/VERSION/site-lisp" ;; if Emacs 19.31 and later, otherwise, same as LISPDIR. ;; ;; APEL_PREFIX: subdirectory of LISPDIR where APEL modules will be ;; installed, or "" if you don't want to make subdirectory. ;; EMU_PREFIX: subdirectory of VERSION_SPECIFIC_LISPDIR where EMU ;; modules will be installed, or "" if you don't want to ;; make subdirectory. ;; ;; APEL_DIR: The directory where APEL modules will be installed. ;; Generated from LISPDIR and APEL_PREFIX if it is not set. ;; EMU_DIR: The directory where EMU modules will be installed. ;; Generated from VERSION_SPECIFIC_LISPDIR and EMU_PREFIX ;; if it is not set. ;; ;; For XEmacs with package system: ;; ;; PACKAGEDIR: "/usr/local/lib/xemacs/xemacs-packages" ;; Installer will try to detect it automatically. ;; ;; APEL_PREFIX: subdirectory of PACKAGEDIR where both APEL and EMU ;; modules will be installed. ;;; Code: ;;; "custom" library. ;; If you want to use "new custom" but do not use "subdirs.el" to add ;; "custom" directory to your load-path, uncomment and edit this. ;; (setq load-path ;; (cons "/usr/local/share/emacs/19.34/site-lisp/custom" load-path)) ;;; Install to home directory. ;; If you want to install APEL to your home directory and you already ;; have the standard hierarchy such as "~/share/emacs/site-lisp" and ;; "~/share/emacs/VERSION/site-lisp", uncomment and edit this. ;; (setq PREFIX "~/") ;; Or, you can specify APEL_DIR and EMU_DIR directly. ;; (setq APEL_DIR "~/lib/emacs/lisp/apel") ;; (setq EMU_DIR "~/lib/emacs/lisp/emu") ;;; Install to site-lisp directories. ;; (setq PREFIX "/usr/local") ;; Mule based on Emacs 19.28 and earlier. ;; (setq LISPDIR "/usr/local/share/mule/site-lisp") ;; Mule based on Emacs 19.29 and later. ;; (setq LISPDIR "/usr/local/share/emacs/site-lisp") ;; (setq LISPDIR "/usr/local/share/mule/site-lisp") ;; (setq VERSION_SPECIFIC_LISPDIR "/usr/local/share/emacs/19.34/site-lisp") ;; (setq VERSION_SPECIFIC_LISPDIR "/usr/local/share/mule/19.34/site-lisp") ;; XEmacs 21.0 and later. ;; (setq PACKAGEDIR "/usr/local/lib/xemacs/xemacs-packages") ;; (setq APEL_PREFIX "apel") ;; (setq EMU_PREFIX "emu") ;; If you want to install all of APEL modules to VERSION_SPECIFIC_LISPDIR, ;; uncomment and edit this. ;; (setq APEL_DIR "/usr/local/share/emacs/19.34/site-lisp/apel") ;; You can specify APEL_DIR and EMU_DIR directly. Uncomment and edit this. ;; (setq APEL_DIR "/usr/local/share/emacs/site-lisp/apel") ;; (setq EMU_DIR "/usr/local/share/emacs/19.34/site-lisp/emu") ;;; APEL-CFG ends here wanderlust-apel-82eb232/APEL-ELS000066400000000000000000000007311426577707700162660ustar00rootroot00000000000000;;; APEL-ELS --- list of APEL modules to install. -*-Emacs-Lisp-*- ;;; Commentary: ;; APEL-MK imports `apel-modules' from here. ;;; Code: (defvar apel-modules '(alist calist path-util filename install ;; "mule-caesar" is version-dependent. ;; moved to EMU-ELS. ;; mule-caesar ;; [obsoleted modules] If you would like to ;; install following, please activate them. ;; atype file-detect )) ;;; APEL-ELS ends here wanderlust-apel-82eb232/APEL-MK000066400000000000000000000141401426577707700161510ustar00rootroot00000000000000;;; APEL-MK --- installer for APEL. -*-Emacs-Lisp-*- ;;; Commentary: ;; DON'T EDIT THIS FILE; edit APEL-CFG instead. ;;; Code: ;;; Configuration variables. ;; Set these four variables in "APEL-CFG" or in "Makefile". ;; This variable will be detected automatically. (defvar PREFIX nil) ;; This variable will be detected automatically using PREFIX. ;; v18: (no standard site-lisp directory) ;; Emacs 19.28 and earlier: "PREFIX/lib/emacs/site-lisp" ;; Emacs 19.29 and later: "PREFIX/share/emacs/site-lisp" (defvar LISPDIR nil) ;; This variable will be detected automatically using PREFIX. ;; Emacs 19.31 and later: "PREFIX/share/emacs/VERSION/site-lisp" (defvar VERSION_SPECIFIC_LISPDIR nil) ;; This variable will be detected automatically. ;; XEmacs 21.0 and later: "/usr/local/lib/xemacs/xemacs-packages" (defvar PACKAGEDIR nil) ;; Install APEL modules to "apel" subdirectory. (defvar APEL_PREFIX "apel") ;; Install EMU modules to "emu" subdirectory if emacs supports some features. ;; If your emacs does not have `normal-top-level-add-subdirs-to-load-path' ;; but have `normal-top-level-add-to-load-path' and you want to use it in ;; "subdirs.el", put the following line to "APEL-CFG". ;; (setq EMU_PREFIX "emu") (defvar EMU_PREFIX "emu") ;; The directories where APEL and EMU modules will be installed. ;; These two variables will be generated from other variables above. (defvar APEL_DIR nil) ; LISPDIR/APEL_PREFIX (defvar EMU_DIR nil) ; VERSION_SPECIFIC_LISPDIR/EMU_PREFIX ;;; Configure, Compile, and Install. (defun config-apel () ;; Override everything you want. (load-file "APEL-CFG") ;; Override PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR with ;; command-line options. (let (prefix lisp-dir version-specific-lisp-dir) (and (setq prefix ;; Avoid using `pop'. ;; (pop command-line-args-left) (prog1 (car command-line-args-left) (setq command-line-args-left (cdr command-line-args-left)))) (or (string-equal "NONE" prefix) (setq PREFIX prefix))) (and (setq lisp-dir ;; Avoid using `pop'. ;; (pop command-line-args-left) (prog1 (car command-line-args-left) (setq command-line-args-left (cdr command-line-args-left)))) (or (string-equal "NONE" lisp-dir) (setq LISPDIR lisp-dir))) (and (setq version-specific-lisp-dir ;; Avoid using `pop'. ;; (pop command-line-args-left) (prog1 (car command-line-args-left) (setq command-line-args-left (cdr command-line-args-left)))) (or (string-equal "NONE" version-specific-lisp-dir) (setq VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir)))) ;; Load some APEL modules from this directory. (defvar default-load-path load-path) (setq load-path (cons (expand-file-name ".") load-path)) (require 'poe) (require 'path-util) (require 'install) ;; Import `apel-modules'. (load-file "APEL-ELS") ;; Import `emu-modules' and `emu-modules-to-compile'. (load-file "EMU-ELS") ;; Set PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR if not set yet. (or PREFIX (setq PREFIX install-prefix)) (or LISPDIR (setq LISPDIR (install-detect-elisp-directory PREFIX))) (or VERSION_SPECIFIC_LISPDIR (setq VERSION_SPECIFIC_LISPDIR (install-detect-elisp-directory PREFIX nil 'version-specific))) ;; The directories where APEL and EMU will be installed. (or APEL_DIR (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR))) (or EMU_DIR (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR))) (princ (format "\nLISPDIR=%s\n" LISPDIR)) (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR))) (defun compile-apel () (config-apel) ;; Compile emu modules first. (compile-elisp-modules emu-modules-to-compile ".") (compile-elisp-modules apel-modules ".")) (defun install-apel (&optional just-print) (config-apel) (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 () ;; Override everything you want. (load-file "APEL-CFG") ;; Override PACKAGEDIR with command-line option. (let (package-dir) (and (setq package-dir ;; Avoid using `pop'. ;; (pop command-line-args-left) (prog1 (car command-line-args-left) (setq command-line-args-left (cdr command-line-args-left)))) (or (string= "NONE" package-dir) (setq PACKAGEDIR package-dir)))) ;; Load some APEL modules from this directory. (defvar default-load-path load-path) (setq load-path (cons (expand-file-name ".") load-path)) (require 'poe) (require 'path-util) (require 'install) ;; Import `apel-modules'. (load-file "APEL-ELS") ;; Import `emu-modules' and `emu-modules-to-compile'. (load-file "EMU-ELS") ;; Set PACKAGEDIR if not set yet. (or PACKAGEDIR (setq PACKAGEDIR (install-get-default-package-directory))) (if PACKAGEDIR (princ (format "\nPACKAGEDIR=%s\n" PACKAGEDIR)) (error "XEmacs package system is not available"))) (defun compile-apel-package () (config-apel-package) ;; Compile emu modules first. (compile-elisp-modules emu-modules-to-compile ".") (compile-elisp-modules apel-modules ".")) (defun install-apel-package () (config-apel-package) (let ((just-print (install-just-print-p)) (dir (expand-file-name APEL_PREFIX (expand-file-name "lisp" PACKAGEDIR)))) (install-elisp-modules emu-modules "." dir just-print) (install-elisp-modules apel-modules "." dir just-print) (install-update-package-files "apel" dir just-print))) (defun what-where-apel () (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 wanderlust-apel-82eb232/ChangeLog.1000066400000000000000000003751101426577707700171200ustar00rootroot000000000000002020-08-24 Kazuhiro Ito * apel-ver.el (apel-ver): Change product name to 'APEL-LB'. 2020-08-18 Kazuhiro Ito Change non-ASCII text files's coding-system to UTF-8 * ChangeLog: Likewise. * README.ja: Likewise. 2020-06-13 Kazuhiro Ito * inv-23.el (invisible-region): Minor refactoring. 2020-06-13 Kazuhiro Ito * mcs-20.el (detect-mime-charset-string) (detect-mime-charset-region): Improve performance. 2020-06-07 Kazuhiro Ito * mcs-20.el (mime-charset-to-coding-system): Don't use find-coding-system. * mcs-e20.el (charsets-mime-charset-alist): Ditto. 2020-06-05 Kazuhiro Ito * APEL-MK (EMU_PREFIX): Assume Emacs 24 or later. 2020-06-05 Kazuhiro Ito * alist.el: Use lexical binding. 2020-06-03 Kazuhiro Ito * mule-caesar.el (mule-caesar-region): Minor refactoring. 2020-06-02 Kazuhiro Ito Strip use of function wrapping lambda. * alist.el (modify-alist): Likewise. * install.el (compile-elisp-modules, install-files): Likewise. * mcs-20.el (widget-mime-charset-prompt-value): Likewise. * mule-caesar.el (mule-caesar-region): Likewise. * product.el (product-list-products, product-string-verbose) (product-string): Likewise. * pym.el (defsubst-maybe-cond, defmacro-maybe-cond) (defun-maybe-cond): Likewise. * static.el (static-condition-case): Likewise. 2020-05-30 Kazuhiro Ito * atype.el: Remove unneeded dependencies. (replace-atype, delete-atype): Remove unused let-bindings. (set-atype): Use mapc instead of mapcar. * broken.el: Remove unneeded dependency. * filename.el (filename-control-p): Assume Emacs 24 or later. Remove unneeded dependencies. * install.el: Remove unneeded dependency. * inv-23.el: Remove unneeded dependency. * mcharset.el: Remove unneeded dependencies. * mcs-20.el: Remove unneeded dependencies. (mime-charset-coding-system-alist): Use coding-system-p instead of find-coding-system. * mcs-e20.el: Remove unneeded dependency. * mule-caesar.el: Remove unneeded dependencies. * path-util.el: Remove unneeded dependency. * pccl.el (ccl-usable): Remove unneeded dependencies. * pces-20.el (insert-file-contents-as-binary): Remove test. it is always alias to insert-file-contents-literally. * pces-e20.el: Require pym.el directlt. * pces.el: Remove unneeded dependencies. * pcustom.el: Assume Emacs 24 or later. Remove unneeded dependencies. * poem.el: Require pym.el instead of pces.el. 2020-05-23 Kazuhiro Ito Use lexical binding. * apel-ver.el: Likewise. * atype.el: Likewise. * broken.el: Likewise. * calist.el: Likewise. * emu.el: Likewise. * file-detect.el: Likewise. * filename.el: Likewise. * install.el: Likewise. * inv-23.el: Likewise. * invisible.el: Likewise. * mcharset.el: Likewise. * mcs-20.el: Likewise. * mcs-e20.el: Likewise. * mule-caesar.el: Likewise. * path-util.el: Likewise. * pccl-20.el: Likewise. * pccl.el: Likewise. * pces-20.el: Likewise. * pces-e20.el: Likewise. * pces.el: Likewise. * pcustom.el: Likewise. * poe.el: Likewise. * poem-e20.el: Likewise. * poem-e20_3.el: Likewise. * poem.el: Likewise. * product.el: Likewise. * richtext.el: Likewise. * static.el: Likewise. 2020-05-22 Kazuhiro Ito Suppress byte-compiler's warnings. * alist.el (modify-alist): Use mapc instead of mapcar. * emu.el: Remove defalias for tm-7.106. (insert-binary-file-contents): Add obsolete date. * filename.el (filename-japanese-to-roman-string): Use with-current-bufer instead of save-excursion + set-buffer. * inv-23.el (end-of-invisible): Add obsolete date. * mcharset.el: Add workaround for circular dependency. (default-mime-charset-for-write): Always set defalt value to utf-8. * mcs-20.el: Add workaround for circular dependency. Always requrie wid-edit.el. * mcs-e20.el (require): Don't require static.el. Add workaround for circular dependency. * pccl-20.el (defun): Use define-coding-system instead of make-coding-system. * pces-20.el: Disable byte-compile-dynamic option. * poem-e20.el: Disable byte-compile-dynamic option. * poem-e20_3.el: Disable byte-compile-dynamic option. * poem.el: Disable byte-compile-dynamic option. 2020-05-21 Kazuhiro Ito * apel-ver.el (apel-version): Use called-interactively-p instead of interactive-p. 2020-05-21 Kazuhiro Ito * richtext.el (richtext-initial-annotation, richtext-decode): Use fill-column instead of enriched-text-width function, which is not defined on (at least) Emacs. 2020-05-21 Kazuhiro Ito * poem-e20_3.el (string-to-char-list, string-to-int-list): Define as alias for string-to-list. 2020-05-21 Kazuhiro Ito Drop old platforms support, dependency on cl.el. Now supported Emacsen are version 24 and later. * EMU-ELS: Assume Emacs version 24 or later. * emu.el: Likewise. * install.el: Likewise. * invisible.el: Likewise. * mcharset.el: Likewise. * mcs-20.el: Likewise. * mcs-e20.el: Likewise. * pccl.el: Likewise. * pccl-20.el: Likewise. * pces.el: Likewise. * poe.el: Likewise. * poem.el: Likewise. * poem-e20_3.el: Likewise. * product.el: Likewise. * inv-19.el: Removed. * inv-xemacs.el: Removed. * mcs-ltn1.el: Removed. * mcs-xm.el: Removed. * mcs-xmu.el: Removed. * pces-raw.el: Removed. * pces-xfc.el: Removed. * pces-xm.el: Removed. * poe-xemacs.el: Removed. * poem-ltn1.el: Removed. * poem-xm.el: Removed. * calist.el (cl-lib): Use cl-lib instead of cl. (ctree-add-calist-with-default): Use cl-list* instead of list*. 2019-02-16 Kazuhiro Ito * mcs-20.el: Require pces.el (for find-coding-system). 2017-01-23 Kazuhiro Ito Assume emacs-major-version is always bigger than 19. Remove support for unsupported old platforms. * poem.el: Likewise. * poem-e20.el: Likewise. * poe.el: Likewise. * pces.el: Likewise. * pces-e20.el: Likewise. * pccl.el: Likewise. * mcharset.el: Likewise. * invisible.el: Likewise. * install.el: Likewise. * emu.el: Likewise. 2017-01-21 Kazuhiro Ito Remove support for Emacs 18-20.4, XEmacs 19 and Nemacs. * EMU-ELS (emu-modules): Likewise. * emu-mule.el: Removed. * env.el: Removed. * inv-18.el: Removed. * localhook.el: Removed. * mcs-nemacs.el: Removed. * mcs-om.el: Removed. * pccl-om.el: Removed. * pces-e20_2.el: Removed. * pces-nemacs.el: Removed. * pces-om.el: Removed. * poem-18: Removed. * poem-e20_2.el: Removed. * poem-nemacs.el: Removed. * poem-om.el: Removed. * timezone.el: Removed. * tinycustom.el: Removed. * tinyrich.el: Removed. 2016-04-27 Kazuhiro Ito * poe.el (plist-get, replace-match, plist-put) (split-string-default-separators, split-string): Fix misusage of "\" in docstring. 2014-10-28 Erik Hetzner * apel-pkg.el: New file. 2014-10-19 Erik Hetzner * pces-20.el: Only check for broken insert-file-contents-literally when literal-test-file is writable. 2014-06-05 Kazuhiro Ito * mcs-20.el (detect-mime-charset-from-coding-system): (Emacs23 and later) New cutomizable variable and function. (detect-mime-charset-region, detect-mime-charset-string): (Emacs23 and later) Use it. When `detect-mime-charset-from-coding-system' is non-nil, detect MIME charset by encodability in destination coding system. 2014-06-04 Kazuhiro Ito * mcs-20.el (detect-mime-charset-list): (Emacs23 and later) New function. (detect-mime-charset-string, detect-mime-charset-region): (Emacs23 and later) Refactored to build a list of unique characters without full list of characters in string or region. Use detect-mime-charset-list. 2014-06-04 Kazuhiro Ito * mcs-e20.el (mime-charset-list): Fix the case that MIME charset and coding system have n:1 relation. * mcs-xm.el (mime-charset-list): Likewise. 2014-06-03 Kazuhiro Ito * mcs-e20.el (coding-system-to-mime-charset): Check coding-system-to-mime-charset-exclude-regexp is non-nil. 2014-06-01 Kazuhiro Ito * mcs-e20.el (coding-system-to-mime-charset-exclude-regexp): New variable. (coding-system-to-mime-charset): Exclude non-standard charset from result. Cf. https://github.com/wanderlust/wanderlust/issues/61 2014-05-27 Juliusz Chroboczek * mcs-e20.el (charsets-mime-charset-alist): Prefer iso-8859-15 to iso-8859-6 and so on. Cf. https://github.com/wanderlust/wanderlust/issues/56 * mcs-xm.el (charsets-mime-charset-alist): Likewise. 2014-03-15 Kazuhiro Ito * install.el (install-prefix): Minor refactoring. 2014-03-13 Kazuhiro Ito * install.el (install-prefix): Handle new installing method on MS-Windows. 2014-02-22 Kazuhiro Ito * pces-20.el (insert-file-contents-as-raw-text) (insert-file-contents-as-raw-text-CRLF): Fix docstring. `insert-file-contents-as-binary' is alias for `insert-file-contents-literally' on Emacs 20 and XEmacs with coding-system.. 2014-02-22 Kazuhiro Ito Fix typo in docstring. * pces-20.el (insert-file-contents-as-raw-text) (insert-file-contents-as-raw-text-CRLF) * pces-e20_2.el (insert-file-contents-as-binary) (insert-file-contents-as-raw-text) (insert-file-contents-as-raw-text-CRLF) * pces-om.el (insert-file-contents-as-binary) * pces-raw.el (insert-file-contents-as-binary) 2014-01-11 Kazuhiro Ito * pym.el (static-if, static-when, static-unless) (static-condition-case, static-defconst, static-cond): Fix edebug specs. Suggested by Katsumi Yamaoka. Cf. http://thread.gmane.org/gmane.mail.wanderlust.general.japanese/9479 2013-08-07 Kazuhiro Ito * poe.el: Fix the case that `make-temp-file' is byte compiled with lexical-binding. Cf. https://github.com/ikazuhiro/apel/pull/3 2013-07-05 Tatsuya Kinoshita * mcs-20.el: Really check whether the mule-vesion variable is defined. 2013-07-04 Kazuhiro Ito * mcs-20.el: Check whether the mule-vesion variable is defined. Cf. https://github.com/ikazuhiro/apel/commit/328c02e022340b36dd7e5f9250c7f86d2bafd793 2013-03-24 Kazuhiro Ito * mcs-20.el (mime-charset-to-coding-system): Display the message and use charset name as coding system when `mime-charset-coding-system-alist' indicates invalid coding system. 2012-09-07 Kazuhiro Ito * mcs-e20.el (coding-system-to-mime-charset): Coding system's setting is preferred to mime-charset-coding-system-alist's value. Detect MIME name from mime-charset-coding-system-alist's value more permissively. 2012-08-08 Kazuhiro Ito * poe.el (next-command-event): Fix that Emacs 21 and later were treated as 'Emacs 19, 20.1 and 20.2'. 2012-07-28 Kazuhiro Ito * mcs-e20.el (charsets-mime-charset-alist): Do not use `iso-2022-jp-2'. 2012-07-28 Kazuhiro Ito * mcs-20.el (detect-mime-charset-string): (Emacs23 and later) New function. (detect-mime-charset-region): Use it. 2012-04-27 MORIOKA Tomohiko * README.en, README.ja (Download): Renamed from "Anonymous FTP"; modify for http://git.chise.org/elisp/dist/apel/. 2012-04-27 MORIOKA Tomohiko * README.ja (MAKEIT.BAT): Modify for apel-ja@lists.chise.org. 2012-04-27 MORIOKA Tomohiko * README.ja, README.en: Remove descriptions about CVS and add description about the new Git repository. 2012-04-27 MORIOKA Tomohiko * README.en (make.bat (for MS-DOS family)): Modify for apel-en@lists.chise.org. 2012-04-26 MORIOKA Tomohiko * README.ja, README.en (Bug reports): Modify for apel-{en|ja}@lists.chise.org. 2011-07-17 David Maus * tinycustom.el (defcustom): Use new style backquotes. * static.el (static-if, static-when, static-unless) (static-condition-case, static-defconst): Dto. * pym.el (defun-maybe, defmacro-maybe, defsubst-maybe) (defalias-maybe, defvar-maybe, defconst-maybe, defun-maybe-cond) (defmacro-maybe-cond, defsubst-maybe-cond, def-edebug-spec): Dto. * product.el (product-provide): Dto. * poem-om.el (char-next-index): Dto. * poem-nemacs.el (char-next-index): Dto. * poem-ltn1.el (char-next-index): Dto. * poe.el (save-current-buffer, with-current-buffer) (with-temp-file, with-temp-message, with-temp-buffer) (with-output-to-string): Dto. * poe-18.el (save-match-data): Dto. * pces-raw.el (as-binary-process, as-binary-input-file) (as-binary-output-file): Dto * pces-om.el (as-binary-process, as-binary-input-file) (as-binary-output-file): Dto. * pces-nemacs.el (as-binary-process, as-binary-input-file) (as-binary-output-file): Dto. * pccl.el (define-ccl-program): Dto. * filename.el (filename-special-filter-1): Dto. * broken.el (broken-facility, if-broken, when-broken) (unless-broken, check-broken-facility): Dto. [Patch created by HAMANO Kiyoto ] 2011-06-17 Kazuhiro Ito * mcs-20.el (detect-mime-charset-region): (Emacs23 and later) Do not check whether `charsets-mime-charset-alist' contains non charset symbol. * mcs-e20.el (charsets-mime-charset-alist): Remove non charset symbol for Emacs 23 and later. 2010-10-06 MORIOKA Tomohiko * mcs-xm.el (charsets-mime-charset-alist): - Don't use `japanese-jisx0208-1990' for `iso-2022-jp' - Don't use `iso-2022-jp-3' - Use `utf-8' instead of `shift_jis' for '(ascii latin-jisx0201 katakana-jisx0201 japanese-jisx0208-1990) - Don't use `iso-2022-jp-2' 2010-06-15 MORIOKA Tomohiko * APEL: Version 10.8 released. * apel-ver.el (apel-ver): Change APEL version to 10.8. 2010-03-19 Kazuhiro Ito * mcs-20.el (detect-mime-charset-region): Do not care priority of charsets on Emacs 23 and later. 2010-02-13 MORIOKA Tomohiko * EMU-ELS (emu-modules): Add setting for GNU Emacs 23 or later. * invisible.el: In GNU Emacs 23, inv-19.el overrides builtin function `invisible-p'. To fix the bug, require `inv-23' when running with GNU Emacs 23 or later. * inv-23.el: New file [copied from inv-19.el, but `invisible-p' is removed]. [Contributed by David Maus ] 2008-09-06 MORIOKA Tomohiko * poe.el (format-time-string): Fix problem on GNU Emacs 22.2 . 2007-02-14 MORIOKA Tomohiko * APEL: Version 10.7 released. * Makefile (VERSION): Update to 10.7. 2006-12-20 MORIOKA Tomohiko * APEL-MK (config-apel-package): Use `install-get-default-package-directory'. * install.el (install-get-default-package-directory): New function. 2006-12-20 MORIOKA Tomohiko * apel-ver.el (apel-ver): Change APEL version to 10.7. 2005-05-08 MORIOKA Tomohiko * poem-xm.el (char-valid-p): New alias. 2006-12-13 Katsumi Yamaoka * APEL-MK (config-apel-package): Avoid an error concerning PACKAGEDIR with old XEmacs that doesn't use the package system. 2006-12-12 Katsumi Yamaoka * install.el (install-update-package-files): Use batch-update-directory-autoloads if it is available instead of batch-update-directory. 2006-12-11 Katsumi Yamaoka * APEL-MK (config-apel-package): Check for (early|late|last)-package-hierarchies and configure-package-path as well as (early|late|last)-packages. 2006-11-13 Katsumi Yamaoka * time-stamp.el: Remove. Suggested by Stephen Gildea, the maintainer of time-stamp.el. * EMU-ELS (emu-modules): Exclude it. * README.en, README.ja: Remove time-stamp.el entry. 2006-04-24 Katsumi Yamaoka * install.el (install-detect-elisp-directory): Fix 2002-11-29 change; assume default-load-path contains nil; use regexp-quote to compare directories even in Emacs. 2005-12-06 Ville Skyttä * poe.el (minor-mode-overriding-map-alist): Doc fix. * product.el (product-version-as-string): Doc fix. 2002-11-29 Ben Wing * install.el (install-detect-elisp-directory): Fix problems handling backslashes in filenames (Windows). 2005-06-06 Katsumi Yamaoka * filename.el (filename-special-filter-1): New macro defined for filename-special-filter to use aref instead of sref for the recent Emacsen. (filename-special-filter): Use it. 2005-06-05 Tatsuya Kinoshita * poe-xemacs.el: Load `timer' even if `timer-funcs' exists. 2005-05-10 TAKAHASHI Kaoru * poe.el (split-string): Import from Emacs 22. Add omit-nulls argument. 2005-05-03 Tatsuya Kinoshita * poem.el (characterp): Use `char-valid-p' if it exists. * poem.el (char-or-char-int-p): Ditto. 2005-02-23 Katsumi Yamaoka * poe-xemacs.el (run-at-time): Attempt to load `timer-funcs' before `timer'. 2004-09-27 Katsumi Yamaoka * README.en, README.ja (CVS): Remove the description about developers' pserver access. 2004-02-06 Katsumi Yamaoka * calist.el (use-calist-package): Add missing arg to `format'. 2004-01-26 Katsumi Yamaoka * Makefile: Make `elc' into the default entry. 2004-01-07 Katsumi Yamaoka * poe-xemacs.el (run-at-time): Don't use `defadvice' in order to avoid a conflict with the Gnus version. 2003-12-12 Katsumi Yamaoka * poe-xemacs.el (run-at-time): Fully implement it for the recent XEmacsen when the fsf-compat package is not available. (run-at-time-tick-tock): Check closely whether a bug is in `start-itimer'. 2003-12-11 Katsumi Yamaoka * poe-xemacs.el (run-at-time): Redefine it to make it punctual. 2003-09-05 Katsumi Yamaoka * poem-xm.el (char-length): Don't use `defun-maybe' to define it since this module may be installed as the XEmacs package which should be usable by all the XEmacs 21.x series. 2003-07-05 Yuuichi Teranishi * APEL: Version 10.6 released. * apel-ver.el (apel-ver): Change APEL version to 10.6. 2003-07-03 Shuhei KOBAYASHI * poe.el (make-temp-file) [2-args make-temp-file]: Don't use octal number for file modes. * poe.el (toplevel): Fixed the compile-time check for the definition of `make-temp-file' [apel-ja: 00874]. (make-temp-file) [no make-temp-file, single-user system]: Don't use `set-default-file-modes' nor `default-file-modes'. 2003-07-03 Yuuichi Teranishi * poe-18.el (make-directory-internal): Signal an error according to the exit status of mkdir. (delete-directory): New function. (write-region): Ditto. 2003-06-06 Yuuichi Teranishi * APEL: Version 10.5 released. * apel-ver.el (apel-ver): Change APEL version to 10.5. 2003-05-29 Yuuichi Teranishi * poe.el (make-temp-file) [no make-temp-file, single-user system]: Modified for OS/2. 2003-05-22 Yuuichi Teranishi * install.el (install-prefix): Change value for Meadow2 and NTEmacs. 2003-05-20 Shuhei KOBAYASHI * poe.el (make-temp-file) [no make-temp-file, multi-user system]: Modified comments. 2003-05-19 Shuhei KOBAYASHI * poe.el (make-temp-file) [no make-temp-file, multi-user system]: Flatten nested `unwind-protect'. Fixed comments. 2003-05-15 Yuuichi Teranishi * poe.el (make-temp-file): New function. 2002-11-05 MORIOKA Tomohiko * mcs-20.el (mcs-region-repertoire-p): New function for UTF-2000 implementations. (mcs-string-repertoire-p): Likewise. (detect-mime-charset-region): New implementation for UTF-2000 implementations. (detect-mime-charset-string): New function for UTF-2000 implementations. 2002-11-03 Yoichi NAKAYAMA * filename.el (filename-filters): Change default value to nil. 2002-10-04 Katsumi Yamaoka * APEL: Version 10.4 released. 2002-10-03 Takeshi Morishima * install.el (install-elisp-module): Delete an elc file if the optional 5th argument `del-elc' is given. (install-elisp-modules): Allow the optional 5th argument `del-elc' and pass it to `install-elisp-module'. 2002-10-02 Katsumi Yamaoka * mcs-ltn1.el (mime-charset-to-coding-system): Allow the 2nd arg. * mcs-nemacs.el (mime-charset-to-coding-system): Ditto. 2002-07-13 Daiki Ueno * mcs-xm.el (encode-mime-charset-string): Use `defun' instead of `defsubst' 2002-07-10 Adrian Aichner * emu.el: Conditionalise defalias 'tl:overlay-buffer on 'tl:overlay-buffer, not 'tl:overlay-put. 2002-06-26 Katsumi Yamaoka * mcs-e20.el (charsets-mime-charset-alist): Remove nil's from the default value. * mcs-xm.el (charsets-mime-charset-alist): Ditto. 2002-06-21 Katsumi Yamaoka * mcs-e20.el (charsets-mime-charset-alist): Add Latin8 and Latin9 charsets. Suggested by Tatsuya Kinoshita . * mcs-xm.el (charsets-mime-charset-alist): Ditto. 2002-05-14 Katsumi Yamaoka * pccl.el (ccl-usable): Make non-MULE XEmacs don't require `ccl' even if this file is mis-compiled for XEmacs with MULE. 2002-03-23 Nix * poem-ltn1.el (truncate-string): Act like the real `truncate-string': do not fail if the string is shorter than the max length. 2002-04-30 Katsumi Yamaoka * poem-xm.el (string-to-char-list): Revive it again. 2002-04-25 Katsumi Yamaoka * poem-xm.el (string-to-char-list): Remove. It is restored in XEmacs CVS. 2002-04-15 Katsumi Yamaoka * poem-xm.el (char-length): New function. (string-to-char-list): New function. 2002-03-04 Katsumi Yamaoka * pym.el: Add a note that `def*-maybe' might not provide functions or variables at run-time. 2001-12-05 Katsumi Yamaoka * tinycustom.el (custom-declare-face): New function. (defface): Use it. 2001-10-15 Katsumi Yamaoka * poe.el (format-time-string): Support the 3rd arg `universal'. (support-timezone-in-numeric-form-and-3rd-arg): Renamed from `support-timezone-in-numeric-form'; support the 3rd arg `universal'. 2001-10-12 TSUCHIYA Masatoshi * poe.el (format-time-string): Support the construct `%z'. (support-timezone-in-numeric-form): New advice. 2001-09-09 Daiki Ueno * pccl.el (transform-make-coding-system-args): Follow old backquote style. 2001-07-20 NAKAJIMA Mikio * install.el (install-file, install-elisp-module): Set file modes according to `install-overwritten-file-modes'. * poe-18.el (defalias): Remove alias to fset and define it by using `defun'. 2001-06-23 NAKAJIMA Mikio * install.el (install-files): Do not make DEST directory when JUST-PRINT is non-nil. 2001-06-20 Akihiro MOTOKI * install.el (install-elisp-modules): Do not make DEST directory when JUST-PRINT is non-nil. 2001-06-01 Tanaka Akira * pccl.el (ccl-compat): Since mule 2.3 accepts `t' and `nil' as `type' argument, so arguments conversion shouln't applied in such case. 2001-05-24 Tanaka Akira * pccl.el (accept-long-ccl-program): Don't advice for Emacs 21. (transform-make-coding-system-args): New emulating function. (ccl-compat): new advice for `make-coding-system' of Emacs 20 or former to handle XEmacs style CCL coding system definition. 2001-04-29 Shuhei KOBAYASHI * poe.el (remassoc, remassq, remrassoc, remrassq): Fixed. 2001-03-26 Yuuichi Teranishi * EMU-ELS: Add checking whether the native timezone.el has an old date string parser. 2001-03-23 TSUCHIYA Masatoshi * timezone.el (timezone-parse-date): Import from Emacs-20.7. 2001-02-23 Katsumi Yamaoka * emu.el (char-category for XEmacs): Don't use `int-char' when the function `char-category-list' returns a list of characters. 2001-02-01 NAKAJIMA Mikio * README.ja: Updated as to MAKEIT.BAT and MAKE1.BAT. * make1.bat: New file. * makeit.bat: Ditto. * make.bat: Removed. 2001-01-18 Katsumi Yamaoka * inv-19.el (next-visible-point): Return the value of `point-max' when the position of next `invisible' property change is not found. 2001-01-15 Yuuichi Teranishi * poe-18.el (floor): Removed. * timezone.el (timezone-floor): New function. (timezone-fix-time-2): Use `timezone-floor' instead of `floor'. 2000-12-31 NAKAJIMA Mikio * README.ja: Typo fixed. 2000-12-30 NAKAJIMA Mikio * APEL: Version 10.3 released. * apel-ver.el (apel-ver): Change APEL version to 10.3. * Makefile : Apply patch from TAKAHASHI Kaoru of Message-Id: <86vgs2s3cp.wl@tomoko.nantnaq.kaisei.org>. 2000-12-28 Tanaka Akira * 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 * static.el: Doc-string fixed. 2000-12-28 MORIOKA Tomohiko * 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 * 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 * 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 を利用する (MS-DOS 系 OS の場合)): Ditto. 2000-12-22 MORIOKA Tomohiko * mcs-e20.el: Require `pces'. 2000-12-22 Yuuichi Teranishi * timezone.el (timezone-time-from-absolute): Use `%' instead of `mod'. 2000-12-21 Katsumi Yamaoka * poe-18.el (numberp, mod): Removed. 2000-12-21 MORIOKA Tomohiko * mcharset.el (default-mime-charset-for-write): Require `pces' for `find-coding-system'. 2000-12-21 NAKAJIMA Mikio * poe-18.el (minor-mode-alist): Removed. (minor-mode-overriding-map-alist): Move to poe.el. 2000-12-20 MORIOKA Tomohiko * 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 * 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 * 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 * 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 * 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 * make.bat: Do not echo. * poe-18.el (set-frame-heigth): Bug fixed. 2000-12-16 NAKAJIMA Mikio * 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 * 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 * Makefile (tar): Remove .cvsignore. Use `cvs tag -R' instead of `cvs tag -RF'. 2000-12-15 Katsumi Yamaoka * 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 * alist.el (del-alist): Simplified. 2000-12-14 Mikio Nakajima * pym.el (static-if): Put t on edebug spec instead of if. 2000-12-13 Kenichi Handa * alist.el: Fix and add DOCs and comments; fix coding style. 2000-04-26 MORIOKA Tomohiko * 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 * make.bat: New file. * .cvsignore: Ditto. 2000-11-09 Katsumi Yamaoka * path-util.el (add-path): Check for both "path" and "path/". 2000-10-06 Shuhei KOBAYASHI * poe.el (require): Update `current-load-list'. 2000-10-10 Keiichi Suzuki * product.el (product-version-as-string): New function. (product-string-1): Use `product-version-as-string'. 2000-08-10 MORIOKA Tomohiko * poem-e20_3.el: Require `pym'. 2000-07-12 MORIOKA Tomohiko * alist.el (vassoc): New function [to be compatible with XEmacs 21.2.32 or later]. 2000-05-25 Tanaka Akira * README.en, README.ja: Update for CVS via SSH. 2000-05-24 Katsumi Yamaoka * pces-raw.el (encode-coding-string, decode-coding-string): Return a copy of string. 2000-04-25 Katsumi Yamaoka * EMU-ELS (emu-modules): Don't include `pccl-20' for XEmacs 20 and earlier. 2000-03-25 Mikio Nakajima * 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 * poe.el (format-time-string): Fix problem when `format' contains "%d" or "%D". 2000-03-04 Daiki Ueno * poe.el (remassq,remassoc,remrassoc): Rewrite. (remrassq): New function. 2000-03-01 Yuuichi Teranishi * APEL: Version 10.2 released. 2000-02-29 Yuuichi Teranishi * poe-18.el (current-time-string): Fixed leap year's day counting bug. 2000-02-28 Katsumi Yamaoka * emu.el (enriched-encode): Do nothing for it if FSF Emacs 19.28 and earlier or XEmacs 19.13 and earlier is used. 2000-02-25 Katsumi Yamaoka * emu.el (enriched-encode): Allow the 3rd argument ORIG-BUF for old Emacsen. 2000-02-21 Makoto Nakagawa * poe.el (format-time-string): New function for Emacs 19.28 and earlier. (format-time-month-list): New constant for `format-time-string'. (format-time-week-list): New constant for `format-time-string'. 2000-02-21 Daiki Ueno * poe-18.el (walk-windows): New function. * poe-xemacs.el (set-extent-properties): New function. (run-at-time): New function. (cancel-timer): New function. (with-timeout-handler): New function. (with-timeout): New function. * poe.el (remassq): New function. (remassoc): New function. (remrassoc): New function. (get-buffer-window-list): New function. (save-selected-frame): New macro. 2000-02-10 Yuuichi Teranishi * poe.el (replace-match): Redefined to add `STRING' optional argument. 2000-02-07 Yuuichi Teranishi * poe-18.el (mod): Define as an alias for `%'. (overlayp, move-overlay, delete-overlay, overlay-start, overlay-end, overlay-buffer, overlay-properties, overlays-at, overlays-in, next-overlay-change, previous-overlay-change, overlay-lists, overlay-recenter, overlay-get): Define as null function. 2000-02-05 MORIOKA Tomohiko * mcs-20.el (mime-charset-coding-system-alist): Add `iso-2022-jp-3'. 2000-02-04 Katsumi Yamaoka * poe.el (read-file-name): Replacement for Emacs 19.28 and earlier (except for Emacs 18) or XEmacs 19.13 and earlier, for compatibility. 2000-02-04 Yuuichi Teranishi * timezone.el (timezone-floor): Eliminated. (timezone-fix-time-2): Use `floor' instead of `timezone-floor'. * poe-18.el (current-time): Fixed leap year count bug. (set-time-zone-rule): New function. (current-time-zone): Use `set-time-zone-rule'. (floor): New function. (window-live-p): New function. (read-from-minibuffer): Redefined to add `HIST' optional argument. (accept-process-output): Redefined to add `TIMEOUT' and `TIMEOUT-MSECS' optional arguments. (get-buffer-window): Redefined to add `FRAME' optional argument. * poe.el (completing-read): Redefined to adjust optional arguments for some emacsen. 2000-01-31 Mikio Nakajima * poe-18.el (defalias): Remove its definition as a function and define it as an alias for `fset'. (auto-fill-function): Declare with defvar-maybe. (unread-command-event): Ditto. (unread-command-events): Ditto. (insert-and-inherit): Defile with defalias. (insert-before-markers-and-inherit): Ditto. (number-to-string): Ditto. 2000-01-30 Mikio Nakajima * poe-18.el (window-minibuffer-p): New function. 2000-01-30 Tsukamoto Tetsuo * pces-om.el (insert-file-contents-as-coding-system): Ignore BEG, END and REPLACE under Emacs 18, or Mule 1.1 or earlier. (insert-file-contents-as-binary): Ditto. 2000-01-27 Shuhei KOBAYASHI * APEL-CFG: Typo. 2000-01-26 Shuhei KOBAYASHI * poe-18.el (set-match-data): New alias for `store-match-data'. (save-match-data-internal): New variable. (save-match-data): New macro; use above. (defalias): Docstring sync. (put-text-property): Typo. 2000-01-23 Tsukamoto Tetsuo * poe-18.el (byte-code-function-p): Check if the CDR of OBJECT is a cons cell. 2000-01-21 Yuuichi Teranishi * APEL: Version 10.1 released. 2000-01-19 Shuhei KOBAYASHI * poe.el (require): Handle `file-error' only. 2000-01-12 OKAZAKI Tetsurou * EMU-ELS (emu-modules): Add `pccl' even if `mule' is not provided. 2000-01-05 Katsumi Yamaoka * Makefile, README.en, README.ja: Update for the new CVS server. 1999-12-24 Shuhei KOBAYASHI * poe.el (functionp): Define it before loading "localhook". 1999-12-24 Yuuichi Teranishi * APEL: Version 10.0 released. 1999-12-24 Keiichi Suzuki * apel-ver.el: Fix file header. 1999-12-23 Yuuichi Teranishi * timezone.el (timezone-abs): Eliminated. (timezone-zone-to-minute): Use `abs' instead of `timezone-abs'. * poe-18.el (current-time-zone): Use `abs'. 1999-12-23 Keiichi Suzuki * product.el: Fix file header. `checkdoc' fix. * apel-ver.el: Fix file header. 1999-12-22 Shuhei KOBAYASHI * APEL-ELS, EMU-ELS: product.el, apel-ver.el, time-stamp.el, and timezone.el are version-dependent. * product.el (emacs-major-version, emacs-minor-version): Moved from poe.el. * poe.el (emacs-major-version, emacs-minor-version): Removed. * pym.el: Add product information. 1999-12-22 Yuuichi Teranishi * poe.el (string-to-int): Commented out an alias for `string-to-number'. 1999-12-13 Katsumi Yamaoka * poe-18.el: Fix open parenthesis. * README.ja: Sync up with README.en. * README.en: Fix what versions of Emacsen can use `normal-top-level-add-to-load-path'. 1999-12-12 Shuhei KOBAYASHI * APEL-MK: Modified comments. * poe.el: Modified comments. * pym.el: Modified comments. (defalias-maybe): Don't update `current-load-list'. 1999-12-06 Shuhei KOBAYASHI * pym.el (subr-fboundp): Reverted; but considered as obsolete. 1999-12-05 Shuhei KOBAYASHI * poe-18.el (numberp): New function; alias for `integerp'. (abs): New function. * poe-18.el (byte-code-function-p): Docstring sync. (cyclic-function-indirection): New error symbol. (indirect-function): New function; use above symbol. 1999-11-30 Shuhei KOBAYASHI * poe-18.el (current-time-string): New local variable `lyear' for leap year; renamed from `uru' and bind locally. * poe.el (emacs-major-version, emacs-minor-version): Define at compile-time as well as at load-time in order to do compile- time version check. (tcp): Require if `open-network-stream' is not available; moved from "pces.el". * pym.el: Removed comment. 1999-11-28 Shuhei KOBAYASHI * poe.el, poe-18.el, poe-xemacs.el, pym.el: Modified comments. 1999-11-25 Shuhei KOBAYASHI * poe-18.el: Modified comments. (buffer-undo-list, data-directory): Use `defvar'. (generate-new-buffer-name): Use `defun'. 1999-11-22 Shuhei KOBAYASHI * pccl-20.el, pccl-om.el: Removed "[SOURCE INFO]" style comment from docstrings. * pccl-om.el, localhook.el, pcustom.el: Updated header. 1999-11-13 Shuhei KOBAYASHI * Removed "[SOURCE INFO]" style comment from docstrings. Most of them are out of sync, and now there are some other ways to get such information. * poe-18.el: Rearranged. (lambda): New macro. (get-char-property, next-single-property-change, previous-property-change, previous-single-property-change, text-property-any, text-property-not-all, next-char-property-change, previous-char-property-change): Define as null function. * poe-xemacs.el: Rearranged. (eval-after-load): Moved to poe.el. * poe.el: Rearranged; reduce load-time check. Moved many macros to pym.el. (require): New function; emulate optional 3rd arg. (plist-get, plist-put): New functions. (string-to-number): New function. (push, pop): New macros. (assoc-default): New function. (eval-after-load, eval-next-after-load): New functions; moved from poe-xemacs.el and modified for Emacs 19.28. (buffer-file-type): New variable. (with-temp-message, with-output-to-string): New macros. (combine-after-change-calls): Docstring sync. (match-string-no-properties): New function. (convert-standard-filename): Do load-time check. 1999-11-13 Shuhei KOBAYASHI * pym.el (defsubst-maybe-cond): New macro. * pym.el (defun-maybe, defmacro-maybe, defsubst-maybe, defalias-maybe, defvar-maybe, defconst-maybe, defun-maybe-cond, defmacro-maybe-cond, def-edebug-spec): Moved from poe.el. * EMU-ELS (emu-modules): Added 'pym. * pym.el: New file. 1999-11-13 Shuhei KOBAYASHI * APEL-MK, APEL-CFG, APEL-ELS, EMU-ELS, Makefile: Revised. 1999-11-12 Shuhei KOBAYASHI * inv-18.el, inv-19.el, inv-xemacs.el: Require 'poe in each submodule. (enable-invisible): Changed to function. (disable-invisible): Renamed from `end-of-invisible'. Changed to function. (end-of-invisible): Make obsolete. 1999-11-12 Shuhei KOBAYASHI * README.en (Version specific information): New section. (Bug reports): Updated description of APEL mailing-lists. * pcustom.el [old custom]: Refer to it. * tinycustom.el: checkdoc. 1999-11-12 Shuhei KOBAYASHI * APEL-MK: Require 'path-util explicitly. 1999-11-12 Shuhei KOBAYASHI * APEL-MK, APEL-CFG, APEL-ELS, EMU-ELS: Rewritten. * install.el: Removed v18 stuff; now we require 'poe. Modified some comments. 1999-12-22 Yuuichi Teranishi * timezone.el: Modified comments. (toplevel): Require 'product. 1999-12-21 Shuhei KOBAYASHI * apel-ver.el: Footer fix. 1999-12-21 Yuuichi Teranishi * poe-18.el (current-time-zone): New function. (current-time-world-timezones, current-time-local-timezone): New variables. (current-time-string): Use `current-time-zone' to get local timezone. (current-time): Ditto. * timezone.el: New file. * APEL-ELS (apel-modules): Add `timezone' if existing timezone.el has y2k problem. * product.el (product-string-1): Use `int-to-string' instead of `number-to-string'. 1999-12-20 Shuhei KOBAYASHI * apel-ver.el, product.el: Header fix. 1999-12-20 Keiichi Suzuki * alist.el, atype.el, broken.el, calist.el, emu-mule.el, emu.el, env.el, file-detect.el, filename.el, install.el, inv-18.el, inv-19.el, inv-xemacs.el, invisible.el, localhook.el, mcharset.el, mcs-20.el, mcs-e20.el, mcs-ltn1.el, mcs-nemacs.el, mcs-om.el, mcs-xm.el, mcs-xmu.el, mule-caesar.el, path-util.el, pccl-20.el, pccl-om.el, pccl.el, pces-20.el, pces-e20.el, pces-e20_2.el, pces-nemacs.el, pces-om.el, pces-raw.el, pces-xfc.el, pces-xm.el, pces.el, pcustom.el, poe-18.el, poe-xemacs.el, poe.el, poem-e20.el, poem-e20_2.el, poem-e20_3.el, poem-ltn1.el, poem-nemacs.el, poem-om.el, poem-xm.el, poem.el, richtext.el, static.el, time-stamp.el, tinycustom.el, tinyrich.el (TopLevel): Add product information. * Sync up with apel-product. * 1999-11-12 Keiichi Suzuki * product.el (product-define): Add new slot `version-string'. (product-provide): Likewise. (product-version-string): New function. (product-set-version-string): New function. (product-string-1): Use `version-string'. (product-for-each): New function. (product-string): Separate `product-string' and `product-string-verbose'. (product-string-verbose): Likewise. (product-parse-version-string): New function. * 1999-11-12 Shuhei KOBAYASHI * product.el: Some `checkdoc' fixes. (product-version>=): Eliminate local variable. * 1999-11-12 Keiichi Suzuki * product.el: New file. * apel-ver.el: New file. * APEL-ELS (apel-modules): Add `apel-ver' and `product'. 1999-11-25 Yuuichi Teranishi * poe-18.el (current-time-string, current-time): New functions. 1999-11-11 Shuhei KOBAYASHI * localhook.el, pcustom.el: checkdoc. 1999-11-09 Katsumi Yamaoka * pcustom.el: Warn if the new custom library is not found at the compile time. * APEL-CFG: Don't add the path of "custom" to `load-path'. * poe-18.el (file-executable-p): Returns nil if the file does not exist. 1999-11-08 Yuuichi Teranishi * poe-18.el (put-text-property, next-property-change, text-properties-at): Define as null function. 1999-11-02 Katsumi Yamaoka * poe-18.el (add-text-properties, get-text-property): Define as null function. (file-executable-p): New function. 1999-10-22 Katsumi Yamaoka * APEL: Version 9.23 released. 1999-10-22 Katsumi Yamaoka * APEL-MK (compile-apel-package): Compile `emu-modules-to-compile' instead of `emu-modules'. (compile-apel): Likewise. * EMU-ELS (emu-modules-to-compile): New variable which is used for compiling in APEL-MK. If the feature `utf-2000' is provided, `mcs-xmu' is removed from its value even if `emu-modules' contains it. (emu-modules-not-to-compile): New variable. * mcs-xm.el (mime-iso646-character-unification-alist): Move to mcs-xmu.el. (mime-unified-character-face): Move to mcs-xmu.el. (mime-character-unification-limit-size): Move to mcs-xmu.el. (decode-mime-charset-region-with-iso646-unification): Move to mcs-xmu.el. * mcs-xmu.el: New file. 1999-10-22 Katsumi Yamaoka * EMU-ELS (pces-modules): Don't check for the feature `mule' whether `pces-xfc' is required. * pces.el: Likewise. * mcs-xm.el: (decode-mime-charset-region-with-iso646-unification): Narrow to the region while decoding; bind `case-fold-search' to nil. (mime-character-unification-limit-size): Make it can also be nil which means the size is unlimited. 1999-10-14 Mikio Nakajima * mcs-xm.el (decode-mime-charset-region-with-iso646-unification): Don't put `mime-unified-character-face' to unified text if it is nil. (mime-character-unification-limit-size): Fix doc string. 1999-10-13 Katsumi Yamaoka * poe.el (file-coding): Provide it for XEmacs 20.4 or earlier with MULE. 1999-10-13 Daiki Ueno * EMU-ELS (pces-modules): Add `pces-raw' if file-coding feature is not available in a XEmacs-without-MULE. * pces.el: Require `pces-raw' if file-coding feature is not available in a XEmacs-without-MULE. 1999-10-04 Katsumi Yamaoka * path-util.el (exec-installed-p): Add parens. 1999-10-04 Keiichi Suzuki * path-util.el (exec-installed-p): Use `file-executable-p' instead of `file-exists-p'. When FILE already inculdes suffix in `exec-suffix-list', do not expand file name with `exec-suffix-list'. (module-installed-p): Do not use `exec-installed-p'. 1999-09-27 MORIOKA Tomohiko * mcs-xm.el: Use `unless' instead `static-unless' to share *.elc between UTF-2000 and non-UTF-2000. 1999-09-24 Mikio Nakajima * pces-om.el (find-coding-system): New inline function. 1999-09-23 MORIOKA Tomohiko * mcs-20.el (mime-charset-coding-system-alist): Use coding-system `tis-620' instead of `tis620'. * mcs-xm.el (charsets-mime-charset-alist): Add setting for `tis-620'. 1999-09-22 MORIOKA Tomohiko * mcs-20.el (mime-charset-coding-system-alist): Add `cp874'. 1999-09-21 Katsumi Yamaoka * EMU-ELS (pces-modules): Add `pces-xfc' if the feature `mule' is provided even though the feature `file-coding' is not provided. * pces.el: Require `pces-xfc' if the feature `mule' is provided even though the feature `file-coding' is not provided. 1999-09-13 MORIOKA Tomohiko * APEL: Version 9.22 released. 1999-09-12 Mikio Nakajima * poe.el (defmacro-maybe-cond): Add edebug spec. 1999-09-12 Yoshiki Hayashi * poe.el (defun-maybe-cond): Add edebug spec. 1999-09-09 MORIOKA Tomohiko * mcs-xm.el (mime-charset-decoder-alist): Don't use `decode-mime-charset-region-with-iso646-unification' if running XEmacs-UTF-2000. (mime-iso646-character-unification-alist): Don't define if running XEmacs-UTF-2000. (mime-unified-character-face): Likewise. (mime-character-unification-limit-size): Likewise. (decode-mime-charset-region-with-iso646-unification): Likewise. 1999-09-09 Katsumi Yamaoka * tinycustom.el (defface): Allow `type' in SPEC; enrich doc string. 1999-09-08 Katsumi Yamaoka * tinycustom.el (frame-background-mode): New variable. * poe.el (frame-background-mode): Move to tinycustom.el. 1999-09-03 Katsumi Yamaoka * tinycustom.el (defface): Set the face attributes according to SPEC. * poe.el (frame-background-mode): New variable. 1999-09-02 MORIOKA Tomohiko * poe.el: Delete autoload setting for `filename'. (convert-standard-filename): Require `filename'. 1999-09-02 Katsumi Yamaoka * poe.el (convert-standard-filename): Rearrange. 1999-09-01 Katsumi Yamaoka * poe.el (convert-standard-filename): New function. 1999-08-27 MORIOKA Tomohiko * install.el (emacs-major-version): Deleted. (emacs-minor-version): Deleted. * path-util.el: Require `poe'. [cf. ] 1999-08-27 Katsumi Yamaoka * install.el: Require `poe'. * path-util.el (directory-files): Don't redefine. 1999-08-26 Katsumi Yamaoka * path-util.el (directory-files): Emulate as Emacs 19 or later to accept the optional fourth argument for old Emacsen. It is needed here for compiling other packages. * APEL-ELS (apel-modules): Add `time-stamp' if Emacs version is less than 19.16. * time-stamp.el: New file imported from Emacs 19.28. 1999-08-26 Katsumi Yamaoka * tinycustom.el (defface): Quote the argument of `make-face'. 1999-08-25 Katsumi Yamaoka * APEL-CFG: Don't provide `emu'; add the latest path of "custom" to `load-path'. 1999-08-25 MORIOKA Tomohiko * install.el: Don't require `emu'. (emacs-major-version): New variable [for old emacsen]. (emacs-minor-version): New variable [for old emacsen]. 1999-08-25 MORIOKA Tomohiko * poe-18.el (inline): New implementation using `defmacro'. 1999-08-24 MORIOKA Tomohiko * APEL: Version 9.21 released. 1999-08-24 Taiji Can * poem-nemacs.el: Use `char-width' instead of `char-columns'. 1999-08-24 MORIOKA Tomohiko * poe-18.el (inline): Use `defalias' instead of `defalias-maybe'. 1999-08-21 Mikio Nakajima * poe.el (rassoc): Just ignore elements of LIST that are not conse cell and add doc string according to its features. 1999-08-20 Yuuichi Teranishi * poe-18.el (delete): Return nil when argument 'list' is nil. 1999-08-17 Yoshiki Hayashi * README.en, README.ja (Anonymous FTP): New section. * README.ja (CVS): Translate. 1999-07-06 MORIOKA Tomohiko * APEL: Version 9.20 released. 1999-06-27 OKUNISHI Fujikazu * EMU-ELS: Install env.el for v18. 1999-06-25 Katsumi Yamaoka * poem-xm.el (split-char): Don't redefine for the recent XEmacs. 1999-06-23 Shuhei KOBAYASHI * poe.el (defun-maybe, defmacro-maybe, defalias-maybe, defsubst-maybe, defun-maybe-cond, defmacro-maybe-cond): Set `current-load-list' explicitly. 1999-06-22 Shuhei KOBAYASHI * atype.el: Require 'poe. * mule-caesar.el: Require 'poe and 'poem. * filename.el: Require 'poe and 'poem. Don't require 'cl. (filename-special-filter): Eliminate `assoc-if'. 1999-06-22 Shuhei KOBAYASHI * install.el: Require 'emu for backward compatibility. (defun-maybe): New macro; imported from poe.el. (make-directory-internal, make-directory): New functions; imported from poe-18.el. * APEL-CFG: Provide 'emu to prevent install.el from loading emu while compiling APEL itself. 1999-06-20 Shuhei KOBAYASHI * install.el: Require 'poe instead of 'emu. (install-prefix): Don't use `running-emacs-18' or `running-xemacs'. (install-detect-elisp-directory): Eliminate local variable `dir'. Don't use `running-emacs-19_29-or-later' or `running-xemacs'. * mcs-20.el: Require 'pcustom instead of 'custom. * EMU-ELS: Don't use `running-emacs-19_29-or-later' or `running-xemacs-19_14-or-later.' 1999-06-18 Tanaka Akira * static.el (static-condition-case): Wrap lambda expression by `function'. * calist.el (calist-default-field-match-method): Use `function' instead of #'. 1999-06-17 Shuhei KOBAYASHI * pcustom.el: Load "custom" anyway. 1999-06-16 Katsumi Yamaoka * static.el (static-cond): New macro. 1999-06-11 Tanaka Akira * static.el (static-defconst): New macro. 1999-06-04 MORIOKA Tomohiko * pces-xfc.el (insert-file-contents-literally-treats-binary): New facility. (insert-file-contents-literally-treats-file-name-handler): New facility. (insert-file-contents-as-binary): Define as an alias for `insert-file-contents-literally' if it is not broken. 1999-06-04 MORIOKA Tomohiko * EMU-ELS (pces-modules): New variable. * poem.el: Require pces.el. * pces.el: New module. * poem-xfc.el: Deleted. * pces-xfc.el: New module. * pces-nemacs.el: New module. * poem-nemacs.el: Split off features about coding-system to pces-nemacs.el. * pces-om.el: New module. * poem-om.el: Split off features about coding-system to pces-om.el. * pces-raw.el: New module. * poem-ltn1.el: Split off features about coding-system to pces-raw.el. * pces-xm.el: New module. * poem-xm.el: Split off features about coding-system to pces-xm.el. * pces-e20_2.el: New module. * poem-e20_2.el: Split off features about coding-system to pces-e20_2.el. * pces-e20.el: New module. * poem-e20.el (find-coding-system): Moved to pces-e20.el. (set-process-input-coding-system): Likewise. - Don't require `poem-20'. * pces-20.el: New module [renamed from poem-20.el]. 1999-05-31 MORIOKA Tomohiko * calist.el (calist-field-match-method): Fix problem when `field-type' is a string. 1999-05-27 MORIOKA Tomohiko * calist.el (use-calist-package): New function. (make-calist-package): Add new optional argument `use'. 1999-05-27 MORIOKA Tomohiko * calist.el (calist-package-alist): New variable. (make-calist-package): New function. (find-calist-package): New function. (in-calist-package): New function. (standard): New calist package. (calist-field-match-method): Use method for `t' as a default method; set up `calist-default-field-match-method' as method for `t' of `standard' package. 1999-05-26 MORIOKA Tomohiko * APEL: Version 9.19 released. 1999-05-25 Shuhei KOBAYASHI * poe.el: Do not try to require 'edebug; it will be autoloaded. 1999-05-24 Shuhei KOBAYASHI * poem-om.el (char-before, char-after): Moved to poe.el. * poe.el (char-before, char-after): Moved from poem-om.el. Add definition for non-Mule. 1999-05-24 MORIOKA Tomohiko * poe.el (def-edebug-spec): New macro. (defun-maybe): Use `def-edebug-spec'. (defmacro-maybe): Likewise. (defsubst-maybe): Likewise. (read-string): Use `static-unless'. 1999-05-21 Shuhei KOBAYASHI * README.en: Add description of localhook.el. * README.ja: Ditto. * Makefile (GOMI): New variable. (clean): Use `RM' and `GOMI'. 1999-05-21 MORIOKA Tomohiko * mcs-20.el (detect-mime-charset-region): Use `find-mime-charset-by-charsets'. * mcharset.el (find-mime-charset-by-charsets): New function. 1999-05-21 MORIOKA Tomohiko * mcharset.el: Require pcustom. (default-mime-charset-for-write): New variable [moved from mcs-20.el]. (default-mime-charset-detect-method-for-write): Likewise. * mcs-20.el (default-mime-charset-for-write): Abolished [moved to mcharset.el]. (default-mime-charset-detect-method-for-write): Likewise. * EMU-ELS: Don't install `localhook' for XEmacs. 1999-05-19 MORIOKA Tomohiko * mcs-20.el (mime-charset-to-coding-system): Don't use `defsubst' to avoid problem in XEmacs binary distributions. 1999-05-17 Shuhei KOBAYASHI * poe-18.el (eval-when-compile, eval-and-compile): Reverted. 1999-05-16 Shuhei KOBAYASHI * pcustom.el (toplevel): Require 'poe. 1999-05-16 Shuhei KOBAYASHI * localhook.el (toplevel): Move provide to the top to avoid circular dependency. 1999-05-16 Shuhei KOBAYASHI * poe-18.el (inline): New alias for `progn'. (make-obsolete-variable): New function. (dont-compile): New macro. 1999-05-16 Shuhei KOBAYASHI * poe.el (subr-fboundp): Use `defun' instead of `defsubst'. 1999-05-16 Shuhei KOBAYASHI * poem-om.el (insert-binary-file-contents-literally): Removed, since provided by emu.el. (char-before, char-after): Use `fboundp', not `boundp'. Use error-conditions directly. 1999-05-15 Shuhei KOBAYASHI * poe.el (path-separator): Doc sync with 20.3. (add-to-list): Ditto. (buffer-live-p): Return bool value. (cadr, cdar, cddr): New functions. (save-current-buffer): Check whether `orig-buffer' is alive. (functionp): Sync with 20.3; use `car-safe'. (line-beginning-position, line-end-position): Use `forward-line' or `end-of-line' only. (point-at-bol, point-at-eol): Ditto. 1999-05-15 Shuhei KOBAYASHI * localhook.el: New file; local hook variable support. * poe.el (add-hook, remove-hook, make-local-hook): Removed; require 'localhook instead. * poe-18.el: (default-boundp): New function. * EMU-ELS: Added localhook. 1999-05-14 Shuhei KOBAYASHI * pcustom.el: Rewrite using static.el. * tinycustom.el (defface): Use `defmacro-maybe-cond'. * EMU-ELS: Compilation order of tinycustom and pcustom was changed. 1999-05-14 Shuhei KOBAYASHI * poe-18.el: Require 'poe. Move provide to the top to avoid circular dependency. (eval-when-compile, eval-and-compile): Modified for old compiler. (defsubst): Moved from poe.el. (make-obsolete): Do nothing. * poe.el (read-string): Don't use `eval-and-compile'. 1999-05-14 Shuhei KOBAYASHI * poe.el (defmacro-maybe-cond): New macro. (defun-maybe, defmacro-maybe, defsubst-maybe, defalias-maybe, defvar-maybe, defconst-maybe, defun-maybe-cond): Return NAME. (defun-maybe, defmacro-maybe, defsubst-maybe): Put edebug spec. (defsubst): Moved to poe-18.el. 1999-05-13 Tanaka Akira * pccl-om.el: pccl-om.el does not support Mule 1.*. 1999-05-10 Daiki Ueno * tinycustom.el (define-widget): Accept the optional arguments. 1999-05-08 Tanaka Akira * README.en (What's APEL?): Add notice for static.el. * README.ja: Ditto. 1999-05-08 MORIOKA Tomohiko * APEL: Version 9.18 released. 1999-05-08 MORIOKA Tomohiko * mcs-e20.el: Don't require `poem'. * mcs-e20.el: Check coding-system `x-ctext' is not defined by APEL. 1999-05-08 MORIOKA Tomohiko * mcs-e20.el: Fix checking code about coding-system `x-ctext' [cf. by akr] 1999-05-07 MORIOKA Tomohiko * APEL: Version 9.17 released. 1999-05-07 MORIOKA Tomohiko * mcs-e20.el: Check coding-system `x-ctext' is not defined. 1999-05-07 MORIOKA Tomohiko * poe-18.el (eval-when-compile): New macro. * poe.el (make-local-hook): Use `defun-maybe' directly. * poe.el (add-hook): Use `static-condition-case' instead of `condition-case'; use `defun-maybe' instead of `defun'. (remove-hook): Likewise. 1999-04-22 MORIOKA Tomohiko * poe.el (caar): New function. 1999-04-13 Tanaka Akira * mcs-e20.el (x-ctext): Use the definition in Emacs 20.4. 1999-04-11 Tanaka Akira * mcs-e20.el (x-ctext): Define coding system `x-ctext' if `ctext' is not proper for decoding `iso-2022-jp-2'. 1999-04-09 Tanaka Akira * static.el: Add doc-strings. 1999-04-09 Tanaka Akira * EMU-ELS (emu-modules): Add `static'. * static.el: New file. * broken.el: New implementation using `static'. 1999-04-09 MORIOKA Tomohiko * EMU-ELS (poem-modules): Add `poem-xfc' if file-coding feature is available in a XEmacs-without-MULE. 1999-04-09 Andy Piper * poem.el: use poem-xfc when we have XEmacs with file coding. * poem-xfc.el: new file for file coding based XEmacs. 1999-04-08 MORIOKA Tomohiko * APEL: Version 9.16 released. 1999-04-05 Shuhei KOBAYASHI * install.el (install-prefix): Check whether `system-configuration-options' is defined or not before using it. * poe-18.el (add-hook, remove-hook): Moved to poe.el. * poe.el (add-hook, remove-hook): Accept optional `local' arg. (add-local-hook, remove-local-hook): Removed. * tinycustom.el (defface): Make face if 'faces is provided. 1999-03-27 Shuhei KOBAYASHI * pcustom.el: New implementation using broken.el. 1999-03-14 Shuhei KOBAYASHI * APEL-MK (compile-apel, what-where-apel): Use `load-file' to ensure that EMU_ELS in the current directory is loaded. 1999-03-11 Shuhei KOBAYASHI * emu.el (code-convert-string, code-convert-region, insert-binary-file-contents): Doc fix. 1999-03-16 Mikio Nakajima * README.en, README.ja: Add description of pcustom and tinycustom. 1999-03-27 MORIOKA Tomohiko * tinycustom.el: Delete RCS keywords. 1999-03-24 Mikio Nakajima * poe.el (make-local-hook): Move to after defining `add-local-hook' and `remove-local-hook'. 1999-03-20 Mikio Nakajima * tinycustom.el (define-widget): New nop macro. (defface): Makes face FACE. 1999-03-25 Keiichi Suzuki * poem.el (charset-after): New function. 1999-03-16 MORIOKA Tomohiko * APEL: Version 9.15 released. 1999-03-16 MORIOKA Tomohiko * poe.el (defun-maybe-cond): Don't use `unless'. 1999-03-16 MORIOKA Tomohiko * EMU-ELS (pcustom-modules): New variable. (emu-modules): Add `pcustom-modules'. 1999-03-13 Mikio Nakajima * tinycustom.el: New file. * pcustom.el: Likewise. 1999-03-15 MORIOKA Tomohiko * APEL: Version 9.14 released. 1999-03-11 MORIOKA Tomohiko * mcs-e20.el (charsets-mime-charset-alist): Add setting for `tis-620'. * mcs-20.el (mime-charset-coding-system-alist): Add `tis-620' and `windows-874'. 1999-03-08 SL Baur * poem-ltn1.el (find-file-noselect-as-raw-text): Quote. (find-file-noselect-as-raw-text-CRLF): Ditto. 1999-03-08 SL Baur * mcs-xm.el (decode-mime-charset-region-with-iso646-unification): Respect passed in boundaries. From MORIOKA Tomohiko 1999-03-08 SL Baur * poe.el (poe): Move provide to the top to avoid circular dependency. * poe-xemacs.el: Explicitly require poe when bytecompiling. * poem-xm.el: Ditto. * poem-ltn1.el:Ditto. 1999-02-27 MORIOKA Tomohiko * APEL: Version 9.13 released. 1999-02-27 MORIOKA Tomohiko * Makefile (package): New target. (install-package): Depend on `package'. * APEL-MK (install-update-package-files): New function. (config-apel-package): Load "EMU-ELS". (compile-apel-package): New function. (install-apel-package): Don't compile modules; use function `install-update-package-files'. 1999-02-26 MORIOKA Tomohiko * APEL-MK (install-just-print-p): Modify for special option of GNU make. 1999-02-26 MORIOKA Tomohiko * APEL-MK (install-just-print-p): New function. (install-apel): Use `install-just-print-p'. (install-apel-package): Likewise. 1999-02-25 MORIOKA Tomohiko * Makefile (install): Add voodoo comment `# $(MAKE)'. (install-package): Likewise. * APEL-MK (install-apel): Run installer with `just-print' mode if environment variable "MAKEFLAGS" matches "^[^ =]*n" option. (install-apel-package): Likewise. 1999-02-21 Mikio Nakajima * install.el (install-file): New optional argument JUST-PRINT. (install-files): Likewise. (install-elisp-module): Likewise. (install-elisp-modules): Likewise. 1999-02-18 Keiichi Suzuki * mcs-e20.el (coding-system-get): New function. (mime-charset-list): Fix for Emacs 20.2. 1999-02-14 Katsumi Yamaoka * mcs-om.el (default-mime-charset-for-write): Delete the remaining arguments for `defcustom'. 1999-02-13 Tanaka Akira * mcs-e20.el (charsets-mime-charset-alist): Don't set up `iso-2022-int-1' in default. 1999-02-11 Tanaka Akira * README.en, README.ja, pccl.el: pccl does not support Mule 1.x. * pccl-20.el: Update broken facility message with Emacs version it fixes. 1999-02-07 MORIOKA Tomohiko * install.el (install-prefix): Modify for Meadow. 1999-01-26 MORIOKA Tomohiko * mcs-20.el (mime-charset-to-coding-system-default-method): New user option. (mime-charset-to-coding-system): Call `mime-charset-to-coding-system-default-method' if suitable coding-system is not found. 1999-01-21 Keiichi Suzuki * mcs-xm.el (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. * mcs-nemacs.el (lbt-to-string): New inline function. (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. * mcs-ltn1.el (lbt-to-string): New inline function. (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. (decode-mime-charset-region): Use `lbt-to-string'. * mcs-e20.el (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. * mcs-om.el (lbt-to-string): New inline function. (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. (decode-mime-charset-region): Use `lbt-to-string'. (decode-mime-charset-string): Ditto. 1998-12-24 MORIOKA Tomohiko * mcs-om.el (default-mime-charset-for-write): New variable. (detect-mime-charset-region): Return `default-mime-charset-for-write' if suitable mime-charset is not found. * mcs-20.el (detect-mime-charset-region): Don't call `default-mime-charset-detect-method-for-write' if suitable mime-charset is found. * mcharset.el (charsets-to-mime-charset): Return nil if suitable mime-charset is not found; abolish optional argument `default'. 1998-12-23 MORIOKA Tomohiko * mcs-xm.el (charsets-mime-charset-alist): Don't set up `iso-2022-int-1' in default. * mcs-20.el (default-mime-charset-for-write): New user option. (default-mime-charset-detect-method-for-write): New user option. (detect-mime-charset-region): Refer `default-mime-charset-detect-method-for-write' or `default-mime-charset-for-write' if suitable mime-charset is not found. * mcharset.el (charsets-to-mime-charset): Add new optional argument `default'. 1999-02-26 Katsumi Yamaoka * poem-nemacs.el (find-file-noselect-as-coding-system): Bind `default-kanji-fileio-code' to specified coding system instead of the use of `kanji-fileio-code'; bind `kanji-fileio-code' to nil. (find-file-noselect-as-raw-text): Revert buffer if the file is newer than the buffer. (as-binary-input-file): Bind `default-kanji-flag' to nil. * poem-20.el (find-file-noselect-as-binary): Bug fix - use `coding-system-for-read' instead of `coding-system-for-write'. 1999-02-25 Katsumi Yamaoka * poem-om.el (find-file-noselect-as-raw-text-CRLF): New function. It is an alias for `find-file-noselect-as-raw-text'. (insert-file-contents-as-raw-text-CRLF): New function. It is an alias for `insert-file-contents-as-raw-text'. * poem-nemacs.el (find-file-noselect-as-raw-text-CRLF): New function. It is an alias for `find-file-noselect-as-raw-text'. (find-file-noselect-as-raw-text): Convert line-break code from CRLF to LF. (insert-file-contents-as-raw-text-CRLF): New function. It is an alias for `insert-file-contents-as-raw-text'. (insert-file-contents-as-raw-text): Convert line-break code from CRLF to LF. (find-file-noselect-as-binary): Don't specify the optional third argument `rawfile' for `find-file-noselect'. * poem-ltn1.el (find-file-noselect-as-raw-text-CRLF): New function. It is an alias for `find-file-noselect'. (insert-file-contents-as-raw-text-CRLF): New function. It is an alias for `insert-file-contents'. * poem-20.el, poem-e20_2.el (find-file-noselect-as-raw-text-CRLF): New function. (insert-file-contents-as-raw-text-CRLF): New function. 1999-02-25 Katsumi Yamaoka * poem-20.el, poem-e20_2.el, poem-om.el (find-file-noselect-as-raw-text): Undo the last change. (insert-file-contents-as-raw-text): Likewise. 1999-02-25 Katsumi Yamaoka * poem-20.el, poem-e20_2.el, poem-om.el (find-file-noselect-as-raw-text): Use `raw-text-dos' instead of `raw-text'. (insert-file-contents-as-raw-text): Likewise. 1999-02-14 Katsumi Yamaoka * mcs-om.el (TopLevel): Don't refer to `running-emacs-19_29-or-later', use `emacs-major-version' and `emacs-minor-version' instead. 1999-02-14 MORIOKA Tomohiko * poe.el (file-name-sans-extension): New function . 1999-02-04 Katsumi Yamaoka * poem-20.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (save-buffer-as-binary): New function. (save-buffer-as-raw-text-CRLF): New function. (save-buffer-as-coding-system): New function. * poem-om.el (poem-ccl-decode-raw-text): Rewrite again for plural `CR's. 1999-02-04 Katsumi Yamaoka * poem-om.el (poem-ccl-decode-raw-text): Rewrite for fixing a bug that the last datum will be missed if the input data is not ended with `CRLF'. (poem-ccl-encode-raw-text-CRLF): Use `read-if'. 1998-12-24 MORIOKA Tomohiko * install.el (install-detect-elisp-directory): Avoid problem if prefix of an emacs has its version. 1998-12-22 MORIOKA Tomohiko * APEL: Version 9.12 was released. 1998-12-20 MORIOKA Tomohiko * mcs-om.el: Avoid error when cyrillic.el is not found. 1998-12-19 MORIOKA Tomohiko * poem-xm.el: Define coding-system `gb2312-dos', `gb2312-mac' and `gb2312-unix' if it is not found. 1998-12-18 Katsumi Yamaoka * poem-om.el (poem-ccl-decode-raw-text): Renamed from `ccl-decode-raw-text'. (poem-ccl-encode-raw-text): Renamed from `ccl-encode-raw-text'. (poem-ccl-encode-raw-text-CRLF): Renamed from `ccl-encode-raw-text-CRLF`. 1998-12-17 MORIOKA Tomohiko * poem-om.el (poem-decode-raw-text): New function for MULE 1. (poem-encode-raw-text-CRLF): Likewise. (raw-text): New coding-system for MULE 1. (raw-text-dos): Likewise. (insert-file-contents-as-raw-text): Share implementation. (write-region-as-raw-text-CRLF): Likewise. (find-file-noselect-as-raw-text): Likewise. 1998-12-17 MORIOKA Tomohiko * poem-om.el: Share definition of coding-system `binary'. (write-region-as-binary): Share implementation. (find-file-noselect-as-binary): Likewise. 1998-12-16 MORIOKA Tomohiko * poem-om.el (insert-file-contents-as-binary): Share implementation. 1998-12-16 Katsumi Yamaoka * poem-om.el (find-file-noselect-as-raw-text): Use `find-file-noselect-as-coding-system' under Mule 2.*. (find-file-noselect-as-binary): Likewise. (insert-file-contents-as-raw-text): Use `insert-file-contents-as-coding-system' under Mule 2.*. (insert-file-contents-as-binary): Likewise. (write-region-as-raw-text-CRLF): Use `write-region-as-coding-system' under Mule 2.*. (write-region-as-binary): Likewise. (truncate-string): Use `defun-maybe'. (toplevel): Don't refer to `running-emacs-19_29-or-later', use `emacs-major-version' and `emacs-minor-version' instead. 1998-12-16 Katsumi Yamaoka * pccl-om.el (toplevel): Don't require `poem'. Use `code-convert-string' instead of `encode-coding-string' or `decode-coding-string'. * poem-om.el (binary): EMACS 20 emulating coding-system for Mule 2.3 based on Emacs 19.[28-34]. (raw-text): EMACS 20 emulating coding-system based on native CCL for Mule 2.3 based on Emacs 19.[28-34]. (raw-text-dos): Likewise. (find-file-noselect-as-binary): Separate for some Mules. 1998-12-15 Tanaka Akira * pccl-20.el: Do not require 'poem. 1998-12-14 Katsumi Yamaoka * poem-20.el, poem-e20_2.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (find-file-noselect-as-coding-system): Be CODING-SYSTEM the 1st arg. (insert-file-contents-as-coding-system): Likewise. * poem-20.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (write-region-as-coding-system): Likewise. 1998-12-14 Katsumi Yamaoka * poem-20.el, poem-e20_2.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (find-file-noselect-as-coding-system): Renamed from `find-file-noselect-as-specified-coding-system'. * poem-e20_2.el (insert-file-contents-as-coding-system): Renamed from `insert-file-contents-as-specified-coding-system'. * poem-20.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (write-region-as-coding-system): Renamed from `write-region-as-specified-coding-system'. (insert-file-contents-as-coding-system): Renamed from `insert-file-contents-as-specified-coding-system'. 1998-12-09 Katsumi Yamaoka * poem-20.el, poem-e20_2.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (find-file-noselect-as-binary): New function. (find-file-noselect-as-raw-text): New function. (find-file-noselect-as-specified-coding-system): New function. * poem-nemacs.el (insert-file-contents-as-binary): Call `insert-file-contents' with only two args - FILENAME and VISIT. (insert-file-contents-as-raw-text): Likewise. (insert-file-contents-as-specified-coding-system): Likewise. 1998-12-09 Yuuichi Teranishi * poe-18.el (make-directory-internal): Rewrite. 1998-12-08 Katsumi Yamaoka * poem-20.el (write-region-as-binary): Bind `jam-zcat-filename-list' with nil. * poem-xm.el (insert-file-contents-as-binary): Likewise. * poem.el: Require `tcp' if the function `open-network-stream' does not exist. 1998-12-04 Katsumi Yamaoka * poem-20.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (open-network-stream-as-binary): New function. * poem-e20_2.el (insert-file-contents-as-specified-coding-system): New function. * poem-20.el, poem-ltn1.el, poem-nemacs.el, poem-om.el (write-region-as-specified-coding-system): New function. (insert-file-contents-as-specified-coding-system): New function. 1998-12-01 MORIOKA Tomohiko * poem-xm.el: If coding-system `iso-2022-jp-dos' unifies JIS X 0201-Latin to ASCII and JIS X 0208-1978 to JIS X 0208-1983 by code-point, copy coding-system `iso-2022-7bit-dos' to `iso-2022-jp-dos' to avoid this problem. 1998-11-17 Kazuhiro Ohta * README.en, README.ja (add-latest-path): Fix typo. 1998-11-14 MORIOKA Tomohiko * APEL: Version 9.11 was released. * poem-ltn1.el (char-charset): Fix typo. 1998-11-13 Tanaka Akira * broken.el: require 'poe. 1998-11-13 Tanaka Akira * pccl.el: Enclose mule depended process by `unless-broken'. 1998-11-13 MORIOKA Tomohiko * poe.el (defun-maybe-cond): fixed problem in Emacs 18. * poe.el (defsubst): Moved from poe-18.el. * poe-18.el: Move macro `defsubst' to poe.el. 1998-11-13 MORIOKA Tomohiko * APEL: Version 9.10 was released. 1998-11-13 Tanaka Akira * pccl.el (define-ccl-program): Adviced. 1998-11-12 Tanaka Akira * pccl-om.el (ccl-cascading-read): New facility. 1998-11-10 Tanaka Akira * EMU-ELS (emu-modules): Always install 'pccl. * broken.el: Use 19.28 style quasi-quote. * pccl.el: - require 'broken. - Does not require 'pccl-20 for XEmacs 20. (ccl-usable): New facility. 1998-11-10 Tanaka Akira * README.en, README.ja, pccl-20.el: Note that pccl-20 is not for XEmacs 20. 1998-11-08 MORIOKA Tomohiko * poe-18.el (eval-and-compile): Moved from poe.el. * poe.el: Move `eval-and-compile' to poe-18.el. * poe-xemacs.el (overlayp): New alias. (delete-overlay): New alias. 1998-11-07 MORIOKA Tomohiko * APEL: Version 9.9 was released. 1998-11-06 MORIOKA Tomohiko * poe.el (combine-after-change-calls): fixed. 1998-10-31 Mikio Nakajima * poe.el (combine-after-change-calls): New macro. 1998-10-28 MORIOKA Tomohiko * poe.el (defun-maybe-cond): New macro. (next-command-event): Use `defun-maybe-cond'. (cancel-undo-boundary): Use `defun-maybe-cond'. 1998-10-28 Katsumi Yamaoka * poem-om.el (char-after): Redefine to change `POS' to optional argument. 1998-10-27 MORIOKA Tomohiko * APEL: Version 9.8 was released. * README.ja, README.en (CVS): New section. 1998-10-27 Mikio Nakajima * poem-om.el (char-before): Redefine to change `POS' to optional argument. 1998-10-27 MORIOKA Tomohiko * poe.el (subr-fboundp): New function. (next-command-event): New function. (character-to-event): New function. 1998-10-25 Mikio Nakajima * poe.el (event-to-character): New function. 1998-10-27 MORIOKA Tomohiko * poe.el (cancel-undo-boundary): Switch definition by existence of variable `buffer-undo-list'. * poe-18.el: Move function `cancel-undo-boundary' to poe.el. 1998-10-25 Mikio Nakajima * poe.el (cancel-undo-boundary): New function. 1998-10-27 MORIOKA Tomohiko * poe-18.el (cancel-undo-boundary): New function (moved from poem.el). * poem.el: Move function `cancel-undo-boundary' to poe-18.el. 1998-10-26 MORIOKA Tomohiko * APEL: Version 9.7 was released. 1998-10-26 MORIOKA Tomohiko * poem.el (cancel-undo-boundary): New function. 1998-10-26 MORIOKA Tomohiko * poe-xemacs.el (set-cursor-color): Add interactive spec; add DOC-string. 1998-10-25 Mikio Nakajima * poe-xemacs.el (set-cursor-color): New function. 1998-10-26 MORIOKA Tomohiko * README.ja: Sync up with latest README.en. 1998-10-26 MORIOKA Tomohiko * poe.el (remove-local-hook): Use `defmacro-maybe'. 1998-10-26 Mikio Nakajima * poe.el (add-local-hook): fixed. (remove-local-hook): fixed. 1998-10-26 MORIOKA Tomohiko * APEL: Version 9.6 was released. 1998-10-25 MORIOKA Tomohiko * poe.el (rassoc): New function. 1998-10-25 MORIOKA Tomohiko * poe-xemacs.el (eval-after-load): New function. * poem-e20_3.el (characterp): New alias. * poem.el (characterp): New alias. (char-octet): New function. 1998-10-25 Mikio Nakajima * poe.el (make-local-hook): New macro. (add-local-hook): New macro. (remove-local-hook): New macro. 1998-10-25 MORIOKA Tomohiko * poem.el, poem-20.el, poem-e20_3.el, poem-e20.el, poem-xm.el: Add setting of byte-compile-dynamic. * poem-xm.el (string-to-int-list): Use `defun-maybe'. * poem.el (string-as-unibyte): Use `defsubst-maybe' instead of `defmacro-maybe'. (string-as-multibyte): Likewise. (char-int): Use `defalias-maybe'. (int-char): Likewise. (char-or-char-int-p): Likewise. 1998-10-25 MORIOKA Tomohiko * poe.el, poe-xemacs.el: Add setting of byte-compile-dynamic. 1998-10-25 MORIOKA Tomohiko * poe-18.el (data-directory): Use `defvar-maybe'. (buffer-undo-list): Likewise. * poe-xemacs.el (face-list): Use `defalias-maybe'. (line-beginning-position): Likewise. (line-end-position): Likewise. * poe.el (defalias-maybe): New macro. * poe-xemacs.el (dired-other-frame): Use `defun-maybe'. 1998-10-24 MORIOKA Tomohiko * poe.el (defvar-maybe): New macro. (temporary-file-directory): New variable. 1998-10-23 MORIOKA Tomohiko * APEL: Version 9.5 was released. 1998-10-22 Yoshiki Hayashi * README.ja: New file. 1998-10-20 MORIOKA Tomohiko * alist.el: Add autoload cookies. 1998-10-20 MORIOKA Tomohiko * poe.el, EMU-ELS, README.en: Move `find-face' from poe-19.el to poe.el; abolish poe-19.el. 1998-10-20 MORIOKA Tomohiko * invisible.el, inv-18.el, inv-19.el, inv-xemacs.el, poe-18.el, poe-19.el, poe-xemacs.el, emu.el, EMU-ELS, README.en: Separate invisible features from poe to invisible. 1998-10-20 MORIOKA Tomohiko * poe.el (eval-and-compile): New macro. Enclose redefinition of `read-string' by `eval-and-compile'. 1998-10-20 MORIOKA Tomohiko * poe.el (string): New function. 1998-10-19 MORIOKA Tomohiko * emu.el (char-list-to-string): New function. * poe-xemacs.el, poe-19.el: Abolish macro `char-list-to-string'. * poe-18.el: Abolish function `char-list-to-string'. 1998-10-18 Tanaka Akira * broken.el (check-broken-facility): Also use compile time description. 1998-10-18 MORIOKA Tomohiko * APEL: Version 9.4 was released. 1998-10-17 Tanaka Akira * broken.el (check-broken-facility): New macro. 1998-10-16 MORIOKA Tomohiko * poe.el (define-obsolete-function-alias): New function. 1998-10-12 MORIOKA Tomohiko * APEL: Version 9.3 was released. 1998-10-12 Katsumi Yamaoka * README.en: Add explanations about `LISPDIR', `VERSION_SPECIFIC_LISPDIR' and `what-where'. * Makefile (what-where): New target. (install): Add new arg `VERSION_SPECIFIC_LISPDIR'. * APEL-MK (what-where-apel): New function. (config-apel): Refer to `VERSION_SPECIFIC_LISPDIR'. * APEL-CFG (VERSION_SPECIFIC_LISPDIR): New variable. 1998-10-12 MORIOKA Tomohiko * README.en (load-path): Modify for Emacs 20.3. 1998-10-11 MORIOKA Tomohiko * APEL-CFG (EMU_PREFIX): Use "emu" for Emacs 20.3 or later. * EMU-ELS: Don't install pccl in anything older than XEmacs 21 with MULE. 1998-10-10 MORIOKA Tomohiko * APEL: Version 9.2 was released. * poem-xm.el (insert-file-contents-as-binary): New function. * poem-20.el (write-region-as-binary): bind `jka-compr-compression-info-list' with nil. (insert-file-contents-as-binary): Change to alias of `insert-file-contents-literally' for Emacs 20. 1998-10-07 MORIOKA Tomohiko * APEL: Version 9.1 was released. 1998-10-06 MORIOKA Tomohiko * mcs-e20.el, mcs-xm.el (coding-system-to-mime-charset): New function. (mime-charset-list): New implementation. * Move `mime-charset-list' from mcs-20.el to mcs-e20.el and mcs-xm.el. 1998-10-01 MORIOKA Tomohiko * mcs-e20.el (charsets-mime-charset-alist): Use `gb2312' and `big5' instead of `cn-gb-2312' and `cn-big5'. * mcs-xm.el (charsets-mime-charset-alist): Use `gb2312' and `big5' instead of `cn-gb-2312' and `cn-big5'. * mcs-20.el (mime-charset-coding-system-alist): Add `cn-gb' to default value. 1998-09-22 MORIOKA Tomohiko * APEL: Version 9.0 was released. * Delete EMU-CFG and EMU-MK because they have not been used. 1998-09-22 Tanaka Akira * README.en (What's APEL?): Add notice for broken.el. 1998-09-22 MORIOKA Tomohiko * README.en (What's APEL?): Modify for latest structure. 1998-09-20 MORIOKA Tomohiko * mcs-xm.el (charsets-mime-charset-alist): Comment out invalid definition for iso-2022-int-1. 1998-09-19 Tanaka Akira * broken.el: New file. * pccl.el (apel-broken-facility): Abolished (apel-broken-p): Abolished * EMU-ELS (emu-modules): Add 'broken. * Makefile (elc): Do not remove emu*.elc. * pccl-20.el: require 'broken. (ccl-use-symbol-as-program): Abolished. (ccl-accept-symbol-as-program): New facility. (make-ccl-coding-system): Use `when-broken' to define. (ccl-encoder-eof-block-is-broken): Abolished. (ccl-decoder-eof-block-is-broken): Abolished. (ccl-eof-block-is-broken): Abolished (ccl-execute-eof-block-on-encoding-null): New facility. (ccl-execute-eof-block-on-encoding-some): Ditto. (ccl-execute-eof-block-on-decoding-null): Ditto. (ccl-execute-eof-block-on-decoding-some): Ditto. (ccl-execute-eof-block-on-encoding): Ditto. (ccl-execute-eof-block-on-decoding): Ditto. (ccl-execute-eof-block): Ditto. * pccl-om.el: require 'broken. (ccl-use-symbol-as-program): Abolished. (ccl-accept-symbol-as-program): New facility. (ccl-encoder-eof-block-is-broken): Abolished. (ccl-decoder-eof-block-is-broken): Abolished. (ccl-eof-block-is-broken): Abolished (ccl-execute-eof-block-on-encoding-null): New facility. (ccl-execute-eof-block-on-encoding-some): Ditto. (ccl-execute-eof-block-on-decoding-null): Ditto. (ccl-execute-eof-block-on-decoding-some): Ditto. (ccl-execute-eof-block-on-encoding): Ditto. (ccl-execute-eof-block-on-decoding): Ditto. (ccl-execute-eof-block): Ditto. (ccl-execute-on-string-ignore-contin): New facility. 1998-09-18 Tanaka Akira * pccl.el (apel-broken-facility): New function. (apel-broken-p): New function. 1998-09-18 Tanaka Akira * pccl.el: Fix author. 1998-09-17 Katsumi Yamaoka * pccl-om.el (make-ccl-coding-system): Enclose with `eval-and-compile'. 1998-09-17 MORIOKA Tomohiko * poe.el (unless): New macro. * emu.el: Define tl:overlay obsolete aliases for all emacsen. * poem-nemacs.el (decode-coding-string): Regard integer as coding-system. (encode-coding-string): Likewise. (decode-coding-region): Likewise. (encode-coding-region): Likewise. * poe-18.el (set-text-properties): New function. * install.el (install-detect-elisp-directory): Fix problem on Nemacs. 1998-09-17 MORIOKA Tomohiko * poem-ltn1.el (set-buffer-multibyte): Use `defun-maybe' instead of `defmacro-maybe'. * poem-e20_2.el (set-buffer-multibyte): Use `defun-maybe' instead of `defsubst-maybe'. 1998-09-17 MORIOKA Tomohiko * EMU-ELS: New implementation. 1998-09-17 MORIOKA Tomohiko * emu.el, emu-mule.el, EMU-ELS: Move code about CCL from emu-mule.el to pccl-om.el. * pccl.el: New file. * pccl.el: - Rename emu-e20.el to pccl-20.el. - Move definition of emu-x20.el to pccl-20.el. - Move code about CCL from emu-mule.el to pccl-om.el. * pccl-om.el: New file (move code about CCL from emu-mule.el). * pccl-20.el: New file (renamed from emu-e20.el; move definition of emu-x20.el to pccl-20.el; abolish emu-x20.el). 1998-09-17 MORIOKA Tomohiko * emu.el, emu-x20.el, emu-e20.el: Move function `char-category' from emu-e20.el and emu-x20.el to emu.el. 1998-09-17 MORIOKA Tomohiko * emu.el, emu-nemacs.el, emu-latin1.el, EMU-ELS: Move definitions of emu-nemacs.el and emu-latin1.el to emu.el; abolish emu-nemacs.el and emu-latin1.el. 1998-09-17 MORIOKA Tomohiko * emu.el: Modify conditions to load sub-modules. * emu.el, emu-e20.el: Move alias `insert-binary-file-contents-literally' from emu-e20.el to emu.el. 1998-09-17 MORIOKA Tomohiko * poem.el, emu.el: Move `string-as-unibyte', `string-as-multibyte', `char-int', `int-char' and `char-or-char-int-p' from emu.el to poem.el. 1998-09-17 MORIOKA Tomohiko * mcharset.el, emu.el: Move function `charsets-to-mime-charset' from emu.el to mcharset.el. 1998-09-17 MORIOKA Tomohiko * emu.el, emu-x20.el, emu-nemacs.el, emu-mule.el, emu-latin1.el, emu-e20.el: - Move `insert-binary-file-contents' from emu-e20.el, emu-latin1.el, emu-mule.el, emu-nemacs.el and emu-x20.el to emu.el. - Move `insert-binary-file-contents-literally' from emu-latin1.el, emu-mule.el, emu-nemacs.el and emu-x20.el to emu.el. 1998-09-17 MORIOKA Tomohiko * poe-18.el (make-obsolete): New function. 1998-09-17 MORIOKA Tomohiko * emu.el, EMU-ELS: Split code about MIME charset from emu to mcharset. * mcharset.el: New file. * mcs-xm.el: New file (split code about MIME charset from emu-x20.el). * emu-x20.el: Split code about MIME charset to mcs-xm.el. * mcs-om.el: New file (split code about MIME charset from emu-mule.el). * emu-mule.el: Split code about MIME charset to mcs-om.el. * mcs-nemacs.el: New file (split code about MIME charset from emu-nemacs.el). * emu-nemacs.el: Split code about MIME charset to mcs-nemacs.el. * mcs-ltn1.el: New file (split code about MIME charset from emu-latin1.el). * emu-latin1.el: Split code about MIME charset to mcs-latin1.el. * mcs-e20.el: New file (split code about MIME charset from emu-e20.el). * emu-e20.el: Split code about MIME charset to mcs-e20.el. * mcs-20.el: New file (renamed from emu-20.el). 1998-09-17 MORIOKA Tomohiko * emu.el, emu-20.el: Move constant `*noconv*' from emu-20.el to emu.el. 1998-09-17 MORIOKA Tomohiko * emu.el, EMU-ELS: Split core part about MULE from emu to poem. * poem.el: New file. * poem-e20_3.el: New file (renamed from emu-e20_3.el). * poem-e20_2.el: New file (renamed from poem-e20_2.el). * poem-xm.el: New file (split core part of MULE from emu-x20.el). * emu-x20.el: Split core part of MULE to poem-xm.el. * poem-om.el: New file (split core part of MULE from emu-mule.el). * emu-mule.el: Split core part of MULE to poem-om.el. * poem-ltn1.el: New file (split core part of MULE from emu-latin1.el). * emu-latin1.el: Split core part of MULE to poem-ltn1.el. * poem-e20.el: New file (split core part of MULE from emu-e20.el). * emu-e20.el: Split core part of MULE to poem-e20.el. * poem-20.el: New file (split core part of MULE from emu-20.el). * emu-20.el: Split core part of MULE to poem-20.el. * poem-nemacs.el: New file (split core part of MULE from emu-nemacs.el). * emu-nemacs.el: Split core part of MULE to poem-nemacs.el; move overlay emulation code of Nemacs to poe-18.el. * poe-18.el: Move overlay emulation code of Nemacs from emu-nemacs.el. 1998-09-17 MORIOKA Tomohiko * poe.el, emu.el: Move function `point-at-bol' and `point-at-eol' from emu.el to poe.el. 1998-09-17 MORIOKA Tomohiko * emu.el (point-at-bol): New function. (point-at-eol): Use `line-end-position'. 1998-09-17 MORIOKA Tomohiko * poe.el (line-beginning-position): New function. (line-end-position): New function. * poe-xemacs.el (line-beginning-position): New alias. (line-end-position): New alias. 1998-09-17 MORIOKA Tomohiko * poe.el, emu.el: Move function `functionp' from emu.el to poe.el. 1998-09-17 MORIOKA Tomohiko * poe.el, emu.el: Move Emacs 19.30 emulating definitions, Emacs 19.31 emulating definitions and Emacs 20.1 emulating definitions from emu.el to poe.el. 1998-09-17 MORIOKA Tomohiko * poe.el, emu.el: Move constant `emacs-minor-version', Emacs 19 emulating definitions and Emacs 19.29 emulating definitions from emu.el to poe.el. 1998-09-17 MORIOKA Tomohiko * poe.el: New file (split core part from emu.el). * poe-xemacs.el: New file (renamed from emu-xemacs.el). * poe-19.el: New file (renamed from emu-e19.el). * poe-18.el: New file (renamed from emu-18.el). * emu.el, emu-nemacs.el, emu-mule.el, emu-e20.el, EMU-ELS: modify for new structure. 1998-09-17 MORIOKA Tomohiko * emu-x20.el (make-ccl-coding-system): New function. 1998-09-17 Katsumi Yamaoka * emu-mule.el: Require `cyrillic' (suggested by MORIOKA-san). * emu-mule.el (decode-mime-charset-region): Cope with non existent coding systems if the third arg `lbt' has specified. (decode-mime-charset-string): Likewise. 1998-09-14 MORIOKA Tomohiko * APEL: Version 8.18 was released. * Makefile (install-package): Don't depend on target `elc'. * APEL-MK (install-apel-package): Compile emu-modules and apel-modules. 1998-09-13 MORIOKA Tomohiko * Makefile: Abolish target `package'. (install-package): Use `elc' instead of `package'. * APEL-MK: Abolish function `compile-apel-package'. (install-apel-package): Update auto-autoloads.el and custom-load.el at target directory. 1998-09-13 MORIOKA Tomohiko * README.en (run in expanded place): fixed. (install as a XEmacs package): New description. * Makefile (XEMACS): New variable. (PACKAGEDIR): New variable. (package): New target. (install-package): New target. * APEL-MK (config-apel-package): New function. (compile-apel-package): New function. (install-apel-package): New function. * APEL-CFG (PACKAGEDIR): New variable. 1998-09-07 Tanaka Akira * Makefile (elc): Ignore errors when removing emu*.elc. 1998-09-01 Tanaka Akira * emu-mule.el (ccl-execute-on-string): Fix arguments order `status' and `string'. 1998-08-31 MORIOKA Tomohiko * APEL: Version 8.17 was released. * emu.el (with-temp-file): Must use old forms. 1998-08-31 Katsumi Yamoaka * emu.el (with-temp-file): New macro (Emacs 20/XEmacs 20 emulating macro). 1998-08-29 Tanaka Akira * emu-e20.el: require 'ccl only for byte-compile time. 1998-08-29 Tanaka Akira * Makefile (elc): Remove emu*.elc to use newest emu by intall.el. 1998-08-29 Shuhei KOBAYASHI * emu-e20.el (ccl-execute-on-string): Too few args. (test-ccl-eof-block-cs): Revert existence checking. * emu-e20_2.el (insert-file-contents-as-binary): Return value. (insert-file-contents-as-raw-text): Ditto. * emu-mule.el (insert-file-contents-as-raw-text): Return value. (encode-coding-string): Check `coding-system' is non-nil. (decode-coding-string): Ditto. (insert-file-contents-as-binary): Use `as-binary-input-file'. (insert-binary-file-contents-literally): Ditto. (write-region-as-binary): Use `as-binary-output-file'. (write-region-as-raw-text-CRLF): Definition for Emacs 19.28. (write-region-as-mime-charset): Ditto. (mime-charset-to-coding-system): New implementation. (ccl-use-symbol-as-program): New constant. (ccl-encoder-eof-block-is-broken): New constant. (ccl-decoder-eof-block-is-broken): New constant. (ccl-eof-block-is-broken): New constant. (make-ccl-coding-system): New function. (ccl-execute): Emacs 20.3 emulating function. (ccl-execute-on-string): Emacs 20.3 emulating function. * emu-nemacs.el (write-region-as-binary): Use `as-binary-output-file' (write-region-as-raw-text-CRLF): Ditto. (insert-file-contents-as-binary): Use `as-binary-input-file'. (insert-binary-file-contents-literally): Ditto. (insert-file-contents-as-raw-text): Ditto. * emu.el (last): Emacs 20 emulation function. (butlast), (nbutlast): CL emulation functions. 1998-08-27 Tanaka Akira * emu-e20.el (ccl-use-symbol-as-program): Reduce `eval-and-compile' and `eval-when-compile' nesting. (test-ccl-eof-block-cs): Remove existence checking. 1998-08-27 Tanaka Akira * emu-e20.el (ccl-use-symbol-as-program): Use `ccl-vector-program-execute-on-string' if it is defined. 1998-08-27 Tanaka Akira * emu-e20.el (ccl-use-symbol-as-program): Use `ccl-execute-on-string' instead of `make-coding-system' for avoiding the error "Coding system already exists". 1998-08-27 Tanaka Akira * emu-e20.el (test-ccl-eof-block-cs): Check if it is already defined. 1998-08-27 Tanaka Akira * emu-e20.el (ccl-use-symbol-as-program): New constant. (make-ccl-coding-system): New function. (ccl-encoder-eof-block-is-broken): New constant. (ccl-decoder-eof-block-is-broken): New constant. (ccl-eof-block-is-broken): New constant. (ccl-execute): Redefine if `ccl-use-symbol-as-program' is nil. (ccl-execute-on-string): Ditto. 1998-08-24 MORIOKA Tomohiko * emu-20.el (mime-charset-coding-system-alist): Add `unknown' and `x-unknown'. 1998-08-12 MORIOKA Tomohiko * emu-x20.el: Redefine coding-system `ctext' if `ctext-dos' is not found. 1998-08-12 Katsumi Yamaoka * emu-nemacs.el, emu-mule.el (decode-mime-charset-region): Add new argument `lbt'. (decode-mime-charset-string): Likewise. * emu-mule.el (mime-charset-to-coding-system): Regard `CRLF', `LF', `CR' as line break code type. 1998-08-11 MORIOKA Tomohiko * emu-latin1.el, emu-nemacs.el (write-region-as-raw-text-CRLF): Fix regexp to canonicalize line break code. * emu-mule.el (write-region-as-raw-text-CRLF): Use `write-region-as-binary' to specify `lockname' in MULE 2.3 based on 19.34. 1998-08-11 MORIOKA Tomohiko * emu-x20.el: Redefine coding-system `iso-2022-jp-2' if `iso-2022-jp-2-dos' is not found. 1998-08-11 Katsumi Yamaoka * emu-mule.el (write-region-as-raw-text-CRLF): New function. * emu-18.el (generate-new-buffer-name): New function (Emacs 19 emulating function). 1998-08-10 MORIOKA Tomohiko * emu-nemacs.el, emu-latin1.el (write-region-as-raw-text-CRLF): New function. * emu-20.el (write-region-as-raw-text-CRLF): Renamed from `write-region-as-CRLF'. 1998-08-10 MORIOKA Tomohiko * emu-latin1.el, emu-e20.el (decode-mime-charset-region): Add new argument `lbt'. (decode-mime-charset-string): Likewise. * emu-x20.el: Define coding-system `raw-text-unix' and `raw-text-mac' if they are not found. Redefine coding-system `euc-kr' if `euc-kr-dos' is not found. (decode-mime-charset-region-default): Add new argument `lbt'. (decode-mime-charset-region-with-iso646-unification): Likewise. (decode-mime-charset-region-for-hz): Likewise. (decode-mime-charset-region): Likewise. (decode-mime-charset-string): Likewise. * emu-20.el (mime-charset-to-coding-system): Regard `CRLF', `LF', `CR' as line break code type. 1998-08-07 MORIOKA Tomohiko * emu-x20.el: Define coding-system `raw-text-dos' if it is not found. * emu-20.el (write-region-as-CRLF): New function. 1998-07-21 MORIOKA Tomohiko * install.el (install-detect-elisp-directory): Modify for anything older than Emacs 19.28. 1998-06-22 MORIOKA Tomohiko * APEL: Version 8.16 was released. * emu.el, emu-x20.el: Require `emu-20' in emu-x20.el. 1998-06-20 MORIOKA Tomohiko * emu-x20.el (set-buffer-multibyte): Use `defsubst-maybe' instead of `defmacro-maybe'. 1998-06-20 MORIOKA Tomohiko * emu-20.el, emu-x20.el: Move `insert-file-contents-as-binary' and `insert-file-contents-as-raw-text' from emu-x20.el to emu-20.el. * emu-e20_2.el, emu-e20.el: Move `insert-file-contents-as-binary' and `insert-file-contents-as-raw-text' from emu-e20.el to emu-e20_2.el. 1998-06-09 MORIOKA Tomohiko * APEL: Version 8.15 was released. * emu-xemacs.el: Use nil as variable of `condition-case' to avoid byte-compiler warning. 1998-06-09 MORIOKA Tomohiko * emu.el (when): New macro. 1998-06-09 Katsumi Yamaoka * emu.el (split-string): New function (Emacs 20/XEmacs 20 emulating function). * emu.el (with-temp-buffer): New macro (Emacs 20/XEmacs 20 emulating macro). * emu.el (with-current-buffer): New macro (Emacs 20/XEmacs 20 emulating macro). * emu.el (save-current-buffer): New macro (Emacs 20/XEmacs 20 emulating macro). 1998-06-08 MORIOKA Tomohiko * mule-caesar.el (mule-caesar-region): Don't compare charset with 'us-ascii. 1998-06-08 MORIOKA Tomohiko * emu-mule.el (split-char): fixed. 1998-06-08 Katsumi Yamaoka * emu-mule.el (insert-file-contents-as-binary): Use file-coding-system-for-read instead of file-coding-system. 1998-06-06 MORIOKA Tomohiko * APEL: Version 8.14 was released. 1998-06-05 MORIOKA Tomohiko * emu-mule.el, emu-latin1.el (split-char): New function. 1998-06-05 MORIOKA Tomohiko * emu-mule.el, emu-nemacs.el (insert-file-contents-as-raw-text): New function. * emu-latin1.el (insert-file-contents-as-raw-text): New alias. * emu-e20.el, emu-x20.el (insert-file-contents-as-raw-text): New function. 1998-06-05 MORIOKA Tomohiko * emu-x20.el: Move `split-char' check and repair code from mule-caesar.el. * mule-caesar.el: Move `split-char' check and repair code to emu-x20.el; require 'emu. 1998-06-05 MORIOKA Tomohiko * emu-nemacs.el, emu-mule.el (set-buffer-multibyte): New function. * emu-latin1.el, emu-x20.el (set-buffer-multibyte): New macro. * mule-caesar.el (mule-caesar-region): Use '(cdr (split-char ...)) instead of `char-to-octet-list'; abolish function `char-to-octet-list'. 1998-06-05 MORIOKA Tomohiko * emu-mule.el (charset-chars): New function. * mule-caesar.el (split-char): Redefine if it has bug. (char-to-octet-list): Use `split-char'. 1998-06-01 MORIOKA Tomohiko * APEL: Version 8.13 was released. * emu-x20.el (mime-character-unification-limit-size): Change default value to 2048. 1998-05-28 MORIOKA Tomohiko * emu.el (string-as-unibyte): New macro. 1998-05-17 MORIOKA Tomohiko * APEL: Version 8.12 was released. 1998-05-15 MORIOKA Tomohiko * emu-x20.el (mime-character-unification-limit-size): New variable. (decode-mime-charset-region-with-iso646-unification): Don't unify if size of region is larger than 'mime-character-unification-limit-size. 1998-05-15 MORIOKA Tomohiko * emu-x20.el, emu-nemacs.el, emu-mule.el, emu-latin1.el, emu-e20_3.el (looking-at-as-unibyte): New alias. * emu-e20_2.el (looking-at-as-unibyte): New function. 1998-05-14 MORIOKA Tomohiko * emu-x20.el: Delete definition of 'detect-mime-charset-region because it is defined in emu-20.el. * emu-20.el (write-region-as-binary): fixed. * emu-20.el (write-region-as-mime-charset): New function. * emu-latin1.el (write-region-as-mime-charset): New alias. * emu-nemacs.el, emu-mule.el (write-region-as-mime-charset): New function. 1998-05-09 MORIOKA Tomohiko * APEL: Version 8.11 was released. 1998-05-09 MORIOKA Tomohiko * emu.el (string-as-multibyte): New macro (Emacs 20.3 emulating macro). 1998-05-07 MORIOKA Tomohiko * APEL: Version 8.10 was released. * README.en (What's APEL?): Delete description about atype.el; add description about calist.el. 1998-05-07 MORIOKA Tomohiko * calist.el (ctree-add-calist-with-default): fixed. 1998-05-06 MORIOKA Tomohiko * APEL: Version 8.9 was released. 1998-05-06 MORIOKA Tomohiko * calist.el (ctree-find-calist): fixed duplicated result. 1998-05-05 MORIOKA Tomohiko * APEL: Version 8.8 was released. 1998-05-03 MORIOKA Tomohiko * calist.el (ctree-find-calist): Delete duplicated result. 1998-04-30 MORIOKA Tomohiko * APEL: Version 8.7 was released. 1998-04-29 MORIOKA Tomohiko * calist.el (ctree-match-calist-partially): New function. 1998-04-28 MORIOKA Tomohiko * APEL: Version 8.6 was released. 1998-04-27 MORIOKA Tomohiko * emu-20.el (mime-charset-coding-system-alist): Use 'raw-text for us-ascii in default setting. 1998-04-27 MORIOKA Tomohiko * calist.el (ctree-find-calist): Add optional argument 'all. 1998-04-27 MORIOKA Tomohiko * calist.el (ctree-find-calist): Renamed from 'ctree-match-calist-all. 1998-04-25 MORIOKA Tomohiko * APEL: Version 8.5 was released. 1998-04-25 MORIOKA Tomohiko * calist.el (ctree-match-calist-all): New function. 1998-04-24 MORIOKA Tomohiko * APEL-ELS: Comment out 'atype and 'file-detect. 1998-04-24 MORIOKA Tomohiko * emu-x20.el (decode-mime-charset-string): Use 'decode-mime-charset-region. 1998-04-24 MORIOKA Tomohiko * emu-x20.el (mime-charset-decoder-alist): Add 'decode-mime-charset-region-for-hz for 'hz-gb-2312. (decode-mime-charset-region-for-hz): New function. 1998-03-25 MORIOKA Tomohiko * emu-x20.el (mime-charset-decoder-alist): New variable. (decode-mime-charset-region-default): New function. (mime-iso646-character-unification-alist): New variable. (mime-unified-character-face): New variable. (decode-mime-charset-region-with-iso646-unification): New function. (decode-mime-charset-region): Use 'mime-charset-decoder-alist. 1998-04-22 MORIOKA Tomohiko * APEL: Version 8.4 was released. * EMU-ELS: Don't use HIRAGANA LETTER A (あ) to detect character indexing (Emacs 20.3 or later). 1998-04-20 MORIOKA Tomohiko * emu-x20.el, emu-e20.el (charsets-mime-charset-alist): Add 'shift_jis. * EMU-ELS (emu-modules): fixed. 1998-04-17 MORIOKA Tomohiko * APEL: Version 8.3 was released. * README.en (What's APEL?): Modify for latest emu. 1998-04-17 MORIOKA Tomohiko * emu-nemacs.el, emu-mule.el, emu-latin1.el, emu-e20_2.el, emu-e20_3.el, emu-x20.el (char-next-index): Fixed. 1998-04-17 MORIOKA Tomohiko * EMU-ELS (emu-modules): Add 'emu-e20_3 for Emacs 20.3. * emu-e20_3.el: New module. * emu-e20.el: Select to require 'emu-e20_2 or 'emu-e20_3. * emu-e20_2.el (set-buffer-multibyte): New function. * emu-e20.el (insert-file-contents-as-binary): Use 'set-buffer-multibyte. 1998-04-17 MORIOKA Tomohiko * emu-e20_2.el, emu-e20.el, EMU-ELS: Separate Emacs 20.1 and 20.2 depended definitions from emu-e20.el to emu-e20_2.el. 1998-04-17 MORIOKA Tomohiko * emu.el: emu-x20.el doesn't require 'emu-xemacs and 'emu-20. 1998-04-16 MORIOKA Tomohiko * emu-x20.el: Don't require 'emu-xemacs and 'emu-20. * emu.el: emu-latin1.el does not require 'emu-xemacs or 'emu-e19. * emu-latin1.el: Don't require 'emu-xemacs or 'emu-e19. 1998-04-16 MORIOKA Tomohiko * emu-mule.el, emu-latin1.el, emu-e20.el, emu-e19.el, emu-19.el, EMU-ELS: Rename emu-19.el -> emu-e19.el. * emu.el, emu-latin1.el, emu-e19.el, EMU-ELS: Rename emu-e19.el -> emu-latin1.el. 1998-04-13 MORIOKA Tomohiko * APEL: Version 8.2 was released. * README.en (What's APEL?): Remove description about std11.el and std11-parse.el. * install.el (install-detect-elisp-directory): Modify regexp to allow trailing `/'. 1998-04-13 MORIOKA Tomohiko * APEL: Version 8.1 was released. 1998-04-11 MORIOKA Tomohiko * emu-x20.el (encode-mime-charset-region): Use 'defun instead of 'defsubst. (decode-mime-charset-region): Use 'defun instead of 'defsubst. 1998-04-10 MORIOKA Tomohiko * APEL-ELS (apel-modules): Delete 'std11 and 'std11-parse. * std11.el, std11-parse.el: Abolish std11-parse.el and std11.el (moved to RIME). 1998-04-09 MORIOKA Tomohiko * APEL: Version 8.0 was released. 1998-04-09 MORIOKA Tomohiko * emu-e19.el, emu-e20.el: Use 'make-obsolete for 'string-columns. * emu-e19.el, emu-nemacs.el, emu-x20.el: Abolish obsolete alias `char-leading-char'. 1998-04-09 MORIOKA Tomohiko * emu-e20.el, emu-mule.el, emu-nemacs.el, emu-e19.el: Abolish obsolete alias `char-columns'. * emu-e19.el: Abolish constant `charset-ascii' and `charset-iso8859-1'. (charset-description): New implementation. (charset-registry): New implementation. (charset-width): Renamed from `charset-columns'; new implementation. (find-charset-string): New implementation. (find-charset-region): New implementation. (charsets-mime-charset-alist): New initial value. (detect-mime-charset-region): New implementation. (char-charset): New implementation. * emu-nemacs.el: Rename `charset-columns' -> `charset-width'. * emu-nemacs.el: Abolish constant `charset-ascii' and `charset-jisx0208'. Abolish constant `lc-ascii' and `lc-jp'. (charset-description): New implementation. (charset-registry): New implementation. (charset-columns): New implementation. (find-charset-string): New implementation. (find-charset-region): New implementation. (charsets-mime-charset-alist): New initial value. (char-charset): New implementation. 1998-04-09 MORIOKA Tomohiko * emu-e20.el, emu-x20.el, emu-e19.el, emu-mule.el, emu-nemacs.el (char-next-index): New macro. 1998-03-26 MORIOKA Tomohiko * APEL: Version 7.6 was released. * std11.el: Require 'std11-parse when compile. 1998-03-25 MORIOKA Tomohiko * calist.el (ctree-match-calist): Prefer normal choice than default choice. 1998-03-25 MORIOKA Tomohiko * emu-20.el (mime-charset-coding-system-alist): Use 'defcustom. 1998-03-25 MORIOKA Tomohiko * emu-20.el: Require 'wid-edit when compile. 1998-03-25 MORIOKA Tomohiko * APEL: Version 7.5 was released. 1998-03-24 MORIOKA Tomohiko * calist.el (calist-field-match-method-obarray): New variable. (define-calist-field-match-method): New function. (calist-default-field-match-method): New function. (calist-field-match-method): New function. (calist-field-match): New function. (ctree-match-calist): Use `calist-field-match'. 1998-03-23 MORIOKA Tomohiko * APEL: Version 7.4 was released. 1998-03-21 MORIOKA Tomohiko * emu-nemacs.el, emu-mule.el, emu-e19.el, emu-x20.el, emu-e20.el (insert-file-contents-as-binary): Renamed from `insert-binary-file-contents'; add `insert-binary-file-contents' as obsolete alias. 1998-03-21 MORIOKA Tomohiko * emu-e20.el (insert-binary-file-contents-literally): New alias for `insert-file-contents-literally'. * emu-x20.el (insert-binary-file-contents-literally): Moved from emu-20.el. * emu-20.el: Move `insert-binary-file-contents-literally' to emu-x20.el. 1998-03-21 MORIOKA Tomohiko * emu-e20.el (insert-binary-file-contents): Must save `enable-multibyte-characters'. * emu-x20.el (insert-binary-file-contents): Moved from emu-20.el. * emu-20.el: Move `insert-binary-file-contents' to emu-x20.el. * calist.el (ctree-match-calist): Rename local variables. 1998-03-16 MORIOKA Tomohiko * APEL: Version 7.3 was released. 1998-03-15 MORIOKA Tomohiko * APEL-ELS: Add calist.el. * calist.el: New module. 1998-03-13 Katsumi Yamaoka * emu-mule.el (charsets-mime-charset-alist) fixed. 1998-03-13 MORIOKA Tomohiko * APEL: Version 7.2 was released. 1998-03-11 MORIOKA Tomohiko * emu-nemacs.el, emu-mule.el, emu-e19.el, emu-20.el (write-region-as-binary): New function. 1998-03-11 MORIOKA Tomohiko * emu-nemacs.el, emu-mule.el, emu-e19.el, emu-20.el (insert-binary-file-contents): New function. 1998-03-08 Shuhei KOBAYASHI * README.en (Bug reports): Modify description of tm mailing list. 1998-02-12 MORIOKA Tomohiko * APEL: Version 7.1.1 was released. * README.en (Bug reports): Modify for APEL. 1998-02-04 MORIOKA Tomohiko * std11.el (std11-msg-id-string): New function. (std11-fill-msg-id-list-string): New function. * std11-parse.el (std11-parse-msg-id): New function. 1998-01-10 MORIOKA Tomohiko * emu-x20.el: If coding-system `iso-2022-jp' unifies JIS X 0201-Latin to ASCII and JIS X 0208-1978 to JIS X 0208-1983 by code-point, copy coding-system `iso-2022-7bit' to `iso-2022-jp' to avoid this problem. 1997-11-08 MORIOKA Tomohiko * APEL: Version 7.1 was released. 1997-11-06 MORIOKA Tomohiko * README.en (What's APEL?): Rename file-detect.el -> path-util.el. 1997-11-06 MORIOKA Tomohiko * install.el, filename.el (filename-filters): Use path-util.el instead of file-detect.el. * path-util.el, file-detect.el, APEL-ELS: Rename file-detect.el -> path-util.el (file name should be less than 13 bytes). 1997-11-06 MORIOKA Tomohiko * emu-19.el (tl:make-overlay): New alias. (tl:overlay-put): New alias. (tl:overlay-buffer): New alias. 1997-11-05 MORIOKA Tomohiko * APEL: Version 4.2 was released. 1997-11-05 MORIOKA Tomohiko * APEL-MK (config-apel): Regard LISPDIR. 1997-11-05 MORIOKA Tomohiko * emu-19.el (tl:make-overlay): New obsolete function (for tm-7.106). (tl:overlay-put): New obsolete function (for tm-7.106). (tl:overlay-buffer): New obsolete function (for tm-7.106). 1997-11-04 MORIOKA Tomohiko * APEL: Version 4.1 was released. * APEL-MK (compile-apel): Use `config-apel'; don't use `add-to-list' for compatibility. (install-apel): Don't call `config-apel' directly. * APEL-CFG: Add load-path setting. 1997-11-04 MORIOKA Tomohiko * emu-20.el (mime-charset-list): New inline-function. (widget-mime-charset-prompt-value-history): New variable. (mime-charset): New widget. (widget-mime-charset-prompt-value): New function. (widget-mime-charset-action): New function. (default-mime-charset): Use `defcustom'. * emu-20.el (default-mime-charset): Modify DOC-string. * emu-mule.el (charsets-mime-charset-alist): New implementation. * emu-e20.el (encode-mime-charset-region, decode-mime-charset-region, encode-mime-charset-string, decode-mime-charset-string): New function (copied from emu-20.el); check `enable-multibyte-characters'. * emu-x20.el (encode-mime-charset-region, decode-mime-charset-region, encode-mime-charset-string, decode-mime-charset-string): New function (copied from emu-20.el). * emu-20.el: Move function `encode-mime-charset-region', `decode-mime-charset-region', `encode-mime-charset-string' and `decode-mime-charset-string' to emu-x20.el and emu-e20.el. 1997-10-04 MORIOKA Tomohiko * emu-x20.el (charsets-mime-charset-alist): Use MIME charset `iso-8859-5' for cyrillic. 1997-09-26 MORIOKA Tomohiko * APEL: Version 3.4.4 was released. 1997-09-25 MORIOKA Tomohiko * std11-parse.el (std11-special-char-list): Fix order for regexp. 1997-09-25 MORIOKA Tomohiko * APEL: Version 3.4.3 was released. * README.en: Modify for Emacs 20. 1997-09-25 MORIOKA Tomohiko * std11-parse.el (std11-special-char-list): New constant; abolish `std11-special-chars'. (std11-atom-regexp): Use it. (std11-analyze-special): Use it; Don't use `find'. 1997-09-09 MORIOKA Tomohiko * APEL: Version 3.4.2 was released. * README.en (What's APEL?): Add emu-20.el. 1997-09-07 MORIOKA Tomohiko * emu-20.el (mime-charset-to-coding-system): Use defsubst again; modify implementation. * emu-20.el (mime-charset-to-coding-system): Use `find-coding-system'. * emu-20.el (mime-charset-coding-system-alist): Use `find-coding-system'. * emu-e20.el (find-coding-system): New inline function. * emu.el (defsubst-maybe): New macro. 1997-09-03 MORIOKA Tomohiko * emu-20.el (mime-charset-to-coding-system): Use `defun' instead of `defsubst'. 1997-09-02 MORIOKA Tomohiko * APEL: Version 3.4.1 was released. 1997-08-30 MAEDA Shugo * emu-mule.el (decode-coding-region, encode-coding-string): New function. (decode-coding-string): Modify DOC-string. (cf. [cmail:3366]) 1997-08-30 MORIOKA Tomohiko * emu.el (defconst-maybe): New macro. (emacs-major-version, emacs-minor-version): Use `defconst-maybe'. * emu.el (charsets-to-mime-charset): Abolish unused local variable `csl'. * emu-e20.el, emu-20.el: Move function `detect-mime-charset-region' from emu-e20.el to emu-20.el. * emu-20.el: Use `defsubst' for `{encode|decode}-mime-charset-{region|string}'. * emu-e20.el (detect-mime-charset-region): Use `find-charset-region'. 1997-08-30 MORIOKA Tomohiko * emu-x20.el, emu-e20.el, emu-20.el: Move function `{encode|decode}-mime-charset-{region|string}' from emu-e20.el and emu-x20.el to emu-20.el. * emu-x20.el, emu-e20.el, emu-20.el: Move `default-mime-charset' from emu-e20.el and emu-x20.el to emu-20.el. 1997-08-30 MORIOKA Tomohiko * emu-20.el (mime-charset-coding-system-alist): Don't use `coding-system-p' for symbol. (mime-charset-to-coding-system): Ditto; modify DOC-string. 1997-08-30 MORIOKA Tomohiko * emu-20.el (mime-charset-coding-system-alist): Check MIME charset is defined as coding-system. * emu-x20.el, emu-e20.el, emu-20.el: Move `mime-charset-coding-system-alist' from emu-e20.el and emu-x20.el to emu-20.el. * emu-20.el (*noconv*): Add DOC-string. 1997-08-30 MORIOKA Tomohiko * emu-20.el (mime-charset-to-coding-system): Check coding-system-p even if CHARSET is found in `mime-charset-coding-system-alist'. * emu-x20.el: Use function `mime-charset-to-coding-system' in emu-20.el. * emu-20.el (mime-charset-to-coding-system): Use `defsubst'. * emu-e20.el, emu-20.el: Move function `mime-charset-to-coding-system' from emu-e20.el to emu-20.el. 1997-08-30 MORIOKA Tomohiko * emu-x20.el, emu-e20.el, emu-20.el: Move features about Binary accessing from emu-e20.el and emu-x20.el to emu-20.el. * EMU-ELS (emu-modules): Add emu-20 for Emacs 20 and XEmacs/mule. 1997-08-30 MORIOKA Tomohiko * emu-x20.el (mime-charset-to-coding-system): Use `defsubst'. * emu-x20.el (default-mime-charset): Add DOC-string. (mime-charset-coding-system-alist): Add `us-ascii'. 1997-08-25 MORIOKA Tomohiko * emu-x20.el (mime-charset-coding-system-alist): iso-2022-jp-2 is defined as coding-system. 1997-07-14 MORIOKA Tomohiko * emu: Version 7.44 was released. * APEL: Version 3.4 was released. 1997-07-13 MORIOKA Tomohiko * emu-e20.el (mime-charset-coding-system-alist): `iso-2022-ss2-7' -> `iso-2022-7bit-ss2'. (for Emacs 20.0.90) 1997-07-13 MORIOKA Tomohiko * std11-parse.el (std11-parse-ascii-token): Allow non-ASCII characters in comments. 1997-06-28 MORIOKA Tomohiko * richtext.el: Add autoload comments for `richtext-encode' and `richtext-decode'. * emu.el: Check richtext.el is bundled. 1997-06-28 MORIOKA Tomohiko * file-detect.el: Add autoload comments for function `add-path', `add-latest-path', `get-latest-path', `file-installed-p', `exec-installed-p', `module-installed-p' and variable `exec-suffix-list'. 1997-06-08 MORIOKA Tomohiko * emu-x20.el (mime-charset-coding-system-alist): iso-8859-1, hz-gb-2312, cn-gb-2312, gb2312, cn-big5 and koi8-r were defined as coding-system. * emu-x20.el: Don't require cyrillic. Thu May 22 04:46:57 1997 MORIOKA Tomohiko * emu-mule.el (make-char): New alias. * emu-e20.el: Alias `make-character' was abolished. Sat May 10 19:39:12 1997 MORIOKA Tomohiko * README.en (What's APEL?): Add std11 and mule-caesar.el. 1997-05-09 MORIOKA Tomohiko * emu: Version 7.43.1 was released. * APEL: Version 3.3.2 was released. Fri May 9 01:23:44 1997 MORIOKA Tomohiko * APEL-ELS: Add mule-caesar.el. * mule-caesar.el: New file. Thu May 8 22:21:36 1997 MORIOKA Tomohiko * emu-x20.el: Use `binary' instead of `no-conversion' temporary. 1997-04-30 MORIOKA Tomohiko * emu: Version 7.43 was released. * APEL: Version 3.3.1 was released. * emu-x20.el: several changes for XEmacs 20.1-b12. Wed Apr 30 12:40:32 1997 MORIOKA Tomohiko * Makefile: add `release'. Mon Apr 28 16:47:30 1997 MORIOKA Tomohiko * Makefile: `TARFILE' was abolished. Tue Apr 8 09:47:40 1997 MORIOKA Tomohiko * emu.el (point-at-eol): New function. Sat Apr 5 16:23:23 1997 MORIOKA Tomohiko * emu-nemacs.el: `tl:available-face-attribute-alist' -> `emu:available-face-attribute-alist'. * emu-nemacs.el, emu-mule.el: `tl:make-overlay' -> `make-overlay'; `tl:overlay-put' -> `overlay-put'. Sat Apr 5 06:50:48 1997 MORIOKA Tomohiko * emu-xemacs.el: Alias `tl:make-overlay', `tl:overlay-put' and `tl:overlay-buffer' were abolished; Function `tl:move-overlay' were abolished. * emu-19.el: Alias `tl:make-overlay', `tl:overlay-put' and `tl:overlay-buffer' were abolished. * emu-18.el: `tl:overlay-buffer' -> `overlay-buffer'. * emu-xemacs.el: Require overlay. * emu.el (char-or-char-int-p): New XEmacs 20 emulating alias. * emu.el (minibuffer-prompt-width): New function for Emacs 18 and XEmacs. Thu Apr 3 17:14:39 1997 MORIOKA Tomohiko * APEL-ELS: std11.el and std11-parse.el were moved from mu/. 1997-03-20 MORIOKA Tomohiko * APEL: Version 3.3 was released. * APEL-CFG (EMU_PREFIX, EMU_DIR): New variables. * APEL-MK: install emu. Thu Mar 20 06:09:03 1997 MORIOKA Tomohiko * Makefile: Add README.en. Thu Mar 20 06:08:29 1997 MORIOKA Tomohiko * file-detect.el: Header and DOC-strings were modified. Thu Mar 20 06:03:51 1997 MORIOKA Tomohiko * README.en: New file. Thu Mar 20 05:48:02 1997 MORIOKA Tomohiko * filename.el: Add DOC-strings. * APEL-MK (install-apel): Use `compile-apel'. * Makefile (install): Don't depend on `elc'. Thu Mar 20 02:04:19 1997 MORIOKA Tomohiko * APEL-MK: Setting for load-path and requiring install were moved from APEL-CFG. (install-apel): Compile apel-modules. * APEL-CFG: Setting for load-path and requiring install were moved to APEL-MK. 1997-03-14 MORIOKA Tomohiko * APEL: Version 3.2 was released. Fri Mar 14 09:54:04 1997 MORIOKA Tomohiko * file-detect.el (get-latest-path): Check directory is exist or not. Fri Mar 14 09:25:15 1997 MORIOKA Tomohiko * APEL-ELS: Add install.el. Fri Mar 14 07:24:37 1997 MORIOKA Tomohiko * Makefile, APEL-MK, APEL-CFG: New file. 1997-03-10 MORIOKA Tomohiko * atype.el (field-unify): fixed. 1997-03-10 MORIOKA Tomohiko * filename.el (filename-filters): Use `exec-installed-p' instead of `file-installed-p' to search "kakasi". 1997-03-10 MORIOKA Tomohiko * file-detect.el (module-installed-p): Use function `exec-installed-p'. * file-detect.el (exec-suffix-list): New variable. (exec-installed-p): New function. 1997-03-04 MORIOKA Tomohiko * APEL-ELS (apel-modules): Add filename.el. * APEL-ELS: Initial revision 1997-03-04 MORIOKA Tomohiko * filename.el (filename-replacement-alist): Don't use function `string-to-char-list' and `expand-char-ranges'; Don't require tl-str. (filename-special-filter): Use function `assoc-if' instead of `ASSOC'; Require cl instead of tl-list. (poly-funcall): New inline-function; copied from tl-list.el. 1997-03-03 MORIOKA Tomohiko * atype.el: Alias `fetch-field', `fetch-field-value', `put-field' and `delete-field' were abolished. Don't require tl-str and tl-list. Require alist. (field-unify): Don't use function `symbol-concat'. (assoc-unify): Use function `assoc' directly; use function `put-alist' directly; use function `del-alist' directly. * atype.el: Function `put-fields' was abolished. * atype.el: tl-atype.el was renamed to atype.el. 1997-03-03 MORIOKA Tomohiko * atype.el: tl-atype.el was renamed to atype.el. 1997-03-03 MORIOKA Tomohiko * file-detect.el (file-installed-p): Fixed DOC-string. 1997-02-28 Tomohiko Morioka * alist.el: New module; separated from tl-list.el. wanderlust-apel-82eb232/EMU-ELS000066400000000000000000000035151426577707700161760ustar00rootroot00000000000000;;; EMU-ELS --- list of EMU modules to install. -*-Emacs-Lisp-*- ;;; Commentary: ;; APEL-MK imports `emu-modules' and `emu-modules-to-compile' from here. ;;; Code: (defvar emu-modules-not-to-compile nil) (defvar emu-modules-to-compile nil) ;; We use compile-time evaluation heavily. So, order of compilation is ;; very significant. For example, loading some module before compiling ;; it will cause "compile-time" evaluation many times. (defvar emu-modules (nconc ;; modules are sorted by compilation order. '(static broken) ;; product information. '(product apel-ver) ;; poe modules; poe modules depend on static. '(pym poe) ;; pcustom modules; pcustom modules depend on poe. '(pcustom) ;; pccl modules; pccl modules depend on broken. '(pccl-20 pccl) ;; pces modules; pces modules depend on poe. ;; pces-e20 depends pces-20, so we compile pces-20 first. '(pces-20 pces-e20 pces) ;; poem modules; poem modules depend on pces. '(poem-e20_3 poem-e20 poem) ;; mcharset modules; mcharset modules depend on poem and pcustom. ;; mcs-e20 depends mcs-20, so we compile mcs-20 first. '(mcs-20 mcs-e20 mcharset) ;; invisible modules; provided for backward compatibility with old "tm". '(inv-23 invisible) ;; emu modules; provided for backward compatibility with old "tm". '(emu) ;; emu submodules; text/richtext and text/enriched support. '(richtext) ;; mule-caesar.el; part of apel-modules, but it is version-dependent. '(mule-caesar))) ;; Generate `emu-modules-to-compile' from `emu-modules-not-to-compile' ;; and `emu-modules'. (let ((modules emu-modules-not-to-compile)) (setq emu-modules-to-compile (copy-sequence emu-modules)) (while modules (setq emu-modules-to-compile (delq (car modules) emu-modules-to-compile) modules (cdr modules)))) ;;; EMU-ELS ends here wanderlust-apel-82eb232/Makefile000066400000000000000000000020111426577707700166320ustar00rootroot00000000000000# # Makefile for APEL. # VERSION = 10.8 TAR = tar RM = /bin/rm -f CP = /bin/cp -p EMACS = emacs XEMACS = xemacs FLAGS = -batch -q -no-site-file -l APEL-MK PREFIX = NONE LISPDIR = NONE PACKAGEDIR = NONE VERSION_SPECIFIC_LISPDIR = NONE GOMI = *.elc ARCHIVE_DIR_PREFIX = /home/kanji/tomo/public_html/lemi/dist default: elc what-where: $(EMACS) $(FLAGS) -f what-where-apel \ $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR) elc: $(EMACS) $(FLAGS) -f compile-apel \ $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR) install: elc $(EMACS) $(FLAGS) -f install-apel \ $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR) # $(MAKE) package: $(XEMACS) $(FLAGS) -f compile-apel-package \ $(PACKAGEDIR) install-package: package $(XEMACS) $(FLAGS) -f install-apel-package \ $(PACKAGEDIR) # $(MAKE) clean: -$(RM) $(GOMI) release: -$(RM) $(ARCHIVE_DIR_PREFIX)/apel/apel-$(VERSION).tar.gz mv /tmp/apel-$(VERSION).tar.gz $(ARCHIVE_DIR_PREFIX)/apel cd $(ARCHIVE_DIR_PREFIX)/semi/ ; ln -s ../apel/apel-$(VERSION).tar.gz . wanderlust-apel-82eb232/README000066400000000000000000000020111426577707700160520ustar00rootroot00000000000000-*- outline -*- [README for APEL-LB] * What's APEL-LB? APEL-LB is a variant of APEL. The most remarkable feature is that it uses lexical binding and supports only Emacs 24.5 and later. See README.[en|ja] for details of original APEL. * GitHub Development of APEL-LB uses Git. The latest developing version is available at the following Git repository: % git clone https://github.com/wanderlust/apel.git Or you can view the APEL-LB repository via WWW at: https://github.com/wanderlust/apel We hope you will join the open development. * Bug reports If you write bug-reports and/or suggestions for improvement, please send them to the Wanderlust Mailing List. See https://wanderlust.github.io/wl-docs/wl.html#Wanderlust-Mailing-List for details. Alternatively, You can also use GitHub. If you send a pull request, please embed unindented ChangeLog entries in commit messages like Emacs's. See "Commit messages" section of Emacs's CONTRIBUTE file. https://git.savannah.gnu.org/cgit/emacs.git/plain/CONTRIBUTE wanderlust-apel-82eb232/README.en000066400000000000000000000252611426577707700164670ustar00rootroot00000000000000-*- outline -*- [README for APEL (English Version)] * 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 pym.el --- macros for poe. ** poem.el This module provides basic functions to write portable MULE programs. poem-ltn1.el --- for Emacs 19/XEmacs without MULE poem-20.el --- shared module between Emacs 20 and XEmacs-MULE 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-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-19.el --- for Emacs 19 inv-23.el --- for Emacs 23 inv-xemacs.el --- for XEmacs ** mcharset.el This modules provides MIME charset related features. mcs-ltn1.el --- for Emacs 19/XEmacs without MULE 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 ** pccl.el --- utility to write portable CCL program pccl-20.el --- for Emacs 20/XEmacs-21-MULE ** alist.el: utility for Association-list ** calist.el: utility for condition tree and condition/situation-alist ** path-util.el: utility for path management or file detection ** filename.el: utility to make file-name ** install.el: utility to install emacs-lisp package ** mule-caesar.el: ROT 13-47-48 Caesar rotation utility ** emu.el This module provides emu bundled in tm-7.106 compatibility. It required poe, poem and mcharset. richtext.el --- text/richtext module for Emacs 19.29 or later, XEmacs 19.14 or later ** pcustom.el --- provide portable custom environment ** product.el --- Functions for product version information. * Installation ** run in expanded place 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 You can specify the emacs command name, for example % make EMACS=xemacs If `EMACS=...' is omitted, EMACS=emacs is used. ** make install If you want to install other directories, please do following: % make install You can specify the emacs command name, for example % make install EMACS=xemacs 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: % make install PREFIX=~/ 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: /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: % make install LISPDIR=~/elisp 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 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 You can specify other optional settings by editing the file APEL-CFG. Please read comments in it. ** install as a XEmacs package If you want to install to XEmacs package directory, please do following: % make install-package You can specify the emacs command name, for example % make install-package XEMACS=xemacs-21 If `XEMACS=...' is omitted, XEMACS=xemacs is used. You can specify the package directory, for example: % make install PACKAGEDIR=~/.xemacs If `PACKAGEDIR=...' is omitted, the first existing package directory is used. Notice that XEmacs package system requires XEmacs 21.0 or later. ** make.bat (for MS-DOS family) 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. In make.bat, a line which contain `rem' in its beginning is a comment. You have to insert or delete `rem', if necessary. 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 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; c:\usr\meadow\site-lisp and meadow version dependent modules to; c:\usr\meadow\1.10\site-lisp Please edit make.bat for your own environment and run make.bat 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. 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@lists.chise.org (you can post a message to the ML, even if you are not a member). * load-path (for Emacs or MULE) 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: -------------------------------------------------------------------- (normal-top-level-add-to-load-path '("apel")) -------------------------------------------------------------------- If you are using Emacs 20.3 or later or XEmacs, there are no need to set up load-path with normal installation. * How to use ** 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. *** Function del-alist (ITEM ALIST) If there is a pair whose key is ITEM, delete it from ALIST. *** Function set-alist (SYMBOL ITEM VALUE) 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) Modify alist DEFAULT into alist 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. ** path-util *** 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'. You can use following PATH styles: load-path relative: "PATH" (it is searched from `default-load-path') home directory relative: "~/PATH" "~USER/PATH" absolute path: "/FOO/BAR/BAZ" You can specify following OPTIONS: 'all-paths --- search from `load-path' instead of `default-load-path' 'append --- add PATH to the last of `load-path' *** 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'. 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") 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'. *** 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. 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) Return absolute-path of FILE if FILE exists in PATHS. If PATHS is omitted, `load-path' is used. *** Function exec-installed-p (FILE &optional PATHS SUFFIXES) 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 module-installed-p (MODULE &optional PATHS) Return non-nil if MODULE is provided or exists in PATHS. If PATHS is omitted, `load-path' is used. ** filename *** Function replace-as-filename (string) Return safety file-name from STRING. It refers variable `filename-filters'. It is list of functions for file-name filter. Default filter refers following variables: **** Variable filename-limit-length Limit size of 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 If you write bug-reports and/or suggestions for improvement, please send them to the APEL Mailing List: apel-en@lists.chise.org (English) apel-ja@lists.chise.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, please see the descriptions of the following pages: http://lists.chise.org/mailman/listinfo/apel-en (English) http://lists.chise.org/mailman/listinfo/apel-ja (Japanese) * Download The latest release of APEL can be obtained from: http://git.chise.org/elisp/dist/apel/ * Git Development of APEL uses Git. So the latest developing version is available at the following Git repository: % git clone http://git.chise.org/git/elisp/apel.git Or you can view the APEL repository via WWW at: http://git.chise.org/gitweb/?p=elisp/apel.git If you would like to join Git based development, please declare it in the APEL mailing list. We hope you will join the open development. wanderlust-apel-82eb232/README.ja000066400000000000000000000422471426577707700164620ustar00rootroot00000000000000-*- outline -*- [APEL の README (日本語版)] * APEL とは? APEL は "A Portable Emacs Library." の略です。これは以下のモジュールで 構成されています: ** poe.el 主に最新の emacs 環境のための基礎的な関数と特殊形式/マクロの emulation のモジュール。 poe-xemacs.el --- XEmacs用 pym.el --- poe のための macros ** poem.el 移植性の高い MULE プログラムを書くための基礎的な関数を提供する。 poem-ltn1.el --- MULE なし Emacs 19/XEmacs 用 poem-20.el --- Emacs 20 と XEmacs-MULE の共有モジュール poem-e20_3.el --- Emacs 20.3 用 poem-xm.el --- XEmacs-MULE 用 ** pces.el 移植性の高い character encoding スキーム (coding-system) を提供する。 pces-20.el --- coding-system 機能を持つ Emacs 20 and XEmacs 用 pces-e20.el --- Emacs 20 用 pces-raw.el --- coding-system 機能を持たない emacsen 用 pces-xfc.el --- file coding 機能を持つ XEmacs 用 pces-xm.el --- XEmacs-mule 用 ** invisible.el --- 不可視 region に関する機能を提供する inv-19.el --- for Emacs 19 inv-23.el --- for Emacs 23 inv-xemacs.el --- for XEmacs ** mcharset.el --- MIME charset 関連の機能を提供する mcs-ltn1.el --- MULE Emacs 19/XEmacs 用 mcs-20.el --- Emacs 20 と XEmacs-MULE 用の共有モジュール mcs-e20.el --- Emacs 20 用 mcs-xm.el --- XEmacs-MULE 用 mcs-xmu.el --- XEmacs-MULE 用 (ISO646 文字の単一化) ** static.el --- 静的評価のためのユーティリティー ** broken.el --- Emacs の壊れている機能の情報を提供する ** pccl.el --- 移植可能な CCL プログラムを書くためのユーティリティー pccl-20.el --- Emacs 20/XEmacs-21-MULE 用 ** alist.el: 連想リストのためのユーティリティー ** calist.el: 状態木と状態/状況連想リスト用のユーティリティー ** path-util.el: パス管理とファイル探索のためのユーティリティー ** filename.el:ファイル名を作るためのユーティリティ ** install.el: emacs-lisp パッケージインストールするためのユーティリティー ** mule-caesar.el: ROT 13-47-48 Caesar 変換のユーティリティー ** emu.el tm-7.106 に入っていた emu との互換性を保つためのモジュール。poe, poem, mcharset を require する。 richtext.el --- Emacs 19.29 かそれ以降 XEmacs 19.14 かそれ以降のた めの text/richtext モジュール ** pcustom.el --- 移植性の高い custom 環境を提供する ** product.el --- プロダクトのバージョン情報のための機能を提供するモジュール。 * インストール ** 展開した場所で実行 他のディレクトリーにインストールしたくないなら、以下のことだけをやって ください (MS-DOS 系の OS のために MAKEIT.BAT が用意されています。 MAKEIT.BAT の利用については下記「MAKEIT.BAT を利用する (MS-DOS 系 OS の場合)」を参照して下さい)。: % make emacs のコマンド名を指定することができます。例えば、 % make EMACS=xemacs `EMACS=...' が省略されると、Emacs=emacs が使われます。 ** make install 他のディレクトリーにインストールしたいなら、以下のことをしてください: % make install emacs のコマンド名を指定することができます。例えば、 % make install EMACS=xemacs `EMACS=...' が省略されると、Emacs=emacs が使われます。 Emacs Lisp プログラムとシェルスクリプトのためのディレクトリー木の接頭 辞 (prefix) を指定することができます。例えば、 % make install PREFIX=~/ `PREFIX=...' が省略されると、指定された emacs コマンドのディレクトリー 木の接頭辞が使用されます (おそらく /usr/local です)。 例えば、PREFIX=/usr/local と Emacs 20.2 が指定されれば、以下のディレク トリー木が作成されます。 /usr/local/share/emacs/20.2/site-lisp/ --- emu /usr/local/share/emacs/site-lisp/apel/ --- APEL Emacs Lisp プログラムのための lisp ディレクトリーを指定することができ ます。例えば、: % make install LISPDIR=~/elisp emu モジュールがインストールされる、バージョン特有の lisp ディレクトリー を指定することもできます。例えば、: % make install VERSION_SPECIFIC_LISPDIR=~/elisp どのファイルが emu モジュールか apel モジュールの一部なのか、それらが どこにインストールされるかを知りたいときは、次のようなコマンドを入力す ることができます。 % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp ファイル APEL-CFG を編集することで他の選択自由な設定を指定することがで きます。その中のコメントを読んでください。 ** XEmacs のパッケージとしてインストールする XEmacs のパッケージディレクトリーにインストールする場合は、以下のこと をしてください: % make install-package emacs のコマンド名を指定することができます。例えば、 % make install-package XEMACS=xemacs-21 `XEMACS=...' が省略されると、XEMACS=xemacs が使用されます。 パッケージのディレクトリーを指定することができます。例えば: % make install PACKAGEDIR=~/.xemacs `PACKAGEDIR=...' が省略されると、存在するパッケージディレクトリーの最 初のものが使われます。 XEmacs のパッケージシステムは XEmacs 21.0 かそれ以降を要求することに注 意してください。 ** MAKEIT.BAT を利用する (MS-DOS 系 OS の場合) MS-DOS 系の OS のために MAKEIT.BAT と MAKE1.BAT が用意されています (cygwin 環境を利用している方は make.exe と Makefile を利用することがで きます)。MAKEIT.BAT は、インストールの環境変数を設定した後に MAKE1.BAT を呼出します。MAKE1.BAT によって実際のインストールに必要なコマンドが実 行されます。 これらを利用するには MAKEIT.BAT を編集することが必要です。安全のためす べての環境変数のデフォルトの値は空文字列になっています。お使いのシステ ムにあわせてこれらの変数を指定してください。 開発、動作確認が Windows でしか行なわれていないため、古いバージョンの DOS では動作しない可能性があります。不都合を発見した方は apel-ja@lists.chise.org までご連絡下さい。 *** MAKEIT.BAT の編集 DOS のバッチファイルの中では `rem' が行頭にある行はコメントとして扱わ れます。必要に応じ、MAKEIT.BAT の各行頭に `rem' を挿入したり、または削 除したりして下さい。 また、バッチファイル内の `%変数名%' は実行時の環境変数の値と置き換えら れます。 c:\usr\Meadow にインストールされている 1.10 の Meadow を使用 している場合の変数設定の例を挙げます。 set PREFIX=c:\usr\Meadow set EMACS=%PREFIX%\1.10\bin\meadow95.exe set EXEC_PREFIX= set LISPDIR=%PREFIX%\site-lisp set VERSION_SPECIFIC_LISPDIR=%PREFIX%\1.10\site-lisp set DEFAULT_MAKE_ARG=elc 上記の例では、meadow のバイナリが c:\usr\Meadow\1.10\bin\meadow95.exe にインストールされていることを前提にしています。その前提に基づき、APEL のモジュールのうち、meadow のバージョンに依存しないモジュールを c:\usr\Meadow\site-lisp に、バージョンに依存するモジュールを c:\usr\Meadow\1.10\site-lisp にインストールしようとします。 19.3x 以前の Emacs (例えば 19.28 ベースの Mule for Windows) にはバージョ ン依存の site-lisp ディレクトリ (上記の例で言えば c:\usr\Meadow\1.10\site-lisp) が存在せず、ディフォルトでは load-path も 通っていません。この場合は c:\usr\mule\site-lisp などのバージョン非依存 の site-lisp ディレクトリに APEL の全てのモジュールを入れれば良いでしょ う。 Demacs の設定例を準備することができませんでした。Demacs に APEL をイン ストールした方は、設定例を apel-ja@lists.chise.org に送って下さい (非 購読者でも送信はできます)。 *** MAKEIT.BAT の編集の際、知っておくと便利な Tips 引数を指定しないで MAKEIT.BAT を実行させると、DEFAULT_MAKE_ARG に指定 されている target が実行されます (ディフォルトは安全のために target が 空になっており、メッセージだけ吐いて止まるようになってます)。 MAKEIT.BAT を編集して、 set DEFAULT_MAKE_ARG=install と記述しておくことで、MAKEIT.BAT をダブルクリックするだけでインストー ルすることができます。 MAKEIT.BAT は、下記のいずれかのファイルが存在するときは、そのファイル の設定を優先して読み込むので、適宜編集した MAKEIT.BAT は下記のいずれか のファイルとして、コピーしてキープしておくと、アップグレードの際に MAKEIT.BAT を再編集する必要がなく便利です。 優先順に並べると下記のようになります。下記の 1-x は apel 専用、2-x は 同種の MAKEIT.BAT を利用している cmail, skk と共通して利用することがで きます。 1-1. %HOME%\.elispmk.apel.bat 1-2. %HOME%\elisp\elispmk.apel.bat 1-3. %HOME%\config\elispmk.apel.bat 1-4. c:\Program Files\Meadow\elispmk.apel.bat 1-5. c:\Meadow\elispmk.apel.bat 1-6. d:\Meadow\elispmk.apel.bat 2-1. %HOME%\.elispmk.bat 2-2. %HOME%\elisp\elispmk.bat 2-3. %HOME%\config\elispmk.bat 2-4. c:\Program Files\Meadow\elispmk.bat 2-5. c:\Meadow\elispmk.bat 2-6. d:\Meadow\elispmk.bat *** バッチファイル実行時の注意 MAKEIT.BAT, MAKE1.BAT は環境変数を利用しているために、実行時に環境変数 のためのメモリ割当てができずに、エラーになることがあります。Windows を 利用している場合は、DOSPROMPT のプロパティで環境変数の初期サイズが「自 動」になっていると、環境変数が設定できないというエラーが出るので、適当 な値 (2048 など) を入れておく必要があります。non Windows の DOS の場合 は、config.sys に SHELL=C:\COMMAND.COM /E:4096 /P などと書き、環境変数に割当て可能なメモリを確保します。DOS のバージョン によって /E:nnn で指定できる環境変数領域のサイズの制約が異なり、指定の 仕方が違ったり、特定の値を指定すると不具合を生じる可能性があるので詳し くはご利用の version のマニュアル等をご覧下さい。 * load-path(Emacs と MULE の場合) もし Emacs もしくは Mule をお使いなら、APEL を install した場所を load-path に追加してください。もし Emacs 19.29 以降または Emacs 20.1, 20.2 を使って初期設定でインストールしたのなら、次のように subdirs.el を書くことができます。 -------------------------------------------------------------------- (normal-top-level-add-to-load-path '("apel")) -------------------------------------------------------------------- もし Emacs 20.3 以降もしくは XEmacs を使って普通にインストールするの ならば、load-path を設定する必要はありません。 * 使い方 ** alist *** 関数 put-alist (ITEM VALUE ALIST) ALIST を ITEM の値が VALUE になるように修正します。car が ITEM であ る対が存在すれば、その cdr を VALUE で置き換えます。そのような対がな ければ、新しい対 (ITEM . VALUE) を作り、car が新しい対で、cdr が ALIST である新しい連想リストを返します。 *** 関数 del-alist (ITEM ALIST) 連想リスト ALIST に key が ITEM である対があれば、それを ALIST から取 り除きます。 *** 関数 set-alist (SYMBOL ITEM VALUE) SYMBOL で指定されている連想リストを、ITEM の値が VALUE であるように修 正します。 例. (set-alist 'auto-mode-alist "\\.pln$" 'text-mode) *** 関数 modify-alist (MODIFIER DEFAULT) 連想リスト DEFAULT を連想リスト MODIFIER に修正します。 *** 関数 set-modified-alist (SYMBOL MODIFIER) SYMBOL の値を連想リスト MODIFIER に修正します。SYMBOL は連想リストであ る必要があります。それが束縛されていなければ、その値を nil とみなしま す。 ** path-util *** 関数 add-path (PATH &rest OPTIONS) PATH が `default-load-path' のディレクトリーの下に存在して、 `load-path'に存在しないときに、それを `load-path' に追加します。 次のような PATH の様式を使うことができます: load-path からの相対: "PATH" (それは `default-load-path から探されま す。) ホームディレクトリーからの相対: "~/PATH" "~USER/PATH" 絶対パス: "/FOO/BAR/BAZ" 次のような OPTIONS を指定することができます: 'all-paths --- `default-load-path の代わり `load-path' から探しま す。 'append --- PATH を `load-path' の最後に追加します。 *** 関数 add-latest-path (PATTERN &optional ALL-PATHS) 正規表現 PATTERN に合致した最新のパスが `default-load-path' の下に存在 していて、`load-path' の下に存在していないときにそれを `load-path' に 追加します。 例えば、bbdb-1.50 と bbdb-1.51 が site-lisp の下にあって、bbdb-1.51 が bbdb-1.50 よりも新しく、site-lisp が /usr/local/share/emacs/site-lisp であるときは、 (add-latest-path "bbdb") は "/usr/local/share/emacs/site-lisp/bbdb-1.51" を `load-path' の先頭 に追加します。 省略可能な引数 ALL-PATHS が指定されると、`default-load-path' のかわり に `load-path' から探します。 *** 関数 get-latest-path (PATTERN &optional ALL-PATHS) 正規表現 PATTERN に合致する default-load-path にある最新のディレクトリー を返します。省略可能な引数 ALL-PATHS が指定されると、default-load-path の代わりに load-path の全てから探します。 例. (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))) *** 関数 file-installed-p (FILE &optional PATHS) FILE が PATHS に存在した場合、FILE の絶対パスを返します。PATHS が省略 されると、`load-path' が使われます。 *** 関数 exec-installed-p (FILE &optional PATHS SUFFIXES) FILE が PATHS に存在した場合に FILE の絶対パスを返します。PATHS が省略 されると、`exec-path' が使われます。SUFFIXES が省略されると、 `exec-suffix-list' が使われます。 *** 関数 module-installed-p (MODULE &optional PATHS) MODULE が提供されている (provided) か、PATHS に存在する場合に nil で ない値を返します。PATHS が省略されると、`load-path' が使われます。 ** filename *** 関数 replace-as-filename (string) STRING から安全なファイル名を返します。 それは変数 'filename-filters' を参照します。その変数はファイル名の選 別器のための関数のリストです。初期設定の選別器は以下の変数を参照してい ます。 **** 変数 filename-limit-length ファイル名の長さの制限。 **** 変数 filename-replacement-alist 文字と文字列が対になったリストの連想リストです。文字のリストはファイル 名として許されない文字を現わします。 * バグ報告 バグ報告や改善の提案を書いたときは、是非 APEL メーリングリストに送って ください: apel-ja@lists.chise.org (日本語) apel-en@lists.chise.org (英語) APEL ML を通して、APEL のバグを報告したり、APEL の最新のリリースを取得 したり、APEL の将来の拡張の議論をしたりすることができます。APEL ML に 参加するには、以下の頁の記述を見て手続きを行ってください: http://lists.chise.org/mailman/listinfo/apel-ja (日本語) http://lists.chise.org/mailman/listinfo/apel-en (英語) * Download 最新の APEL のリリースは以下の場所から取得できます: http://git.chise.org/elisp/dist/apel/ * Git APEL の開発には Git を使っています。最新の開発バージョンを以下の Gitリ ポジトリーから取得できます。 % git clone http://git.chise.org/git/elisp/apel.git この APEL のリポジトリーは WWW 経由でも閲覧することができます: http://git.chise.org/gitweb/?p=elisp/apel.git Git に基づいた開発に参加したいときは、APEL メーリングリストでその旨を 宣言してください。 我々は多くの方がこの開かれた開発に参加してくださることを望んでいます。 wanderlust-apel-82eb232/alist.el000066400000000000000000000056631426577707700166500ustar00rootroot00000000000000;;; alist.el --- utility functions for association list -*- lexical-binding: t -*- ;; Copyright (C) 1993,1994,1995,1996,1998,2000 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: alist ;; 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 ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: ;;;###autoload (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 elm value) alist) (cons (cons key value) alist)))) ;;;###autoload (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 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 key value (symbol-value symbol)))) ;;;###autoload (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 key (symbol-value symbol))))) ;;;###autoload (defun modify-alist (modifier default) "Store elements in the alist MODIFIER in the alist DEFAULT. Return the modified alist." (mapc (lambda (as) (setq default (put-alist (car as)(cdr as) default))) modifier) default) ;;;###autoload (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 ;;; (require 'product) (product-provide (provide 'alist) (require 'apel-ver)) ;;; alist.el ends here wanderlust-apel-82eb232/apel-pkg.el000066400000000000000000000002021426577707700172140ustar00rootroot00000000000000(define-package "apel" "10.8" "A Portable Emacs Library provides support for portable Emacs Lisp programs" '((emacs "24.5"))) wanderlust-apel-82eb232/apel-ver.el000066400000000000000000000043161426577707700172410ustar00rootroot00000000000000;;; apel-ver.el --- Declare APEL version -*- lexical-binding: t -*- ;; Copyright (C) 1999, 2000, 2003, 2006 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI ;; Keiichi Suzuki ;; Keywords: compatibility ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; Put the following lines to each file of APEL package. ;; ;; (require 'product) ;; (product-provide (provide FEATURE) (require 'apel-ver)) ;;; Code: (require 'product) ; beware of circular dependency. (provide 'apel-ver) ; these two files depend on each other. (product-provide 'apel-ver ;; (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)) ; Released 30 December 2000 ;; (product-define "APEL" nil '(10 4)) ; Released 04 October 2002 ;; (product-define "APEL" nil '(10 5)) ; Released 06 June 2003 ;; (product-define "APEL" nil '(10 6)) ; Released 05 July 2003 ;; (product-define "APEL" nil '(10 7)) ; Released 14 February 2007 (product-define "APEL-LB" nil '(10 8)) ) (defun apel-version () "Print APEL version." (interactive) (let ((product-info (product-string-1 'apel-ver t))) (if (called-interactively-p 'interactive) (message "%s" product-info) product-info))) ;;; @ End. ;;; ;;; apel-ver.el ends here wanderlust-apel-82eb232/atype.el000066400000000000000000000102171426577707700166450ustar00rootroot00000000000000;;; atype.el --- atype functions -*- lexical-binding: t -*- ;; Copyright (C) 1994,1995,1996,1997 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Version: $Id$ ;; Keywords: atype ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'alist) ;;; @ field unifier ;;; (defun field-unifier-for-default (a b) (let ((ret (cond ((equal a b) a) ((null (cdr b)) a) ((null (cdr a)) b) ))) (if ret (list nil ret nil) ))) (defun field-unify (a b) (let ((f (let ((type (car a))) (and (symbolp type) (intern (concat "field-unifier-for-" (symbol-name type))) )))) (or (fboundp f) (setq f (function field-unifier-for-default)) ) (funcall f a b) )) ;;; @ type unifier ;;; (defun assoc-unify (class instance) (catch 'tag (let ((cla (copy-alist class)) (ins (copy-alist instance)) (r class) cell aret ret prev rest) (while r (setq cell (car r)) (setq aret (assoc (car cell) ins)) (if aret (if (setq ret (field-unify cell aret)) (progn (if (car ret) (setq prev (put-alist (car (car ret)) (cdr (car ret)) prev)) ) (if (nth 2 ret) (setq rest (put-alist (car (nth 2 ret)) (cdr (nth 2 ret)) rest)) ) (setq cla (put-alist (car cell)(cdr (nth 1 ret)) cla)) (setq ins (del-alist (car cell) ins)) ) (throw 'tag nil) )) (setq r (cdr r)) ) (setq r (copy-alist ins)) (while r (setq cell (car r)) (setq aret (assoc (car cell) cla)) (if aret (if (setq ret (field-unify cell aret)) (progn (if (car ret) (setq prev (put-alist (car (car ret)) (cdr (car ret)) prev)) ) (if (nth 2 ret) (setq rest (put-alist (car (nth 2 ret)) (cdr (nth 2 ret)) rest)) ) (setq cla (del-alist (car cell) cla)) (setq ins (put-alist (car cell)(cdr (nth 1 ret)) ins)) ) (throw 'tag nil) )) (setq r (cdr r)) ) (list prev (append cla ins) rest) ))) (defun get-unified-alist (db al) (let ((r db) ret) (catch 'tag (while r (if (setq ret (nth 1 (assoc-unify (car r) al))) (throw 'tag ret) ) (setq r (cdr r)) )))) ;;; @ utilities ;;; (defun delete-atype (atl al) (let* ((r atl) oal) (setq oal (catch 'tag (while r (if (nth 1 (assoc-unify (car r) al)) (throw 'tag (car r)) ) (setq r (cdr r)) ))) (delete oal atl) )) (defun remove-atype (sym al) (and (boundp sym) (set sym (delete-atype (eval sym) al)) )) (defun replace-atype (atl old-al new-al) (let ((r atl)) (if (catch 'tag (while r (if (nth 1 (assoc-unify (car r) old-al)) (throw 'tag (rplaca r new-al)) ) (setq r (cdr r)) )) atl))) (defun set-atype (sym al &rest options) (if (null (boundp sym)) (set sym al) (let* ((replacement (memq 'replacement options)) (ignore-fields (car (cdr (memq 'ignore options)))) (remove (or (car (cdr (memq 'remove options))) (let ((ral (copy-alist al))) (mapc (lambda (type) (setq ral (del-alist type ral))) ignore-fields) ral))) ) (set sym (or (if replacement (replace-atype (eval sym) remove al) ) (cons al (delete-atype (eval sym) remove) ) ))))) ;;; @ end ;;; (require 'product) (product-provide (provide 'atype) (require 'apel-ver)) ;;; atype.el ends here wanderlust-apel-82eb232/broken.el000066400000000000000000000073041426577707700170060ustar00rootroot00000000000000;;; broken.el --- Emacs broken facility information registry -*- lexical-binding: t -*- ;; Copyright (C) 1998, 1999 Tanaka Akira ;; Author: Tanaka Akira ;; Keywords: emulation, compatibility, incompatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'static) (eval-and-compile (defvar notice-non-obvious-broken-facility t "If the value is t, non-obvious broken facility is noticed when `broken-facility' macro is expanded.") (defun broken-facility-internal (facility &optional docstring assertion) "Declare that FACILITY emulation is broken if ASSERTION is nil." (when docstring (put facility 'broken-docstring docstring)) (put facility 'broken (not assertion))) (defun broken-p (facility) "t if FACILITY emulation is broken." (get facility 'broken)) (defun broken-facility-description (facility) "Return description for FACILITY." (get facility 'broken-docstring)) ) (put 'broken-facility 'lisp-indent-function 1) (defmacro broken-facility (facility &optional docstring assertion no-notice) "Declare that FACILITY emulation is broken if ASSERTION is nil. ASSERTION is evaluated statically. FACILITY must be symbol. If ASSERTION is not omitted and evaluated to nil and NO-NOTICE is nil, it is noticed." `(static-if ,assertion (eval-and-compile (broken-facility-internal ',facility ,docstring t)) (eval-when-compile (when (and ',assertion (not ',no-notice) notice-non-obvious-broken-facility) (message "BROKEN FACILITY DETECTED: %s" ,docstring)) nil) (eval-and-compile (broken-facility-internal ',facility ,docstring nil)))) (put 'if-broken 'lisp-indent-function 2) (defmacro if-broken (facility then &rest else) "If FACILITY is broken, expand to THEN, otherwise (progn . ELSE)." `(static-if (broken-p ',facility) ,then ,@else)) (put 'when-broken 'lisp-indent-function 1) (defmacro when-broken (facility &rest body) "If FACILITY is broken, expand to (progn . BODY), otherwise nil." `(static-when (broken-p ',facility) ,@body)) (put 'unless-broken 'lisp-indent-function 1) (defmacro unless-broken (facility &rest body) "If FACILITY is not broken, expand to (progn . BODY), otherwise nil." `(static-unless (broken-p ',facility) ,@ body)) (defmacro check-broken-facility (facility) "Check FACILITY is broken or not. If the status is different on compile(macro expansion) time and run time, warn it." `(if-broken ,facility (unless (broken-p ',facility) (message "COMPILE TIME ONLY BROKEN FACILITY DETECTED: %s" (or ',(broken-facility-description facility) (broken-facility-description ',facility)))) (when (broken-p ',facility) (message "RUN TIME ONLY BROKEN FACILITY DETECTED: %s" (or (broken-facility-description ',facility) ', (broken-facility-description facility)))))) ;;; @ end ;;; (require 'product) (product-provide (provide 'broken) (require 'apel-ver)) ;;; broken.el ends here wanderlust-apel-82eb232/calist.el000066400000000000000000000226411426577707700170060ustar00rootroot00000000000000;;; calist.el --- Condition functions -*- lexical-binding: t -*- ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Author: MORIOKA Tomohiko ;; Keywords: condition, alist, tree ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'cl-lib) (require 'alist) (defvar calist-package-alist nil) (defvar calist-field-match-method-obarray nil) (defun find-calist-package (name) "Return a calist-package by NAME." (cdr (assq name calist-package-alist))) (defun define-calist-field-match-method (field-type function) "Set field-match-method for FIELD-TYPE to FUNCTION." (fset (intern (symbol-name field-type) calist-field-match-method-obarray) function)) (defun use-calist-package (name) "Make the symbols of package NAME accessible in the current package." (mapatoms (lambda (sym) (if (intern-soft (symbol-name sym) calist-field-match-method-obarray) (signal 'conflict-of-calist-symbol (list (format "Conflict of symbol %s" sym))) (if (fboundp sym) (define-calist-field-match-method sym (symbol-function sym)) ))) (find-calist-package name))) (defun make-calist-package (name &optional use) "Create a new calist-package." (let ((calist-field-match-method-obarray (make-vector 7 0))) (set-alist 'calist-package-alist name calist-field-match-method-obarray) (use-calist-package (or use 'standard)) calist-field-match-method-obarray)) (defun in-calist-package (name) "Set the current calist-package to a new or existing calist-package." (setq calist-field-match-method-obarray (or (find-calist-package name) (make-calist-package name)))) (in-calist-package 'standard) (defun calist-default-field-match-method (calist field-type field-value) (let ((s-field (assoc field-type calist))) (cond ((null s-field) (cons (cons field-type field-value) calist) ) ((eq field-value t) calist) ((equal (cdr s-field) field-value) calist)))) (define-calist-field-match-method t (function calist-default-field-match-method)) (defsubst calist-field-match-method (field-type) (symbol-function (or (intern-soft (if (symbolp field-type) (symbol-name field-type) field-type) calist-field-match-method-obarray) (intern-soft "t" calist-field-match-method-obarray)))) (defsubst calist-field-match (calist field-type field-value) (funcall (calist-field-match-method field-type) calist field-type field-value)) (defun ctree-match-calist (rule-tree alist) "Return matched condition-alist if ALIST matches RULE-TREE." (if (null rule-tree) alist (let ((type (car rule-tree)) (choices (cdr rule-tree)) default) (catch 'tag (while choices (let* ((choice (car choices)) (choice-value (car choice))) (if (eq choice-value t) (setq default choice) (let ((ret-alist (calist-field-match alist type (car choice)))) (if ret-alist (throw 'tag (if (cdr choice) (ctree-match-calist (cdr choice) ret-alist) ret-alist)) )))) (setq choices (cdr choices))) (if default (let ((ret-alist (calist-field-match alist type t))) (if ret-alist (if (cdr default) (ctree-match-calist (cdr default) ret-alist) ret-alist)))) )))) (defun ctree-match-calist-partially (rule-tree alist) "Return matched condition-alist if ALIST matches RULE-TREE." (if (null rule-tree) alist (let ((type (car rule-tree)) (choices (cdr rule-tree)) default) (catch 'tag (while choices (let* ((choice (car choices)) (choice-value (car choice))) (if (eq choice-value t) (setq default choice) (let ((ret-alist (calist-field-match alist type (car choice)))) (if ret-alist (throw 'tag (if (cdr choice) (ctree-match-calist-partially (cdr choice) ret-alist) ret-alist)) )))) (setq choices (cdr choices))) (if default (let ((ret-alist (calist-field-match alist type t))) (if ret-alist (if (cdr default) (ctree-match-calist-partially (cdr default) ret-alist) ret-alist))) (calist-field-match alist type t)) )))) (defun ctree-find-calist (rule-tree alist &optional all) "Return list of condition-alist which matches ALIST in RULE-TREE. If optional argument ALL is specified, default rules are not ignored even if other rules are matched for ALIST." (if (null rule-tree) (list alist) (let ((type (car rule-tree)) (choices (cdr rule-tree)) default dest) (while choices (let* ((choice (car choices)) (choice-value (car choice))) (if (eq choice-value t) (setq default choice) (let ((ret-alist (calist-field-match alist type (car choice)))) (if ret-alist (if (cdr choice) (let ((ret (ctree-find-calist (cdr choice) ret-alist all))) (while ret (let ((elt (car ret))) (or (member elt dest) (setq dest (cons elt dest)) )) (setq ret (cdr ret)) )) (or (member ret-alist dest) (setq dest (cons ret-alist dest))) ))))) (setq choices (cdr choices))) (or (and (not all) dest) (if default (let ((ret-alist (calist-field-match alist type t))) (if ret-alist (if (cdr default) (let ((ret (ctree-find-calist (cdr default) ret-alist all))) (while ret (let ((elt (car ret))) (or (member elt dest) (setq dest (cons elt dest)) )) (setq ret (cdr ret)) )) (or (member ret-alist dest) (setq dest (cons ret-alist dest))) )))) ) dest))) (defun calist-to-ctree (calist) "Convert condition-alist CALIST to condition-tree." (if calist (let* ((cell (car calist))) (cons (car cell) (list (cons (cdr cell) (calist-to-ctree (cdr calist)) )))))) (defun ctree-add-calist-strictly (ctree calist) "Add condition CALIST to condition-tree CTREE without default clause." (cond ((null calist) ctree) ((null ctree) (calist-to-ctree calist) ) (t (let* ((type (car ctree)) (values (cdr ctree)) (ret (assoc type calist))) (if ret (catch 'tag (while values (let ((cell (car values))) (if (equal (car cell)(cdr ret)) (throw 'tag (setcdr cell (ctree-add-calist-strictly (cdr cell) (delete ret (copy-alist calist))) )))) (setq values (cdr values))) (setcdr ctree (cons (cons (cdr ret) (calist-to-ctree (delete ret (copy-alist calist)))) (cdr ctree))) ) (catch 'tag (while values (let ((cell (car values))) (setcdr cell (ctree-add-calist-strictly (cdr cell) calist)) ) (setq values (cdr values)))) ) ctree)))) (defun ctree-add-calist-with-default (ctree calist) "Add condition CALIST to condition-tree CTREE with default clause." (cond ((null calist) ctree) ((null ctree) (let* ((cell (car calist)) (type (car cell)) (value (cdr cell))) (cons type (list (list t) (cons value (calist-to-ctree (cdr calist))))) )) (t (let* ((type (car ctree)) (values (cdr ctree)) (ret (assoc type calist))) (if ret (catch 'tag (while values (let ((cell (car values))) (if (equal (car cell)(cdr ret)) (throw 'tag (setcdr cell (ctree-add-calist-with-default (cdr cell) (delete ret (copy-alist calist))) )))) (setq values (cdr values))) (if (assq t (cdr ctree)) (setcdr ctree (cons (cons (cdr ret) (calist-to-ctree (delete ret (copy-alist calist)))) (cdr ctree))) (setcdr ctree (cl-list* (list t) (cons (cdr ret) (calist-to-ctree (delete ret (copy-alist calist)))) (cdr ctree))) )) (catch 'tag (while values (let ((cell (car values))) (setcdr cell (ctree-add-calist-with-default (cdr cell) calist)) ) (setq values (cdr values))) (let ((cell (assq t (cdr ctree)))) (if cell (setcdr cell (ctree-add-calist-with-default (cdr cell) calist)) (let ((elt (cons t (calist-to-ctree calist)))) (or (member elt (cdr ctree)) (setcdr ctree (cons elt (cdr ctree))) )) ))) ) ctree)))) (defun ctree-set-calist-strictly (ctree-var calist) "Set condition CALIST in CTREE-VAR without default clause." (set ctree-var (ctree-add-calist-strictly (symbol-value ctree-var) calist))) (defun ctree-set-calist-with-default (ctree-var calist) "Set condition CALIST to CTREE-VAR with default clause." (set ctree-var (ctree-add-calist-with-default (symbol-value ctree-var) calist))) ;;; @ end ;;; (require 'product) (product-provide (provide 'calist) (require 'apel-ver)) ;;; calist.el ends here wanderlust-apel-82eb232/emu.el000066400000000000000000000051431426577707700163130ustar00rootroot00000000000000;;; emu.el --- Emulation module for each Emacs variants -*- lexical-binding: t -*- ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Nemacs, MULE, Emacs/mule, XEmacs ;; This file is part of emu. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'poe) (defvar running-emacs-18 nil) (defvar running-xemacs nil) (defvar running-mule-merged-emacs t) (defvar running-xemacs-with-mule nil) (defvar running-emacs-19 nil) (defvar running-emacs-19_29-or-later t) (defvar running-xemacs-19 nil) (defvar running-xemacs-20-or-later running-xemacs) (defvar running-xemacs-19_14-or-later running-xemacs-20-or-later) ;; mouse (defvar mouse-button-1 [mouse-1]) (defvar mouse-button-2 [mouse-2]) (defvar mouse-button-3 [down-mouse-3]) (require 'poem) (require 'mcharset) (require 'invisible) (defsubst char-list-to-string (char-list) "Convert list of character CHAR-LIST to string." (apply (function string) char-list)) (defalias 'insert-binary-file-contents-literally 'insert-file-contents-literally) ;; old Mule emulating aliases (defun char-category (character) "Return string of category mnemonics for CHAR in TABLE. CHAR can be any multilingual character TABLE defaults to the current buffer's category table." (category-set-mnemonics (char-category-set character))) ;;; @ Mule emulating aliases ;;; ;;; You should not use it. (or (boundp '*noconv*) (defconst *noconv* 'binary "Coding-system for binary. This constant is defined to emulate old MULE anything older than MULE 2.3. It is obsolete, so don't use it.")) ;;; @ without code-conversion ;;; (defalias 'insert-binary-file-contents 'insert-file-contents-as-binary) (make-obsolete 'insert-binary-file-contents 'insert-file-contents-as-binary "17 Sep 1998") ;;; @ end ;;; (require 'product) (product-provide (provide 'emu) (require 'apel-ver)) ;;; emu.el ends here wanderlust-apel-82eb232/file-detect.el000066400000000000000000000024571426577707700177170ustar00rootroot00000000000000;;; file-detect.el --- Path management or file detection utility -*- lexical-binding: t -*- ;; Copyright (C) 1996,1997 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Version: $Id$ ;; Keywords: file detection, install, module ;; Status: obsoleted ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This file is existed only for compatibility. Please use ;; path-util.el instead of this file. ;;; Code: (require 'path-util) (require 'product) (product-provide (provide 'file-detect) (require 'apel-ver)) ;;; file-detect.el ends here wanderlust-apel-82eb232/filename.el000066400000000000000000000110531426577707700173020ustar00rootroot00000000000000;;; filename.el --- file name filter -*- lexical-binding: t -*- ;; Copyright (C) 1996,1997 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko ;; Version: $Id$ ;; Keywords: file name, string ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'path-util) (defsubst poly-funcall (functions argument) "Apply initial ARGUMENT to sequence of FUNCTIONS. FUNCTIONS is list of functions. (poly-funcall \\='(f1 f2 .. fn) arg) is as same as (fn .. (f2 (f1 arg)) ..). For example, (poly-funcall \\='(car number-to-string) \\='(100)) returns \"100\"." (while functions (setq argument (funcall (car functions) argument) functions (cdr functions))) argument) ;;; @ variables ;;; (defvar filename-limit-length 21 "Limit size of file-name.") (defvar filename-replacement-alist '(((?\ ?\t) . "_") ((?! ?\" ?# ?$ ?% ?& ?' ?\( ?\) ?* ?/ ?: ?\; ?< ?> ?? ?\[ ?\\ ?\] ?` ?{ ?| ?}) . "_") (filename-control-p . "")) "Alist list of characters vs. string as replacement. List of characters represents characters not allowed as file-name.") (defvar filename-filters nil "List of functions for file-name filter. Example: (setq filename-filters \\='(filename-special-filter filename-eliminate-top-low-lines filename-canonicalize-low-lines filename-maybe-truncate-by-size filename-eliminate-bottom-low-lines)) Moreover, if you want to convert Japanese filename to roman string by kakasi, (if (exec-installed-p \"kakasi\") (setq filename-filters (append \\='(filename-japanese-to-roman-string) filename-filters)))") ;;; @ filters ;;; (defun filename-japanese-to-roman-string (str) (with-current-buffer (get-buffer-create " *temp kakasi*") (erase-buffer) (insert str) (call-process-region (point-min)(point-max) "kakasi" t t t "-Ha" "-Ka" "-Ja" "-Ea" "-ka") (buffer-string))) (defun filename-control-p (character) (or (< character 32) (= character 127))) (eval-when-compile (defmacro filename-special-filter-1 (string) (let (sref inc-i) (setq sref 'aref inc-i '(1+ i)) `(let ((len (length ,string)) (b 0)(i 0) (dest "")) (while (< i len) (let ((chr (,sref ,string i)) (lst filename-replacement-alist) ret) (while (and lst (not ret)) (if (if (functionp (car (car lst))) (setq ret (funcall (car (car lst)) chr)) (setq ret (memq chr (car (car lst))))) t ; quit this loop. (setq lst (cdr lst)))) (if ret (setq dest (concat dest (substring ,string b i) (cdr (car lst))) i ,inc-i b i) (setq i ,inc-i)))) (concat dest (substring ,string b)))))) (defun filename-special-filter (string) (filename-special-filter-1 string)) (defun filename-eliminate-top-low-lines (string) (if (string-match "^_+" string) (substring string (match-end 0)) string)) (defun filename-canonicalize-low-lines (string) (let ((dest "")) (while (string-match "__+" string) (setq dest (concat dest (substring string 0 (1+ (match-beginning 0))))) (setq string (substring string (match-end 0)))) (concat dest string))) (defun filename-maybe-truncate-by-size (string) (if (and (> (length string) filename-limit-length) (string-match "_" string filename-limit-length)) (substring string 0 (match-beginning 0)) string)) (defun filename-eliminate-bottom-low-lines (string) (if (string-match "_+$" string) (substring string 0 (match-beginning 0)) string)) ;;; @ interface ;;; (defun replace-as-filename (string) "Return safety filename from STRING. It refers variable `filename-filters' and default filters refers `filename-limit-length', `filename-replacement-alist'." (and string (poly-funcall filename-filters string))) ;;; @ end ;;; (require 'product) (product-provide (provide 'filename) (require 'apel-ver)) ;;; filename.el ends here wanderlust-apel-82eb232/ftp.in000066400000000000000000000006271426577707700163260ustar00rootroot00000000000000--<>-{ It is available from http://kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/apel/ --[[message/external-body; access-type=URL; URL*0="http://"; URL*1="www.kanji.zinbun.kyoto-u.ac.jp/~tomo/"; URL*2="lemi/dist/"; URL*3="apel/"; URL*4="apel-VERSION.tar.gz"]] Content-Type: application/octet-stream Content-Disposition: attachment; filename="apel-VERSION.tar.gz" --}-<> wanderlust-apel-82eb232/install.el000066400000000000000000000151211426577707700171700ustar00rootroot00000000000000;;; install.el --- Emacs Lisp package install utility -*- lexical-binding: t -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006 ;; Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Created: 1996/08/18 ;; Keywords: install, byte-compile, directory detection ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'path-util) ; default-load-path ;;; @ compile Emacs Lisp files ;;; (defun compile-elisp-module (module &optional path every-time) (setq module (expand-file-name (symbol-name module) path)) (let ((el-file (concat module ".el")) (elc-file (concat module ".elc"))) (if (or every-time (file-newer-than-file-p el-file elc-file)) (byte-compile-file el-file)))) (defun compile-elisp-modules (modules &optional path every-time) (mapcar (lambda (module) (compile-elisp-module module path every-time)) modules)) ;;; @ install files ;;; (defvar install-overwritten-file-modes (+ (* 64 6)(* 8 4) 4)) ; 0644 (defun install-file (file src dest &optional move overwrite just-print) (if just-print (princ (format "%s -> %s\n" file dest)) (let ((src-file (expand-file-name file src))) (if (file-exists-p src-file) (let ((full-path (expand-file-name file dest))) (if (and (file-exists-p full-path) overwrite) (delete-file full-path)) (copy-file src-file full-path t t) (set-file-modes full-path install-overwritten-file-modes) (if move (catch 'tag (while (and (file-exists-p src-file) (file-writable-p src-file)) (condition-case err (progn (delete-file src-file) (throw 'tag nil)) (error (princ (format "%s\n" (nth 1 err)))))))) (princ (format "%s -> %s\n" file dest))))))) (defun install-files (files src dest &optional move overwrite just-print) (or just-print (file-exists-p dest) (make-directory dest t)) (mapcar (lambda (file) (install-file file src dest move overwrite just-print)) files)) ;;; @@ install Emacs Lisp files ;;; (defun install-elisp-module (module src dest &optional just-print del-elc) (let (el-file elc-file) (let ((name (symbol-name module))) (setq el-file (concat name ".el")) (setq elc-file (concat name ".elc"))) (let ((src-file (expand-file-name el-file src))) (if (not (file-exists-p src-file)) nil (if just-print (princ (format "%s -> %s\n" el-file dest)) (let ((full-path (expand-file-name el-file dest))) (if (file-exists-p full-path) (delete-file full-path)) (copy-file src-file full-path t t) (set-file-modes full-path install-overwritten-file-modes) (princ (format "%s -> %s\n" el-file dest))))) (setq src-file (expand-file-name elc-file src)) (if (not (file-exists-p src-file)) (let ((full-path (expand-file-name elc-file dest))) (if (and del-elc (file-exists-p full-path)) (if just-print (princ (format "%s -> to be deleted\n" full-path)) (delete-file full-path) (princ (format "%s -> deleted\n" full-path))))) (if just-print (princ (format "%s -> %s\n" elc-file dest)) (let ((full-path (expand-file-name elc-file dest))) (if (file-exists-p full-path) (delete-file full-path)) (copy-file src-file full-path t t) (set-file-modes full-path install-overwritten-file-modes) (catch 'tag (while (file-exists-p src-file) (condition-case err (progn (delete-file src-file) (throw 'tag nil)) (error (princ (format "%s\n" (nth 1 err))))))) (princ (format "%s -> %s\n" elc-file dest)))))))) (defun install-elisp-modules (modules src dest &optional just-print del-elc) (or just-print (file-exists-p dest) (make-directory dest t)) (mapcar (lambda (module) (install-elisp-module module src dest just-print del-elc)) modules)) ;;; @ detect install path ;;; ;; install to shared directory (maybe "/usr/local") (defvar install-prefix (if (and (eq system-type 'windows-nt) ; for NTEmacs ;; Exclude the case that built by running the same ;; configure script as on all other platforms. (equal (file-name-nondirectory (expand-file-name "." exec-directory)) "bin")) (expand-file-name "../../.." exec-directory) (expand-file-name "../../../.." data-directory))) (defvar install-elisp-prefix "site-lisp") ;; Avoid compile warning. (eval-when-compile (autoload 'replace-in-string "subr")) (defun install-detect-elisp-directory (&optional prefix elisp-prefix allow-version-specific) (or prefix (setq prefix install-prefix)) (or elisp-prefix (setq elisp-prefix install-elisp-prefix)) (or (catch 'tag (let ((rest (delq nil (copy-sequence default-load-path))) (regexp (concat "^" (regexp-quote (file-name-as-directory (expand-file-name prefix))) ".*/" (regexp-quote elisp-prefix) "/?$")) dir) (while rest (setq dir (car rest)) (if (string-match regexp dir) (if (or allow-version-specific (not (string-match (format "/%d\\.%d" emacs-major-version emacs-minor-version) dir))) (throw 'tag (car rest)))) (setq rest (cdr rest))))) (expand-file-name (concat "share/emacs/" elisp-prefix) prefix))) (defvar install-default-elisp-directory (install-detect-elisp-directory)) ;;; @ for XEmacs package system ;;; (defun install-get-default-package-directory () ;; Dummy function. Do nothing. nil) (defun install-update-package-files (_package _dir &optional _just-print) ;; Dummy function. Do nothing. nil) ;;; @ 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 ;;; (require 'product) (product-provide (provide 'install) (require 'apel-ver)) ;;; install.el ends here wanderlust-apel-82eb232/inv-23.el000066400000000000000000000033541426577707700165450ustar00rootroot00000000000000;;; inv-23.el --- invisible feature implementation for Emacs 23 or later -*- lexical-binding: t -*- ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2010 ;; Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: invisible, text-property, region, Emacs 23 ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (defun enable-invisible ()) (defun disable-invisible ()) (defalias 'end-of-invisible 'disable-invisible) (make-obsolete 'end-of-invisible 'disable-invisible "15 Jun 2010") (defun invisible-region (start end) (if (eq (char-before end) ?\n) (setq end (1- end))) (put-text-property start end 'invisible t)) (defun visible-region (start end) (put-text-property start end 'invisible nil)) (defun next-visible-point (pos) (if (setq pos (next-single-property-change pos 'invisible)) (if (eq ?\n (char-after pos)) (1+ pos) pos) (point-max))) ;;; @ end ;;; (require 'product) (product-provide (provide 'inv-23) (require 'apel-ver)) ;;; inv-23.el ends here wanderlust-apel-82eb232/invisible.el000066400000000000000000000022151426577707700175060ustar00rootroot00000000000000;;; invisible.el --- hide region -*- lexical-binding: t -*- ;; Copyright (C) 1995,1996,1997,1998,1999,2010 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: invisible, text-property, region ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'inv-23) ;;; @ end ;;; (require 'product) (product-provide (provide 'invisible) (require 'apel-ver)) ;;; invisible.el ends here wanderlust-apel-82eb232/make1.bat000077500000000000000000000024451426577707700166760ustar00rootroot00000000000000echo off rem MAKE1.BAT for APEL. rem rem Version: $Id$ rem Last Modified: $Date$ rem --- argument rem --- elc : byte compile rem --- all, install : install rem --- clean : cleaning garbage file rem --- what-where : print where to install rem --- rem --- check calling from make.bat if not "%SUBMAKEOK%"=="OK" goto prnusage set SUBMAKEOK= rem argument check set arg1=%1 if "%arg1%"=="elc" goto compile if "%arg1%"=="all" goto install if "%arg1%"=="install" goto install if "%arg1%"=="what-where" goto listing if "%arg1%"=="clean" goto clean echo Unrecognized argument: specify either 'elc', 'all', echo 'install', 'clean' or 'what-where'. goto pauseend :compile %EMACS% -q -batch -no-site-file -l APEL-MK -f compile-apel NONE %LISPDIR% %VLISPDIR% goto end :install %EMACS% -q -batch -no-site-file -l APEL-MK -f install-apel NONE %LISPDIR% %VLISPDIR% goto end :listing %EMACS% -batch -q -no-site-file -l APEL-MK -f what-where-apel goto end :clean del *.elc rem --- This file should not be executed by itself. Use make.bat. :prnusage echo This file should not be executed by itself. Use make.bat. rem --- If error occurs, stay display until any key is typed. :pauseend echo Type any key when you're done reading the error message. pause :end  wanderlust-apel-82eb232/makeit.bat000077500000000000000000000174011426577707700171500ustar00rootroot00000000000000@echo off rem --- rem --- common install batch file for Meadow & NTEmacs rem --- 1999/07/07, Masaki YATSU mailto:yatsu@aurora.dti.ne.jp rem --- cmail ML member rem --- modified 1999/12/01, Yuh Ohmura, mailto:yutopia@t3.rim.or.jp rem --- modified 2000/12/26, Takeshi Morishima mailto:tm@interaccess.com rem --- date $Date$ rem --- version $Id$ set ELISPMK_APP=apel rem --- Japanese Comments: rem --- rem --- rem --- ɂ‚Ă make1.bat ̃RgQƂĂD rem --- makeit.bat ́ACXg[̊‹ϐݒ肵 rem --- make1.bat ďoăCXg[s܂B rem --- rem --- ϐݒ rem --- ̃RĝƂɂ PREFIX, EMACS, EXEC_PREFIX, LISPDIR, rem --- INFODIR, VERSION_SPECIFIC_LISPDIR ̊eϐCg̊‹ rem --- KɍĐݒ肵ĂD rem --- ɁCEMACS ̒lC rem --- Windows95/98 𗘗pĂ meadow95.exe rem --- WindowsNT4.0 𗘗pĂ meadownt.exe rem --- NTEmacs 𗘗pĂ emacs.exe rem --- w肷̂YȂ悤ɁD rem --- rem --- KXw肪I makeit.bat ͉̂ꂩ̃t@CƂ rem --- Rs[ĂƂD悵Ďs܂B(AbvO[h rem --- ̍ۂ makeit.bat ĕҏWKv܂.) D揇: rem --- rem --- 1-1. %HOME%\.elispmk.%ELISPMK_APP%.bat rem --- 1-2. %HOME%\elisp\elispmk.%ELISPMK_APP%.bat rem --- 1-3. %HOME%\config\elispmk.%ELISPMK_APP%.bat rem --- 1-4. c:\Program Files\Meadow\elispmk.%ELISPMK_APP%.bat rem --- 1-5. c:\Meadow\elispmk.%ELISPMK_APP%.bat rem --- 1-6. d:\Meadow\elispmk.%ELISPMK_APP%.bat rem --- rem --- 2-1. %HOME%\.elispmk.bat rem --- 2-2. %HOME%\elisp\elispmk.bat rem --- 2-3. %HOME%\config\elispmk.bat rem --- 2-4. c:\Program Files\Meadow\elispmk.bat rem --- 2-5. c:\Meadow\elispmk.bat rem --- 2-6. d:\Meadow\elispmk.bat rem --- rem --- ƂȂ܂B rem --- rem --- English Comments: rem --- rem --- Arguments rem --- Please refer to comment section of make1.bat. Makeit.bat rem --- will perform installation procedure by executing make1.bat. rem --- rem --- Specifying variables rem --- After this comment section, PREFIX, EMACS, EXEC_PREFIX, rem --- LISPDIR, INFODIR, VERSION_SPECIFIC_LISPDIR is defined using rem --- 'set' batch command. Please specify them appropriately rem --- according to your Emacs environment. Especially remember to set rem --- the EMACS variable to meadow95.exe if you use Meadow on rem --- Windows95/98, or to meadownt.exe if you use Meadow on rem --- WindowsNT4.0, or to emacs.exe if you use NTEmacs. rem --- rem --- After modification, you may make a copy of makeit.bat as a pre- rem --- configured file as one of the following name. Any future rem --- execution of makeit.bat will automatically use this pre- rem --- configured batch file instead of makeit.bat itself. (When rem --- upgrading new distribution file for example, you do not have to rem --- make modification to makeit.bat again.) A pre-configured batch rem --- file is searched in order listed below: rem --- rem --- 1-1. %HOME%\.elispmk.%ELISPMK_APP%.bat rem --- 1-2. %HOME%\elisp\elispmk.%ELISPMK_APP%.bat rem --- 1-3. %HOME%\config\elispmk.%ELISPMK_APP%.bat rem --- 1-4. c:\Program Files\Meadow\elispmk.%ELISPMK_APP%.bat rem --- 1-5. c:\Meadow\elispmk.%ELISPMK_APP%.bat rem --- 1-6. d:\Meadow\elispmk.%ELISPMK_APP%.bat rem --- rem --- 2-1. %HOME%\.elispmk.bat rem --- 2-2. %HOME%\elisp\elispmk.bat rem --- 2-3. %HOME%\config\elispmk.bat rem --- 2-4. c:\Program Files\Meadow\elispmk.bat rem --- 2-5. c:\Meadow\elispmk.bat rem --- 2-6. d:\Meadow\elispmk.bat rem --- ϐݒ̗ (Example of variable definition) rem --- c:\usr\Meadow ɃCXg[Ă 1.10 Meadow gp rem --- Ăꍇ̐ݒ. (An example of variable definition. In rem --- this example, Meadow 1.10 installed in c:\usr\Meadow directory rem --- is used.) rem --- set PREFIX=c:\usr\Meadow rem --- set EMACS=%PREFIX%\1.10\bin\meadow95.exe rem --- set EXEC_PREFIX= rem --- set LISPDIR=%PREFIX%\site-lisp rem --- set VERSION_SPECIFIC_LISPDIR=%PREFIX%\1.10\site-lisp rem --- set DEFAULT_MAKE_ARG=elc rem --- Ŝ߃ftHg̒lׂ͂ċ󕶎ɂȂĂ܂Bg rem --- ̃VXeɂ킹Ă̕ϐw肵ĂB(To take a rem --- safe side, default values are all set to null strings. Please rem --- specify these variables accordingly for your system.) rem --- ȂADEFAULT_MAKE_ARG ɉ”\Ȓl make1.bat 䗗B rem --- (Please see make1.bat for possible values of DEFAULT_MAKE_ARG.) set PREFIX= set EMACS= set LISPDIR= set DEFAULT_MAKE_ARG= rem --- makeit.bat Ă΂Ăꍇ͍ċAĂяo make1 s if not "%ELISPMK%"=="" goto execsubmk rem --- set ELISPMK=%HOME%\.elispmk.%ELISPMK_APP%.bat if exist %ELISPMK% goto execelmkb set ELISPMK=%HOME%\elisp\elispmk.%ELISPMK_APP%.bat if exist %ELISPMK% goto execelmkb set ELISPMK=%HOME%\config\elispmk.%ELISPMK_APP%.bat if exist %ELISPMK% goto execelmkb set ELISPMK="c:\Program Files\Meadow\elispmk.%ELISPMK_APP%.bat" if exist %ELISPMK% goto execelmkb set ELISPMK=c:\Meadow\elispmk.%ELISPMK_APP%.bat if exist %ELISPMK% goto execelmkb set ELISPMK=d:\Meadow\elispmk.%ELISPMK_APP%.bat if exist %ELISPMK% goto execelmkb rem --- set ELISPMK=%HOME%\.elispmk.bat if exist %ELISPMK% goto execelmkb set ELISPMK=%HOME%\elisp\elispmk.bat if exist %ELISPMK% goto execelmkb set ELISPMK=%HOME%\config\elispmk.bat if exist %ELISPMK% goto execelmkb set ELISPMK="c:\Program Files\Meadow\elispmk.bat" if exist %ELISPMK% goto execelmkb set ELISPMK=c:\Meadow\elispmk.bat if exist %ELISPMK% goto execelmkb set ELISPMK=d:\Meadow\elispmk.bat if exist %ELISPMK% goto execelmkb echo ---- echo INFORMATIVE: No pre-configured batch (e.g. ~/.elispmk.bat echo INVORMATIVE: or ~/.elispmk.%ELISPMK_APP%.bat) found. echo INFORMATIVE: You may create one for your convenience. echo INFORMATIVE: See comments in makeit.bat. echo ---- :execsubmk set ELISPMK= rem --- %EMACS% ꍇ̓G[I if "%EMACS%"=="" goto errnotspecified if not exist "%EMACS%" goto errnonexistent rem --- MAKE1.BAT Control set SUBMAKEOK=OK echo ---- echo Executing make1.bat in the current directory using the folloiwing env. echo HOME=%HOME% echo PREFIX=%PREFIX% echo EMACS=%EMACS% echo EXEC_PREFIX=%EXEC_PREFIX% echo LISPDIR=%LISPDIR% echo INFODIR=%INFODIR% echo VERSION_SPECIFIC_LISPDIR=%VERSION_SPECIFIC_LISPDIR% echo ---- set ARG=%1 if "%ARG%"=="" set ARG=%DEFAULT_MAKE_ARG% echo Executing .\make1.bat with argument=%ARG% .\make1.bat %ARG% echo Error: for some reason .\make1.bat could not be executed. echo Please check if .\make1.bat exists and correct. goto pauseend :execelmkb echo ---- echo Found %ELISPMK%. Executing it... echo ---- %ELISPMK% %1 echo Error: for some reason %ELISPMK% could not be executed. echo Please check if ELISPMK=%ELISPMK% exists and correct. goto printenv rem --- %EMACS% ݒ肳ĂȂ :errnotspecified echo Error: Environment variable EMACS is not specified. goto printenv rem --- %EMACS% ɐݒ肳Ăt@C݂Ȃ :errnonexistent echo Error: EMACS=%EMACS% does not exist. :printenv echo ---- echo Check correctness of the following environment variables. echo HOME=%HOME% echo PREFIX=%PREFIX% echo EMACS=%EMACS% echo EXEC_PREFIX=%EXEC_PREFIX% echo LISPDIR=%LISPDIR% echo INFODIR=%INFODIR% echo VERSION_SPECIFIC_LISPDIR=%VERSION_SPECIFIC_LISPDIR% echo DEFAULT_MAKE_ARG=%DEFAULT_MAKE_ARG% echo See comments in makeit.bat and make1.bat for setup instruction. echo ---- :pauseend echo Type any key when you're done reading the error message. pause rem --- end of makeit.bat :end wanderlust-apel-82eb232/mcharset.el000066400000000000000000000061421426577707700173330ustar00rootroot00000000000000;;; mcharset.el --- MIME charset API -*- lexical-binding: t -*- ;; Copyright (C) 1997,1998,1999,2000 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (defcustom default-mime-charset-for-write 'utf-8 "Default value of MIME-charset for encoding. It may be used when suitable MIME-charset is not found. It must be symbol." :group 'i18n :type 'mime-charset) (defcustom default-mime-charset-detect-method-for-write nil "Function called when suitable MIME-charset is not found to encode. It must be nil or function. If it is nil, variable `default-mime-charset-for-write' is used. If it is a function, interface must be (TYPE CHARSETS &rest ARGS). CHARSETS is list of charset. If TYPE is \\='region, ARGS has START and END." :group 'i18n :type '(choice function (const nil))) (provide 'mcharset) (require 'mcs-20) (defun charsets-to-mime-charset (charsets) "Return MIME charset from list of charset CHARSETS. Return nil if suitable mime-charset is not found." (if charsets (catch 'tag (let ((rest charsets-mime-charset-alist) cell) (while (setq cell (car rest)) (if (catch 'not-subset (let ((set1 charsets) (set2 (car cell)) obj) (while set1 (setq obj (car set1)) (or (memq obj set2) (throw 'not-subset nil)) (setq set1 (cdr set1))) t)) (throw 'tag (cdr cell))) (setq rest (cdr rest))) )))) (defun find-mime-charset-by-charsets (charsets &optional mode &rest args) "Like `charsets-to-mime-charset', but it does not return nil. When suitable mime-charset is not found and variable `default-mime-charset-detect-method-for-write' is not nil, `find-mime-charset-by-charsets' calls the variable as function and return the return value of the function. Interface of the function is (MODE CHARSETS &rest ARGS). When suitable mime-charset is not found and variable `default-mime-charset-detect-method-for-write' is nil, variable `default-mime-charset-for-write' is returned." (or (charsets-to-mime-charset charsets) (if default-mime-charset-detect-method-for-write (apply default-mime-charset-detect-method-for-write mode charsets args) default-mime-charset-for-write))) ;;; @ end ;;; (require 'product) (product-provide (provide 'mcharset) (require 'apel-ver)) ;;; mcharset.el ends here wanderlust-apel-82eb232/mcs-20.el000066400000000000000000000162711426577707700165320ustar00rootroot00000000000000;;; mcs-20.el --- MIME charset implementation for Emacs 20 and XEmacs/mule -*- lexical-binding: t -*- ;; Copyright (C) 1997,1998,1999,2000 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module requires Emacs 20.0.93, XEmacs 20.3-b5 (with mule) ;; or later. ;;; Code: (require 'subr-x) (require 'wid-edit) ;;; @ MIME charset ;;; (defcustom mime-charset-coding-system-alist (let ((rest '((us-ascii . raw-text) (gb2312 . cn-gb-2312) (cn-gb . cn-gb-2312) (iso-2022-jp-2 . iso-2022-7bit-ss2) (iso-2022-jp-3 . iso-2022-7bit-ss2) (tis-620 . tis620) (windows-874 . tis-620) (cp874 . tis-620) (x-ctext . ctext) (unknown . undecided) (x-unknown . undecided) )) dest) (while rest (unless (coding-system-p (caar rest)) (setq dest (cons (car rest) dest))) (setq rest (cdr rest)) ) dest) "Alist MIME CHARSET vs CODING-SYSTEM. MIME CHARSET and CODING-SYSTEM must be symbol." :group 'i18n :type '(repeat (cons symbol coding-system))) (defcustom mime-charset-to-coding-system-default-method nil "Function called when suitable coding-system is not found from MIME-charset. It must be nil or function. If it is a function, interface must be (CHARSET LBT CODING-SYSTEM)." :group 'i18n :type '(choice function (const nil))) (defun mime-charset-to-coding-system (charset &optional lbt) "Return coding-system corresponding with CHARSET. CHARSET is a symbol whose name is MIME charset. If optional argument LBT (`CRLF', `LF', `CR', `unix', `dos' or `mac') is specified, it is used as line break code type of coding-system." (if (stringp charset) (setq charset (intern (downcase charset))) ) (let ((cs (cdr (assq charset mime-charset-coding-system-alist)))) (unless (or (null cs) (coding-system-p cs)) (message "Invalid coding system: %s. Confirm mime-charset-coding-system-alist." cs) (setq cs nil)) (unless cs (setq cs charset)) (if lbt (setq cs (intern (format "%s-%s" cs (cond ((eq lbt 'CRLF) 'dos) ((eq lbt 'LF) 'unix) ((eq lbt 'CR) 'mac) (t lbt))))) ) (if (coding-system-p cs) cs (when mime-charset-to-coding-system-default-method (funcall mime-charset-to-coding-system-default-method charset lbt cs) )))) (provide 'mcs-20) (require 'mcs-e20) (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'.") (define-widget 'mime-charset 'coding-system "A mime-charset." :format "%{%t%}: %v" :tag "MIME-charset" :prompt-history 'widget-mime-charset-prompt-value-history :prompt-value 'widget-mime-charset-prompt-value :action 'widget-mime-charset-action) (defun widget-mime-charset-prompt-value (_widget prompt value _unbound) ;; Read mime-charset from minibuffer. (intern (completing-read (format "%s (default %s) " prompt value) (mapcar (lambda (sym) (list (symbol-name sym))) (mime-charset-list))))) (defun widget-mime-charset-action (widget &optional event) ;; Read a mime-charset from the minibuffer. (let ((answer (widget-mime-charset-prompt-value widget (widget-apply widget :menu-tag-get) (widget-value widget) t))) (widget-value-set widget answer) (widget-apply widget :notify widget event) (widget-setup))) (defcustom default-mime-charset 'x-unknown "Default value of MIME-charset. It is used when MIME-charset is not specified. It must be symbol." :group 'i18n :type 'mime-charset) (defcustom detect-mime-charset-from-coding-system nil "When non-nil, `detect-mime-charset-region' and `detect-mime-charset-string' functions decide charset by encodability in destination coding system. In that case, each car of `charsets-mime-charset-alist' element is ignored." :group 'i18n :type 'boolean) (provide 'mcs-20) (require 'mcharset) (defun detect-mime-charset-list (chars) "Return MIME charset for the list of characters CHARS." (catch 'found (mapc (lambda (cons) (catch 'next (mapc (lambda (ch) (unless (char-charset ch (car cons)) (throw 'next nil))) chars) (throw 'found (cdr cons)))) charsets-mime-charset-alist) default-mime-charset-for-write)) (defun detect-mime-charset-from-coding-system (start end &optional string) "Return MIME charset for the region between START and END, deciding by encodability in destination coding system. Optional 3rd argument STRING is non-nil, detect MIME charset from STRING. In that case, START and END are indexes of the string." (let ((alist charsets-mime-charset-alist) result) (while alist (if (unencodable-char-position start end (mime-charset-to-coding-system (cdar alist)) nil string) (setq alist (cdr alist)) (setq result (cdar alist) alist nil))) (or result default-mime-charset-for-write))) (defun detect-mime-charset-string (string) "Return MIME charset for STRING. When `detect-mime-charset-from-coding-system' is non-nil, each car of `charsets-mime-charset-alist' element is ignored." (if detect-mime-charset-from-coding-system (detect-mime-charset-from-coding-system 0 (length string) string) (let ((table (make-hash-table :test 'eq))) (mapc (lambda (ch) (puthash ch t table)) string) (detect-mime-charset-list (hash-table-keys table))))) (defun detect-mime-charset-region (start end) "Return MIME charset for region between START and END. When `detect-mime-charset-from-coding-system' is non-nil, each car of `charsets-mime-charset-alist' element is ignored." (if detect-mime-charset-from-coding-system (detect-mime-charset-from-coding-system start end) (let ((point (min start end)) (table (make-hash-table :test 'eq))) (setq end (max start end)) (while (< point end) (puthash (char-after point) t table) (setq point (1+ point))) (detect-mime-charset-list (hash-table-keys table))))) (defun write-region-as-mime-charset (charset start end filename &optional append visit lockname) "Like `write-region', q.v., but encode by MIME CHARSET." (let ((coding-system-for-write (or (mime-charset-to-coding-system charset) 'binary))) (write-region start end filename append visit lockname))) ;;; @ end ;;; (require 'product) (product-provide (provide 'mcs-20) (require 'apel-ver)) ;;; mcs-20.el ends here wanderlust-apel-82eb232/mcs-e20.el000066400000000000000000000125301426577707700166710ustar00rootroot00000000000000;;; mcs-e20.el --- MIME charset implementation for Emacs 20.1 and 20.2 -*- lexical-binding: t -*- ;; Copyright (C) 1996,1997,1998,1999,2000 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module requires Emacs 20.1 and 20.2. ;;; Code: (provide 'mcs-e20) (require 'mcs-20) (defsubst encode-mime-charset-region (start end charset &optional lbt) "Encode the text between START and END as MIME CHARSET." (let (cs) (if (and enable-multibyte-characters (setq cs (mime-charset-to-coding-system charset lbt))) (encode-coding-region start end cs) ))) (defsubst decode-mime-charset-region (start end charset &optional lbt) "Decode the text between START and END as MIME CHARSET." (let (cs) (if (and enable-multibyte-characters (setq cs (mime-charset-to-coding-system charset lbt))) (decode-coding-region start end cs) ))) (defsubst encode-mime-charset-string (string charset &optional lbt) "Encode the STRING as MIME CHARSET." (let (cs) (if (and enable-multibyte-characters (setq cs (mime-charset-to-coding-system charset lbt))) (encode-coding-string string cs) string))) (defsubst decode-mime-charset-string (string charset &optional lbt) "Decode the STRING as MIME CHARSET." (let (cs) (if (and enable-multibyte-characters (setq cs (mime-charset-to-coding-system charset lbt))) (decode-coding-string string cs) string))) (defvar charsets-mime-charset-alist (delq nil `(((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 latin-iso8859-4) . iso-8859-4) ((ascii latin-iso8859-15) . iso-8859-15) ;;((ascii cyrillic-iso8859-5) . iso-8859-5) ((ascii cyrillic-iso8859-5) . koi8-r) ((ascii arabic-iso8859-6) . iso-8859-6) ((ascii greek-iso8859-7) . iso-8859-7) ((ascii hebrew-iso8859-8) . iso-8859-8) ((ascii latin-iso8859-9) . iso-8859-9) ((ascii latin-iso8859-14) . iso-8859-14) ((ascii latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208) . iso-2022-jp) ((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-tis620) . 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) ;;((ascii latin-iso8859-1 greek-iso8859-7 ;; latin-jisx0201 japanese-jisx0208-1978 ;; chinese-gb2312 japanese-jisx0208 ;; korean-ksc5601 japanese-jisx0212 ;; chinese-cns11643-1 chinese-cns11643-2) . iso-2022-int-1) ;;((ascii latin-iso8859-1 latin-iso8859-2 ;; cyrillic-iso8859-5 greek-iso8859-7 ;; latin-jisx0201 japanese-jisx0208-1978 ;; chinese-gb2312 japanese-jisx0208 ;; korean-ksc5601 japanese-jisx0212 ;; chinese-cns11643-1 chinese-cns11643-2 ;; chinese-cns11643-3 chinese-cns11643-4 ;; chinese-cns11643-5 chinese-cns11643-6 ;; chinese-cns11643-7) . iso-2022-int-1) ))) (defvar coding-system-to-mime-charset-exclude-regexp "^unknown$\\|^x-") (defun coding-system-to-mime-charset (coding-system) "Convert CODING-SYSTEM to a MIME-charset. Return nil if corresponding MIME-charset is not found." (or (coding-system-get coding-system 'mime-charset) (let ((coding (coding-system-base coding-system)) (alist mime-charset-coding-system-alist) result) (while alist (if (eq (coding-system-base (cdar alist)) coding) (setq result (caar alist) alist nil) (setq alist (cdr alist)))) (unless (and coding-system-to-mime-charset-exclude-regexp (string-match coding-system-to-mime-charset-exclude-regexp (symbol-name result))) result)))) (defun mime-charset-list () "Return a list of all existing MIME-charset." (let ((dest (mapcar (function car) mime-charset-coding-system-alist)) (rest coding-system-list) cs) (while rest (setq cs (car rest)) (when (and (setq cs (coding-system-get cs 'mime-charset)) (null (memq cs dest))) (setq dest (cons cs dest))) (setq rest (cdr rest))) dest)) ;;; @ end ;;; (require 'product) (product-provide (provide 'mcs-e20) (require 'apel-ver)) ;;; mcs-e20.el ends here wanderlust-apel-82eb232/mule-caesar.el000066400000000000000000000046631426577707700177310ustar00rootroot00000000000000;;; mule-caesar.el --- ROT 13-47 Caesar rotation utility -*- lexical-binding: t -*- ;; Copyright (C) 1997,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: ROT 13-47, caesar, mail, news, text/x-rot13-47 ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (defun mule-caesar-region (start end &optional stride-ascii) "Caesar rotation of current region. Optional argument STRIDE-ASCII is rotation-size for Latin alphabet (A-Z and a-z). For non-ASCII text, ROT-N/2 will be performed in any case (N=charset-chars; 94 for 94 or 94x94 graphic character set; 96 for 96 or 96x96 graphic character set)." (interactive "r\nP") (setq stride-ascii (if stride-ascii (mod stride-ascii 26) 13)) (save-excursion (save-restriction (narrow-to-region start end) (goto-char start) (while (< (point)(point-max)) (let* ((chr (following-char))) (cond ((and (<= ?A chr) (<= chr ?Z)) (setq chr (+ chr stride-ascii)) (if (> chr ?Z) (setq chr (- chr 26)) ) (delete-char 1) (insert chr) ) ((and (<= ?a chr) (<= chr ?z)) (setq chr (+ chr stride-ascii)) (if (> chr ?z) (setq chr (- chr 26)) ) (delete-char 1) (insert chr) ) ((<= chr ?\x9f) (forward-char) ) (t (let* ((stride (lsh (charset-chars (char-charset chr)) -1)) (ret (mapcar (lambda (octet) (if (< octet 80) (+ octet stride) (- octet stride) )) (cdr (split-char chr))))) (delete-char 1) (insert (make-char (char-charset chr) (car ret)(car (cdr ret)))) ))) ))))) (require 'product) (product-provide (provide 'mule-caesar) (require 'apel-ver)) ;;; mule-caesar.el ends here wanderlust-apel-82eb232/path-util.el000066400000000000000000000127611426577707700174400ustar00rootroot00000000000000;;; path-util.el --- Emacs Lisp file detection utility -*- lexical-binding: t -*- ;; Copyright (C) 1996,1997,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: file detection, install, module ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (defvar default-load-path load-path "*Base of `load-path'. It is used as default value of target path to search file or subdirectory under load-path.") ;;;###autoload (defun 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'. You can use following PATH styles: load-path relative: \"PATH/\" (it is searched from `default-load-path') home directory relative: \"~/PATH/\" \"~USER/PATH/\" absolute path: \"/HOO/BAR/BAZ/\" You can specify following OPTIONS: \\='all-paths search from `load-path' instead of `default-load-path' \\='append add PATH to the last of `load-path'" (let ((rest (if (memq 'all-paths options) load-path default-load-path)) p) (if (and (catch 'tag (while rest (setq p (expand-file-name path (car rest))) (if (file-directory-p p) (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)))))) ;;;###autoload (defun add-latest-path (pattern &optional all-paths) "Add latest path matched by PATTERN to `load-path' if it exists under `default-load-path' directories and it does not exist in `load-path'. If optional argument ALL-PATHS is specified, it is searched from all of load-path instead of default-load-path." (let ((path (get-latest-path pattern all-paths))) (if path (add-to-list 'load-path path) ))) ;;;###autoload (defun 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." (catch 'tag (let ((paths (if all-paths load-path default-load-path)) dir) (while (setq dir (car paths)) (if (and (file-exists-p dir) (file-directory-p dir) ) (let ((files (sort (directory-files dir t pattern t) (function file-newer-than-file-p))) file) (while (setq file (car files)) (if (file-directory-p file) (throw 'tag file) ) (setq files (cdr files)) ))) (setq paths (cdr paths)) )))) ;;;###autoload (defun file-installed-p (file &optional paths) "Return absolute-path of FILE if FILE exists in PATHS. If PATHS is omitted, `load-path' is used." (if (null paths) (setq paths load-path) ) (catch 'tag (let (path) (while paths (setq path (expand-file-name file (car paths))) (if (file-exists-p path) (throw 'tag path) ) (setq paths (cdr paths)) )))) ;;;###autoload (defvar exec-suffix-list '("") "*List of suffixes for executable.") ;;;###autoload (defun exec-installed-p (file &optional paths suffixes) "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." (or paths (setq paths exec-path) ) (or suffixes (setq suffixes exec-suffix-list) ) (let (files) (catch 'tag (while suffixes (let ((suf (car suffixes))) (if (and (not (string= suf "")) (string-match (concat (regexp-quote suf) "$") file)) (progn (setq files (list file)) (throw 'tag nil) ) (setq files (cons (concat file suf) files)) ) (setq suffixes (cdr suffixes)) ))) (setq files (nreverse files)) (catch 'tag (while paths (let ((path (car paths)) (files files) ) (while files (setq file (expand-file-name (car files) path)) (if (file-executable-p file) (throw 'tag file) ) (setq files (cdr files)) ) (setq paths (cdr paths)) ))))) ;;;###autoload (defun module-installed-p (module &optional paths) "Return t if module is provided or exists in PATHS. If PATHS is omitted, `load-path' is used." (or (featurep module) (let ((file (symbol-name module))) (or paths (setq paths load-path) ) (catch 'tag (while paths (let ((stem (expand-file-name file (car paths))) (sufs '(".elc" ".el")) ) (while sufs (let ((file (concat stem (car sufs)))) (if (file-exists-p file) (throw 'tag file) )) (setq sufs (cdr sufs)) )) (setq paths (cdr paths)) ))))) ;;; @ end ;;; (require 'product) (product-provide (provide 'path-util) (require 'apel-ver)) ;;; path-util.el ends here wanderlust-apel-82eb232/pccl-20.el000066400000000000000000000112671426577707700166710ustar00rootroot00000000000000;;; pccl-20.el --- Portable CCL utility for Emacs 20 and XEmacs-21-mule -*- lexical-binding: t -*- ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Copyright (C) 1998 Tanaka Akira ;; Author: Tanaka Akira ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (eval-when-compile (require 'ccl)) (require 'broken) (broken-facility ccl-accept-symbol-as-program "Emacs does not accept symbol as CCL program." (progn (define-ccl-program test-ccl-identity '(1 ((read r0) (loop (write-read-repeat r0))))) (condition-case nil (ccl-execute-on-string 'test-ccl-identity (make-vector 9 nil) "") (error nil))) t) (eval-and-compile (defun make-ccl-coding-system (coding-system mnemonic docstring decoder encoder) "\ Define a new CODING-SYSTEM by CCL programs DECODER and ENCODER. CODING-SYSTEM, DECODER and ENCODER must be symbol." (when-broken ccl-accept-symbol-as-program (setq decoder (symbol-value decoder)) (setq encoder (symbol-value encoder))) (define-coding-system coding-system docstring :mnemonic mnemonic :coding-type 'ccl :ccl-decoder decoder :ccl-encoder encoder)) (when-broken ccl-accept-symbol-as-program (when (subrp (symbol-function 'ccl-execute)) (fset 'ccl-vector-program-execute (symbol-function 'ccl-execute)) (defun ccl-execute (ccl-prog reg) "\ Execute CCL-PROG with registers initialized by REGISTERS. If CCL-PROG is symbol, it is dereferenced." (ccl-vector-program-execute (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) reg))) (when (subrp (symbol-function 'ccl-execute-on-string)) (fset 'ccl-vector-program-execute-on-string (symbol-function 'ccl-execute-on-string)) (defun ccl-execute-on-string (ccl-prog status string &optional contin) "\ Execute CCL-PROG with initial STATUS on STRING. If CCL-PROG is symbol, it is dereferenced." (ccl-vector-program-execute-on-string (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) status string contin))) ) ) (eval-when-compile (define-ccl-program test-ccl-eof-block '(1 ((read r0) (write r0) (read r0)) (write "[EOF]"))) (make-ccl-coding-system 'test-ccl-eof-block-cs ?T "CCL_EOF_BLOCK tester" 'test-ccl-eof-block 'test-ccl-eof-block) ) (broken-facility ccl-execute-eof-block-on-encoding-null "Emacs forgets executing CCL_EOF_BLOCK with encoding on empty input. (Fixed on Emacs 20.4)" (equal (encode-coding-string "" 'test-ccl-eof-block-cs) "[EOF]")) (broken-facility ccl-execute-eof-block-on-encoding-some "Emacs forgets executing CCL_EOF_BLOCK with encoding on non-empty input. (Fixed on Emacs 20.3)" (equal (encode-coding-string "a" 'test-ccl-eof-block-cs) "a[EOF]")) (broken-facility ccl-execute-eof-block-on-decoding-null "Emacs forgets executing CCL_EOF_BLOCK with decoding on empty input. (Fixed on Emacs 20.4)" (equal (decode-coding-string "" 'test-ccl-eof-block-cs) "[EOF]")) (broken-facility ccl-execute-eof-block-on-decoding-some "Emacs forgets executing CCL_EOF_BLOCK with decoding on non-empty input. (Fixed on Emacs 20.4)" (equal (decode-coding-string "a" 'test-ccl-eof-block-cs) "a[EOF]")) (broken-facility ccl-execute-eof-block-on-encoding "Emacs may forget executing CCL_EOF_BLOCK with encoding." (not (or (broken-p 'ccl-execute-eof-block-on-encoding-null) (broken-p 'ccl-execute-eof-block-on-encoding-some))) t) (broken-facility ccl-execute-eof-block-on-decoding "Emacs may forget executing CCL_EOF_BLOCK with decoding." (not (or (broken-p 'ccl-execute-eof-block-on-decoding-null) (broken-p 'ccl-execute-eof-block-on-decoding-some))) t) (broken-facility ccl-execute-eof-block "Emacs may forget executing CCL_EOF_BLOCK." (not (or (broken-p 'ccl-execute-eof-block-on-encoding) (broken-p 'ccl-execute-eof-block-on-decoding))) t) ;;; @ end ;;; (require 'product) (product-provide (provide 'pccl-20) (require 'apel-ver)) ;;; pccl-20.el ends here wanderlust-apel-82eb232/pccl.el000066400000000000000000000023131426577707700164420ustar00rootroot00000000000000;;; pccl.el --- Portable CCL utility for Mule 2.* -*- lexical-binding: t -*- ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'broken) (broken-facility ccl-usable "Emacs has not CCL." t) (require 'pccl-20) ;;; @ end ;;; (require 'product) (product-provide (provide 'pccl) (require 'apel-ver)) ;;; pccl.el ends here wanderlust-apel-82eb232/pces-20.el000066400000000000000000000145041426577707700166770ustar00rootroot00000000000000;;; pces-20.el --- pces submodule for Emacs 20 and XEmacs with coding-system -*- lexical-binding: t -*- ;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module requires Emacs 20.0.93, XEmacs 20.3-b5 (with mule) ;; or later. ;;; Code: ;; (defun-maybe-cond multibyte-string-p (object) ;; "Return t if OBJECT is a multibyte string." ;; ((featurep 'mule) (stringp object)) ;; (t nil)) ;;; @ without code-conversion ;;; (defmacro as-binary-process (&rest body) `(let (selective-display ; Disable ^M to nl translation. (coding-system-for-read 'binary) (coding-system-for-write 'binary)) ,@body)) (defmacro as-binary-input-file (&rest body) `(let ((coding-system-for-read 'binary)) ,@body)) (defmacro as-binary-output-file (&rest body) `(let ((coding-system-for-write 'binary)) ,@body)) (defun write-region-as-binary (start end filename &optional append visit lockname) "Like `write-region', q.v., but don't encode." (defvar jam-zcat-filename-list) (let ((coding-system-for-write 'binary) jka-compr-compression-info-list jam-zcat-filename-list) (write-region start end filename append visit lockname))) (defalias 'insert-file-contents-as-binary 'insert-file-contents-literally) (defun insert-file-contents-as-raw-text (filename &optional visit beg end replace) "Like `insert-file-contents', q.v., but don't code and format conversion. Like `insert-file-contents-literally' and `insert-file-contents-as-binary', but it allows find-file-hooks, automatic uncompression, etc and converts line-break code." (let ((coding-system-for-read 'raw-text) format-alist) ;; Returns list of absolute file name and length of data inserted. (insert-file-contents filename visit beg end replace))) (defun insert-file-contents-as-raw-text-CRLF (filename &optional visit beg end replace) "Like `insert-file-contents', q.v., but don't code and format conversion. Like `insert-file-contents-literally' and `insert-file-contents-as-binary', but it allows find-file-hooks, automatic uncompression, etc and converts line-break code from CRLF to LF." (let ((coding-system-for-read 'raw-text-dos) format-alist) ;; Returns list of absolute file name and length of data inserted. (insert-file-contents filename visit beg end replace))) (defun write-region-as-raw-text-CRLF (start end filename &optional append visit lockname) "Like `write-region', q.v., but write as network representation." (let ((coding-system-for-write 'raw-text-dos)) (write-region start end filename append visit lockname))) (defun find-file-noselect-as-binary (filename &optional nowarn rawfile) "Like `find-file-noselect', q.v., but don't code and format conversion." (let ((coding-system-for-read 'binary) format-alist) (find-file-noselect filename nowarn rawfile))) (defun find-file-noselect-as-raw-text (filename &optional nowarn rawfile) "Like `find-file-noselect', q.v., but it does not code and format conversion except for line-break code." (let ((coding-system-for-read 'raw-text) format-alist) (find-file-noselect filename nowarn rawfile))) (defun find-file-noselect-as-raw-text-CRLF (filename &optional nowarn rawfile) "Like `find-file-noselect', q.v., but it does not code and format conversion except for line-break code." (let ((coding-system-for-read 'raw-text-dos) format-alist) (find-file-noselect filename nowarn rawfile))) (defun save-buffer-as-binary (&optional args) "Like `save-buffer', q.v., but don't encode." (let ((coding-system-for-write 'binary)) (save-buffer args))) (defun save-buffer-as-raw-text-CRLF (&optional args) "Like `save-buffer', q.v., but save as network representation." (let ((coding-system-for-write 'raw-text-dos)) (save-buffer args))) (defun open-network-stream-as-binary (name buffer host service) "Like `open-network-stream', q.v., but don't code conversion." (let ((coding-system-for-read 'binary) (coding-system-for-write 'binary)) (open-network-stream name buffer host service))) ;;; @ with code-conversion ;;; (defun insert-file-contents-as-coding-system (coding-system filename &optional visit beg end replace) "Like `insert-file-contents', q.v., but CODING-SYSTEM the first arg will be applied to `coding-system-for-read'." (let ((coding-system-for-read coding-system) format-alist) (insert-file-contents filename visit beg end replace))) (defun write-region-as-coding-system (coding-system start end filename &optional append visit lockname) "Like `write-region', q.v., but CODING-SYSTEM the first arg will be applied to `coding-system-for-write'." (defvar jam-zcat-filename-list) (let ((coding-system-for-write coding-system) jka-compr-compression-info-list jam-zcat-filename-list) (write-region start end filename append visit lockname))) (defun find-file-noselect-as-coding-system (coding-system filename &optional nowarn rawfile) "Like `find-file-noselect', q.v., but CODING-SYSTEM the first arg will be applied to `coding-system-for-read'." (let ((coding-system-for-read coding-system) format-alist) (find-file-noselect filename nowarn rawfile))) (defun save-buffer-as-coding-system (coding-system &optional args) "Like `save-buffer', q.v., but CODING-SYSTEM the first arg will be applied to `coding-system-for-write'." (let ((coding-system-for-write coding-system)) (save-buffer args))) ;;; @ end ;;; (require 'product) (product-provide (provide 'pces-20) (require 'apel-ver)) ;;; pces-20.el ends here wanderlust-apel-82eb232/pces-e20.el000066400000000000000000000025021426577707700170370ustar00rootroot00000000000000;;; pces-e20.el --- pces submodule for Emacs 20 -*- lexical-binding: t -*- ;; Copyright (C) 1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'pces-20) (defsubst find-coding-system (obj) "Return OBJ if it is a coding-system." (if (coding-system-p obj) obj)) (defalias 'set-process-input-coding-system 'set-process-coding-system) ;;; @ end ;;; (require 'product) (product-provide (provide 'pces-e20) (require 'apel-ver)) ;;; pces-e20.el ends here wanderlust-apel-82eb232/pces.el000066400000000000000000000022531426577707700164560ustar00rootroot00000000000000;;; pces.el --- Portable Character Encoding Scheme (coding-system) features -*- lexical-binding: t -*- ;; Copyright (C) 1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: coding-system, emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'pces-e20) ;;; @ end ;;; (require 'product) (product-provide (provide 'pces) (require 'apel-ver)) ;;; pces.el ends here wanderlust-apel-82eb232/pcustom.el000066400000000000000000000023211426577707700172120ustar00rootroot00000000000000;;; pcustom.el -- a portable custom.el -*- lexical-binding: t -*- ;; Copyright (C) 1999 Free Software Foundation, Inc. ;; Copyright (C) 1999 Mikio Nakajima ;; Author: Mikio Nakajima ;; Shuhei KOBAYASHI ;; Keywords: emulating, custom ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (require 'product) (product-provide (provide 'pcustom) (require 'apel-ver)) ;;; pcustom.el ends here wanderlust-apel-82eb232/poe.el000066400000000000000000000202301426577707700163020ustar00rootroot00000000000000;;; poe.el --- Portable Outfit for Emacsen -*- lexical-binding: t -*- ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005, ;; 2008 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Shuhei KOBAYASHI ;; Keywords: emulation, compatibility, Nemacs, MULE, Emacs/mule, XEmacs ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (require 'product) (product-provide (provide 'poe) (require 'apel-ver)) ;; pym.el is a part of poe.el. (require 'pym) ;;; @ Basic lisp subroutines emulation. (lisp/subr.el) ;;; ;;; @@ Lisp language features. ;; The following two function use `compare-strings', which we don't ;; support yet. ;; (defun assoc-ignore-case (key alist)) ;; (defun assoc-ignore-representation (key alist)) ;; XEmacs 19.13 and later: (remassoc KEY ALIST) (defun remassoc (key alist) "Delete by side effect any elements of ALIST whose car is `equal' to KEY. The modified ALIST is returned. If the first member of ALIST has a car 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'." (while (and (consp alist) (or (not (consp (car alist))) (equal (car (car alist)) key))) (setq alist (cdr alist))) (if (consp alist) (let ((prev alist) (tail (cdr alist))) (while (consp tail) (if (and (consp (car alist)) (equal (car (car tail)) key)) ;; `(setcdr CELL NEWCDR)' returns NEWCDR. (setq tail (setcdr prev (cdr tail))) (setq prev (cdr prev) tail (cdr tail)))))) alist) ;; XEmacs 19.13 and later: (remassq KEY ALIST) (defun remassq (key alist) "Delete by side effect any elements of ALIST whose car is `eq' to KEY. The modified ALIST is returned. If the first member of ALIST has a car 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'." (while (and (consp alist) (or (not (consp (car alist))) (eq (car (car alist)) key))) (setq alist (cdr alist))) (if (consp alist) (let ((prev alist) (tail (cdr alist))) (while (consp tail) (if (and (consp (car tail)) (eq (car (car tail)) key)) ;; `(setcdr CELL NEWCDR)' returns NEWCDR. (setq tail (setcdr prev (cdr tail))) (setq prev (cdr prev) tail (cdr tail)))))) alist) ;; XEmacs 19.13 and later: (remrassoc VALUE ALIST) (defun remrassoc (value alist) "Delete by side effect any elements of ALIST whose cdr is `equal' to VALUE. The modified ALIST is returned. If the first member of ALIST has a car 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'." (while (and (consp alist) (or (not (consp (car alist))) (equal (cdr (car alist)) value))) (setq alist (cdr alist))) (if (consp alist) (let ((prev alist) (tail (cdr alist))) (while (consp tail) (if (and (consp (car tail)) (equal (cdr (car tail)) value)) ;; `(setcdr CELL NEWCDR)' returns NEWCDR. (setq tail (setcdr prev (cdr tail))) (setq prev (cdr prev) tail (cdr tail)))))) alist) ;; XEmacs 19.13 and later: (remrassq VALUE ALIST) (defun remrassq (value alist) "Delete by side effect any elements of ALIST whose cdr is `eq' to VALUE. The modified ALIST is returned. If the first member of ALIST 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'." (while (and (consp alist) (or (not (consp (car alist))) (eq (cdr (car alist)) value))) (setq alist (cdr alist))) (if (consp alist) (let ((prev alist) (tail (cdr alist))) (while (consp tail) (if (and (consp (car tail)) (eq (cdr (car tail)) value)) ;; `(setcdr CELL NEWCDR)' returns NEWCDR. (setq tail (setcdr prev (cdr tail))) (setq prev (cdr prev) tail (cdr tail)))))) alist) ;;; @@ Input and display facilities. ;; XXX: (defun read-passwd (prompt &optional confirm default)) ;;; @@ Miscellanea. ;; Avoid compiler warnings about this variable, ;; which has a special meaning on certain system types. (defvar buffer-file-type nil "Non-nil if the visited file is a binary file. 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.") ;;; @ Frame commands emulation. (lisp/frame.el) ;;; ;; XEmacs 21.0 and later: ;; (save-selected-frame &rest BODY) (defmacro save-selected-frame (&rest body) "Execute forms in BODY, then restore the selected frame." (list 'let '((save-selected-frame-frame (selected-frame))) (list 'unwind-protect (cons 'progn body) (list 'select-frame 'save-selected-frame-frame)))) ;;; @ Basic editing commands emulation. (lisp/simple.el) ;;; ;;; @ XEmacs emulation. ;;; (defun find-face (face-or-name) "Retrieve the face of the given name. If FACE-OR-NAME is a face object, it is simply returned. Otherwise, FACE-OR-NAME should be a symbol. If there is no such face, nil is returned. Otherwise the associated face object is returned." (car (memq face-or-name (face-list)))) ;; XEmacs 21: (character-to-event CH &optional EVENT DEVICE) (defun character-to-event (ch) "Convert keystroke CH into an event structure, replete with bucky bits. Note that CH (the keystroke specifier) can be an integer, a character or a symbol such as \\='clear." ch) ;; XEmacs 21: (event-to-character EVENT ;; &optional ALLOW-EXTRA-MODIFIERS ALLOW-META ALLOW-NON-ASCII) (defun event-to-character (event) "Return the character approximation to the given event object. If the event isn't a keypress, this returns nil." (cond ((symbolp event) ;; mask is (BASE-TYPE MODIFIER-BITS) or nil. (let ((mask (get event 'event-symbol-element-mask))) (if mask (let ((base (get (car mask) 'ascii-character))) (if base (logior base (car (cdr mask)))))))) ((integerp event) event))) ;; v18: no event; (read-char) ;; Emacs 19, 20.1 and 20.2: (read-event) ;; Emacs 20.3: (read-event &optional PROMPT SUPPRESS-INPUT-METHOD) ;; Emacs 20.4: (read-event &optional PROMPT INHERIT-INPUT-METHOD) ;; XEmacs: (next-event &optional EVENT PROMPT), ;; (next-command-event &optional EVENT PROMPT) (defun next-command-event (&optional _event prompt) "Read an event object from the input stream. If EVENT is non-nil, it should be an event object and will be filled in and returned; otherwise a new event object will be created and returned. If PROMPT is non-nil, it should be a string and will be displayed in the echo area while this function is waiting for an event." ;; Emacs 20.4 and later. (read-event prompt)) ; should specify 2nd arg? ;;; @ MULE 2 emulation. ;;; (defun cancel-undo-boundary () "Cancel undo boundary." (if (and (consp buffer-undo-list) (null (car buffer-undo-list))) (setq buffer-undo-list (cdr buffer-undo-list)))) ;;; @ End. ;;; ;;; poe.el ends here wanderlust-apel-82eb232/poem-e20.el000066400000000000000000000033561426577707700170550ustar00rootroot00000000000000;;; poem-e20.el --- poem submodule for Emacs 20 -*- lexical-binding: t -*- ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (defun fontset-pixel-size (fontset) (cond ((string-match "-\\([0-9]+\\)-" fontset) (string-to-number (substring fontset (match-beginning 1) (match-end 1)))) (t 0))) ;;; @ character set ;;; ;; (defalias 'charset-columns 'charset-width) (defun find-non-ascii-charset-string (string) "Return a list of charsets in the STRING except ascii." (delq 'ascii (find-charset-string string))) (defun find-non-ascii-charset-region (start end) "Return a list of charsets except ascii in the region between START and END." (delq 'ascii (find-charset-string (buffer-substring start end)))) ;;; @ end ;;; (require 'poem-e20_3) ; for Emacs 20.3 (require 'product) (product-provide (provide 'poem-e20) (require 'apel-ver)) ;;; poem-e20.el ends here wanderlust-apel-82eb232/poem-e20_3.el000066400000000000000000000031661426577707700172760ustar00rootroot00000000000000;;; poem-e20_3.el --- poem submodule for Emacs 20.3 -*- lexical-binding: t -*- ;; Copyright (C) 1998,1999,2000 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module requires Emacs 20.2.91 or later. ;;; Code: ;;; @ character ;;; (defsubst char-length (_char) "Return indexing length of multi-byte form of CHAR." 1) (defmacro char-next-index (_char index) "Return index of character succeeding CHAR whose index is INDEX." `(1+ ,index)) ;;; @ string ;;; (defalias 'sset 'store-substring) (defalias 'string-to-char-list 'string-to-list) (defalias 'string-to-int-list 'string-to-list) (defalias 'looking-at-as-unibyte 'looking-at) ;;; @ end ;;; (require 'product) (product-provide (provide 'poem-e20_3) (require 'apel-ver)) ;;; poem-e20_3.el ends here wanderlust-apel-82eb232/poem.el000066400000000000000000000027671426577707700164760ustar00rootroot00000000000000;;; poem.el --- Emulate latest MULE features -*- lexical-binding: t -*- ;; Copyright (C) 1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'poem-e20) ;;; @ XEmacs-mule emulation ;;; (defalias 'char-int 'identity) (defalias 'int-char 'identity) (defalias 'char-or-char-int-p 'characterp) (defun char-octet (ch &optional n) "Return the octet numbered N (should be 0 or 1) of char CH. N defaults to 0 if omitted. [XEmacs-mule emulating function]" (or (nth (if n (1+ n) 1) (split-char ch)) 0)) ;;; @ end ;;; (require 'product) (product-provide (provide 'poem) (require 'apel-ver)) ;;; poem.el ends here wanderlust-apel-82eb232/product.el000066400000000000000000000336301426577707700172070ustar00rootroot00000000000000;;; product.el --- Functions for product version information -*- lexical-binding: t -*- ;; Copyright (C) 1999,2000 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI ;; Keiichi Suzuki ;; Keywords: compatibility, User-Agent ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module defines some utility functions for product information, ;; used for User-Agent header field. ;; ;; User-Agent header field first appeared in HTTP [RFC 1945, RFC 2616] ;; and adopted to News Article Format draft [USEFOR]. ;; ;; [RFC 1945] Hypertext Transfer Protocol -- HTTP/1.0. ;; T. Berners-Lee, R. Fielding & H. Frystyk. May 1996. ;; ;; [RFC 2616] Hypertext Transfer Protocol -- HTTP/1.1. ;; R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, ;; T. Berners-Lee. June 1999. ;; ;; [USEFOR] News Article Format, . ;; USEFOR Working Group. March 1999. ;;; Code: (defvar product-obarray (make-vector 13 0)) (defvar product-ignore-checkers nil) (defun product-define (name &optional family version code-name) "Define a product as a set of NAME, FAMILY, VERSION, and CODE-NAME. NAME is a string. Optional 2nd argument FAMILY is a string of family product name. Optional 3rd argument VERSION is a list of numbers. Optional 4th argument CODE-NAME is a string." (and family (product-add-to-family family name)) (set (intern name product-obarray) (vector name family version code-name nil nil nil nil))) (defun product-name (product) "Return the name of PRODUCT, a string." (aref product 0)) (defun product-family (product) "Return the family name of PRODUCT, a string." (aref product 1)) (defun product-version (product) "Return the version of PRODUCT, a list of numbers." (aref product 2)) (defun product-code-name (product) "Return the code-name of PRODUCT, a string." (aref product 3)) (defun product-checkers (product) "Return the checkers of PRODUCT, a list of functions." (aref product 4)) (defun product-family-products (product) "Return the family products of PRODUCT, a list of strings." (aref product 5)) (defun product-features (product) "Return the features of PRODUCT, a list of feature." (aref product 6)) (defun product-version-string (product) "Return the version string of PRODUCT, a string." (aref product 7)) (defun product-set-name (product name) "Set name of PRODUCT to NAME." (aset product 0 name)) (defun product-set-family (product family) "Set family name of PRODUCT to FAMILY." (aset product 1 family)) (defun product-set-version (product version) "Set version of PRODUCT to VERSION." (aset product 2 version)) ;; Some people want to translate code-name. (defun product-set-code-name (product code-name) "Set code-name of PRODUCT to CODE-NAME." (aset product 3 code-name)) (defun product-set-checkers (product checkers) "Set checker functions of PRODUCT to CHECKERS." (aset product 4 checkers)) (defun product-set-family-products (product products) "Set family products of PRODUCT to PRODUCTS." (aset product 5 products)) (defun product-set-features (product features) "Set features of PRODUCT to FEATURES." (aset product 6 features)) (defun product-set-version-string (product version-string) "Set version string of PRODUCT to VERSION-STRING." (aset product 7 version-string)) (defun product-add-to-family (family product-name) "Add a product to a family. FAMILY is a product structure which returned by `product-define'. PRODUCT-NAME is a string of the product's name ." (let ((family-product (product-find-by-name family))) (if family-product (let ((dest (product-family-products family-product))) (or (member product-name dest) (product-set-family-products family-product (cons product-name dest)))) (error "Family product `%s' is not defined" family)))) (defun product-remove-from-family (family product-name) "Remove a product from a family. FAMILY is a product string which returned by `product-define'. PRODUCT-NAME is a string of the product's name." (let ((family-product (product-find-by-name family))) (if family-product (product-set-family-products family-product (delete product-name (product-family-products family-product))) (error "Family product `%s' is not defined" family)))) (defun product-add-checkers (product &rest checkers) "Add checker function(s) to a product. PRODUCT is a product structure which returned by `product-define'. The rest arguments CHECKERS should be functions. These functions are registered to the product's checkers list, and will be called by `product-run-checkers'. If a checker is `ignore' will be ignored all checkers after this." (setq product (product-find product)) (or product-ignore-checkers (let ((dest (product-checkers product)) checker) (while checkers (setq checker (car checkers) checkers (cdr checkers)) (or (memq checker dest) (setq dest (cons checker dest)))) (product-set-checkers product dest)))) (defun product-remove-checkers (product &rest checkers) "Remove checker function(s) from a product. PRODUCT is a product structure which returned by `product-define'. The rest arguments CHECKERS should be functions. These functions removed from the product's checkers list." (setq product (product-find product)) (let ((dest (product-checkers product))) (while checkers (setq checkers (cdr checkers) dest (delq (car checkers) dest))) (product-set-checkers product dest))) (defun product-add-feature (product feature) "Add a feature to the features list of a product. PRODUCT is a product structure which returned by `product-define'. FEATURE is a feature in the PRODUCT's." (setq product (product-find product)) (let ((dest (product-features product))) (or (memq feature dest) (product-set-features product (cons feature dest))))) (defun product-remove-feature (product feature) "Remove a feature from the features list of a product. PRODUCT is a product structure which returned by `product-define'. FEATURE is a feature which registered in the products list of PRODUCT." (setq product (product-find product)) (product-set-features product (delq feature (product-features product)))) (defun product-run-checkers (product version &optional force) "Run checker functions of product. PRODUCT is a product structure which returned by `product-define'. VERSION is target version. If optional 3rd argument FORCE is non-nil then do not ignore all checkers." (let ((checkers (product-checkers product))) (if (or force (not (memq 'ignore checkers))) (let ((version (or version (product-version product)))) (while checkers (funcall (car checkers) version version) (setq checkers (cdr checkers))))))) (defun product-find-by-name (name) "Find product by name and return a product structure. NAME is a string of the product's name." (symbol-value (intern-soft name product-obarray))) (defun product-find-by-feature (feature) "Get a product structure of a feature's product. FEATURE is a symbol of the feature." (get feature 'product)) (defun product-find (product) "Find product information. If PRODUCT is a product structure, then return PRODUCT itself. If PRODUCT is a string, then find product by name and return a product structure. If PRODUCT is symbol of feature, then return the feature's product." (cond ((and (symbolp product) (featurep product)) (product-find-by-feature product)) ((stringp product) (product-find-by-name product)) ((vectorp product) product) (t (error "Invalid product %s" product)))) (put 'product-provide 'lisp-indent-function 1) (defmacro product-provide (feature-def product-def) "Declare a feature as a part of product. FEATURE-DEF is a definition of the feature. PRODUCT-DEF is a definition of the product." (let* ((feature feature-def) (product (product-find (eval product-def))) (product-name (product-name product)) (product-family (product-family product)) (product-version (product-version product)) (product-code-name (product-code-name product)) (product-version-string (product-version-string product))) `(progn ,product-def (put ,feature 'product (let ((product (product-find-by-name ,product-name))) (product-run-checkers product ',product-version) (and ,product-family (product-add-to-family ,product-family ,product-name)) (product-add-feature product ,feature) (if (equal ',product-version (product-version product)) product (vector ,product-name ,product-family ',product-version ,product-code-name 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 `product-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'. If optional argument VERBOSE is non-nil, then return string of \"NAME/VERSION (CODE-NAME)\"." (setq product (product-find product)) (concat (product-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. PRODUCT is a product structure which returned by `product-define'. If ALL is nil, apply function to only products which provided feature. FUNCTION is a function. The function called with following arguments. The 1st argument is a product structure. The rest arguments are ARGS." (setq product (product-find product)) (let ((family (product-family-products product))) (and (or all (product-features product)) (apply function product args)) (while family (apply 'product-for-each (car family) all function args) (setq family (cdr family))))) (defun product-string (product) "Return information of product as a string of \"NAME/VERSION\". PRODUCT is a product structure which returned by `product-define'." (let (dest) (product-for-each product nil (lambda (product) (let ((str (product-string-1 product nil))) (if str (setq dest (if dest (concat dest " " str) str)))))) dest)) (defun product-string-verbose (product) "Return information of product as a string of \"NAME/VERSION (CODE-NAME)\". PRODUCT is a product structure which returned by `product-define'." (let (dest) (product-for-each product nil (lambda (product) (let ((str (product-string-1 product t))) (if str (setq dest (if dest (concat dest " " str) str)))))) dest)) (defun product-version-compare (v1 v2) "Compare two versions. Return an integer greater than, equal to, or less than 0, according as the version V1 is greater than, equal to, or less than the version V2. Both V1 and V2 are a list of integer(s) respectively." (while (and v1 v2 (= (car v1) (car v2))) (setq v1 (cdr v1) v2 (cdr v2))) (if v1 (if v2 (- (car v1) (car v2)) 1) (if v2 -1 0))) (defun product-version>= (product require-version) "Compare product version with required version. PRODUCT is a product structure which returned by `product-define'. REQUIRE-VERSION is a list of integer." (>= (product-version-compare (product-version (product-find product)) require-version) 0)) (defun product-list-products () "List all products information." (let (dest) (mapatoms (lambda (sym) (setq dest (cons (symbol-value sym) dest))) product-obarray) dest)) (defun product-parse-version-string (verstr) "Parse version string \".*v1.v2... (CODE-NAME)\". Return list of version, code-name, and version-string. VERSTR is a string." (let (version version-string code-name) (and (string-match "\\(\\([0-9.]+\\)[^ ]*\\)[^(]*\\((\\(.+\\))\\)?" verstr) (let ((temp (substring verstr (match-beginning 2) (match-end 2)))) (setq version-string (substring verstr (match-beginning 1) (match-end 1)) code-name (and (match-beginning 4) (substring verstr (match-beginning 4) (match-end 4)))) (while (string-match "^\\([0-9]+\\)\\.?" temp) (setq version (cons (string-to-number (substring temp (match-beginning 1) (match-end 1))) version) temp (substring temp (match-end 0)))))) (list (nreverse version) code-name version-string))) ;;; @ End. ;;; (provide 'product) ; beware of circular dependency. (require 'apel-ver) ; these two files depend on each other. (product-provide 'product 'apel-ver) ;;; product.el ends here wanderlust-apel-82eb232/pym.el000066400000000000000000000266141426577707700163400ustar00rootroot00000000000000;;; pym.el --- Macros for Your Poe -*- lexical-binding: t -*- ;; Copyright (C) 1995,1996,1997,1998,1999 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Shuhei KOBAYASHI ;; Keywords: byte-compile, evaluation, edebug, internal ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This module provides `def*-maybe' macros for conditional definition. ;; ;; Many APEL modules use these macros to provide the emulating version ;; of the Emacs builtins (both C primitives and lisp subroutines) for ;; backward compatibility. While compilation time, if `def*-maybe' ;; find that functions/variables being defined is already provided by ;; Emacs used for compilation, it does not leave the definitions in ;; compiled code and resulting .elc files will be highly specialized ;; for your environment. Lisp programmers should be aware that these ;; macros will never provide functions or variables at run-time if they ;; are defined for some reason (or by accident) at compilation time. ;; For `find-function' lovers, the following definitions may work with ;; `def*-maybe'. ;; ;; (setq find-function-regexp ;; "^\\s-*(def[^cgvW]\\(\\w\\|-\\)+\\*?\\s-+'?%s\\(\\s-\\|$\\)") ;; (setq find-variable-regexp ;; "^\\s-*(def[^umaW]\\(\\w\\|-\\)+\\*?\\s-+%s\\(\\s-\\|$\\)") ;; ;; I'm too lazy to write better regexps, sorry. -- shuhei ;;; Code: ;; for `load-history'. (or (boundp 'current-load-list) (setq current-load-list nil)) (require 'static) ;;; Conditional define. (put 'defun-maybe 'lisp-indent-function 'defun) (defmacro defun-maybe (name &rest everything-else) "Define NAME as a function if NAME is not defined. See also the function `defun'." (or (and (fboundp name) (not (get name 'defun-maybe))) `(or (fboundp (quote ,name)) (prog1 (defun ,name ,@ everything-else) ;; This `defun' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defun-maybe t))))) (put 'defmacro-maybe 'lisp-indent-function 'defun) (defmacro defmacro-maybe (name &rest everything-else) "Define NAME as a macro if NAME is not defined. See also the function `defmacro'." (or (and (fboundp name) (not (get name 'defmacro-maybe))) `(or (fboundp (quote ,name)) (prog1 (defmacro ,name ,@ everything-else) ;; This `defmacro' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defmacro-maybe t))))) (put 'defsubst-maybe 'lisp-indent-function 'defun) (defmacro defsubst-maybe (name &rest everything-else) "Define NAME as an inline function if NAME is not defined. See also the macro `defsubst'." (or (and (fboundp name) (not (get name 'defsubst-maybe))) `(or (fboundp (quote ,name)) (prog1 (defsubst ,name ,@ everything-else) ;; This `defsubst' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defsubst-maybe t))))) (defmacro defalias-maybe (symbol definition) "Define SYMBOL as an alias for DEFINITION if SYMBOL is not defined. See also the function `defalias'." (setq symbol (eval symbol)) (or (and (fboundp symbol) (not (get symbol 'defalias-maybe))) `(or (fboundp (quote ,symbol)) (prog1 (defalias (quote ,symbol) ,definition) ;; `defalias' updates `load-history' internally. (put (quote ,symbol) 'defalias-maybe t))))) (defmacro defvar-maybe (name &rest everything-else) "Define NAME as a variable if NAME is not defined. See also the function `defvar'." (or (and (boundp name) (not (get name 'defvar-maybe))) `(or (boundp (quote ,name)) (prog1 (defvar ,name ,@ everything-else) ;; byte-compiler will generate code to update ;; `load-history'. (put (quote ,name) 'defvar-maybe t))))) (defmacro defconst-maybe (name &rest everything-else) "Define NAME as a constant variable if NAME is not defined. See also the function `defconst'." (or (and (boundp name) (not (get name 'defconst-maybe))) `(or (boundp (quote ,name)) (prog1 (defconst ,name ,@ everything-else) ;; byte-compiler will generate code to update ;; `load-history'. (put (quote ,name) 'defconst-maybe t))))) (defmacro defun-maybe-cond (name args &optional doc &rest clauses) "Define NAME as a function if NAME is not defined. CLAUSES are like those of `cond' expression, but each condition is evaluated at compile-time and, if the value is non-nil, the body of the clause is used for function definition of NAME. See also the function `defun'." (or (stringp doc) (setq clauses (cons doc clauses) doc nil)) (or (and (fboundp name) (not (get name 'defun-maybe))) `(or (fboundp (quote ,name)) (prog1 (static-cond ,@ (mapcar (lambda (case) (list (car case) (if doc `(defun ,name ,args ,doc ,@ (cdr case)) ` (defun ,name ,args ,@ (cdr case))))) clauses)) ;; This `defun' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defun-maybe t))))) (defmacro defmacro-maybe-cond (name args &optional doc &rest clauses) "Define NAME as a macro if NAME is not defined. CLAUSES are like those of `cond' expression, but each condition is evaluated at compile-time and, if the value is non-nil, the body of the clause is used for macro definition of NAME. See also the function `defmacro'." (or (stringp doc) (setq clauses (cons doc clauses) doc nil)) (or (and (fboundp name) (not (get name 'defmacro-maybe))) `(or (fboundp (quote ,name)) (prog1 (static-cond ,@ (mapcar (lambda (case) (list (car case) (if doc `(defmacro ,name ,args ,doc ,@ (cdr case)) `(defmacro ,name ,args ,@ (cdr case))))) clauses)) ;; This `defmacro' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defmacro-maybe t))))) (defmacro defsubst-maybe-cond (name args &optional doc &rest clauses) "Define NAME as an inline function if NAME is not defined. CLAUSES are like those of `cond' expression, but each condition is evaluated at compile-time and, if the value is non-nil, the body of the clause is used for function definition of NAME. See also the macro `defsubst'." (or (stringp doc) (setq clauses (cons doc clauses) doc nil)) (or (and (fboundp name) (not (get name 'defsubst-maybe))) `(or (fboundp (quote ,name)) (prog1 (static-cond ,@ (mapcar (lambda (case) (list (car case) (if doc `(defsubst ,name ,args ,doc ,@ (cdr case)) `(defsubst ,name ,args ,@ (cdr case))))) clauses)) ;; This `defsubst' will be compiled to `fset', ;; which does not update `load-history'. ;; We must update `current-load-list' explicitly. (setq current-load-list (cons (quote ,name) current-load-list)) (put (quote ,name) 'defsubst-maybe t))))) ;;; Edebug spec. ;; `def-edebug-spec' is an autoloaded macro in v19 and later. ;; (Note that recent XEmacs provides "edebug" as a separate package.) (defmacro-maybe def-edebug-spec (symbol spec) "Set the edebug-form-spec property of SYMBOL according to SPEC. Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol \(naming a function\), or a list." `(put (quote ,symbol) 'edebug-form-spec (quote ,spec))) ;; edebug-spec for `def*-maybe' macros. (def-edebug-spec defun-maybe defun) (def-edebug-spec defmacro-maybe defmacro) (def-edebug-spec defsubst-maybe defun) (def-edebug-spec defun-maybe-cond (&define name lambda-list [&optional stringp] [&rest ([¬ eval] [&rest sexp])] [&optional (eval [&optional ("interactive" interactive)] def-body)] &rest (&rest sexp))) (def-edebug-spec defmacro-maybe-cond (&define name lambda-list [&rest ([¬ eval] [&rest sexp])] [&optional (eval def-body)] &rest (&rest sexp))) (def-edebug-spec defsubst-maybe-cond (&define name lambda-list [&optional stringp] [&rest ([¬ eval] [&rest sexp])] [&optional (eval [&optional ("interactive" interactive)] def-body)] &rest (&rest sexp))) ;; edebug-spec for `static-*' macros are also defined here. (def-edebug-spec static-if (def-form form body)) (def-edebug-spec static-when (def-form body)) (def-edebug-spec static-unless (def-form body)) (def-edebug-spec static-condition-case (symbolp def-form &rest ([&or symbolp (&rest symbolp)] body))) (def-edebug-spec static-defconst (symbolp def-form &optional stringp)) (def-edebug-spec static-cond (&rest (def-form body))) ;;; for backward compatibility. (defun subr-fboundp (symbol) "Return t if SYMBOL's function definition is a built-in function." (and (fboundp symbol) (subrp (symbol-function symbol)))) ;; (make-obsolete 'subr-fboundp "don't use it.") ;;; End. (require 'product) (product-provide (provide 'pym) (require 'apel-ver)) ;;; pym.el ends here wanderlust-apel-82eb232/richtext.el000066400000000000000000000130731426577707700173600ustar00rootroot00000000000000;;; richtext.el -- read and save files in text/richtext format -*- lexical-binding: t -*- ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Created: 1995/7/15 ;; Version: $Id$ ;; Keywords: wp, faces, MIME, multimedia ;; This file is not part of GNU Emacs yet. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (require 'enriched) ;;; @ variables ;;; (defconst richtext-initial-annotation (lambda () (format "Content-Type: text/richtext\nText-Width: %d\n\n" fill-column)) "What to insert at the start of a text/richtext file. If this is a string, it is inserted. If it is a list, it should be a lambda expression, which is evaluated to get the string to insert.") (defconst richtext-annotation-regexp "[ \t\n]*\\(<\\(/\\)?\\([-A-za-z0-9]+\\)>\\)[ \t\n]*" "Regular expression matching richtext annotations.") (defconst richtext-translations '((face (bold-italic "bold" "italic") (bold "bold") (italic "italic") (underline "underline") (fixed "fixed") (excerpt "excerpt") (default ) (nil enriched-encode-other-face)) (invisible (t "comment")) (left-margin (4 "indent")) (right-margin (4 "indentright")) (justification (right "flushright") (left "flushleft") (full "flushboth") (center "center")) ;; The following are not part of the standard: (FUNCTION (enriched-decode-foreground "x-color") (enriched-decode-background "x-bg-color")) (read-only (t "x-read-only")) (unknown (nil format-annotate-value)) ; (font-size (2 "bigger") ; unimplemented ; (-2 "smaller")) ) "List of definitions of text/richtext annotations. See `format-annotate-region' and `format-deannotate-region' for the definition of this structure.") ;;; @ encoder ;;; ;;;###autoload (defun richtext-encode (from to) (if enriched-verbose (message "Richtext: encoding document...")) (save-restriction (narrow-to-region from to) (delete-to-left-margin) (unjustify-region) (goto-char from) (format-replace-strings '(("<" . ""))) (format-insert-annotations (format-annotate-region from (point-max) richtext-translations 'enriched-make-annotation enriched-ignore)) (goto-char from) (insert (if (stringp enriched-initial-annotation) richtext-initial-annotation (funcall richtext-initial-annotation))) (enriched-map-property-regions 'hard (lambda (_v b _e) (goto-char b) (if (eolp) (while (search-forward "\n" nil t) (replace-match "\n") ))) (point) nil) (if enriched-verbose (message nil)) ;; Return new end. (point-max))) ;;; @ decoder ;;; (defun richtext-next-annotation () "Find and return next text/richtext annotation. Return value is (begin end name positive-p), or nil if none was found." (catch 'tag (while (re-search-forward richtext-annotation-regexp nil t) (let* ((beg0 (match-beginning 0)) (end0 (match-end 0)) (beg (match-beginning 1)) (end (match-end 1)) (name (downcase (buffer-substring (match-beginning 3) (match-end 3)))) (pos (not (match-beginning 2))) ) (cond ((equal name "lt") (delete-region beg end) (goto-char beg) (insert "<") ) ((equal name "comment") (if pos (throw 'tag (list beg0 end name pos)) (throw 'tag (list beg end0 name pos)) ) ) (t (throw 'tag (list beg end name pos)) )) )))) ;;;###autoload (defun richtext-decode (from to) (if enriched-verbose (message "Richtext: decoding document...")) (save-excursion (save-restriction (narrow-to-region from to) (goto-char from) (let ((file-width (enriched-get-file-width)) (use-hard-newlines t)) (enriched-remove-header) (goto-char from) (while (re-search-forward "\n\n+" nil t) (replace-match "\n") ) ;; Deal with newlines (goto-char from) (while (re-search-forward "[ \t\n]*[ \t\n]*" nil t) (replace-match "\n") (put-text-property (match-beginning 0) (point) 'hard t) (put-text-property (match-beginning 0) (point) 'front-sticky nil) ) ;; Translate annotations (format-deannotate-region from (point-max) richtext-translations 'richtext-next-annotation) ;; Fill paragraphs (if (and file-width ; possible reasons not to fill: (= file-width fill-column)) ; correct wd. ;; Minimally, we have to insert indentation and justification. (enriched-insert-indentation) (if enriched-verbose (message "Filling paragraphs...")) (fill-region (point-min) (point-max)))) (if enriched-verbose (message nil)) (point-max)))) ;;; @ end ;;; (require 'product) (product-provide (provide 'richtext) (require 'apel-ver)) ;;; richtext.el ends here wanderlust-apel-82eb232/static.el000066400000000000000000000056241426577707700170200ustar00rootroot00000000000000;;; static.el --- tools for static evaluation -*- lexical-binding: t -*- ;; Copyright (C) 1999 Tanaka Akira ;; Author: Tanaka Akira ;; Keywords: byte compile, evaluation ;; This file is part of APEL (A Portable Emacs Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (put 'static-if 'lisp-indent-function 2) (defmacro static-if (cond then &rest else) "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) "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) "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) "Like `condition-case', but evaluate BODYFORM at compile time." (eval `(condition-case ,var (list (quote quote) ,bodyform) ,@ (mapcar (if var (lambda (h) `(,(car h) (list (quote funcall) (lambda (,var) ,@ (cdr h)) (list (quote quote) ,var)))) (lambda (h) `(,(car h) (quote (progn ,@ (cdr h)))))) handlers)))) (put 'static-defconst 'lisp-indent-function 'defun) (defmacro static-defconst (symbol initvalue &optional docstring) "Like `defconst', but evaluate INITVALUE at compile 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) "Like `cond', but evaluate CONDITION part of each clause at compile time." (while (and clauses (not (eval (car (car clauses))))) (setq clauses (cdr clauses))) (if clauses (cons 'progn (cdr (car clauses))))) ;;; @ end ;;; (require 'product) (product-provide (provide 'static) (require 'apel-ver)) ;;; static.el ends here