[README for APEL (English Version)] by MORIOKA Tomohiko What's APEL? ============ APEL stands for "A Portable Emacs Library". It consists of following modules: emu: A package to fill incompatibilities of emacsen emu.el --- main module About mule API: emu-nemacs.el --- for NEmacs emu-latin1.el --- for Emacs 19 or XEmacs without mule emu-mule.el --- for MULE 2.3 emu-20.el --- for Emacs 20 and XEmacs with mule emu-e20.el --- for Emacs 20.1 or later emu-e20_2.el --- for Emacs 20.1, 20.2 emu-e20_3.el --- for Emacs 20.3 or later emu-x20.el --- for XEmacs with mule About other API emu-18.el --- for Emacs 18 emu-e19.el --- for Emacs 19 or later emu-xemacs.el --- for XEmacs env.el --- env.el for Emacs 18 richtext.el --- text/richtext module for Emacs 19.29 or later, XEmacs 19.14 or later tinyrich.el --- text/richtext module for old emacsen alist.el: utility for Association-list atype.el: utility for atype 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 Installation ============ (a) run in expanded place If you don't want to install other directories, please do only following: % make You can specify the emacs command name, for example % make install EMACS=xemacs If `EMACS=...' is omitted, EMACS=emacs is used. (b) 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 other optional settings by editing the file APEL-CFG. Please read comments in it. 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, you can write subdirs.el for example: -------------------------------------------------------------------- (normal-top-level-add-to-load-path '("apel")) -------------------------------------------------------------------- If you are using XEmacs, there are no need of setting about load-path. 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 `defaul-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-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 tm Mailing List: bug-tm-en@chamonix.jaist.ac.jp (English) bug-tm-ja@chamonix.jaist.ac.jp (Japanese) Via the tm ML, you can report APEL bugs, obtain the latest release of APEL, and discuss future enhancements to APEL. To join the tm ML, send an empty e-mail to tm-en-help@chamonix.jaist.ac.jp (English) tm-ja-help@chamonix.jaist.ac.jp (Japanese)