[COMMIT] Minor Quail fixes.
18 years, 7 months
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
mule-packages/leim/ChangeLog addition:
2006-06-03 Aidan Kehoe <kehoea(a)parhasard.net>
* quail.el (quail-define-rules):
* quail.el (quail-defrule):
Document in more detail what happens when a function symbol is
specified as the Quail translation for a key.
* quail.el (quail-show-translations):
Check that quail-overlay is an overlay before trying to move
it. Fixes an occasional "Wrong type argument: overlayp, nil"
message in XEmacs 21.5.
XEmacs Packages source patch:
Diff command: cvs -q diff -u
Files affected: mule-packages/leim/quail.el
Index: mule-packages/leim/quail.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/mule-packages/leim/quail.el,v
retrieving revision 1.6
diff -u -u -r1.6 quail.el
--- mule-packages/leim/quail.el 2003/06/30 12:36:25 1.6
+++ mule-packages/leim/quail.el 2006/06/03 06:51:37
@@ -808,9 +808,16 @@
If it is a vector, each element (string or character) is a candidate
for the translation.
In these cases, a key specific Quail map is generated and assigned to KEY.
+(A Quail map is a cons that satisfies `quail-map-p', which see.)
-If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
- it is used to handle KEY."
+If TRANSLATION is a Quail map it is used to handle KEY.
+
+If TRANSLATION is a function symbol, that function should take two
+arguments, the input string and its length, and it should return a Quail map
+to be used to handle KEY. For each KEY that translates to the function,
+that function will be called just once, and the result cached by Quail--this
+means that some of the context-dependent processing you may be tempted to
+do, like manipulating unread-command-events, is not possible. "
`(quail-install-map
',(let ((l rules)
(map (list nil)))
@@ -844,9 +851,17 @@
variable `quail-current-data'). If the cdr part is not a function,
the value itself is assigned to `quail-current-data'.
In these cases, a key specific Quail map is generated and assigned to KEY.
+(A Quail map is a cons that satisfies `quail-map-p', which see.)
+
+If TRANSLATION is a Quail map it is used to handle KEY.
+
+If TRANSLATION is a function symbol, that function should take two
+arguments, the input string and its length. It should return a Quail map to
+be used to handle KEY. For each KEY that translates to the function, that
+function will be called just once, and the result cached by Quail--this
+means that some of the context-dependent processing you may be tempted to
+do, like manipulating `unread-command-events', is not possible.
-If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
- it is used to handle KEY.
Optional argument NAME, if specified, says which Quail package
to define this translation rule in. The default is to define it in the
current Quail package."
@@ -1635,7 +1650,7 @@
(1+ (- idx start)))))
(let ((pos (point)))
(insert (aref (cdr quail-current-translations) idx))
- (if (= idx cur)
+ (if (and (overlayp quail-overlay) (= idx cur))
(move-overlay quail-overlay pos (point))))
(setq idx (1+ idx)))))
)))
--
Aidan Kehoe, http://www.parhasard.net/
[AC21.5R21.4] [C] xemacs-21.5-clean: Welcome nl.xemacs.org and Thanks!
18 years, 7 months
Adrian Aichner
COMMIT
APPROVE COMMIT 21.5 RECOMMEND 21.4
That's the last commit for my nl.xemacs.org updates!
Adrian
xemacs-21.5-clean ChangeLog patch:
Diff command: cvs -q diff -U 0
Files affected: lisp/ChangeLog
Index: lisp/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.746
diff -u -U0 -r1.746 ChangeLog
--- lisp/ChangeLog 29 May 2006 21:25:48 -0000 1.746
+++ lisp/ChangeLog 2 Jun 2006 22:16:24 -0000
@@ -0,0 +1,6 @@
+2006-06-03 Adrian Aichner <adrian(a)xemacs.org>
+
+ * package-get.el (package-get-download-sites): Welcome
+ nl.xemacs.org and Thanks!
+ * package-get.el (package-get-pre-release-download-sites): Ditto.
+
xemacs-21.5-clean source patch:
Diff command: cvs -f -z3 -q diff -u -w -N
Files affected: lisp/package-get.el
Index: lisp/package-get.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-get.el,v
retrieving revision 1.75
diff -u -w -r1.75 package-get.el
--- lisp/package-get.el 6 Jan 2006 12:24:20 -0000 1.75
+++ lisp/package-get.el 2 Jun 2006 22:15:46 -0000
@@ -242,6 +242,7 @@
; ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages")
("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages")
("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages")
+ ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org" "pub/xemacs/ftp/packages")
("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages")
("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages")
@@ -332,6 +333,8 @@
"pub/archives/packages/xemacs/xemacs-21.5/experimental/packages")
("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org"
"pub/tools/emacs/xemacs/beta/experimental/packages")
+ ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org"
+ "pub/xemacs/ftp/beta/experimental/packages")
("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org"
"mirror/ftp.xemacs.org/packages")
("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org"
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/
[C] xemacs-builds: Welcome nl.xemacs.org and Thanks!
18 years, 7 months
Adrian Aichner
COMMIT
xemacs-builds ChangeLog patch:
Diff command: cvs -q diff -U 0
Files affected: ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs-builds/ChangeLog,v
retrieving revision 1.73
diff -u -U0 -r1.73 ChangeLog
--- ChangeLog 12 Feb 2006 16:40:36 -0000 1.73
+++ ChangeLog 2 Jun 2006 22:13:12 -0000
@@ -0,0 +1,6 @@
+2006-06-03 Adrian Aichner <adrian(a)xemacs.org>
+
+ * adrian/website/package-get-2-download-sites.el
+ (package-get-2-download-sites-map-ftp-to-http): Welcome
+ nl.xemacs.org and Thanks!
+
xemacs-builds source patch:
Diff command: cvs -f -z3 -q diff -u -w -N
Files affected: adrian/website/package-get-2-download-sites.el
Index: adrian/website/package-get-2-download-sites.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs-builds/adrian/website/package-get-2-download-sites.el,v
retrieving revision 1.6
diff -u -w -r1.6 package-get-2-download-sites.el
--- adrian/website/package-get-2-download-sites.el 30 Jan 2006 21:17:39 -0000 1.6
+++ adrian/website/package-get-2-download-sites.el 2 Jun 2006 22:12:52 -0000
@@ -76,6 +76,8 @@
((string-match "ftp\\.hk\\.xemacs\\.org" host)
(concat "xemacsftp.hkmirror.org/"
(substring path (length "pub/xemacsftp/"))))
+ ((string-match "ftp\\.nl\\.xemacs\\.org" host)
+ (concat host "/" (replace-in-string path "/ftp/" "/")))
(t
(concat host "/" path))))
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/
[C] xemacsweb: Welcome nl.xemacs.org and Thanks!
18 years, 7 months
Adrian Aichner
COMMIT
Thanks Jur!
Adrian
xemacsweb ChangeLog patch:
Diff command: cvs -q diff -U 0
Files affected: Releases/ChangeLog Download/win32/ChangeLog Download/ChangeLog ChangeLog
Index: Releases/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Releases/ChangeLog,v
retrieving revision 1.136
diff -u -U0 -r1.136 ChangeLog
--- Releases/ChangeLog 16 May 2006 08:47:41 -0000 1.136
+++ Releases/ChangeLog 2 Jun 2006 22:06:21 -0000
@@ -0,0 +1,7 @@
+2006-06-02 Adrian Aichner <adrian(a)xemacs.org>
+
+ * core-beta.txt: Welcome nl.xemacs.org and Thanks!
+ * core-stable.txt: Ditto.
+ * packages-official.txt: Ditto.
+ * packages-pre-release.txt: Ditto.
+
Index: Download/win32/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/win32/ChangeLog,v
retrieving revision 1.48
diff -u -U0 -r1.48 ChangeLog
--- Download/win32/ChangeLog 30 Jan 2006 21:54:31 -0000 1.48
+++ Download/win32/ChangeLog 2 Jun 2006 22:06:21 -0000
@@ -0,0 +1,6 @@
+2006-06-02 Adrian Aichner <adrian(a)xemacs.org>
+
+ * innosetup-win32.txt: Welcome nl.xemacs.org and Thanks!
+ * installshield-win32.txt: Ditto.
+ * netinstall-win32.txt: Ditto.
+
Index: Download/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/ChangeLog,v
retrieving revision 1.177
diff -u -U0 -r1.177 ChangeLog
--- Download/ChangeLog 2 May 2006 20:38:53 -0000 1.177
+++ Download/ChangeLog 2 Jun 2006 22:06:21 -0000
@@ -0,0 +1,4 @@
+2006-06-02 Adrian Aichner <adrian(a)xemacs.org>
+
+ * web-mirrors.content: Welcome nl.xemacs.org and Thanks!
+
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/ChangeLog,v
retrieving revision 1.253
diff -u -U0 -r1.253 ChangeLog
--- ChangeLog 16 May 2006 08:47:24 -0000 1.253
+++ ChangeLog 2 Jun 2006 22:06:21 -0000
@@ -0,0 +1,4 @@
+2006-06-02 Adrian Aichner <adrian(a)xemacs.org>
+
+ * index.content: Welcome nl.xemacs.org and Thanks!
+
xemacsweb source patch:
Diff command: cvs -f -z3 -q diff -u -w -N
Files affected: Releases/packages-pre-release.txt Releases/packages-official.txt Releases/core-stable.txt Releases/core-beta.txt Download/win32/netinstall-win32.txt Download/win32/installshield-win32.txt Download/win32/innosetup-win32.txt Download/web-mirrors.content index.content
Index: index.content
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/index.content,v
retrieving revision 1.162
diff -u -w -r1.162 index.content
--- index.content 16 May 2006 08:47:24 -0000 1.162
+++ index.content 2 Jun 2006 22:05:39 -0000
@@ -104,6 +104,18 @@
<dl>
<!-- one of (dd dt) -->
+ <dt><strong>2006-06-01</strong></dt>
+ <dd>
+ <p>
+ Today OSMirror of the Netherlands announces its mirroring
+ support of the XEmacs ftp site (<a
+ href="http://ftp.nl.xemacs.org/pub/xemacs/">http://ftp.nl.xemacs.org/pub/...>)
+ and web site (<a
+ href="http://www.nl.xemacs.org/">http://www.nl.xemacs.org/</a>)
+ and we thank them for that.
+ </p>
+ </dd>
+ <!-- one of (dd dt) -->
<dt><strong>2006-01-04</strong></dt>
<dd>
<p>
Index: Download/web-mirrors.content
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/web-mirrors.content,v
retrieving revision 1.20
diff -u -w -r1.20 web-mirrors.content
--- Download/web-mirrors.content 4 Jan 2006 21:01:58 -0000 1.20
+++ Download/web-mirrors.content 2 Jun 2006 22:05:39 -0000
@@ -147,6 +147,12 @@
</ul>
<p></p>
</li>
+ <li><h4>Netherlands</h4>
+ <ul>
+ <li><a href="http://www.nl.xemacs.org/">http://www.nl.xemacs.org/</a></li>
+ </ul>
+ <p></p>
+ </li>
<li><h4>Portugal</h4>
<ul>
<li><a href="http://www.pt.xemacs.org/">http://www.pt.xemacs.org/</a></li>
Index: Download/win32/innosetup-win32.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/win32/innosetup-win32.txt,v
retrieving revision 1.3
diff -u -w -r1.3 innosetup-win32.txt
--- Download/win32/innosetup-win32.txt 30 Jan 2006 21:20:43 -0000 1.3
+++ Download/win32/innosetup-win32.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Mon Jan 30 22:11:41 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -37,6 +37,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/binaries/win32/InnoSetup/XEmacs%20Setup%2021.4.19.exe">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/binaries/win32/InnoSetup/XEmacs%20Setup%2021.4.19.exe">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/binaries/win32/Inno... (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/binaries/win32/InnoSetup/XEmacs... (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/binaries/win32/InnoSetup/XEmacs... (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/binaries/win32/Inn... (pl.xemacs.org)</a></li>
Index: Download/win32/installshield-win32.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/win32/installshield-win32.txt,v
retrieving revision 1.2
diff -u -w -r1.2 installshield-win32.txt
--- Download/win32/installshield-win32.txt 6 Jan 2006 11:56:12 -0000 1.2
+++ Download/win32/installshield-win32.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
<a id="InstallShield-Download"
@@ -41,6 +41,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/binaries/win32/installshield/xemacs-21.5.17.exe">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/binaries/win32/installshield/xemacs-21.5.17.exe">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/binaries/win32/inst... (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/binaries/win32/installshield/xe... (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/binaries/win32/installshield/xe... (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/binaries/win32/ins... (pl.xemacs.org)</a></li>
Index: Download/win32/netinstall-win32.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Download/win32/netinstall-win32.txt,v
retrieving revision 1.2
diff -u -w -r1.2 netinstall-win32.txt
--- Download/win32/netinstall-win32.txt 6 Jan 2006 11:56:12 -0000 1.2
+++ Download/win32/netinstall-win32.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -40,6 +40,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/binaries/win32/netinstall/xemacs-i586-pc-win32-21.4.13.tar.gz">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/binaries/win32/netinstall/xemacs-i586-pc-win32-21.4.13.tar.gz">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/binaries/win32/neti... (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/binaries/win32/netinstall/xemac... (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/binaries/win32/netinstall/xemac... (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/binaries/win32/net... (pl.xemacs.org)</a></li>
Index: Releases/core-beta.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Releases/core-beta.txt,v
retrieving revision 1.5
diff -u -w -r1.5 core-beta.txt
--- Releases/core-beta.txt 6 Jan 2006 11:55:58 -0000 1.5
+++ Releases/core-beta.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -37,6 +37,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/beta">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/xemacs-21.5">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/beta">Korea (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/beta">Netherlands (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/beta">Norway (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/beta">Poland (pl.xemacs.org)</a></li>
Index: Releases/core-stable.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Releases/core-stable.txt,v
retrieving revision 1.5
diff -u -w -r1.5 core-stable.txt
--- Releases/core-stable.txt 6 Jan 2006 11:55:58 -0000 1.5
+++ Releases/core-stable.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -37,6 +37,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/stable">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/stable">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/stable">Korea (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/stable">Netherlands (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/stable">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/stable">Norway (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/stable">Poland (pl.xemacs.org)</a></li>
Index: Releases/packages-official.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Releases/packages-official.txt,v
retrieving revision 1.5
diff -u -w -r1.5 packages-official.txt
--- Releases/packages-official.txt 6 Jan 2006 11:55:58 -0000 1.5
+++ Releases/packages-official.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -40,6 +40,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/packages">Japan (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/packages">Japan (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/packages">Korea (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/packages">Netherlands (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/packages">Norway (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/packages">Poland (pl.xemacs.org)</a></li>
Index: Releases/packages-pre-release.txt
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacsweb/Releases/packages-pre-release.txt,v
retrieving revision 1.5
diff -u -w -r1.5 packages-pre-release.txt
--- Releases/packages-pre-release.txt 6 Jan 2006 11:55:58 -0000 1.5
+++ Releases/packages-pre-release.txt 2 Jun 2006 22:05:39 -0000
@@ -1,5 +1,5 @@
- <!-- Generated by 21.5 (beta24) "dandelion" (+CVS-20051218) XEmacs Lucid
- at Fri Jan 06 12:19:04 2006 +0100 (W. Europe Standard Time)
+ <!-- Generated by 21.5 (beta27) "fiddleheads" (+CVS-20060525) XEmacs Lucid
+ at Fri Jun 02 23:17:32 2006 +0200 (W. Europe Daylight Time)
by M-x package-get-2-download-sites
available from XEmacs CVS at xemacs-builds/adrian/website -->
@@ -40,6 +40,7 @@
<li><a href="http://ftp.dti.ad.jp/pub/unix/editor/xemacs/beta/experimental/packages">Japan Pre-Releases (dti.ad.jp)</a></li>
<li><a href="http://sunsite.sut.ac.jp/pub/archives/packages/xemacs/xemacs-21.5/experimental/packages">Japan Pre-Releases (sut.ac.jp)</a></li>
<li><a href="http://ftp.kr.xemacs.org/pub/tools/emacs/xemacs/beta/experimental/p... (kr.xemacs.org)</a></li>
+ <li><a href="http://ftp.nl.xemacs.org/pub/xemacs/beta/experimental/packages">Net... (nl.xemacs.org)</a></li>
<li><a href="ftp://ftp.nz.xemacs.org/mirror/ftp.xemacs.org/packages">New Zealand Pre-Releases (nz.xemacs.org)</a></li>
<li><a href="http://ftp.no.xemacs.org/pub/xemacs/beta/experimental/packages">Norway Pre-Releases (no.xemacs.org)</a></li>
<li><a href="http://ftp.pl.xemacs.org/pub/unix/editors/xemacs/beta/experimental/... Pre-Releases (pl.xemacs.org)</a></li>
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/
[AC (pkgs)] Shell + easy-mmode fix
18 years, 7 months
Jerry James
APPROVE COMMIT packages
This fixes the package build failures with 21.4 due to my recent changes
to shell.el.
xemacs-packages/xemacs-base/ChangeLog addition:
2006-06-01 Jerry James <james(a)xemacs.org>
* shell.el: (require 'easy-mmode) when compiling to properly
expand macros.
packages source patch:
Diff command: cvs -q diff -uN
Files affected: xemacs-packages/xemacs-base/shell.el
Index: xemacs-packages/xemacs-base/shell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/xemacs-base/shell.el,v
retrieving revision 1.15
diff -d -u -r1.15 shell.el
--- xemacs-packages/xemacs-base/shell.el 2006/05/29 21:47:01 1.15
+++ xemacs-packages/xemacs-base/shell.el 2006/06/02 03:44:44
@@ -110,6 +110,7 @@
;; XEmacs addition: make the byte compiler be quiet
(eval-when-compile
+ (require 'easy-mmode)
(require 'font-lock))
;;; Customization and Buffer Variables
--
Jerry James, Assistant Professor james(a)xemacs.org
Computer Science Department http://www.cs.usu.edu/~jerry/
Utah State University
[AC (pkgs)] Comint/shell fixes
18 years, 7 months
Jerry James
APPROVE COMMIT pkgs
Thanks to Ilya Golubev for finding the first batch of bugs with the new
comint and shell support. Given my short development cycle to get these
fixed before running off to California, I am just going to approve and
commit right away. Keep trying the new stuff out and let me know what
else breaks.
While I was at it, I synched us up with more recent Emacs CVS activity.
Many of the changes are purely cosmetic.
There is one known but unresolved bug on 21.5. See the message to
xemacs-beta with subject "New shell is narrowed".
xemacs-packages/xemacs-base/ChangeLog addition:
2006-05-29 Jerry James <james(a)xemacs.org>
* comint.el: Fix bug in comint-arguments that signaled instead of
returning a value.
* comint.el: Sync with very recent Emacs CVS activity.
* shell.el: Ditto.
packages source patch:
Diff command: cvs -q diff -uN
Files affected: xemacs-packages/xemacs-base/shell.el xemacs-packages/xemacs-base/comint.el
Index: xemacs-packages/xemacs-base/comint.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/xemacs-base/comint.el,v
retrieving revision 1.14
diff -d -u -r1.14 comint.el
--- xemacs-packages/xemacs-base/comint.el 2006/05/25 02:49:47 1.14
+++ xemacs-packages/xemacs-base/comint.el 2006/05/29 21:39:42
@@ -25,7 +25,7 @@
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
-;;; Synched up with: FSF 22.0.50
+;;; Synched up with: FSF 22.0.50 (CVS revision 1.345)
;;; Commentary:
@@ -452,6 +452,8 @@
;; XEmacs change: we don't need the autoload here since we never used
;; comint-use-prompt-regexp-instead-of-fields
+(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
+ 'comint-use-prompt-regexp)
(defcustom comint-mode-hook nil
"Hook run upon entry to `comint-mode'.
@@ -566,9 +568,8 @@
["Send EOF" comint-send-eof t]
))
-
;;;###autoload
-(defun comint-mode ()
+(define-derived-mode comint-mode fundamental-mode "Comint"
"Major mode for interacting with an inferior interpreter.
Interpreter name is same as buffer name, sans the asterisks.
Return at end of buffer sends line as input.
@@ -604,13 +605,7 @@
\\{comint-mode-map}
Entry to this mode runs the hooks on `comint-mode-hook'."
- (interactive)
- ;; Do not remove this. All major modes must do this.
- (kill-all-local-variables)
- (setq major-mode 'comint-mode)
- (setq mode-name "Comint")
(setq mode-line-process '(":%s"))
- (use-local-map comint-mode-map)
(set (make-local-variable 'comint-last-input-start) (point-min-marker))
(set (make-local-variable 'comint-last-input-end) (point-min-marker))
(set (make-local-variable 'comint-last-output-start) (make-marker))
@@ -653,7 +648,8 @@
(make-local-variable 'comint-file-name-chars)
(make-local-variable 'comint-file-name-quote-list)
(set (make-local-variable 'comint-accum-marker) (make-marker))
- (add-hook 'change-major-mode-hook 'font-lock-unfontify-buffer nil t)
+ ;; XEmacs change: font-lock-unfontify-buffer may not be loaded
+ ;(add-hook 'change-major-mode-hook 'font-lock-unfontify-buffer nil t)
;; This behavior is not useful in comint buffers, and is annoying
(set (make-local-variable 'next-line-add-newlines) nil)
(unless comint-1-menubar-menu
@@ -1490,7 +1486,7 @@
(nconc (comint-delim-arg str) args))))
(setq count (length args))
(let ((n (or nth (1- count)))
- (m (if mth (1- (- count mth)) 0)))
+ (m (if mth (max 0 (1- (- count mth))) 0)))
(mapconcat #'identity (nthcdr n (nreverse (nthcdr m args))) " "))))
@@ -2008,17 +2004,6 @@
(goto-char (point-max))
(recenter -1))
-(defun comint-copy-old-input ()
- "Insert after prompt old input at point as new input to be edited.
-Calls `comint-get-old-input' to get old input."
- (interactive)
- (let ((input (funcall comint-get-old-input))
- (process (get-buffer-process (current-buffer))))
- (if (not process)
- (error "Current buffer has no process")
- (goto-char (process-mark process))
- (insert input))))
-
(defun comint-get-old-input-default ()
"Default for `comint-get-old-input'.
If `comint-use-prompt-regexp' is nil, then either
@@ -2033,6 +2018,17 @@
(comint-bol)
(buffer-substring-no-properties (point) (point-at-eol)))))
+(defun comint-copy-old-input ()
+ "Insert after prompt old input at point as new input to be edited.
+Calls `comint-get-old-input' to get old input."
+ (interactive)
+ (let ((input (funcall comint-get-old-input))
+ (process (get-buffer-process (current-buffer))))
+ (if (not process)
+ (error "Current buffer has no process")
+ (goto-char (process-mark process))
+ (insert input))))
+
(defun comint-skip-prompt ()
"Skip past the text matching regexp `comint-prompt-regexp'.
If this takes us past the end of the current line, don't skip at all."
@@ -2486,19 +2482,19 @@
(when (eq (get-text-property (1- pt) 'read-only) 'fence)
(remove-text-properties (1- pt) pt '(read-only nil)))))))
-(defun comint-kill-whole-line (&optional arg)
+(defun comint-kill-whole-line (&optional count)
"Kill current line, ignoring read-only and field properties.
-With prefix arg, kill that many lines starting from the current line.
-If arg is negative, kill backward. Also kill the preceding newline,
+With prefix arg COUNT, kill that many lines starting from the current line.
+If COUNT is negative, kill backward. Also kill the preceding newline,
instead of the trailing one. \(This is meant to make \\[repeat] work well
with negative arguments.)
-If arg is zero, kill current line but exclude the trailing newline.
+If COUNT is zero, kill current line but exclude the trailing newline.
The read-only status of newlines is updated with `comint-update-fence',
if necessary."
(interactive "p")
(let ((inhibit-read-only t) (inhibit-field-text-motion t))
- (kill-entire-line arg)
- (when (>= arg 0) (comint-update-fence))))
+ (kill-entire-line count)
+ (when (>= count 0) (comint-update-fence))))
(defun comint-kill-region (beg end &optional yank-handler)
"Like `kill-region', but ignores read-only properties, if safe.
Index: xemacs-packages/xemacs-base/shell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/xemacs-base/shell.el,v
retrieving revision 1.14
diff -d -u -r1.14 shell.el
--- xemacs-packages/xemacs-base/shell.el 2006/05/25 02:49:48 1.14
+++ xemacs-packages/xemacs-base/shell.el 2006/05/29 21:39:43
@@ -25,7 +25,7 @@
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
-;;; Synched up with: FSF 22.0.50
+;;; Synched up with: FSF 22.0.50 (CVS revision 1.137)
;;; Commentary:
@@ -108,6 +108,10 @@
(require 'comint)
+;; XEmacs addition: make the byte compiler be quiet
+(eval-when-compile
+ (require 'font-lock))
+
;;; Customization and Buffer Variables
(defgroup shell nil
@@ -153,7 +157,7 @@
:group 'shell)
(defcustom shell-completion-fignore nil
- "*List of suffixes to be disregarded during file/command completion.
+ "List of suffixes to be disregarded during file/command completion.
This variable is used to initialize `comint-completion-fignore' in the shell
buffer. The default is nil, for compatibility with most shells.
Some people like (\"~\" \"#\" \"%\").
@@ -204,19 +208,19 @@
This is a fine thing to set in your `user-init-file'.")
(defcustom shell-command-regexp "[^;&|\n]+"
- "*Regexp to match a single command within a pipeline.
+ "Regexp to match a single command within a pipeline.
This is used for directory tracking and does not do a perfect job."
:type 'regexp
:group 'shell)
(defcustom shell-command-separator-regexp "[;&|\n \t]*"
- "*Regexp to match a single command within a pipeline.
+ "Regexp to match a single command within a pipeline.
This is used for directory tracking and does not do a perfect job."
:type 'regexp
:group 'shell)
(defcustom shell-completion-execonly t
- "*If non-nil, use executable files only for completion candidates.
+ "If non-nil, use executable files only for completion candidates.
This mirrors the optional behavior of tcsh.
Detecting executability of files may slow command completion considerably."
@@ -224,35 +228,35 @@
:group 'shell)
(defcustom shell-popd-regexp "popd"
- "*Regexp to match subshell commands equivalent to popd."
+ "Regexp to match subshell commands equivalent to popd."
:type 'regexp
:group 'shell-directories)
(defcustom shell-pushd-regexp "pushd"
- "*Regexp to match subshell commands equivalent to pushd."
+ "Regexp to match subshell commands equivalent to pushd."
:type 'regexp
:group 'shell-directories)
(defcustom shell-pushd-tohome nil
- "*If non-nil, make pushd with no arg behave as \"pushd ~\" (like cd).
+ "If non-nil, make pushd with no arg behave as \"pushd ~\" (like cd).
This mirrors the optional behavior of tcsh."
:type 'boolean
:group 'shell-directories)
(defcustom shell-pushd-dextract nil
- "*If non-nil, make \"pushd +n\" pop the nth dir to the stack top.
+ "If non-nil, make \"pushd +n\" pop the nth dir to the stack top.
This mirrors the optional behavior of tcsh."
:type 'boolean
:group 'shell-directories)
(defcustom shell-pushd-dunique nil
- "*If non-nil, make pushd only add unique directories to the stack.
+ "If non-nil, make pushd only add unique directories to the stack.
This mirrors the optional behavior of tcsh."
:type 'boolean
:group 'shell-directories)
(defcustom shell-cd-regexp "cd"
- "*Regexp to match subshell commands equivalent to cd."
+ "Regexp to match subshell commands equivalent to cd."
:type 'regexp
:group 'shell-directories)
@@ -261,20 +265,20 @@
; NetWare allows the five chars between upper and lower alphabetics.
"[]a-zA-Z^_`\\[\\\\]:"
nil)
- "*If non-nil, is regexp used to track drive changes."
+ "If non-nil, is regexp used to track drive changes."
:type '(choice regexp
(const nil))
:group 'shell-directories)
(defcustom shell-dirtrack-verbose t
- "*If non-nil, show the directory stack following directory change.
+ "If non-nil, show the directory stack following directory change.
This is effective only if directory tracking is enabled."
:type 'boolean
:group 'shell-directories)
;; XEmacs addition
(defcustom shell-dirtrack-other-regexp nil
- "*Regexp to match commands for which we call `shell-dirtrack-process-other-func'."
+ "Regexp to match commands for which we call `shell-dirtrack-process-other-func'."
:type '(choice regexp
(const nil))
:group 'shell-directories)
@@ -283,7 +287,7 @@
;; @todo make this a full blown hook? ?A hook which stops when a func
;; returns t? Or nil?
(defcustom shell-dirtrack-process-other-func nil
- "*Function to allow external processing of directory changing commands
+ "Function to allow external processing of directory changing commands
which match `shell-dirtrack-other-regexp'. This allows users to process
arbitrary directory changing commands. This function takes two arguments:
CMD - the first word (cmd part) of the current shell command line.
@@ -295,7 +299,7 @@
:group 'shell-directories)
(defcustom explicit-shell-file-name nil
- "*If non-nil, is file name to use for explicitly requested inferior shell."
+ "If non-nil, is file name to use for explicitly requested inferior shell."
:type '(choice (const :tag "None" nil) file)
:group 'shell)
@@ -305,7 +309,7 @@
;; than us about what terminal modes to use.
'("-i" "-T")
'("-i"))
- "*Args passed to inferior shell by M-x shell, if the shell is csh.
+ "Args passed to inferior shell by \\[shell], if the shell is csh.
Value is a list of strings, which may be nil."
:type '(repeat (string :tag "Argument"))
:group 'shell)
@@ -323,39 +327,39 @@
(shell-command-to-string (concat prog " --noediting"))))
'("-i")
'("--noediting" "-i")))
- "*Args passed to inferior shell by M-x shell, if the shell is bash.
+ "Args passed to inferior shell by \\[shell], if the shell is bash.
Value is a list of strings, which may be nil."
:type '(repeat (string :tag "Argument"))
:group 'shell)
;; XEmacs addition: allow the user to customize args for some shells
(defcustom explicit-ash-args '("-i")
- "*List of arguments to pass to \"ash\" on startup in `shell-mode'."
+ "List of arguments to pass to \"ash\" on startup in `shell-mode'."
:type '(repeat (string :tag "Argument"))
:group 'shell)
(defcustom explicit-ksh-args '("-i")
- "*List of arguments to pass to \"ksh\" on startup in `shell-mode'."
+ "List of arguments to pass to \"ksh\" on startup in `shell-mode'."
:type '(repeat (string :tag "Argument"))
:group 'shell)
(defcustom explicit-pdksh-args '("-i")
- "*List of arguments to pass to \"pdksh\" on startup in `shell-mode'."
+ "List of arguments to pass to \"pdksh\" on startup in `shell-mode'."
:type '(repeat (string :tag "Argument"))
:group 'shell)
(defcustom explicit-tcsh-args '("-i")
- "*List of arguments to pass to \"tcsh\" on startup in `shell-mode'."
+ "List of arguments to pass to \"tcsh\" on startup in `shell-mode'."
:type '(repeat (string :tag "Argument"))
:group 'shell)
(defcustom explicit-zsh-args '("-i")
- "*List of arguments to pass to \"zsh\" on startup in `shell-mode'."
+ "List of arguments to pass to \"zsh\" on startup in `shell-mode'."
:type '(repeat (string :tag "Argument"))
:group 'shell)
(defcustom shell-input-autoexpand 'history
- "*If non-nil, expand input command history references on completion.
+ "If non-nil, expand input command history references on completion.
This mirrors the optional behavior of tcsh (its autoexpand and histlit).
If the value is `input', then the expansion is seen on input.
@@ -386,7 +390,7 @@
(defvar shell-mode-map nil)
(if (not shell-mode-map)
- (let ((map (make-keymap 'shell-mode-map)))
+ (let ((map (make-sparse-keymap 'shell-mode-map)))
(set-keymap-parents map (list comint-mode-map))
(define-key map "\C-c\C-f" 'shell-forward-command)
(define-key map "\C-c\C-b" 'shell-backward-command)
@@ -540,13 +544,11 @@
(setq shell-dirstack nil)
(make-local-variable 'shell-last-dir)
(setq shell-last-dir nil)
- (make-local-variable 'shell-dirtrackp)
- (setq shell-dirtrackp t)
- (add-hook 'comint-input-filter-functions 'shell-directory-tracker nil t)
(setq comint-input-autoexpand shell-input-autoexpand)
;; This is not really correct, since the shell buffer does not really
;; edit this directory. But it is useful in the buffer list and menus.
(make-local-variable 'list-buffers-directory)
+ (shell-dirtrack-mode 1)
(setq list-buffers-directory (expand-file-name default-directory))
;; shell-dependent assignments.
(when (ring-empty-p comint-input-ring)
@@ -577,7 +579,6 @@
;; point in cluttering the code to support versions of bash that are
;; probably nowhere in use. --JJ
(comint-read-input-ring t)
- (shell-dirstack-message) ; XEmacs addition
))
(defun shell-write-history-on-exit (process event)
@@ -647,12 +648,11 @@
(xargs-name (intern-soft (concat "explicit-" name "-args"))))
(if (not (file-exists-p startfile))
(setq startfile (concat "~/.emacs.d/.emacs_" name)))
- (setq buffer (set-buffer
- (apply #'make-comint-in-buffer "shell" buffer prog
- (if (file-exists-p startfile) startfile)
- (if (and xargs-name (boundp xargs-name))
- (symbol-value xargs-name)
- '("-i")))))
+ (apply #'make-comint-in-buffer "shell" buffer prog
+ (if (file-exists-p startfile) startfile)
+ (if (and xargs-name (boundp xargs-name))
+ (symbol-value xargs-name)
+ '("-i")))
(shell-mode)))
buffer)
@@ -660,44 +660,44 @@
;;;###autoload (add-hook 'same-window-buffer-names "*shell*")
;;; Directory tracking
-;;;
-;;; This code provides the shell mode input sentinel
-;;; SHELL-DIRECTORY-TRACKER
-;;; that tracks cd, pushd, and popd commands issued to the shell, and
-;;; changes the current directory of the shell buffer accordingly.
-;;;
-;;; This is basically a fragile hack, although it's more accurate than
-;;; the version in Emacs 18's shell.el. It has the following failings:
-;;; 1. It doesn't know about the cdpath shell variable.
-;;; 2. It cannot infallibly deal with command sequences, though it does well
-;;; with these and with ignoring commands forked in another shell with ()s.
-;;; 3. More generally, any complex command is going to throw it. Otherwise,
-;;; you'd have to build an entire shell interpreter in Emacs Lisp. Failing
-;;; that, there's no way to catch shell commands where cd's are buried
-;;; inside conditional expressions, aliases, and so forth.
-;;;
-;;; The whole approach is a crock. Shell aliases mess it up. File sourcing
-;;; messes it up. You run other processes under the shell; these each have
-;;; separate working directories, and some have commands for manipulating
-;;; their w.d.'s (e.g., the lcd command in ftp). Some of these programs have
-;;; commands that do *not* affect the current w.d. at all, but look like they
-;;; do (e.g., the cd command in ftp). In shells that allow you job
-;;; control, you can switch between jobs, all having different w.d.'s. So
-;;; simply saying %3 can shift your w.d..
-;;;
-;;; The solution is to relax, not stress out about it, and settle for
-;;; a hack that works pretty well in typical circumstances. Remember
-;;; that a half-assed solution is more in keeping with the spirit of Unix,
-;;; anyway. Blech.
-;;;
-;;; One good hack not implemented here for users of programmable shells
-;;; is to program up the shell w.d. manipulation commands to output
-;;; a coded command sequence to the tty. Something like
-;;; ESC | <cwd> |
-;;; where <cwd> is the new current working directory. Then trash the
-;;; directory tracking machinery currently used in this package, and
-;;; replace it with a process filter that watches for and strips out
-;;; these messages.
+;;
+;; This code provides the shell mode input sentinel
+;; SHELL-DIRECTORY-TRACKER
+;; that tracks cd, pushd, and popd commands issued to the shell, and
+;; changes the current directory of the shell buffer accordingly.
+;;
+;; This is basically a fragile hack, although it's more accurate than
+;; the version in Emacs 18's shell.el. It has the following failings:
+;; 1. It doesn't know about the cdpath shell variable.
+;; 2. It cannot infallibly deal with command sequences, though it does well
+;; with these and with ignoring commands forked in another shell with ()s.
+;; 3. More generally, any complex command is going to throw it. Otherwise,
+;; you'd have to build an entire shell interpreter in Emacs Lisp. Failing
+;; that, there's no way to catch shell commands where cd's are buried
+;; inside conditional expressions, aliases, and so forth.
+;;
+;; The whole approach is a crock. Shell aliases mess it up. File sourcing
+;; messes it up. You run other processes under the shell; these each have
+;; separate working directories, and some have commands for manipulating
+;; their w.d.'s (e.g., the lcd command in ftp). Some of these programs have
+;; commands that do *not* affect the current w.d. at all, but look like they
+;; do (e.g., the cd command in ftp). In shells that allow you job
+;; control, you can switch between jobs, all having different w.d.'s. So
+;; simply saying %3 can shift your w.d..
+;;
+;; The solution is to relax, not stress out about it, and settle for
+;; a hack that works pretty well in typical circumstances. Remember
+;; that a half-assed solution is more in keeping with the spirit of Unix,
+;; anyway. Blech.
+;;
+;; One good hack not implemented here for users of programmable shells
+;; is to program up the shell w.d. manipulation commands to output
+;; a coded command sequence to the tty. Something like
+;; ESC | <cwd> |
+;; where <cwd> is the new current working directory. Then trash the
+;; directory tracking machinery currently used in this package, and
+;; replace it with a process filter that watches for and strips out
+;; these messages.
(defun shell-directory-tracker (str)
"Tracks cd, pushd and popd commands issued to the shell.
@@ -884,27 +884,26 @@
(defun shell-extract-num (str)
(and (string-match "^\\+[1-9][0-9]*$" str)
(string-to-number str)))
-
-(defun shell-dirtrack-mode ()
+(defvaralias 'shell-dirtrack-mode 'shell-dirtrackp)
+(define-minor-mode shell-dirtrack-mode
"Turn directory tracking on and off in a shell buffer."
- (interactive)
- (if (setq shell-dirtrackp (not shell-dirtrackp))
- (setq list-buffers-directory default-directory)
- (setq list-buffers-directory nil))
- (message "Directory tracking %s" (if shell-dirtrackp "ON" "OFF")))
+ nil nil nil
+ (setq list-buffers-directory (if shell-dirtrack-mode default-directory))
+ (if shell-dirtrack-mode
+ (add-hook 'comint-input-filter-functions 'shell-directory-tracker nil t)
+ (remove-hook 'comint-input-filter-functions 'shell-directory-tracker t)))
-;;; For your typing convenience:
-(defalias 'shell-dirtrack-toggle 'shell-dirtrack-mode)
+;; For your typing convenience:
+(defalias 'shell-dirtrack-toggle 'shell-dirtrack-mode) ;??Convenience??
(defalias 'dirtrack-toggle 'shell-dirtrack-mode)
(defalias 'dirtrack-mode 'shell-dirtrack-mode)
(defun shell-cd (dir)
"Do normal `cd' to DIR, and set `list-buffers-directory'."
+ (cd dir)
(if shell-dirtrackp
- (setq list-buffers-directory (file-name-as-directory
- (expand-file-name dir))))
- (cd dir))
+ (setq list-buffers-directory default-directory)))
(defun shell-resync-dirs ()
"Resync the buffer's idea of the current directory stack.
@@ -959,18 +958,18 @@
(let ((ds (nreverse ds)))
(shell-cd-1 (car ds) (cdr ds))))))
-;;; For your typing convenience:
+;; For your typing convenience:
(defalias 'dirs 'shell-resync-dirs)
;; XEmacs addition
(defvar shell-dirstack-message-hook nil
"Hook to run after a cd, pushd or popd event")
-;;; Show the current dirstack on the message line.
-;;; Pretty up dirs a bit by changing "/usr/jqr/foo" to "~/foo".
-;;; (This isn't necessary if the dirlisting is generated with a simple "dirs".)
-;;; All the commands that mung the buffer's dirstack finish by calling
-;;; this guy.
+;; Show the current dirstack on the message line.
+;; Pretty up dirs a bit by changing "/usr/jqr/foo" to "~/foo".
+;; (This isn't necessary if the dirlisting is generated with a simple "dirs".)
+;; All the commands that mung the buffer's dirstack finish by calling
+;; this guy.
(defun shell-dirstack-message ()
(when shell-dirtrack-verbose
(let* ((msg "")
--
Jerry James, Assistant Professor james(a)xemacs.org
Computer Science Department http://www.cs.usu.edu/~jerry/
Utah State University