1 [README for APEL (English Version)]
6 APEL stands for "A Portable Emacs Library". It consists of
9 poe.el --- emulation module mainly for basic functions and special
10 forms/macros of latest emacsen
11 poe-xemacs.el --- for XEmacs
12 poe-18.el --- for Emacs 18/Nemacs
13 env.el --- env.el for Emacs 18
15 poem.el --- provide basic functions to write portable MULE
17 poem-nemacs.el --- for Nemacs
18 poem-ltn1.el --- for Emacs 19/XEmacs without MULE
19 poem-om.el --- for MULE 1.*, 2.*
20 poem-20.el --- shared module between Emacs 20 and XEmacs-MULE
21 poem-e20_2.el --- for Emacs 20.1/20.2
22 poem-e20_3.el --- for Emacs 20.3
23 poem-xm.el --- for XEmacs-MULE
25 invisible.el --- provide features about invisible region
26 inv-18.el --- for Emacs 18
27 inv-19.el --- for Emacs 19
28 inv-xemacs.el --- for XEmacs
30 mcharset.el --- provide MIME charset related features
31 mcs-nemacs.el --- for Nemacs
32 mcs-ltn1.el --- for Emacs 19/XEmacs without MULE
33 mcs-om.el --- for MULE 1.*, 2.*
34 mcs-20.el --- shared module between Emacs 20 and XEmacs-MULE
35 mcs-e20.el --- for Emacs 20
36 mcs-xm.el --- for XEmacs-MULE
38 static.el --- utility for static evaluation
40 broken.el --- provide information of broken facilities of Emacs
42 pccl.el --- utility to write portable CCL program
43 pccl-om.el --- for MULE 2.*
44 pccl-20.el --- for Emacs 20/XEmacs-21-MULE
46 alist.el: utility for Association-list
48 calist.el: utility for condition tree and
49 condition/situation-alist
51 path-util.el: utility for path management or file detection
53 filename.el: utility to make file-name
55 install.el: utility to install emacs-lisp package
57 mule-caesar.el: ROT 13-47-48 Caesar rotation utility
59 emu.el --- (emu bundled in tm-7.106 compatibility module; it
60 required poe, poem and mcharset)
61 emu-mule: for MULE 1.*, 2.*
62 richtext.el --- text/richtext module
63 for Emacs 19.29 or later,
65 tinyrich.el --- text/richtext module for old emacsen
67 pcustom.el --- provide portable custom environment
69 tinycustom.el --- emulation module of custom.el
75 (a) run in expanded place
77 If you don't want to install other directories, please do only
82 You can specify the emacs command name, for example
86 If `EMACS=...' is omitted, EMACS=emacs is used.
90 If you want to install other directories, please do following:
94 You can specify the emacs command name, for example
96 % make install EMACS=xemacs
98 If `EMACS=...' is omitted, EMACS=emacs is used.
100 You can specify the prefix of the directory tree for Emacs Lisp
101 programs and shell scripts, for example:
103 % make install PREFIX=~/
105 If `PREFIX=...' is omitted, the prefix of the directory tree of the
106 specified emacs command is used (perhaps /usr/local).
108 For example, if PREFIX=/usr/local and Emacs 20.2 is specified, it
109 will create the following directory tree:
111 /usr/local/share/emacs/20.2/site-lisp/ --- emu
112 /usr/local/share/emacs/site-lisp/apel/ --- APEL
114 You can specify the lisp directory for Emacs Lisp programs,
117 % make install LISPDIR=~/elisp
119 You can also specify the version specific lisp directory where the
120 emu modules will be installed in, for example:
122 % make install VERSION_SPECIFIC_LISPDIR=~/elisp
124 If you would like to know what files belong to the emu modules or
125 the apel modules, or where they will be installed in, for example,
126 please type the following command.
128 % make what-where LISPDIR=~/elisp VERSION_SPECIFIC_LISPDIR=~/elisp
130 You can specify other optional settings by editing the file
131 APEL-CFG. Please read comments in it.
133 (c) install as a XEmacs package
135 If you want to install to XEmacs package directory, please do
138 % make install-package
140 You can specify the emacs command name, for example
142 % make install-package XEMACS=xemacs-21
144 If `XEMACS=...' is omitted, XEMACS=xemacs is used.
146 You can specify the package directory, for example:
148 % make install PACKAGEDIR=~/.xemacs
150 If `PACKAGEDIR=...' is omitted, the first existing package
153 Notice that XEmacs package system requires XEmacs 21.0 or later.
156 load-path (for Emacs or MULE)
157 =============================
159 If you are using Emacs or Mule, please add directory of apel to
160 load-path. If you install by default setting with Emacs 20.1/20.2,
161 you can write subdirs.el for example:
163 --------------------------------------------------------------------
164 (normal-top-level-add-to-load-path '("apel"))
165 --------------------------------------------------------------------
167 If you are using Emacs 20.3 or later or XEmacs, there are no need to
168 set up load-path with normal installation.
177 Function put-alist (ITEM VALUE ALIST)
179 Modify ALIST to set VALUE to ITEM. If there is a pair whose car is
180 ITEM, replace its cdr by VALUE. If there is not such pair, create
181 new pair (ITEM . VALUE) and return new alist whose car is the new
182 pair and cdr is ALIST.
184 Function del-alist (ITEM ALIST)
186 If there is a pair whose key is ITEM, delete it from ALIST.
188 Function set-alist (SYMBOL ITEM VALUE)
190 Modify a alist indicated by SYMBOL to set VALUE to ITEM.
192 Ex. (set-alist 'auto-mode-alist "\\.pln$" 'text-mode)
194 Function modify-alist (MODIFIER DEFAULT)
196 Modify alist DEFAULT into alist MODIFIER.
198 Function set-modified-alist (SYMBOL MODIFIER)
200 Modify a value of a SYMBOL into alist MODIFIER. The SYMBOL should
201 be alist. If it is not bound, its value regard as nil.
206 Function add-path (PATH &rest OPTIONS)
208 Add PATH to `load-path' if it exists under `default-load-path'
209 directories and it does not exist in `load-path'.
211 You can use following PATH styles:
213 load-path relative: "PATH" (it is searched from
216 home directory relative: "~/PATH" "~USER/PATH"
218 absolute path: "/FOO/BAR/BAZ"
220 You can specify following OPTIONS:
222 'all-paths --- search from `load-path' instead of
225 'append --- add PATH to the last of `load-path'
227 Function add-latest-path (PATTERN &optional ALL-PATHS)
229 Add latest path matched by regexp PATTERN to `load-path' if it
230 exists under `default-load-path' directories and it does not exist
233 For example, if there is bbdb-1.50 and bbdb-1.51 under site-lisp,
234 and if bbdb-1.51 is newer than bbdb-1.50, and site-lisp is
235 /usr/local/share/emacs/site-lisp,
237 (add-latest-path "bbdb")
239 it adds "/usr/local/share/emacs/site-lisp/bbdb-1.51" to top of
242 If optional argument ALL-PATHS is specified, it is searched from all
243 of `load-path' instead of `default-load-path'.
245 Function get-latest-path (PATTERN &optional ALL-PATHS)
247 Return latest directory in default-load-path which is matched to
248 regexp PATTERN. If optional argument ALL-PATHS is specified, it is
249 searched from all of load-path instead of default-load-path.
251 Ex. (let ((gnus-path (get-latest-path "gnus")))
252 (add-path (expand-file-name "lisp" gnus-path))
253 (add-to-list 'Info-default-directory-list
254 (expand-file-name "texi" gnus-path))
257 Function file-installed-p (FILE &optional PATHS)
259 Return absolute-path of FILE if FILE exists in PATHS. If PATHS is
260 omitted, `load-path' is used.
262 Function exec-installed-p (FILE &optional PATHS SUFFIXES)
264 Return absolute-path of FILE if FILE exists in PATHS. If PATHS is
265 omitted, `exec-path' is used. If SUFFIXES is omitted,
266 `exec-suffix-list' is used.
268 Function module-installed-p (MODULE &optional PATHS)
270 Return non-nil if MODULE is provided or exists in PATHS. If PATHS
271 is omitted, `load-path' is used.
276 Function replace-as-filename (string)
278 Return safety file-name from STRING.
280 It refers variable `filename-filters'. It is list of functions for
281 file-name filter. Default filter refers following variables:
283 Variable filename-limit-length
285 Limit size of file-name.
287 Variable filename-replacement-alist
289 Alist list of characters vs. string as replacement. List of
290 characters represents characters not allowed as file-name.
296 If you write bug-reports and/or suggestions for improvement, please
297 send them to the tm Mailing List:
299 bug-tm-en@chamonix.jaist.ac.jp (English)
300 bug-tm-ja@chamonix.jaist.ac.jp (Japanese)
302 Via the tm ML, you can report APEL bugs, obtain the latest release
303 of APEL, and discuss future enhancements to APEL. To join the tm
304 ML, send an empty e-mail to
306 tm-en-help@chamonix.jaist.ac.jp (English)
307 tm-ja-help@chamonix.jaist.ac.jp (Japanese)
313 Development of APEL uses CVS. So latest developing version is
318 % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
321 CVS password: [CR] # NULL string
325 % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
329 If you would like to join CVS based development, please send mail to
331 cvs@chamonix.jaist.ac.jp
333 with your account name and UNIX /etc/passwd style crypted password.
334 We hope you will join the open development.