* contrib/cus-dep.el: Remove.
* contrib/gnus-idna.el: Remove.
* contrib/passwd.el: Remove.
* contrib/regexp-opt.el: Remove.
* contrib/timer.el: Remove.
* lisp/canlock-om.el: Remove.
* lisp/dgnushack.el: Add `early-package-load-path' to `load-path' for XEmacs;
remove Mule 2 stuff.
* lisp/gnus-agent.el: Remove Mule 2 stuff.
* lisp/gnus-art.el: Ditto.
* lisp/gnus-cite.el: Ditto.
* lisp/gnus-ems.el: Ditto.
* lisp/gnus-msg.el: Ditto.
* lisp/gnus-namazu.el: Ditto.
* lisp/gnus-offline.el: Ditto.
* lisp/gnus-start.el: Ditto.
* lisp/gnus-util.el: Ditto.
* lisp/gnus-uu.el: Ditto.
* lisp/gnus.el: Ditto.
* lisp/lpath.el: Ditto.
* lisp/mail-source.el: Ditto.
* lisp/message.el: Ditto.
* lisp/mm-url.el: Ditto.
* lisp/nnfolder.el: Ditto.
* lisp/nnheader.el: Ditto.
* lisp/nnkiboze.el: Ditto.
* lisp/nnmail.el: Ditto.
* lisp/nnmaildir.el: Ditto.
* lisp/nnmbox.el: Ditto.
* lisp/nnmh.el: Ditto.
* lisp/nnml.el: Ditto.
* lisp/nnrss.el: Ditto.
* lisp/nnshimbun.el: Ditto.
* lisp/nntp.el: Ditto.
* lisp/score-mode.el: Ditto.
* texi/infohack.el: Ditto.
* texi/ptexinfmt.el: Ditto.
2004-01-05 Katsumi Yamaoka <yamaoka@jpl.org>
+ * sample.lpath.el: Remove.
+ * contrib/cus-dep.el: Remove.
+ * contrib/gnus-idna.el: Remove.
+ * contrib/passwd.el: Remove.
+ * contrib/regexp-opt.el: Remove.
+ * contrib/timer.el: Remove.
+ * lisp/canlock-om.el: Remove.
+ * lisp/dgnushack.el: Add `early-package-load-path' to `load-path'
+ for XEmacs 21.5; remove Mule 2 stuff.
+ * lisp/gnus-agent.el: Remove Mule 2 stuff.
+ * lisp/gnus-art.el: Ditto.
+ * lisp/gnus-cite.el: Ditto.
+ * lisp/gnus-ems.el: Ditto.
+ * lisp/gnus-msg.el: Ditto.
+ * lisp/gnus-namazu.el: Ditto.
+ * lisp/gnus-offline.el: Ditto.
+ * lisp/gnus-start.el: Ditto.
+ * lisp/gnus-util.el: Ditto.
+ * lisp/gnus-uu.el: Ditto.
+ * lisp/gnus.el: Ditto.
+ * lisp/lpath.el: Ditto.
+ * lisp/mail-source.el: Ditto.
+ * lisp/message.el: Ditto.
+ * lisp/mm-url.el: Ditto.
+ * lisp/nnfolder.el: Ditto.
+ * lisp/nnheader.el: Ditto.
+ * lisp/nnkiboze.el: Ditto.
+ * lisp/nnmail.el: Ditto.
+ * lisp/nnmaildir.el: Ditto.
+ * lisp/nnmbox.el: Ditto.
+ * lisp/nnmh.el: Ditto.
+ * lisp/nnml.el: Ditto.
+ * lisp/nnrss.el: Ditto.
+ * lisp/nnshimbun.el: Ditto.
+ * lisp/nntp.el: Ditto.
+ * lisp/score-mode.el: Ditto.
+ * texi/infohack.el: Ditto.
+ * texi/ptexinfmt.el: Ditto.
+
+2004-01-05 Katsumi Yamaoka <yamaoka@jpl.org>
+
* lisp/hex-util.el: Remove.
* lisp/md5.el: Remove.
* lisp/sha1-el.el: Remove.
-How to build T-gnus with Mule 2.3 based on Emacs 19.34.
-
-FIXING loaddefs.el
-==================
-
-Unfortunately, some variables for `message' are predefined in lisp/
-loaddefs.el which is dumped in Mule executable file. It is uninvited,
-moreover, it has a bad influence. So you should remove these
-definitions from lisp/loaddefs.el and rebuild Mule. However, if you
-don't want to rebuild Mule, you may put the following lines in the
-beginning of .emacs file instead of rebuilding Mule.
-
-(let ((symbols '(citation-line-function
- cite-function courtesy-message default-headers
- default-mail-headers default-news-headers
- deletable-headers fcc-handler-function
- followup-to-function from-style
- generate-headers-first generate-new-buffers
- ignored-bounced-headers ignored-cited-headers
- ignored-mail-headers ignored-news-headers
- ignored-resent-headers ignored-supersedes-headers
- included-forward-headers indent-citation-function
- interactive kill-buffer-on-exit post-method
- reply-to-function required-mail-headers
- required-news-headers send-mail-function
- send-news-function signature
- signature-before-forwarded-message signature-file
- signature-separator syntax-checks use-followup-to
- user-organization-file wide-reply-to-function
- yank-prefix))
- symbol)
- (while symbols
- (setq symbol (car symbols)
- symbols (cdr symbol))
- (makunbound (intern (format "message-%s" symbol)))))
-
-
-INSTALL CUSTOM, APEL, CLIME, SEMI
-=================================
-
-T-gnus requires the latest version of CUSTOM, APEL, CLIME and SEMI;
-CLIME 1.14 provides the same features as FLIM 1.14 for old Emacsen,
-which is currently available from:
-
-ftp://ftp.jpl.org/pub/m17n/clime-1_14-************.tar.gz
-
-You should install these packages before installing T-gnus. As for
-CUSTOM, you should apply the following patch before building it.
-
------- cut here ------ cut here ------ cut here ------ cut here ------
---- custom-1.9962/cus-face.el~ Wed Mar 4 19:52:39 1998
-+++ custom-1.9962/cus-face.el Mon Mar 9 08:05:33 1998
-@@ -96,7 +96,7 @@
- "Define a new FACE on all frames, ignoring X resources."
- (interactive "SMake face: ")
- (or (internal-find-face name)
-- (let ((face (make-vector 8 nil)))
-+ (let ((face (make-vector face-vector-length nil)))
- (aset face 0 'face)
- (aset face 1 name)
- (let* ((frames (frame-list))
------- cut here ------ cut here ------ cut here ------ cut here ------
-
-By the way, the latest CUSTOM package for Emacs v19 is available from:
-
-ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
-
-However, since the `custom-make-dependencies' function does not exist
-in this version of CUSTOM, we will use the contrib/cus-dep.el which is
-imported from Emacs 20.7 when building T-gnus.
-
-
-INSTALL regexp-opt.el
-=====================
-
-Some T-gnus modules use the functions `regexp-opt', etc. That
-functions are defined in regexp-opt.el(c) in the recent Emacsen,
-however, Mule 2.3 does not contain it in the standard Lisp libraries.
-Copy the file contrib/regexp-opt.el to site-lisp directory (or any
-other directory), and byte-compile it as follows:
-
- % cp -p contrib/regexp-opt.el /usr/local/share/mule/site-lisp
- % cd /usr/local/share/mule/site-lisp/
- % mule -batch -q -no-site-file -f batch-byte-compile regexp-opt.el
-
-
-INSTALL passwd.el
-=================
-
-This module provide the `read-passwd' function. You have to install
-it if you don't have that function. To do this:
-
- % cp -p contrib/passwd.el /usr/local/share/mule/site-lisp
- % cd /usr/local/share/mule/site-lisp/
- % mule -batch -q -no-site-file -f batch-byte-compile passwd.el
-
-And add the following line in your .emacs file:
-
- (autoload 'read-passwd "passwd")
-
-
-INSTALL T-gnus
-==============
-
-There are three ways of making T-gnus with Mule 2.3 based on Emacs 19.34.
-
-1. If you have installed EMU, APEL, CLIME and SEMI packages under the
- standard load-path, for instance:
-
- EMU: /usr/local/share/mule/19.34/site-lisp/
- APEL: /usr/local/share/mule/site-lisp/apel/
- CLIME: /usr/local/share/mule/site-lisp/flim/
- SEMI: /usr/local/share/mule/site-lisp/semi/
-
- What is more, if you have been replaced old CUSTOM with new CUSTOM
- or if you have installed new CUSTOM directly under the standard
- load-path as such as /usr/local/share/mule/19.34/site-lisp/, you
- may have nothing to be done; type the following commands right now.
-
- % ./configure --with-emacs=mule
- % make install
-
- However, if you have installed new CUSTOM in the subdirectory under
- the standard load-path, use the configure option `--with-addpath='
- as follows:
-
- % ./configure --with-emacs=mule\
- --with-addpath=/usr/local/share/mule/site-lisp/custom/
- % make install
-
- or you can use the file subdirs.el under the parent directory of
- the subdirectory of CUSTOM to add it into load-path which contain
- the following contents:
-
- (normal-top-level-add-to-load-path
- '("custom/" "and the other subdirectories.../"))
-
- and then just type:
-
- % ./configure --with-emacs=mule
- % make install
-
-2. If you have installed EMU, APEL, CLIME and SEMI packages in the
- non-standard load-path, use the configure option `--with-addpath='
- with the colon separated directory names where EMU, APEL or CUSTOM
- packages are installed. For example:
-
- % ./configure --with-emacs=mule\
- --with-addpath=~/elisp/emu/:~/elisp/apel/:~/elisp/custom/
- % make install
-
- In this case, you have no need to add paths of CLIME, SEMI if they
- are installed under the directory which is same as the parent
- directory of APEL.
-
-3. This is another way to install T-gnus when you have installed EMU,
- APEL, CLIME and SEMI packages in the non-standard load-path. Copy
- the file `sample.lpath.el' which is included in the distribution to
- `~/.lpath.el' and modify it suitably for your environment. And
- then type the following command.
-
- % ./configure --with-emacs=mule
- % make install
-
-
-USING emacs-w3m (and Emacs/W3)
-==============================
-The `nnshimbun' web based back end has been moved to the emacs-w3m
-package at 18 June 2003. You need to install the latest version of
-emacs-w3m if you want to browse web newspapers using T-gnus as before.
-In that case, you *must* delete nnshimbun.el and nnshimbun.elc files
-originated by T-gnus. Emacs-w3m is an Emacs interface to the external
-command w3m, visit the following pages for more information:
-
- http://emacs-w3m.namazu.org/
- http://w3m.sourceforge.net/
-
-Please give up the idea to use Emacs/W3 under Mule 2.3. There is no
-information, sorry.
+T-gnus no longer supports Mule 2.3 based on Emacs 19.34.
-Emacs 19.34 \e$B$r%Y!<%9$K$7$?\e(B Mule 2.3 \e$B$G\e(B T-gnus \e$B$r:n$kJ}K!!#\e(B
-
-FIXING loaddefs.el
-==================
-
-\e$B;DG0$J$3$H$K$$$/$D$+$N\e(B `message' \e$B$G;H$&JQ?t$,\e(B lisp/loaddefs.el \e$B$GDj5A\e(B
-\e$B$5$l$F$$$F\e(B Mule \e$B$N<B9T%U%!%$%k$KAH$_9~$^$l$F$7$^$C$F$$$^$9!#$3$l$OM>7W\e(B
-\e$B$J$*@$OC$@$7!"$7$+$b0-1F6A$,$"$j$^$9!#$=$3$G$"$J$?$O$=$l$i$NDj5A$r\e(B
-lisp/loaddefs.el \e$B$+$i:o=|$7$F!"\e(BMule \e$B$r:n$jD>$5$J$1$l$P$J$j$^$;$s!#\e(B
-\e$B$7$+$7!"$b$7$"$J$?$,\e(B Mule \e$B$r:n$jD>$9$3$H$rK>$^$J$$$J$i$P!"\e(B.emacs \e$B%U%!\e(B
-\e$B%$%k$N@hF,$K0J2<$N3F9T$r=q$-9~$`$3$H$G!"\e(BMule \e$B$r:n$jD>$9Be$o$j$K$9$k$3\e(B
-\e$B$H$,$G$-$^$9!#\e(B
-
-(let ((symbols '(citation-line-function
- cite-function courtesy-message default-headers
- default-mail-headers default-news-headers
- deletable-headers fcc-handler-function
- followup-to-function from-style
- generate-headers-first generate-new-buffers
- ignored-bounced-headers ignored-cited-headers
- ignored-mail-headers ignored-news-headers
- ignored-resent-headers ignored-supersedes-headers
- included-forward-headers indent-citation-function
- interactive kill-buffer-on-exit post-method
- reply-to-function required-mail-headers
- required-news-headers send-mail-function
- send-news-function signature
- signature-before-forwarded-message signature-file
- signature-separator syntax-checks use-followup-to
- user-organization-file wide-reply-to-function
- yank-prefix))
- symbol)
- (while symbols
- (setq symbol (car symbols)
- symbols (cdr symbol))
- (makunbound (intern (format "message-%s" symbol)))))
-
-
-INSTALL CUSTOM, APEL, CLIME, SEMI
-=================================
-
-T-gnus \e$B$O:G?7HG$N\e(B CUSTOM, APEL, CLIME \e$B$*$h$S\e(B SEMI \e$B$rI,MW$H$7$^$9!#\e(B
-CLIME 1.14 \e$B$O8E$$\e(B Emacs \e$B$K\e(B FLIM 1.14 \e$B$HF1$85!G=$rDs6!$9$k$b$N$G!"8=:_\e(B
-\e$B0J2<$N$b$N$,F~<j$G$-$^$9!#\e(B
-
-ftp://ftp.jpl.org/pub/m17n/clime-1_14-************.tar.gz
-
-\e$B$"$J$?$O$3$l$i$N%Q%C%1!<%8$r\e(B T-gnus \e$B$NA0$K%$%s%9%H!<%k$7$J$1$l$P$J$j$^\e(B
-\e$B$;$s!#\e(BCUSTOM \e$B$K$D$$$F$O!":n$kA0$K$"$J$?$O0J2<$N%Q%C%A$rEv$F$kI,MW$,$"\e(B
-\e$B$j$^$9!#\e(B
-
------- cut here ------ cut here ------ cut here ------ cut here ------
---- custom-1.9962/cus-face.el~ Wed Mar 4 19:52:39 1998
-+++ custom-1.9962/cus-face.el Mon Mar 9 08:05:33 1998
-@@ -96,7 +96,7 @@
- "Define a new FACE on all frames, ignoring X resources."
- (interactive "SMake face: ")
- (or (internal-find-face name)
-- (let ((face (make-vector 8 nil)))
-+ (let ((face (make-vector face-vector-length nil)))
- (aset face 0 'face)
- (aset face 1 name)
- (let* ((frames (frame-list))
------- cut here ------ cut here ------ cut here ------ cut here ------
-
-\e$B$J$*!"\e(BEmacs v19 \e$BMQ$N:G?7$N\e(B CUSTOM \e$B$O0J2<$N$b$N$rF~<j$9$k$3$H$,$G$-$^$9!#\e(B
-
-ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
-
-\e$B$?$@$7!"$3$NHG$N\e(B CUSTOM \e$B$K$O\e(B `custom-make-dependencies' \e$B4X?t$,L5$$$N$G!"\e(B
-T-gnus \e$B$N@8@.;~$K\e(B Emacs 20.7 \e$B$+$i0\F~$7$?\e(B contrib/cus-dep.el \e$B$r;H$$$^\e(B
-\e$B$9!#\e(B
-
-
-INSTALL regexp-opt.el
-=====================
-
-T-gnus \e$B$N$$$/$D$+$N%b%8%e!<%k$O\e(B `regexp-opt' \e$B$J$I$N4X?t$r;H$$$^$9!#$=\e(B
-\e$B$l$i$N4X?t$O!":G6a$N\e(B Emacsen \e$B$G$O\e(B regexp-opt.el(c) \e$B$GDj5A$5$l$F$$$k$N\e(B
-\e$B$G$9$,!"\e(BMule 2.3 \e$B$O$=$l$rI8=`$N\e(B Lisp \e$B%i%$%V%i%j$NCf$K4^$s$G$$$^$;$s!#\e(B
-\e$B0J2<$N$h$&$K\e(B contrib/regexp-opt.el \e$B$r\e(B site-lisp \e$B%G%#%l%/%H%j\e(B (\e$B$^$?$OB>\e(B
-\e$B$N%G%#%l%/%H%j\e(B) \e$B$K%3%T!<$7$F!"\e(Bbyte-compile \e$B$7$F2<$5$$!#\e(B
-
- % cp -p contrib/regexp-opt.el /usr/local/share/mule/site-lisp
- % cd /usr/local/share/mule/site-lisp/
- % mule -batch -q -no-site-file -f batch-byte-compile regexp-opt.el
-
-
-INSTALL passwd.el
-=================
-
-\e$B$3$N%b%8%e!<%k$O\e(B `read-passwd' \e$B4X?t$rDs6!$7$^$9!#L5$$>l9g$O%$%s%9%H!<\e(B
-\e$B%k$7$J$1$l$P$J$j$^$;$s!#$=$l$K$O$3$&$7$F2<$5$$!#\e(B
-
- % cp -p contrib/passwd.el /usr/local/share/mule/site-lisp
- % cd /usr/local/share/mule/site-lisp/
- % mule -batch -q -no-site-file -f batch-byte-compile passwd.el
-
-\e$B$=$7$F\e(B .emacs \e$B%U%!%$%k$K0J2<$N9T$rDI2C$7$F2<$5$$!#\e(B
-
- (autoload 'read-passwd "passwd")
-
-
-INSTALL T-gnus
-==============
-
-Emacs 19.34 \e$B$r%Y!<%9$K$7$?\e(B Mule 2.3 \e$B$G\e(B gnus \e$B$r:n$k$K$O;0$D$NJ}K!$,$"$j\e(B
-\e$B$^$9!#\e(B
-
-1. \e$B$b$7$"$J$?$,\e(B EMU, APEL, CLIME \e$B$*$h$S\e(B SEMI \e$B$N3F%Q%C%1!<%8$rI8=`$N\e(B
- load-path \e$B$N2<$K%$%s%9%H!<%k$7$F$$$k$H$7$^$9!#Nc$($P$3$&!#\e(B
-
- EMU: /usr/local/share/mule/19.34/site-lisp/
- APEL: /usr/local/share/mule/site-lisp/apel/
- CLIME: /usr/local/share/mule/site-lisp/flim/
- SEMI: /usr/local/share/mule/site-lisp/semi/
-
- \e$B$7$+$b!"$b$7$"$J$?$,8E$$\e(B CUSTOM \e$B$r?7$7$$\e(B CUSTOM \e$B$GCV$-49$($F$$$k$+!"\e(B
- \e$B?7$7$$\e(B CUSTOM \e$B$r\e(B /usr/local/share/mule/19.34/site-lisp/ \e$B$N$h$&$JI8\e(B
- \e$B=`$N\e(B load-path \e$B$ND>2<$K%$%s%9%H!<%k$7$F$$$k$J$i$P!"$"$J$?$O2?$b$9\e(B
- \e$B$kI,MW$,$"$j$^$;$s!#:#$9$0$K0J2<$N%3%^%s%I$r%?%$%W$7$F2<$5$$!#\e(B
-
- % ./configure --with-emacs=mule
- % make install
-
- \e$B$7$+$7!"$b$7$"$J$?$,?7$7$$\e(B CUSTOM \e$B$rI8=`$N\e(B load-path \e$B$N2<$N%5%V%G%#\e(B
- \e$B%l%/%H%j$K%$%s%9%H!<%k$7$F$"$k$J$i$P!"0J2<$N$h$&$K\e(B configure \e$B%*%W\e(B
- \e$B%7%g%s$N\e(B `--with-addpath=' \e$B$r;H$&$+!"\e(B
-
- % ./configure --with-emacs=mule\
- --with-addpath=/usr/local/share/mule/site-lisp/custom/
- % make install
-
- \e$B$"$k$$$O$"$J$?$O0J2<$NFbMF$r4^$`!"\e(BCUSTOM \e$B%5%V%G%#%l%/%H%j$N?F%G%#\e(B
- \e$B%l%/%H%j$N2<$N\e(B subdirs.el \e$B%U%!%$%k$r;H$&$3$H$,$G$-$^$9!#\e(B
-
- (normal-top-level-add-to-load-path
- '("custom/" "and the other subdirectories.../"))
-
- \e$B$=$7$FC1$K\e(B
-
- % ./configure --with-emacs=mule
- % make install
-
- \e$B$H%?%$%W$7$F2<$5$$!#\e(B
-
-2. \e$B$b$7$"$J$?$,\e(B EMU, APEL, CLIME \e$B$*$h$S\e(B SEMI \e$B$N3F%Q%C%1!<%8$rI8=`$G$O\e(B
- \e$B$J$$\e(B load-path \e$B$K%$%s%9%H!<%k$7$F$$$k$J$i$P!"%3%m%s$G6h@Z$i$l$?\e(B
- EMU, APEL \e$B$*$h$S\e(B CUSTOM \e$B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%jL>$H\e(B
- configure \e$B%*%W%7%g%s$N\e(B `--with-addpath=' \e$B$r;H$C$F2<$5$$!#Nc$($P\e(B
-
- % ./configure --with-emacs=mule\
- --with-addpath=~/elisp/emu/:~/elisp/apel/:~/elisp/custom/
- % make
-
- \e$B$3$N>l9g!"$b$7\e(B CLIME, SEMI \e$B$,\e(B APEL \e$B$N?F%G%#%l%/%H%j$HF1$8%G%#%l%/%H\e(B
- \e$B%j$N2<$K%$%s%9%H!<%k$5$l$F$$$k$J$i$P!"$=$l$i$N\e(B path \e$B$rDI2C$9$kI,MW\e(B
- \e$B$O$"$j$^$;$s!#\e(B
-
-3. \e$B$3$l$O!"\e(BEMU, APEL, CLIME \e$B$*$h$S\e(B SEMI \e$B$N3F%Q%C%1!<%8$rI8=`$G$O$J$$\e(B
- load-path \e$B$K%$%s%9%H!<%k$7$F$$$k>l9g$N!"JL$NJ}K!$G$9!#G[I[$K4^$^$l\e(B
- \e$B$F$$$k%U%!%$%k\e(B `sample.lpath.el' \e$B$r\e(B `~/.lpath.el' \e$B$K%3%T!<$7$F!"$"\e(B
- \e$B$J$?$N4D6-$K9g$&$h$&$K=q$-49$($F2<$5$$!#$=$7$F<!$N%3%^%s%I$r%?%$%W\e(B
- \e$B$7$F2<$5$$!#\e(B
-
- % ./configure --with-emacs=mule
- % make install
-
-
-USING emacs-w3m (and Emacs/W3)
-==============================
-\e$B%&%'%V$K4p$E$$$?%P%C%/%(%s%I$G$"$k\e(B `nnshimbun' \e$B$O!"\e(B2003\e$BG/\e(B6\e$B7n\e(B18\e$BF|$r0J$F\e(B
-emacs-w3m \e$B%Q%C%1!<%8$K0\@R$5$l$^$7$?!#:#$^$G$N$h$&$K\e(B T-gnus \e$B$G%&%'%V$N\e(B
-\e$B?7J9$r1\Mw$7$?$$$N$G$"$l$P!":G?7HG$N\e(B emacs-w3m \e$B$r%$%s%9%H!<%k$9$kI,MW\e(B
-\e$B$,$"$j$^$9!#$=$N:]!"\e(B*\e$BI,$:\e(B* T-gnus \e$BM3Mh$N\e(B nnshimbun.el \e$B$H\e(B nnshimbun.elc
-\e$B%U%!%$%k$r>C$7$F2<$5$$!#\e(BEmacs-w3m \e$B$O30It%3%^%s%I\e(B w3m \e$B$X$N\e(B Emacs \e$B$N%$%s\e(B
-\e$B%?!<%U%'!<%9$G$9!#>\:Y>pJs$K$D$$$F$O0J2<$N%Z!<%8$rK,$M$F$_$F2<$5$$!#\e(B
-
- http://emacs-w3m.namazu.org/
- http://w3m.sourceforge.net/
-
-Mule 2.3 \e$B$G\e(B Emacs/W3 \e$B$r;H$&$3$H$OD|$a$F2<$5$$!#$9$_$^$;$s$,>pJs$O$"$j\e(B
-\e$B$^$;$s!#\e(B
+T-gnus \e$B$O$b$O$d\e(B Emacs 19.34 \e$B$r%Y!<%9$K$7$?\e(B Mule 2.3 \e$B$r%5%]!<%H$7$^$;$s!#\e(B
+++ /dev/null
-;;; cus-dep.el --- Find customization dependencies.
-;;
-;; Copyright (C) 1997 Free Software Foundation, Inc.
-;;
-;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
-;; Keywords: internal
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Code:
-
-(require 'cl)
-(require 'widget)
-(require 'cus-face)
-(require 'autoload)
-
-(defun custom-make-dependencies ()
- "Batch function to extract custom dependencies from .el files.
-Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"
- (let ((enable-local-eval nil)
- (all-subdirs command-line-args-left)
- (start-directory default-directory))
- (get-buffer-create " cus-dep temp")
- (set-buffer " cus-dep temp")
- (while all-subdirs
- (message "Directory %s" (car all-subdirs))
- (let ((files (directory-files (car all-subdirs) nil "\\`[^=].*\\.el\\'"))
- (default-directory default-directory)
- file
- is-autoloaded)
- (cd (car all-subdirs))
- (while files
- (setq file (car files)
- files (cdr files))
- (when (file-exists-p file)
- (erase-buffer)
- (insert-file-contents file)
- (goto-char (point-min))
- (string-match "\\`\\(.*\\)\\.el\\'" file)
- (let ((name (file-name-nondirectory (match-string 1 file))))
- (condition-case nil
- (while (re-search-forward "^(defcustom\\|^(defface\\|^(defgroup"
- nil t)
- (setq is-autoloaded nil)
- (beginning-of-line)
- (save-excursion
- (forward-line -1)
- (if (looking-at generate-autoload-cookie)
- (setq is-autoloaded t)))
- (let ((expr (read (current-buffer))))
- (condition-case nil
- (progn
- (eval expr)
- (put (nth 1 expr) 'custom-autoloaded is-autoloaded)
- (put (nth 1 expr) 'custom-where name))
- (error nil))))
- (error nil)))))
- (setq all-subdirs (cdr all-subdirs)))))
- (message "Generating cus-load.el...")
- (find-file "cus-load.el")
- (erase-buffer)
- (insert "\
-;;; cus-load.el --- automatically extracted custom dependencies
-;;
-;;; Code:
-
-")
- (mapatoms (lambda (symbol)
- (let ((members (get symbol 'custom-group))
- item where found)
- (when members
- (while members
- (setq item (car (car members))
- members (cdr members)
- where (get item 'custom-where))
- (unless (or (null where)
- (member where found))
- (if found
- (insert " ")
- (insert "(put '" (symbol-name symbol)
- " 'custom-loads '("))
- (prin1 where (current-buffer))
- (push where found)))
- (when found
- (insert "))\n"))))))
- (insert "\
-;;; These are for handling :version. We need to have a minimum of
-;;; information so `custom-changed-variables' could do its job.
-;;; For both groups and variables we have to set `custom-version'.
-;;; For variables we also set the `standard-value' and for groups
-;;; `group-documentation' (which is shown in the customize buffer), so
-;;; we don't have to load the file containing the group.
-
-;;; `custom-versions-load-alist' is an alist that has as car a version
-;;; number and as elts the files that have variables that contain that
-;;; version. These files should be loaded before showing the
-;;; customization buffer that `customize-changed-options' generates.
-
-
-;;; This macro is used so we don't modify the information about
-;;; variables and groups if it's already set. (We don't know when
-;;; cus-load.el is going to be loaded and at that time some of the
-;;; files might be loaded and some others might not).
-(defmacro custom-put-if-not (symbol propname value)
- `(unless (get ,symbol ,propname)
- (put ,symbol ,propname ,value)))
-
-")
- (let ((version-alist nil))
- (mapatoms (lambda (symbol)
- (let ((version (get symbol 'custom-version))
- where)
- (when version
- (setq where (get symbol 'custom-where))
- (when (and where
- ;; Don't bother to do anything if it's
- ;; autoloaded because we will have all
- ;; this info when emacs is running
- ;; anyway.
- (not (get symbol 'custom-autoloaded)))
- (insert "(custom-put-if-not '" (symbol-name symbol)
- " 'custom-version ")
- (prin1 version (current-buffer))
- (insert ")\n")
- (insert "(custom-put-if-not '" (symbol-name symbol))
- (if (get symbol 'standard-value)
- ;; This means it's a variable
- (progn
- (insert " 'standard-value t)\n")
- (if (assoc version version-alist)
- (unless
- (member where
- (cdr (assoc version version-alist)))
- (push where (cdr (assoc version version-alist))))
- (push (cons version (list where)) version-alist)))
- ;; This is a group
- (insert " 'group-documentation ")
- (prin1 (get symbol 'group-documentation) (current-buffer))
- (insert ")\n")))))))
-
- (insert "\n(defvar custom-versions-load-alist "
- (if version-alist "'" ""))
- (prin1 version-alist (current-buffer))
- (insert "\n \"For internal use by custom.\")\n"))
-
- (insert "\
-
-\(provide 'cus-load)
-
-;;; cus-load.el ends here\n")
- (let ((kept-new-versions 10000000))
- (save-buffer))
- (message "Generating cus-load.el...done")
- (kill-emacs))
-
-;;; cus-dep.el ends here
+++ /dev/null
-;;; gnus-idna.el --- Internationalized domain names support for Gnus.
-
-;; Copyright (C) 2003 Free Software Foundation, Inc.
-
-;; Author: Simon Josefsson
-;; Keywords: news, mail
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This package implement crude support for internationalized domain
-;; names in Gnus.
-
-;; Theory of Operation:
-
-;; RFC 2822 RHS's inside the From:, To:, and CC: headers are encoded
-;; using IDNA ToASCII() when you send mail using Message. The hook
-;; used is message-send-hook.
-;;
-;; For incoming articles, when QP in headers are decoded (i.e., when
-;; gnus-article-decode-hook is invoked), it searches for "xn--"
-;; prefixes and decode them if they are found inside (heuristically
-;; determined) RHS in From:, To: and Cc:, using IDNA ToUnicode().
-
-;; Usage:
-
-;; You need to install GNU Libidn (0.1.11 or later) and make sure the
-;; idna.el installed by it is found by emacs.
-
-;; If you use an older Gnus, you may need to put the following in your
-;; init scripts too, but keep in mind that most older Gnuses either
-;; doesn't have these hooks or are buggy in other regards so it
-;; doesn't work anyway. (The window of Gnus versions that this works
-;; on is a few weeks during the Oort CVS in winter 2003.) Update to a
-;; recent Gnus instead, then you don't have to do anything.
-
-;; (add-hook 'message-send-hook 'message-idna-to-ascii-rhs)
-;; (add-hook 'gnus-article-decode-hook 'gnus-idna-to-unicode-rhs 'append)
-
-;; Revision history:
-
-;; 2003-02-26 Initial release
-;;
-;; 2003-03-19 Cleanup. Fixes a bug that may corrupt outgoing mail if
-;; it contains From:, To: or Cc: headers in the body.
-
-;;; Code:
-
-(require 'gnus)
-(require 'gnus-util)
-(require 'rfc822)
-(autoload 'idna-to-ascii "idna")
-(autoload 'idna-to-unicode "idna")
-
-(defcustom message-use-idna 'ask
- "Whether to encode non-ASCII in domain names into ASCII according to IDNA."
- :type '(choice (const :tag "Ask" ask)
- (const :tag "Never" nil)
- (const :tag "Always" t)))
-
-(defun message-idna-inside-rhs-p ()
- "Return t iff point is inside a RHS (heuristically).
-Only works properly if header contains mailbox-list or address-list.
-I.e., calling it on a Subject: header is useless."
- (if (re-search-backward
- "[\\\n\r\t ]" (save-excursion (search-backward "@" nil t)) t)
- ;; whitespace between @ and point
- nil
- (let ((dquote 1) (paren 1))
- (while (save-excursion (re-search-backward "[^\\]\"" nil t dquote))
- (incf dquote))
- (while (save-excursion (re-search-backward "[^\\]\(" nil t paren))
- (incf paren))
- (and (= (% dquote 2) 1) (= (% paren 2) 1)))))
-
-(defun message-idna-to-ascii-rhs-1 (header)
- "Interactively potentially IDNA encode domain names in HEADER."
- (let (rhs ace start end startpos endpos)
- (goto-char (point-min))
- (setq start (re-search-forward (concat "^" header) nil t)
- end (or (save-excursion (re-search-forward "^[ \t]" nil t))
- (point-max)))
- (when (and start end)
- (while (re-search-forward "@\\([^ \t\r\n>]+\\)" end t)
- (setq rhs (match-string-no-properties 1)
- startpos (match-beginning 1)
- endpos (match-end 1))
- (when (save-match-data
- (and (message-idna-inside-rhs-p)
- (setq ace (idna-to-ascii rhs))
- (not (string= rhs ace))
- (if (eq message-use-idna 'ask)
- (unwind-protect
- (progn
- (replace-highlight startpos endpos)
- (y-or-n-p
- (format "Replace with `%s'? " ace)))
- (message "")
- (replace-dehighlight))
- message-use-idna)))
- (replace-match (concat "@" ace)))))))
-
-;;;###autoload
-(defun message-idna-to-ascii-rhs ()
- "Possibly IDNA encode non-ASCII domain names in From:, To: and Cc: headers.
-See `message-idna-encode'."
- (interactive)
- (when (condition-case nil (require 'idna) (file-error))
- (save-excursion
- (save-restriction
- (message-narrow-to-head)
- (message-idna-to-ascii-rhs-1 "From")
- (message-idna-to-ascii-rhs-1 "To")
- (message-idna-to-ascii-rhs-1 "Cc")))))
-
-;;;###autoload
-(defun gnus-idna-to-unicode-rhs ()
- "Decode IDNA strings in RHS in From:, To: and Cc: headers in current buffer."
- (when (condition-case nil (require 'idna) (file-error))
- (let ((inhibit-point-motion-hooks t)
- buffer-read-only)
- (article-narrow-to-head)
- (goto-char (point-min))
- (while (re-search-forward "\\(xn--.*\\)[ \t\n\r,>]" nil t)
- (let (ace unicode)
- (when (save-match-data
- (and (setq ace (match-string 1))
- (save-excursion (and (re-search-backward "^[^ \t]" nil t)
- (looking-at "From\\|To\\|Cc")))
- (save-excursion (backward-char)
- (message-idna-inside-rhs-p))
- (setq unicode (idna-to-unicode ace))))
- (unless (string= ace unicode)
- (replace-match unicode nil nil nil 1))))))))
-
-(provide 'gnus-idna)
-
-;; gnus-idna.el ends here
+++ /dev/null
-;;; passwd.el --- Prompting for passwords semi-securely
-
-;; Copyright (C) 1994 Free Software Foundation, Inc.
-;; Keywords: comm, extensions
-
-;; Author: Jamie Zawinski <jwz@netscape.com>
-
-;; This file is part of XEmacs.
-
-;; XEmacs 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.
-
-;; XEmacs 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.
-
-;;; Synched up with: Not in FSF.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING. If not, write to the Free
-;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-;;; Change Log:
-;;
-;; Sun Jun 12 04:19:30 1994 by sandy on ibm550.sissa.it
-;; Added support for password histories and (provide 'passwd)
-;; (jwz says: this "history" thing is completely undocumented, you loser!)
-;; 2-Jan-95 (mon); 4:13 AM by jwz@netscape.com
-;; Fixed Sandy's extreme keymap bogosity. Made it invert the screen when
-;; reading securely (this could be better; maybe use red text or something
-;; instead...)
-;; 9-Jul-95 (fri); 4:55 AM by jwz@netscape.com
-;; Made it work with XEmacs 19.12.
-;; 7-Jul-95 by cthomp@cs.uiuc.edu
-;; Added variable to control inverting frame when keyboard grabbed
-
-;;; Code:
-
-(defvar passwd-invert-frame-when-keyboard-grabbed t
- "*If non-nil swap the foreground and background colors of all faces.
-This is done while the keyboard is grabbed in order to give a visual
-clue that a grab is in effect.")
-
-(defvar passwd-echo ?.
- "*The character which should be echoed when typing a password,
-or nil, meaning echo nothing.")
-
-(defvar read-passwd-map
- (let ((i 0)
- (s (make-string 1 0))
- map)
- (cond ((fboundp 'set-keymap-parent)
- (setq map (make-keymap))
- (set-keymap-parent map minibuffer-local-map))
- (t ; v18/FSFmacs compatibility
- (setq map (copy-keymap minibuffer-local-map))))
- (if (fboundp 'set-keymap-name)
- (set-keymap-name map 'read-passwd-map))
-
- (while (< i 127)
- (aset s 0 i)
- (or (and (boundp 'meta-prefix-char) (eq i meta-prefix-char))
- (define-key map s 'self-insert-command))
- (setq i (1+ i)))
-
- (define-key map "\C-g" 'keyboard-quit)
- (define-key map "\C-h" 'delete-backward-char)
- (define-key map "\r" 'exit-minibuffer)
- (define-key map "\n" 'exit-minibuffer)
- (define-key map "\C-u" 'passwd-erase-buffer)
- (define-key map "\C-q" 'quoted-insert)
- (define-key map "\177" 'delete-backward-char)
- (define-key map "\M-n" 'passwd-next-history-element)
- (define-key map "\M-p" 'passwd-previous-history-element)
- map)
- "Keymap used for reading passwords in the minibuffer.
-The \"bindings\" in this map are not real commands; only a limited
-number of commands are understood. The important bindings are:
-\\<read-passwd-map>
- \\[passwd-erase-buffer] Erase all input.
- \\[quoted-insert] Insert the next character literally.
- \\[delete-backward-char] Delete the previous character.
- \\[exit-minibuffer] Accept what you have typed.
- \\[keyboard-quit] Abort the command.
-
-All other characters insert themselves (but do not echo.)")
-
-;;; internal variables
-
-(defvar passwd-history nil)
-(defvar passwd-history-posn 0)
-
-;;;###autoload
-(defun read-passwd (prompt &optional confirm default)
- "Prompts for a password in the minibuffer, and returns it as a string.
-If PROMPT may be a prompt string or an alist of elements
-'\(prompt . default\).
-If optional arg CONFIRM is true, then ask the user to type the password
-again to confirm that they typed it correctly.
-If optional arg DEFAULT is provided, then it is a string to insert as
-the default choice (it is not, of course, displayed.)
-
-If running under X, the keyboard will be grabbed (with XGrabKeyboard())
-to reduce the possibility that evesdropping is occuring.
-
-When reading a password, all keys self-insert, except for:
-\\<read-passwd-map>
- \\[read-passwd-erase-line] Erase the entire line.
- \\[quoted-insert] Insert the next character literally.
- \\[delete-backward-char] Delete the previous character.
- \\[exit-minibuffer] Accept what you have typed.
- \\[keyboard-quit] Abort the command.
-
-The returned value is always a newly-created string. No additional copies
-of the password remain after this function has returned.
-
-NOTE: unless great care is taken, the typed password will exist in plaintext
-form in the running image for an arbitrarily long time. Priveleged users may
-be able to extract it from memory. If emacs crashes, it may appear in the
-resultant core file.
-
-Some steps you can take to prevent the password from being copied around:
-
- - as soon as you are done with the returned string, destroy it with
- (fillarray string 0). The same goes for any default passwords
- or password histories.
-
- - do not copy the string, as with concat or substring - if you do, be
- sure to keep track of and destroy all copies.
-
- - do not insert the password into a buffer - if you do, be sure to
- overwrite the buffer text before killing it, as with the functions
- `passwd-erase-buffer' or `passwd-kill-buffer'. Note that deleting
- the text from the buffer does NOT necessarily remove the text from
- memory.
-
- - be careful of the undo history - if you insert the password into a
- buffer which has undo recording turned on, the password will be
- copied onto the undo list, and thus recoverable.
-
- - do not pass it as an argument to a shell command - anyone will be
- able to see it if they run `ps' at the right time.
-
-Note that the password will be temporarily recoverable with the `view-lossage'
-command. This data will not be overwritten until another hundred or so
-characters are typed. There's not currently a way around this."
-
- (save-excursion
- (let ((input (get-buffer-create " *password*"))
- (passwd-history-posn 0)
- passwd-history)
- (if (listp prompt)
- (setq passwd-history prompt
- default (cdr (car passwd-history))))
- (set-buffer input)
- (buffer-disable-undo input)
- (use-local-map read-passwd-map)
- (unwind-protect
- (progn
- (if (passwd-grab-keyboard)
- (passwd-secure-display))
- (read-passwd-1 input prompt nil default)
- (set-buffer input)
-
- (if (not confirm)
- (buffer-string)
- (let ((ok nil)
- passwd)
- (while (not ok)
- (set-buffer input)
- (setq passwd (buffer-string))
- (read-passwd-1 input prompt "[Retype to confirm]")
- (if (passwd-compare-string-to-buffer passwd input)
- (setq ok t)
- (fillarray passwd 0)
- (setq passwd nil)
- (beep)
- (read-passwd-1 input prompt "[Mismatch. Start over]")
- ))
- passwd)))
- ;; protected
- (passwd-ungrab-keyboard)
- (passwd-insecure-display)
- (passwd-kill-buffer input)
- (if (fboundp 'clear-message) ;XEmacs
- (clear-message)
- (message ""))
- ))))
-
-
-(defun read-passwd-1 (buffer prompt &optional prompt2 default)
- (set-buffer buffer)
- (passwd-erase-buffer)
- (if default (insert default))
- (catch 'exit ; exit-minibuffer throws here
- (while t
- (set-buffer buffer)
- (let* ((minibuffer-completion-table nil)
- (cursor-in-echo-area t)
- (echo-keystrokes 0)
- (key (passwd-read-key-sequence
- (concat (if (listp prompt)
- (car (nth passwd-history-posn passwd-history))
- prompt)
- prompt2
- (if passwd-echo
- (make-string (buffer-size) passwd-echo)))))
- (binding (key-binding key)))
- (setq prompt2 nil)
- (set-buffer buffer) ; just in case...
- (if (fboundp 'event-to-character) ;; lemacs
- (setq last-command-event (aref key (1- (length key)))
- last-command-char (event-to-character last-command-event))
- ;; v18/FSFmacs compatibility
- (setq last-command-char (aref key (1- (length key)))))
- (setq this-command binding)
- (condition-case c
- (command-execute binding)
- (error
- (beep)
- (if (fboundp 'display-error)
- (display-error c t)
- ;; v18/FSFmacs compatibility
- (message (concat (or (get (car-safe c) 'error-message) "???")
- (if (cdr-safe c) ": ")
- (mapconcat
- (function (lambda (x) (format "%s" x)))
- (cdr-safe c) ", "))))
- (sit-for 2)))
- ))))
-
-(defun passwd-previous-history-element (n)
- (interactive "p")
- (or passwd-history
- (error "Password history is empty."))
- (let ((l (length passwd-history)))
- (setq passwd-history-posn
- (% (+ n passwd-history-posn) l))
- (if (< passwd-history-posn 0)
- (setq passwd-history-posn (+ passwd-history-posn l))))
- (let ((obuff (current-buffer))) ; want to move point in passwd buffer
- (unwind-protect
- (progn
- (set-buffer " *password*")
- (passwd-erase-buffer)
- (insert (cdr (nth passwd-history-posn passwd-history))))
- (set-buffer obuff))))
-
-(defun passwd-next-history-element (n)
- (interactive "p")
- (passwd-previous-history-element (- n)))
-
-(defun passwd-erase-buffer ()
- ;; First erase the buffer, which will simply enlarge the gap.
- ;; Then insert null characters until the gap is filled with them
- ;; to prevent the old text from being visible in core files or kmem.
- ;; (Actually use 3x the size of the buffer just to be safe - a longer
- ;; passwd might have been typed and backspaced over.)
- (interactive)
- (widen)
- (let ((s (* (buffer-size) 3)))
- (erase-buffer)
- (while (> s 0)
- (insert ?\000)
- (setq s (1- s)))
- (erase-buffer)))
-
-(defun passwd-kill-buffer (buffer)
- (save-excursion
- (set-buffer buffer)
- (buffer-disable-undo buffer)
- (passwd-erase-buffer)
- (set-buffer-modified-p nil))
- (kill-buffer buffer))
-
-
-(defun passwd-compare-string-to-buffer (string buffer)
- ;; same as (equal string (buffer-string)) but with no dangerous consing.
- (save-excursion
- (set-buffer buffer)
- (goto-char (point-min))
- (let ((L (length string))
- (i 0))
- (if (/= L (- (point-max) (point-min)))
- nil
- (while (not (eobp))
- (if (/= (following-char) (aref string i))
- (goto-char (point-max))
- (setq i (1+ i))
- (forward-char)))
- (= (point) (+ i (point-min)))))))
-
-
-(defvar passwd-face-data nil)
-(defun passwd-secure-display ()
- ;; Inverts the screen - used to indicate secure input, like xterm.
- (cond
- ((and passwd-invert-frame-when-keyboard-grabbed
- (fboundp 'set-face-foreground))
- (setq passwd-face-data
- (delq nil (mapcar (function
- (lambda (face)
- (let ((fg (face-foreground face))
- (bg (face-background face)))
- (if (or fg bg)
- (if (fboundp 'color-name)
- (list face
- (color-name fg)
- (color-name bg))
- (list face fg bg))
- nil))))
- (if (fboundp 'list-faces)
- (list-faces) ; lemacs
- (face-list) ; FSFmacs
- ))))
- (let ((rest passwd-face-data))
- (while rest
- (set-face-foreground (nth 0 (car rest)) (nth 2 (car rest)))
- (set-face-background (nth 0 (car rest)) (nth 1 (car rest)))
- (setq rest (cdr rest))))))
- nil)
-
-(defun passwd-insecure-display ()
- ;; Undoes the effect of `passwd-secure-display'.
- (cond
- (passwd-invert-frame-when-keyboard-grabbed
- (while passwd-face-data
- (set-face-foreground (nth 0 (car passwd-face-data))
- (nth 1 (car passwd-face-data)))
- (set-face-background (nth 0 (car passwd-face-data))
- (nth 2 (car passwd-face-data)))
- (setq passwd-face-data (cdr passwd-face-data)))
- nil)))
-
-(defun passwd-grab-keyboard ()
- (cond ((not (and (fboundp 'x-grab-keyboard) ; lemacs 19.10+
- (eq 'x (if (fboundp 'frame-type)
- (frame-type (selected-frame))
- (live-screen-p (selected-screen))))))
- nil)
- ((x-grab-keyboard)
- t)
- (t
- (message "Unable to grab keyboard - waiting a second...")
- (sleep-for 1)
- (cond ((x-grab-keyboard)
- (message "Keyboard grabbed on second try.")
- t)
- (t
- (beep)
- (message "WARNING: keyboard is insecure (unable to grab!)")
- (sleep-for 3)
- nil)))))
-
-(defun passwd-ungrab-keyboard ()
- (if (and (fboundp 'x-ungrab-keyboard) ; lemacs 19.10+
- (eq 'x (if (fboundp 'frame-type)
- (frame-type (selected-frame))
- (live-screen-p (selected-screen)))))
- (x-ungrab-keyboard)))
-
-;; v18 compatibility
-(or (fboundp 'buffer-disable-undo)
- (fset 'buffer-disable-undo 'buffer-flush-undo))
-
-;; read-key-sequence echoes the key sequence in Emacs 18.
-(defun passwd-read-key-sequence (prompt)
- (let ((inhibit-quit t)
- str)
- (while (or (null str) (keymapp (key-binding str)))
- (if (fboundp 'display-message)
- (display-message 'prompt prompt)
- (message prompt))
- (setq str (concat str (char-to-string (read-char)))))
- (setq quit-flag nil)
- str))
-
-(or (string-match "^18" emacs-version)
- (fset 'passwd-read-key-sequence 'read-key-sequence))
-
-(provide 'passwd)
-
-;;; passwd.el ends here
+++ /dev/null
-;;; regexp-opt.el --- generate efficient regexps to match strings.
-
-;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-;; Author: Simon Marshall <simon@gnu.ai.mit.edu>
-;; Keywords: strings, regexps
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; The "opt" in "regexp-opt" stands for "optim\\(al\\|i\\(se\\|ze\\)\\)".
-;;
-;; This package generates a regexp from a given list of strings (which matches
-;; one of those strings) so that the regexp generated by:
-;;
-;; (regexp-opt strings)
-;;
-;; is equivalent to, but more efficient than, the regexp generated by:
-;;
-;; (mapconcat 'regexp-quote strings "\\|")
-;;
-;; For example:
-;;
-;; (let ((strings '("cond" "if" "when" "unless" "while"
-;; "let" "let*" "progn" "prog1" "prog2"
-;; "save-restriction" "save-excursion" "save-window-excursion"
-;; "save-current-buffer" "save-match-data"
-;; "catch" "throw" "unwind-protect" "condition-case")))
-;; (concat "(" (regexp-opt strings t) "\\>"))
-;; => "(\\(c\\(atch\\|ond\\(ition-case\\)?\\)\\|if\\|let\\*?\\|prog[12n]\\|save-\\(current-buffer\\|excursion\\|match-data\\|restriction\\|window-excursion\\)\\|throw\\|un\\(less\\|wind-protect\\)\\|wh\\(en\\|ile\\)\\)\\>"
-;;
-;; Searching using the above example `regexp-opt' regexp takes approximately
-;; two-thirds of the time taken using the equivalent `mapconcat' regexp.
-
-;; Since this package was written to produce efficient regexps, not regexps
-;; efficiently, it is probably not a good idea to in-line too many calls in
-;; your code, unless you use the following trick with `eval-when-compile':
-;;
-;; (defvar definition-regexp
-;; (eval-when-compile
-;; (concat "^("
-;; (regexp-opt '("defun" "defsubst" "defmacro" "defalias"
-;; "defvar" "defconst") t)
-;; "\\>")))
-;;
-;; The `byte-compile' code will be as if you had defined the variable thus:
-;;
-;; (defvar definition-regexp
-;; "^(\\(def\\(alias\\|const\\|macro\\|subst\\|un\\|var\\)\\)\\>")
-;;
-;; Note that if you use this trick for all instances of `regexp-opt' and
-;; `regexp-opt-depth' in your code, regexp-opt.el would only have to be loaded
-;; at compile time. But note also that using this trick means that should
-;; regexp-opt.el be changed, perhaps to fix a bug or to add a feature to
-;; improve the efficiency of `regexp-opt' regexps, you would have to recompile
-;; your code for such changes to have effect in your code.
-
-;; Originally written for font-lock.el, from an idea from Stig's hl319.el, with
-;; thanks for ideas also to Michael Ernst, Bob Glickstein and Dan Nicolaescu.
-;; Please don't tell me that it doesn't produce optimal regexps; I know that
-;; already. For example, the above explanation for the meaning of "opt" would
-;; be more efficient as "optim\\(al\\|i[sz]e\\)", but this requires complex
-;; forward looking. But (ideas or) code to improve things (are) is welcome.
-\f
-;;; Code:
-
-;;;###autoload
-(defun regexp-opt (strings &optional paren)
- "Return a regexp to match a string in STRINGS.
-Each string should be unique in STRINGS and should not contain any regexps,
-quoted or not. If optional PAREN is non-nil, ensure that the returned regexp
-is enclosed by at least one regexp grouping construct.
-The returned regexp is typically more efficient than the equivalent regexp:
-
- (let ((open-paren (if PAREN \"\\\\(\" \"\")) (close-paren (if PAREN \"\\\\)\" \"\")))
- (concat open-paren (mapconcat 'regexp-quote STRINGS \"\\\\|\") close-paren))
-
-but typically contains more regexp grouping constructs.
-Use `regexp-opt-depth' to count them."
- (save-match-data
- ;; Recurse on the sorted list.
- (let ((max-lisp-eval-depth (* 1024 1024))
- (completion-ignore-case nil))
- (regexp-opt-group (sort (copy-sequence strings) 'string-lessp) paren))))
-
-;;;###autoload
-(defun regexp-opt-depth (regexp)
- "Return the depth of REGEXP.
-This means the number of regexp grouping constructs (parenthesised expressions)
-in REGEXP."
- (save-match-data
- ;; Hack to signal an error if REGEXP does not have balanced parentheses.
- (string-match regexp "")
- ;; Count the number of open parentheses in REGEXP.
- (let ((count 0) start)
- (while (string-match "\\\\(" regexp start)
- (setq count (1+ count) start (match-end 0)))
- count)))
-\f
-;;; Workhorse functions.
-
-(eval-when-compile
- (require 'cl))
-
-(unless (fboundp 'make-bool-vector)
- (defalias 'make-bool-vector 'make-vector))
-
-(defun regexp-opt-group (strings &optional paren lax)
- ;;
- ;; Return a regexp to match a string in STRINGS.
- ;; If PAREN non-nil, output regexp parentheses around returned regexp.
- ;; If LAX non-nil, don't output parentheses if it doesn't require them.
- ;; Merges keywords to avoid backtracking in Emacs' regexp matcher.
- ;;
- ;; The basic idea is to find the shortest common prefix, remove it and
- ;; recurse. If there is no prefix, we divide the list into two so that (at
- ;; least) one half will have at least a one-character common prefix.
- ;;
- ;; Also we delay the addition of grouping parenthesis as long as possible
- ;; until we're sure we need them, and try to remove one-character sequences
- ;; so we can use character sets rather than grouping parenthesis.
- ;;
- (let* ((open-group (if paren "\\(" ""))
- (close-group (if paren "\\)" ""))
- (open-charset (if lax "" open-group))
- (close-charset (if lax "" close-group)))
- (cond
- ;;
- ;; If there is only one string, just return it.
- ((= (length strings) 1)
- (if (= (length (car strings)) 1)
- (concat open-charset (regexp-quote (car strings)) close-charset)
- (concat open-group (regexp-quote (car strings)) close-group)))
- ;;
- ;; If there is an empty string, remove it and recurse on the rest.
- ((= (length (car strings)) 0)
- (concat open-charset
- (regexp-opt-group (cdr strings) t t) "?"
- close-charset))
- ;;
- ;; If all are one-character strings, just return a character set.
- ((= (length strings) (apply '+ (mapcar 'length strings)))
- (concat open-charset
- (regexp-opt-charset strings)
- close-charset))
- ;;
- ;; We have a list of different length strings.
- (t
- (let ((prefix (try-completion "" (mapcar 'list strings)))
- (letters (let ((completion-regexp-list '("^.$")))
- (all-completions "" (mapcar 'list strings)))))
- (cond
- ;;
- ;; If there is a common prefix, remove it and recurse on the suffixes.
- ((> (length prefix) 0)
- (let* ((length (length prefix))
- (suffixes (mapcar (lambda (s) (substring s length)) strings)))
- (concat open-group
- (regexp-quote prefix) (regexp-opt-group suffixes t t)
- close-group)))
- ;;
- ;; If there are several one-character strings, remove them and recurse
- ;; on the rest (first so the final regexp finds the longest match).
- ((> (length letters) 1)
- (let ((rest (let ((completion-regexp-list '("^..+$")))
- (all-completions "" (mapcar 'list strings)))))
- (concat open-group
- (regexp-opt-group rest) "\\|" (regexp-opt-charset letters)
- close-group)))
- ;;
- ;; Otherwise, divide the list into those that start with a particular
- ;; letter and those that do not, and recurse on them.
- (t
- (let* ((char (substring (car strings) 0 1))
- (half1 (all-completions char (mapcar 'list strings)))
- (half2 (nthcdr (length half1) strings)))
- (concat open-group
- (regexp-opt-group half1) "\\|" (regexp-opt-group half2)
- close-group)))))))))
-
-(defun regexp-opt-charset (chars)
- ;;
- ;; Return a regexp to match a character in CHARS.
- ;;
- ;; The basic idea is to find character ranges. Also we take care in the
- ;; position of character set meta characters in the character set regexp.
- ;;
- (let* ((charwidth 256) ; Yeah, right.
- (charmap (make-bool-vector charwidth nil))
- (charset "")
- (bracket "") (dash "") (caret ""))
- ;;
- ;; Make a character map but extract character set meta characters.
- (dolist (char (mapcar 'string-to-char chars))
- (case char
- (?\]
- (setq bracket "]"))
- (?^
- (setq caret "^"))
- (?-
- (setq dash "-"))
- (otherwise
- (aset charmap char t))))
- ;;
- ;; Make a character set from the map using ranges where applicable.
- (dotimes (char charwidth)
- (let ((start char))
- (while (and (< char charwidth) (aref charmap char))
- (incf char))
- (cond ((> char (+ start 3))
- (setq charset (format "%s%c-%c" charset start (1- char))))
- ((> char start)
- (setq charset (format "%s%c" charset (setq char start)))))))
- ;;
- ;; Make sure a caret is not first and a dash is first or last.
- (if (and (string-equal charset "") (string-equal bracket ""))
- (concat "[" dash caret "]")
- (concat "[" bracket charset caret dash "]"))))
-
-(provide 'regexp-opt)
-
-;;; regexp-opt.el ends here
+++ /dev/null
-;;; timer.el --- run a function with args at some time in future.
-
-;; Copyright (C) 1996 Free Software Foundation, Inc.
-
-;; Maintainer: FSF
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This package gives you the capability to run Emacs Lisp commands at
-;; specified times in the future, either as one-shots or periodically.
-
-;;; Code:
-
-(require 'itimer)
-
-(fset 'timer-create 'make-itimer)
-
-(fset 'timerp 'itimerp)
-
-;(defvar timer-idle-list nil
-; "List of active idle-time timers in order of increasing time")
-(defvaralias 'timer-idle-list 'itimer-list)
-(defvaralias 'timer-list 'itimer-list)
-
-
-(defun timer-set-time (timer time &optional delta)
- "Set the trigger time of TIMER to TIME.
-TIME must be in the internal format returned by, e.g., `current-time'.
-If optional third argument DELTA is a non-zero integer, make the timer
-fire repeatedly that many seconds apart."
- (set-itimer-value timer (itimer-time-difference time (current-time)))
- (and delta (check-nonnegative-number delta))
- (and delta (set-itimer-restart timer delta))
- timer)
-
-(defun timer-set-idle-time (timer secs &optional repeat)
- "Set the trigger idle time of TIMER to SECS.
-If optional third argument REPEAT is non-nil, make the timer
-fire each time Emacs is idle for that many seconds."
- (set-itimer-is-idle timer t)
- (set-itimer-value timer secs)
- (when repeat
- (set-itimer-restart timer secs))
- timer)
-
-(defun timer-relative-time (time secs &optional usecs)
- "Advance TIME by SECS seconds and optionally USECS microseconds.
-SECS may be a fraction."
- (let ((high (car time))
- (low (if (consp (cdr time)) (nth 1 time) (cdr time)))
- (micro (if (numberp (car-safe (cdr-safe (cdr time))))
- (nth 2 time)
- 0)))
- ;; Add
- (if usecs (setq micro (+ micro usecs)))
- (if (floatp secs)
- (setq micro (+ micro (floor (* 1000000 (- secs (floor secs)))))))
- (setq low (+ low (floor secs)))
-
- ;; Normalize
- (setq low (+ low (/ micro 1000000)))
- (setq micro (mod micro 1000000))
- (setq high (+ high (/ low 65536)))
- (setq low (logand low 65535))
-
- (list high low (and (/= micro 0) micro))))
-
-(defun timer-inc-time (timer secs &optional usecs)
- "Increment the time set in TIMER by SECS seconds and USECS microseconds.
-SECS may be a fraction."
- (let ((time (itimer-value timer)))
- (setq time (+ time secs (if (and usecs (fboundp 'lisp-float-type))
- (/ usecs (float 1000000))
- 0)))
- (set-itimer-value timer time)))
-
-(defun timer-set-time-with-usecs (timer time usecs &optional delta)
- "Set the trigger time of TIMER to TIME.
-TIME must be in the internal format returned by, e.g., `current-time'.
-If optional third argument DELTA is a non-zero integer, make the timer
-fire repeatedly that many seconds apart."
- (let ((list (list nil nil nil)))
- (setcar list (car time))
- (setcar (nthcdr 1 list) (if (consp (cdr time))
- (car (cdr time))
- (cdr time)))
- (setcar (nthcdr 2 list) usecs)
- (set-itimer-value timer (itimer-time-difference list (current-time)))
- (set-itimer-restart timer delta)
- timer))
-
-(defun timer-set-function (timer function &optional args)
- "Make TIMER call FUNCTION with optional ARGS when triggering."
- (set-itimer-function timer function)
- (set-itimer-function-arguments timer args)
- (set-itimer-uses-arguments timer t)
- timer)
-\f
-(defun timer-activate (timer)
- "Put TIMER on the list of active timers."
- (activate-itimer timer))
-
-(defun timer-activate-when-idle (timer)
- "Arrange to activate TIMER whenever Emacs is next idle."
- (set-itimer-is-idle timer t)
- ;(set-itimer-uses-arguments timer nil)
- ;(unless (memq timer timer-idle-list)
- ;(setq timer-idle-list (cons timer timer-idle-list)))
- (activate-itimer timer))
-
-;; can't do this, different kind of timer
-;;(defalias 'disable-timeout 'cancel-timer)
-
-(defun cancel-timer (timer)
- "Remove TIMER from the list of active timers."
- ;(setq timer-idle-list (delq timer timer-idle-list))
- (delete-itimer timer))
-
-(defun cancel-function-timers (function)
- "Cancel all timers scheduled by `run-at-time' which would run FUNCTION."
- (interactive "aCancel timers of function: ")
- (let ((p itimer-list))
- (while p
- (if (eq function (itimer-function p))
- (progn
- (setq p (cdr p))
- (delete-itimer (car p)))
- (setq p (cdr p))))))
-\f
-;;;###autoload
-(defun run-at-time (time repeat function &rest args)
- "Perform an action after a delay of SECS seconds.
-Repeat the action every REPEAT seconds, if REPEAT is non-nil.
-TIME should be a string like \"11:23pm\", nil meaning now, a number of seconds
-from now, or a value from `encode-time'.
-REPEAT may be an integer or floating point number.
-The action is to call FUNCTION with arguments ARGS.
-
-This function returns a timer object which you can use in `cancel-timer'."
- (interactive "sRun at time: \nNRepeat interval: \naFunction: ")
-
- ;; Special case: nil means "now" and is useful when repeating.
- (if (null time)
- (setq time (current-time)))
-
- ;; Handle numbers as relative times in seconds.
- (if (numberp time)
- (setq time (timer-relative-time (current-time) time)))
-
- ;; Handle relative times like "2 hours and 35 minutes"
- (if (stringp time)
- (let ((secs (timer-duration time)))
- (if secs
- (setq time (timer-relative-time (current-time) secs)))))
-
- ;; Handle "11:23pm" and the like. Interpret it as meaning today
- ;; which admittedly is rather stupid if we have passed that time
- ;; already. (Though only Emacs hackers hack Emacs at that time.)
- (if (stringp time)
- (progn
- (require 'diary-lib)
- (let ((hhmm (diary-entry-time time))
- (now (decode-time)))
- (if (>= hhmm 0)
- (setq time
- (encode-time 0 (% hhmm 100) (/ hhmm 100) (nth 3 now)
- (nth 4 now) (nth 5 now) (nth 8 now)))))))
-
- (or (consp time)
- (error "Invalid time format"))
-
- (or (null repeat)
- (numberp repeat)
- (error "Invalid repetition interval"))
-
- (let ((timer (timer-create)))
- (timer-set-time timer time repeat)
- (timer-set-function timer function args)
- (timer-activate timer)
- timer))
-
-;;;###autoload
-(defun run-with-timer (secs repeat function &rest args)
- "Perform an action after a delay of SECS seconds.
-Repeat the action every REPEAT seconds, if REPEAT is non-nil.
-SECS and REPEAT may be integers or floating point numbers.
-The action is to call FUNCTION with arguments ARGS.
-
-This function returns a timer object which you can use in `cancel-timer'."
- (interactive "sRun after delay (seconds): \nNRepeat interval: \naFunction: ")
- (apply 'run-at-time secs repeat function args))
-
-;;;###autoload
-(defun run-with-idle-timer (secs repeat function &rest args)
- "Perform an action the next time Emacs is idle for SECS seconds.
-If REPEAT is non-nil, do this each time Emacs is idle for SECS seconds.
-SECS may be an integer or a floating point number.
-The action is to call FUNCTION with arguments ARGS.
-
-This function returns a timer object which you can use in `cancel-timer'."
- (interactive
- (list (read-from-minibuffer "Run after idle (seconds): " nil nil t)
- (y-or-n-p "Repeat each time Emacs is idle? ")
- (intern (completing-read "Function: " obarray 'fboundp t))))
- (let ((timer (timer-create)))
- (timer-set-function timer function args)
- (timer-set-idle-time timer secs repeat)
- (timer-activate-when-idle timer)
- timer))
-\f
-(defun with-timeout-handler (tag)
- (throw tag 'timeout))
-
-;;;###autoload (put 'with-timeout 'lisp-indent-function 1)
-
-;;;###autoload
-(defmacro with-timeout (list &rest body)
- "Run BODY, but if it doesn't finish in SECONDS seconds, give up.
-If we give up, we run the TIMEOUT-FORMS and return the value of the last one.
-The call should look like:
- (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...)
-The timeout is checked whenever Emacs waits for some kind of external
-event \(such as keyboard input, input from subprocesses, or a certain time);
-if the program loops without waiting in any way, the timeout will not
-be detected."
- (let ((seconds (car list))
- (timeout-forms (cdr list)))
- `(let ((with-timeout-tag (cons nil nil))
- with-timeout-value with-timeout-timer)
- (if (catch with-timeout-tag
- (progn
- (setq with-timeout-timer
- (run-with-timer ,seconds nil
- 'with-timeout-handler
- with-timeout-tag))
- (setq with-timeout-value (progn . ,body))
- nil))
- (progn . ,timeout-forms)
- (cancel-timer with-timeout-timer)
- with-timeout-value))))
-
-(defun y-or-n-p-with-timeout (prompt seconds default-value)
- "Like (y-or-n-p PROMPT), with a timeout.
-If the user does not answer after SECONDS seconds, return DEFAULT-VALUE."
- (with-timeout (seconds default-value)
- (y-or-n-p prompt)))
-\f
-(defvar timer-duration-words
- (list (cons "microsec" 0.000001)
- (cons "microsecond" 0.000001)
- (cons "millisec" 0.001)
- (cons "millisecond" 0.001)
- (cons "sec" 1)
- (cons "second" 1)
- (cons "min" 60)
- (cons "minute" 60)
- (cons "hour" (* 60 60))
- (cons "day" (* 24 60 60))
- (cons "week" (* 7 24 60 60))
- (cons "fortnight" (* 14 24 60 60))
- (cons "month" (* 30 24 60 60)) ; Approximation
- (cons "year" (* 365.25 24 60 60)) ; Approximation
- )
- "Alist mapping temporal words to durations in seconds")
-
-(defun timer-duration (string)
- "Return number of seconds specified by STRING, or nil if parsing fails."
- (let ((secs 0)
- (start 0)
- (case-fold-search t))
- (while (string-match
- "[ \t]*\\([0-9.]+\\)?[ \t]*\\([a-z]+[a-rt-z]\\)s?[ \t]*"
- string start)
- (let ((count (if (match-beginning 1)
- (string-to-number (match-string 1 string))
- 1))
- (itemsize (cdr (assoc (match-string 2 string)
- timer-duration-words))))
- (if itemsize
- (setq start (match-end 0)
- secs (+ secs (* count itemsize)))
- (setq secs nil
- start (length string)))))
- (if (= start (length string))
- secs
- (if (string-match "\\`[0-9.]+\\'" string)
- (string-to-number string)))))
-\f
-(provide 'timer)
-
-;;; timer.el ends here
+++ /dev/null
-;;; canlock-om.el --- Mule 2 specific functions for canlock
-;; Copyright (C) 2001 Katsumi Yamaoka
-
-;; Author: Katsumi Yamaoka <yamaoka@jpl.org>
-;; Keywords: mule, cancel-lock
-
-;; 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., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This program is used to make canlock.el work with Mule 2.3 based on
-;; Emacs 19.34. See README.ja in the canlock distribution for details.
-
-;;; Code:
-
-(eval-and-compile
- (cond ((and (boundp 'emacs-major-version)
- (> emacs-major-version 19))
- (error "\
-Error: You should never use canlock-om.el(c) for this environment"))
- ((and (boundp 'MULE)
- (boundp 'emacs-major-version)
- (= emacs-major-version 19)
- (>= emacs-minor-version 29)))
- (t
- (error "Error: Canlock does not support this version of Emacs"))))
-
-(eval-when-compile
- (require 'cl))
-
-(require 'custom)
-(eval-and-compile
- (unless (fboundp 'custom-declare-variable)
- (error "Error: Canlock requires new custom")))
-
-(eval-when-compile
- (unless (fboundp 'byte-compile-file-form-custom-declare-variable)
- (defun byte-compile-file-form-custom-declare-variable (form)
- ;; Bind defcustom'ed variables.
- (if (memq 'free-vars byte-compile-warnings)
- (setq byte-compile-bound-variables
- (cons (nth 1 (nth 1 form)) byte-compile-bound-variables)))
- (if (memq ':version (nthcdr 4 form))
- ;; Make the variable uncustomizable.
- `(defvar ,(nth 1 (nth 1 form)) ,(nth 1 (nth 2 form))
- ,(substring (nth 3 form)
- (if (string-match "^[\t *]+" (nth 3 form))
- (match-end 0)
- 0)))
- ;; Ignore unsupported keyword(s).
- (if (memq ':set-after (nthcdr 4 form))
- (let ((newform (list (car form) (nth 1 form)
- (nth 2 form) (nth 3 form)))
- (args (nthcdr 4 form)))
- (while args
- (or (eq (car args) ':set-after)
- (setq newform (nconc newform (list (car args)
- (car (cdr args))))))
- (setq args (cdr (cdr args))))
- newform)
- form)))
- (put 'custom-declare-variable 'byte-hunk-handler
- 'byte-compile-file-form-custom-declare-variable))
-
- (define-compiler-macro with-temp-buffer (&whole form &rest forms)
- (let ((def (if (fboundp 'with-temp-buffer)
- (symbol-function 'with-temp-buffer))))
- (if (and def
- (consp def)
- (or (eq (car def) 'macro)
- (and (eq (car def) 'autoload)
- (memq (nth 4 def) '(macro t)))))
- form
- ;; The function definition is imported from APEL.
- `(let ((obuffer (current-buffer))
- (buffer (generate-new-buffer " *temp*")))
- (unwind-protect
- (progn
- (set-buffer buffer)
- ,@forms)
- (if (buffer-name buffer)
- (kill-buffer buffer))
- (if (buffer-live-p obuffer)
- (set-buffer obuffer))))))))
-
-(autoload 'base64-encode "base64")
-
-(defcustom canlock-base64-encode-function 'base64-encode-string
- "Function to call to base64 encode a string."
- :type '(radio (function-item base64-encode-string)
- (function-item base64-encode)
- (function-item canlock-base64-encode-string-with-mmencode)
- (function :tag "Other"))
- :group 'canlock)
-
-(defcustom canlock-mmencode-program "mmencode"
- "Name of mmencode program."
- :type 'string
- :group 'canlock)
-
-(defcustom canlock-mmencode-args-for-encoding nil
- "Arguments passed to mmencode program for encoding."
- :type 'sexp
- :group 'canlock)
-
-(defun canlock-base64-encode-string-with-mmencode (string)
- "Base64 encode a string using mmencode."
- (with-temp-buffer
- (setq mc-flag nil)
- (insert string)
- (let ((default-process-coding-system (cons *iso-2022-jp*dos *noconv*))
- program-coding-system-alist selective-display)
- (apply 'call-process-region (point-min) (point-max)
- canlock-mmencode-program t t nil
- canlock-mmencode-args-for-encoding))
- (goto-char (point-max))
- (skip-chars-backward "\n")
- (buffer-substring (point-min) (point))))
-
-;; The following macros will only be used to byte-compile canlock.el.
-(eval-when-compile
- (define-compiler-macro base64-encode-string
- (&whole form string &optional no-line-break)
- (if (and (string-equal (buffer-name) " *Compiler Input*")
- (string-equal ";;; canlock.el"
- (buffer-substring (point-min)
- (min (+ (point-min) 14)
- (point-max)))))
- (if no-line-break
- `(let ((string ,string))
- (if ,no-line-break
- (with-temp-buffer
- (insert (funcall canlock-base64-encode-function string))
- (goto-char (point-min))
- (while (search-forward "\n" nil t)
- (delete-char -1))
- (buffer-string))
- (funcall canlock-base64-encode-function string)))
- `(funcall canlock-base64-encode-function ,string))
- form))
-
- (define-compiler-macro split-string (&whole form string &optional pattern)
- (if (and (string-equal (buffer-name) " *Compiler Input*")
- (string-equal ";;; canlock.el"
- (buffer-substring (point-min)
- (min (+ (point-min) 14)
- (point-max)))))
- ;; The function definition is imported from APEL.
- (if pattern
- `(let ((string ,string)
- (pattern ,pattern)
- (start 0)
- parts)
- (while (string-match pattern string start)
- (setq parts (cons (substring string
- start (match-beginning 0))
- parts)
- start (match-end 0)))
- (nreverse (cons (substring string start) parts)))
- `(let ((string ,string)
- (start 0)
- parts)
- (while (string-match "[ \f\t\n\r\v]+" string start)
- (setq parts (cons (substring string
- start (match-beginning 0))
- parts)
- start (match-end 0)))
- (nreverse (cons (substring string start) parts))))
- form)))
-
-;; The following variables might not be bound if the old version of
-;; canlock.el(c) exists.
-(eval-when-compile
- (defvar canlock-openssl-args)
- (defvar canlock-openssl-program))
-
-(defun canlock-om-sha1-with-openssl (message)
- "Make a SHA-1 digest of MESSAGE using OpenSSL."
- (with-temp-buffer
- (setq mc-flag nil)
- (insert message)
- (let ((default-process-coding-system (cons *iso-2022-jp*dos *noconv*))
- program-coding-system-alist selective-display)
- (apply 'call-process-region (point-min) (point-max)
- canlock-openssl-program t t nil canlock-openssl-args))
- (goto-char (point-min))
- (insert "\"")
- (while (re-search-forward "\\([0-9A-Fa-f][0-9A-Fa-f]\\)" nil t)
- (replace-match "\\\\x\\1"))
- (insert "\"")
- (goto-char (point-min))
- (read (current-buffer))))
-
-;; Override the original function.
-(eval-after-load "canlock"
- '(defalias 'canlock-sha1-with-openssl 'canlock-om-sha1-with-openssl))
-
-(provide 'canlock-om)
-
-(require 'canlock)
-
-;;; canlock-om.el ends here
(if (memq 'shift-jis (coding-priority-list))
(set-coding-priority-list
(append (delq 'shift-jis (coding-priority-list)) '(shift-jis)))))
- ((boundp 'MULE)
- (put '*coding-category-sjis* 'priority (length *predefined-category*)))
((featurep 'mule)
(if (memq 'coding-category-sjis coding-category-list)
(set-coding-priority
(put 'car 'side-effect-free tmp)))
ad-do-it))))
-(when (boundp 'MULE)
- (let (current-load-list)
- ;; Make the function to be silent at compile-time.
- (defun locate-library (library &optional nosuffix)
- "Show the full path name of Emacs library LIBRARY.
-This command searches the directories in `load-path' like `M-x load-library'
-to find the file that `M-x load-library RET LIBRARY RET' would load.
-Optional second arg NOSUFFIX non-nil means don't add suffixes `.elc' or `.el'
-to the specified name LIBRARY (a la calling `load' instead of `load-library')."
- (interactive "sLocate library: ")
- (catch 'answer
- (mapcar
- '(lambda (dir)
- (mapcar
- '(lambda (suf)
- (let ((try (expand-file-name (concat library suf) dir)))
- (and (file-readable-p try)
- (null (file-directory-p try))
- (progn
- (or noninteractive
- (message "Library is file %s" try))
- (throw 'answer try)))))
- (if nosuffix '("") '(".elc" ".el" ""))))
- load-path)
- (or noninteractive
- (message "No library %s in search path" library))
- nil))
- (byte-compile 'locate-library)))
-
(setq max-specpdl-size 3000)
(when (equal
'(char-before (point))
form))))
+;; Add `early-package-load-path' to `load-path' for XEmacs. Those paths
+;; won't appear in `load-path' when XEmacs starts with the `-no-autoloads'
+;; option because of a bug. :<
+(when (and (featurep 'xemacs)
+ (string-match "--package-path=\\([^ ]+\\)"
+ system-configuration-options))
+ (let ((paths
+ (apply 'nconc
+ (mapcar
+ (lambda (path)
+ (when (file-directory-p
+ (setq path (expand-file-name "lisp" path)))
+ (directory-files path t)))
+ (split-string (match-string 1 system-configuration-options)
+ "::"))))
+ path adds)
+ (while paths
+ (setq path (car paths)
+ paths (cdr paths))
+ (when (and path
+ (not (or (string-match "/\\.\\.?\\'" path)
+ (member (file-name-as-directory path) load-path)
+ (member path load-path)))
+ (file-directory-p path))
+ (push (file-name-as-directory path) adds)))
+ (setq load-path (nconc (nreverse adds) load-path))))
+
(load (expand-file-name "dgnuspath.el" srcdir) nil nil t)
(condition-case err
(load (expand-file-name "gnus-clfns.el" srcdir) nil t t)
-(when (boundp 'MULE)
- ;; Bind the function `base64-encode-string' before loading canlock.
- ;; Since canlock will bind it as an autoloaded function, it causes
- ;; damage to define the function by MEL.
- (load (expand-file-name "base64.el" srcdir) nil t t)
- ;; Load special macros for compiling canlock.el.
- (load (expand-file-name "canlock-om.el" srcdir) nil t t))
-
(require 'custom)
;; Bind functions defined by `defun-maybe'.
(if (string-match "\\(\\.gz$\\)\\|\\.bz2$" file)
(let ((temp (expand-file-name "dgnustemp.el" srcdir)))
(when
- (let* ((binary (if (boundp 'MULE)
- '*noconv*
- 'binary))
- (coding-system-for-read binary)
- (coding-system-for-write binary)
- (input-coding-system binary)
- (output-coding-system binary)
- (default-process-coding-system
- (cons binary binary))
- call-process-hook)
+ (let ((coding-system-for-read 'binary)
+ (coding-system-for-write 'binary)
+ (default-process-coding-system
+ '(binary . binary))
+ call-process-hook)
(insert-file-contents file nil nil nil t)
(when
(condition-case code
(byte-compile 'dgnushack-bind-colon-keywords)
(dgnushack-bind-colon-keywords)))
-(when (boundp 'MULE)
- (setq :version ':version
- :set-after ':set-after)
- (require 'custom)
- (defadvice custom-handle-keyword
- (around dont-signal-an-error-even-if-unsupported-keyword-is-given
- activate)
- "Don't signal an error even if unsupported keyword is given."
- (if (not (memq (ad-get-arg 1) '(:version :set-after)))
- ad-do-it)))
-
-(when (boundp 'MULE)
- (put 'custom-declare-face 'byte-optimizer
- 'byte-optimize-ignore-unsupported-custom-keywords)
- (put 'custom-declare-group 'byte-optimizer
- 'byte-optimize-ignore-unsupported-custom-keywords)
- (defun byte-optimize-ignore-unsupported-custom-keywords (form)
- (if (or (memq ':version (nthcdr 4 form))
- (memq ':set-after (nthcdr 4 form)))
- (let ((newform (list (car form) (nth 1 form)
- (nth 2 form) (nth 3 form)))
- (args (nthcdr 4 form)))
- (while args
- (or (memq (car args) '(:version :set-after))
- (setq newform (nconc newform (list (car args)
- (car (cdr args))))))
- (setq args (cdr (cdr args))))
- newform)
- form))
-
- (put 'custom-declare-variable 'byte-hunk-handler
- 'byte-compile-file-form-custom-declare-variable)
- (defun byte-compile-file-form-custom-declare-variable (form)
- ;; Bind defcustom'ed variables.
- (if (memq 'free-vars byte-compile-warnings)
- (setq byte-compile-bound-variables
- (cons (nth 1 (nth 1 form)) byte-compile-bound-variables)))
- (if (memq ':version (nthcdr 4 form))
- ;; Make the variable uncustomizable.
- `(defvar ,(nth 1 (nth 1 form)) ,(nth 1 (nth 2 form))
- ,(substring (nth 3 form) (if (string-match "^[\t *]+" (nth 3 form))
- (match-end 0)
- 0)))
- ;; Ignore unsupported keyword(s).
- (if (memq ':set-after (nthcdr 4 form))
- (let ((newform (list (car form) (nth 1 form)
- (nth 2 form) (nth 3 form)))
- (args (nthcdr 4 form)))
- (while args
- (or (eq (car args) ':set-after)
- (setq newform (nconc newform (list (car args)
- (car (cdr args))))))
- (setq args (cdr (cdr args))))
- newform)
- form)))
-
- (defadvice byte-compile-inline-expand (around ignore-built-in-functions
- (form) activate)
- "Ignore built-in functions."
- (let* ((name (car form))
- (fn (and (fboundp name)
- (symbol-function name))))
- (if (subrp fn)
- ;; Give up on inlining.
- (setq ad-return-value form)
- ad-do-it))))
-
;; Unknown variables and functions.
-(unless (boundp 'buffer-file-coding-system)
- (defvar buffer-file-coding-system (symbol-value 'file-coding-system)))
(unless (featurep 'xemacs)
(defalias 'Custom-make-dependencies 'ignore)
(defalias 'update-autoloads-from-directory 'ignore))
'("gnus-bbdb.el")))
(unless (featurep 'xemacs)
'("gnus-xmas.el" "messagexmas.el" "nnheaderxm.el"))
- (when (and (not (featurep 'xemacs))
- (<= emacs-major-version 20))
- '("smiley.el"))
(when (and (fboundp 'base64-decode-string)
(subrp (symbol-function 'base64-decode-string)))
'("base64.el"))
(when (and (fboundp 'md5) (subrp (symbol-function 'md5)))
'("md5.el"))
- (unless (boundp 'MULE)
- '("canlock-om.el"))
(when (featurep 'xemacs)
'("gnus-load.el")))
"Files which will not be installed.")
(defun dgnushack-compile (&optional warn)
;;(setq byte-compile-dynamic t)
- (when (and (not (featurep 'xemacs))
- (< emacs-major-version 21))
- (setq max-specpdl-size 1200))
(unless warn
(setq byte-compile-warnings
'(free-vars unresolved callargs redefine)))
(expand-file-name "cus-load.el" srcdir)))
(defun dgnushack-make-cus-load ()
- (when (condition-case nil
- (load "cus-dep")
- (error
- (when (boundp 'MULE)
- (if (file-exists-p "../contrib/cus-dep.el")
- ;; Use cus-dep.el of the version of Emacs 20.7.
- (load-file "../contrib/cus-dep.el")
- (error "\
-You need contrib/cus-dep.el to build T-gnus with Mule 2.3@19.34; exiting.")))))
- (let ((cusload-base-file dgnushack-cus-load-file))
- (if (fboundp 'custom-make-dependencies)
- (custom-make-dependencies)
- (Custom-make-dependencies))
- (when (featurep 'xemacs)
- (message "Compiling %s..." dgnushack-cus-load-file)
- (byte-compile-file dgnushack-cus-load-file)))))
+ (load "cus-dep")
+ (let ((cusload-base-file dgnushack-cus-load-file))
+ (if (fboundp 'custom-make-dependencies)
+ (custom-make-dependencies)
+ (Custom-make-dependencies))
+ (when (featurep 'xemacs)
+ (message "Compiling %s..." dgnushack-cus-load-file)
+ (byte-compile-file dgnushack-cus-load-file))))
(defun dgnushack-make-auto-load ()
(require 'autoload)
"Write the alist of covered servers."
(gnus-make-directory (nnheader-concat gnus-agent-directory "lib"))
(let ((coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
- (file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (file-name-coding-system nnmail-pathname-coding-system))
(with-temp-file (nnheader-concat gnus-agent-directory "lib/servers")
(prin1 gnus-agent-covered-methods
(current-buffer)))))
(when (gnus-agent-method-p method)
(let* ((gnus-command-method method)
(coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(file (gnus-agent-lib-file "active"))
oactive-min oactive-max)
(gnus-make-directory (file-name-directory file))
(defun gnus-agent-save-alist (group &optional articles state dir)
"Save the article-state alist for GROUP."
(let* ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(prev (cons nil gnus-agent-article-alist))
(all prev)
print-level print-length item article)
;; save it to file.
(goto-char (point-max))
(insert "\n")
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(write-region-as-binary (point-min) (point-max) file-name 'append))
t)))
(gnus-article-search-signature)
(point)))
(prefix-regexp (concat "^\\(" message-cite-prefix-regexp "\\)"))
- alist entry start begin end numbers prefix guess-limit mc-flag)
+ alist entry start begin end numbers prefix guess-limit)
;; Get all potential prefixes in `alist'.
(while (< (point) max)
;; Each line.
(autoload 'gnus-get-buffer-create "gnus")
(autoload 'nnheader-find-etc-directory "nnheader"))
-(if (or (featurep 'xemacs)
- (>= emacs-major-version 21))
- (autoload 'smiley-region "smiley")
- (autoload 'smiley-region "smiley-mule"))
-
+(autoload 'smiley-region "smiley")
;; Fixme: shouldn't require message
(autoload 'message-text-with-property "message")
((featurep 'mule)
;; Mule and new Emacs definitions
- ;; [Note] Now there are three kinds of mule implementations,
- ;; original MULE, XEmacs/mule and Emacs 20+ including
- ;; MULE features. Unfortunately these APIs are different. In
- ;; particular, Emacs (including original Mule) and XEmacs are
- ;; quite different. However, this version of Gnus doesn't support
- ;; anything other than XEmacs 20+ and Emacs 20.3+.
+ ;; [Note] Now there are two kinds of mule implementations,
+ ;; XEmacs/mule and Emacs 20+ including Mule features.
+ ;; Unfortunately these APIs are different. In particular, Emacs
+ ;; and XEmacs are quite different. However, this version of Gnus
+ ;; doesn't support anything other than XEmacs 21+ and Emacs 21+.
- ;; Predicates to check are following:
- ;; (boundp 'MULE) is t only if Mule (original; anything older than
- ;; Mule 2.3) is running.
+ ;; Predicate to check is the following:
;; (featurep 'mule) is t when other mule variants are running.
;; It is possible to detect XEmacs/mule by (featurep 'mule) and
(message-narrow-to-headers)
(let ((gcc (or gcc (mail-fetch-field "gcc" nil t)))
(coding-system-for-write 'raw-text)
- (output-coding-system 'raw-text)
groups group method group-art
mml-externalize-attachments)
(when gcc
(defcustom gnus-namazu-make-index-arguments
(nconc
(list "--all" "--mailnews" "--deny=^.*[^0-9].*$")
- (when (or (and (boundp 'current-language-environment)
- (string= "Japanese"
- (symbol-value 'current-language-environment)))
- (boundp 'MULE))
+ (when (and (boundp 'current-language-environment)
+ (string= "Japanese"
+ (symbol-value 'current-language-environment)))
(list "--indexing-lang=ja")))
"*Arguments of the indexer of Namazu."
:type '(repeat string)
(defcustom gnus-namazu-coding-system
(if (memq system-type '(windows-nt OS/2 emx))
- (if (boundp 'MULE) '*sjis* 'shift_jis)
- (if (boundp 'MULE) '*euc-japan* 'euc-japan))
+ 'shift_jis
+ 'euc-japan)
"*Coding system for Namazu process."
:type 'coding-system
:group 'gnus-namazu)
(fboundp 'gnus-group-decoded-name)
(let ((gnus-group-name-charset-group-alist
(list (cons gnus-namazu/group-name-regexp gnus-namazu-coding-system)))
- (query (decode-coding-string
- (string 27 36 66 52 65 59 122 27 40 66)
- (if (boundp 'MULE) '*iso-2022-jp* 'iso-2022-7bit))))
+ (query (decode-coding-string (string 27 36 66 52 65 59 122 27 40 66)
+ 'iso-2022-7bit)))
(not (string-match query
(gnus-summary-buffer-name
(encode-coding-string
(defsubst gnus-namazu/call-namazu (query)
(let ((coding-system-for-read gnus-namazu-coding-system)
(coding-system-for-write gnus-namazu-coding-system)
- (input-coding-system gnus-namazu-coding-system)
- (output-coding-system gnus-namazu-coding-system)
(default-process-coding-system
(cons gnus-namazu-coding-system gnus-namazu-coding-system))
program-coding-system-alist
- (file-name-coding-system gnus-namazu-coding-system)
- (pathname-coding-system gnus-namazu-coding-system))
+ (file-name-coding-system gnus-namazu-coding-system))
(apply 'call-process
`(,gnus-namazu-command
nil ; input from /dev/null
((featurep 'xemacs)
(popup-menu menu))
(t
- (let ((menu-func (or (and (fboundp 'easy-menu-create-menu)
- 'easy-menu-create-menu)
- 'easy-menu-create-keymaps))
- keymap pop func)
- (static-cond ((< emacs-major-version 20)
- ;; For Emacsen from 19.34 down to 19.28.
- ;; Seems the first item in MENU will be ignored.
- (or (keymapp menu)
- (setq menu
- (append (list "" ;; This will be ignored.
- (or title "Popup Menu")
- "-----"
- "-----")
- (cdr menu))))
- (setq keymap
- (if (keymapp menu)
- (append (list 'keymap
- (if title
- `(nil ,title)
- '(nil "Popup Menu"))
- '(nil "")
- '(nil ""))
- (cdr menu))
- (funcall menu-func (car menu) (cdr menu)))))
- (t
- (setq keymap
- (if (keymapp menu)
- menu
- (funcall menu-func (car menu) (cdr menu))))))
+ (let* ((menu-func (or (and (fboundp 'easy-menu-create-menu)
+ 'easy-menu-create-menu)
+ 'easy-menu-create-keymaps))
+ (keymap (if (keymapp menu)
+ menu
+ (funcall menu-func (car menu) (cdr menu))))
+ pop func)
;; Display the popup menu.
(if (and (setq pop (x-popup-menu t keymap))
(setq func (lookup-key keymap
;;; Internal variables
-(defvar gnus-ding-file-coding-system (static-if (boundp 'MULE)
- '*ctext*
- 'ctext)
+(defvar gnus-ding-file-coding-system 'ctext
"Coding system for ding file.")
;; Note that the ding file for T-gnus ought not to have byte-codes.
&rest variables)
(let (error gnus-product-file-version method file-ver)
(when (or (condition-case err
- (let ((coding-system-for-read coding)
- (input-coding-system coding))
+ (let ((coding-system-for-read coding))
(load (expand-file-name file gnus-product-directory)
nil nil t)
nil)
(if gnus-save-startup-file-via-temp-buffer
(let ((coding-system-for-write gnus-ding-file-coding-system)
- (output-coding-system gnus-ding-file-coding-system)
(standard-output (current-buffer)))
(gnus-gnus-to-quick-newsrc-format)
(gnus-run-hooks 'gnus-save-quick-newsrc-hook)
(save-buffer))
(let ((coding-system-for-write gnus-ding-file-coding-system)
- (output-coding-system gnus-ding-file-coding-system)
(version-control gnus-backup-startup-file)
(startup-file (concat gnus-current-startup-file ".eld"))
(working-dir (file-name-directory gnus-current-startup-file))
(defun gnus-make-directory (directory)
"Make DIRECTORY (and all its parents) if it doesn't exist."
(require 'nnmail)
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(when (and directory
(not (file-exists-p directory)))
(make-directory directory t)))
"Write the current buffer's contents to FILE."
;; Make sure the directory exists.
(gnus-make-directory (file-name-directory file))
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
;; Write the buffer.
(write-region (point-min) (point-max) file nil 'quietly)))
;; Decide whether to append to a file or to an Emacs buffer.
(let ((outbuf (get-file-buffer filename)))
(if (not outbuf)
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(write-region-as-binary (point-min) (point-max)
filename 'append))
;; File has been visited, in buffer OUTBUF.
(insert "\n"))
(insert "\n"))
(goto-char (point-max))
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(write-region-as-binary (point-min) (point-max)
filename 'append))))
;; File has been visited, in buffer OUTBUF.
t))
(defun gnus-write-active-file (file hashtb &optional full-names)
- (let ((output-coding-system nnmail-active-file-coding-system)
- (coding-system-for-write nnmail-active-file-coding-system))
+ (let ((coding-system-for-write nnmail-active-file-coding-system))
(with-temp-file file
(mapatoms
(lambda (sym)
((eq gnus-user-agent 'gnus)
nil)
((string-match "^\\(\\([.0-9]+\\)*\\)\\.[0-9]+$" emacs-version)
- (concat (format (if (boundp 'MULE)
- "Mule/2.3 (based on Emacs %s)"
- "Emacs/%s")
- (match-string 1 emacs-version))
+ (concat "Emacs/%s" (match-string 1 emacs-version)
(if system-v
(concat " (" system-v ")")
"")))
(with-current-buffer gnus-uu-digest-buffer
(goto-char (point-max))
(insert-buffer "*gnus-uu-body*"))
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(write-region-as-coding-system
nnheader-text-coding-system
(point-min) (point-max) gnus-uu-saved-article-name t)))))
"Gnus variables saved in the quick startup file.")
(defvar gnus-product-variable-file-list
- (let ((version (product-version (product-find 'gnus-vers)))
- (codesys (static-if (boundp 'MULE) '*ctext* 'ctext)))
+ (let ((version (product-version (product-find 'gnus-vers))))
`(("strict-cache"
((product-version ,version)
(emacs-version)
((product-version ,version)
(emacs-version)
(correct-string-widths))
- ,codesys
+ ctext
gnus-format-specs)))
"Alist of the methods for checking whether the contents of the T-gnus
quick startup files are valid. One is for the byte-compiled format
(cond
((featurep 'xemacs)
'(frame-char-height frame-char-width))
- ((>= emacs-major-version 21)
- '(function-max-args smiley-encode-buffer))
- ((boundp 'MULE)
- '(charsetp
- coding-system-base coding-system-get coding-system-list
- coding-system-to-mime-charset compose-mail
- file-name-extension find-coding-systems-for-charsets
- find-coding-systems-region function-max-args get-charset-property
- read-passwd ;; See the Mule23@1934 file.
- smiley-encode-buffer smtpmail-send-it))
(t
'(function-max-args smiley-encode-buffer))))
(common-fns
(cond
((featurep 'xemacs)
'(font-lock-defaults))
- ((>= emacs-major-version 21)
- nil)
- ((boundp 'MULE)
- '(adaptive-fill-first-line-regexp
- default-enable-multibyte-characters enable-multibyte-characters))
(t
nil)))
(common-vars
(let ((coding-system-for-write
nnheader-text-coding-system)
(coding-system-for-read
- nnheader-text-coding-system)
- (output-coding-system
- nnheader-text-coding-system)
- (input-coding-system
nnheader-text-coding-system))
(with-temp-file mail-source-crash-box
(insert-file-contents file)
password) buf)
(imap-mailbox-select mailbox nil buf))
(let ((coding-system-for-write mail-source-imap-file-coding-system)
- (output-coding-system mail-source-imap-file-coding-system)
str)
(with-temp-file mail-source-crash-box
;; Avoid converting 8-bit chars from inserted strings to
(require 'smtp)
(defvar gnus-message-group-art)
(defvar gnus-list-identifiers)) ; gnus-sum is required where necessary
-(eval-and-compile
- (if (boundp 'MULE)
- (progn
- (require 'base64)
- (require 'canlock-om))
- (require 'canlock)))
+(require 'canlock)
(require 'mailheader)
(require 'nnheader)
;; This is apparently necessary even though things are autoloaded.
(defvar message-user-agent nil
"String of the form of PRODUCT/VERSION. Used for User-Agent header field.")
-(static-when (boundp 'MULE)
- (require 'reporter));; `define-mail-user-agent' is here.
-
;;;###autoload
(define-mail-user-agent 'message-user-agent
'message-mail 'message-send-and-exit
(defun message-delete-frame (frame org-frame)
"Delete frame for editing message."
- (when (and (or (static-if (featurep 'xemacs)
- (device-on-window-system-p)
- window-system)
- (>= emacs-major-version 20))
+ (when (and (static-if (featurep 'xemacs)
+ (device-on-window-system-p)
+ window-system)
(or (and (eq message-delete-frame-on-exit t)
(select-frame frame)
(or (eq frame org-frame)
"Process Fcc headers in the current buffer."
(let ((case-fold-search t)
(coding-system-for-write 'raw-text)
- (output-coding-system 'raw-text)
list file
(mml-externalize-attachments message-fcc-externalize-attachments))
(save-excursion
(defun message-pop-to-buffer (name)
"Pop to buffer NAME, and warn if it already exists and is modified."
(let ((buffer (get-buffer name))
- (pop-up-frames (and (or (static-if (featurep 'xemacs)
- (device-on-window-system-p)
- window-system)
- (>= emacs-major-version 20))
+ (pop-up-frames (and (static-if (featurep 'xemacs)
+ (device-on-window-system-p)
+ window-system)
message-use-multi-frames)))
(if (and buffer
(buffer-name buffer))
message-auto-save-directory))
(setq buffer-auto-save-file-name (make-auto-save-file-name)))
(clear-visited-file-modtime)
- (static-if (boundp 'MULE)
- (set-file-coding-system message-draft-coding-system)
- (setq buffer-file-coding-system message-draft-coding-system))))
+ (setq buffer-file-coding-system message-draft-coding-system)))
(defun message-disassociate-draft ()
"Disassociate the message buffer from the drafts directory."
(encode-coding-string chunk
(if (fboundp 'find-coding-systems-string)
(car (find-coding-systems-string chunk))
- (static-if (boundp 'MULE)
- file-coding-system
- buffer-file-coding-system)))
+ buffer-file-coding-system))
chunk)
""))
(setq nnfolder-current-buffer nil
nnfolder-current-group nil))
;; Change group.
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(when (and group
(not (equal group nnfolder-current-group))
(progn
(when (buffer-modified-p)
(run-hooks 'nnfolder-save-buffer-hook)
(gnus-make-directory (file-name-directory (buffer-file-name)))
- (let* ((coding-system-for-write
- (or nnfolder-file-coding-system-for-write
- nnfolder-file-coding-system))
- (output-coding-system coding-system-for-write))
+ (let ((coding-system-for-write
+ (or nnfolder-file-coding-system-for-write
+ nnfolder-file-coding-system)))
(save-buffer)))
(unless (or gnus-nov-is-evil nnfolder-nov-is-evil)
(nnfolder-save-nov)))
(defvar nnheader-auto-save-coding-system
(cond
- ((boundp 'MULE) '*junet*)
((not (fboundp 'find-coding-system)) nil)
((find-coding-system 'emacs-mule)
(if (memq system-type '(windows-nt ms-dos ms-windows))
(defalias 'mm-image-load-path 'nnheader-image-load-path)
;; Should keep track of `mm-read-coding-system' in mm-util.el.
- (defalias 'mm-read-coding-system
- (if (or (and (featurep 'xemacs)
- (<= (string-to-number emacs-version) 21.1))
- (boundp 'MULE))
- (lambda (prompt &optional default-coding-system)
- (read-coding-system prompt))
- 'read-coding-system))
+ (defalias 'mm-read-coding-system 'read-coding-system)
;; Should keep track of `mm-%s' in mm-util.el.
(defalias 'mm-multibyte-string-p
;; Should keep track of `mm-detect-coding-region' in mm-util.el.
(defun nnheader-detect-coding-region (start end)
"Like 'detect-coding-region' except returning the best one."
- (let ((coding-systems
- (static-if (boundp 'MULE)
- (code-detect-region (point) (point-max))
- (detect-coding-region (point) (point-max)))))
+ (let ((coding-systems (detect-coding-region (point) (point-max))))
(or (car-safe coding-systems)
coding-systems)))
(defalias 'mm-detect-coding-region 'nnheader-detect-coding-region)
(defmacro nnheader-with-unibyte-buffer (&rest forms)
"Create a temporary buffer, and evaluate FORMS there like `progn'.
Use unibyte mode for this."
- `(let (default-enable-multibyte-characters default-mc-flag)
+ `(let (default-enable-multibyte-characters)
(with-temp-buffer ,@forms)))
(put 'nnheader-with-unibyte-buffer 'lisp-indent-function 0)
(put 'nnheader-with-unibyte-buffer 'edebug-form-spec '(body))
(cond ((featurep 'xemacs)
`(let (default-enable-multibyte-characters)
,@forms))
- ((boundp 'MULE)
- `(let ((,multibyte mc-flag)
- (,buffer (current-buffer)))
- (unwind-protect
- (let (default-enable-multibyte-characters default-mc-flag)
- (setq mc-flag nil)
- ,@forms)
- (set-buffer ,buffer)
- (setq mc-flag ,multibyte))))
(t
`(let ((,multibyte enable-multibyte-characters)
(,buffer (current-buffer)))
(lambda nil t))
((featurep 'xemacs)
(lambda nil nil))
- ((boundp 'MULE)
- (lambda nil mc-flag))
(t
(lambda nil enable-multibyte-characters))))
(number (length articles))
(count 0)
(file-name-coding-system 'binary)
- (pathname-coding-system 'binary)
(case-fold-search t)
(cur (current-buffer))
article
;; Remove NOV lines of articles that are marked as read.
(when (and (file-exists-p (nnkiboze-nov-file-name))
nnkiboze-remove-read-articles)
- (let ((coding-system-for-write nnkiboze-file-coding-system)
- (output-coding-system nnkiboze-file-coding-system))
+ (let ((coding-system-for-write nnkiboze-file-coding-system))
(with-temp-file (nnkiboze-nov-file-name)
(let ((cur (current-buffer))
(nnheader-file-coding-system nnkiboze-file-coding-system))
(mm-with-unibyte
(when (file-exists-p newsrc-file)
(load newsrc-file))
- (let ((coding-system-for-write nnkiboze-file-coding-system)
- (output-coding-system nnkiboze-file-coding-system))
+ (let ((coding-system-for-write nnkiboze-file-coding-system))
(gnus-make-directory (file-name-directory nov-file))
(with-temp-file nov-file
(when (file-exists-p nov-file)
(after-insert-file-functions nil))
(condition-case ()
(let ((auto-mode-alist (nnheader-auto-mode-alist))
- (file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (file-name-coding-system nnmail-pathname-coding-system))
(insert-file-contents-as-coding-system
nnmail-file-coding-system file)
t)
(defun nnmail-save-active (group-assoc file-name)
"Save GROUP-ASSOC in ACTIVE-FILE."
- (let ((coding-system-for-write nnmail-active-file-coding-system)
- (output-coding-system nnmail-active-file-coding-system))
+ (let ((coding-system-for-write nnmail-active-file-coding-system))
(when file-name
(with-temp-file file-name
(nnmail-generate-active group-assoc)))))
(defun nnmail-write-region (start end filename &optional append visit lockname)
"Do a `write-region', and then set the file modes."
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(write-region-as-coding-system
nnmail-file-coding-system start end filename append visit lockname)
(set-file-modes filename nnmail-default-file-modes)))
(defun nnmaildir-request-scan (&optional scan-group server)
(let ((coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(buffer-file-coding-system nil)
- (file-coding-system nil)
(file-coding-system-alist nil)
(nnmaildir-get-new-mail t)
(nnmaildir-group-alist nil)
(defun nnmaildir-request-rename-group (gname new-name &optional server)
(let ((group (nnmaildir--prepare server gname))
(coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(buffer-file-coding-system nil)
- (file-coding-system nil)
(file-coding-system-alist nil)
srv-dir x groups)
(catch 'return
(defun nnmaildir-request-replace-article (number gname buffer)
(let ((group (nnmaildir--prepare nil gname))
(coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(buffer-file-coding-system nil)
- (file-coding-system nil)
(file-coding-system-alist nil)
dir file article suffix tmpfile deactivate-mark)
(catch 'return
(defun nnmaildir-request-accept-article (gname &optional server last)
(let ((group (nnmaildir--prepare server gname))
(coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(buffer-file-coding-system nil)
- (file-coding-system nil)
(file-coding-system-alist nil)
srv-dir dir file time tmpfile curfile 24h article)
(catch 'return
(defun nnmaildir-request-set-mark (gname actions &optional server)
(let ((group (nnmaildir--prepare server gname))
(coding-system-for-write nnheader-file-coding-system)
- (output-coding-system nnheader-file-coding-system)
(buffer-file-coding-system nil)
- (file-coding-system nil)
(file-coding-system-alist nil)
del-mark del-action add-action set-action marksdir markfile nlist
ranges begin end article all-marks todo-marks did-marks mdir mfile
(car active) (cdr active) group)))))
(defun nnmbox-save-buffer ()
- (let* ((coding-system-for-write (or nnmbox-file-coding-system-for-write
- nnmbox-file-coding-system))
- (output-coding-system coding-system-for-write))
+ (let ((coding-system-for-write (or nnmbox-file-coding-system-for-write
+ nnmbox-file-coding-system)))
(save-buffer)))
(defun nnmbox-save-active (group-alist active-file)
(> number nnmail-large-newsgroup)))
(count 0)
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
beg article)
(nnmh-possibly-change-directory newsgroup server)
;; We don't support fetching by Message-ID.
nil
(concat nnmh-current-directory (int-to-string id))))
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(nntp-server-buffer (or buffer nntp-server-buffer)))
(and (stringp file)
(file-exists-p file)
(nnmh-possibly-change-directory group server)
(let ((pathname (nnmail-group-pathname group nnmh-directory))
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
dir)
(cond
((not (file-directory-p pathname))
(nnheader-insert "")
(nnmh-possibly-change-directory nil server)
(let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(nnmh-toplev
(file-truename (or dir (file-name-as-directory nnmh-directory)))))
(nnmh-request-list-1 nnmh-toplev))
(nnmh-open-server server))
(when newsgroup
(let ((pathname (nnmail-group-pathname newsgroup nnmh-directory))
- (file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (file-name-coding-system nnmail-pathname-coding-system))
(if (file-directory-p pathname)
(setq nnmh-current-directory pathname)
(nnheader-report 'nnmh "Not a directory: %s" nnmh-directory)))))
(let ((active (cadr (assoc group nnmh-group-alist)))
(dir (nnmail-group-pathname group nnmh-directory))
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
file)
(unless active
;; The group wasn't known to nnmh, so we just create an active
(number (length sequence))
(count 0)
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
beg article)
(if (stringp (car sequence))
'headers
(nnml-possibly-change-directory group server)
(let* ((nntp-server-buffer (or buffer nntp-server-buffer))
(file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
path gpath group-num)
(if (stringp id)
(when (and (setq group-num (nnml-find-group-number id))
(string-to-int (file-name-nondirectory path)))))))
(deffoo nnml-request-group (group &optional server dont-check)
- (let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (let ((file-name-coding-system nnmail-pathname-coding-system))
(cond
((not (nnml-possibly-change-directory group server))
(nnheader-report 'nnml "Invalid group (no such directory)"))
(deffoo nnml-request-list (&optional server)
(save-excursion
(let ((nnmail-file-coding-system nnmail-active-file-coding-system)
- (file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (file-name-coding-system nnmail-pathname-coding-system))
(nnmail-find-file nnml-active-file))
(setq nnml-group-alist (nnmail-get-active))
t))
(if (not group)
t
(let ((pathname (nnmail-group-pathname group nnml-directory))
- (file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system))
+ (file-name-coding-system nnmail-pathname-coding-system))
(when (not (equal pathname nnml-current-directory))
(setq nnml-current-directory pathname
nnml-current-group group
(when (file-exists-p file)
(with-temp-buffer
(let ((coding-system-for-read 'binary)
- (input-coding-system 'binary)
emacs-lisp-mode-hook)
(insert-file-contents file)
(emacs-lisp-mode)
server ".el"))
nnrss-directory)))
(let ((coding-system-for-write 'binary)
- (output-coding-system 'binary)
print-level print-length)
(with-temp-file file
(insert "(setq nnrss-group-alist '"
(when (file-exists-p file)
(with-temp-buffer
(let ((coding-system-for-read 'binary)
- (input-coding-system 'binary)
emacs-lisp-mode-hook)
(insert-file-contents file)
(emacs-lisp-mode)
server ".el"))
nnrss-directory)))
(let ((coding-system-for-write 'binary)
- (output-coding-system 'binary)
print-level print-length)
(with-temp-file file
(insert "(setq nnrss-group-data '"
(error
(nnheader-report 'nnshimbun "%s" (error-message-string err))))
(let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(dir (nnshimbun-current-directory group)))
(or (file-directory-p dir)
(ignore-errors
(deffoo nnshimbun-open-server (server &optional defs)
(or (nnshimbun-server-opened server)
(let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(shimbun))
(when (condition-case err
(setq shimbun
(with-current-buffer (gnus-get-buffer-create buffer)
(erase-buffer)
(let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(nov (nnshimbun-nov-file-name group)))
(when (file-exists-p nov)
(nnheader-insert-file-contents nov)))
(when (gnus-buffer-live-p buffer)
(with-current-buffer buffer
(let ((file-name-coding-system nnmail-pathname-coding-system)
- (pathname-coding-system nnmail-pathname-coding-system)
(nov (nnshimbun-nov-file-name group)))
(when (and (buffer-modified-p)
(or (> (buffer-size) 0)
(symbol-value 'enable-multibyte-characters))))
(unwind-protect
;; Some encoded unicode text contains character 0x80-0x9f e.g. Euro.
- (let (default-enable-multibyte-characters mc-flag)
+ (let (default-enable-multibyte-characters)
;; `set-buffer-multibyte' will be provided by APEL for all Emacsen.
(set-buffer-multibyte nil)
(process-send-region (nntp-find-connection nntp-server-buffer)
table)
"Syntax table used in score-mode buffers.")
-(defvar score-mode-coding-system (static-if (boundp 'MULE)
- '*ctext*
- 'ctext))
+(defvar score-mode-coding-system 'ctext)
;;;###autoload
(defun gnus-score-mode ()
+++ /dev/null
-;; This is a sample of `~/.lpath.el' file.
-;;
-;; This file will be loaded from dgnushack.el at the compile time. It
-;; is supposed to be used for telling old Emacsen where EMU, APEL or
-;; CUSTOM packages have already installed.
-;;
-;; For instance, if you would like to build T-gnus with Mule 2.3 based
-;; on Emacs 19.34, copy this file to `~/.lpath.el' and edit it suitably
-;; for your environment.
-
-(if (boundp 'MULE)
- (let ((additional-load-path
- (list
- ;; Where is EMU packege?
- "/usr/local/share/mule/19.34/site-lisp/"
- ;; Where is APEL package?
- "/usr/local/share/mule/site-lisp/apel/"
- ;; Where is CUSTOM package?
- "/usr/local/share/mule/site-lisp/custom/"
-
- ;; Note that you have no need to specify paths of FLIM and
- ;; SEMI if they are installed under the directory which is
- ;; same as the parent directory of APEL.
-
- ;; If you have installed Emacs/W3 package,
- ;; uncomment and edit the following line appropriately.
- ;; "/usr/local/share/mule/site-lisp/w3/"
- )))
- ;; No user serviceable parts beyond this point.
-\f
- (let ((i (length additional-load-path))
- p)
- (while (> i 0)
- (setq i (1- i)
- p (nth i additional-load-path))
- (if (file-directory-p p)
- (progn
- (if (string-match "/apel/?$" p)
- (setq load-path
- (cons (substring p 0 (1+ (match-beginning 0)))
- load-path)))
- (setq load-path (cons p load-path))))))))
coding-system)
(find-file file)
(setq buffer-read-only nil)
- (setq coding-system (if (boundp 'buffer-file-coding-system)
- buffer-file-coding-system
- file-coding-system))
+ (setq coding-system buffer-file-coding-system)
(infohack-remove-unsupported)
(texinfo-every-node-update)
(texinfo-format-buffer t) ;; Don't save any file.
(setq buffer-file-name
(expand-file-name (file-name-nondirectory buffer-file-name)
default-directory))
- (setq buffer-file-coding-system coding-system
- file-coding-system coding-system)
+ (setq buffer-file-coding-system coding-system)
(if (> (buffer-size) 100000)
(Info-split))
(save-buffer)))
(let ((auto-save-default nil)
(find-file-run-dired nil)
coding-system-for-write
- output-coding-system
(error 0))
(condition-case err
(progn
(find-file file)
(setq buffer-read-only nil)
(buffer-disable-undo (current-buffer))
- (if (boundp 'MULE)
- (setq output-coding-system file-coding-system)
- (setq coding-system-for-write buffer-file-coding-system))
+ (setq coding-system-for-write buffer-file-coding-system)
;; process @include before updating node
;; This might produce some problem if we use @lowersection or
;; such.
(let ((si:message (symbol-function 'message)))
(fset 'message
(byte-compile
- (if (boundp 'MULE)
- `(lambda (fmt &rest args)
- (funcall ,si:message "%s"
- (code-convert-string
- (apply 'format fmt args)
- '*internal* '*junet*)))
- `(lambda (fmt &rest args)
- (funcall ,si:message "%s"
- (encode-coding-string
- (apply 'format fmt args)
- 'iso-2022-7bit))))))
+ `(lambda (fmt &rest args)
+ (funcall ,si:message "%s"
+ (encode-coding-string
+ (apply 'format fmt args)
+ 'iso-2022-7bit)))))
(unwind-protect
(texinfo-format-buffer nil)
(fset 'message si:message)))
;; sort -fd
(ptexinfmt-broken-facility texinfo-format-printindex
"Can't sort on Mule for Windows."
- (if (and (memq system-type '(windows-nt ms-dos))
-;;; I don't know version threshold.
-;;; (string< texinfmt-version "2.37 of 24 May 1997")
- (boundp 'MULE) (not (featurep 'meadow))) ; Mule for Windows
- nil
- t))
+ t)
;; @var
(ptexinfmt-broken-facility texinfo-format-var